copilot-usage-studio 0.2.1 → 0.2.2

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.
@@ -1 +0,0 @@
1
- import{$a as P,Ba as k,Ca as p,Da as g,Ea as D,Fa as b,Ga as S,Ha as h,Ia as a,Ja as i,Ka as I,O as z,Oa as O,P as y,Qa as v,Sa as u,U as E,Ua as w,Va as s,Wa as m,Xa as C,Ya as T,Z as x,Za as V,_a as _,a as F,ab as N,b as $,db as f,ka as r,nb as A,ob as R,sa as q,sb as B,tb as j,ub as W,vb as K,wb as H,xb as Q,yb as G,zb as U}from"./chunk-WOIYAEKB.js";var J=(o,e)=>e.kind+":"+e.path,X=(o,e)=>e.id,Z=(o,e)=>e.sessionId,ee=(o,e)=>e.callNumber,te=(o,e)=>e.key,ne=(o,e)=>e.raw+e.label;function ie(o,e){if(o&1&&(a(0,"span"),s(1),i()),o&2){let t=u(2);r(),m(t.evidenceScanProgressLabel())}}function oe(o,e){if(o&1&&(a(0,"p",34),s(1),i()),o&2){let t=u(2);r(),m(t.activeScanStats())}}function ae(o,e){if(o&1&&(a(0,"span"),s(1),i()),o&2){let t=u(2);r(),C("Running ",t.elapsedScanLabel())}}function se(o,e){if(o&1&&(a(0,"span"),s(1),i()),o&2){let t=u(2);r(),C("Last update ",t.lastProgressLabel()," ago")}}function re(o,e){if(o&1&&(a(0,"div",32)(1,"div")(2,"strong"),s(3),i(),p(4,ie,2,1,"span"),i(),I(5,"progress",33),i(),p(6,oe,2,1,"p",34),a(7,"p",35),p(8,ae,2,1,"span"),p(9,se,2,1,"span"),i()),o&2){let t=u();r(3),m(t.evidenceScanProgressPercent()?t.evidenceScanProgressPercent()+"%":"Working"),r(),g(t.evidenceScanProgressLabel()?4:-1),r(),h("value",t.evidenceScanProgressPercent()||null),r(),g(t.activeScanStats()?6:-1),r(2),g(t.elapsedScanLabel()?8:-1),r(),g(t.lastProgressLabel()?9:-1)}}function ce(o,e){o&1&&(a(0,"p",7),s(1,"This is taking longer than expected. You can stop it; existing data will be kept."),i())}function le(o,e){o&1&&(a(0,"p",7),s(1,"No recent progress update has been received."),i())}function de(o,e){if(o&1){let t=O();a(0,"button",36),v("click",function(){z(t);let c=u();return y(c.cancelScan.emit())}),s(1,"Stop evidence scan"),i()}}function ue(o,e){o&1&&I(0,"span",11)}function me(o,e){if(o&1&&(a(0,"option",27),s(1),i()),o&2){let t=e.$implicit;h("value",t),r(),m(t==="all"?"All workspaces":t)}}function pe(o,e){if(o&1&&(a(0,"div")(1,"b"),s(2),i(),a(3,"code"),s(4),i()()),o&2){let t=e.$implicit,n=u(2);r(2),m(n.diagnosticKindLabel(t.kind)),r(2),m(t.path)}}function ge(o,e){o&1&&(a(0,"p",29),s(1,"Showing the first 80 recorded locations. Generated scan diagnostics are capped."),i())}function Ce(o,e){if(o&1&&(a(0,"div",37),b(1,pe,5,2,"div",null,J),i(),p(3,ge,2,0,"p",29)),o&2){let t=u();r(),S(t.scanDiagnostics().locations),r(2),g(t.scanDiagnostics().capped?3:-1)}}function ve(o,e){o&1&&(a(0,"p",29),s(1,"No source-location details were recorded for this scan. This does not mean no customization files were found."),i())}function xe(o,e){if(o&1){let t=O();a(0,"button",43),v("click",function(){z(t);let c=u(2);return y(c.resetFilters())}),s(1,"Reset"),i()}}function he(o,e){if(o&1){let t=O();a(0,"button",44),v("click",function(){let c=z(t).$implicit,l=u(2);return y(l.selectCustomization(c))}),a(1,"span",45),s(2),i(),a(3,"span",46)(4,"strong"),s(5),i(),a(6,"small"),s(7),i()(),a(8,"span",47)(9,"b"),s(10),i(),a(11,"em"),s(12),i()()()}if(o&2){let t=e.$implicit,n=u(2);w("active",n.selectedCustomizationId()===t.id)("sent",t.evidenceStatus==="sent")("listed",t.evidenceStatus==="listed")("discovered",t.evidenceStatus==="discovered"),r(2),C(" ",n.kindLabel(t.kind).slice(0,1)," "),r(3),m(t.title),r(2),T("",n.fileName(t)," \xB7 ",n.kindLabel(t.kind)),r(3),m(n.statusLabel(t.evidenceStatus)),r(2),m(n.evidenceCountLabel(t))}}function _e(o,e){if(o&1&&(a(0,"span")(1,"b"),s(2,"applyTo"),i(),s(3),i()),o&2){let t=u();r(3),C(" ",t.applyTo.join(", "))}}function fe(o,e){if(o&1&&(a(0,"span")(1,"b"),s(2,"trigger"),i(),s(3),i()),o&2){let t=u();r(3),C(" ",t.triggers.join(", "))}}function be(o,e){if(o&1&&(a(0,"div",54)(1,"span",49),s(2,"Matched customization text"),i(),a(3,"p",57),s(4),i()()),o&2){let t=u();r(4),m(t.description)}}function Se(o,e){if(o&1&&(a(0,"span",69),s(1),i()),o&2){let t=e.$implicit,n=u(6);w("sent",t.status==="sent")("listed",t.status==="listed")("discovered",t.status==="discovered"),k("aria-label",n.timelineMarkerLabel(t)),r(),C(" #",t.callNumber," ")}}function Pe(o,e){if(o&1&&(a(0,"span",68),s(1),i()),o&2){let t=u(2).$implicit,n=u(4);r(),C("+",n.timelineOverflow(t)," more")}}function Me(o,e){if(o&1&&(a(0,"span",63),b(1,Se,2,8,"span",67,ee),p(3,Pe,2,1,"span",68),i()),o&2){let t=u().$implicit,n=u(4);k("aria-label",n.sessionEvidenceLabel(t)),r(),S(n.timelineMarkers(t)),r(2),g(n.timelineOverflow(t)?3:-1)}}function ze(o,e){o&1&&(a(0,"span",64),s(1,"No file text found"),i())}function ye(o,e){if(o&1){let t=O();a(0,"button",43),v("click",function(){z(t);let c=u().$implicit,l=u(4);return y(l.emitOpenSession(c.sessionId))}),s(1,"Open run"),i()}}function Oe(o,e){if(o&1&&(a(0,"blockquote"),s(1),i()),o&2){let t=u().$implicit;r(),C(" ",t.matchedPreview[0]," ")}}function we(o,e){if(o&1&&(a(0,"li")(1,"b"),s(2),i(),a(3,"code"),s(4),i()()),o&2){let t=e.$implicit;r(2),m(t.label),r(2),m(t.raw)}}function Ee(o,e){if(o&1&&(a(0,"article",71)(1,"div",72)(2,"strong"),s(3),i(),a(4,"p"),s(5),i(),p(6,Oe,2,1,"blockquote"),a(7,"details",73)(8,"summary"),s(9),i(),a(10,"div")(11,"span"),s(12,"Visible VS Code log sources"),i(),a(13,"ul"),b(14,we,5,2,"li",null,ne),i()()()()()),o&2){let t=e.$implicit,n=u(6);w("sent",t.status==="sent"),r(3),m(n.callEvidenceTitle(t)),r(2),m(n.callEvidenceSummary(t)),r(),g(t.matchedPreview.length?6:-1),r(3),C("Proof details \xB7 ",n.evidenceDetailsSummary(t)),r(5),S(n.rawEvidenceSources(t))}}function ke(o,e){if(o&1&&(a(0,"div",66),b(1,Ee,16,6,"article",70,te),i()),o&2){let t=u().$implicit,n=u(4);r(),S(n.sentCallEvidence(t))}}function Ie(o,e){if(o&1&&(a(0,"details",60)(1,"summary")(2,"span",61)(3,"time"),s(4),_(5,"date"),i(),a(6,"b"),s(7),i(),a(8,"em"),s(9),i()(),a(10,"span",62),p(11,Me,4,2,"span",63)(12,ze,2,0,"span",64),a(13,"strong"),s(14),i()()(),a(15,"div",65)(16,"p"),s(17),i(),p(18,ye,2,0,"button",40),i(),p(19,ke,3,0,"div",66),i()),o&2){let t=e.$implicit,n=u(4);w("sent",t.bestStatus==="sent")("listed",t.bestStatus==="listed")("discovered",t.bestStatus==="discovered"),r(4),m(N(5,14,t.timestamp,"medium")),r(3),m(t.title),r(2),m(n.evidenceGroupSubtitle(t)),r(2),g(t.bestStatus==="sent"?11:12),r(3),m(n.sessionEvidenceLabel(t)),r(3),C(" ",n.groupDetailSummary(t)," "),r(),g(t.session?18:-1),r(),g(t.bestStatus==="sent"?19:-1)}}function Te(o,e){if(o&1&&(a(0,"section",55)(1,"header")(2,"span",49),s(3,"Where it appeared"),i(),a(4,"h4"),s(5),_(6,"number"),i()(),a(7,"p",58),s(8," Each row is one Copilot session. Open a row for request-level proof. "),i(),b(9,Ie,20,17,"details",59,Z),i()),o&2){let t=u(3);r(5),T("",P(6,2,t.selectedSessionEvidence().length)," session",t.selectedSessionEvidence().length===1?"":"s"),r(4),S(t.selectedSessionEvidence())}}function Le(o,e){if(o&1&&(a(0,"article",42)(1,"header",48)(2,"div")(3,"span",49),s(4),i(),a(5,"h3"),s(6),i(),a(7,"p"),s(8),i()(),a(9,"span",50),s(10),I(11,"app-help-popover",51),i()(),a(12,"div",52)(13,"span")(14,"b"),s(15),_(16,"number"),i(),s(17," characters"),i(),a(18,"span")(19,"b"),s(20),_(21,"number"),i(),s(22," lines"),i(),a(23,"span")(24,"b"),s(25,"updated"),i(),s(26),_(27,"date"),i(),p(28,_e,4,1,"span"),p(29,fe,4,1,"span"),i(),a(30,"section",53)(31,"div")(32,"span",49),s(33,"Detection result"),i(),a(34,"h4"),s(35),i(),a(36,"p"),s(37),i()(),p(38,be,5,1,"div",54),i(),p(39,Te,11,4,"section",55),a(40,"footer",56)(41,"span"),s(42,"Local file"),i(),a(43,"code"),s(44),i()()()),o&2){let t=e,n=u(2);r(4),m(n.kindLabel(t.kind)),r(2),m(t.title),r(2),T("",t.workspace||"Local"," \xB7 ",n.fileName(t)),r(),w("sent",t.evidenceStatus==="sent")("listed",t.evidenceStatus==="listed")("discovered",t.evidenceStatus==="discovered"),r(),C(" ",n.statusLabel(t.evidenceStatus)," "),r(),h("text",n.statusHelp(t.evidenceStatus)),r(4),m(P(16,22,t.characterCount)),r(5),m(P(21,24,t.lineCount)),r(6),C(" ",N(27,26,t.modifiedAt,"mediumDate")),r(2),g(t.applyTo.length?28:-1),r(),g(t.triggers.length?29:-1),r(6),m(n.statusHeadline(t.evidenceStatus)),r(2),m(n.statusHelp(t.evidenceStatus)),r(),g(t.description?38:-1),r(),g(t.matches.length?39:-1),r(5),m(t.sourcePath)}}function Ne(o,e){if(o&1&&(a(0,"section",30)(1,"aside",38)(2,"div",39)(3,"span"),s(4),_(5,"number"),i(),p(6,xe,2,0,"button",40),i(),b(7,he,13,14,"button",41,X),i(),p(9,Le,45,29,"article",42),i()),o&2){let t,n=u();r(4),C("",P(5,3,n.filteredCustomizations().length)," shown"),r(2),g(n.query()||n.kindFilter()!=="all"||n.statusFilter()!=="all"||n.workspaceFilter()!=="all"?6:-1),r(),S(n.filteredCustomizations()),r(2),g((t=n.selectedCustomization())?9:-1,t)}}function Fe(o,e){if(o&1){let t=O();a(0,"button",43),v("click",function(){z(t);let c=u(2);return y(c.resetFilters())}),s(1,"Reset filters"),i()}}function $e(o,e){if(o&1&&(a(0,"section",31)(1,"h3"),s(2),i(),a(3,"p"),s(4),i(),p(5,Fe,2,0,"button",40),i()),o&2){let t=u();r(2),m(t.customizationsInput().length?"No customizations match these filters":"No Copilot customization files found for this workspace"),r(2),C(" ",t.customizationsInput().length?"Try a broader search or reset the filters.":"The scanner checks known Copilot customization locations for the current workspace. Open Advanced scan coverage to inspect source locations."," "),r(),g(t.customizationsInput().length?5:-1)}}var Y=class o{customizationsInput=x([]);sessionsInput=x([]);ingestionInput=x(null);query=x("");kindFilter=x("all");statusFilter=x("all");workspaceFilter=x("all");selectedId=x(null);set customizations(e){let t=e??[];this.customizationsInput.set(t),(!this.selectedId()||!t.some(n=>n.id===this.selectedId()))&&this.selectedId.set(t[0]?.id??null)}set sessions(e){this.sessionsInput.set(e??[])}set ingestion(e){this.ingestionInput.set(e??null)}refreshState="idle";refreshMessage=null;runtimeStatus=null;scanEvidence=new E;cancelScan=new E;openSession=new E;workspaceOptions=f(()=>["all",...[...new Set(this.customizationsInput().map(e=>e.workspace).filter(Boolean))].sort()]);filteredCustomizations=f(()=>{let e=this.query().trim().toLowerCase(),t=this.kindFilter(),n=this.statusFilter(),c=this.workspaceFilter();return this.customizationsInput().filter(l=>(!e||[l.title,l.name,l.description,l.excerpt,l.relativePath,l.sourcePath,l.kind,l.evidenceStatus,l.workspace,...l.applyTo,...l.triggers].join(" ").toLowerCase().includes(e))&&(t==="all"||l.kind===t)&&(n==="all"||l.evidenceStatus===n)&&(c==="all"||l.workspace===c))});selectedCustomization=f(()=>{let e=this.filteredCustomizations();return e.find(t=>t.id===this.selectedId())??e[0]??null});selectedCustomizationId=f(()=>this.selectedCustomization()?.id??"");selectedSessionEvidence=f(()=>{let e=this.selectedCustomization();return e?this.groupMatchesBySession(e):[]});summary=f(()=>{let e=this.customizationsInput();return{total:e.length,sent:e.filter(t=>t.evidenceStatus==="sent").length,listed:e.filter(t=>t.evidenceStatus==="listed").length,discovered:e.filter(t=>t.evidenceStatus==="discovered").length}});scanDiagnostics=f(()=>{let e=this.ingestionInput(),t=(e?.scannedCustomizationLocations??[]).filter(n=>n.kind!=="candidate");return{roots:e?.scannedCustomizationRoots??0,files:e?.importedCustomizations??this.customizationsInput().length,locations:t.slice(0,80),locationCount:t.length,capped:t.length>=200}});customizationEvidenceSummary=f(()=>{let e=this.ingestionInput(),t=this.customizationsInput(),n=t.filter(d=>d.evidenceStatus==="sent").length,c=t.filter(d=>d.evidenceStatus==="listed").length,l=(e?.customizationEvidenceScannedSessions??0)>0;return{sent:n,notProved:c,hasScannedEvidence:l,label:l?`${n.toLocaleString()} text-matched \xB7 ${c.toLocaleString()} read/referenced`:"Detailed evidence skipped"}});scanActionLabel(){return this.refreshState==="refreshing"?"Scanning...":this.customizationEvidenceSummary().hasScannedEvidence?"Find usage evidence again":"Find usage evidence"}isEvidenceScanActive(){return this.refreshState==="refreshing"&&this.runtimeStatus?.activeScanMode==="customizations"}currentWorkspaceLabel(){let e=this.runtimeStatus?.scanProgress?.workspace||"";if(e)return e;let t=this.workspaceOptions().filter(n=>n!=="all");return this.workspaceFilter()!=="all"?this.workspaceFilter():t.length===1?t[0]:"Current VS Code workspace"}customizationFileCountLabel(){let e=this.summary().total;return`${e.toLocaleString()} customization file${e===1?"":"s"}`}requestTextCountLabel(){let e=this.customizationEvidenceSummary();if(this.isEvidenceScanActive())return"Checking recent requests";if(this.refreshState==="error")return"Scan failed";if(this.refreshMessage?.toLowerCase().includes("stopped"))return"Scan stopped";if(!e.hasScannedEvidence)return"Not checked yet";let t=e.sent;return t?`${t.toLocaleString()} file${t===1?"":"s"} with request text`:"No request text found"}evidenceResultText(){if(this.isEvidenceScanActive())return this.currentScanStep();if(this.refreshState==="error")return this.refreshMessage||"The usage evidence scan did not finish.";if(this.refreshMessage?.toLowerCase().includes("stopped"))return"Scan stopped. Existing customization data was kept.";if(this.customizationEvidenceSummary().hasScannedEvidence){let e=this.customizationEvidenceSummary().sent,t=this.evidenceSessionCount(),n=this.evidenceMatchCount();return e?`${n.toLocaleString()} text match${n===1?"":"es"} across ${t.toLocaleString()} Copilot session${t===1?"":"s"}.`:"Checked recent Copilot requests. No customization file text was found."}return"Run Find usage evidence to check whether these files appeared inside recent Copilot model requests."}evidenceMetricLabel(){return this.isEvidenceScanActive()?"Matches so far":"Last result"}evidenceMetricText(){let e=this.isEvidenceScanActive()?Number(this.runtimeStatus?.scanProgress?.matches??this.evidenceMatchCount()):this.evidenceMatchCount();return`${e.toLocaleString()} text match${e===1?"":"es"}`}activeScanStats(){if(!this.isEvidenceScanActive())return"";let e=this.runtimeStatus?.scanProgress,t=Number(e?.sessions??0),n=Number(e?.modelCalls??0);return[t>0?`${t.toLocaleString()} session${t===1?"":"s"} checked`:"",n>0?`${n.toLocaleString()} model call${n===1?"":"s"} checked`:"",this.evidenceMetricText()].filter(Boolean).join(" \xB7 ")}evidenceScanProgressPercent(){if(!this.isEvidenceScanActive())return 0;let e=this.runtimeStatus?.scanProgress,t=Number(e?.index??e?.workspaceIndex??0),n=Number(e?.total??e?.workspaceTotal??0);return t>0&&n>0?Math.max(1,Math.min(100,Math.round(t/n*100))):0}evidenceScanProgressLabel(){if(!this.isEvidenceScanActive())return"";let e=this.runtimeStatus?.scanProgress,t=Number(e?.index??0),n=Number(e?.total??0);return t>0&&n>0?`${t.toLocaleString()} of ${n.toLocaleString()} Copilot session folders checked`:"Preparing session list"}currentScanStep(){let e=this.runtimeStatus?.scanProgress?.stage??"";return e==="customizations"||e==="workspace"||e==="workspace-state"?"Step 1 of 3: Loading customization files":e==="customization-evidence"||e==="debug-logs"?"Step 2 of 3: Checking recent Copilot sessions":e==="complete"?"Step 3 of 3: Summarising matches":"Preparing current workspace scan"}elapsedScanLabel(){let e=this.runtimeStatus?.lastScanStartedAt;return!e||!this.isEvidenceScanActive()?"":this.durationLabel(Date.now()-Date.parse(e))}lastProgressLabel(){let e=this.runtimeStatus?.scanProgress?.updatedAt;return!e||!this.isEvidenceScanActive()?"":this.durationLabel(Date.now()-Date.parse(e))}isLongRunningScan(){let e=this.runtimeStatus?.lastScanStartedAt;return!e||!this.isEvidenceScanActive()?!1:Date.now()-Date.parse(e)>6e4}isStaleScan(){let e=this.runtimeStatus?.scanProgress?.updatedAt;return!e||!this.isEvidenceScanActive()?!1:Date.now()-Date.parse(e)>3e4}evidenceSessionCount(){return new Set(this.customizationsInput().flatMap(e=>e.matches.map(t=>t.sessionId))).size}evidenceMatchCount(){return this.customizationsInput().reduce((e,t)=>e+t.matches.filter(n=>n.status==="sent").length,0)}durationLabel(e){if(!Number.isFinite(e)||e<0)return"";let t=Math.max(0,Math.round(e/1e3));return t<60?`${t}s`:`${Math.floor(t/60)}m ${t%60}s`}selectCustomization(e){this.selectedId.set(e.id)}setQuery(e){this.query.set(e),this.ensureVisibleSelection()}setKindFilter(e){this.kindFilter.set(e),this.ensureVisibleSelection()}setStatusFilter(e){this.statusFilter.set(e),this.ensureVisibleSelection()}setWorkspaceFilter(e){this.workspaceFilter.set(e),this.ensureVisibleSelection()}resetFilters(){this.query.set(""),this.kindFilter.set("all"),this.statusFilter.set("all"),this.workspaceFilter.set("all"),this.ensureVisibleSelection()}fileName(e){return(e.relativePath||e.sourcePath).split(/[\\/]+/).filter(Boolean).at(-1)??e.title}kindLabel(e){return{instruction:"Instruction",skill:"Skill",prompt:"Prompt",hook:"Hook",agent:"Agent",other:"Other"}[e]}statusLabel(e){return{sent:"Text match found",listed:"Read by Copilot",discovered:"Discovered",not_seen:"Not seen"}[e]}statusHeadline(e){return{sent:"File text appeared in a model request",listed:"Copilot read or referenced this file",discovered:"Found locally, not seen in a request",not_seen:"No evidence in imported sessions"}[e]}statusHelp(e){return{sent:"We found distinctive text from this file inside local VS Code request logs. The text reached a model request, but it may have arrived as customization context or as manually attached file context.",listed:"Local logs show Copilot read or referenced this file, but did not show distinctive file text inside the model request.",discovered:"The file exists in a known customization location, but imported model requests did not show a text match.",not_seen:"The file exists locally, but imported sessions do not show local evidence for it yet."}[e]}evidenceCountLabel(e){let t=new Set(e.matches.map(n=>n.sessionId)).size;return e.matches.length?`${t.toLocaleString()} session${t===1?"":"s"}`:"No sessions"}evidenceGroupSubtitle(e){let t=e.modelCallNumbers.length;if(e.bestStatus==="sent"){let n=this.sentModelCallCount(e);return n?`${n.toLocaleString()} text-matched request${n===1?"":"s"}`:"Text match found"}return e.bestStatus==="listed"?t?"Read or referenced, but no file text found":"Read or referenced":e.bestStatus==="discovered"?"Found during setup or discovery":"No imported evidence"}sourceLabel(e){return/^system_prompt/i.test(e)?"Instructions":/^tools/i.test(e)?"Tool list":{inputMessages:"Complete request",userRequest:"User prompt",copilotFileRead:"File read"}[e]??e}sourceHelp(e){return/^system_prompt/i.test(e.raw)?"Matched inside the instruction/system part of a VS Code request. This is usually where custom instructions and skills appear.":/^tools/i.test(e.raw)?"Matched near the tool definitions included with the request. This can include tool or MCP schema material.":e.raw==="inputMessages"?"Matched somewhere in the full request payload visible in VS Code logs. This is useful as broad local confirmation that the text appeared.":e.raw==="userRequest"?"Matched in the user-facing prompt/request material for this model call.":e.raw==="copilotFileRead"?"VS Code logs show Copilot read this customization file. This is useful evidence, but it does not prove the file text was sent to the model.":"Matched in this VS Code debug-log source. Open the technical proof section if you need the raw field name."}rawSourceLabel(e){return String(e)}sessionEvidenceLabel(e){if(!e.modelCallNumbers.length)return e.bestStatus==="sent"?"Text match found":this.statusLabel(e.bestStatus);if(e.bestStatus!=="sent")return"Read or referenced";let n=this.sentModelCallCount(e),c=n===1?"request":"requests";return`${n.toLocaleString()} text-matched ${c}`}timelineMarkers(e){let t=new Map;for(let n of e.matches){if(!n.modelCallNumber)continue;let c=t.get(n.modelCallNumber)??"not_seen";t.set(n.modelCallNumber,this.strongerStatus(c,n.status))}return[...t.entries()].sort(([n],[c])=>n-c).filter(([,n])=>e.bestStatus!=="sent"||n==="sent").slice(0,18).map(([n,c])=>({callNumber:n,status:c}))}timelineOverflow(e){let t=new Set(e.matches.filter(n=>e.bestStatus!=="sent"||n.status==="sent").map(n=>n.modelCallNumber).filter(Boolean));return Math.max(0,t.size-18)}timelineMarkerLabel(e){return e.status==="sent"?`Model request #${e.callNumber}: this file's text was included`:`Model request #${e.callNumber}: file text not proved`}callEvidence(e){let t=new Map;for(let n of e.matches){let c=n.modelCallNumber?`call:${n.modelCallNumber}`:`event:${n.eventIndex}`,d=t.get(c)??{key:c,callNumber:n.modelCallNumber,eventIndex:n.eventIndex,status:n.status,matches:[],sources:[],matchedChunks:0,matchedCharacters:0,matchedPreview:[]};d.matches.push(n),d.status=this.strongerStatus(d.status,n.status),d.matchedChunks+=n.matchedChunks??0,d.matchedCharacters+=n.matchedCharacters??0;for(let M of n.matchedPreview??[])M&&!d.matchedPreview.includes(M)&&d.matchedPreview.push(M);let L={label:this.sourceLabel(n.source),raw:this.rawSourceLabel(n.source)};d.sources.some(M=>M.label===L.label&&M.raw===L.raw)||d.sources.push(L),t.set(c,d)}return[...t.values()].sort((n,c)=>n.callNumber!==c.callNumber?c.callNumber-n.callNumber:c.eventIndex-n.eventIndex)}sentCallEvidence(e){return this.callEvidence(e).filter(t=>t.status==="sent")}callEvidenceTitle(e){let t=e.callNumber?`Request #${e.callNumber}`:`Event #${e.eventIndex}`;return e.status==="sent"?`${t}: file text found`:e.status==="listed"?`${t}: read or referenced`:`${t}: ${this.statusLabel(e.status).toLowerCase()}`}callEvidenceSummary(e){return e.status==="sent"?"Distinctive file text appeared in this Copilot request.":e.status==="listed"?"Copilot read or referenced this file, but local logs did not show distinctive file text inside this model request.":"No request payload content was verified for this event."}groupDetailSummary(e){if(e.bestStatus==="sent"){let t=this.sentModelCallCount(e),n=t===1?"model request":"model requests";return`File text appeared in ${t.toLocaleString()} Copilot ${n}. This confirms the text was visible in local request logs.`}return e.bestStatus==="listed"?"Copilot read or referenced this file in this session, but imported model requests did not show distinctive file text.":e.bestStatus==="discovered"?"VS Code setup or discovery mentioned this file, but imported model requests did not show distinctive file text.":"No visible request evidence was imported for this session."}evidenceSourceLabels(e){return this.uniqueSources(e.sources).map(t=>t.label)}evidenceSources(e){return this.uniqueSources(e.sources)}rawEvidenceSources(e){return this.uniqueSources(e.sources)}evidenceDetailsSummary(e){let t=[];e.callNumber&&t.push(`request #${e.callNumber}`);let n=this.sourcePhrase(e.sources);return n&&t.push(n),e.matchedCharacters&&t.push(`${e.matchedCharacters.toLocaleString()} characters matched`),t.join(" \xB7 ")||"raw debug-log proof"}sourcePhrase(e){let t=this.uniqueSources(e).map(n=>n.label);return t.length?t.length===1?t[0].toLowerCase():t.length===2?`${t[0].toLowerCase()} and ${t[1].toLowerCase()}`:`${t.slice(0,-1).map(n=>n.toLowerCase()).join(", ")}, and ${t.at(-1)?.toLowerCase()}`:"the model request"}uniqueSources(e){let t=new Set,n=[];for(let c of e){let l=`${c.label}:${c.raw}`;t.has(l)||(t.add(l),n.push(c))}return n}sentModelCallCount(e){return new Set(e.matches.filter(t=>t.status==="sent").map(t=>t.modelCallNumber).filter(Boolean)).size}diagnosticKindLabel(e){return{candidate:"Candidate root",root:"Folder",file:"File","debug-reference":"Debug reference","debug-discovery-root":"VS Code discovery","vscode-setting-root":"VS Code setting","vscode-default-root":"VS Code default","vscode-user-setting-root":"User setting","vscode-workspace-setting-root":"Workspace setting","vscode-workspace-folder-setting-root":"Workspace-folder setting","vscode-parent-repo-default-root":"Parent repo default","user-default-root":"User default"}[e]??e}sessionForMatch(e){return this.sessionsInput().find(t=>t.id===e)??null}emitOpenSession(e){let t=this.sessionForMatch(e);t&&this.openSession.emit(t)}groupMatchesBySession(e){let t=new Map;for(let n of e.matches){let c=this.sessionForMatch(n.sessionId),d=t.get(n.sessionId)??{sessionId:n.sessionId,session:c,title:c?.title??`Session ${n.sessionId.slice(0,8)}`,timestamp:n.timestamp,bestStatus:n.status,matches:[],sentCount:0,listedCount:0,discoveredCount:0,modelCallNumbers:[],sources:[],matchedChunks:0,matchedCharacters:0};d.matches.push(n),d.bestStatus=this.strongerStatus(d.bestStatus,n.status),d.timestamp=[d.timestamp,n.timestamp].filter(Boolean).sort().at(-1)??d.timestamp,d.sentCount+=n.status==="sent"?1:0,d.listedCount+=n.status==="listed"?1:0,d.discoveredCount+=n.status==="discovered"?1:0,d.matchedChunks+=n.matchedChunks??0,d.matchedCharacters+=n.matchedCharacters??0,n.modelCallNumber&&!d.modelCallNumbers.includes(n.modelCallNumber)&&d.modelCallNumbers.push(n.modelCallNumber),n.source&&!d.sources.includes(n.source)&&d.sources.push(n.source),t.set(n.sessionId,d)}return[...t.values()].map(n=>$(F({},n),{modelCallNumbers:[...n.modelCallNumbers].sort((c,l)=>c-l),matches:[...n.matches].sort((c,l)=>l.timestamp.localeCompare(c.timestamp)||l.eventIndex-c.eventIndex)})).sort((n,c)=>c.timestamp.localeCompare(n.timestamp))}strongerStatus(e,t){let n={not_seen:0,discovered:1,listed:2,sent:3};return n[t]>n[e]?t:e}ensureVisibleSelection(){let e=this.filteredCustomizations();if(!e.length){this.selectedId.set(null);return}e.some(t=>t.id===this.selectedId())||this.selectedId.set(e[0].id)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=q({type:o,selectors:[["app-customizations-page"]],inputs:{customizations:"customizations",sessions:"sessions",ingestion:"ingestion",refreshState:"refreshState",refreshMessage:"refreshMessage",runtimeStatus:"runtimeStatus"},outputs:{scanEvidence:"scanEvidence",cancelScan:"cancelScan",openSession:"openSession"},decls:86,vars:25,consts:[[1,"customizations-page"],[1,"customizations-header"],[1,"eyebrow"],[1,"preview-badge"],["aria-label","Customization scan status",1,"customizations-scan-status"],[1,"scan-status-body"],[1,"scan-summary-line"],[1,"scan-warning"],[1,"scan-status-actions"],["type","button",1,"secondary-scan-button"],["type","button",1,"evidence-scan-button",3,"click","disabled"],["aria-hidden","true",1,"button-spinner"],["aria-label","Customization filters",1,"customizations-controls"],[1,"customizations-search"],["type","search","placeholder","Search filename, title, description, applyTo, trigger",3,"ngModelChange","ngModel"],[3,"ngModelChange","ngModel"],["value","all"],["value","instruction"],["value","skill"],["value","prompt"],["value","hook"],["value","agent"],["value","other"],["value","sent"],["value","listed"],["value","discovered"],["value","not_seen"],[3,"value"],[1,"customizations-diagnostics"],[1,"diagnostic-note"],[1,"customizations-workspace"],[1,"customizations-empty"],["aria-label","Evidence scan progress",1,"scan-progress-meter"],["max","100",3,"value"],[1,"scan-progress-stats"],[1,"scan-progress-line"],["type","button",1,"secondary-scan-button",3,"click"],[1,"diagnostic-list"],["aria-label","Local customizations",1,"customizations-list"],[1,"customizations-list-heading"],["type","button"],["type","button",1,"customization-card",3,"active","sent","listed","discovered"],[1,"customization-detail"],["type","button",3,"click"],["type","button",1,"customization-card",3,"click"],["aria-hidden","true",1,"customization-file-icon"],[1,"customization-card-main"],[1,"customization-card-side"],[1,"customization-detail-header"],[1,"customization-kicker"],[1,"evidence-badge"],["label","Explain customization evidence",3,"text"],[1,"customization-facts"],[1,"evidence-summary"],[1,"matched-customization-text"],["aria-label","Customization evidence matches",1,"match-list"],[1,"customization-path"],[1,"description"],[1,"match-list-help"],[1,"match-group",3,"sent","listed","discovered"],[1,"match-group"],[1,"match-group-title"],[1,"match-group-status"],[1,"match-group-timeline"],[1,"match-group-weak"],[1,"match-group-detail-header"],[1,"match-events","call-events"],[1,"timeline-marker",3,"sent","listed","discovered"],[1,"timeline-overflow"],[1,"timeline-marker"],[1,"match-event","call-event",3,"sent"],[1,"match-event","call-event"],[1,"call-event-main"],[1,"raw-evidence-details"]],template:function(t,n){t&1&&(a(0,"section",0)(1,"header",1)(2,"div")(3,"p",2),s(4,"Customization evidence "),a(5,"span",3),s(6,"Preview"),i()(),a(7,"h2"),s(8,"Did your rules appear in Copilot requests?"),i(),a(9,"p"),s(10,"Browse local instructions, skills, prompts, hooks, and agents. Preview evidence is based on text visible in imported VS Code model requests."),i()()(),a(11,"section",4)(12,"div",5)(13,"div")(14,"p",6)(15,"strong"),s(16),i(),a(17,"span"),s(18),i(),a(19,"span"),s(20),i()(),a(21,"p"),s(22),i(),p(23,re,10,6),p(24,ce,2,0,"p",7),p(25,le,2,0,"p",7),i(),a(26,"div",8),p(27,de,2,0,"button",9),a(28,"button",10),v("click",function(){return n.scanEvidence.emit()}),p(29,ue,1,0,"span",11),s(30),i()()()(),a(31,"section",12)(32,"label",13)(33,"span"),s(34,"Search customizations"),i(),a(35,"input",14),v("ngModelChange",function(l){return n.setQuery(l)}),i()(),a(36,"label")(37,"span"),s(38,"Type"),i(),a(39,"select",15),v("ngModelChange",function(l){return n.setKindFilter(l)}),a(40,"option",16),s(41,"All types"),i(),a(42,"option",17),s(43,"Instructions"),i(),a(44,"option",18),s(45,"Skills"),i(),a(46,"option",19),s(47,"Prompts"),i(),a(48,"option",20),s(49,"Hooks"),i(),a(50,"option",21),s(51,"Agents"),i(),a(52,"option",22),s(53,"Other"),i()()(),a(54,"label")(55,"span"),s(56,"Evidence"),i(),a(57,"select",15),v("ngModelChange",function(l){return n.setStatusFilter(l)}),a(58,"option",16),s(59,"All evidence"),i(),a(60,"option",23),s(61,"Text match found"),i(),a(62,"option",24),s(63,"Read by Copilot"),i(),a(64,"option",25),s(65,"Discovered only"),i(),a(66,"option",26),s(67,"Not seen"),i()()(),a(68,"label")(69,"span"),s(70,"Workspace"),i(),a(71,"select",15),v("ngModelChange",function(l){return n.setWorkspaceFilter(l)}),b(72,me,2,2,"option",27,D),i()()(),a(74,"details",28)(75,"summary")(76,"span"),s(77,"Advanced scan coverage"),i(),a(78,"strong"),s(79),_(80,"number"),_(81,"number"),i()(),p(82,Ce,4,1)(83,ve,2,0,"p",29),i(),p(84,Ne,10,5,"section",30)(85,$e,6,3,"section",31),i()),t&2&&(r(16),m(n.currentWorkspaceLabel()),r(2),m(n.customizationFileCountLabel()),r(2),m(n.requestTextCountLabel()),r(2),m(n.evidenceResultText()),r(),g(n.isEvidenceScanActive()?23:-1),r(),g(n.isLongRunningScan()?24:-1),r(),g(n.isStaleScan()?25:-1),r(2),g(n.isEvidenceScanActive()?27:-1),r(),h("disabled",n.refreshState==="refreshing"),k("aria-busy",n.refreshState==="refreshing"),r(),g(n.isEvidenceScanActive()?29:-1),r(),C(" ",n.scanActionLabel()," "),r(5),h("ngModel",n.query()),r(4),h("ngModel",n.kindFilter()),r(18),h("ngModel",n.statusFilter()),r(14),h("ngModel",n.workspaceFilter()),r(),S(n.workspaceOptions()),r(7),V(" ",P(80,21,n.scanDiagnostics().roots)," folders/files checked \xB7 ",P(81,23,n.scanDiagnostics().files)," customization",n.scanDiagnostics().files===1?"":"s"," found "),r(3),g(n.scanDiagnostics().locations.length?82:83),r(2),g(n.filteredCustomizations().length?84:85))},dependencies:[U,Q,G,j,H,W,K,B,A,R],styles:['[_nghost-%COMP%]{display:block}.customizations-page[_ngcontent-%COMP%]{display:grid;grid-template-rows:auto auto auto auto minmax(0,1fr);gap:7px;min-height:calc(100vh - 96px)}.customizations-header[_ngcontent-%COMP%], .customizations-scan-status[_ngcontent-%COMP%], .customizations-controls[_ngcontent-%COMP%], .customizations-diagnostics[_ngcontent-%COMP%], .customizations-list[_ngcontent-%COMP%], .customization-detail[_ngcontent-%COMP%], .customizations-empty[_ngcontent-%COMP%]{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft)}.customizations-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:14px;border-color:color-mix(in srgb,var(--accent-2) 18%,var(--line));border-radius:13px;padding:10px 12px;background:var(--header-gradient)}.customizations-scan-status[_ngcontent-%COMP%]{display:grid;gap:4px;border-color:color-mix(in srgb,var(--accent) 22%,var(--line));border-radius:10px;padding:7px 9px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 6%,transparent),transparent 50%),var(--surface)}.scan-status-body[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px}.scan-status-body[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.scan-summary-line[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:7px;color:var(--muted)!important}.scan-summary-line[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text-strong);font-size:12px}.scan-summary-line[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:11px}.scan-summary-line[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:before{width:3px;height:3px;border-radius:50%;background:color-mix(in srgb,var(--accent) 62%,var(--muted));content:""}.scan-progress-line[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;margin-top:3px!important;color:var(--muted-2)!important;font-size:11px!important}.scan-progress-meter[_ngcontent-%COMP%]{display:grid;gap:5px;max-width:460px;margin-top:8px}.scan-progress-meter[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:flex;justify-content:space-between;gap:10px;color:var(--muted);font-size:11px}.scan-progress-meter[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--text)}.scan-progress-meter[_ngcontent-%COMP%] progress[_ngcontent-%COMP%]{width:100%;height:7px;overflow:hidden;border:0;border-radius:999px;background:color-mix(in srgb,var(--surface-soft) 70%,transparent)}.scan-progress-meter[_ngcontent-%COMP%] progress[_ngcontent-%COMP%]::-webkit-progress-bar{border-radius:999px;background:color-mix(in srgb,var(--surface-soft) 70%,transparent)}.scan-progress-meter[_ngcontent-%COMP%] progress[_ngcontent-%COMP%]::-webkit-progress-value{border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2))}.scan-progress-stats[_ngcontent-%COMP%]{margin-top:3px!important;color:var(--text)!important;font-size:11px!important;font-weight:720}.scan-warning[_ngcontent-%COMP%]{margin-top:4px!important;color:var(--warning)!important}.scan-status-actions[_ngcontent-%COMP%]{display:flex;flex:0 0 auto;align-items:center;gap:7px}.eyebrow[_ngcontent-%COMP%], .customization-kicker[_ngcontent-%COMP%]{margin:0;color:var(--muted-2);font-size:9px;font-weight:820;letter-spacing:.08em;text-transform:uppercase}.preview-badge[_ngcontent-%COMP%]{display:inline-flex;align-items:center;min-height:17px;margin-left:6px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));border-radius:999px;padding:0 7px;background:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--accent-strong, var(--accent));font-size:9px;letter-spacing:.08em}.customizations-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], .customization-detail[_ngcontent-%COMP%] h3[_ngcontent-%COMP%], .customizations-empty[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin:2px 0 0;color:var(--text-strong);letter-spacing:0}.customizations-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{font-size:19px;line-height:1.15}.customizations-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .customization-detail-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .customizations-empty[_ngcontent-%COMP%] p[_ngcontent-%COMP%], .evidence-summary[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.35}.evidence-scan-button[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:30px;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));border-radius:999px;padding:6px 11px;background:color-mix(in srgb,var(--accent) 12%,var(--surface));color:var(--accent);font-size:11px;font-weight:780;cursor:pointer}.evidence-scan-button[_ngcontent-%COMP%]:disabled{cursor:wait;opacity:.68}.secondary-scan-button[_ngcontent-%COMP%]{min-height:30px;border:1px solid var(--line);border-radius:999px;padding:6px 11px;background:var(--surface-soft);color:var(--text);font-size:11px;font-weight:760;cursor:pointer}.button-spinner[_ngcontent-%COMP%]{width:12px;height:12px;border:2px solid color-mix(in srgb,var(--accent) 22%,transparent);border-top-color:var(--accent);border-radius:999px;animation:_ngcontent-%COMP%_spin .8s linear infinite}@keyframes _ngcontent-%COMP%_spin{to{transform:rotate(360deg)}}.customizations-controls[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(260px,1.8fr) repeat(3,minmax(130px,.8fr));gap:6px;align-items:end;border-radius:12px;padding:7px}.customizations-controls[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:grid;align-content:start;gap:4px;min-height:0}.customizations-controls[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted);font-size:10px;font-weight:760}.customizations-controls[_ngcontent-%COMP%] input[_ngcontent-%COMP%], .customizations-controls[_ngcontent-%COMP%] select[_ngcontent-%COMP%]{width:100%;height:32px;min-height:32px;border:1px solid var(--line);border-radius:8px;padding:6px 9px;background:var(--surface-soft);color:var(--text);font:inherit;font-size:12px}.customizations-diagnostics[_ngcontent-%COMP%]{border-radius:12px;padding:0;overflow:hidden}.customizations-diagnostics[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px;padding:8px 10px;color:var(--muted);font-size:11px;font-weight:760;cursor:pointer}.customizations-diagnostics[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--text-strong);font-size:12px}.customizations-diagnostics[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--muted);font-size:11px;font-weight:760}.diagnostic-list[_ngcontent-%COMP%]{display:grid;gap:1px;max-height:240px;overflow:auto;border-top:1px solid var(--line);padding:6px;background:var(--surface-soft)}.diagnostic-list[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px;align-items:center;min-height:28px;border-radius:7px;padding:5px 7px}.diagnostic-list[_ngcontent-%COMP%] div[_ngcontent-%COMP%]:nth-child(odd){background:color-mix(in srgb,var(--accent) 4%,transparent)}.diagnostic-list[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{color:var(--muted-2);font-size:10px;text-transform:uppercase}.diagnostic-list[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{overflow-wrap:anywhere;color:var(--text);font-size:11px}.diagnostic-note[_ngcontent-%COMP%]{margin:0;border-top:1px solid var(--line);padding:8px 10px;color:var(--muted);font-size:11px;background:var(--surface-soft)}.customizations-workspace[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(360px,450px) minmax(0,1fr);gap:8px;align-items:start;min-height:0}.customizations-list[_ngcontent-%COMP%], .customization-detail[_ngcontent-%COMP%], .customizations-empty[_ngcontent-%COMP%]{border-radius:13px}.customizations-list[_ngcontent-%COMP%]{position:sticky;top:66px;display:grid;align-content:start;gap:2px;max-height:calc(100vh - 138px);overflow:auto;padding:6px}.customizations-list-heading[_ngcontent-%COMP%]{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;min-height:28px;padding:2px 4px 5px;background:var(--surface);color:var(--muted);font-size:11px}.customizations-list-heading[_ngcontent-%COMP%] button[_ngcontent-%COMP%], .customizations-empty[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:7px;padding:5px 8px;background:var(--surface-soft);color:var(--text);font:inherit;font-size:11px;font-weight:760;cursor:pointer}.customization-card[_ngcontent-%COMP%]{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:7px;width:100%;min-height:44px;border:1px solid transparent;border-radius:9px;padding:6px 7px;background:transparent;color:var(--text);text-align:left;cursor:pointer}.customization-card[_ngcontent-%COMP%]:hover, .customization-card.active[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent) 34%,var(--line));background:color-mix(in srgb,var(--accent) 6%,var(--surface-soft))}.customization-card.sent.active[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent) 46%,var(--line));background:color-mix(in srgb,var(--accent) 8%,var(--surface-soft))}.customization-card.listed.active[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent-2) 42%,var(--line));background:color-mix(in srgb,var(--accent-2) 7%,var(--surface-soft))}.customization-card.discovered.active[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--warning) 38%,var(--line));background:color-mix(in srgb,var(--warning) 7%,var(--surface-soft))}.customization-file-icon[_ngcontent-%COMP%]{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-soft));color:var(--accent);font-size:10px;font-weight:850}.customization-card-main[_ngcontent-%COMP%]{display:grid;gap:1px;min-width:0}.customization-card-main[_ngcontent-%COMP%] small[_ngcontent-%COMP%], .customization-card-side[_ngcontent-%COMP%] em[_ngcontent-%COMP%], .match-group[_ngcontent-%COMP%] time[_ngcontent-%COMP%], .customization-path[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted);font-size:10px;font-style:normal}.customization-card-main[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{overflow:hidden;color:var(--text-strong);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.customization-card-side[_ngcontent-%COMP%]{display:grid;justify-items:end;gap:3px;color:var(--muted);font-size:10px}.customization-card-side[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{color:var(--accent);font-size:10px}.customization-detail[_ngcontent-%COMP%]{display:grid;align-content:start;gap:9px;min-height:calc(100vh - 138px);padding:10px}.customization-detail-header[_ngcontent-%COMP%]{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.customization-detail-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font-size:19px;line-height:1.15}.evidence-badge[_ngcontent-%COMP%], .customization-facts[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:5px;min-height:27px;border:1px solid var(--line);border-radius:999px;padding:4px 8px;background:var(--surface-soft);color:var(--text);font-size:11px;font-weight:760}.evidence-badge.sent[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent) 44%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface-soft));color:var(--accent)}.evidence-badge.listed[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent-2) 44%,var(--line));background:color-mix(in srgb,var(--accent-2) 9%,var(--surface-soft));color:var(--accent-2)}.evidence-badge.discovered[_ngcontent-%COMP%]{color:var(--warning)}.customization-facts[_ngcontent-%COMP%]{display:flex;align-items:flex-start;flex-wrap:wrap;gap:6px}.customization-facts[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{flex:0 0 auto;min-height:24px;padding:3px 8px}.customization-facts[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{color:var(--text-strong)}.evidence-summary[_ngcontent-%COMP%], .match-list[_ngcontent-%COMP%], .customization-path[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:11px;padding:10px;background:var(--surface-soft)}.evidence-summary[_ngcontent-%COMP%]{display:grid;gap:10px}.evidence-summary[_ngcontent-%COMP%] h4[_ngcontent-%COMP%], .match-list[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{margin:0;color:var(--text-strong);font-size:15px}.evidence-summary[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{color:var(--text)}.matched-customization-text[_ngcontent-%COMP%]{border-top:1px solid var(--line);padding-top:9px}.match-list[_ngcontent-%COMP%]{display:grid;gap:5px}.match-list[_ngcontent-%COMP%] header[_ngcontent-%COMP%]{display:flex;align-items:baseline;justify-content:space-between;gap:10px}.match-list-help[_ngcontent-%COMP%]{margin:-2px 0 2px;color:var(--muted);font-size:11px;line-height:1.35}.match-group[_ngcontent-%COMP%]{border:1px solid var(--line);border-radius:8px;background:var(--surface);overflow:hidden}.match-group.sent[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent) 34%,var(--line))}.match-group.listed[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent-2) 30%,var(--line))}.match-group.discovered[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--warning) 26%,var(--line))}.match-group[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{display:grid;grid-template-columns:minmax(240px,1fr) auto;gap:10px;align-items:center;min-height:46px;padding:6px 10px;cursor:pointer}.match-group[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]::marker{color:var(--accent)}.match-group-title[_ngcontent-%COMP%]{display:grid;gap:2px;min-width:0}.match-group-title[_ngcontent-%COMP%] time[_ngcontent-%COMP%]{color:var(--muted);font-size:10px}.match-group-title[_ngcontent-%COMP%] b[_ngcontent-%COMP%]{color:var(--text-strong);font-size:11px;line-height:1.2}.match-group-title[_ngcontent-%COMP%] em[_ngcontent-%COMP%]{overflow:hidden;color:var(--muted);font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.match-group-status[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;align-items:center;gap:5px}.match-group-status[_ngcontent-%COMP%]{justify-content:flex-end;min-width:0}.match-group-status[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:4px;min-height:20px;border-radius:999px;padding:2px 7px;background:color-mix(in srgb,var(--accent) 7%,var(--surface-soft));color:var(--muted);font-size:10px;font-weight:720}.match-group-status[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--accent)}.match-group-timeline[_ngcontent-%COMP%]{display:flex;align-items:center;gap:3px;min-width:0}.timeline-marker[_ngcontent-%COMP%], .timeline-overflow[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;min-width:21px;height:18px;border:1px solid color-mix(in srgb,var(--line) 86%,transparent);border-radius:999px;padding:0 5px;background:color-mix(in srgb,var(--surface-soft) 88%,var(--surface));color:var(--muted);font-size:9px;font-weight:800;line-height:1}.timeline-marker.sent[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent) 54%,var(--line));background:color-mix(in srgb,var(--accent) 18%,var(--surface));color:var(--accent-strong, var(--accent))}.timeline-marker.listed[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--accent-2) 42%,var(--line));background:color-mix(in srgb,var(--accent-2) 13%,var(--surface));color:var(--accent-2)}.timeline-marker.discovered[_ngcontent-%COMP%]{border-color:color-mix(in srgb,var(--warning) 42%,var(--line));background:color-mix(in srgb,var(--warning) 12%,var(--surface));color:var(--warning)}.timeline-overflow[_ngcontent-%COMP%]{max-width:76px;border-style:dashed;white-space:nowrap}.match-group-weak[_ngcontent-%COMP%]{border:1px dashed color-mix(in srgb,var(--muted) 26%,var(--line));border-radius:999px;padding:2px 7px;color:var(--muted);font-size:10px;font-weight:760}.match-group-detail-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:8px 10px}.match-group-detail-header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted);font-size:11px}.match-group-detail-header[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{flex:0 0 auto;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:999px;padding:5px 9px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));color:var(--accent);font-size:10px;font-weight:760;cursor:pointer}.match-events[_ngcontent-%COMP%]{display:grid;gap:1px;border-top:1px solid var(--line);background:var(--surface-soft)}.match-event[_ngcontent-%COMP%]{display:block;min-height:36px;padding:7px 10px}.match-event[_ngcontent-%COMP%] + .match-event[_ngcontent-%COMP%]{border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.call-event-main[_ngcontent-%COMP%]{display:grid;gap:3px;min-width:0}.call-event-main[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--accent-2);font-size:11px;font-weight:780}.call-event.sent[_ngcontent-%COMP%] .call-event-main[_ngcontent-%COMP%] strong[_ngcontent-%COMP%]{color:var(--accent-strong, var(--accent))}.call-event-main[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0;color:var(--muted);font-size:11px}.call-event-main[_ngcontent-%COMP%] blockquote[_ngcontent-%COMP%]{margin:0;border-left:2px solid color-mix(in srgb,var(--accent) 48%,var(--line));border-radius:6px;padding:4px 8px;background:color-mix(in srgb,var(--surface-soft) 84%,transparent);color:var(--text);font-size:11px;line-height:1.35}.raw-evidence-details[_ngcontent-%COMP%]{margin-top:5px}.raw-evidence-details[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{width:fit-content;color:var(--muted);font-size:10px;font-weight:760;cursor:pointer}.raw-evidence-details[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:hover{color:var(--text)}.raw-evidence-details[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{display:grid;gap:5px;margin-top:6px;border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:8px;padding:7px 8px;background:color-mix(in srgb,var(--surface) 76%,transparent)}.raw-evidence-details[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--muted);font-size:10px;font-weight:820;letter-spacing:.08em;text-transform:uppercase}.raw-evidence-details[_ngcontent-%COMP%] ul[_ngcontent-%COMP%]{display:grid;gap:4px;margin:0;padding:0;list-style:none}.raw-evidence-details[_ngcontent-%COMP%] li[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:6px;align-items:center;color:var(--muted);font-size:11px}.raw-evidence-details[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{border-radius:999px;padding:2px 6px;background:color-mix(in srgb,var(--surface-soft) 80%,transparent);color:var(--muted);font-size:10px}.customization-path[_ngcontent-%COMP%]{display:grid;gap:4px}.customization-path[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{overflow-wrap:anywhere;color:var(--text);font-size:11px}.customizations-empty[_ngcontent-%COMP%]{display:grid;place-items:center;min-height:190px;padding:18px;text-align:center}@media(max-width:980px){.customizations-controls[_ngcontent-%COMP%], .customizations-workspace[_ngcontent-%COMP%]{grid-template-columns:1fr}.customizations-list[_ngcontent-%COMP%]{position:static;max-height:420px}}@media(max-width:700px){.customizations-header[_ngcontent-%COMP%], .customizations-scan-status[_ngcontent-%COMP%], .customization-detail-header[_ngcontent-%COMP%]{display:grid}.scan-status-grid[_ngcontent-%COMP%]{grid-template-columns:1fr 1fr}.scan-status-body[_ngcontent-%COMP%]{display:grid}.match-group[_ngcontent-%COMP%] summary[_ngcontent-%COMP%], .match-event[_ngcontent-%COMP%]{grid-template-columns:1fr}.match-group-status[_ngcontent-%COMP%]{justify-content:flex-start}.match-group-weak[_ngcontent-%COMP%]{justify-self:start}.match-group-timeline[_ngcontent-%COMP%]{flex-wrap:wrap}}']})};export{Y as CustomizationsPageComponent};