vigiles 14.10.2 → 14.10.3
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/README.md +1 -1
- package/dist/audit-report.template.html +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -162,7 +162,7 @@ Every one of these is **valid markdown** — parses fine, does the wrong thing.
|
|
|
162
162
|
| `test` | Does the harness behave? | No — a scripted stand-in | Every commit |
|
|
163
163
|
| `eval` | Does a skill actually help? | Yes — your subscription | On demand |
|
|
164
164
|
|
|
165
|
-
**One engine, two doors.** `audit` is the local report; **`lint` is the CI gate** that fails the build on the same deterministic checks — broken refs, bad tool contracts, dead hooks, skill collisions (Proofs 1–2). `test` and `eval` go further: past _does it exist_ to _does it work_. (`init` / `compile` / `eject` manage the optional typed-spec layer for the structural rules no linter can express — a graduation step you rarely run by hand.)
|
|
165
|
+
**One engine, two doors.** `audit` is the local report; **`lint` is the CI gate** that fails the build on the same deterministic checks — broken refs, bad tool contracts, dead hooks, skill collisions (Proofs 1–2). `test` and `eval` go further: past _does it exist_ to _does it work_. (`init` / `compile` / `eject` manage the optional typed-spec layer for the structural rules no linter can express — a graduation step you rarely run by hand.) [How the verbs relate →](docs/commands-and-how-they-relate.md)
|
|
166
166
|
|
|
167
167
|
### 🔎 Lint — your instructions stop lying
|
|
168
168
|
|
|
@@ -152,7 +152,7 @@ Error generating stack: `+a.message+`
|
|
|
152
152
|
*
|
|
153
153
|
* This source code is licensed under the ISC license.
|
|
154
154
|
* See the LICENSE file in the root directory of this source tree.
|
|
155
|
-
*/const vy=We("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);function hm(c){var m,g,o="";if(typeof c=="string"||typeof c=="number")o+=c;else if(typeof c=="object")if(Array.isArray(c)){var x=c.length;for(m=0;m<x;m++)c[m]&&(g=hm(c[m]))&&(o&&(o+=" "),o+=g)}else for(g in c)c[g]&&(o&&(o+=" "),o+=g);return o}function gm(){for(var c,m,g=0,o="",x=arguments.length;g<x;g++)(c=arguments[g])&&(m=hm(c))&&(o&&(o+=" "),o+=m);return o}const Xf="-",py=c=>{const m=xy(c),{conflictingClassGroups:g,conflictingClassGroupModifiers:o}=c;return{getClassGroupId:C=>{const O=C.split(Xf);return O[0]===""&&O.length!==1&&O.shift(),ym(O,m)||by(C)},getConflictingClassGroupIds:(C,O)=>{const E=g[C]||[];return O&&o[C]?[...E,...o[C]]:E}}},ym=(c,m)=>{var C;if(c.length===0)return m.classGroupId;const g=c[0],o=m.nextPart.get(g),x=o?ym(c.slice(1),o):void 0;if(x)return x;if(m.validators.length===0)return;const N=c.join(Xf);return(C=m.validators.find(({validator:O})=>O(N)))==null?void 0:C.classGroupId},em=/^\[(.+)\]$/,by=c=>{if(em.test(c)){const m=em.exec(c)[1],g=m==null?void 0:m.substring(0,m.indexOf(":"));if(g)return"arbitrary.."+g}},xy=c=>{const{theme:m,prefix:g}=c,o={nextPart:new Map,validators:[]};return zy(Object.entries(c.classGroups),g).forEach(([N,C])=>{Bf(C,o,N,m)}),o},Bf=(c,m,g,o)=>{c.forEach(x=>{if(typeof x=="string"){const N=x===""?m:tm(m,x);N.classGroupId=g;return}if(typeof x=="function"){if(Sy(x)){Bf(x(o),m,g,o);return}m.validators.push({validator:x,classGroupId:g});return}Object.entries(x).forEach(([N,C])=>{Bf(C,tm(m,N),g,o)})})},tm=(c,m)=>{let g=c;return m.split(Xf).forEach(o=>{g.nextPart.has(o)||g.nextPart.set(o,{nextPart:new Map,validators:[]}),g=g.nextPart.get(o)}),g},Sy=c=>c.isThemeGetter,zy=(c,m)=>m?c.map(([g,o])=>{const x=o.map(N=>typeof N=="string"?m+N:typeof N=="object"?Object.fromEntries(Object.entries(N).map(([C,O])=>[m+C,O])):N);return[g,x]}):c,jy=c=>{if(c<1)return{get:()=>{},set:()=>{}};let m=0,g=new Map,o=new Map;const x=(N,C)=>{g.set(N,C),m++,m>c&&(m=0,o=g,g=new Map)};return{get(N){let C=g.get(N);if(C!==void 0)return C;if((C=o.get(N))!==void 0)return x(N,C),C},set(N,C){g.has(N)?g.set(N,C):x(N,C)}}},vm="!",Ny=c=>{const{separator:m,experimentalParseClassName:g}=c,o=m.length===1,x=m[0],N=m.length,C=O=>{const E=[];let S=0,U=0,H;for(let I=0;I<O.length;I++){let ue=O[I];if(S===0){if(ue===x&&(o||O.slice(I,I+N)===m)){E.push(O.slice(U,I)),U=I+N;continue}if(ue==="/"){H=I;continue}}ue==="["?S++:ue==="]"&&S--}const L=E.length===0?O:O.substring(U),de=L.startsWith(vm),ye=de?L.substring(1):L,w=H&&H>U?H-U:void 0;return{modifiers:E,hasImportantModifier:de,baseClassName:ye,maybePostfixModifierPosition:w}};return g?O=>g({className:O,parseClassName:C}):C},Ty=c=>{if(c.length<=1)return c;const m=[];let g=[];return c.forEach(o=>{o[0]==="["?(m.push(...g.sort(),o),g=[]):g.push(o)}),m.push(...g.sort()),m},Ay=c=>({cache:jy(c.cacheSize),parseClassName:Ny(c),...py(c)}),Ey=/\s+/,My=(c,m)=>{const{parseClassName:g,getClassGroupId:o,getConflictingClassGroupIds:x}=m,N=[],C=c.trim().split(Ey);let O="";for(let E=C.length-1;E>=0;E-=1){const S=C[E],{modifiers:U,hasImportantModifier:H,baseClassName:L,maybePostfixModifierPosition:de}=g(S);let ye=!!de,w=o(ye?L.substring(0,de):L);if(!w){if(!ye){O=S+(O.length>0?" "+O:O);continue}if(w=o(L),!w){O=S+(O.length>0?" "+O:O);continue}ye=!1}const I=Ty(U).join(":"),ue=H?I+vm:I,_e=ue+w;if(N.includes(_e))continue;N.push(_e);const Ne=x(w,ye);for(let W=0;W<Ne.length;++W){const be=Ne[W];N.push(ue+be)}O=S+(O.length>0?" "+O:O)}return O};function _y(){let c=0,m,g,o="";for(;c<arguments.length;)(m=arguments[c++])&&(g=pm(m))&&(o&&(o+=" "),o+=g);return o}const pm=c=>{if(typeof c=="string")return c;let m,g="";for(let o=0;o<c.length;o++)c[o]&&(m=pm(c[o]))&&(g&&(g+=" "),g+=m);return g};function Oy(c,...m){let g,o,x,N=C;function C(E){const S=m.reduce((U,H)=>H(U),c());return g=Ay(S),o=g.cache.get,x=g.cache.set,N=O,O(E)}function O(E){const S=o(E);if(S)return S;const U=My(E,g);return x(E,U),U}return function(){return N(_y.apply(null,arguments))}}const Me=c=>{const m=g=>g[c]||[];return m.isThemeGetter=!0,m},bm=/^\[(?:([a-z-]+):)?(.+)\]$/i,Cy=/^\d+\/\d+$/,Dy=new Set(["px","full","screen"]),Uy=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ry=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Hy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,qy=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,By=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,al=c=>qa(c)||Dy.has(c)||Cy.test(c),Ol=c=>Ga(c,"length",Vy),qa=c=>!!c&&!Number.isNaN(Number(c)),Df=c=>Ga(c,"number",qa),Hn=c=>!!c&&Number.isInteger(Number(c)),Gy=c=>c.endsWith("%")&&qa(c.slice(0,-1)),$=c=>bm.test(c),Cl=c=>Uy.test(c),Yy=new Set(["length","size","percentage"]),Xy=c=>Ga(c,Yy,xm),Qy=c=>Ga(c,"position",xm),Ly=new Set(["image","url"]),Zy=c=>Ga(c,Ly,Jy),wy=c=>Ga(c,"",Ky),qn=()=>!0,Ga=(c,m,g)=>{const o=bm.exec(c);return o?o[1]?typeof m=="string"?o[1]===m:m.has(o[1]):g(o[2]):!1},Vy=c=>Ry.test(c)&&!Hy.test(c),xm=()=>!1,Ky=c=>qy.test(c),Jy=c=>By.test(c),ky=()=>{const c=Me("colors"),m=Me("spacing"),g=Me("blur"),o=Me("brightness"),x=Me("borderColor"),N=Me("borderRadius"),C=Me("borderSpacing"),O=Me("borderWidth"),E=Me("contrast"),S=Me("grayscale"),U=Me("hueRotate"),H=Me("invert"),L=Me("gap"),de=Me("gradientColorStops"),ye=Me("gradientColorStopPositions"),w=Me("inset"),I=Me("margin"),ue=Me("opacity"),_e=Me("padding"),Ne=Me("saturate"),W=Me("scale"),be=Me("sepia"),Te=Me("skew"),J=Me("space"),se=Me("translate"),qe=()=>["auto","contain","none"],Pe=()=>["auto","hidden","clip","visible","scroll"],et=()=>["auto",$,m],F=()=>[$,m],Rt=()=>["",al,Ol],tt=()=>["auto",qa,$],lt=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],j=()=>["solid","dashed","dotted","double","none"],D=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],X=()=>["start","end","center","between","around","evenly","stretch"],ce=()=>["","0",$],he=()=>["auto","avoid","all","avoid-page","page","left","right","column"],d=()=>[qa,$];return{cacheSize:500,separator:":",theme:{colors:[qn],spacing:[al,Ol],blur:["none","",Cl,$],brightness:d(),borderColor:[c],borderRadius:["none","","full",Cl,$],borderSpacing:F(),borderWidth:Rt(),contrast:d(),grayscale:ce(),hueRotate:d(),invert:ce(),gap:F(),gradientColorStops:[c],gradientColorStopPositions:[Gy,Ol],inset:et(),margin:et(),opacity:d(),padding:F(),saturate:d(),scale:d(),sepia:ce(),skew:d(),space:F(),translate:F()},classGroups:{aspect:[{aspect:["auto","square","video",$]}],container:["container"],columns:[{columns:[Cl]}],"break-after":[{"break-after":he()}],"break-before":[{"break-before":he()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...lt(),$]}],overflow:[{overflow:Pe()}],"overflow-x":[{"overflow-x":Pe()}],"overflow-y":[{"overflow-y":Pe()}],overscroll:[{overscroll:qe()}],"overscroll-x":[{"overscroll-x":qe()}],"overscroll-y":[{"overscroll-y":qe()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[w]}],"inset-x":[{"inset-x":[w]}],"inset-y":[{"inset-y":[w]}],start:[{start:[w]}],end:[{end:[w]}],top:[{top:[w]}],right:[{right:[w]}],bottom:[{bottom:[w]}],left:[{left:[w]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Hn,$]}],basis:[{basis:et()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",$]}],grow:[{grow:ce()}],shrink:[{shrink:ce()}],order:[{order:["first","last","none",Hn,$]}],"grid-cols":[{"grid-cols":[qn]}],"col-start-end":[{col:["auto",{span:["full",Hn,$]},$]}],"col-start":[{"col-start":tt()}],"col-end":[{"col-end":tt()}],"grid-rows":[{"grid-rows":[qn]}],"row-start-end":[{row:["auto",{span:[Hn,$]},$]}],"row-start":[{"row-start":tt()}],"row-end":[{"row-end":tt()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",$]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",$]}],gap:[{gap:[L]}],"gap-x":[{"gap-x":[L]}],"gap-y":[{"gap-y":[L]}],"justify-content":[{justify:["normal",...X()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...X(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...X(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[_e]}],px:[{px:[_e]}],py:[{py:[_e]}],ps:[{ps:[_e]}],pe:[{pe:[_e]}],pt:[{pt:[_e]}],pr:[{pr:[_e]}],pb:[{pb:[_e]}],pl:[{pl:[_e]}],m:[{m:[I]}],mx:[{mx:[I]}],my:[{my:[I]}],ms:[{ms:[I]}],me:[{me:[I]}],mt:[{mt:[I]}],mr:[{mr:[I]}],mb:[{mb:[I]}],ml:[{ml:[I]}],"space-x":[{"space-x":[J]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[J]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",$,m]}],"min-w":[{"min-w":[$,m,"min","max","fit"]}],"max-w":[{"max-w":[$,m,"none","full","min","max","fit","prose",{screen:[Cl]},Cl]}],h:[{h:[$,m,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[$,m,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[$,m,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[$,m,"auto","min","max","fit"]}],"font-size":[{text:["base",Cl,Ol]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Df]}],"font-family":[{font:[qn]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",$]}],"line-clamp":[{"line-clamp":["none",qa,Df]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",al,$]}],"list-image":[{"list-image":["none",$]}],"list-style-type":[{list:["none","disc","decimal",$]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[c]}],"placeholder-opacity":[{"placeholder-opacity":[ue]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[c]}],"text-opacity":[{"text-opacity":[ue]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...j(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",al,Ol]}],"underline-offset":[{"underline-offset":["auto",al,$]}],"text-decoration-color":[{decoration:[c]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",$]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",$]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[ue]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...lt(),Qy]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Xy]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Zy]}],"bg-color":[{bg:[c]}],"gradient-from-pos":[{from:[ye]}],"gradient-via-pos":[{via:[ye]}],"gradient-to-pos":[{to:[ye]}],"gradient-from":[{from:[de]}],"gradient-via":[{via:[de]}],"gradient-to":[{to:[de]}],rounded:[{rounded:[N]}],"rounded-s":[{"rounded-s":[N]}],"rounded-e":[{"rounded-e":[N]}],"rounded-t":[{"rounded-t":[N]}],"rounded-r":[{"rounded-r":[N]}],"rounded-b":[{"rounded-b":[N]}],"rounded-l":[{"rounded-l":[N]}],"rounded-ss":[{"rounded-ss":[N]}],"rounded-se":[{"rounded-se":[N]}],"rounded-ee":[{"rounded-ee":[N]}],"rounded-es":[{"rounded-es":[N]}],"rounded-tl":[{"rounded-tl":[N]}],"rounded-tr":[{"rounded-tr":[N]}],"rounded-br":[{"rounded-br":[N]}],"rounded-bl":[{"rounded-bl":[N]}],"border-w":[{border:[O]}],"border-w-x":[{"border-x":[O]}],"border-w-y":[{"border-y":[O]}],"border-w-s":[{"border-s":[O]}],"border-w-e":[{"border-e":[O]}],"border-w-t":[{"border-t":[O]}],"border-w-r":[{"border-r":[O]}],"border-w-b":[{"border-b":[O]}],"border-w-l":[{"border-l":[O]}],"border-opacity":[{"border-opacity":[ue]}],"border-style":[{border:[...j(),"hidden"]}],"divide-x":[{"divide-x":[O]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[O]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[ue]}],"divide-style":[{divide:j()}],"border-color":[{border:[x]}],"border-color-x":[{"border-x":[x]}],"border-color-y":[{"border-y":[x]}],"border-color-s":[{"border-s":[x]}],"border-color-e":[{"border-e":[x]}],"border-color-t":[{"border-t":[x]}],"border-color-r":[{"border-r":[x]}],"border-color-b":[{"border-b":[x]}],"border-color-l":[{"border-l":[x]}],"divide-color":[{divide:[x]}],"outline-style":[{outline:["",...j()]}],"outline-offset":[{"outline-offset":[al,$]}],"outline-w":[{outline:[al,Ol]}],"outline-color":[{outline:[c]}],"ring-w":[{ring:Rt()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[c]}],"ring-opacity":[{"ring-opacity":[ue]}],"ring-offset-w":[{"ring-offset":[al,Ol]}],"ring-offset-color":[{"ring-offset":[c]}],shadow:[{shadow:["","inner","none",Cl,wy]}],"shadow-color":[{shadow:[qn]}],opacity:[{opacity:[ue]}],"mix-blend":[{"mix-blend":[...D(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":D()}],filter:[{filter:["","none"]}],blur:[{blur:[g]}],brightness:[{brightness:[o]}],contrast:[{contrast:[E]}],"drop-shadow":[{"drop-shadow":["","none",Cl,$]}],grayscale:[{grayscale:[S]}],"hue-rotate":[{"hue-rotate":[U]}],invert:[{invert:[H]}],saturate:[{saturate:[Ne]}],sepia:[{sepia:[be]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[g]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[E]}],"backdrop-grayscale":[{"backdrop-grayscale":[S]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[U]}],"backdrop-invert":[{"backdrop-invert":[H]}],"backdrop-opacity":[{"backdrop-opacity":[ue]}],"backdrop-saturate":[{"backdrop-saturate":[Ne]}],"backdrop-sepia":[{"backdrop-sepia":[be]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[C]}],"border-spacing-x":[{"border-spacing-x":[C]}],"border-spacing-y":[{"border-spacing-y":[C]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",$]}],duration:[{duration:d()}],ease:[{ease:["linear","in","out","in-out",$]}],delay:[{delay:d()}],animate:[{animate:["none","spin","ping","pulse","bounce",$]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[W]}],"scale-x":[{"scale-x":[W]}],"scale-y":[{"scale-y":[W]}],rotate:[{rotate:[Hn,$]}],"translate-x":[{"translate-x":[se]}],"translate-y":[{"translate-y":[se]}],"skew-x":[{"skew-x":[Te]}],"skew-y":[{"skew-y":[Te]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",$]}],accent:[{accent:["auto",c]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",$]}],"caret-color":[{caret:[c]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",$]}],fill:[{fill:[c,"none"]}],"stroke-w":[{stroke:[al,Ol,Df]}],stroke:[{stroke:[c,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},$y=Oy(ky);function fe(...c){return $y(gm(c))}function nl({className:c,...m}){return s.jsx("div",{className:fe("rounded-lg border border-border bg-card text-foreground shadow-sm",c),...m})}const lm=c=>typeof c=="boolean"?`${c}`:c===0?"0":c,am=gm,Wy=(c,m)=>g=>{var o;if((m==null?void 0:m.variants)==null)return am(c,g==null?void 0:g.class,g==null?void 0:g.className);const{variants:x,defaultVariants:N}=m,C=Object.keys(x).map(S=>{const U=g==null?void 0:g[S],H=N==null?void 0:N[S];if(U===null)return null;const L=lm(U)||lm(H);return x[S][L]}),O=g&&Object.entries(g).reduce((S,U)=>{let[H,L]=U;return L===void 0||(S[H]=L),S},{}),E=m==null||(o=m.compoundVariants)===null||o===void 0?void 0:o.reduce((S,U)=>{let{class:H,className:L,...de}=U;return Object.entries(de).every(ye=>{let[w,I]=ye;return Array.isArray(I)?I.includes({...N,...O}[w]):{...N,...O}[w]===I})?[...S,H,L]:S},[]);return am(c,C,E,g==null?void 0:g.class,g==null?void 0:g.className)},Fy=Wy("inline-flex items-center rounded-md border px-2 py-0.5 text-xs font-semibold uppercase tracking-wide",{variants:{variant:{default:"border-border bg-background text-muted-foreground",outline:"border-border text-muted-foreground"}},defaultVariants:{variant:"default"}});function Bn({className:c,variant:m,...g}){return s.jsx("span",{className:fe(Fy({variant:m}),c),...g})}function Qf(c){return c===null?"na":c>=90?"good":c>=70?"warn":"bad"}const le={good:"text-good",warn:"text-warn",bad:"text-bad",na:"text-na"},Ha={good:"bg-good",warn:"bg-warn",bad:"bg-bad",na:"bg-na"},ii={good:"border-l-good",warn:"border-l-warn",bad:"border-l-bad",na:"border-l-na"},Iy={good:"border-good",warn:"border-warn",bad:"border-bad",na:"border-na"},Py={enforce:"rule",file:"file",cmd:"cmd",dir:"dir"};function e0({r:c}){return s.jsxs("div",{className:fe("border-l-4 p-3",ii.bad),children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[s.jsx(Bn,{children:Py[c.kind]}),s.jsx("code",{className:"font-mono text-xs text-foreground",children:c.ref})]}),s.jsx("div",{className:"mt-0.5 text-xs text-muted-foreground",children:c.issue})]})}function t0({data:c}){if(c.total===0)return s.jsxs(nl,{className:"p-4 text-sm text-muted-foreground",children:["No machine-verifiable references found — add"," ",s.jsx("code",{className:"font-mono text-xs",children:"enforce()"})," calls to a"," ",s.jsx("code",{className:"font-mono text-xs",children:".spec.ts"})," to unlock cross-referencing."]});const m=c.broken===0;return s.jsxs(nl,{className:"p-5",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsxs("div",{className:"flex items-baseline gap-1.5",children:[s.jsx("span",{className:fe("text-3xl font-bold tabular-nums",m?le.good:le.bad),children:c.broken}),s.jsxs("span",{className:"text-sm text-muted-foreground",children:["/ ",c.total," broken"]})]}),m?s.jsxs("span",{className:fe("flex items-center gap-1 text-sm",le.good),children:[s.jsx(ni,{size:14})," all ",c.total," reference",c.total===1?"":"s"," resolve"]}):s.jsxs("span",{className:fe("flex items-center gap-1 text-sm",le.bad),children:[s.jsx(oy,{size:14})," ",c.broken," broken reference",c.broken===1?"":"s"," found"]})]}),c.brokenRefs.length>0&&s.jsx("div",{className:"mt-4 flex flex-col gap-2",children:c.brokenRefs.map((g,o)=>s.jsx(e0,{r:g},o))})]})}function Sm(){const c=window.__VIGILES_SERVE__;return c&&typeof c.token=="string"?c:null}async function l0(c,m,g){try{const o=await fetch(c,{method:"POST",headers:{"content-type":"application/json","x-vigiles-token":g},body:JSON.stringify(m)}),x=await o.json();return{ok:x.ok??o.ok,message:x.message??""}}catch(o){return{ok:!1,message:o instanceof Error?o.message:String(o)}}}const zm="inline-flex items-center gap-2 rounded-md border border-border bg-card px-3 py-1.5 text-left text-xs font-medium hover:border-foreground disabled:opacity-60";function jm({command:c,label:m}){const[g,o]=xt.useState(!1),x=()=>{var N;(N=navigator.clipboard)==null||N.writeText(c).then(()=>{o(!0),setTimeout(()=>o(!1),1500)},()=>{})};return s.jsxs("button",{type:"button",onClick:x,title:`Copy: ${c}`,className:zm,children:[g?s.jsx(Ba,{size:14,className:le.good}):s.jsx(ui,{size:14,className:"text-muted-foreground"}),s.jsx("span",{className:fe(g&&le.good),children:g?"copied!":m})]})}function Nm({endpoint:c,body:m,token:g,label:o}){const[x,N]=xt.useState("idle"),[C,O]=xt.useState(""),E=()=>{N("running"),l0(c,m,g).then(S=>{N(S.ok?"done":"error"),O(S.message)})};return s.jsxs("button",{type:"button",onClick:E,disabled:x==="running"||x==="done",title:x==="error"?C:o,className:zm,children:[x==="running"&&s.jsx(ry,{size:14,className:"animate-spin text-muted-foreground"}),x==="done"&&s.jsx(Ba,{size:14,className:le.good}),x==="error"&&s.jsx(yy,{size:14,className:le.bad}),x==="idle"&&s.jsx(dm,{size:14,className:"text-muted-foreground"}),s.jsx("span",{className:fe(x==="done"&&le.good,x==="error"&&le.bad),children:x==="done"?"created":x==="error"?"failed":x==="running"?"creating…":o})]})}function a0({path:c,command:m}){const g=Sm();return s.jsxs("div",{className:"flex flex-wrap items-center gap-3 border-l-4 border-l-warn p-3",children:[s.jsx("code",{className:"font-mono text-xs text-foreground",children:c}),s.jsx("div",{className:"ml-auto",children:g?s.jsx(Nm,{endpoint:"/adopt",body:{target:c},token:g.token,label:"Create spec"}):s.jsx(jm,{command:m,label:"Create spec"})})]})}function n0({data:c}){const m=Sm();return s.jsxs(nl,{className:"p-5",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[s.jsx(dm,{size:16,className:"text-muted-foreground"}),c.surfaces.length," surface",c.surfaces.length===1?"":"s"," not yet spec-managed"]}),s.jsx("div",{className:"ml-auto",children:m?s.jsx(Nm,{endpoint:"/adopt-all",body:{},token:m.token,label:"Create all specs"}):s.jsx(jm,{command:c.createAllCommand,label:"Create all specs"})})]}),s.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:m?"Click to create the typed spec — this report is live, so the CLI writes it for you (re-run audit to see it spec-managed).":"Copy the command and run it in your terminal — the CLI writes the typed spec (the browser can’t write files)."}),c.surfaces.length>0&&s.jsx("div",{className:"mt-4 flex flex-col gap-2",children:c.surfaces.map(g=>s.jsx(a0,{path:g.path,command:g.command},g.path))})]})}const u0="inline-flex items-center gap-2 rounded-md border border-border bg-card px-3 py-1.5 text-left text-xs font-medium hover:border-foreground disabled:opacity-60";function i0({item:c}){const[m,g]=xt.useState(!1),o=c.configState==="contradiction"?`In this repo, the ${c.linter} rule \`${c.rule}\` is set to "off" in the lint config, but the instructions document "${c.intent}" as a rule. Resolve the contradiction: either remove the override so \`${c.rule}\` is enforced (${c.configFix}), or drop the documented rule if it's intentionally off.`:`In this repo, enable the ${c.linter} rule \`${c.rule}\` (set it to "error") in the lint config, so the documented rule "${c.intent}" is actually enforced. Config to add: ${c.configFix}`,x=()=>{var N;(N=navigator.clipboard)==null||N.writeText(o).then(()=>{g(!0),setTimeout(()=>g(!1),1500)},()=>{})};return s.jsxs("button",{type:"button",onClick:x,title:o,className:u0,children:[m?s.jsx(Ba,{size:14,className:le.good}):s.jsx(ui,{size:14,className:"text-muted-foreground"}),s.jsx("span",{className:fe(m&&le.good),children:m?"copied!":"copy agent prompt"})]})}function li({item:c,tone:m,label:g,action:o}){return s.jsxs(nl,{className:"flex flex-wrap items-center gap-x-3 gap-y-2 p-3 text-sm",children:[m==="good"?s.jsx(Ba,{size:16,className:le.good}):s.jsx("span",{className:fe("text-lg leading-none",m==="warn"?le.warn:m==="bad"?le.bad:"text-muted-foreground"),children:"●"}),s.jsx("span",{className:"min-w-[12rem] flex-1",children:c.intent}),s.jsx("code",{className:"font-mono text-xs text-muted-foreground",children:c.rule}),s.jsx("span",{className:fe("text-xs",m==="good"?le.good:m==="warn"?le.warn:m==="bad"?le.bad:"text-muted-foreground"),children:g}),o&&s.jsx(i0,{item:c})]})}function nm({title:c,tone:m,children:g}){return s.jsxs("details",{className:"group",children:[s.jsxs("summary",{className:fe("flex cursor-pointer list-none items-center gap-1.5 py-1 text-xs font-medium",m==="good"?le.good:"text-muted-foreground"),children:[s.jsx(ai,{size:13,className:"transition-transform group-open:rotate-90"}),c]}),s.jsx("div",{className:"mt-2 space-y-2",children:g})]})}const Uf={reuse:{glyph:"✓",label:"enforceable now",blurb:"an off-the-shelf rule already exists → one config line"},hook:{glyph:"⛓",label:"hook",blurb:"an action rule a linter can't see (git push, rm -rf) → a hook gates it"},meta:{glyph:"☰",label:"agent note",blurb:"an instruction to the agent, not a code rule → stays prose"},semantic:{glyph:"✎",label:"judgment call",blurb:"no checker can decide it (“readable”, “idiomatic”) → honestly stays prose"},unrouted:{glyph:"⚙",label:"custom rule",blurb:"no off-the-shelf rule fits, but a custom one CAN — the opt-in synthesis skill writes + gates it (abstains if it can't prove it sound)"}},c0=["reuse","hook","meta","semantic","unrouted"];function f0({routing:c}){const m=o=>{var x;return(x=c==null?void 0:c.rules.find(N=>N.category===o))==null?void 0:x.text},g=((c==null?void 0:c.rules)??[]).filter(o=>o.category==="reuse"&&o.enabled===!1);return s.jsxs("div",{className:"rounded-lg border border-dashed border-border p-4",children:[s.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[s.jsx(hy,{size:15,className:"text-muted-foreground"}),"Your rules, mapped",s.jsx("span",{className:"text-xs font-normal text-muted-foreground",children:"deterministic · no model"})]}),c&&c.segmented>0?s.jsxs(s.Fragment,{children:[s.jsxs("p",{className:"mt-1.5 text-xs text-muted-foreground",children:["We segmented"," ",s.jsx("span",{className:"font-semibold text-foreground",children:c.segmented})," ","atomic ",c.segmented===1?"rule":"rules"," from your instructions and routed each one — deterministically, no model:"]}),s.jsx("ul",{className:"mt-2 space-y-1.5 text-xs text-muted-foreground",children:c0.filter(o=>c.counts[o]>0).map(o=>{const x=m(o);return s.jsxs("li",{children:[s.jsxs("span",{className:"font-mono text-foreground",children:[Uf[o].glyph," ",c.counts[o]," ",Uf[o].label]})," ","— ",Uf[o].blurb,o==="reuse"&&g.length>0&&s.jsxs("span",{className:fe("ml-1 font-semibold",le.bad),children:["(",g.length," documented but OFF)"]}),x&&s.jsxs("span",{className:"mt-0.5 block truncate pl-4 italic opacity-80",children:["e.g. “",x,"”"]})]},o)})}),g.length>0&&s.jsxs("div",{className:fe("mt-2.5 rounded-md border p-2.5","border-l-4"),children:[s.jsxs("p",{className:fe("text-xs font-semibold",le.bad),children:["⛔ ",g.length," documented but OFF"]}),s.jsxs("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["Your instructions name"," ",g.length===1?"this rule":"these rules"," as enforced, but your linter config has ",g.length===1?"it":"them"," ","disabled:"]}),s.jsxs("ul",{className:"mt-1 space-y-0.5",children:[g.slice(0,6).map(o=>s.jsxs("li",{className:"font-mono text-xs text-muted-foreground",children:[s.jsx("code",{className:le.bad,children:o.rule})," ",s.jsxs("span",{className:"opacity-70",children:["— ",o.text]})]},o.rule)),g.length>6&&s.jsxs("li",{className:"text-xs text-muted-foreground",children:["+",g.length-6," more"]})]})]}),s.jsx(um,{routing:c}),s.jsx(im,{})]}):s.jsxs(s.Fragment,{children:[s.jsx(um,{routing:c}),s.jsx("p",{className:"mt-1.5 text-xs text-muted-foreground",children:"Segments your instruction file into atomic rules and routes each one — deterministically, no model:"}),s.jsxs("ul",{className:"mt-2 space-y-1 text-xs text-muted-foreground",children:[s.jsxs("li",{children:[s.jsx("span",{className:"font-mono text-foreground",children:"✓ enforceable now"})," ","— an off-the-shelf rule already exists → enable it"]}),s.jsxs("li",{children:[s.jsx("span",{className:"font-mono text-foreground",children:"⛓ hook"})," — action rules a linter can't see (git push, rm -rf)"]}),s.jsxs("li",{children:[s.jsx("span",{className:"font-mono text-foreground",children:"⚙ custom rule"})," — no off-the-shelf rule fits, but a custom one CAN (“wrap API calls in retry”) → the opt-in synthesis skill, gated"]}),s.jsxs("li",{children:[s.jsx("span",{className:"font-mono text-foreground",children:"✎ judgment call"})," ","— genuinely undecidable (“readable”), honestly left as prose"]})]}),s.jsx(im,{})]})]})}function um({routing:c}){const m=(c==null?void 0:c.possible)??[],g=(c==null?void 0:c.skipped)??[];if(m.length===0&&g.length===0)return null;const o={};for(const x of g)o[x.reason]=(o[x.reason]??0)+1;return s.jsxs("div",{className:"mt-2.5 space-y-2",children:[m.length>0&&s.jsxs("div",{className:"rounded-md border border-dashed border-border p-2.5",children:[s.jsxs("p",{className:"text-xs font-semibold text-foreground",children:["? ",m.length," possible — rule-ish, below the confidence bar (review)"]}),s.jsxs("ul",{className:"mt-1 space-y-0.5",children:[m.slice(0,6).map((x,N)=>s.jsxs("li",{className:"truncate text-xs italic text-muted-foreground opacity-80",children:["“",x.text,"”"]},`${x.lineStart}-${N}`)),m.length>6&&s.jsxs("li",{className:"text-xs text-muted-foreground",children:["+",m.length-6," more"]})]})]}),g.length>0&&s.jsxs("p",{className:"text-xs text-muted-foreground",children:["⊘ ",g.length," skipped — not treated as rules (",Object.entries(o).map(([x,N])=>`${N} ${x}`).join(" · "),")"]}),s.jsx("p",{className:"text-xs text-muted-foreground opacity-70",children:"Detection is a best-effort, precision-first filter — it won’t catch every rule. Full per-bullet lists are in the JSON report."})]})}function im(){return s.jsxs("div",{className:"mt-2.5 space-y-1 text-xs text-muted-foreground",children:[s.jsxs("p",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Enforceable now"})," — enable each in your lint config (one line), or ask your agent to run the"," ",s.jsx("code",{className:"rounded bg-border px-1 font-mono",children:"strengthen"})," ","skill."]}),s.jsxs("p",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Hooks"})," — author a compiled hook in"," ",s.jsx("code",{className:"rounded bg-border px-1 font-mono",children:".vigiles/hooks/"}),", then"," ",s.jsx("code",{className:"rounded bg-border px-1 font-mono",children:"npx vigiles compile"})," ","wires it into your settings."]}),s.jsxs("p",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Custom rule (⚙)"})," — no off-the-shelf rule fits, but a custom one CAN enforce it (e.g. “wrap API calls in a retry”). Doable, not a dead end — the opt-in synthesis skill writes and gates it (with a bit of codebase context); it abstains rather than ship a checker it can’t prove sound. Nothing is generated for you automatically."]}),s.jsxs("p",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Judgment call (✎)"})," — genuinely undecidable (“keep it readable”); no checker can decide it, so it honestly stays prose."]})]})}function s0({data:c,routing:m}){const g=c.filter(E=>E.configState==="in-config"),o=c.filter(E=>E.configState==="preset-maybe"),x=c.filter(E=>E.configState==="not-in-config"),N=c.filter(E=>E.configState==="contradiction"),C=c.length,O=(E,S)=>E>0?s.jsx("div",{className:fe(S),style:{flexGrow:E},"aria-hidden":!0}):null;return s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-2",children:[s.jsxs("p",{className:"text-sm text-muted-foreground",children:[s.jsx("span",{className:fe("font-semibold",le.good),children:g.length})," ","of ",C," enforced",o.length>0&&s.jsxs(s.Fragment,{children:[" · ",s.jsx("span",{className:"font-semibold text-foreground",children:o.length})," ","likely via a preset"]}),x.length>0&&s.jsxs(s.Fragment,{children:[" · ",s.jsx("span",{className:fe("font-semibold",le.warn),children:x.length})," ",x.length===1?"is":"are"," one config line away"]}),N.length>0&&s.jsxs(s.Fragment,{children:[" · ",s.jsx("span",{className:fe("font-semibold",le.bad),children:N.length})," ","contradicted by config"]}),"."]}),s.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[s.jsx(vy,{size:12})," deterministic · no model"]})]}),s.jsxs("div",{className:"flex h-2 overflow-hidden rounded-full bg-border",children:[O(g.length,Ha.good),O(o.length,Ha.na),O(x.length,Ha.warn),O(N.length,Ha.bad)]}),N.length>0&&s.jsx("div",{className:"space-y-2",children:N.map(E=>s.jsx(li,{item:E,tone:"bad",label:"⛔ set to off in your config — your call",action:!0},E.rule))}),x.length>0&&s.jsx("div",{className:"space-y-2",children:x.map(E=>s.jsx(li,{item:E,tone:"warn",label:"enable in 1 line",action:!0},E.rule))}),g.length>0&&s.jsx(nm,{title:`✓ ${g.length} already enforced`,tone:"good",children:g.map(E=>s.jsx(li,{item:E,tone:"good",label:"enforced"},E.rule))}),o.length>0&&s.jsx(nm,{title:`◦ ${o.length} likely enforced via a preset`,tone:"muted",children:o.map(E=>s.jsx(li,{item:E,tone:"muted",label:"preset?"},E.rule))}),s.jsx(f0,{routing:m})]})}function o0({data:c}){return s.jsxs(nl,{className:"p-5",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[s.jsx(my,{size:16,className:"text-muted-foreground"}),c.total," record",c.total===1?"":"s"," recorded"]}),s.jsx("div",{className:"ml-auto flex flex-wrap gap-1.5",children:c.counts.map(m=>s.jsxs(Bn,{variant:"outline",children:[m.count," ",m.kind]},m.kind))})]}),c.recentDenials.length>0&&s.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[s.jsxs("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:["Recent denials (",c.denials,")"]}),c.recentDenials.map((m,g)=>s.jsxs("div",{className:fe("flex flex-wrap items-center gap-2 border-l-4 p-3 text-sm",ii.bad),children:[s.jsx(fy,{size:14,className:le.bad}),s.jsx("code",{className:"font-mono text-xs",children:m.label}),s.jsx("span",{className:"text-muted-foreground",children:m.reason})]},g))]})]})}const cm="Set up vigiles and measure whether my skills actually fire: run `npx vigiles init`, then use the test-harness skill to run measureTriggerRate. Report each skill's recall (does it fire when it should?) and precision (does it stay quiet on unrelated prompts?). It runs on my Claude subscription — no API key.",r0=new Set(["lethal-trifecta","subagent-tool-contract","mcp-tool-resolves","hook-events","hook-script-exists","description-overlap","skill-frontmatter","subagent-frontmatter"]);function d0(c){return`https://vigiles.sh/checks/${c}/`}function Tm({slug:c,children:m,className:g}){return r0.has(c)?s.jsx("a",{href:d0(c),target:"_blank",rel:"noreferrer",className:fe("underline decoration-dotted underline-offset-2",g),children:m}):s.jsx("span",{className:g,children:m})}function fm({text:c,advisory:m}){const g=c.replace(/\s*\(advisory\)\s*$/,"");return s.jsxs("span",{children:[s.jsx("span",{children:g}),m&&s.jsx("span",{className:"text-na",children:" · advisory, not graded"})]})}function Gf(c){const m=c.replace(/[/\\]+$/,"").split(/[/\\]/);return m[m.length-1]||c}function m0(c){const m=c.find(g=>g.key==="Safety");return!m||m.advisory||m.score===null?[]:m.findings.filter(g=>!g.endsWith("(advisory)"))}function sm({clean:c}){return c?s.jsxs(nl,{className:"flex items-center gap-2 p-4 text-sm text-good",children:[s.jsx(ni,{size:16})," No deterministic fixes — the structure is clean."]}):s.jsx(nl,{className:"p-4 text-sm text-muted-foreground",children:"No deterministic auto-fixes — review the flagged findings above."})}function h0(c){return c>=8?"bad":c>=3?"warn":"na"}function g0({r:c}){const[m,g]=xt.useState(!1),o=`In this repo, ${c.fix}. Context: ${c.rationale} (detector: ${c.detector}).`,x=()=>{var N;(N=navigator.clipboard)==null||N.writeText(o).then(()=>{g(!0),setTimeout(()=>g(!1),1500)},()=>{})};return s.jsxs("button",{type:"button",onClick:x,title:o,className:"inline-flex items-center gap-1.5 rounded-md border border-border bg-card px-2.5 py-1 text-xs font-medium hover:border-foreground",children:[m?s.jsx(Ba,{size:13,className:le.good}):s.jsx(ui,{size:13,className:"text-muted-foreground"}),s.jsx("span",{className:fe(m&&le.good),children:m?"copied!":"copy agent prompt"})]})}function Rf({r:c,points:m}){const g=c.action==="fix"?gy:sy,o=h0(m);return s.jsxs("div",{className:fe("rounded-xl border border-l-4 border-border/40 bg-card/30 p-5",ii[o]),children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[s.jsxs(Bn,{children:[s.jsx(g,{size:12,className:"mr-1"}),c.action]}),s.jsx("strong",{children:c.surface}),m>0&&s.jsxs("span",{className:fe("rounded-full px-2 py-0.5 text-xs font-semibold",le[o]),children:["+",m," pts"]}),s.jsx(Tm,{slug:c.detector,className:"ml-auto hidden font-mono text-xs text-muted-foreground hover:text-foreground sm:inline",children:c.detector})]}),s.jsx("div",{className:"mt-2.5 text-sm leading-relaxed text-muted-foreground",children:c.rationale}),s.jsxs("div",{className:"mt-3.5 flex flex-wrap items-center justify-between gap-2",children:[s.jsxs("span",{className:"text-sm leading-relaxed text-good",children:["→ ",c.fix]}),s.jsx(g0,{r:c})]})]})}function y0({finding:c}){return s.jsx("div",{className:fe("rounded-xl border border-l-4 border-border/40 bg-card/30 p-5",ii.bad),children:s.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[s.jsxs(Bn,{children:[s.jsx(mm,{size:12,className:"mr-1"}),"safety"]}),s.jsxs("span",{className:"leading-relaxed text-muted-foreground",children:[c," ",s.jsx(Tm,{slug:"lethal-trifecta",className:"text-muted-foreground hover:text-foreground",children:"what's this?"})]}),s.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:"your call — no deterministic fix"})]})})}function v0({c}){const m=c.advisory?"na":Qf(c.score),g=c.score===null?0:Math.max(0,Math.min(100,c.score));return s.jsxs(nl,{className:"flex flex-col gap-2 p-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[s.jsx("span",{className:"text-xs font-semibold",children:c.key}),s.jsx("span",{className:fe("text-sm font-bold",le[m]),children:c.advisory?"—":c.score===null?"n/a":c.score})]}),s.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-border",children:s.jsx("div",{className:fe("h-full rounded-full",Ha[m]),style:{width:`${g}%`}})}),s.jsx("div",{className:"h-8 overflow-hidden text-[11px] leading-tight text-muted-foreground",children:c.advisory?s.jsx("span",{className:"text-na",children:"advisory — not graded"}):c.findings.length>0?s.jsxs("span",{className:"line-clamp-2",children:[c.findings[0],c.findings.length>1&&s.jsxs("span",{className:"text-foreground",children:[" ","· +",c.findings.length-1," more"]})]}):s.jsxs("span",{className:"inline-flex items-center gap-1 text-good",children:[s.jsx(ni,{size:11})," clean"]})})]})}function p0({c,refs:m}){const g=c.advisory?"na":Qf(c.score),o=c.score===null?0:Math.max(0,Math.min(100,c.score)),x=c.findings.map(U=>({text:U,advisory:!!c.advisory||U.endsWith("(advisory)")})),N=[...x.filter(U=>!U.advisory),...x.filter(U=>U.advisory)],[C,...O]=N,E=c.key==="Safety"&&C&&!C.advisory,S=c.score===null?"n/a":String(c.score);return s.jsxs("div",{className:"py-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[s.jsx("span",{className:"text-sm font-medium",children:c.key}),s.jsx("span",{className:fe("font-mono text-sm font-bold",le[g]),children:S})]}),s.jsx("div",{className:"mt-1.5 h-1 overflow-hidden rounded-full bg-border",children:s.jsx("div",{className:fe("h-full rounded-full",Ha[g]),style:{width:`${o}%`}})}),s.jsx("div",{className:"mt-2 text-[13px] leading-snug text-muted-foreground",children:C?s.jsxs(s.Fragment,{children:[E&&s.jsx(mm,{size:12,className:fe("mr-1 inline align-[-2px]",le.bad),"aria-hidden":!0}),s.jsx(fm,{text:C.text,advisory:C.advisory}),m&&m.length>0&&s.jsx("ul",{className:"mt-1 space-y-0.5",children:m.map(U=>s.jsxs("li",{className:"font-mono text-[11px] text-na",children:["↳ ",U," ",s.jsx("span",{className:"text-muted-foreground",children:"— missing"})]},U))}),O.length>0&&s.jsxs("details",{className:"group mt-1",children:[s.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1 text-[11px] font-medium text-muted-foreground/80 hover:text-foreground",children:[s.jsx(ai,{size:11,className:"transition-transform group-open:rotate-90"}),"+ ",O.length," more"]}),s.jsx("ul",{className:"mt-1 space-y-1 border-l border-border/50 pl-3",children:O.map((U,H)=>s.jsx("li",{children:s.jsx(fm,{text:U.text,advisory:U.advisory})},H))})]})]}):s.jsxs("span",{className:"inline-flex items-center gap-1 text-good",children:[s.jsx(ni,{size:12})," clean"]})})]})}function b0({onUnlock:c}){const[m,g]=xt.useState(!1),o=()=>{var x;c==null||c(),(x=navigator.clipboard)==null||x.writeText(cm).then(()=>{g(!0),setTimeout(()=>g(!1),2200)},()=>{})};return s.jsxs("div",{className:"rounded-xl border border-dashed border-border/70 bg-card/20 p-4",children:[s.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4",children:[s.jsxs("div",{className:"min-w-0 sm:flex-1",children:[s.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium",children:[s.jsx(dy,{size:13,className:"shrink-0 text-muted-foreground","aria-hidden":!0}),"Do your skills actually fire?"]}),s.jsx("p",{className:"mt-1 text-[13px] leading-snug text-muted-foreground",children:"The five above are deterministic — a browser can measure them. This one needs a real model: recall (does a skill fire when it should?) and precision (does it stay quiet on unrelated prompts?)."}),s.jsxs("div",{className:"mt-2 flex items-center gap-2 font-mono text-xs text-muted-foreground",children:[s.jsxs("span",{children:["recall ",s.jsx("span",{className:"font-bold text-foreground",children:"—"})]}),s.jsx("span",{children:"·"}),s.jsxs("span",{children:["precision ",s.jsx("span",{className:"font-bold text-foreground",children:"—"})]}),s.jsx("span",{className:"not-italic text-muted-foreground/70",children:"(run to fill)"})]})]}),s.jsxs("div",{className:"flex flex-col items-start gap-1 sm:shrink-0 sm:items-end",children:[s.jsx("button",{type:"button",onClick:o,title:cm,className:"inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border border-border bg-card px-3 py-1.5 text-xs font-semibold transition-colors hover:border-foreground",children:m?s.jsxs(s.Fragment,{children:[s.jsx(Ba,{size:13,"aria-hidden":!0,className:fe("shrink-0",le.good)}),s.jsx("span",{className:le.good,children:"Copied — paste into Claude Code"})]}):s.jsxs(s.Fragment,{children:[s.jsx(ui,{size:13,"aria-hidden":!0,className:"shrink-0 text-muted-foreground"}),"Copy prompt →"]})}),s.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"copies a prompt for Claude Code"})]})]}),s.jsx("p",{className:"mt-2 text-[11px] text-muted-foreground",children:"Runs on your Claude subscription — no API key, nothing leaves your machine."})]})}function om({verdict:c,overall:m,dir:g,harness:o,compact:x=!1,subline:N}){const C=Qf(m),O=x?"h-20 w-20 rounded-xl text-4xl":"h-28 w-28 rounded-2xl text-5xl",E=s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:fe("flex shrink-0 flex-col items-center justify-center border-2",O,Iy[C]),children:[s.jsx("span",{className:fe("font-black leading-none",le[C]),children:c.grade}),s.jsx("span",{className:"mt-1 text-xs font-medium text-muted-foreground",children:m===null?"—":`${m}/100`})]}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("h1",{className:fe("font-bold leading-snug tracking-tight",x?"text-lg sm:text-xl":"text-xl sm:text-2xl"),children:c.sentence}),s.jsxs("div",{className:"mt-2 text-sm text-muted-foreground",children:[s.jsx("span",{className:"font-medium text-foreground",children:Gf(g)})," ·"," ",o,N]}),!x&&s.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:"deterministic · no model · nothing leaves your machine"})]})]});return x?s.jsx("div",{className:"flex flex-col gap-6 sm:flex-row sm:items-center",children:E}):s.jsx(nl,{className:"flex flex-col gap-5 p-7 sm:flex-row sm:items-center",children:E})}function x0({n:c,children:m}){return c<=0?null:s.jsxs("details",{className:"group mt-2.5",children:[s.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 text-xs font-semibold uppercase tracking-widest text-muted-foreground hover:text-foreground",children:[s.jsx(ai,{size:13,className:"transition-transform group-open:rotate-90"}),"+ ",c," more"]}),s.jsx("div",{className:"mt-2.5 flex flex-col gap-2.5",children:m})]})}const Hf="mb-4 mt-12 text-[11px] font-semibold uppercase tracking-[0.18em] text-muted-foreground/70";function S0({data:c,showFooter:m=!0,variant:g="full",onUnlock:o}){var _e,Ne;const{score:x,verdict:N,recommendations:C,inventory:O,meta:E,adoptability:S,adoptable:U,observations:H,rulesInventory:L,ruleRouting:de,brokenReferences:ye}=c,w=x.empty?null:x.overall;xt.useEffect(()=>{document.title=w===null?`vigiles — ${Gf(E.dir)}`:`vigiles — ${x.grade} (${w}) · ${Gf(E.dir)}`},[w,x.grade,E.dir]);const I=W=>{var be;return((be=N.perRecommendation.find(Te=>Te.index===W))==null?void 0:be.pointsIfFixed)??0},ue=C.map((W,be)=>({r:W,points:I(be)})).sort((W,be)=>be.points-W.points);if(g==="summary"){const W=(se,qe)=>se&&`${se} ${qe}${se===1?"":"s"}`,be=[W(O.skills,"skill"),W(O.agents,"agent"),W(O.hooks,"hook"),W(O.commands,"command")].filter(Boolean),Te=ue.slice(0,3),J=ue.slice(3);return s.jsxs("div",{children:[s.jsx(om,{compact:!0,verdict:N,overall:w,dir:E.dir,harness:E.harness,subline:s.jsxs(s.Fragment,{children:[be.map(se=>s.jsxs("span",{children:[" · ",se]},se)),O.untested>0&&s.jsxs("span",{className:le.warn,children:[" ","· ",O.untested," untested"]})]})}),s.jsx("h2",{className:Hf,children:"Categories — and what's flagged"}),s.jsx("div",{className:"divide-y divide-border/40",children:x.categories.map(se=>s.jsx(p0,{c:se,refs:se.key==="Truthfulness"?ye:void 0},se.key))}),s.jsx("p",{className:"mb-2.5 mt-6 text-[11px] font-medium uppercase tracking-[0.14em] text-muted-foreground/60",children:"One thing a browser can't measure"}),s.jsx(b0,{onUnlock:o}),C.length>0?s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:Hf,children:"Do these first"}),s.jsx("div",{className:"flex flex-col gap-2.5",children:Te.map(({r:se,points:qe},Pe)=>s.jsx(Rf,{r:se,points:qe},Pe))}),s.jsx(x0,{n:J.length,children:J.map(({r:se,points:qe},Pe)=>s.jsx(Rf,{r:se,points:qe},Pe))})]}):x.overall===100&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:Hf,children:"Fixes"}),s.jsx(sm,{clean:!0})]})]})}return s.jsxs("div",{className:"mx-auto max-w-5xl px-6 pb-16 pt-10",children:[s.jsx(om,{verdict:N,overall:w,dir:E.dir,harness:E.harness}),s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Categories"}),s.jsx("div",{className:"grid grid-cols-2 gap-2.5 sm:grid-cols-3 lg:grid-cols-5",children:x.categories.map(W=>s.jsx(v0,{c:W},W.key))}),s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:C.length>0?"Do these first":"Fixes"}),ue.length>0?s.jsx("div",{className:"flex flex-col gap-2.5",children:ue.map(({r:W,points:be},Te)=>s.jsx(Rf,{r:W,points:be},Te))}):s.jsx(sm,{clean:x.overall===100}),(()=>{const W=m0(x.categories);return W.length===0?null:s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Review — no auto-fix"}),s.jsx("div",{className:"flex flex-col gap-2.5",children:W.map((be,Te)=>s.jsx(y0,{finding:be},Te))})]})})(),S&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Broken references"}),s.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:"Machine-verifiable references in your instruction file — files, scripts, symbols — checked against your actual repo and config. These don't resolve."}),s.jsx(t0,{data:S})]}),H&&H.total>0&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Flight recorder"}),s.jsxs("p",{className:"mb-3 text-xs text-muted-foreground",children:["What your harness actually did in real sessions — read off the local",s.jsx("code",{className:"mx-1 font-mono",children:".vigiles/runs.jsonl"})," ledger."]}),s.jsx(o0,{data:H})]}),(L&&L.length>0||de&&(de.segmented>0||(((_e=de.possible)==null?void 0:_e.length)??0)>0||(((Ne=de.skipped)==null?void 0:Ne.length)??0)>0))&&s.jsxs(s.Fragment,{children:[s.jsxs("h2",{className:"mb-3 mt-9 flex items-center gap-2 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:["Your rules → enforced",s.jsx(Bn,{className:"border-warn text-warn",children:"experimental"})]}),s.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:"Prose rules in your instruction file that map to an off-the-shelf lint rule — and whether it's actually enforced. Detection is a heuristic, precision-first preview: it won't catch every rule."}),s.jsx(s0,{data:L??[],routing:de})]}),s.jsxs("div",{className:"mt-9 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground",children:[s.jsx("span",{className:"font-semibold uppercase tracking-widest",children:"Ships"}),s.jsxs("span",{children:[O.skills," skills"]}),s.jsxs("span",{children:[O.agents," agents"]}),s.jsxs("span",{children:[O.hooks," hooks"]}),s.jsxs("span",{children:[O.commands," commands"]}),s.jsxs("span",{children:["MCP ",O.mcp?"yes":"no"]}),O.untested>0&&s.jsxs("span",{className:le.warn,children:[O.untested," untested"]})]}),U&&U.surfaces.length>0&&s.jsxs("details",{className:"group mt-6",children:[s.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 text-xs font-semibold uppercase tracking-widest text-muted-foreground hover:text-foreground",children:[s.jsx(ai,{size:13,className:"transition-transform group-open:rotate-90"}),"Optional — turn ",U.surfaces.length," surface",U.surfaces.length>1?"s":""," into typed specs"]}),s.jsx("p",{className:"mb-3 mt-3 text-xs text-muted-foreground",children:"Hardening, not a fix: make vigiles verify these surfaces' references — fully, or one at a time. Skip it until you want CI to gate them."}),s.jsx(n0,{data:U})]}),m&&s.jsx("footer",{className:"mt-12 text-center text-xs text-muted-foreground",children:"Generated by vigiles — we run your harness, not just read it."})]})}const z0={meta:{schemaVersion:2,tool:"vigiles",kind:"audit",vigilesVersion:"0.0.0",harness:"claude-code",dir:"my-plugin"},score:{overall:77,grade:"C",empty:!1,categories:[{key:"Truthfulness",score:100,weight:1,findings:[]},{key:"Triggering",score:92,weight:1,findings:["1 near-identical skill description (wrong one fires)"]},{key:"Structure",score:92,weight:1,findings:["1 agent tool that doesn't exist (typo / never-available)"]},{key:"Safety",score:80,weight:1,findings:["1 subagent holding all three lethal-trifecta legs (prompt-injection exfil path)"]},{key:"Tested",score:88,weight:1,findings:["4 untested surfaces"]}]},verdict:{sentence:"Two one-line fixes away from a B.",grade:"C",pointsToNextGrade:3,fixesToNextGrade:2,perRecommendation:[{index:0,pointsIfFixed:4},{index:1,pointsIfFixed:2}]},recommendations:[{surface:"reviewer",action:"fix",rationale:`Unknown tool "Reed" — silently dropped, the agent can't use it.`,fix:'change the tool "Reed" to "Read"',detector:"subagent-tool-contract",confidence:"likely"},{surface:"deploy ↔ ship",action:"differentiate",rationale:"Near-identical descriptions (0.92 similar) — the selector can't tell them apart.",fix:"differentiate the descriptions of deploy and ship",detector:"description-overlap",confidence:"possible"}],inventory:{skills:2,agents:1,hooks:1,commands:0,mcp:!1,untested:4},adoptable:{createAllCommand:"npx vigiles init",surfaces:[{path:"skills/deploy/SKILL.md",command:"npx vigiles init --target=skills/deploy/SKILL.md"},{path:"agents/reviewer.md",command:"npx vigiles init --target=agents/reviewer.md"}]},adoptability:{total:7,broken:2,brokenRefs:[{kind:"file",ref:"src/auth/login.ts",issue:"file does not exist"},{kind:"dir",ref:"packages/legacy/",issue:"directory does not exist"}]},ruleRouting:{segmented:8,counts:{reuse:3,hook:2,meta:0,semantic:1,unrouted:2},rules:[{text:"Never use `console.log` in shipped code.",quote:"- Never use `console.log` in shipped code.",file:"CLAUDE.md",lineStart:12,lineEnd:12,confidence:"high",category:"reuse",mechanism:"config-line",rule:"no-console",linter:"eslint",enabled:!1,source:"marker"},{text:"Never push directly to `main` — open a PR.",quote:"- Never push directly to `main` — open a PR.",file:"CLAUDE.md",lineStart:18,lineEnd:18,confidence:"high",category:"hook",mechanism:"hook"},{text:"Run `npm test` before every commit.",quote:"- Run `npm test` before every commit.",file:"CLAUDE.md",lineStart:19,lineEnd:19,confidence:"high",category:"hook",mechanism:"hook"},{text:"Write clear, self-documenting code.",quote:"- Write clear, self-documenting code.",file:"CLAUDE.md",lineStart:21,lineEnd:21,confidence:"high",category:"semantic",mechanism:"prose"},{text:"Prefer named exports over default exports.",quote:"- Prefer named exports over default exports.",file:"CLAUDE.md",lineStart:22,lineEnd:22,confidence:"high",category:"unrouted",mechanism:"synthesize"}]},rulesInventory:[{intent:"strict equality ===",linter:"eslint",matched:"eqeqeq",rule:"eqeqeq",configState:"contradiction",configFix:'"eqeqeq": "error"'},{intent:"no console.log / use the logger",linter:"eslint",matched:"console.log",rule:"no-console",configState:"not-in-config",configFix:'"no-console": "error"'},{intent:"no debugger",linter:"eslint",matched:"no-debugger",rule:"no-debugger",configState:"not-in-config",configFix:'"no-debugger": "error"'},{intent:"no `any` type",linter:"eslint",matched:"no-explicit-any",rule:"@typescript-eslint/no-explicit-any",configState:"in-config",configFix:'"@typescript-eslint/no-explicit-any": "error"'},{intent:"no floating promises",linter:"eslint",matched:"no-floating-promises",rule:"@typescript-eslint/no-floating-promises",configState:"preset-maybe",configFix:'"@typescript-eslint/no-floating-promises": "error"'}]},qf=window.__VIGILES_DATA__,j0=qf&&typeof qf=="object"?qf:z0;ny.createRoot(document.getElementById("root")).render(s.jsx(xt.StrictMode,{children:s.jsx(S0,{data:j0})}));</script>
|
|
155
|
+
*/const vy=We("Zap",[["path",{d:"M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z",key:"1xq2db"}]]);function hm(c){var m,g,o="";if(typeof c=="string"||typeof c=="number")o+=c;else if(typeof c=="object")if(Array.isArray(c)){var x=c.length;for(m=0;m<x;m++)c[m]&&(g=hm(c[m]))&&(o&&(o+=" "),o+=g)}else for(g in c)c[g]&&(o&&(o+=" "),o+=g);return o}function gm(){for(var c,m,g=0,o="",x=arguments.length;g<x;g++)(c=arguments[g])&&(m=hm(c))&&(o&&(o+=" "),o+=m);return o}const Xf="-",py=c=>{const m=xy(c),{conflictingClassGroups:g,conflictingClassGroupModifiers:o}=c;return{getClassGroupId:C=>{const O=C.split(Xf);return O[0]===""&&O.length!==1&&O.shift(),ym(O,m)||by(C)},getConflictingClassGroupIds:(C,O)=>{const E=g[C]||[];return O&&o[C]?[...E,...o[C]]:E}}},ym=(c,m)=>{var C;if(c.length===0)return m.classGroupId;const g=c[0],o=m.nextPart.get(g),x=o?ym(c.slice(1),o):void 0;if(x)return x;if(m.validators.length===0)return;const N=c.join(Xf);return(C=m.validators.find(({validator:O})=>O(N)))==null?void 0:C.classGroupId},em=/^\[(.+)\]$/,by=c=>{if(em.test(c)){const m=em.exec(c)[1],g=m==null?void 0:m.substring(0,m.indexOf(":"));if(g)return"arbitrary.."+g}},xy=c=>{const{theme:m,prefix:g}=c,o={nextPart:new Map,validators:[]};return zy(Object.entries(c.classGroups),g).forEach(([N,C])=>{Bf(C,o,N,m)}),o},Bf=(c,m,g,o)=>{c.forEach(x=>{if(typeof x=="string"){const N=x===""?m:tm(m,x);N.classGroupId=g;return}if(typeof x=="function"){if(Sy(x)){Bf(x(o),m,g,o);return}m.validators.push({validator:x,classGroupId:g});return}Object.entries(x).forEach(([N,C])=>{Bf(C,tm(m,N),g,o)})})},tm=(c,m)=>{let g=c;return m.split(Xf).forEach(o=>{g.nextPart.has(o)||g.nextPart.set(o,{nextPart:new Map,validators:[]}),g=g.nextPart.get(o)}),g},Sy=c=>c.isThemeGetter,zy=(c,m)=>m?c.map(([g,o])=>{const x=o.map(N=>typeof N=="string"?m+N:typeof N=="object"?Object.fromEntries(Object.entries(N).map(([C,O])=>[m+C,O])):N);return[g,x]}):c,jy=c=>{if(c<1)return{get:()=>{},set:()=>{}};let m=0,g=new Map,o=new Map;const x=(N,C)=>{g.set(N,C),m++,m>c&&(m=0,o=g,g=new Map)};return{get(N){let C=g.get(N);if(C!==void 0)return C;if((C=o.get(N))!==void 0)return x(N,C),C},set(N,C){g.has(N)?g.set(N,C):x(N,C)}}},vm="!",Ny=c=>{const{separator:m,experimentalParseClassName:g}=c,o=m.length===1,x=m[0],N=m.length,C=O=>{const E=[];let S=0,U=0,H;for(let I=0;I<O.length;I++){let ue=O[I];if(S===0){if(ue===x&&(o||O.slice(I,I+N)===m)){E.push(O.slice(U,I)),U=I+N;continue}if(ue==="/"){H=I;continue}}ue==="["?S++:ue==="]"&&S--}const L=E.length===0?O:O.substring(U),de=L.startsWith(vm),ye=de?L.substring(1):L,w=H&&H>U?H-U:void 0;return{modifiers:E,hasImportantModifier:de,baseClassName:ye,maybePostfixModifierPosition:w}};return g?O=>g({className:O,parseClassName:C}):C},Ty=c=>{if(c.length<=1)return c;const m=[];let g=[];return c.forEach(o=>{o[0]==="["?(m.push(...g.sort(),o),g=[]):g.push(o)}),m.push(...g.sort()),m},Ay=c=>({cache:jy(c.cacheSize),parseClassName:Ny(c),...py(c)}),Ey=/\s+/,My=(c,m)=>{const{parseClassName:g,getClassGroupId:o,getConflictingClassGroupIds:x}=m,N=[],C=c.trim().split(Ey);let O="";for(let E=C.length-1;E>=0;E-=1){const S=C[E],{modifiers:U,hasImportantModifier:H,baseClassName:L,maybePostfixModifierPosition:de}=g(S);let ye=!!de,w=o(ye?L.substring(0,de):L);if(!w){if(!ye){O=S+(O.length>0?" "+O:O);continue}if(w=o(L),!w){O=S+(O.length>0?" "+O:O);continue}ye=!1}const I=Ty(U).join(":"),ue=H?I+vm:I,_e=ue+w;if(N.includes(_e))continue;N.push(_e);const Ne=x(w,ye);for(let W=0;W<Ne.length;++W){const be=Ne[W];N.push(ue+be)}O=S+(O.length>0?" "+O:O)}return O};function _y(){let c=0,m,g,o="";for(;c<arguments.length;)(m=arguments[c++])&&(g=pm(m))&&(o&&(o+=" "),o+=g);return o}const pm=c=>{if(typeof c=="string")return c;let m,g="";for(let o=0;o<c.length;o++)c[o]&&(m=pm(c[o]))&&(g&&(g+=" "),g+=m);return g};function Oy(c,...m){let g,o,x,N=C;function C(E){const S=m.reduce((U,H)=>H(U),c());return g=Ay(S),o=g.cache.get,x=g.cache.set,N=O,O(E)}function O(E){const S=o(E);if(S)return S;const U=My(E,g);return x(E,U),U}return function(){return N(_y.apply(null,arguments))}}const Me=c=>{const m=g=>g[c]||[];return m.isThemeGetter=!0,m},bm=/^\[(?:([a-z-]+):)?(.+)\]$/i,Cy=/^\d+\/\d+$/,Dy=new Set(["px","full","screen"]),Uy=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ry=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,Hy=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,qy=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,By=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,al=c=>qa(c)||Dy.has(c)||Cy.test(c),Ol=c=>Ga(c,"length",Vy),qa=c=>!!c&&!Number.isNaN(Number(c)),Df=c=>Ga(c,"number",qa),Hn=c=>!!c&&Number.isInteger(Number(c)),Gy=c=>c.endsWith("%")&&qa(c.slice(0,-1)),$=c=>bm.test(c),Cl=c=>Uy.test(c),Yy=new Set(["length","size","percentage"]),Xy=c=>Ga(c,Yy,xm),Qy=c=>Ga(c,"position",xm),Ly=new Set(["image","url"]),Zy=c=>Ga(c,Ly,Jy),wy=c=>Ga(c,"",Ky),qn=()=>!0,Ga=(c,m,g)=>{const o=bm.exec(c);return o?o[1]?typeof m=="string"?o[1]===m:m.has(o[1]):g(o[2]):!1},Vy=c=>Ry.test(c)&&!Hy.test(c),xm=()=>!1,Ky=c=>qy.test(c),Jy=c=>By.test(c),ky=()=>{const c=Me("colors"),m=Me("spacing"),g=Me("blur"),o=Me("brightness"),x=Me("borderColor"),N=Me("borderRadius"),C=Me("borderSpacing"),O=Me("borderWidth"),E=Me("contrast"),S=Me("grayscale"),U=Me("hueRotate"),H=Me("invert"),L=Me("gap"),de=Me("gradientColorStops"),ye=Me("gradientColorStopPositions"),w=Me("inset"),I=Me("margin"),ue=Me("opacity"),_e=Me("padding"),Ne=Me("saturate"),W=Me("scale"),be=Me("sepia"),Te=Me("skew"),J=Me("space"),se=Me("translate"),qe=()=>["auto","contain","none"],Pe=()=>["auto","hidden","clip","visible","scroll"],et=()=>["auto",$,m],F=()=>[$,m],Rt=()=>["",al,Ol],tt=()=>["auto",qa,$],lt=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],j=()=>["solid","dashed","dotted","double","none"],D=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],X=()=>["start","end","center","between","around","evenly","stretch"],ce=()=>["","0",$],he=()=>["auto","avoid","all","avoid-page","page","left","right","column"],d=()=>[qa,$];return{cacheSize:500,separator:":",theme:{colors:[qn],spacing:[al,Ol],blur:["none","",Cl,$],brightness:d(),borderColor:[c],borderRadius:["none","","full",Cl,$],borderSpacing:F(),borderWidth:Rt(),contrast:d(),grayscale:ce(),hueRotate:d(),invert:ce(),gap:F(),gradientColorStops:[c],gradientColorStopPositions:[Gy,Ol],inset:et(),margin:et(),opacity:d(),padding:F(),saturate:d(),scale:d(),sepia:ce(),skew:d(),space:F(),translate:F()},classGroups:{aspect:[{aspect:["auto","square","video",$]}],container:["container"],columns:[{columns:[Cl]}],"break-after":[{"break-after":he()}],"break-before":[{"break-before":he()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...lt(),$]}],overflow:[{overflow:Pe()}],"overflow-x":[{"overflow-x":Pe()}],"overflow-y":[{"overflow-y":Pe()}],overscroll:[{overscroll:qe()}],"overscroll-x":[{"overscroll-x":qe()}],"overscroll-y":[{"overscroll-y":qe()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[w]}],"inset-x":[{"inset-x":[w]}],"inset-y":[{"inset-y":[w]}],start:[{start:[w]}],end:[{end:[w]}],top:[{top:[w]}],right:[{right:[w]}],bottom:[{bottom:[w]}],left:[{left:[w]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Hn,$]}],basis:[{basis:et()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",$]}],grow:[{grow:ce()}],shrink:[{shrink:ce()}],order:[{order:["first","last","none",Hn,$]}],"grid-cols":[{"grid-cols":[qn]}],"col-start-end":[{col:["auto",{span:["full",Hn,$]},$]}],"col-start":[{"col-start":tt()}],"col-end":[{"col-end":tt()}],"grid-rows":[{"grid-rows":[qn]}],"row-start-end":[{row:["auto",{span:[Hn,$]},$]}],"row-start":[{"row-start":tt()}],"row-end":[{"row-end":tt()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",$]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",$]}],gap:[{gap:[L]}],"gap-x":[{"gap-x":[L]}],"gap-y":[{"gap-y":[L]}],"justify-content":[{justify:["normal",...X()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...X(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...X(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[_e]}],px:[{px:[_e]}],py:[{py:[_e]}],ps:[{ps:[_e]}],pe:[{pe:[_e]}],pt:[{pt:[_e]}],pr:[{pr:[_e]}],pb:[{pb:[_e]}],pl:[{pl:[_e]}],m:[{m:[I]}],mx:[{mx:[I]}],my:[{my:[I]}],ms:[{ms:[I]}],me:[{me:[I]}],mt:[{mt:[I]}],mr:[{mr:[I]}],mb:[{mb:[I]}],ml:[{ml:[I]}],"space-x":[{"space-x":[J]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[J]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",$,m]}],"min-w":[{"min-w":[$,m,"min","max","fit"]}],"max-w":[{"max-w":[$,m,"none","full","min","max","fit","prose",{screen:[Cl]},Cl]}],h:[{h:[$,m,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[$,m,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[$,m,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[$,m,"auto","min","max","fit"]}],"font-size":[{text:["base",Cl,Ol]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Df]}],"font-family":[{font:[qn]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",$]}],"line-clamp":[{"line-clamp":["none",qa,Df]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",al,$]}],"list-image":[{"list-image":["none",$]}],"list-style-type":[{list:["none","disc","decimal",$]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[c]}],"placeholder-opacity":[{"placeholder-opacity":[ue]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[c]}],"text-opacity":[{"text-opacity":[ue]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...j(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",al,Ol]}],"underline-offset":[{"underline-offset":["auto",al,$]}],"text-decoration-color":[{decoration:[c]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:F()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",$]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",$]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[ue]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...lt(),Qy]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Xy]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Zy]}],"bg-color":[{bg:[c]}],"gradient-from-pos":[{from:[ye]}],"gradient-via-pos":[{via:[ye]}],"gradient-to-pos":[{to:[ye]}],"gradient-from":[{from:[de]}],"gradient-via":[{via:[de]}],"gradient-to":[{to:[de]}],rounded:[{rounded:[N]}],"rounded-s":[{"rounded-s":[N]}],"rounded-e":[{"rounded-e":[N]}],"rounded-t":[{"rounded-t":[N]}],"rounded-r":[{"rounded-r":[N]}],"rounded-b":[{"rounded-b":[N]}],"rounded-l":[{"rounded-l":[N]}],"rounded-ss":[{"rounded-ss":[N]}],"rounded-se":[{"rounded-se":[N]}],"rounded-ee":[{"rounded-ee":[N]}],"rounded-es":[{"rounded-es":[N]}],"rounded-tl":[{"rounded-tl":[N]}],"rounded-tr":[{"rounded-tr":[N]}],"rounded-br":[{"rounded-br":[N]}],"rounded-bl":[{"rounded-bl":[N]}],"border-w":[{border:[O]}],"border-w-x":[{"border-x":[O]}],"border-w-y":[{"border-y":[O]}],"border-w-s":[{"border-s":[O]}],"border-w-e":[{"border-e":[O]}],"border-w-t":[{"border-t":[O]}],"border-w-r":[{"border-r":[O]}],"border-w-b":[{"border-b":[O]}],"border-w-l":[{"border-l":[O]}],"border-opacity":[{"border-opacity":[ue]}],"border-style":[{border:[...j(),"hidden"]}],"divide-x":[{"divide-x":[O]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[O]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[ue]}],"divide-style":[{divide:j()}],"border-color":[{border:[x]}],"border-color-x":[{"border-x":[x]}],"border-color-y":[{"border-y":[x]}],"border-color-s":[{"border-s":[x]}],"border-color-e":[{"border-e":[x]}],"border-color-t":[{"border-t":[x]}],"border-color-r":[{"border-r":[x]}],"border-color-b":[{"border-b":[x]}],"border-color-l":[{"border-l":[x]}],"divide-color":[{divide:[x]}],"outline-style":[{outline:["",...j()]}],"outline-offset":[{"outline-offset":[al,$]}],"outline-w":[{outline:[al,Ol]}],"outline-color":[{outline:[c]}],"ring-w":[{ring:Rt()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[c]}],"ring-opacity":[{"ring-opacity":[ue]}],"ring-offset-w":[{"ring-offset":[al,Ol]}],"ring-offset-color":[{"ring-offset":[c]}],shadow:[{shadow:["","inner","none",Cl,wy]}],"shadow-color":[{shadow:[qn]}],opacity:[{opacity:[ue]}],"mix-blend":[{"mix-blend":[...D(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":D()}],filter:[{filter:["","none"]}],blur:[{blur:[g]}],brightness:[{brightness:[o]}],contrast:[{contrast:[E]}],"drop-shadow":[{"drop-shadow":["","none",Cl,$]}],grayscale:[{grayscale:[S]}],"hue-rotate":[{"hue-rotate":[U]}],invert:[{invert:[H]}],saturate:[{saturate:[Ne]}],sepia:[{sepia:[be]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[g]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[E]}],"backdrop-grayscale":[{"backdrop-grayscale":[S]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[U]}],"backdrop-invert":[{"backdrop-invert":[H]}],"backdrop-opacity":[{"backdrop-opacity":[ue]}],"backdrop-saturate":[{"backdrop-saturate":[Ne]}],"backdrop-sepia":[{"backdrop-sepia":[be]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[C]}],"border-spacing-x":[{"border-spacing-x":[C]}],"border-spacing-y":[{"border-spacing-y":[C]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",$]}],duration:[{duration:d()}],ease:[{ease:["linear","in","out","in-out",$]}],delay:[{delay:d()}],animate:[{animate:["none","spin","ping","pulse","bounce",$]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[W]}],"scale-x":[{"scale-x":[W]}],"scale-y":[{"scale-y":[W]}],rotate:[{rotate:[Hn,$]}],"translate-x":[{"translate-x":[se]}],"translate-y":[{"translate-y":[se]}],"skew-x":[{"skew-x":[Te]}],"skew-y":[{"skew-y":[Te]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",$]}],accent:[{accent:["auto",c]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",$]}],"caret-color":[{caret:[c]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":F()}],"scroll-mx":[{"scroll-mx":F()}],"scroll-my":[{"scroll-my":F()}],"scroll-ms":[{"scroll-ms":F()}],"scroll-me":[{"scroll-me":F()}],"scroll-mt":[{"scroll-mt":F()}],"scroll-mr":[{"scroll-mr":F()}],"scroll-mb":[{"scroll-mb":F()}],"scroll-ml":[{"scroll-ml":F()}],"scroll-p":[{"scroll-p":F()}],"scroll-px":[{"scroll-px":F()}],"scroll-py":[{"scroll-py":F()}],"scroll-ps":[{"scroll-ps":F()}],"scroll-pe":[{"scroll-pe":F()}],"scroll-pt":[{"scroll-pt":F()}],"scroll-pr":[{"scroll-pr":F()}],"scroll-pb":[{"scroll-pb":F()}],"scroll-pl":[{"scroll-pl":F()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",$]}],fill:[{fill:[c,"none"]}],"stroke-w":[{stroke:[al,Ol,Df]}],stroke:[{stroke:[c,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},$y=Oy(ky);function fe(...c){return $y(gm(c))}function nl({className:c,...m}){return s.jsx("div",{className:fe("rounded-lg border border-border bg-card text-foreground shadow-sm",c),...m})}const lm=c=>typeof c=="boolean"?`${c}`:c===0?"0":c,am=gm,Wy=(c,m)=>g=>{var o;if((m==null?void 0:m.variants)==null)return am(c,g==null?void 0:g.class,g==null?void 0:g.className);const{variants:x,defaultVariants:N}=m,C=Object.keys(x).map(S=>{const U=g==null?void 0:g[S],H=N==null?void 0:N[S];if(U===null)return null;const L=lm(U)||lm(H);return x[S][L]}),O=g&&Object.entries(g).reduce((S,U)=>{let[H,L]=U;return L===void 0||(S[H]=L),S},{}),E=m==null||(o=m.compoundVariants)===null||o===void 0?void 0:o.reduce((S,U)=>{let{class:H,className:L,...de}=U;return Object.entries(de).every(ye=>{let[w,I]=ye;return Array.isArray(I)?I.includes({...N,...O}[w]):{...N,...O}[w]===I})?[...S,H,L]:S},[]);return am(c,C,E,g==null?void 0:g.class,g==null?void 0:g.className)},Fy=Wy("inline-flex items-center rounded-md border px-2 py-0.5 text-xs font-semibold uppercase tracking-wide",{variants:{variant:{default:"border-border bg-background text-muted-foreground",outline:"border-border text-muted-foreground"}},defaultVariants:{variant:"default"}});function Bn({className:c,variant:m,...g}){return s.jsx("span",{className:fe(Fy({variant:m}),c),...g})}function Qf(c){return c===null?"na":c>=90?"good":c>=70?"warn":"bad"}const le={good:"text-good",warn:"text-warn",bad:"text-bad",na:"text-na"},Ha={good:"bg-good",warn:"bg-warn",bad:"bg-bad",na:"bg-na"},ii={good:"border-l-good",warn:"border-l-warn",bad:"border-l-bad",na:"border-l-na"},Iy={good:"border-good",warn:"border-warn",bad:"border-bad",na:"border-na"},Py={enforce:"rule",file:"file",cmd:"cmd",dir:"dir"};function e0({r:c}){return s.jsxs("div",{className:fe("border-l-4 p-3",ii.bad),children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[s.jsx(Bn,{children:Py[c.kind]}),s.jsx("code",{className:"font-mono text-xs text-foreground",children:c.ref})]}),s.jsx("div",{className:"mt-0.5 text-xs text-muted-foreground",children:c.issue})]})}function t0({data:c}){if(c.total===0)return s.jsxs(nl,{className:"p-4 text-sm text-muted-foreground",children:["No machine-verifiable references found — add"," ",s.jsx("code",{className:"font-mono text-xs",children:"enforce()"})," calls to a"," ",s.jsx("code",{className:"font-mono text-xs",children:".spec.ts"})," to unlock cross-referencing."]});const m=c.broken===0;return s.jsxs(nl,{className:"p-5",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsxs("div",{className:"flex items-baseline gap-1.5",children:[s.jsx("span",{className:fe("text-3xl font-bold tabular-nums",m?le.good:le.bad),children:c.broken}),s.jsxs("span",{className:"text-sm text-muted-foreground",children:["/ ",c.total," broken"]})]}),m?s.jsxs("span",{className:fe("flex items-center gap-1 text-sm",le.good),children:[s.jsx(ni,{size:14})," all ",c.total," reference",c.total===1?"":"s"," resolve"]}):s.jsxs("span",{className:fe("flex items-center gap-1 text-sm",le.bad),children:[s.jsx(oy,{size:14})," ",c.broken," broken reference",c.broken===1?"":"s"," found"]})]}),c.brokenRefs.length>0&&s.jsx("div",{className:"mt-4 flex flex-col gap-2",children:c.brokenRefs.map((g,o)=>s.jsx(e0,{r:g},o))})]})}function Sm(){const c=window.__VIGILES_SERVE__;return c&&typeof c.token=="string"?c:null}async function l0(c,m,g){try{const o=await fetch(c,{method:"POST",headers:{"content-type":"application/json","x-vigiles-token":g},body:JSON.stringify(m)}),x=await o.json();return{ok:x.ok??o.ok,message:x.message??""}}catch(o){return{ok:!1,message:o instanceof Error?o.message:String(o)}}}const zm="inline-flex items-center gap-2 rounded-md border border-border bg-card px-3 py-1.5 text-left text-xs font-medium hover:border-foreground disabled:opacity-60";function jm({command:c,label:m}){const[g,o]=xt.useState(!1),x=()=>{var N;(N=navigator.clipboard)==null||N.writeText(c).then(()=>{o(!0),setTimeout(()=>o(!1),1500)},()=>{})};return s.jsxs("button",{type:"button",onClick:x,title:`Copy: ${c}`,className:zm,children:[g?s.jsx(Ba,{size:14,className:le.good}):s.jsx(ui,{size:14,className:"text-muted-foreground"}),s.jsx("span",{className:fe(g&&le.good),children:g?"copied!":m})]})}function Nm({endpoint:c,body:m,token:g,label:o}){const[x,N]=xt.useState("idle"),[C,O]=xt.useState(""),E=()=>{N("running"),l0(c,m,g).then(S=>{N(S.ok?"done":"error"),O(S.message)})};return s.jsxs("button",{type:"button",onClick:E,disabled:x==="running"||x==="done",title:x==="error"?C:o,className:zm,children:[x==="running"&&s.jsx(ry,{size:14,className:"animate-spin text-muted-foreground"}),x==="done"&&s.jsx(Ba,{size:14,className:le.good}),x==="error"&&s.jsx(yy,{size:14,className:le.bad}),x==="idle"&&s.jsx(dm,{size:14,className:"text-muted-foreground"}),s.jsx("span",{className:fe(x==="done"&&le.good,x==="error"&&le.bad),children:x==="done"?"created":x==="error"?"failed":x==="running"?"creating…":o})]})}function a0({path:c,command:m}){const g=Sm();return s.jsxs("div",{className:"flex flex-wrap items-center gap-3 border-l-4 border-l-warn p-3",children:[s.jsx("code",{className:"font-mono text-xs text-foreground",children:c}),s.jsx("div",{className:"ml-auto",children:g?s.jsx(Nm,{endpoint:"/adopt",body:{target:c},token:g.token,label:"Create spec"}):s.jsx(jm,{command:m,label:"Create spec"})})]})}function n0({data:c}){const m=Sm();return s.jsxs(nl,{className:"p-5",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[s.jsx(dm,{size:16,className:"text-muted-foreground"}),c.surfaces.length," surface",c.surfaces.length===1?"":"s"," not yet spec-managed"]}),s.jsx("div",{className:"ml-auto",children:m?s.jsx(Nm,{endpoint:"/adopt-all",body:{},token:m.token,label:"Create all specs"}):s.jsx(jm,{command:c.createAllCommand,label:"Create all specs"})})]}),s.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:m?"Click to create the typed spec — this report is live, so the CLI writes it for you (re-run audit to see it spec-managed).":"Copy the command and run it in your terminal — the CLI writes the typed spec (the browser can’t write files)."}),c.surfaces.length>0&&s.jsx("div",{className:"mt-4 flex flex-col gap-2",children:c.surfaces.map(g=>s.jsx(a0,{path:g.path,command:g.command},g.path))})]})}const u0="inline-flex items-center gap-2 rounded-md border border-border bg-card px-3 py-1.5 text-left text-xs font-medium hover:border-foreground disabled:opacity-60";function i0({item:c}){const[m,g]=xt.useState(!1),o=c.configState==="contradiction"?`In this repo, the ${c.linter} rule \`${c.rule}\` is set to "off" in the lint config, but the instructions document "${c.intent}" as a rule. Resolve the contradiction: either remove the override so \`${c.rule}\` is enforced (${c.configFix}), or drop the documented rule if it's intentionally off.`:`In this repo, enable the ${c.linter} rule \`${c.rule}\` (set it to "error") in the lint config, so the documented rule "${c.intent}" is actually enforced. Config to add: ${c.configFix}`,x=()=>{var N;(N=navigator.clipboard)==null||N.writeText(o).then(()=>{g(!0),setTimeout(()=>g(!1),1500)},()=>{})};return s.jsxs("button",{type:"button",onClick:x,title:o,className:u0,children:[m?s.jsx(Ba,{size:14,className:le.good}):s.jsx(ui,{size:14,className:"text-muted-foreground"}),s.jsx("span",{className:fe(m&&le.good),children:m?"copied!":"copy agent prompt"})]})}function li({item:c,tone:m,label:g,action:o}){return s.jsxs(nl,{className:"flex flex-wrap items-center gap-x-3 gap-y-2 p-3 text-sm",children:[m==="good"?s.jsx(Ba,{size:16,className:le.good}):s.jsx("span",{className:fe("text-lg leading-none",m==="warn"?le.warn:m==="bad"?le.bad:"text-muted-foreground"),children:"●"}),s.jsx("span",{className:"min-w-[12rem] flex-1",children:c.intent}),s.jsx("code",{className:"font-mono text-xs text-muted-foreground",children:c.rule}),s.jsx("span",{className:fe("text-xs",m==="good"?le.good:m==="warn"?le.warn:m==="bad"?le.bad:"text-muted-foreground"),children:g}),o&&s.jsx(i0,{item:c})]})}function nm({title:c,tone:m,children:g}){return s.jsxs("details",{className:"group",children:[s.jsxs("summary",{className:fe("flex cursor-pointer list-none items-center gap-1.5 py-1 text-xs font-medium",m==="good"?le.good:"text-muted-foreground"),children:[s.jsx(ai,{size:13,className:"transition-transform group-open:rotate-90"}),c]}),s.jsx("div",{className:"mt-2 space-y-2",children:g})]})}const Uf={reuse:{glyph:"✓",label:"enforceable now",blurb:"an off-the-shelf rule already exists → one config line"},hook:{glyph:"⛓",label:"hook",blurb:"an action rule a linter can't see (git push, rm -rf) → a hook gates it"},meta:{glyph:"☰",label:"agent note",blurb:"an instruction to the agent, not a code rule → stays prose"},semantic:{glyph:"✎",label:"judgment call",blurb:"no checker can decide it (“readable”, “idiomatic”) → honestly stays prose"},unrouted:{glyph:"⚙",label:"custom rule",blurb:"no off-the-shelf rule fits, but a custom one CAN — the opt-in synthesis skill writes + gates it (abstains if it can't prove it sound)"}},c0=["reuse","hook","meta","semantic","unrouted"];function f0({routing:c}){const m=o=>{var x;return(x=c==null?void 0:c.rules.find(N=>N.category===o))==null?void 0:x.text},g=((c==null?void 0:c.rules)??[]).filter(o=>o.category==="reuse"&&o.enabled===!1);return s.jsxs("div",{className:"rounded-lg border border-dashed border-border p-4",children:[s.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[s.jsx(hy,{size:15,className:"text-muted-foreground"}),"Your rules, mapped",s.jsx("span",{className:"text-xs font-normal text-muted-foreground",children:"deterministic · no model"})]}),c&&c.segmented>0?s.jsxs(s.Fragment,{children:[s.jsxs("p",{className:"mt-1.5 text-xs text-muted-foreground",children:["We segmented"," ",s.jsx("span",{className:"font-semibold text-foreground",children:c.segmented})," ","atomic ",c.segmented===1?"rule":"rules"," from your instructions and routed each one — deterministically, no model:"]}),s.jsx("ul",{className:"mt-2 space-y-1.5 text-xs text-muted-foreground",children:c0.filter(o=>c.counts[o]>0).map(o=>{const x=m(o);return s.jsxs("li",{children:[s.jsxs("span",{className:"font-mono text-foreground",children:[Uf[o].glyph," ",c.counts[o]," ",Uf[o].label]})," ","— ",Uf[o].blurb,o==="reuse"&&g.length>0&&s.jsxs("span",{className:fe("ml-1 font-semibold",le.bad),children:["(",g.length," documented but OFF)"]}),x&&s.jsxs("span",{className:"mt-0.5 block truncate pl-4 italic opacity-80",children:["e.g. “",x,"”"]})]},o)})}),g.length>0&&s.jsxs("div",{className:fe("mt-2.5 rounded-md border p-2.5","border-l-4"),children:[s.jsxs("p",{className:fe("text-xs font-semibold",le.bad),children:["⛔ ",g.length," documented but OFF"]}),s.jsxs("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["Your instructions name"," ",g.length===1?"this rule":"these rules"," as enforced, but your linter config has ",g.length===1?"it":"them"," ","disabled:"]}),s.jsxs("ul",{className:"mt-1 space-y-0.5",children:[g.slice(0,6).map(o=>s.jsxs("li",{className:"font-mono text-xs text-muted-foreground",children:[s.jsx("code",{className:le.bad,children:o.rule})," ",s.jsxs("span",{className:"opacity-70",children:["— ",o.text]})]},o.rule)),g.length>6&&s.jsxs("li",{className:"text-xs text-muted-foreground",children:["+",g.length-6," more"]})]})]}),s.jsx(um,{routing:c}),s.jsx(im,{})]}):s.jsxs(s.Fragment,{children:[s.jsx(um,{routing:c}),s.jsx("p",{className:"mt-1.5 text-xs text-muted-foreground",children:"Segments your instruction file into atomic rules and routes each one — deterministically, no model:"}),s.jsxs("ul",{className:"mt-2 space-y-1 text-xs text-muted-foreground",children:[s.jsxs("li",{children:[s.jsx("span",{className:"font-mono text-foreground",children:"✓ enforceable now"})," ","— an off-the-shelf rule already exists → enable it"]}),s.jsxs("li",{children:[s.jsx("span",{className:"font-mono text-foreground",children:"⛓ hook"})," — action rules a linter can't see (git push, rm -rf)"]}),s.jsxs("li",{children:[s.jsx("span",{className:"font-mono text-foreground",children:"⚙ custom rule"})," — no off-the-shelf rule fits, but a custom one CAN (“wrap API calls in retry”) → the opt-in synthesis skill, gated"]}),s.jsxs("li",{children:[s.jsx("span",{className:"font-mono text-foreground",children:"✎ judgment call"})," ","— genuinely undecidable (“readable”), honestly left as prose"]})]}),s.jsx(im,{})]})]})}function um({routing:c}){const m=(c==null?void 0:c.possible)??[],g=(c==null?void 0:c.skipped)??[];if(m.length===0&&g.length===0)return null;const o={};for(const x of g)o[x.reason]=(o[x.reason]??0)+1;return s.jsxs("div",{className:"mt-2.5 space-y-2",children:[m.length>0&&s.jsxs("div",{className:"rounded-md border border-dashed border-border p-2.5",children:[s.jsxs("p",{className:"text-xs font-semibold text-foreground",children:["? ",m.length," possible — rule-ish, below the confidence bar (review)"]}),s.jsxs("ul",{className:"mt-1 space-y-0.5",children:[m.slice(0,6).map((x,N)=>s.jsxs("li",{className:"truncate text-xs italic text-muted-foreground opacity-80",children:["“",x.text,"”"]},`${x.lineStart}-${N}`)),m.length>6&&s.jsxs("li",{className:"text-xs text-muted-foreground",children:["+",m.length-6," more"]})]})]}),g.length>0&&s.jsxs("p",{className:"text-xs text-muted-foreground",children:["⊘ ",g.length," skipped — not treated as rules (",Object.entries(o).map(([x,N])=>`${N} ${x}`).join(" · "),")"]}),s.jsx("p",{className:"text-xs text-muted-foreground opacity-70",children:"Detection is a best-effort, precision-first filter — it won’t catch every rule. Full per-bullet lists are in the JSON report."})]})}function im(){return s.jsxs("div",{className:"mt-2.5 space-y-1 text-xs text-muted-foreground",children:[s.jsxs("p",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Enforceable now"})," — enable each in your lint config (one line), or ask your agent to run the"," ",s.jsx("code",{className:"rounded bg-border px-1 font-mono",children:"strengthen"})," ","skill."]}),s.jsxs("p",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Hooks"})," — author a compiled hook in"," ",s.jsx("code",{className:"rounded bg-border px-1 font-mono",children:".vigiles/hooks/"}),", then"," ",s.jsx("code",{className:"rounded bg-border px-1 font-mono",children:"npx vigiles compile"})," ","wires it into your settings."]}),s.jsxs("p",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Custom rule (⚙)"})," — no off-the-shelf rule fits, but a custom one CAN enforce it (e.g. “wrap API calls in a retry”). Doable, not a dead end — the opt-in synthesis skill writes and gates it (with a bit of codebase context); it abstains rather than ship a checker it can’t prove sound. Nothing is generated for you automatically."]}),s.jsxs("p",{children:[s.jsx("span",{className:"font-medium text-foreground",children:"Judgment call (✎)"})," — genuinely undecidable (“keep it readable”); no checker can decide it, so it honestly stays prose."]})]})}function s0({data:c,routing:m}){const g=c.filter(E=>E.configState==="in-config"),o=c.filter(E=>E.configState==="preset-maybe"),x=c.filter(E=>E.configState==="not-in-config"),N=c.filter(E=>E.configState==="contradiction"),C=c.length,O=(E,S)=>E>0?s.jsx("div",{className:fe(S),style:{flexGrow:E},"aria-hidden":!0}):null;return s.jsxs("div",{className:"space-y-4",children:[s.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-2",children:[s.jsxs("p",{className:"text-sm text-muted-foreground",children:[s.jsx("span",{className:fe("font-semibold",le.good),children:g.length})," ","of ",C," enforced",o.length>0&&s.jsxs(s.Fragment,{children:[" · ",s.jsx("span",{className:"font-semibold text-foreground",children:o.length})," ","likely via a preset"]}),x.length>0&&s.jsxs(s.Fragment,{children:[" · ",s.jsx("span",{className:fe("font-semibold",le.warn),children:x.length})," ",x.length===1?"is":"are"," one config line away"]}),N.length>0&&s.jsxs(s.Fragment,{children:[" · ",s.jsx("span",{className:fe("font-semibold",le.bad),children:N.length})," ","contradicted by config"]}),"."]}),s.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[s.jsx(vy,{size:12})," deterministic · no model"]})]}),s.jsxs("div",{className:"flex h-2 overflow-hidden rounded-full bg-border",children:[O(g.length,Ha.good),O(o.length,Ha.na),O(x.length,Ha.warn),O(N.length,Ha.bad)]}),N.length>0&&s.jsx("div",{className:"space-y-2",children:N.map(E=>s.jsx(li,{item:E,tone:"bad",label:"⛔ set to off in your config — your call",action:!0},E.rule))}),x.length>0&&s.jsx("div",{className:"space-y-2",children:x.map(E=>s.jsx(li,{item:E,tone:"warn",label:"enable in 1 line",action:!0},E.rule))}),g.length>0&&s.jsx(nm,{title:`✓ ${g.length} already enforced`,tone:"good",children:g.map(E=>s.jsx(li,{item:E,tone:"good",label:"enforced"},E.rule))}),o.length>0&&s.jsx(nm,{title:`◦ ${o.length} likely enforced via a preset`,tone:"muted",children:o.map(E=>s.jsx(li,{item:E,tone:"muted",label:"preset?"},E.rule))}),s.jsx(f0,{routing:m})]})}function o0({data:c}){return s.jsxs(nl,{className:"p-5",children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[s.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[s.jsx(my,{size:16,className:"text-muted-foreground"}),c.total," record",c.total===1?"":"s"," recorded"]}),s.jsx("div",{className:"ml-auto flex flex-wrap gap-1.5",children:c.counts.map(m=>s.jsxs(Bn,{variant:"outline",children:[m.count," ",m.kind]},m.kind))})]}),c.recentDenials.length>0&&s.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[s.jsxs("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:["Recent denials (",c.denials,")"]}),c.recentDenials.map((m,g)=>s.jsxs("div",{className:fe("flex flex-wrap items-center gap-2 border-l-4 p-3 text-sm",ii.bad),children:[s.jsx(fy,{size:14,className:le.bad}),s.jsx("code",{className:"font-mono text-xs",children:m.label}),s.jsx("span",{className:"text-muted-foreground",children:m.reason})]},g))]})]})}const cm="Measure whether my skills actually fire (recall + precision). This is the test/eval tier, not the read-only audit — so if vigiles isn't set up in this repo yet, run `npx vigiles init` first (that installs the test-harness skill), then use that skill to run measureTriggerRate. Report each skill's recall (does it fire when it should?) and precision (does it stay quiet on unrelated prompts?). It runs on my Claude subscription — no API key.",r0=new Set(["lethal-trifecta","subagent-tool-contract","mcp-tool-resolves","hook-events","hook-script-exists","description-overlap","skill-frontmatter","subagent-frontmatter"]);function d0(c){return`https://vigiles.sh/checks/${c}/`}function Tm({slug:c,children:m,className:g}){return r0.has(c)?s.jsx("a",{href:d0(c),target:"_blank",rel:"noreferrer",className:fe("underline decoration-dotted underline-offset-2",g),children:m}):s.jsx("span",{className:g,children:m})}function fm({text:c,advisory:m}){const g=c.replace(/\s*\(advisory\)\s*$/,"");return s.jsxs("span",{children:[s.jsx("span",{children:g}),m&&s.jsx("span",{className:"text-na",children:" · advisory, not graded"})]})}function Gf(c){const m=c.replace(/[/\\]+$/,"").split(/[/\\]/);return m[m.length-1]||c}function m0(c){const m=c.find(g=>g.key==="Safety");return!m||m.advisory||m.score===null?[]:m.findings.filter(g=>!g.endsWith("(advisory)"))}function sm({clean:c}){return c?s.jsxs(nl,{className:"flex items-center gap-2 p-4 text-sm text-good",children:[s.jsx(ni,{size:16})," No deterministic fixes — the structure is clean."]}):s.jsx(nl,{className:"p-4 text-sm text-muted-foreground",children:"No deterministic auto-fixes — review the flagged findings above."})}function h0(c){return c>=8?"bad":c>=3?"warn":"na"}function g0({r:c}){const[m,g]=xt.useState(!1),o=`In this repo, ${c.fix}. Context: ${c.rationale} (detector: ${c.detector}).`,x=()=>{var N;(N=navigator.clipboard)==null||N.writeText(o).then(()=>{g(!0),setTimeout(()=>g(!1),1500)},()=>{})};return s.jsxs("button",{type:"button",onClick:x,title:o,className:"inline-flex items-center gap-1.5 rounded-md border border-border bg-card px-2.5 py-1 text-xs font-medium hover:border-foreground",children:[m?s.jsx(Ba,{size:13,className:le.good}):s.jsx(ui,{size:13,className:"text-muted-foreground"}),s.jsx("span",{className:fe(m&&le.good),children:m?"copied!":"copy agent prompt"})]})}function Rf({r:c,points:m}){const g=c.action==="fix"?gy:sy,o=h0(m);return s.jsxs("div",{className:fe("rounded-xl border border-l-4 border-border/40 bg-card/30 p-5",ii[o]),children:[s.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[s.jsxs(Bn,{children:[s.jsx(g,{size:12,className:"mr-1"}),c.action]}),s.jsx("strong",{children:c.surface}),m>0&&s.jsxs("span",{className:fe("rounded-full px-2 py-0.5 text-xs font-semibold",le[o]),children:["+",m," pts"]}),s.jsx(Tm,{slug:c.detector,className:"ml-auto hidden font-mono text-xs text-muted-foreground hover:text-foreground sm:inline",children:c.detector})]}),s.jsx("div",{className:"mt-2.5 text-sm leading-relaxed text-muted-foreground",children:c.rationale}),s.jsxs("div",{className:"mt-3.5 flex flex-wrap items-center justify-between gap-2",children:[s.jsxs("span",{className:"text-sm leading-relaxed text-good",children:["→ ",c.fix]}),s.jsx(g0,{r:c})]})]})}function y0({finding:c}){return s.jsx("div",{className:fe("rounded-xl border border-l-4 border-border/40 bg-card/30 p-5",ii.bad),children:s.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[s.jsxs(Bn,{children:[s.jsx(mm,{size:12,className:"mr-1"}),"safety"]}),s.jsxs("span",{className:"leading-relaxed text-muted-foreground",children:[c," ",s.jsx(Tm,{slug:"lethal-trifecta",className:"text-muted-foreground hover:text-foreground",children:"what's this?"})]}),s.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:"your call — no deterministic fix"})]})})}function v0({c}){const m=c.advisory?"na":Qf(c.score),g=c.score===null?0:Math.max(0,Math.min(100,c.score));return s.jsxs(nl,{className:"flex flex-col gap-2 p-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[s.jsx("span",{className:"text-xs font-semibold",children:c.key}),s.jsx("span",{className:fe("text-sm font-bold",le[m]),children:c.advisory?"—":c.score===null?"n/a":c.score})]}),s.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-border",children:s.jsx("div",{className:fe("h-full rounded-full",Ha[m]),style:{width:`${g}%`}})}),s.jsx("div",{className:"h-8 overflow-hidden text-[11px] leading-tight text-muted-foreground",children:c.advisory?s.jsx("span",{className:"text-na",children:"advisory — not graded"}):c.findings.length>0?s.jsxs("span",{className:"line-clamp-2",children:[c.findings[0],c.findings.length>1&&s.jsxs("span",{className:"text-foreground",children:[" ","· +",c.findings.length-1," more"]})]}):s.jsxs("span",{className:"inline-flex items-center gap-1 text-good",children:[s.jsx(ni,{size:11})," clean"]})})]})}function p0({c,refs:m}){const g=c.advisory?"na":Qf(c.score),o=c.score===null?0:Math.max(0,Math.min(100,c.score)),x=c.findings.map(U=>({text:U,advisory:!!c.advisory||U.endsWith("(advisory)")})),N=[...x.filter(U=>!U.advisory),...x.filter(U=>U.advisory)],[C,...O]=N,E=c.key==="Safety"&&C&&!C.advisory,S=c.score===null?"n/a":String(c.score);return s.jsxs("div",{className:"py-3",children:[s.jsxs("div",{className:"flex items-baseline justify-between gap-3",children:[s.jsx("span",{className:"text-sm font-medium",children:c.key}),s.jsx("span",{className:fe("font-mono text-sm font-bold",le[g]),children:S})]}),s.jsx("div",{className:"mt-1.5 h-1 overflow-hidden rounded-full bg-border",children:s.jsx("div",{className:fe("h-full rounded-full",Ha[g]),style:{width:`${o}%`}})}),s.jsx("div",{className:"mt-2 text-[13px] leading-snug text-muted-foreground",children:C?s.jsxs(s.Fragment,{children:[E&&s.jsx(mm,{size:12,className:fe("mr-1 inline align-[-2px]",le.bad),"aria-hidden":!0}),s.jsx(fm,{text:C.text,advisory:C.advisory}),m&&m.length>0&&s.jsx("ul",{className:"mt-1 space-y-0.5",children:m.map(U=>s.jsxs("li",{className:"font-mono text-[11px] text-na",children:["↳ ",U," ",s.jsx("span",{className:"text-muted-foreground",children:"— missing"})]},U))}),O.length>0&&s.jsxs("details",{className:"group mt-1",children:[s.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1 text-[11px] font-medium text-muted-foreground/80 hover:text-foreground",children:[s.jsx(ai,{size:11,className:"transition-transform group-open:rotate-90"}),"+ ",O.length," more"]}),s.jsx("ul",{className:"mt-1 space-y-1 border-l border-border/50 pl-3",children:O.map((U,H)=>s.jsx("li",{children:s.jsx(fm,{text:U.text,advisory:U.advisory})},H))})]})]}):s.jsxs("span",{className:"inline-flex items-center gap-1 text-good",children:[s.jsx(ni,{size:12})," clean"]})})]})}function b0({onUnlock:c}){const[m,g]=xt.useState(!1),o=()=>{var x;c==null||c(),(x=navigator.clipboard)==null||x.writeText(cm).then(()=>{g(!0),setTimeout(()=>g(!1),2200)},()=>{})};return s.jsxs("div",{className:"rounded-xl border border-dashed border-border/70 bg-card/20 p-4",children:[s.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between sm:gap-4",children:[s.jsxs("div",{className:"min-w-0 sm:flex-1",children:[s.jsxs("div",{className:"flex items-center gap-1.5 text-sm font-medium",children:[s.jsx(dy,{size:13,className:"shrink-0 text-muted-foreground","aria-hidden":!0}),"Do your skills actually fire?"]}),s.jsx("p",{className:"mt-1 text-[13px] leading-snug text-muted-foreground",children:"The five above are deterministic — a browser can measure them. This one needs a real model: recall (does a skill fire when it should?) and precision (does it stay quiet on unrelated prompts?)."}),s.jsxs("div",{className:"mt-2 flex items-center gap-2 font-mono text-xs text-muted-foreground",children:[s.jsxs("span",{children:["recall ",s.jsx("span",{className:"font-bold text-foreground",children:"—"})]}),s.jsx("span",{children:"·"}),s.jsxs("span",{children:["precision ",s.jsx("span",{className:"font-bold text-foreground",children:"—"})]}),s.jsx("span",{className:"not-italic text-muted-foreground/70",children:"(run to fill)"})]})]}),s.jsxs("div",{className:"flex flex-col items-start gap-1 sm:shrink-0 sm:items-end",children:[s.jsx("button",{type:"button",onClick:o,title:cm,className:"inline-flex items-center gap-1.5 whitespace-nowrap rounded-md border border-border bg-card px-3 py-1.5 text-xs font-semibold transition-colors hover:border-foreground",children:m?s.jsxs(s.Fragment,{children:[s.jsx(Ba,{size:13,"aria-hidden":!0,className:fe("shrink-0",le.good)}),s.jsx("span",{className:le.good,children:"Copied — paste into Claude Code"})]}):s.jsxs(s.Fragment,{children:[s.jsx(ui,{size:13,"aria-hidden":!0,className:"shrink-0 text-muted-foreground"}),"Copy prompt →"]})}),s.jsx("span",{className:"text-[11px] text-muted-foreground/70",children:"copies a prompt for Claude Code"})]})]}),s.jsx("p",{className:"mt-2 text-[11px] text-muted-foreground",children:"Runs on your Claude subscription — no API key, nothing leaves your machine."})]})}function om({verdict:c,overall:m,dir:g,harness:o,compact:x=!1,subline:N}){const C=Qf(m),O=x?"h-20 w-20 rounded-xl text-4xl":"h-28 w-28 rounded-2xl text-5xl",E=s.jsxs(s.Fragment,{children:[s.jsxs("div",{className:fe("flex shrink-0 flex-col items-center justify-center border-2",O,Iy[C]),children:[s.jsx("span",{className:fe("font-black leading-none",le[C]),children:c.grade}),s.jsx("span",{className:"mt-1 text-xs font-medium text-muted-foreground",children:m===null?"—":`${m}/100`})]}),s.jsxs("div",{className:"min-w-0",children:[s.jsx("h1",{className:fe("font-bold leading-snug tracking-tight",x?"text-lg sm:text-xl":"text-xl sm:text-2xl"),children:c.sentence}),s.jsxs("div",{className:"mt-2 text-sm text-muted-foreground",children:[s.jsx("span",{className:"font-medium text-foreground",children:Gf(g)})," ·"," ",o,N]}),!x&&s.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:"deterministic · no model · nothing leaves your machine"})]})]});return x?s.jsx("div",{className:"flex flex-col gap-6 sm:flex-row sm:items-center",children:E}):s.jsx(nl,{className:"flex flex-col gap-5 p-7 sm:flex-row sm:items-center",children:E})}function x0({n:c,children:m}){return c<=0?null:s.jsxs("details",{className:"group mt-2.5",children:[s.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 text-xs font-semibold uppercase tracking-widest text-muted-foreground hover:text-foreground",children:[s.jsx(ai,{size:13,className:"transition-transform group-open:rotate-90"}),"+ ",c," more"]}),s.jsx("div",{className:"mt-2.5 flex flex-col gap-2.5",children:m})]})}const Hf="mb-4 mt-12 text-[11px] font-semibold uppercase tracking-[0.18em] text-muted-foreground/70";function S0({data:c,showFooter:m=!0,variant:g="full",onUnlock:o}){var _e,Ne;const{score:x,verdict:N,recommendations:C,inventory:O,meta:E,adoptability:S,adoptable:U,observations:H,rulesInventory:L,ruleRouting:de,brokenReferences:ye}=c,w=x.empty?null:x.overall;xt.useEffect(()=>{document.title=w===null?`vigiles — ${Gf(E.dir)}`:`vigiles — ${x.grade} (${w}) · ${Gf(E.dir)}`},[w,x.grade,E.dir]);const I=W=>{var be;return((be=N.perRecommendation.find(Te=>Te.index===W))==null?void 0:be.pointsIfFixed)??0},ue=C.map((W,be)=>({r:W,points:I(be)})).sort((W,be)=>be.points-W.points);if(g==="summary"){const W=(se,qe)=>se&&`${se} ${qe}${se===1?"":"s"}`,be=[W(O.skills,"skill"),W(O.agents,"agent"),W(O.hooks,"hook"),W(O.commands,"command")].filter(Boolean),Te=ue.slice(0,3),J=ue.slice(3);return s.jsxs("div",{children:[s.jsx(om,{compact:!0,verdict:N,overall:w,dir:E.dir,harness:E.harness,subline:s.jsxs(s.Fragment,{children:[be.map(se=>s.jsxs("span",{children:[" · ",se]},se)),O.untested>0&&s.jsxs("span",{className:le.warn,children:[" ","· ",O.untested," untested"]})]})}),s.jsx("h2",{className:Hf,children:"Categories — and what's flagged"}),s.jsx("div",{className:"divide-y divide-border/40",children:x.categories.map(se=>s.jsx(p0,{c:se,refs:se.key==="Truthfulness"?ye:void 0},se.key))}),s.jsx("p",{className:"mb-2.5 mt-6 text-[11px] font-medium uppercase tracking-[0.14em] text-muted-foreground/60",children:"One thing a browser can't measure"}),s.jsx(b0,{onUnlock:o}),C.length>0?s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:Hf,children:"Do these first"}),s.jsx("div",{className:"flex flex-col gap-2.5",children:Te.map(({r:se,points:qe},Pe)=>s.jsx(Rf,{r:se,points:qe},Pe))}),s.jsx(x0,{n:J.length,children:J.map(({r:se,points:qe},Pe)=>s.jsx(Rf,{r:se,points:qe},Pe))})]}):x.overall===100&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:Hf,children:"Fixes"}),s.jsx(sm,{clean:!0})]})]})}return s.jsxs("div",{className:"mx-auto max-w-5xl px-6 pb-16 pt-10",children:[s.jsx(om,{verdict:N,overall:w,dir:E.dir,harness:E.harness}),s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Categories"}),s.jsx("div",{className:"grid grid-cols-2 gap-2.5 sm:grid-cols-3 lg:grid-cols-5",children:x.categories.map(W=>s.jsx(v0,{c:W},W.key))}),s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:C.length>0?"Do these first":"Fixes"}),ue.length>0?s.jsx("div",{className:"flex flex-col gap-2.5",children:ue.map(({r:W,points:be},Te)=>s.jsx(Rf,{r:W,points:be},Te))}):s.jsx(sm,{clean:x.overall===100}),(()=>{const W=m0(x.categories);return W.length===0?null:s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Review — no auto-fix"}),s.jsx("div",{className:"flex flex-col gap-2.5",children:W.map((be,Te)=>s.jsx(y0,{finding:be},Te))})]})})(),S&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Broken references"}),s.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:"Machine-verifiable references in your instruction file — files, scripts, symbols — checked against your actual repo and config. These don't resolve."}),s.jsx(t0,{data:S})]}),H&&H.total>0&&s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Flight recorder"}),s.jsxs("p",{className:"mb-3 text-xs text-muted-foreground",children:["What your harness actually did in real sessions — read off the local",s.jsx("code",{className:"mx-1 font-mono",children:".vigiles/runs.jsonl"})," ledger."]}),s.jsx(o0,{data:H})]}),(L&&L.length>0||de&&(de.segmented>0||(((_e=de.possible)==null?void 0:_e.length)??0)>0||(((Ne=de.skipped)==null?void 0:Ne.length)??0)>0))&&s.jsxs(s.Fragment,{children:[s.jsxs("h2",{className:"mb-3 mt-9 flex items-center gap-2 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:["Your rules → enforced",s.jsx(Bn,{className:"border-warn text-warn",children:"experimental"})]}),s.jsx("p",{className:"mb-3 text-xs text-muted-foreground",children:"Prose rules in your instruction file that map to an off-the-shelf lint rule — and whether it's actually enforced. Detection is a heuristic, precision-first preview: it won't catch every rule."}),s.jsx(s0,{data:L??[],routing:de})]}),s.jsxs("div",{className:"mt-9 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground",children:[s.jsx("span",{className:"font-semibold uppercase tracking-widest",children:"Ships"}),s.jsxs("span",{children:[O.skills," skills"]}),s.jsxs("span",{children:[O.agents," agents"]}),s.jsxs("span",{children:[O.hooks," hooks"]}),s.jsxs("span",{children:[O.commands," commands"]}),s.jsxs("span",{children:["MCP ",O.mcp?"yes":"no"]}),O.untested>0&&s.jsxs("span",{className:le.warn,children:[O.untested," untested"]})]}),U&&U.surfaces.length>0&&s.jsxs("details",{className:"group mt-6",children:[s.jsxs("summary",{className:"flex cursor-pointer list-none items-center gap-1.5 text-xs font-semibold uppercase tracking-widest text-muted-foreground hover:text-foreground",children:[s.jsx(ai,{size:13,className:"transition-transform group-open:rotate-90"}),"Optional — turn ",U.surfaces.length," surface",U.surfaces.length>1?"s":""," into typed specs"]}),s.jsx("p",{className:"mb-3 mt-3 text-xs text-muted-foreground",children:"Hardening, not a fix: make vigiles verify these surfaces' references — fully, or one at a time. Skip it until you want CI to gate them."}),s.jsx(n0,{data:U})]}),m&&s.jsx("footer",{className:"mt-12 text-center text-xs text-muted-foreground",children:"Generated by vigiles — we run your harness, not just read it."})]})}const z0={meta:{schemaVersion:2,tool:"vigiles",kind:"audit",vigilesVersion:"0.0.0",harness:"claude-code",dir:"my-plugin"},score:{overall:77,grade:"C",empty:!1,categories:[{key:"Truthfulness",score:100,weight:1,findings:[]},{key:"Triggering",score:92,weight:1,findings:["1 near-identical skill description (wrong one fires)"]},{key:"Structure",score:92,weight:1,findings:["1 agent tool that doesn't exist (typo / never-available)"]},{key:"Safety",score:80,weight:1,findings:["1 subagent holding all three lethal-trifecta legs (prompt-injection exfil path)"]},{key:"Tested",score:88,weight:1,findings:["4 untested surfaces"]}]},verdict:{sentence:"Two one-line fixes away from a B.",grade:"C",pointsToNextGrade:3,fixesToNextGrade:2,perRecommendation:[{index:0,pointsIfFixed:4},{index:1,pointsIfFixed:2}]},recommendations:[{surface:"reviewer",action:"fix",rationale:`Unknown tool "Reed" — silently dropped, the agent can't use it.`,fix:'change the tool "Reed" to "Read"',detector:"subagent-tool-contract",confidence:"likely"},{surface:"deploy ↔ ship",action:"differentiate",rationale:"Near-identical descriptions (0.92 similar) — the selector can't tell them apart.",fix:"differentiate the descriptions of deploy and ship",detector:"description-overlap",confidence:"possible"}],inventory:{skills:2,agents:1,hooks:1,commands:0,mcp:!1,untested:4},adoptable:{createAllCommand:"npx vigiles init",surfaces:[{path:"skills/deploy/SKILL.md",command:"npx vigiles init --target=skills/deploy/SKILL.md"},{path:"agents/reviewer.md",command:"npx vigiles init --target=agents/reviewer.md"}]},adoptability:{total:7,broken:2,brokenRefs:[{kind:"file",ref:"src/auth/login.ts",issue:"file does not exist"},{kind:"dir",ref:"packages/legacy/",issue:"directory does not exist"}]},ruleRouting:{segmented:8,counts:{reuse:3,hook:2,meta:0,semantic:1,unrouted:2},rules:[{text:"Never use `console.log` in shipped code.",quote:"- Never use `console.log` in shipped code.",file:"CLAUDE.md",lineStart:12,lineEnd:12,confidence:"high",category:"reuse",mechanism:"config-line",rule:"no-console",linter:"eslint",enabled:!1,source:"marker"},{text:"Never push directly to `main` — open a PR.",quote:"- Never push directly to `main` — open a PR.",file:"CLAUDE.md",lineStart:18,lineEnd:18,confidence:"high",category:"hook",mechanism:"hook"},{text:"Run `npm test` before every commit.",quote:"- Run `npm test` before every commit.",file:"CLAUDE.md",lineStart:19,lineEnd:19,confidence:"high",category:"hook",mechanism:"hook"},{text:"Write clear, self-documenting code.",quote:"- Write clear, self-documenting code.",file:"CLAUDE.md",lineStart:21,lineEnd:21,confidence:"high",category:"semantic",mechanism:"prose"},{text:"Prefer named exports over default exports.",quote:"- Prefer named exports over default exports.",file:"CLAUDE.md",lineStart:22,lineEnd:22,confidence:"high",category:"unrouted",mechanism:"synthesize"}]},rulesInventory:[{intent:"strict equality ===",linter:"eslint",matched:"eqeqeq",rule:"eqeqeq",configState:"contradiction",configFix:'"eqeqeq": "error"'},{intent:"no console.log / use the logger",linter:"eslint",matched:"console.log",rule:"no-console",configState:"not-in-config",configFix:'"no-console": "error"'},{intent:"no debugger",linter:"eslint",matched:"no-debugger",rule:"no-debugger",configState:"not-in-config",configFix:'"no-debugger": "error"'},{intent:"no `any` type",linter:"eslint",matched:"no-explicit-any",rule:"@typescript-eslint/no-explicit-any",configState:"in-config",configFix:'"@typescript-eslint/no-explicit-any": "error"'},{intent:"no floating promises",linter:"eslint",matched:"no-floating-promises",rule:"@typescript-eslint/no-floating-promises",configState:"preset-maybe",configFix:'"@typescript-eslint/no-floating-promises": "error"'}]},qf=window.__VIGILES_DATA__,j0=qf&&typeof qf=="object"?qf:z0;ny.createRoot(document.getElementById("root")).render(s.jsx(xt.StrictMode,{children:s.jsx(S0,{data:j0})}));</script>
|
|
156
156
|
<style rel="stylesheet" crossorigin>/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-space-y-reverse:0;--tw-divide-y-reverse:0;--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-tracking:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--spacing:.25rem;--container-5xl:64rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--text-sm:.875rem;--text-sm--line-height:calc(1.25 / .875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75 / 1.125);--text-xl:1.25rem;--text-xl--line-height:calc(1.75 / 1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2 / 1.5);--text-3xl:1.875rem;--text-3xl--line-height: 1.2 ;--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5 / 2.25);--text-5xl:3rem;--text-5xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--font-weight-black:900;--tracking-tight:-.025em;--tracking-wide:.025em;--tracking-widest:.1em;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-xl:.75rem;--radius-2xl:1rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-good:var(--good)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){-webkit-appearance:button;-moz-appearance:button;appearance:button}::file-selector-button{-webkit-appearance:button;-moz-appearance:button;appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}body{background-color:var(--background);color:var(--foreground);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}@layer components;@layer utilities{.visible{visibility:visible}.top-3{top:calc(var(--spacing) * 3)}.mx-1{margin-inline:var(--spacing)}.mx-auto{margin-inline:auto}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:var(--spacing)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-2\.5{margin-top:calc(var(--spacing) * 2.5)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-3\.5{margin-top:calc(var(--spacing) * 3.5)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-9{margin-top:calc(var(--spacing) * 9)}.mt-12{margin-top:calc(var(--spacing) * 12)}.mr-1{margin-right:var(--spacing)}.mb-2\.5{margin-bottom:calc(var(--spacing) * 2.5)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.ml-1{margin-left:var(--spacing)}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.h-1{height:var(--spacing)}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-8{height:calc(var(--spacing) * 8)}.h-20{height:calc(var(--spacing) * 20)}.h-28{height:calc(var(--spacing) * 28)}.h-full{height:100%}.w-20{width:calc(var(--spacing) * 20)}.w-28{width:calc(var(--spacing) * 28)}.max-w-5xl{max-width:var(--container-5xl)}.min-w-0{min-width:0}.min-w-\[12rem\]{min-width:12rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.list-none{list-style-type:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--spacing)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\.5{gap:calc(var(--spacing) * 2.5)}.gap-3{gap:calc(var(--spacing) * 3)}.gap-5{gap:calc(var(--spacing) * 5)}.gap-6{gap:calc(var(--spacing) * 6)}:where(.space-y-0\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(var(--spacing) * var(--tw-space-y-reverse));margin-block-end:calc(var(--spacing) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-1\.5>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 1.5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1.5) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}.gap-x-3{column-gap:calc(var(--spacing) * 3)}.gap-x-4{column-gap:calc(var(--spacing) * 4)}.gap-y-1{row-gap:var(--spacing)}.gap-y-2{row-gap:calc(var(--spacing) * 2)}:where(.divide-y>:not(:last-child)){--tw-divide-y-reverse:0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}:where(.divide-border\/40>:not(:last-child)){border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){:where(.divide-border\/40>:not(:last-child)){border-color:color-mix(in oklab,var(--border) 40%,transparent)}}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-bad{border-color:var(--bad)}.border-border,.border-border\/40{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/40{border-color:color-mix(in oklab,var(--border) 40%,transparent)}}.border-border\/50{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/50{border-color:color-mix(in oklab,var(--border) 50%,transparent)}}.border-border\/70{border-color:var(--border)}@supports (color:color-mix(in lab,red,red)){.border-border\/70{border-color:color-mix(in oklab,var(--border) 70%,transparent)}}.border-good{border-color:var(--good)}.border-na{border-color:var(--na)}.border-warn{border-color:var(--warn)}.border-l-bad{border-left-color:var(--bad)}.border-l-good{border-left-color:var(--good)}.border-l-na{border-left-color:var(--na)}.border-l-warn{border-left-color:var(--warn)}.bg-background{background-color:var(--background)}.bg-bad{background-color:var(--bad)}.bg-border{background-color:var(--border)}.bg-card,.bg-card\/20{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/20{background-color:color-mix(in oklab,var(--card) 20%,transparent)}}.bg-card\/30{background-color:var(--card)}@supports (color:color-mix(in lab,red,red)){.bg-card\/30{background-color:color-mix(in oklab,var(--card) 30%,transparent)}}.bg-good{background-color:var(--good)}.bg-na{background-color:var(--na)}.bg-warn{background-color:var(--warn)}.fill-bad{fill:var(--bad)}.fill-good{fill:var(--good)}.fill-na{fill:var(--na)}.fill-warn{fill:var(--warn)}.stroke-bad{stroke:var(--bad)}.stroke-border{stroke:var(--border)}.stroke-good{stroke:var(--good)}.stroke-na{stroke:var(--na)}.stroke-warn{stroke:var(--warn)}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-7{padding:calc(var(--spacing) * 7)}.px-1{padding-inline:var(--spacing)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-6{padding-inline:calc(var(--spacing) * 6)}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:var(--spacing)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-3{padding-left:calc(var(--spacing) * 3)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.align-\[-2px\]{vertical-align:-2px}.font-mono{font-family:var(--font-mono)}.text-3xl{font-size:var(--text-3xl);line-height:var(--tw-leading,var(--text-3xl--line-height))}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\[11px\]{font-size:11px}.text-\[13px\]{font-size:13px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-black{--tw-font-weight:var(--font-weight-black);font-weight:var(--font-weight-black)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-extrabold{--tw-font-weight:var(--font-weight-extrabold);font-weight:var(--font-weight-extrabold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-\[0\.14em\]{--tw-tracking:.14em;letter-spacing:.14em}.tracking-\[0\.18em\]{--tw-tracking:.18em;letter-spacing:.18em}.tracking-tight{--tw-tracking:var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.tracking-widest{--tw-tracking:var(--tracking-widest);letter-spacing:var(--tracking-widest)}.whitespace-nowrap{white-space:nowrap}.text-bad{color:var(--bad)}.text-foreground{color:var(--foreground)}.text-good{color:var(--good)}.text-muted-foreground,.text-muted-foreground\/60{color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/60{color:color-mix(in oklab,var(--muted) 60%,transparent)}}.text-muted-foreground\/70{color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/70{color:color-mix(in oklab,var(--muted) 70%,transparent)}}.text-muted-foreground\/80{color:var(--muted)}@supports (color:color-mix(in lab,red,red)){.text-muted-foreground\/80{color:color-mix(in oklab,var(--muted) 80%,transparent)}}.text-na{color:var(--na)}.text-warn{color:var(--warn)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.not-italic{font-style:normal}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.underline{text-decoration-line:underline}.decoration-dotted{text-decoration-style:dotted}.underline-offset-2{text-underline-offset:2px}.opacity-70{opacity:.7}.opacity-80{opacity:.8}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.ring{--tw-ring-shadow:var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.blur{--tw-blur:blur(8px);filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.group-open\:rotate-90:is(:where(.group):is([open],:popover-open,:open) *){rotate:90deg}@media(hover:hover){.hover\:border-foreground:hover{border-color:var(--foreground)}.hover\:text-foreground:hover{color:var(--foreground)}}.disabled\:opacity-60:disabled{opacity:.6}@media(min-width:40rem){.sm\:inline{display:inline}.sm\:flex-1{flex:1}.sm\:shrink-0{flex-shrink:0}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:items-end{align-items:flex-end}.sm\:items-start{align-items:flex-start}.sm\:justify-between{justify-content:space-between}.sm\:gap-4{gap:calc(var(--spacing) * 4)}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.sm\:text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}}@media(min-width:64rem){.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}}:root{--background:#fafafa;--card:#fff;--border:#e4e4e7;--foreground:#09090b;--muted:#71717a;--good:#16a34a;--warn:#f59e0b;--bad:#ef4444;--na:#a1a1aa;--radius:.75rem}@media(prefers-color-scheme:dark){:root{--background:#10151e;--card:#171d28;--border:#232c3a;--foreground:#dbe1ea;--muted:#8b96a7;--good:#35c98a;--warn:#f2b34d;--bad:#f0726c;--na:#6b7688}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@keyframes spin{to{transform:rotate(360deg)}}</style>
|
|
157
157
|
</head>
|
|
158
158
|
<body>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vigiles",
|
|
3
|
-
"version": "14.10.
|
|
3
|
+
"version": "14.10.3",
|
|
4
4
|
"description": "Lint & test the harness your AI agent runs on — verify the references in your CLAUDE.md / AGENTS.md and test that your hooks and skills actually work.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"claude-code",
|