@swestash/agent-lens 0.13.3 → 0.14.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent-lens.js +85 -74
- package/dist/agent-lens.js.map +1 -1
- package/package.json +1 -1
- package/web/404.html +2 -2
- package/web/assets/{AboutView-Bs9oC-qO.js → AboutView-D0_Xm4fa.js} +1 -1
- package/web/assets/{Dashboard-ChkGvwY5.js → Dashboard-ttxHcQ4v.js} +34 -34
- package/web/assets/{FileView-Ds04pgGe.js → FileView-CnV33MsU.js} +1 -1
- package/web/assets/{FilesView-DQRiYUkL.js → FilesView-DrgUr_wc.js} +1 -1
- package/web/assets/{SecurityView-CYJCfLrm.js → SecurityView-1SY1h-hB.js} +1 -1
- package/web/assets/SessionView-DxxaR5_n.js +15 -0
- package/web/assets/{SkillView-BCH5ldzv.js → SkillView-CIPe79vU.js} +1 -1
- package/web/assets/{SkillsView-Nlyh5MJW.js → SkillsView-YuBaj_4P.js} +1 -1
- package/web/assets/{WorkflowView-JwRwz2E2.js → WorkflowView-BXLb1lp4.js} +1 -1
- package/web/assets/index-BNr_gy9h.css +1 -0
- package/web/assets/{index-r-fSz0IT.js → index-CNg3TICd.js} +2 -2
- package/web/assets/{index-C2D0y2yH.js → index-Xe7pj757.js} +1 -1
- package/web/assets/{jsonish-mD--ddqP.js → jsonish-CLYQ4tku.js} +1 -1
- package/web/assets/{useResetOn-2tqWddId.js → useResetOn-CpMZQynn.js} +1 -1
- package/web/index.html +2 -2
- package/web/assets/SessionView-BBpziIqZ.js +0 -15
- package/web/assets/index-BPS7n4_B.css +0 -1
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import{e as Os,j as e,q as A,r as d,L as y,f as Ms,t as Fs,b as $s,v as Rs,c as T,w as ts,s as qs,x as As,h as G,i as as,l as Ls,y as Bs,z as Ps,k as Us,E as Ds,o as Hs}from"./index-r-fSz0IT.js";import{S as O,a as ls,u as Js}from"./useResetOn-2tqWddId.js";import{A as L,C as S,p as v}from"./jsonish-mD--ddqP.js";import{M as Ws,r as Ks}from"./index-C2D0y2yH.js";function Vs({id:s}){const n=Os();return e.jsxs("details",{className:"export-menu col-customizer",ref:n,children:[e.jsx("summary",{className:"export",title:"Export this session as Markdown",children:"⬇ Export Markdown"}),e.jsxs("div",{className:"col-menu",role:"group","aria-label":"Export options",children:[e.jsxs("a",{href:A(s),download:!0,children:["Redacted ",e.jsx("span",{className:"muted small",children:"(secrets masked)"})]}),e.jsxs("a",{href:A(s,"structure"),download:!0,children:["Structure only ",e.jsx("span",{className:"muted small",children:"(scrubbed)"})]}),e.jsxs("a",{className:"export-verbatim",href:A(s,"off"),download:!0,children:["Verbatim ",e.jsx("span",{className:"muted small",children:"(unredacted)"})]})]})]})}function Qs({c:s}){var i;const[n,t]=d.useState(!1),a=d.useId(),l=(i=s.signals)==null?void 0:i.loc;return e.jsxs("div",{className:"classification",children:[e.jsx("span",{className:"tag cat cat-"+(s.category??"none"),children:s.category??"unclassified"}),s.complexity_band&&e.jsxs("span",{className:"tag complexity",children:[s.complexity_band," · ",s.complexity_score]}),l&&e.jsxs("span",{className:"muted small",children:["+",l.added,"/−",l.removed," LoC · ",l.files," files"]}),e.jsxs("button",{className:"ghost small","aria-expanded":n,"aria-controls":a,onClick:()=>t(r=>!r),children:["why ",n?"▾":"▸"]}),n&&(s.signals?e.jsx(Ys,{id:a,s:s.signals,category:s.category}):e.jsx("div",{id:a,className:"muted small pad",children:"No signals recorded for this session."}))]})}const zs={loc:"Lines changed",files:"Files touched",turns:"Turns",tokens:"Work tokens",duration:"Duration",subagents:"Subagents"},X=s=>`${Math.max(0,Math.min(1,s))*100}%`;function Z({counts:s}){const n=Object.entries(s).sort((t,a)=>a[1]-t[1]);return n.length===0?e.jsx("span",{className:"muted",children:"—"}):e.jsx("span",{className:"sig-chips",children:n.map(([t,a])=>e.jsxs("span",{className:"sig-chip",children:[t," ",e.jsxs("span",{className:"muted",children:["×",a]})]},t))})}function Ys({id:s,s:n,category:t}){const[a,l]=d.useState(!1),i=d.useId(),r=n.complexity_weights??{},o=n.complexity_subscores??{},c=Object.keys(r).map(m=>({key:m,weight:r[m],subscore:o[m]??0,pts:r[m]*(o[m]??0)*100})).sort((m,w)=>w.pts-m.pts),u=Math.max(...c.map(m=>m.pts),1e-4),h=Object.entries(n.category_scores??{}).map(([m,w])=>({k:m,v:w})).sort((m,w)=>w.v-m.v),f=Math.max(...h.map(m=>m.v),1e-4),x=h.filter(m=>m.v>.02||m.k===t),g=n.skills&&Object.keys(n.skills).length>0;return e.jsxs("div",{id:s,className:"signals-panel",children:[c.length>0&&e.jsxs("section",{className:"sig-section",children:[e.jsxs("h4",{className:"sig-h",children:["Complexity breakdown ",e.jsx("span",{className:"muted",children:"— what built the score"})]}),e.jsx("ul",{className:"sig-bars",children:c.map(m=>e.jsxs("li",{className:"sig-bar-row",children:[e.jsx("span",{className:"sig-bar-label",children:zs[m.key]??m.key}),e.jsx("span",{className:"sig-bar","aria-hidden":"true",children:e.jsx("span",{className:"sig-bar-fill",style:{width:X(m.pts/u)}})}),e.jsxs("span",{className:"sig-bar-val",children:[m.pts.toFixed(1)," pts"]}),e.jsxs("span",{className:"sig-bar-sub muted",children:[Math.round(m.subscore*100),"% intensity · weight ",Math.round(m.weight*100),"%"]})]},m.key))})]}),x.length>0&&e.jsxs("section",{className:"sig-section",children:[e.jsxs("h4",{className:"sig-h",children:["Category scores ",e.jsxs("span",{className:"muted",children:["— why “",t,"” won"]})]}),e.jsx("ul",{className:"sig-bars",children:x.map(m=>e.jsxs("li",{className:"sig-bar-row"+(m.k===t?" is-win":""),children:[e.jsx("span",{className:"sig-bar-label",children:m.k}),e.jsx("span",{className:"sig-bar","aria-hidden":"true",children:e.jsx("span",{className:"sig-bar-fill",style:{width:X(m.v/f)}})}),e.jsx("span",{className:"sig-bar-val",children:m.v.toFixed(2)})]},m.k))})]}),e.jsxs("section",{className:"sig-section",children:[e.jsx("h4",{className:"sig-h",children:"Evidence"}),e.jsxs("dl",{className:"sig-grid",children:[n.tool_counts&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Tools"}),e.jsx("dd",{children:e.jsx(Z,{counts:n.tool_counts})})]}),g&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Skills"}),e.jsx("dd",{children:e.jsx(Z,{counts:n.skills})})]}),n.subagent_role&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Subagent role"}),e.jsx("dd",{children:n.subagent_role})]}),n.files&&n.files.length>0&&e.jsxs(e.Fragment,{children:[e.jsxs("dt",{children:["Files (",n.files.length,")"]}),e.jsx("dd",{className:"sig-files",children:n.files.join(", ")})]})]})]}),e.jsx("button",{className:"ghost small","aria-expanded":a,"aria-controls":i,onClick:()=>l(m=>!m),children:a?"Hide raw JSON ▴":"View raw JSON ▾"}),a&&e.jsx("pre",{id:i,className:"code signals",children:JSON.stringify(n,null,2)})]})}function Gs({f:s}){var r;const[n,t]=d.useState(!1),a=d.useId(),l=((r=s.signals)==null?void 0:r.modifiers)??{},i=Object.keys(l).filter(o=>l[o]!==!1&&l[o]!=null&&l[o]!=="");return e.jsxs("div",{className:"finding sev-border-"+s.severity,children:[e.jsxs("button",{className:"finding-head","aria-expanded":n,"aria-controls":a,onClick:()=>t(o=>!o),children:[e.jsx(ls,{severity:s.severity}),e.jsx("span",{className:"finding-title",children:s.title??s.rule_id}),s.framework_ref&&e.jsx("span",{className:"tag framework",children:s.framework_ref}),e.jsx("span",{className:"chev",children:n?"▾":"▸"})]}),n&&e.jsxs("div",{className:"finding-body",id:a,children:[s.evidence&&e.jsx("div",{className:"code-block",children:e.jsx("pre",{className:"code finding-evidence",children:s.evidence})}),e.jsxs("dl",{className:"sig-grid",children:[e.jsx("dt",{children:"Rule"}),e.jsx("dd",{children:e.jsx("code",{children:s.rule_id})}),e.jsx("dt",{children:"Category"}),e.jsx("dd",{children:s.category}),i.length>0&&e.jsxs(e.Fragment,{children:[e.jsx("dt",{children:"Context"}),e.jsx("dd",{children:i.map(o=>e.jsxs("span",{className:"sig-chip",children:[o,l[o]!==!0?e.jsxs("span",{className:"muted",children:[" ",String(l[o])]}):null]},o))})]})]}),e.jsxs(y,{className:"subagent-link small",to:`/security?rule=${encodeURIComponent(s.rule_id)}`,children:["see all “",s.rule_id,"” findings →"]})]})]})}function Xs({findings:s}){if(!s.length)return null;const n=[...s].sort((t,a)=>O.indexOf(t.severity)-O.indexOf(a.severity));return e.jsx("div",{className:"tool-findings",children:n.map(t=>e.jsx(Gs,{f:t},t.id))})}function Zs({findings:s,sessionId:n}){const t=new Map;for(const l of s)t.set(l.severity,(t.get(l.severity)??0)+1);const a=O.find(l=>t.has(l))??"info";return e.jsxs("div",{className:"security-banner sev-border-"+a,role:"status",children:[e.jsx("span",{className:"security-banner-icon","aria-hidden":"true",children:"🛡"}),e.jsxs("span",{className:"security-banner-text",children:[s.length," security ",s.length===1?"finding":"findings"," in this session"]}),e.jsx("span",{className:"security-banner-sevs",children:O.filter(l=>t.has(l)).map(l=>e.jsx(ls,{severity:l,count:t.get(l)},l))}),e.jsx(y,{className:"subagent-link small",to:`/security?session=${encodeURIComponent(n)}`,children:"view on Security page →"})]})}function se(s){const n={dirs:new Map,files:[]};for(const a of s){const l=a.display.startsWith("/"),i=(l?a.display.slice(1):a.display).split("/");l&&i.length>0&&(i[0]="/"+i[0]);let r=n;for(const o of i.slice(0,-1))r=r.dirs.get(o)??r.dirs.set(o,{dirs:new Map,files:[]}).get(o);r.files.push({name:i[i.length-1],path:a.path,list:a.list})}const t=a=>{for(const[l,i]of[...a.dirs.entries()])if(t(i),i.files.length===0&&i.dirs.size===1){const[r,o]=[...i.dirs.entries()][0];a.dirs.delete(l),a.dirs.set(l+"/"+r,o)}};return t(n),n}function rs({node:s,depth:n}){const t={paddingLeft:`${.4+n*1.1}rem`};return e.jsxs(e.Fragment,{children:[[...s.dirs.entries()].sort(([a],[l])=>a.localeCompare(l)).map(([a,l])=>e.jsxs(d.Fragment,{children:[e.jsx("tr",{children:e.jsx("td",{colSpan:3,style:t,children:e.jsxs("span",{className:"muted",children:["📁 ",a,"/"]})})}),e.jsx(rs,{node:l,depth:n+1})]},a)),[...s.files].sort((a,l)=>a.name.localeCompare(l.name)).map(a=>{const l=a.list.find(o=>o.event_uuid),i=a.list.reduce((o,c)=>o+(c.lines_added??0),0),r=a.list.reduce((o,c)=>o+(c.lines_removed??0),0);return e.jsxs("tr",{children:[e.jsx("td",{style:t,children:l!=null&&l.event_uuid?e.jsx("a",{href:`#ev-${l.event_uuid}`,className:"title",title:a.path+" — jump to the first change",children:a.name}):e.jsx("span",{title:a.path,children:a.name})}),e.jsxs("td",{className:"num",children:[a.list.length,"× ",e.jsxs("span",{className:"muted",children:["(+",i," −",r,")"]})]}),e.jsx("td",{children:e.jsx(y,{className:"subagent-link small",to:`/file?path=${encodeURIComponent(a.path)}`,children:"history →"})})]},a.path)})]})}function ee({changes:s,projectPath:n}){const t=new Map;for(const i of s)(t.get(i.file_path)??t.set(i.file_path,[]).get(i.file_path)).push(i);const a=i=>n&&i.startsWith(n.replace(/\/$/,"")+"/")?i.slice(n.replace(/\/$/,"").length+1):i,l=se([...t.entries()].map(([i,r])=>({display:a(i),path:i,list:r})));return e.jsxs("details",{className:"wf-run files-changed",children:[e.jsxs("summary",{children:["📄 ",t.size," ",t.size===1?"file":"files"," changed · ",s.length," ",s.length===1?"edit":"edits"]}),e.jsx("table",{className:"sessions",children:e.jsx("tbody",{children:e.jsx(rs,{node:l,depth:0})})})]})}function ne({d:s}){var t;const n=s.session;return e.jsxs("div",{className:"detail-head",children:[e.jsx(y,{to:"/",className:"back",children:"← all sessions"}),e.jsx("h1",{children:n.title||n.id.slice(0,12)}),e.jsxs("div",{className:"detail-meta",children:[e.jsx("span",{children:e.jsx("b",{children:n.source_id})}),e.jsx("span",{className:"path",children:n.project_path}),n.is_sidechain?e.jsx("span",{className:"tag subagent",children:"subagent"}):null,s.parent&&e.jsxs("span",{className:"spawned-by",children:["↖ spawned by"," ",e.jsx(y,{to:`/session/${s.parent.id}`,children:s.parent.title||s.parent.id.slice(0,12)}),s.parent.turn_seq!=null?` · turn ${s.parent.turn_seq+1}`:""]}),e.jsxs("span",{children:[s.turns.length," turns"]}),e.jsxs("span",{children:[n.event_count," events"]}),e.jsxs("span",{title:Fs(n.token_split),children:[Ms(n.tokens)," tok"]}),e.jsxs("span",{title:Rs(n.unpriced_models),children:[$s(n.cost),(t=n.unpriced_models)!=null&&t.length?e.jsx("span",{className:"warn-tag",children:" ⚠"}):null]}),n.tool_call_count>0&&e.jsxs("span",{className:n.tool_failure_count>0?"tool-err-stat":"muted",title:"Tool calls that returned is_error, of "+n.tool_call_count+". Failures = the agent's tool errored; declined/blocked = you rejected it or a guardrail blocked it (heuristic split from the result text — not an API-reported distinction).",children:[n.tool_failure_count," failed",n.tool_rejection_count>0?` · ${n.tool_rejection_count} declined/blocked`:"",` of ${n.tool_call_count} tool calls`]}),e.jsx("span",{children:T(n.duration_ms)}),e.jsx("span",{className:"muted",children:ts(n.started_at)}),e.jsx(Vs,{id:n.id})]}),s.classification&&e.jsx(Qs,{c:s.classification}),s.findings&&s.findings.length>0&&e.jsx(Zs,{findings:s.findings,sessionId:n.id}),s.file_changes&&s.file_changes.length>0&&e.jsx(ee,{changes:s.file_changes,projectPath:n.project_path??null})]})}function te({search:s,turnCount:n,anyOpen:t,onToggleAll:a,hideTools:l,onToggleHideTools:i,format:r,onChooseFormat:o}){return e.jsxs(e.Fragment,{children:[s,e.jsxs("div",{className:"transcript-tools",children:[n>1&&e.jsxs(e.Fragment,{children:[e.jsxs("span",{className:"muted small",children:[n," turns"]}),e.jsx("button",{className:"ghost small",onClick:a,children:t?"Collapse all":"Expand all"})]}),e.jsxs("button",{className:"ghost small"+(l?" is-active":""),"aria-pressed":l,onClick:i,title:"Hide Bash/Edit/Skill and other tool calls — show only assistant answers, plans and questions",children:[l?"☑ ":"☐ ","Hide tool messages"]}),e.jsxs("div",{className:"format-toggle",role:"group","aria-label":"Message format",children:[e.jsx("button",{className:"ghost small"+(r==="markdown"?" is-active":""),"aria-pressed":r==="markdown",onClick:()=>o("markdown"),children:"Markdown"}),e.jsx("button",{className:"ghost small"+(r==="raw"?" is-active":""),"aria-pressed":r==="raw",onClick:()=>o("raw"),children:"Raw"})]})]})]})}const M=2,ae={hits:[],byTurn:new Map,total:0};function is(s){var n;return[s.input_json,s.result_summary,(n=s.full_result)==null?void 0:n.text].filter(Boolean).join(`
|
|
2
|
-
`)}function os(s){const n=[];s.text&&n.push(s.text),s.thinking&&n.push(s.thinking);for(const t of s.toolCalls)n.push(is(t));return n.join(`
|
|
3
|
-
`).toLowerCase()}function le(s){return new Map(s.map(n=>[n.uuid,os(n)]))}function re(s,n){let t=0;for(let a=s.indexOf(n);a!==-1;a=s.indexOf(n,a+n.length))t++;return t}function ie(s,n,t){const a=t.trim().toLowerCase();if(a.length<M)return ae;const l=[],i=new Map;for(const r of s){const o=re(n.get(r.uuid)??os(r),a);o&&(l.push({uuid:r.uuid,turnId:r.turn_id??null,count:o}),r.turn_id&&i.set(r.turn_id,(i.get(r.turn_id)??0)+1))}return{hits:l,byTurn:i,total:l.length}}function oe(s,n){return U(is(s),n)}function U(s,n){const t=n.trim().toLowerCase();return!s||t.length<M?!1:s.toLowerCase().includes(t)}function cs(s,n,t){return a=>{if(a.key==="Escape"){a.preventDefault(),t();return}if(a.key==="Enter"){if(a.shiftKey){a.preventDefault(),s();return}a.target.tagName!=="BUTTON"&&(a.preventDefault(),n())}}}function ce({query:s,total:n,index:t,onPrev:a,onNext:l,onClear:i,onBackToBox:r}){return e.jsxs("div",{className:"search-nav",role:"group","aria-label":"Search matches",tabIndex:-1,onKeyDown:cs(a,l,i),children:[e.jsx("button",{type:"button",className:"ghost small sn-back","aria-label":"Back to the search box",onClick:r,children:"🔍"}),e.jsxs("span",{className:"sn-term",children:[e.jsx("span",{className:"sn-q",children:s}),e.jsxs("span",{className:"sn-pos",children:[t+1,"/",n]})]}),e.jsx("button",{type:"button",className:"ghost small","aria-label":"Previous match",onClick:a,children:"◂"}),e.jsx("button",{type:"button",className:"ghost small","aria-label":"Next match",onClick:l,children:"▸"}),e.jsx("button",{type:"button",className:"ghost small","aria-label":"Clear search",onClick:i,children:"✕"})]})}const de=150;function ue({query:s,onQuery:n,total:t,index:a,onPrev:l,onNext:i,inputRef:r}){const[o,c]=d.useState(s),u=d.useRef(0),h=d.useRef(null),[f,x]=d.useState(!0);d.useEffect(()=>{const N=h.current;if(!N||typeof IntersectionObserver>"u")return;const b=new IntersectionObserver(([F])=>x(F.isIntersecting));return b.observe(N),()=>b.disconnect()},[]);const g=d.useRef(s);g.current!==s&&(g.current=s,c(s)),d.useEffect(()=>()=>window.clearTimeout(u.current),[]);const m=N=>{c(N),window.clearTimeout(u.current),u.current=window.setTimeout(()=>n(N),de)},w=()=>{var N;window.clearTimeout(u.current),c(""),n(""),(N=r.current)==null||N.focus()},j=o.trim().length>=M;return e.jsxs(e.Fragment,{children:[e.jsxs("form",{ref:h,className:"transcript-search",role:"search",onSubmit:N=>N.preventDefault(),onKeyDown:cs(l,i,w),children:[e.jsx("span",{className:"ts-icon","aria-hidden":"true",children:"🔍"}),e.jsx("input",{ref:r,type:"search","aria-label":"Find in this session",placeholder:"Find in session…",value:o,onChange:N=>m(N.target.value)}),e.jsx("span",{className:"ts-count muted small",role:"status","aria-live":"polite",children:j?t===0?"No matches":`${a+1} of ${t} message${t===1?"":"s"}`:""}),e.jsx("button",{type:"button",className:"ghost small","aria-label":"Previous match",disabled:t===0,onClick:l,children:"◂"}),e.jsx("button",{type:"button",className:"ghost small","aria-label":"Next match",disabled:t===0,onClick:i,children:"▸"}),o&&e.jsx("button",{type:"button",className:"ghost small","aria-label":"Clear search",onClick:w,children:"✕"})]}),t>0&&!f&&e.jsx(ce,{query:s,total:t,index:a,onPrev:l,onNext:i,onClear:w,onBackToBox:()=>{var N;return(N=r.current)==null?void 0:N.focus()}})]})}function me({d:s}){const n=s.workflow_runs??[],t=s.children.filter(l=>!l.workflow_run_id),a=n.length>0;return e.jsxs("div",{className:"subagents",children:[e.jsxs("h2",{children:["Spawned subagents (",s.children.length,")"]}),n.map(l=>{const i=s.children.filter(r=>r.workflow_run_id===l.run_id);return e.jsxs("details",{className:"wf-run",children:[e.jsxs("summary",{children:[e.jsxs(y,{className:"wf-run-name",to:`/workflow/${l.run_id}`,onClick:r=>r.stopPropagation(),children:["🔀 ",l.name||"workflow"," →"]}),l.status&&e.jsx("span",{className:"tag task-status task-status-"+l.status.toLowerCase(),children:l.status}),e.jsxs("span",{className:"muted small",children:[i.length," agent",i.length===1?"":"s",l.turn_seq!=null?` · turn ${l.turn_seq+1}`:""," · ",e.jsx("code",{children:l.run_id})]})]}),e.jsx("ul",{children:i.map(r=>e.jsx(L,{a:r},r.id))})]},l.run_id)}),t.length>0&&(a?e.jsxs("details",{className:"wf-run",open:!0,children:[e.jsxs("summary",{children:[e.jsx("span",{className:"wf-run-name",children:"Task / Agent"}),e.jsxs("span",{className:"muted small",children:[t.length," subagent",t.length===1?"":"s"]})]}),e.jsx("ul",{children:t.map(l=>e.jsx(L,{a:l},l.id))})]}):e.jsx("ul",{children:t.map(l=>e.jsx(L,{a:l},l.id))}))]})}function ss(s,n){const t=s===""?[]:s.split(`
|
|
4
|
-
`),a=n===""?[]:n.split(`
|
|
5
|
-
`),l=t.length,i=a.length;if(l*i>25e4)return[...t.map(h=>({type:"del",text:h})),...a.map(h=>({type:"add",text:h}))];const r=Array.from({length:l+1},()=>new Array(i+1).fill(0));for(let h=l-1;h>=0;h--)for(let f=i-1;f>=0;f--)r[h][f]=t[h]===a[f]?r[h+1][f+1]+1:Math.max(r[h+1][f],r[h][f+1]);const o=[];let c=0,u=0;for(;c<l&&u<i;)t[c]===a[u]?(o.push({type:"ctx",text:t[c]}),c++,u++):r[c+1][u]>=r[c][u+1]?(o.push({type:"del",text:t[c]}),c++):(o.push({type:"add",text:a[u]}),u++);for(;c<l;)o.push({type:"del",text:t[c++]});for(;u<i;)o.push({type:"add",text:a[u++]});return o}function ds(s){if(!s)return null;try{const n=JSON.parse(s).plan;return typeof n=="string"&&n.trim()?n:null}catch{return null}}function he(s){if(!s)return[];try{const n=JSON.parse(s).questions;return Array.isArray(n)?n:[]}catch{return[]}}function pe(s){if(!s)return{answers:{},annotations:{}};try{const n=JSON.parse(s);if(n&&typeof n=="object"&&n.answers)return{answers:n.answers,annotations:n.annotations??{}}}catch{}return{answers:{},annotations:{}}}function xe(s){if(!s)return null;try{const n=JSON.parse(s);if(!n||typeof n!="object")return null;const t=typeof n.command=="string"?n.command:"";return t.trim()?{command:t,description:typeof n.description=="string"?n.description:void 0,timeout:typeof n.timeout=="number"?n.timeout:void 0,run_in_background:n.run_in_background===!0,restart:n.restart===!0}:null}catch{return null}}function fe(s,n){if(!n)return null;try{const t=JSON.parse(n);if(!t||typeof t!="object"||typeof t.file_path!="string")return null;let a;if(s==="Write"){if(typeof t.content!="string")return null;a=[t.content===""?[]:t.content.split(`
|
|
6
|
-
`).map(r=>({type:"add",text:r}))]}else if(s==="MultiEdit"){if(!Array.isArray(t.edits)||(a=t.edits.filter(r=>{const o=r;return!!o&&typeof o.old_string=="string"&&typeof o.new_string=="string"}).map(r=>ss(r.old_string,r.new_string)),a.length===0))return null}else{if(typeof t.old_string!="string"||typeof t.new_string!="string")return null;a=[ss(t.old_string,t.new_string)]}let l=0,i=0;for(const r of a)for(const o of r)o.type==="add"?l++:o.type==="del"&&i++;return{file_path:t.file_path,kind:s,hunks:a,adds:l,dels:i}}catch{return null}}function je(s){const n=s.lastIndexOf("/");return n>=0?{dir:s.slice(0,n+1),base:s.slice(n+1)}:{dir:"",base:s}}function us(s){var a,l,i,r,o;const n=(l=(a=s.match(/<command-name>([^<]*)<\/command-name>/))==null?void 0:a[1])==null?void 0:l.trim();if(n){const c=((r=(i=s.match(/<command-args>([^<]*)<\/command-args>/))==null?void 0:i[1])==null?void 0:r.trim())??"";return{kind:"invocation",name:n.startsWith("/")?n:`/${n}`,args:c}}const t=(o=s.match(/<(?:local-command-stdout|command-output|local-command-stderr)>([\s\S]*?)<\/(?:local-command-stdout|command-output|local-command-stderr)>/))==null?void 0:o[1];return t!=null?{kind:"output",stdout:t.trim()}:/<local-command-caveat>/.test(s)?{kind:"caveat"}:null}function ms(s){if(!/<task-notification>/.test(s))return null;const n=t=>{var a,l;return((l=(a=s.match(new RegExp(`<${t}>([\\s\\S]*?)</${t}>`)))==null?void 0:a[1])==null?void 0:l.trim())??null};return{taskId:n("task-id"),toolUseId:n("tool-use-id"),status:n("status"),summary:n("summary")}}function ge(s){const n=us(s);if((n==null?void 0:n.kind)==="invocation")return`⌘ ${n.name}${n.args?" "+n.args:""}`;if((n==null?void 0:n.kind)==="output")return"⌘ command output";if((n==null?void 0:n.kind)==="caveat")return"⌘ local command";const t=ms(s);return t?`🔔 task ${t.status??"notification"}`:s}const hs=d.createContext("markdown"),ps=d.createContext(new Map),xs=d.createContext(!1),fs=d.createContext(null),D=d.createContext({query:"",activeUuid:null});function Ne({cmd:s}){return s.kind==="invocation"?e.jsxs("div",{className:"cmd",children:[e.jsxs("span",{className:"cmd-chip",title:"Slash command",children:["⌘ ",s.name]}),s.args&&e.jsx("code",{className:"cmd-args",children:s.args})]}):s.kind==="output"?e.jsx("div",{className:"cmd-out",children:s.stdout&&s.stdout!=="(no content)"?s.stdout:e.jsx("span",{className:"muted",children:"no output"})}):e.jsx("div",{className:"cmd-note muted small",children:"⌘ local command context"})}function we({n:s}){const n=d.useContext(ps),t=s.toolUseId?n.get(s.toolUseId):void 0,a=(s.status??"").toLowerCase();return e.jsxs("div",{className:"task-notif",children:[e.jsxs("div",{className:"task-notif-head",children:[e.jsx("span",{className:"task-notif-icon","aria-hidden":"true",children:"🔔"}),s.status&&e.jsx("span",{className:"tag task-status task-status-"+a,children:s.status}),s.taskId&&e.jsxs("code",{className:"task-notif-id",children:["task ",s.taskId]}),t&&e.jsx(y,{className:"subagent-link small",to:`/workflow/${t}`,children:"view workflow →"})]}),s.summary&&e.jsx("div",{className:"task-notif-summary",children:s.summary})]})}function es({text:s,id:n}){return d.useContext(hs)==="raw"?e.jsx("div",{className:"text",id:n,children:s}):e.jsx("div",{className:"text md",id:n,children:e.jsx(Ws,{remarkPlugins:[Ks],components:_e,children:s})})}const _e={a:({node:s,...n})=>e.jsx("a",{...n,target:"_blank",rel:"noopener noreferrer"})};function js({text:s,uuid:n}){const t=s.length>1400||s.split(`
|
|
7
|
-
`).length>18,[a,l]=d.useState(!1),i=d.useContext(D),r=d.useId();if(!t)return e.jsx(es,{text:s});const o=a||!!n&&i.activeUuid===n&&U(s,i.query);return e.jsxs("div",{className:"text-wrap"+(o?"":" is-clamped"),children:[e.jsx(es,{text:s,id:r}),e.jsx("button",{className:"ghost small show-more","aria-expanded":o,"aria-controls":r,onClick:()=>l(!o),children:o?"Show less ▴":"Show more ▾"})]})}function gs({t:s}){const[n,t]=d.useState(!1),[a,l]=d.useState(!1),i=d.useId(),r=s.skill_name?`Skill · ${s.skill_name}`:s.tool_name==="Workflow"&&s.workflow_name?`Workflow · ${s.workflow_name}`:s.agent_type?`${s.tool_name} → ${s.agent_type}`:s.tool_name;return e.jsxs("div",{className:"tool "+(s.status==="error"?"tool-err":""),children:[e.jsxs("button",{className:"tool-head","aria-expanded":n,"aria-controls":i,onClick:()=>t(o=>!o),children:[e.jsxs("span",{className:"tool-name",children:["🔧 ",r]}),s.status&&e.jsx("span",{className:"tool-status",children:s.status}),s.total_duration_ms?e.jsx("span",{className:"muted",children:T(s.total_duration_ms)}):null,e.jsx("span",{className:"chev",children:n?"▾":"▸"})]}),s.spawned_session_id&&e.jsx(y,{className:"subagent-link small",to:`/session/${s.spawned_session_id}`,children:"view subagent transcript →"}),s.workflow_run_id&&e.jsxs(y,{className:"subagent-link small",to:`/workflow/${s.workflow_run_id}`,children:["🔀 launched ",s.workflow_agent_count??0," agent",s.workflow_agent_count===1?"":"s"," · ",e.jsx("code",{children:s.workflow_run_id})," →"]}),s.skill_name&&e.jsxs(y,{className:"subagent-link small",to:`/skill/${encodeURIComponent(s.skill_name)}${s.skill_id?`?v=${s.skill_id}`:""}`,children:["📖 view skill",s.skill_id?" version":""," →"]}),n&&e.jsxs("div",{className:"tool-body",id:i,children:[s.input_json&&s.input_json!=="{}"&&e.jsxs("div",{className:"code-block",children:[e.jsx(S,{text:v(s.input_json),className:"copy-corner",title:"Copy tool input JSON"}),e.jsx("pre",{className:"code",children:v(s.input_json)})]}),s.result_summary&&e.jsx("div",{className:"result",children:s.result_summary}),s.full_result&&e.jsxs("div",{className:"full-result",children:[e.jsxs("button",{type:"button",className:"ghost small show-full","aria-expanded":a,onClick:()=>l(o=>!o),children:[a?"Hide":"Show"," full result (",(s.full_result.bytes/1024).toFixed(1)," KB)"]}),a&&e.jsxs("div",{className:"code-block",children:[e.jsx(S,{text:s.full_result.text,className:"copy-corner",title:"Copy full tool result"}),e.jsx("pre",{className:"code",children:s.full_result.text})]})]})]})]})}function be({plan:s}){return e.jsxs("div",{className:"plan-card",children:[e.jsx("div",{className:"plan-card-head",children:"📋 Approved plan"}),e.jsx(js,{text:s})]})}function ke({t:s}){const[n,t]=d.useState(!1),a=d.useId(),l=he(s.input_json),{answers:i,annotations:r}=pe(s.result_summary);return l.length===0?e.jsx(gs,{t:s}):e.jsxs("div",{className:"qa-card",children:[e.jsxs("div",{className:"qa-card-head",children:["🙋 Question",l.length===1?"":"s"," for the user"]}),l.map((o,c)=>{var w;const u=i[o.question],h=Array.isArray(u)?u:u!=null?[u]:[],f=new Set(h),x=new Set(o.options.map(j=>j.label)),g=h.filter(j=>!x.has(j)),m=(w=r[o.question])==null?void 0:w.notes;return e.jsxs("div",{className:"qa-q",children:[e.jsxs("div",{className:"qa-q-head",children:[o.header&&e.jsx("span",{className:"tag",children:o.header}),o.multiSelect&&e.jsx("span",{className:"muted small",children:"multi-select"})]}),e.jsx("div",{className:"qa-question",children:o.question}),e.jsxs("ul",{className:"qa-options",children:[o.options.map((j,N)=>{const b=f.has(j.label);return e.jsxs("li",{className:"qa-opt"+(b?" is-selected":""),children:[e.jsx("span",{className:"qa-mark","aria-hidden":"true",children:b?"☑":"☐"}),e.jsxs("span",{className:"qa-opt-body",children:[e.jsx("span",{className:"qa-opt-label",children:j.label}),j.description&&e.jsx("span",{className:"qa-opt-desc muted",children:j.description})]})]},N)}),g.map((j,N)=>e.jsxs("li",{className:"qa-opt is-selected",children:[e.jsx("span",{className:"qa-mark","aria-hidden":"true",children:"☑"}),e.jsxs("span",{className:"qa-opt-body",children:[e.jsx("span",{className:"qa-opt-label",children:j}),e.jsx("span",{className:"qa-opt-desc muted",children:"custom answer"})]})]},"c"+N))]}),m&&e.jsxs("div",{className:"qa-note",children:["📝 ",m]})]},c)}),e.jsxs("div",{className:"launch-actions",children:[e.jsx("button",{className:"ghost small","aria-expanded":n,"aria-controls":a,onClick:()=>t(o=>!o),children:n?"Hide raw JSON ▴":"View raw JSON ▾"}),e.jsx(S,{text:v(s.input_json??"{}")+(s.result_summary?`
|
|
8
|
-
|
|
9
|
-
`+v(s.result_summary):""),label:"JSON",title:"Copy raw question JSON"})]}),n&&e.jsxs("pre",{id:a,className:"code",children:[v(s.input_json??"{}"),s.result_summary?`
|
|
10
|
-
|
|
11
|
-
`+v(s.result_summary):""]})]})}function ye({t:s}){const n=s.workflow_name?`Workflow · ${s.workflow_name}`:"Workflow";return e.jsxs("div",{className:"tool launch-tool",children:[e.jsxs("div",{className:"launch-tool-head",children:[e.jsxs("span",{className:"tool-name",children:["🔀 ",n]}),s.status&&e.jsx("span",{className:"tool-status",children:s.status})]}),s.workflow_run_id&&e.jsxs(y,{className:"subagent-link small",to:`/workflow/${s.workflow_run_id}`,children:["🔀 launched ",s.workflow_agent_count??0," agent",s.workflow_agent_count===1?"":"s"," · ",e.jsx("code",{children:s.workflow_run_id})," →"]}),s.result_summary&&e.jsx("div",{className:"result",children:s.result_summary})]})}function ns(s,n,t){let a=n+2,l=!1;for(s[a]==="-"&&(l=!0,a++);s[a]===" "||s[a]===" ";)a++;let i="";(s[a]==="'"||s[a]==='"')&&(i=s[a],a++);let r="";if(i){for(;a<s.length&&s[a]!==i;)r+=s[a++];s[a]===i&&a++}else for(;a<s.length&&/[A-Za-z0-9_]/.test(s[a]);)r+=s[a++];return r&&t.push({delim:r,strip:l}),a-1}function ve(s){const n=s.split(`
|
|
12
|
-
`),t=[];let a="NORMAL",l=0;const i=[];let r=!1;for(const o of n){if(i.length>0){t.push({text:o,cont:!0});const c=i[0];(c.strip?o.replace(/^\t+/,""):o).trimEnd()===c.delim&&i.shift();continue}t.push({text:o,cont:a!=="NORMAL"||l>0||r}),r=!1;for(let c=0;c<o.length;c++){const u=o[c];if(a==="SQUOTE"){u==="'"&&(a="NORMAL");continue}if(a==="DQUOTE"){u==="\\"?c++:u==='"'?a="NORMAL":u==="$"&&o[c+1]==="("?(l++,c++):u===")"?l>0&&l--:u==="<"&&o[c+1]==="<"&&o[c+2]!=="<"&&o[c-1]!=="<"&&(c=ns(o,c,i));continue}if(u==="\\")c++;else if(u==="'")a="SQUOTE";else if(u==='"')a="DQUOTE";else{if(u==="#"&&(c===0||/\s/.test(o[c-1])))break;u==="$"&&o[c+1]==="("?(l++,c++):u==="("?l++:u===")"?l>0&&l--:u==="<"&&o[c+1]==="<"&&o[c+2]!=="<"&&o[c-1]!=="<"&&(c=ns(o,c,i))}}if(a==="NORMAL"&&l===0&&i.length===0){const c=o.replace(/\s+$/,""),u=c.match(/\\+$/);(u&&u[0].length%2===1||/(&&|\|\||\|)$/.test(c))&&(r=!0)}}return t}function Se({t:s,bash:n}){const[t,a]=d.useState(!1),[l,i]=d.useState(!1),[r,o]=d.useState(!1),c=d.useId(),u=d.useId(),h=n.command.split(`
|
|
13
|
-
`)[0],f=ve(n.command);return e.jsxs("div",{className:"tool "+(s.status==="error"?"tool-err":""),children:[e.jsxs("button",{className:"tool-head","aria-expanded":t,"aria-controls":c,onClick:()=>a(x=>!x),children:[e.jsx("span",{className:"tool-name",children:"🖥 Bash"}),n.description?e.jsxs("span",{className:"bash-desc",children:["# ",n.description]}):!t&&e.jsx("span",{className:"bash-preview",children:h}),s.status&&e.jsx("span",{className:"tool-status",children:s.status}),s.total_duration_ms?e.jsx("span",{className:"muted",children:T(s.total_duration_ms)}):null,e.jsx("span",{className:"chev",children:t?"▾":"▸"})]}),t&&e.jsxs("div",{className:"tool-body",id:c,children:[e.jsxs("div",{className:"shell code-block",children:[e.jsx(S,{text:n.command,className:"copy-corner",title:"Copy command"}),e.jsx("pre",{className:"shell-cmd",children:f.map((x,g)=>e.jsxs("span",{children:[e.jsx("span",{className:"shell-gutter"+(x.cont?" cont":""),"aria-hidden":"true",children:x.cont?" ":"$ "}),x.text,g<f.length-1?`
|
|
14
|
-
`:""]},g))})]}),(n.run_in_background||n.restart||n.timeout!=null)&&e.jsxs("div",{className:"bash-badges",children:[n.run_in_background&&e.jsx("span",{className:"bash-badge",children:"background"}),n.restart&&e.jsx("span",{className:"bash-badge",children:"restart"}),n.timeout!=null&&e.jsxs("span",{className:"bash-badge",children:["timeout ",Math.round(n.timeout/1e3),"s"]})]}),s.result_summary&&e.jsx("pre",{className:"shell-out",children:s.result_summary}),s.full_result&&e.jsxs("div",{className:"full-result",children:[e.jsxs("button",{type:"button",className:"ghost small show-full","aria-expanded":l,onClick:()=>i(x=>!x),children:[l?"Hide":"Show"," full result (",(s.full_result.bytes/1024).toFixed(1)," KB)"]}),l&&e.jsxs("div",{className:"code-block",children:[e.jsx(S,{text:s.full_result.text,className:"copy-corner",title:"Copy full tool result"}),e.jsx("pre",{className:"code",children:s.full_result.text})]})]}),e.jsxs("div",{className:"launch-actions",children:[e.jsx("button",{className:"ghost small","aria-expanded":r,"aria-controls":u,onClick:()=>o(x=>!x),children:r?"Hide raw JSON ▴":"View raw JSON ▾"}),e.jsx(S,{text:v(s.input_json??"{}"),label:"JSON",title:"Copy raw tool input JSON"})]}),r&&e.jsx("pre",{id:u,className:"code",children:v(s.input_json??"{}")})]})]})}const Ce={Edit:"✏️",MultiEdit:"✏️",Write:"📄"},B=400;function Te({t:s,edit:n}){const[t,a]=d.useState(!1),[l,i]=d.useState(!1),[r,o]=d.useState(!1),c=d.useId(),u=d.useId(),{dir:h,base:f}=je(n.file_path);return e.jsxs("div",{className:"tool "+(s.status==="error"?"tool-err":""),children:[e.jsxs("button",{className:"tool-head","aria-expanded":t,"aria-controls":c,onClick:()=>a(x=>!x),children:[e.jsxs("span",{className:"tool-name",children:[Ce[n.kind]??"✏️"," ",n.kind]}),e.jsxs("span",{className:"edit-path",children:[e.jsx("span",{className:"base",children:f}),h&&e.jsx("span",{className:"dir",children:h.replace(/\/$/,"")})]}),e.jsxs("span",{className:"diff-stat",children:[n.adds>0&&e.jsxs("span",{className:"add",children:["+",n.adds]}),n.dels>0&&e.jsxs("span",{className:"del",children:["−",n.dels]})]}),s.status&&e.jsx("span",{className:"tool-status",children:s.status}),s.total_duration_ms?e.jsx("span",{className:"muted",children:T(s.total_duration_ms)}):null,e.jsx("span",{className:"chev",children:t?"▾":"▸"})]}),t&&e.jsxs("div",{className:"tool-body",id:c,children:[n.hunks.map((x,g)=>e.jsxs("div",{className:"diff",children:[n.hunks.length>1&&e.jsxs("div",{className:"diff-hunk-sep",children:["edit ",g+1]}),x.slice(0,B).map((m,w)=>e.jsxs("div",{className:"diff-line "+m.type,children:[e.jsx("span",{className:"diff-sign","aria-hidden":"true",children:m.type==="add"?"+":m.type==="del"?"−":" "}),e.jsx("span",{className:"diff-text",children:m.text===""?" ":m.text})]},w)),x.length>B&&e.jsxs("div",{className:"diff-more",children:["… ",x.length-B," more lines — View raw JSON for the rest"]})]},g)),s.result_summary&&e.jsx("pre",{className:"shell-out",children:s.result_summary}),s.full_result&&e.jsxs("div",{className:"full-result",children:[e.jsxs("button",{type:"button",className:"ghost small show-full","aria-expanded":l,onClick:()=>i(x=>!x),children:[l?"Hide":"Show"," full result (",(s.full_result.bytes/1024).toFixed(1)," KB)"]}),l&&e.jsxs("div",{className:"code-block",children:[e.jsx(S,{text:s.full_result.text,className:"copy-corner",title:"Copy full tool result"}),e.jsx("pre",{className:"code",children:s.full_result.text})]})]}),e.jsxs("div",{className:"launch-actions",children:[e.jsx("button",{className:"ghost small","aria-expanded":r,"aria-controls":u,onClick:()=>o(x=>!x),children:r?"Hide raw JSON ▴":"View raw JSON ▾"}),e.jsx(S,{text:v(s.input_json??"{}"),label:"JSON",title:"Copy raw tool input JSON"})]}),r&&e.jsx("pre",{id:u,className:"code",children:v(s.input_json??"{}")})]})]})}function Ie({t:s,hideTools:n}){const t=s.findings??[],a=n&&t.length===0,l=Ee(s,a);return t.length===0?l:e.jsxs(e.Fragment,{children:[l,e.jsx(Xs,{findings:t})]})}function Ee(s,n){if(s.tool_name==="ExitPlanMode"){const t=ds(s.input_json);if(t)return e.jsx(be,{plan:t})}if(s.tool_name==="AskUserQuestion")return e.jsx(ke,{t:s});if(s.tool_name==="Workflow")return e.jsx(ye,{t:s});if(s.tool_name==="Bash"){const t=xe(s.input_json);if(t)return n?null:e.jsx(Se,{t:s,bash:t})}if(s.tool_name==="Edit"||s.tool_name==="MultiEdit"||s.tool_name==="Write"){const t=fe(s.tool_name,s.input_json);if(t)return n?null:e.jsx(Te,{t:s,edit:t})}return n?null:e.jsx(gs,{t:s})}function Oe(s,n){return s.findings&&s.findings.length||s.tool_name==="AskUserQuestion"||s.tool_name==="Workflow"||s.tool_name==="ExitPlanMode"&&ds(s.input_json)?!0:!n}function Ns({e:s}){const[n,t]=d.useState(!1),a=d.useId(),l=d.useContext(xs),i=d.useContext(fs),r=d.useContext(D),o=n||r.activeUuid===s.uuid&&U(s.thinking,r.query),c=s.role||s.type,u=c==="user"?"👤":c==="assistant"?"🤖":"⚙️",h=j=>r.activeUuid===s.uuid&&oe(j,r.query),f=s.toolCalls.filter(j=>Oe(j,l)||h(j));if(!(s.text||s.thinking||f.length))return null;const g=s.text?us(s.text):null,m=s.text&&!g?ms(s.text):null,w=s.text||s.thinking||"";return e.jsxs("div",{id:"ev-"+s.uuid,className:"event ev-"+c+(i===s.uuid?" ev-flagged":""),children:[e.jsxs("div",{className:"ev-meta",children:[e.jsxs("span",{className:"ev-who",children:[u," ",c]}),s.model&&e.jsx("span",{className:"tag",children:qs(s.model)}),s.is_sidechain?e.jsx("span",{className:"tag subagent",children:"subagent"}):null,e.jsx("span",{className:"muted ev-time",children:ts(s.timestamp)}),w&&e.jsx(S,{text:w,className:"ev-copy copy-hover",title:"Copy message"})]}),s.thinking&&e.jsxs("div",{className:"thinking",children:[e.jsxs("button",{className:"thinking-toggle","aria-expanded":o,"aria-controls":a,onClick:()=>t(!o),children:["🧠 thinking ",o?"▾":"▸"]}),o&&e.jsxs("div",{className:"code-block",children:[e.jsx(S,{text:s.thinking,className:"copy-corner",title:"Copy thinking"}),e.jsx("pre",{id:a,className:"thinking-body",children:s.thinking})]})]}),s.text&&(g?e.jsx(Ne,{cmd:g}):m?e.jsx(we,{n:m}):e.jsx(js,{text:s.text,uuid:s.uuid})),f.map((j,N)=>e.jsx(Ie,{t:j,hideTools:l&&!h(j)},N))]})}function Me({turn:s,events:n,matches:t=0,open:a,onToggle:l}){const i=d.useId();return e.jsxs("section",{className:"turn"+(a?" is-open":""),children:[e.jsxs("button",{className:"turn-head","aria-expanded":a,"aria-controls":i,onClick:l,children:[e.jsx("span",{className:"chev turn-chev","aria-hidden":"true",children:a?"▾":"▸"}),e.jsxs("span",{className:"turn-no",children:["turn ",s.seq+1]}),s.prompt_preview?e.jsx("span",{className:"turn-preview",children:ge(s.prompt_preview)}):null,t>0&&e.jsx("span",{className:"turn-matches",title:`${t} message${t===1?"":"s"} match the search`,children:t}),e.jsxs("span",{className:"turn-stats muted",children:[n.length," msg",n.length===1?"":"s",s.duration_ms?" · "+T(s.duration_ms):""]})]}),e.jsx("div",{id:i,className:"turn-body",role:"region","aria-label":`turn ${s.seq+1} messages`,children:a&&n.map(r=>e.jsx(Ns,{e:r},r.uuid))})]})}function Fe(s,n){const t=new Map(n.map(l=>[l.id,l])),a=[];for(const l of s){const i=l.turn_id??null,r=a[a.length-1];r&&r.turnId===i?r.events.push(l):a.push({turnId:i,turn:i?t.get(i)??null:null,events:[l]})}return a}function $e(s){const{data:n,error:t}=As("/sessions/"+s,{reset:!0}),a=d.useMemo(()=>{const l=new Map;for(const i of(n==null?void 0:n.events)??[])for(const r of i.toolCalls)r.tool_name==="Workflow"&&r.id&&r.workflow_run_id&&l.set(r.id,r.workflow_run_id);return l},[n]);return{d:n,error:t,wfMap:a}}const P="al-search";function Re(s,n){d.useEffect(()=>{const t=s.current,a=CSS==null?void 0:CSS.highlights,l=globalThis.Highlight;if(!t||!a||!l)return;const i=n.trim().toLowerCase();let r=0;const o=()=>{var f;if(r=0,a.delete(P),i.length<M)return;const u=[],h=document.createTreeWalker(t,NodeFilter.SHOW_TEXT);for(let x=h.nextNode();x;x=h.nextNode()){const g=(f=x.nodeValue)==null?void 0:f.toLowerCase();if(g)for(let m=g.indexOf(i);m!==-1;m=g.indexOf(i,m+i.length)){const w=new Range;w.setStart(x,m),w.setEnd(x,m+i.length),u.push(w)}}u.length&&a.set(P,new l(...u))};o();const c=new MutationObserver(()=>{r||(r=requestAnimationFrame(o))});return c.observe(t,{childList:!0,subtree:!0,characterData:!0}),()=>{c.disconnect(),r&&cancelAnimationFrame(r),a.delete(P)}},[s,n])}function qe(s,n,t,a,l){const[i,r]=d.useState(null);d.useEffect(()=>{var u;const c=n?(u=s==null?void 0:s.find(h=>h.uuid===n))==null?void 0:u.turn_id:null;c&&l(h=>{if(!h.has(c))return h;const f=new Set(h);return f.delete(c),f})},[s,n,t,l]);const o=d.useRef(null);return d.useEffect(()=>{if(!s||!n||!t){o.current=null;return}if(o.current===t)return;const c=document.getElementById("ev-"+n);if(!c)return;o.current=t,c.scrollIntoView({block:"center",behavior:"smooth"}),r(n);const u=window.setTimeout(()=>r(null),3e3);return()=>window.clearTimeout(u)},[s,n,t,a]),i}const H="msgFormat",J="hideTools";function ws(s){const n=Ls(s,null);if(n!=null)return n;try{return localStorage.getItem("agentlens."+s)}catch{return null}}const _s=s=>s==="raw"?"raw":"markdown",bs=s=>s===!0||s===1||s==="1";function Ae(){return _s(ws(H))}function Le(){return bs(ws(J))}function Be(s){as(H,s)}function Pe(s){as(J,s)}async function Ue(){const[s,n]=await Promise.all([G(H),G(J)]);return{...s!=null?{format:_s(s)}:{},...n!=null?{hideTools:bs(n)}:{}}}function Ke(){var z;const{id:s}=Bs(),{hash:n}=Ps(),{d:t,error:a,wfMap:l}=$e(s),[i,r]=d.useState(new Set),[o,c]=d.useState(Ae),[u,h]=d.useState(Le);d.useEffect(()=>r(new Set),[s]),d.useEffect(()=>{Ue().then(p=>{p.format!==void 0&&c(p.format),p.hideTools!==void 0&&h(p.hideTools)})},[]);const f=p=>{c(p),Be(p)},x=()=>h(p=>(Pe(!p),!p)),g=d.useMemo(()=>(t==null?void 0:t.events.filter(p=>p.text||p.thinking||p.toolCalls.length))??[],[t]),{get:m,set:w}=Us(),j=m("q"),N=d.useMemo(()=>le(g),[g]),b=d.useMemo(()=>ie(g,N,j),[g,N,j]),F=((z=/^#ev-(.+)$/.exec(n))==null?void 0:z[1])??null,[I,ks]=Js(n+`
|
|
15
|
-
`+j,{idx:0,seq:0}),C=b.hits[I.idx]??null,ys=(C==null?void 0:C.uuid)??F,vs=C?`q:${j}:${I.idx}:${I.seq}`:n||null,Ss=qe(t==null?void 0:t.events,ys,vs,i,r),E=p=>{b.total&&ks(_=>({idx:(_.idx+p+b.total)%b.total,seq:_.seq+1}))},$=d.useRef({step:E,total:b.total});$.current={step:E,total:b.total};const W=d.useRef(null),K=d.useRef(null);Re(K,j),d.useEffect(()=>{const p=_=>{var Y;if(_.defaultPrevented||_.metaKey||_.ctrlKey||_.altKey)return;const k=_.target,Is=!!k&&(k.isContentEditable||/^(INPUT|TEXTAREA|SELECT)$/.test(k.tagName));if(_.key==="/"&&!Is){_.preventDefault(),(Y=W.current)==null||Y.focus();return}const q=document.activeElement,Es=!q||q===document.body||q===document.documentElement;_.key==="Enter"&&Es&&$.current.total&&(_.preventDefault(),$.current.step(_.shiftKey?-1:1))};return document.addEventListener("keydown",p),()=>document.removeEventListener("keydown",p)},[]);const Cs=d.useMemo(()=>({query:j,activeUuid:(C==null?void 0:C.uuid)??null}),[j,C]);if(a)return e.jsx(Ds,{error:a});if(!t)return e.jsx(Hs,{});const V=Fe(g,t.turns),R=V.filter(p=>p.turn).map(p=>p.turnId),Q=R.some(p=>!i.has(p)),Ts=p=>r(_=>{const k=new Set(_);return k.has(p)?k.delete(p):k.add(p),k});return e.jsxs("div",{className:"detail",children:[e.jsx(ne,{d:t}),t.children&&t.children.length>0&&e.jsx(me,{d:t}),e.jsx(te,{search:e.jsx(ue,{query:j,onQuery:p=>w({q:p}),total:b.total,index:I.idx,onPrev:()=>E(-1),onNext:()=>E(1),inputRef:W}),turnCount:R.length,anyOpen:Q,onToggleAll:()=>r(Q?new Set(R):new Set),hideTools:u,onToggleHideTools:x,format:o,onChooseFormat:f}),e.jsx(ps.Provider,{value:l,children:e.jsx(hs.Provider,{value:o,children:e.jsx(xs.Provider,{value:u,children:e.jsx(fs.Provider,{value:Ss,children:e.jsx(D.Provider,{value:Cs,children:e.jsxs("div",{className:"transcript",ref:K,children:[g.length===0&&e.jsx("div",{className:"muted pad",role:"status",children:"This session has no rendered messages."}),V.map((p,_)=>p.turn?e.jsx(Me,{turn:p.turn,events:p.events,matches:b.byTurn.get(p.turnId)??0,open:!i.has(p.turnId),onToggle:()=>Ts(p.turnId)},p.turnId):e.jsx("div",{className:"unturned",children:p.events.map(k=>e.jsx(Ns,{e:k},k.uuid))},"unturned-"+_))]})})})})})})]})}export{Ke as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--bg: #0f1115;--panel: #171a21;--panel2: #1e222b;--border: #2a2f3a;--text: #e6e8ec;--muted: #8b93a3;--accent: #6ea8fe;--user: #7ee0a0;--assistant: #6ea8fe;--tag: #2a2f3a;--err: #ff6b6b;--ok: #7ee0a0;--gold: #e0b85a;--violet: #b98cff;--teal: #4fd1c5;--code-bg: var(--bg)}:root[data-theme=light]{--bg: #ffffff;--panel: #f6f7f9;--panel2: #eceef2;--border: #d5d9e0;--text: #1b1f27;--muted: #5b6472;--accent: #2563eb;--user: #0f9d58;--assistant: #2563eb;--tag: #e4e7ec;--err: #d32f2f;--ok: #15803d;--gold: #b7791f;--violet: #7c3aed;--teal: #0d9488;--code-bg: #eef1f5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.5 ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 12px;cursor:pointer}button:hover:not(:disabled){border-color:var(--accent)}button:disabled{opacity:.4;cursor:default}button.ghost{background:transparent}select,input{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 10px}input:focus,select:focus{border-color:var(--accent)}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:8px;top:-40px;z-index:10;background:var(--panel2);border:1px solid var(--accent);border-radius:6px;padding:6px 12px;transition:top .15s ease}.skip-link:focus{top:8px;text-decoration:none}.topbar{display:flex;align-items:center;gap:12px;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--panel);position:sticky;top:0;z-index:5}.brand{font-weight:700;font-size:16px;color:var(--text);display:inline-flex;align-items:center;gap:8px}.brand-logo{height:22px;width:auto;display:block}.tagline{color:var(--muted);font-size:12px}.version-badge{color:var(--muted);font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;padding:2px 6px;border:1px solid var(--border);border-radius:10px;margin-left:-4px;white-space:nowrap}a.version-badge:hover{color:var(--text);border-color:var(--muted)}.topbar-actions{margin-left:auto;display:inline-flex;align-items:center;gap:8px}.theme-toggle{font-size:15px;line-height:1;padding:5px 9px}.refresh-btn{font-size:13px;line-height:1;padding:5px 10px;display:inline-flex;align-items:center;gap:4px}.refresh-btn[disabled]{opacity:.65;cursor:default}.refresh-icon{display:inline-block}.refresh-icon.spinning{animation:agentlens-spin .8s linear infinite}@keyframes agentlens-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.refresh-icon.spinning{animation:none}}.content{max-width:1100px;margin:0 auto;padding:20px}.content.wide{max-width:min(1600px,94vw)}.filters{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.col-th{width:1%;white-space:nowrap;text-align:right}.col-td{width:1%}.col-customizer{position:relative;display:inline-block}.col-customizer>summary{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;padding:2px 6px;border-radius:6px;color:var(--muted);font-size:15px;line-height:1}.col-customizer>summary:hover{background:var(--panel2);color:var(--text)}.col-customizer[open]>summary{background:var(--panel2);color:var(--text)}.col-customizer>summary::-webkit-details-marker{display:none}.col-menu{position:absolute;z-index:20;top:calc(100% + 4px);right:0;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px;min-width:150px;box-shadow:0 6px 20px #00000047}.col-menu label{display:flex;align-items:center;gap:8px;padding:4px 6px;font-size:13px;white-space:nowrap;cursor:pointer}.col-menu .ms-clear{margin-top:6px}.multi-select{position:relative}.multi-select>summary{cursor:pointer;list-style:none;-webkit-user-select:none;user-select:none;padding:7px 10px;border:1px solid var(--border);border-radius:6px;background:var(--panel2);font-size:14px}.multi-select>summary::-webkit-details-marker{display:none}.multi-select[open]>summary{border-color:var(--accent)}.multi-select>.col-menu{left:0;right:auto}.search{display:flex;gap:6px;flex:1;min-width:280px}.search input{flex:1;min-width:0}.search button{flex:none}.filters>select,.filters .search input,.filters .search button,.filters .filter-select-btn,.filters .multi-select>summary{height:36px;box-sizing:border-box;font-size:13px;font-family:inherit}.filters .filter-select-btn,.filters .multi-select>summary{display:inline-flex;align-items:center;padding:0 10px}.muted{color:var(--muted)}.pad{padding:24px 0}.error{color:var(--err);padding:12px;border:1px solid var(--err);border-radius:6px;margin-bottom:12px}table.sessions{width:100%;border-collapse:collapse}.sessions th{text-align:left;font-weight:600;font-size:12px;color:var(--muted);padding:8px;border-bottom:1px solid var(--border)}.sessions th.num,.sessions td.num{text-align:right;font-variant-numeric:tabular-nums}.sessions td{padding:10px 8px;border-bottom:1px solid var(--border);vertical-align:top}.sessions tr:hover td{background:var(--panel)}.title{font-weight:600}.sub{margin-top:4px;display:flex;gap:4px;flex-wrap:wrap}.path{color:var(--muted)}.tag{font-size:11px;background:var(--tag);color:var(--muted);border-radius:4px;padding:1px 6px}.tag.subagent{background:#3a2f10;color:#e0b85a}.tag.meta-type,.tag.meta-depth{margin-left:6px}.tag.meta-depth{background:var(--tag);color:var(--muted)}.schema-banner{background:#3a2f10;color:#e0b85a;border-bottom:1px solid var(--border);padding:8px 16px;font-size:13px;text-align:center}.schema-banner code{background:#0000004d;padding:1px 5px;border-radius:4px}:root[data-theme=light] .schema-banner{background:#fbe9c8;color:#8a5a0f}.pager{display:flex;align-items:center;gap:16px;justify-content:center;margin-top:18px}.page-jump{display:inline-flex;align-items:center}.page-jump select{padding:6px 8px;font-size:13px}.detail-head{margin-bottom:18px}.back{font-size:13px}.detail-head h1{font-size:20px;margin:8px 0}.detail-meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;color:var(--text);font-size:13px}.detail-meta .path,.spawned-by{color:var(--muted)}.export{margin-left:auto;border:1px solid var(--border);border-radius:6px;padding:6px 12px}.export-menu{margin-left:auto}.export-menu>summary.export{display:inline-block;list-style:none;cursor:pointer}.export-menu>summary.export::-webkit-details-marker{display:none}.export-menu .col-menu a{display:block;padding:5px 8px;border-radius:4px;white-space:nowrap;text-decoration:none;color:var(--text)}.export-menu .col-menu a:hover{background:var(--panel2)}.export-menu .col-menu a.export-verbatim{color:var(--warn, #c9772b)}.subagent-link{display:inline-block;font-size:12px;margin:0 0 4px 10px}.subagents{margin:0 0 18px;padding:12px 14px;border:1px solid var(--border);border-radius:8px}.subagents h2{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0 0 8px}.subagents ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.subagents li{font-size:13px}.wf-run{border:1px solid var(--border);border-radius:6px;margin-top:8px;background:var(--panel2)}.wf-run>summary{cursor:pointer;padding:7px 10px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;list-style:none}.wf-run>summary::-webkit-details-marker{display:none}.wf-run>summary:before{content:"▸";color:var(--muted);font-size:11px}.wf-run[open]>summary:before{content:"▾"}.wf-run-name{font-weight:600;font-size:13px}.wf-run>ul{padding:0 10px 10px 24px}.wf-run code{font-size:11px;color:var(--muted)}.cmd{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:4px 0}.cmd-chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;font-weight:600;color:var(--accent);border:1px solid var(--accent);border-radius:6px;padding:2px 9px;background:color-mix(in srgb,var(--accent) 10%,transparent)}.cmd-args{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--muted)}.cmd-out{margin:4px 0 0;padding:6px 10px;border-left:2px solid var(--border);color:var(--muted);font-size:12px;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.cmd-note{margin:2px 0}.bash-desc,.bash-preview{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}.bash-preview{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.shell{margin-top:6px;background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:10px}.shell-cmd{margin:0;white-space:pre-wrap;word-break:break-word;overflow-x:auto;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.shell-gutter{color:var(--accent);-webkit-user-select:none;user-select:none}.shell-gutter.cont{color:transparent}.shell-out{margin:6px 0 0;padding:8px 10px;white-space:pre-wrap;word-break:break-word;overflow-x:auto;background:var(--code-bg);border-radius:6px;color:var(--muted);font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.bash-badges{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}.bash-badge{font-size:11px;color:var(--muted);background:var(--tag);border-radius:6px;padding:1px 7px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.edit-path{flex:1;min-width:0;display:flex;gap:8px;align-items:baseline;overflow:hidden;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.edit-path .base{font-weight:600;flex:none}.edit-path .dir{color:var(--muted);font-size:11px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-stat{flex:none;display:inline-flex;gap:6px;font-size:11px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.diff-stat .add{color:var(--ok)}.diff-stat .del{color:var(--err)}.diff{margin-top:6px;border:1px solid var(--border);border-radius:6px;overflow:hidden;background:var(--code-bg)}.diff-line{display:flex;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;line-height:1.5}.diff-sign{width:2ch;flex:none;text-align:center;-webkit-user-select:none;user-select:none;color:var(--muted)}.diff-text{flex:1;min-width:0;white-space:pre-wrap;word-break:break-word;padding-right:8px}.diff-line.add{background:color-mix(in srgb,var(--ok) 15%,transparent)}.diff-line.add .diff-sign{color:var(--ok)}.diff-line.del{background:color-mix(in srgb,var(--err) 15%,transparent)}.diff-line.del .diff-sign{color:var(--err)}.diff-line.ctx{color:var(--muted)}.diff-hunk-sep{padding:2px 8px;font-size:11px;color:var(--muted);background:var(--panel2);border-bottom:1px solid var(--border)}.diff-more{padding:4px 8px;font-size:11px;color:var(--muted);font-style:italic}.task-notif{margin:4px 0;padding:7px 10px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;background:var(--panel2)}.task-notif-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}.task-notif-id{font-size:11px;color:var(--muted)}.task-notif-summary{margin-top:4px;font-size:13px;color:var(--muted)}.task-status{text-transform:lowercase}.task-status-completed{color:var(--ok, #2e7d32);border-color:var(--ok, #2e7d32)}.task-status-failed,.task-status-error{color:var(--err, #c62828);border-color:var(--err, #c62828)}.wf-result{margin-top:14px}.wf-result h2{margin-bottom:6px;display:flex;align-items:baseline;gap:8px}.wf-result-summary{margin:0 0 8px;font-size:14px}.wf-result-body{max-height:520px;overflow:auto}.wf-failures{margin-top:8px}.wf-failures>summary{cursor:pointer;color:var(--muted);font-size:13px}.wf-trunc{margin-top:6px}.rv-root{font-size:13px;line-height:1.55}.json-chev{color:var(--muted);display:inline-block;width:1.1em}.json-number{color:#f0a868}.json-null{color:var(--muted)}.rv-str{overflow-wrap:anywhere}.rv-true{color:var(--user)}.rv-false{color:var(--err)}.rv-metrics{display:flex;flex-wrap:wrap;gap:4px 20px;margin:4px 0 10px}.rv-metric{display:flex;gap:7px;align-items:baseline}.rv-mkey{color:var(--muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}.rv-mval{font-weight:600}.rv-list{margin:4px 0;padding-left:18px}.rv-section{margin:3px 0}.rv-sec-head{background:none;border:none;border-radius:0;padding:3px 0;margin:0;cursor:pointer;font:inherit;color:var(--text);text-align:left;width:100%;display:flex;gap:6px;align-items:baseline}.rv-sec-head:hover{text-decoration:none}.rv-sec-name{color:var(--accent);font-weight:600}.rv-sec-body{padding-left:12px;margin-left:4px;border-left:1px solid var(--border)}.rv-table-wrap{max-height:360px;overflow:auto;border:1px solid var(--border);border-radius:6px;margin:4px 0}.rv-table{border-collapse:collapse;width:100%;font-size:12.5px}.rv-table th{position:sticky;top:0;background:var(--panel2);text-align:left;padding:5px 9px;color:var(--muted);font-weight:600;border-bottom:1px solid var(--border);white-space:nowrap}.rv-table td{padding:4px 9px;border-bottom:1px solid var(--border);vertical-align:top}.rv-table tr:last-child td{border-bottom:none}.rv-rowkey{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--accent);white-space:nowrap}.transcript{display:flex;flex-direction:column;gap:10px}.transcript-tools{display:flex;align-items:center;gap:12px;margin-bottom:2px}.unturned{display:flex;flex-direction:column;gap:10px}.transcript-search{display:flex;align-items:center;gap:6px;margin-bottom:6px}.transcript-search input{flex:1;min-width:0;max-width:420px}.transcript-search .ts-icon{flex:none;opacity:.7}.transcript-search .ts-count{flex:none;min-width:116px}.search-nav{position:fixed;right:18px;bottom:18px;z-index:20;display:flex;align-items:center;gap:6px;max-width:calc(100vw - 36px);padding:6px 8px;background:var(--panel2);border:1px solid var(--border);border-radius:999px;box-shadow:0 4px 16px #00000047}.search-nav .sn-term{display:flex;align-items:center;gap:8px;min-width:0;padding:2px 2px 2px 0;font-size:12px}.search-nav .sn-q{color:var(--muted);max-width:22ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-nav .sn-pos{color:var(--text);font-weight:600;font-variant-numeric:tabular-nums}:root{--hl-bg: #e0b85a;--hl-fg: #0f1115}:root[data-theme=light]{--hl-bg: #ffe08a;--hl-fg: #1b1f27}::highlight(al-search){background-color:var(--hl-bg);color:var(--hl-fg)}.turn-matches{flex:none;font-size:11px;font-weight:600;color:var(--hl-fg);background:var(--hl-bg);border-radius:999px;padding:1px 7px}.turn{display:flex;flex-direction:column;gap:10px}.turn-head{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:transparent;border:none;border-top:1px dashed var(--border);border-radius:0;padding:8px 4px 4px;font-size:12px;color:var(--accent);position:sticky;top:0;z-index:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.turn-head:hover:not(:disabled){border-color:var(--accent)}.turn-head .turn-chev{margin-left:0;color:var(--muted)}.turn-no{font-weight:600}.turn-preview{color:var(--muted);font-weight:400;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.turn-stats{margin-left:auto;flex:none}.turn-body{display:flex;flex-direction:column;gap:10px}.turn-body:empty{display:none}.event{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px;scroll-margin-top:16px}.event.ev-user{border-left:3px solid var(--user)}.event.ev-assistant{border-left:3px solid var(--assistant)}.event.ev-flagged{animation:agentlens-flag 3s ease-out;position:relative;z-index:1}@keyframes agentlens-flag{0%,45%{box-shadow:inset 6px 0 0 var(--gold),0 0 0 2px var(--gold),0 0 22px 2px color-mix(in srgb,var(--gold) 45%,transparent);background:color-mix(in srgb,var(--gold) 22%,var(--panel))}to{box-shadow:inset 0 0 0 0 transparent,0 0 0 0 transparent,0 0 0 0 transparent;background:var(--panel)}}@media(prefers-reduced-motion:reduce){.event.ev-flagged{animation:none;box-shadow:inset 6px 0 0 var(--gold),0 0 0 2px var(--gold);background:color-mix(in srgb,var(--gold) 18%,var(--panel))}}.ev-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:12px}.ev-who{font-weight:600}.ev-time{margin-left:auto}.text{white-space:pre-wrap;word-break:break-word}.text-wrap{position:relative}.text-wrap.is-clamped .text{max-height:22em;overflow:hidden}.text-wrap.is-clamped:after{content:"";position:absolute;left:0;right:0;top:calc(22em - 48px);height:48px;background:linear-gradient(transparent,var(--panel));pointer-events:none}.show-more{margin-top:6px;position:relative}.transcript-tools .format-toggle{margin-left:auto;display:flex;gap:0}.format-toggle button,.view-toggle button{border-radius:0}.format-toggle button:first-child,.view-toggle button:first-child{border-radius:6px 0 0 6px}.format-toggle button:last-child,.view-toggle button:last-child{border-radius:0 6px 6px 0}.format-toggle button:not(:first-child),.view-toggle button:not(:first-child){margin-left:-1px}.format-toggle button.is-active,.view-toggle button.is-active{background:var(--panel2);color:var(--text);border-color:var(--accent);z-index:1}.text.md{white-space:normal}.md>:first-child{margin-top:0}.md>:last-child{margin-bottom:0}.md p{margin:0 0 .7em}.md h1,.md h2,.md h3,.md h4,.md h5,.md h6{margin:1em 0 .4em;line-height:1.25;font-weight:600}.md h1{font-size:1.3em}.md h2{font-size:1.18em}.md h3{font-size:1.08em}.md h4,.md h5,.md h6{font-size:1em}.md ul,.md ol{margin:0 0 .7em;padding-left:1.4em}.md li{margin:.15em 0}.md li>ul,.md li>ol{margin-bottom:0}.md a{color:var(--accent);text-decoration:underline}.md code{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:.88em;background:var(--code-bg);border:1px solid var(--border);border-radius:4px;padding:.1em .35em}.md pre{background:var(--code-bg);border:1px solid var(--border);border-radius:6px;padding:10px;overflow-x:auto;margin:0 0 .7em}.md pre code{background:none;border:none;padding:0;font-size:.85em}.md blockquote{margin:0 0 .7em;padding:.1em 0 .1em .9em;border-left:3px solid var(--border);color:var(--muted)}.md hr{border:none;border-top:1px solid var(--border);margin:1em 0}.md table{border-collapse:collapse;margin:0 0 .7em;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border);padding:5px 9px;text-align:left}.md th{background:var(--panel2)}.md img{max-width:100%}.thinking{margin:4px 0}.thinking-toggle{font-size:12px;padding:2px 8px;color:var(--muted)}.thinking-body{white-space:pre-wrap;word-break:break-word;background:var(--panel2);border-radius:6px;padding:10px;margin:6px 0;color:var(--muted);font-size:13px}.tool{margin-top:6px;border:1px solid var(--border);border-radius:6px;background:var(--panel2)}.tool-err{border-color:var(--err)}.tool-err-stat{color:var(--err)}.tool-head{display:flex;align-items:center;gap:10px;width:100%;background:transparent;border:none;text-align:left}.tool-name{font-weight:600;font-size:13px}.tool-status{font-size:11px;color:var(--muted)}.chev{margin-left:auto;color:var(--muted)}.tool-body{padding:0 10px 10px}.code,.result{white-space:pre-wrap;word-break:break-word;background:var(--code-bg);border-radius:6px;padding:10px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px;overflow-x:auto}.result{color:var(--muted);margin-top:6px;font-family:inherit}.full-result{margin-top:6px}.full-result .show-full{font-size:12px;color:var(--accent);border:1px solid var(--border);border-radius:6px;padding:2px 8px;cursor:pointer}.full-result .code-block{margin-top:6px}.full-result .code{max-height:420px;overflow:auto}.nav{display:flex;gap:4px}.nav-link{color:var(--muted);font-size:13px;padding:4px 10px;border-radius:6px}.nav-link:hover{text-decoration:none;color:var(--text);background:var(--panel2)}.nav-link.active{color:var(--text);background:var(--panel2)}.ctl{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.kpi{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:12px 14px}.kpi-label{font-size:12px;color:var(--muted)}.kpi-value{font-size:22px;font-weight:700;margin:4px 0;font-variant-numeric:tabular-nums}.kpi-sub{font-size:11px;color:var(--muted)}.kpi-bd{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:5px}.kpi-bd li{display:grid;grid-template-columns:auto 1fr auto auto;align-items:center;gap:8px;font-size:13px}.kpi-bd-dot{width:9px;height:9px;border-radius:2px}.kpi-bd-name{color:var(--muted)}.kpi-bd-val{font-variant-numeric:tabular-nums;font-weight:600}.kpi-bd-pct{font-variant-numeric:tabular-nums;color:var(--muted);min-width:32px;text-align:right}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(380px,1fr));gap:14px}.card{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:14px;min-width:0;display:flex;flex-direction:column}.card-head{display:flex;align-items:baseline;gap:10px;margin-bottom:10px;flex-wrap:wrap}.card-head h3{margin:0;font-size:14px}.card-hint{font-size:11px;color:var(--muted)}.card-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.link-btn{background:none;border:none;color:var(--accent);font-size:11px;cursor:pointer;padding:0;white-space:nowrap}.link-btn:hover{text-decoration:underline}.chart-body{height:var(--chart-h, 240px)}.seg{display:inline-flex;border:1px solid var(--border);border-radius:6px;overflow:hidden}.seg button{background:none;border:none;color:var(--muted);font-size:11px;padding:2px 8px;cursor:pointer}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--panel2);color:var(--text)}.views{display:flex;margin-bottom:14px}.dash-strip{margin-bottom:18px}.strip-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}.strip-head h2{font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin:0}.strip-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.strip-menu{min-width:210px}.strip-row{display:flex;align-items:center;gap:2px}.strip-row label{flex:1}.strip-row .move{background:none;border:none;color:var(--muted);cursor:pointer;padding:2px 5px;font-size:12px;line-height:1;border-radius:4px}.strip-row .move:hover:not(:disabled){background:var(--panel2);color:var(--text)}.strip-row .move:disabled{opacity:.3;cursor:default}.axis-link{fill:var(--muted);cursor:pointer}.axis-link:hover{fill:var(--accent);text-decoration:underline}.empty{color:var(--muted);font-size:13px;padding:24px 8px}.empty code{background:var(--panel2);padding:1px 5px;border-radius:4px}.classification{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.tag.complexity{background:#2c2440;color:#b98cff}.tag.cat{color:var(--text);background:#243}.tag.cat-feature{background:#173a2a;color:#7ee0a0}.tag.cat-bugfix{background:#3a1d1d;color:#ff9b9b}.tag.cat-refactor{background:#233247;color:#6ea8fe}.tag.cat-docs{background:#2f2a16;color:#e0b85a}.tag.cat-ops{background:#232a33;color:#79c0ff}.tag.cat-review{background:#2c2440;color:#b98cff}.tag.cat-chore{background:var(--tag);color:var(--muted)}.small{font-size:12px}button.small{padding:2px 8px;font-size:12px}.signals{margin-top:8px;max-height:320px;overflow:auto;width:100%}.signals-panel{width:100%;margin-top:8px;padding:12px 14px;background:var(--panel);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;gap:14px}.sig-section{display:flex;flex-direction:column;gap:7px}.sig-h{margin:0;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text)}.sig-h .muted{font-weight:400;text-transform:none;letter-spacing:0}.sig-bars{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:5px}.sig-bar-row{display:grid;grid-template-columns:110px 1fr auto;align-items:center;gap:10px;font-size:12px}.sig-bar-label{color:var(--text);text-transform:capitalize}.sig-bar{height:8px;background:var(--code-bg);border-radius:4px;overflow:hidden}.sig-bar-fill{display:block;height:100%;background:var(--accent);border-radius:4px;min-width:2px}.sig-bar-val{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.sig-bar-sub{grid-column:2 / -1;font-size:11px;margin-top:-2px}.sig-bar-row.is-win .sig-bar-fill{background:var(--user)}.sig-bar-row.is-win .sig-bar-label{color:var(--user);font-weight:600}.sig-grid{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:12px}.sig-grid dt{color:var(--muted)}.sig-grid dd{margin:0;color:var(--text)}.sig-chips{display:inline-flex;flex-wrap:wrap;gap:4px 6px}.sig-chip{background:var(--panel2);border:1px solid var(--border);border-radius:4px;padding:1px 6px}.sig-files{font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:11px;color:var(--muted);word-break:break-all;max-height:140px;overflow:auto}.skill-head{margin:8px 0 14px}.skill-head h1{margin:0 0 4px;font-size:1.5em}.skill-head-meta{font-size:13px}.skill-version-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:14px}.skill-version-bar select{max-width:460px}.skill-cards{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px;align-items:start}@media(max-width:1200px){.skill-cards{grid-template-columns:1fr}}.skill-body{max-height:70vh;overflow:auto}.file-view .card{margin-top:14px}.skill-body-card,.skill-sessions-card{min-width:0}.skill-sessions-card table{width:100%}.sessions th .sort-th{display:inline-flex;align-items:center;gap:4px;background:none;border:none;padding:0;margin:0;font:inherit;font-weight:600;font-size:12px;color:var(--muted);cursor:pointer}.sessions th .sort-th:hover:not(:disabled){color:var(--text);border:none}.sessions th .sort-th.is-active{color:var(--text)}.sort-ind{font-size:9px;opacity:.6}.sessions th .sort-th.is-active .sort-ind{color:var(--accent);opacity:1}.filter-select{position:relative;display:inline-block}.filter-select-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-width:180px;max-width:280px;text-align:left;padding:6px 10px}.filter-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-select .chev{color:var(--muted);font-size:10px}.filter-select-pop{position:absolute;z-index:20;top:calc(100% + 4px);left:0;min-width:240px;max-width:380px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;box-shadow:0 8px 24px #0000004d;padding:6px}.filter-select-search{width:100%;margin-bottom:6px}.filter-select-list{list-style:none;margin:0;padding:0;max-height:260px;overflow-y:auto}.filter-select-opt{padding:6px 8px;border-radius:5px;cursor:pointer;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.filter-select-opt.is-active{background:var(--panel)}.filter-select-opt.is-selected{color:var(--accent);font-weight:600}.filter-select-empty{padding:8px;font-size:13px}.plan-card{margin-top:6px;border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;background:var(--panel2);padding:8px 12px}.plan-card-head{font-weight:600;font-size:13px;margin-bottom:4px}.qa-card{margin-top:6px;border:1px solid var(--border);border-left:3px solid var(--user);border-radius:6px;background:var(--panel2);padding:8px 12px}.qa-card-head{font-weight:600;font-size:13px;margin-bottom:6px}.qa-q{margin:8px 0}.qa-q+.qa-q{border-top:1px solid var(--border);padding-top:8px}.qa-q-head{display:flex;gap:8px;align-items:baseline;margin-bottom:2px}.qa-question{font-weight:600;font-size:13px;margin-bottom:6px}.qa-options{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.qa-opt{display:flex;gap:8px;align-items:baseline;padding:5px 8px;border:1px solid var(--border);border-radius:5px}.qa-opt.is-selected{border-color:var(--ok);background:var(--panel)}.qa-mark{font-size:13px;line-height:1.3}.qa-opt.is-selected .qa-mark{color:var(--ok)}.qa-opt-body{display:flex;flex-direction:column;gap:2px;min-width:0}.qa-opt-label{font-weight:600;font-size:13px}.qa-opt-desc{font-size:12px}.qa-note{margin-top:6px;font-size:13px;color:var(--muted);border-left:2px solid var(--border);padding-left:8px}.copy-btn{font-size:11px;padding:2px 7px;line-height:1.4;color:var(--muted);flex:none}.copy-btn:hover:not(:disabled){color:var(--text)}.copy-hover{opacity:0;transition:opacity .12s}.event:hover .copy-hover,.copy-hover:focus-visible{opacity:1}.ev-copy{margin-left:auto}.code-block{position:relative}.code-block .copy-corner{position:absolute;top:6px;right:6px;z-index:1;background:var(--panel2);opacity:0;transition:opacity .12s}.code-block:hover .copy-corner,.code-block .copy-corner:focus-visible{opacity:1}.launch{margin-top:6px;font-size:13px}.launch-meta{margin-bottom:10px;display:flex;flex-direction:column;gap:4px}.launch-desc{font-size:13px}.launch-metaline{font-size:12px}.launch-metaline code{font-size:11px;color:var(--muted);word-break:break-all}.launch-src>summary{cursor:pointer;font-size:12px;color:var(--muted)}.launch-src pre{margin-top:6px;max-height:320px;overflow:auto}.launch-tasks-head{font-size:12px;color:var(--muted);font-weight:600;margin:4px 0 8px}.launch-card{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:6px;background:var(--panel2);padding:8px 12px;margin-bottom:8px}.launch-card-head{display:flex;align-items:baseline;gap:8px;font-weight:600;font-size:13px;margin-bottom:6px}.launch-card-idx{flex:none;min-width:20px;height:20px;padding:0 6px;border-radius:10px;background:var(--tag);color:var(--muted);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}.launch-card-title{word-break:break-word}.launch-fields{margin:0;display:flex;flex-direction:column;gap:8px}.launch-field>dt{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:2px}.launch-field>dd{margin:0}.launch-text{white-space:pre-wrap;word-break:break-word}.launch-list{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:3px}.launch-list>li{padding-left:2px}.launch-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.launch-raw{max-height:420px;overflow:auto;margin-top:6px}.wf-launch details>summary{cursor:pointer;list-style:none}.wf-launch details>summary::-webkit-details-marker{display:none}.wf-launch details>summary h2{display:inline-flex;align-items:baseline;gap:6px}.wf-launch details>summary h2:before{content:"▸";color:var(--muted);font-size:12px}.wf-launch details[open]>summary h2:before{content:"▾"}.launch-tool{border-left:3px solid var(--accent);padding:8px 12px}.launch-tool-head{display:flex;align-items:baseline;gap:10px;margin-bottom:2px}.wf-phases{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;margin-top:10px}.wf-phase-chip{display:flex;flex-direction:column;gap:2px;font-size:12px;padding:6px 12px;border:1px solid var(--border);border-radius:10px;background:var(--panel2);min-width:88px}.wf-phase-title{font-weight:600}.wf-phase-desc{color:var(--muted);font-size:11px}.wf-phase-arrow{align-self:center;color:var(--muted);font-size:15px}.wf-logs{margin-top:14px}.wf-logs>summary{cursor:pointer;font-size:13px;font-weight:600}.wf-log-list{margin:8px 0 0;padding-left:0;list-style:none;display:flex;flex-direction:column;gap:2px;font-family:ui-monospace,SF Mono,Menlo,monospace;font-size:12px}.wf-log-list>li{padding:3px 8px;border-radius:4px;background:var(--panel2);white-space:pre-wrap;word-break:break-word}:root[data-theme=light] .brand-logo{filter:brightness(.5) saturate(1.8)}:root[data-theme=light] .tag.subagent{background:#f6e6c8;color:#8a6d1f}:root[data-theme=light] .tag.complexity{background:#ece4fb;color:#6d28d9}:root[data-theme=light] .tag.cat{background:#dff0e6;color:#10633a}:root[data-theme=light] .tag.cat-feature{background:#d8f3e3;color:#0f7a44}:root[data-theme=light] .tag.cat-bugfix{background:#fbe0e0;color:#b12626}:root[data-theme=light] .tag.cat-refactor{background:#dbe8fb;color:#1d4ed8}:root[data-theme=light] .tag.cat-docs{background:#f6ecd0;color:#8a6d1f}:root[data-theme=light] .tag.cat-ops{background:#dceaf8;color:#1a5fa8}:root[data-theme=light] .tag.cat-review{background:#ece4fb;color:#6d28d9}:root[data-theme=light] .json-number{color:#b45309}.tag.sev{font-weight:600;text-transform:capitalize}.sev-critical{background:#3a1a1a;color:#ff8f8f}.sev-high{background:#3a2a12;color:#f0a860}.sev-medium{background:#2f2a16;color:#e0b85a}.sev-low{background:#23303f;color:#79c0ff}.sev-info{background:var(--tag);color:var(--muted)}.sec-count{display:inline-flex;align-items:center;gap:6px;justify-content:flex-end}.sev-dot{display:inline-block;width:9px;height:9px;border-radius:50%;background:var(--muted);flex:none}.sev-dot.sev-critical{background:#ff8f8f}.sev-dot.sev-high{background:#f0a860}.sev-dot.sev-medium{background:#e0b85a}.sev-dot.sev-low{background:#79c0ff}.sev-dot.sev-info{background:var(--muted)}:root[data-theme=light] .sev-dot.sev-critical{background:#b12626}:root[data-theme=light] .sev-dot.sev-high{background:#b5651d}:root[data-theme=light] .sev-dot.sev-medium{background:#8a6d1f}:root[data-theme=light] .sev-dot.sev-low{background:#1a5fa8}.tag.framework{background:transparent;border:1px solid var(--border);color:var(--muted)}.sev-border-critical{border-left:3px solid var(--err)}.sev-border-high{border-left:3px solid #e0873a}.sev-border-medium{border-left:3px solid var(--gold)}.sev-border-low{border-left:3px solid var(--accent)}.sev-border-info{border-left:3px solid var(--border)}.tool-findings{display:flex;flex-direction:column;gap:6px;margin:4px 0 10px}.finding{background:var(--panel);border:1px solid var(--border);border-radius:6px}.finding-head{display:flex;align-items:center;gap:8px;width:100%;background:none;border:none;padding:7px 10px;text-align:left;cursor:pointer}.finding-head:hover:not(:disabled){border-color:transparent}.finding-title{font-weight:600;font-size:13px}.finding-head .chev{margin-left:auto;color:var(--muted)}.finding-body{padding:0 10px 10px;display:flex;flex-direction:column;gap:8px}.finding-evidence{white-space:pre-wrap;word-break:break-word}.security-banner{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:12px;padding:8px 12px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.security-banner-text{font-weight:600;font-size:13px}.security-banner-sevs{display:flex;gap:5px;flex-wrap:wrap}.kpi-row{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:16px}.sev-kpis .kpi{min-width:108px}.kpi-btn{display:block;text-align:left;cursor:pointer;color:inherit;font:inherit;text-decoration:none}.kpi-btn:hover{border-color:var(--accent);text-decoration:none}.kpi-btn.is-active{border-color:var(--accent);outline:2px solid var(--accent)}.sev-kpi.sev-critical .kpi-value{color:#ff8f8f}.sev-kpi.sev-high .kpi-value{color:#f0a860}.sev-kpi.sev-medium .kpi-value{color:#e0b85a}.sev-kpi.sev-low .kpi-value{color:#79c0ff}.finding-evidence-cell code{white-space:pre-wrap;word-break:break-word;font-size:12px;color:var(--muted)}.findings-table td{vertical-align:top}.linkish{background:none;border:none;color:var(--accent);cursor:pointer;padding:0 2px;font:inherit}.sec-reference{margin-top:28px}.sec-reference h2{font-size:16px;margin-bottom:4px}.sec-ref-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:12px;margin-top:10px}.sec-ref>summary{display:flex;align-items:center;gap:10px;cursor:pointer;flex-wrap:wrap;list-style:none}.sec-ref>summary::-webkit-details-marker{display:none}.sec-ref>summary:before{content:"▸";color:var(--muted)}.sec-ref[open]>summary:before{content:"▾"}.sec-ref-title{font-weight:600}.sec-ref-body{margin:10px 0 0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px}.sec-ref-body dt{color:var(--muted);font-size:12px}.sec-ref-body dd{margin:0;font-size:13px;line-height:1.45}.demo-note{margin:0 0 16px;padding:9px 13px;border-radius:8px;font-size:13px;background:var(--panel);border:1px solid var(--border);color:var(--muted)}.demo-note strong{color:var(--text)}.triage-counts{margin:-6px 0 12px}.triage-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px;padding:8px 12px;background:var(--panel);border:1px solid var(--border);border-radius:8px}.triage-bar button{font-size:13px}.check-col{width:28px;text-align:center}.findings-table .check-col input{cursor:pointer}tr.is-dismissed{opacity:.6}.finding-evidence-cell .tool-tag{margin-right:6px;vertical-align:middle}.finding-actions{white-space:nowrap}.finding-actions .linkish{margin-right:8px}.muted-rules{margin-top:20px}.muted-rules>summary{cursor:pointer;list-style:none}.muted-rules>summary::-webkit-details-marker{display:none}.muted-rules>summary:before{content:"▸ ";color:var(--muted)}.muted-rules[open]>summary:before{content:"▾ "}.muted-rules-list{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.muted-rules-list li{display:flex;align-items:center;gap:4px;font-size:13px;flex-wrap:wrap}:root[data-theme=light] .sev-critical{background:#fbe0e0;color:#b12626}:root[data-theme=light] .sev-high{background:#f7e2c8;color:#b5651d}:root[data-theme=light] .sev-medium{background:#f6ecd0;color:#8a6d1f}:root[data-theme=light] .sev-low{background:#dceaf8;color:#1a5fa8}:root[data-theme=light] .sev-kpi.sev-critical .kpi-value{color:#b12626}:root[data-theme=light] .sev-kpi.sev-high .kpi-value{color:#b5651d}:root[data-theme=light] .sev-kpi.sev-medium .kpi-value{color:#8a6d1f}:root[data-theme=light] .sev-kpi.sev-low .kpi-value{color:#1a5fa8}.page-intro{margin:4px 0 0}.filter-chip{align-self:center}.tag.dismissed{margin-left:4px}.tag.framework,.findings-table .tag.subagent,.tag.mute-scope,.mute-note{margin-left:6px}.linkish.unmute{margin-left:8px}.sec-reference-intro{margin-top:0}.about{max-width:900px}.about h1{margin-bottom:4px}.about>p.muted{margin-top:0}.about section{margin-top:28px}.about h2{font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:8px}table.kv{width:100%;border-collapse:collapse}table.kv th[scope=row]{text-align:left;font-weight:500;color:var(--muted);padding:8px 16px 8px 0;vertical-align:top;white-space:nowrap;width:1%}table.kv td{padding:8px 0;vertical-align:top}table.kv tr+tr th,table.kv tr+tr td{border-top:1px solid var(--border)}table.kv .muted{font-size:12px;margin-top:4px}.about code.path{word-break:break-all}.origin-tag{font-size:11px;color:var(--muted);background:var(--tag);border-radius:8px;padding:1px 6px;white-space:nowrap}.warn-tag{font-size:11px;color:#e0b85a;background:#3a2f10;border-radius:8px;padding:1px 6px;white-space:nowrap}
|