vigiles 14.6.5 → 14.6.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/audit-report.template.html +1 -1
- package/dist/egress.js +4 -2
- package/dist/sandbox.js +4 -2
- package/package.json +6 -1
|
@@ -148,7 +148,7 @@ Error generating stack: `+a.message+`
|
|
|
148
148
|
* This source code is licensed under the ISC license.
|
|
149
149
|
* See the LICENSE file in the root directory of this source tree.
|
|
150
150
|
*/const sg=Ft("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 im(f){var h,y,s="";if(typeof f=="string"||typeof f=="number")s+=f;else if(typeof f=="object")if(Array.isArray(f)){var x=f.length;for(h=0;h<x;h++)f[h]&&(y=im(f[h]))&&(s&&(s+=" "),s+=y)}else for(y in f)f[y]&&(s&&(s+=" "),s+=y);return s}function cm(){for(var f,h,y=0,s="",x=arguments.length;y<x;y++)(f=arguments[y])&&(h=im(f))&&(s&&(s+=" "),s+=h);return s}const Bf="-",og=f=>{const h=dg(f),{conflictingClassGroups:y,conflictingClassGroupModifiers:s}=f;return{getClassGroupId:U=>{const O=U.split(Bf);return O[0]===""&&O.length!==1&&O.shift(),fm(O,h)||rg(U)},getConflictingClassGroupIds:(U,O)=>{const _=y[U]||[];return O&&s[U]?[..._,...s[U]]:_}}},fm=(f,h)=>{var U;if(f.length===0)return h.classGroupId;const y=f[0],s=h.nextPart.get(y),x=s?fm(f.slice(1),s):void 0;if(x)return x;if(h.validators.length===0)return;const T=f.join(Bf);return(U=h.validators.find(({validator:O})=>O(T)))==null?void 0:U.classGroupId},Wd=/^\[(.+)\]$/,rg=f=>{if(Wd.test(f)){const h=Wd.exec(f)[1],y=h==null?void 0:h.substring(0,h.indexOf(":"));if(y)return"arbitrary.."+y}},dg=f=>{const{theme:h,prefix:y}=f,s={nextPart:new Map,validators:[]};return hg(Object.entries(f.classGroups),y).forEach(([T,U])=>{Df(U,s,T,h)}),s},Df=(f,h,y,s)=>{f.forEach(x=>{if(typeof x=="string"){const T=x===""?h:Fd(h,x);T.classGroupId=y;return}if(typeof x=="function"){if(mg(x)){Df(x(s),h,y,s);return}h.validators.push({validator:x,classGroupId:y});return}Object.entries(x).forEach(([T,U])=>{Df(U,Fd(h,T),y,s)})})},Fd=(f,h)=>{let y=f;return h.split(Bf).forEach(s=>{y.nextPart.has(s)||y.nextPart.set(s,{nextPart:new Map,validators:[]}),y=y.nextPart.get(s)}),y},mg=f=>f.isThemeGetter,hg=(f,h)=>h?f.map(([y,s])=>{const x=s.map(T=>typeof T=="string"?h+T:typeof T=="object"?Object.fromEntries(Object.entries(T).map(([U,O])=>[h+U,O])):T);return[y,x]}):f,yg=f=>{if(f<1)return{get:()=>{},set:()=>{}};let h=0,y=new Map,s=new Map;const x=(T,U)=>{y.set(T,U),h++,h>f&&(h=0,s=y,y=new Map)};return{get(T){let U=y.get(T);if(U!==void 0)return U;if((U=s.get(T))!==void 0)return x(T,U),U},set(T,U){y.has(T)?y.set(T,U):x(T,U)}}},sm="!",gg=f=>{const{separator:h,experimentalParseClassName:y}=f,s=h.length===1,x=h[0],T=h.length,U=O=>{const _=[];let z=0,B=0,R;for(let Q=0;Q<O.length;Q++){let w=O[Q];if(z===0){if(w===x&&(s||O.slice(Q,Q+T)===h)){_.push(O.slice(B,Q)),B=Q+T;continue}if(w==="/"){R=Q;continue}}w==="["?z++:w==="]"&&z--}const L=_.length===0?O:O.substring(B),yt=L.startsWith(sm),ot=yt?L.substring(1):L,W=R&&R>B?R-B:void 0;return{modifiers:_,hasImportantModifier:yt,baseClassName:ot,maybePostfixModifierPosition:W}};return y?O=>y({className:O,parseClassName:U}):U},vg=f=>{if(f.length<=1)return f;const h=[];let y=[];return f.forEach(s=>{s[0]==="["?(h.push(...y.sort(),s),y=[]):y.push(s)}),h.push(...y.sort()),h},bg=f=>({cache:yg(f.cacheSize),parseClassName:gg(f),...og(f)}),pg=/\s+/,xg=(f,h)=>{const{parseClassName:y,getClassGroupId:s,getConflictingClassGroupIds:x}=h,T=[],U=f.trim().split(pg);let O="";for(let _=U.length-1;_>=0;_-=1){const z=U[_],{modifiers:B,hasImportantModifier:R,baseClassName:L,maybePostfixModifierPosition:yt}=y(z);let ot=!!yt,W=s(ot?L.substring(0,yt):L);if(!W){if(!ot){O=z+(O.length>0?" "+O:O);continue}if(W=s(L),!W){O=z+(O.length>0?" "+O:O);continue}ot=!1}const Q=vg(B).join(":"),w=R?Q+sm:Q,xt=w+W;if(T.includes(xt))continue;T.push(xt);const Nt=x(W,ot);for(let Dt=0;Dt<Nt.length;++Dt){const kt=Nt[Dt];T.push(w+kt)}O=z+(O.length>0?" "+O:O)}return O};function Sg(){let f=0,h,y,s="";for(;f<arguments.length;)(h=arguments[f++])&&(y=om(h))&&(s&&(s+=" "),s+=y);return s}const om=f=>{if(typeof f=="string")return f;let h,y="";for(let s=0;s<f.length;s++)f[s]&&(h=om(f[s]))&&(y&&(y+=" "),y+=h);return y};function zg(f,...h){let y,s,x,T=U;function U(_){const z=h.reduce((B,R)=>R(B),f());return y=bg(z),s=y.cache.get,x=y.cache.set,T=O,O(_)}function O(_){const z=s(_);if(z)return z;const B=xg(_,y);return x(_,B),B}return function(){return T(Sg.apply(null,arguments))}}const Et=f=>{const h=y=>y[f]||[];return h.isThemeGetter=!0,h},rm=/^\[(?:([a-z-]+):)?(.+)\]$/i,Ag=/^\d+\/\d+$/,Eg=new Set(["px","full","screen"]),Tg=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,Ng=/\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$/,jg=/^(rgba?|hsla?|hwb|(ok)?(lab|lch)|color-mix)\(.+\)$/,Mg=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,_g=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,nl=f=>Ha(f)||Eg.has(f)||Ag.test(f),Ol=f=>qa(f,"length",Bg),Ha=f=>!!f&&!Number.isNaN(Number(f)),_f=f=>qa(f,"number",Ha),Un=f=>!!f&&Number.isInteger(Number(f)),Og=f=>f.endsWith("%")&&Ha(f.slice(0,-1)),$=f=>rm.test(f),Cl=f=>Tg.test(f),Cg=new Set(["length","size","percentage"]),Dg=f=>qa(f,Cg,dm),Ug=f=>qa(f,"position",dm),Rg=new Set(["image","url"]),Hg=f=>qa(f,Rg,Gg),qg=f=>qa(f,"",Yg),Rn=()=>!0,qa=(f,h,y)=>{const s=rm.exec(f);return s?s[1]?typeof h=="string"?s[1]===h:h.has(s[1]):y(s[2]):!1},Bg=f=>Ng.test(f)&&!jg.test(f),dm=()=>!1,Yg=f=>Mg.test(f),Gg=f=>_g.test(f),Xg=()=>{const f=Et("colors"),h=Et("spacing"),y=Et("blur"),s=Et("brightness"),x=Et("borderColor"),T=Et("borderRadius"),U=Et("borderSpacing"),O=Et("borderWidth"),_=Et("contrast"),z=Et("grayscale"),B=Et("hueRotate"),R=Et("invert"),L=Et("gap"),yt=Et("gradientColorStops"),ot=Et("gradientColorStopPositions"),W=Et("inset"),Q=Et("margin"),w=Et("opacity"),xt=Et("padding"),Nt=Et("saturate"),Dt=Et("scale"),kt=Et("sepia"),Xt=Et("skew"),I=Et("space"),Qt=Et("translate"),It=()=>["auto","contain","none"],Ue=()=>["auto","hidden","clip","visible","scroll"],Pt=()=>["auto",$,h],F=()=>[$,h],Re=()=>["",nl,Ol],te=()=>["auto",Ha,$],ee=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],A=()=>["solid","dashed","dotted","double","none"],C=()=>["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"],ut=()=>["","0",$],rt=()=>["auto","avoid","all","avoid-page","page","left","right","column"],d=()=>[Ha,$];return{cacheSize:500,separator:":",theme:{colors:[Rn],spacing:[nl,Ol],blur:["none","",Cl,$],brightness:d(),borderColor:[f],borderRadius:["none","","full",Cl,$],borderSpacing:F(),borderWidth:Re(),contrast:d(),grayscale:ut(),hueRotate:d(),invert:ut(),gap:F(),gradientColorStops:[f],gradientColorStopPositions:[Og,Ol],inset:Pt(),margin:Pt(),opacity:d(),padding:F(),saturate:d(),scale:d(),sepia:ut(),skew:d(),space:F(),translate:F()},classGroups:{aspect:[{aspect:["auto","square","video",$]}],container:["container"],columns:[{columns:[Cl]}],"break-after":[{"break-after":rt()}],"break-before":[{"break-before":rt()}],"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:[...ee(),$]}],overflow:[{overflow:Ue()}],"overflow-x":[{"overflow-x":Ue()}],"overflow-y":[{"overflow-y":Ue()}],overscroll:[{overscroll:It()}],"overscroll-x":[{"overscroll-x":It()}],"overscroll-y":[{"overscroll-y":It()}],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",Un,$]}],basis:[{basis:Pt()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",$]}],grow:[{grow:ut()}],shrink:[{shrink:ut()}],order:[{order:["first","last","none",Un,$]}],"grid-cols":[{"grid-cols":[Rn]}],"col-start-end":[{col:["auto",{span:["full",Un,$]},$]}],"col-start":[{"col-start":te()}],"col-end":[{"col-end":te()}],"grid-rows":[{"grid-rows":[Rn]}],"row-start-end":[{row:["auto",{span:[Un,$]},$]}],"row-start":[{"row-start":te()}],"row-end":[{"row-end":te()}],"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:[xt]}],px:[{px:[xt]}],py:[{py:[xt]}],ps:[{ps:[xt]}],pe:[{pe:[xt]}],pt:[{pt:[xt]}],pr:[{pr:[xt]}],pb:[{pb:[xt]}],pl:[{pl:[xt]}],m:[{m:[Q]}],mx:[{mx:[Q]}],my:[{my:[Q]}],ms:[{ms:[Q]}],me:[{me:[Q]}],mt:[{mt:[Q]}],mr:[{mr:[Q]}],mb:[{mb:[Q]}],ml:[{ml:[Q]}],"space-x":[{"space-x":[I]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[I]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",$,h]}],"min-w":[{"min-w":[$,h,"min","max","fit"]}],"max-w":[{"max-w":[$,h,"none","full","min","max","fit","prose",{screen:[Cl]},Cl]}],h:[{h:[$,h,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[$,h,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[$,h,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[$,h,"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",_f]}],"font-family":[{font:[Rn]}],"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",Ha,_f]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",nl,$]}],"list-image":[{"list-image":["none",$]}],"list-style-type":[{list:["none","disc","decimal",$]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[f]}],"placeholder-opacity":[{"placeholder-opacity":[w]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[f]}],"text-opacity":[{"text-opacity":[w]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...A(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",nl,Ol]}],"underline-offset":[{"underline-offset":["auto",nl,$]}],"text-decoration-color":[{decoration:[f]}],"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":[w]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...ee(),Ug]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",Dg]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},Hg]}],"bg-color":[{bg:[f]}],"gradient-from-pos":[{from:[ot]}],"gradient-via-pos":[{via:[ot]}],"gradient-to-pos":[{to:[ot]}],"gradient-from":[{from:[yt]}],"gradient-via":[{via:[yt]}],"gradient-to":[{to:[yt]}],rounded:[{rounded:[T]}],"rounded-s":[{"rounded-s":[T]}],"rounded-e":[{"rounded-e":[T]}],"rounded-t":[{"rounded-t":[T]}],"rounded-r":[{"rounded-r":[T]}],"rounded-b":[{"rounded-b":[T]}],"rounded-l":[{"rounded-l":[T]}],"rounded-ss":[{"rounded-ss":[T]}],"rounded-se":[{"rounded-se":[T]}],"rounded-ee":[{"rounded-ee":[T]}],"rounded-es":[{"rounded-es":[T]}],"rounded-tl":[{"rounded-tl":[T]}],"rounded-tr":[{"rounded-tr":[T]}],"rounded-br":[{"rounded-br":[T]}],"rounded-bl":[{"rounded-bl":[T]}],"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":[w]}],"border-style":[{border:[...A(),"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":[w]}],"divide-style":[{divide:A()}],"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:["",...A()]}],"outline-offset":[{"outline-offset":[nl,$]}],"outline-w":[{outline:[nl,Ol]}],"outline-color":[{outline:[f]}],"ring-w":[{ring:Re()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[f]}],"ring-opacity":[{"ring-opacity":[w]}],"ring-offset-w":[{"ring-offset":[nl,Ol]}],"ring-offset-color":[{"ring-offset":[f]}],shadow:[{shadow:["","inner","none",Cl,qg]}],"shadow-color":[{shadow:[Rn]}],opacity:[{opacity:[w]}],"mix-blend":[{"mix-blend":[...C(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":C()}],filter:[{filter:["","none"]}],blur:[{blur:[y]}],brightness:[{brightness:[s]}],contrast:[{contrast:[_]}],"drop-shadow":[{"drop-shadow":["","none",Cl,$]}],grayscale:[{grayscale:[z]}],"hue-rotate":[{"hue-rotate":[B]}],invert:[{invert:[R]}],saturate:[{saturate:[Nt]}],sepia:[{sepia:[kt]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[y]}],"backdrop-brightness":[{"backdrop-brightness":[s]}],"backdrop-contrast":[{"backdrop-contrast":[_]}],"backdrop-grayscale":[{"backdrop-grayscale":[z]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[B]}],"backdrop-invert":[{"backdrop-invert":[R]}],"backdrop-opacity":[{"backdrop-opacity":[w]}],"backdrop-saturate":[{"backdrop-saturate":[Nt]}],"backdrop-sepia":[{"backdrop-sepia":[kt]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[U]}],"border-spacing-x":[{"border-spacing-x":[U]}],"border-spacing-y":[{"border-spacing-y":[U]}],"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:[Dt]}],"scale-x":[{"scale-x":[Dt]}],"scale-y":[{"scale-y":[Dt]}],rotate:[{rotate:[Un,$]}],"translate-x":[{"translate-x":[Qt]}],"translate-y":[{"translate-y":[Qt]}],"skew-x":[{"skew-x":[Xt]}],"skew-y":[{"skew-y":[Xt]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",$]}],accent:[{accent:["auto",f]}],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:[f]}],"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:[f,"none"]}],"stroke-w":[{stroke:[nl,Ol,_f]}],stroke:[{stroke:[f,"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"]}}},Qg=zg(Xg);function pt(...f){return Qg(cm(f))}function Ge({className:f,...h}){return o.jsx("div",{className:pt("rounded-lg border border-border bg-card text-foreground shadow-sm",f),...h})}const Id=f=>typeof f=="boolean"?`${f}`:f===0?"0":f,Pd=cm,Zg=(f,h)=>y=>{var s;if((h==null?void 0:h.variants)==null)return Pd(f,y==null?void 0:y.class,y==null?void 0:y.className);const{variants:x,defaultVariants:T}=h,U=Object.keys(x).map(z=>{const B=y==null?void 0:y[z],R=T==null?void 0:T[z];if(B===null)return null;const L=Id(B)||Id(R);return x[z][L]}),O=y&&Object.entries(y).reduce((z,B)=>{let[R,L]=B;return L===void 0||(z[R]=L),z},{}),_=h==null||(s=h.compoundVariants)===null||s===void 0?void 0:s.reduce((z,B)=>{let{class:R,className:L,...yt}=B;return Object.entries(yt).every(ot=>{let[W,Q]=ot;return Array.isArray(Q)?Q.includes({...T,...O}[W]):{...T,...O}[W]===Q})?[...z,R,L]:z},[]);return Pd(f,U,_,y==null?void 0:y.class,y==null?void 0:y.className)},Lg=Zg("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 qn({className:f,variant:h,...y}){return o.jsx("span",{className:pt(Lg({variant:h}),f),...y})}function mm(f){return f===null?"na":f>=90?"good":f>=70?"warn":"bad"}const ft={good:"text-good",warn:"text-warn",bad:"text-bad",na:"text-na"},Hn={good:"bg-good",warn:"bg-warn",bad:"bg-bad",na:"bg-na"},ai={good:"border-l-good",warn:"border-l-warn",bad:"border-l-bad",na:"border-l-na"},Vg={good:"border-good",warn:"border-warn",bad:"border-bad",na:"border-na"},wg={enforce:"rule",file:"file",cmd:"cmd",dir:"dir"};function Kg({r:f}){return o.jsxs("div",{className:pt("border-l-4 p-3",ai.bad),children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[o.jsx(qn,{children:wg[f.kind]}),o.jsx("code",{className:"font-mono text-xs text-foreground",children:f.ref})]}),o.jsx("div",{className:"mt-0.5 text-xs text-muted-foreground",children:f.issue})]})}function Jg({data:f}){if(f.total===0)return o.jsxs(Ge,{className:"p-4 text-sm text-muted-foreground",children:["No machine-verifiable references found — add"," ",o.jsx("code",{className:"font-mono text-xs",children:"enforce()"})," calls to a"," ",o.jsx("code",{className:"font-mono text-xs",children:".spec.ts"})," to unlock cross-referencing."]});const h=f.broken===0;return o.jsxs(Ge,{className:"p-5",children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[o.jsxs("div",{className:"flex items-baseline gap-1.5",children:[o.jsx("span",{className:pt("text-3xl font-bold tabular-nums",h?ft.good:ft.bad),children:f.broken}),o.jsxs("span",{className:"text-sm text-muted-foreground",children:["/ ",f.total," broken"]})]}),h?o.jsxs("span",{className:pt("flex items-center gap-1 text-sm",ft.good),children:[o.jsx(Hf,{size:14})," all ",f.total," reference",f.total===1?"":"s"," resolve"]}):o.jsxs("span",{className:pt("flex items-center gap-1 text-sm",ft.bad),children:[o.jsx(lg,{size:14})," ",f.broken," broken reference",f.broken===1?"":"s"," found"]})]}),f.brokenRefs.length>0&&o.jsx("div",{className:"mt-4 flex flex-col gap-2",children:f.brokenRefs.map((y,s)=>o.jsx(Kg,{r:y},s))})]})}function hm(){const f=window.__VIGILES_SERVE__;return f&&typeof f.token=="string"?f:null}async function kg(f,h,y){try{const s=await fetch(f,{method:"POST",headers:{"content-type":"application/json","x-vigiles-token":y},body:JSON.stringify(h)}),x=await s.json();return{ok:x.ok??s.ok,message:x.message??""}}catch(s){return{ok:!1,message:s instanceof Error?s.message:String(s)}}}const ym="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 gm({command:f,label:h}){const[y,s]=_e.useState(!1),x=()=>{var T;(T=navigator.clipboard)==null||T.writeText(f).then(()=>{s(!0),setTimeout(()=>s(!1),1500)},()=>{})};return o.jsxs("button",{type:"button",onClick:x,title:`Copy: ${f}`,className:ym,children:[y?o.jsx(Bn,{size:14,className:ft.good}):o.jsx(qf,{size:14,className:"text-muted-foreground"}),o.jsx("span",{className:pt(y&&ft.good),children:y?"copied!":h})]})}function vm({endpoint:f,body:h,token:y,label:s}){const[x,T]=_e.useState("idle"),[U,O]=_e.useState(""),_=()=>{T("running"),kg(f,h,y).then(z=>{T(z.ok?"done":"error"),O(z.message)})};return o.jsxs("button",{type:"button",onClick:_,disabled:x==="running"||x==="done",title:x==="error"?U:s,className:ym,children:[x==="running"&&o.jsx(ag,{size:14,className:"animate-spin text-muted-foreground"}),x==="done"&&o.jsx(Bn,{size:14,className:ft.good}),x==="error"&&o.jsx(fg,{size:14,className:ft.bad}),x==="idle"&&o.jsx(um,{size:14,className:"text-muted-foreground"}),o.jsx("span",{className:pt(x==="done"&&ft.good,x==="error"&&ft.bad),children:x==="done"?"created":x==="error"?"failed":x==="running"?"creating…":s})]})}function $g({path:f,command:h}){const y=hm();return o.jsxs("div",{className:"flex flex-wrap items-center gap-3 border-l-4 border-l-warn p-3",children:[o.jsx("code",{className:"font-mono text-xs text-foreground",children:f}),o.jsx("div",{className:"ml-auto",children:y?o.jsx(vm,{endpoint:"/adopt",body:{target:f},token:y.token,label:"Create spec"}):o.jsx(gm,{command:h,label:"Create spec"})})]})}function Wg({data:f}){const h=hm();return o.jsxs(Ge,{className:"p-5",children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[o.jsx(um,{size:16,className:"text-muted-foreground"}),f.surfaces.length," surface",f.surfaces.length===1?"":"s"," not yet spec-managed"]}),o.jsx("div",{className:"ml-auto",children:h?o.jsx(vm,{endpoint:"/adopt-all",body:{},token:h.token,label:"Create all specs"}):o.jsx(gm,{command:f.createAllCommand,label:"Create all specs"})})]}),o.jsx("p",{className:"mt-2 text-xs text-muted-foreground",children:h?"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)."}),f.surfaces.length>0&&o.jsx("div",{className:"mt-4 flex flex-col gap-2",children:f.surfaces.map(y=>o.jsx($g,{path:y.path,command:y.command},y.path))})]})}const Fg="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 Ig({item:f}){const[h,y]=_e.useState(!1),s=f.configState==="contradiction"?`In this repo, the ${f.linter} rule \`${f.rule}\` is set to "off" in the lint config, but the instructions document "${f.intent}" as a rule. Resolve the contradiction: either remove the override so \`${f.rule}\` is enforced (${f.configFix}), or drop the documented rule if it's intentionally off.`:`In this repo, enable the ${f.linter} rule \`${f.rule}\` (set it to "error") in the lint config, so the documented rule "${f.intent}" is actually enforced. Config to add: ${f.configFix}`,x=()=>{var T;(T=navigator.clipboard)==null||T.writeText(s).then(()=>{y(!0),setTimeout(()=>y(!1),1500)},()=>{})};return o.jsxs("button",{type:"button",onClick:x,title:s,className:Fg,children:[h?o.jsx(Bn,{size:14,className:ft.good}):o.jsx(qf,{size:14,className:"text-muted-foreground"}),o.jsx("span",{className:pt(h&&ft.good),children:h?"copied!":"copy agent prompt"})]})}function li({item:f,tone:h,label:y,action:s}){return o.jsxs(Ge,{className:"flex flex-wrap items-center gap-x-3 gap-y-2 p-3 text-sm",children:[h==="good"?o.jsx(Bn,{size:16,className:ft.good}):o.jsx("span",{className:pt("text-lg leading-none",h==="warn"?ft.warn:h==="bad"?ft.bad:"text-muted-foreground"),children:"●"}),o.jsx("span",{className:"min-w-[12rem] flex-1",children:f.intent}),o.jsx("code",{className:"font-mono text-xs text-muted-foreground",children:f.rule}),o.jsx("span",{className:pt("text-xs",h==="good"?ft.good:h==="warn"?ft.warn:h==="bad"?ft.bad:"text-muted-foreground"),children:y}),s&&o.jsx(Ig,{item:f})]})}function tm({title:f,tone:h,children:y}){return o.jsxs("details",{className:"group",children:[o.jsxs("summary",{className:pt("flex cursor-pointer list-none items-center gap-1.5 py-1 text-xs font-medium",h==="good"?ft.good:"text-muted-foreground"),children:[o.jsx(nm,{size:13,className:"transition-transform group-open:rotate-90"}),f]}),o.jsx("div",{className:"mt-2 space-y-2",children:y})]})}const Of={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)"}},Pg=["reuse","hook","meta","semantic","unrouted"];function t0({routing:f}){const h=s=>{var x;return(x=f==null?void 0:f.rules.find(T=>T.category===s))==null?void 0:x.text},y=((f==null?void 0:f.rules)??[]).filter(s=>s.category==="reuse"&&s.enabled===!1);return o.jsxs("div",{className:"rounded-lg border border-dashed border-border p-4",children:[o.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[o.jsx(ig,{size:15,className:"text-muted-foreground"}),"Your rules, mapped",o.jsx("span",{className:"text-xs font-normal text-muted-foreground",children:"deterministic · no model"})]}),f&&f.segmented>0?o.jsxs(o.Fragment,{children:[o.jsxs("p",{className:"mt-1.5 text-xs text-muted-foreground",children:["We segmented"," ",o.jsx("span",{className:"font-semibold text-foreground",children:f.segmented})," ","atomic ",f.segmented===1?"rule":"rules"," from your instructions and routed each one — deterministically, no model:"]}),o.jsx("ul",{className:"mt-2 space-y-1.5 text-xs text-muted-foreground",children:Pg.filter(s=>f.counts[s]>0).map(s=>{const x=h(s);return o.jsxs("li",{children:[o.jsxs("span",{className:"font-mono text-foreground",children:[Of[s].glyph," ",f.counts[s]," ",Of[s].label]})," ","— ",Of[s].blurb,s==="reuse"&&y.length>0&&o.jsxs("span",{className:pt("ml-1 font-semibold",ft.bad),children:["(",y.length," documented but OFF)"]}),x&&o.jsxs("span",{className:"mt-0.5 block truncate pl-4 italic opacity-80",children:["e.g. “",x,"”"]})]},s)})}),y.length>0&&o.jsxs("div",{className:pt("mt-2.5 rounded-md border p-2.5","border-l-4"),children:[o.jsxs("p",{className:pt("text-xs font-semibold",ft.bad),children:["⛔ ",y.length," documented but OFF"]}),o.jsxs("p",{className:"mt-0.5 text-xs text-muted-foreground",children:["Your instructions name"," ",y.length===1?"this rule":"these rules"," as enforced, but your linter config has ",y.length===1?"it":"them"," ","disabled:"]}),o.jsxs("ul",{className:"mt-1 space-y-0.5",children:[y.slice(0,6).map(s=>o.jsxs("li",{className:"font-mono text-xs text-muted-foreground",children:[o.jsx("code",{className:ft.bad,children:s.rule})," ",o.jsxs("span",{className:"opacity-70",children:["— ",s.text]})]},s.rule)),y.length>6&&o.jsxs("li",{className:"text-xs text-muted-foreground",children:["+",y.length-6," more"]})]})]}),o.jsx(em,{routing:f}),o.jsx(lm,{})]}):o.jsxs(o.Fragment,{children:[o.jsx(em,{routing:f}),o.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:"}),o.jsxs("ul",{className:"mt-2 space-y-1 text-xs text-muted-foreground",children:[o.jsxs("li",{children:[o.jsx("span",{className:"font-mono text-foreground",children:"✓ enforceable now"})," ","— an off-the-shelf rule already exists → enable it"]}),o.jsxs("li",{children:[o.jsx("span",{className:"font-mono text-foreground",children:"⛓ hook"})," — action rules a linter can't see (git push, rm -rf)"]}),o.jsxs("li",{children:[o.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"]}),o.jsxs("li",{children:[o.jsx("span",{className:"font-mono text-foreground",children:"✎ judgment call"})," ","— genuinely undecidable (“readable”), honestly left as prose"]})]}),o.jsx(lm,{})]})]})}function em({routing:f}){const h=(f==null?void 0:f.possible)??[],y=(f==null?void 0:f.skipped)??[];if(h.length===0&&y.length===0)return null;const s={};for(const x of y)s[x.reason]=(s[x.reason]??0)+1;return o.jsxs("div",{className:"mt-2.5 space-y-2",children:[h.length>0&&o.jsxs("div",{className:"rounded-md border border-dashed border-border p-2.5",children:[o.jsxs("p",{className:"text-xs font-semibold text-foreground",children:["? ",h.length," possible — rule-ish, below the confidence bar (review)"]}),o.jsxs("ul",{className:"mt-1 space-y-0.5",children:[h.slice(0,6).map((x,T)=>o.jsxs("li",{className:"truncate text-xs italic text-muted-foreground opacity-80",children:["“",x.text,"”"]},`${x.lineStart}-${T}`)),h.length>6&&o.jsxs("li",{className:"text-xs text-muted-foreground",children:["+",h.length-6," more"]})]})]}),y.length>0&&o.jsxs("p",{className:"text-xs text-muted-foreground",children:["⊘ ",y.length," skipped — not treated as rules (",Object.entries(s).map(([x,T])=>`${T} ${x}`).join(" · "),")"]}),o.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 lm(){return o.jsxs("div",{className:"mt-2.5 space-y-1 text-xs text-muted-foreground",children:[o.jsxs("p",{children:[o.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"," ",o.jsx("code",{className:"rounded bg-border px-1 font-mono",children:"strengthen"})," ","skill."]}),o.jsxs("p",{children:[o.jsx("span",{className:"font-medium text-foreground",children:"Hooks"})," — author a compiled hook in"," ",o.jsx("code",{className:"rounded bg-border px-1 font-mono",children:".vigiles/hooks/"}),", then"," ",o.jsx("code",{className:"rounded bg-border px-1 font-mono",children:"npx vigiles compile"})," ","wires it into your settings."]}),o.jsxs("p",{children:[o.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."]}),o.jsxs("p",{children:[o.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 e0({data:f,routing:h}){const y=f.filter(_=>_.configState==="in-config"),s=f.filter(_=>_.configState==="preset-maybe"),x=f.filter(_=>_.configState==="not-in-config"),T=f.filter(_=>_.configState==="contradiction"),U=f.length,O=(_,z)=>_>0?o.jsx("div",{className:pt(z),style:{flexGrow:_},"aria-hidden":!0}):null;return o.jsxs("div",{className:"space-y-4",children:[o.jsxs("div",{className:"flex flex-wrap items-baseline justify-between gap-2",children:[o.jsxs("p",{className:"text-sm text-muted-foreground",children:[o.jsx("span",{className:pt("font-semibold",ft.good),children:y.length})," ","of ",U," enforced",s.length>0&&o.jsxs(o.Fragment,{children:[" · ",o.jsx("span",{className:"font-semibold text-foreground",children:s.length})," ","likely via a preset"]}),x.length>0&&o.jsxs(o.Fragment,{children:[" · ",o.jsx("span",{className:pt("font-semibold",ft.warn),children:x.length})," ",x.length===1?"is":"are"," one config line away"]}),T.length>0&&o.jsxs(o.Fragment,{children:[" · ",o.jsx("span",{className:pt("font-semibold",ft.bad),children:T.length})," ","contradicted by config"]}),"."]}),o.jsxs("span",{className:"inline-flex items-center gap-1 text-xs text-muted-foreground",children:[o.jsx(sg,{size:12})," deterministic · no model"]})]}),o.jsxs("div",{className:"flex h-2 overflow-hidden rounded-full bg-border",children:[O(y.length,Hn.good),O(s.length,Hn.na),O(x.length,Hn.warn),O(T.length,Hn.bad)]}),T.length>0&&o.jsx("div",{className:"space-y-2",children:T.map(_=>o.jsx(li,{item:_,tone:"bad",label:"⛔ set to off in your config — your call",action:!0},_.rule))}),x.length>0&&o.jsx("div",{className:"space-y-2",children:x.map(_=>o.jsx(li,{item:_,tone:"warn",label:"enable in 1 line",action:!0},_.rule))}),y.length>0&&o.jsx(tm,{title:`✓ ${y.length} already enforced`,tone:"good",children:y.map(_=>o.jsx(li,{item:_,tone:"good",label:"enforced"},_.rule))}),s.length>0&&o.jsx(tm,{title:`◦ ${s.length} likely enforced via a preset`,tone:"muted",children:s.map(_=>o.jsx(li,{item:_,tone:"muted",label:"preset?"},_.rule))}),o.jsx(t0,{routing:h})]})}function l0({data:f}){return o.jsxs(Ge,{className:"p-5",children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-3",children:[o.jsxs("div",{className:"flex items-center gap-2 text-sm font-semibold",children:[o.jsx(ng,{size:16,className:"text-muted-foreground"}),f.total," record",f.total===1?"":"s"," recorded"]}),o.jsx("div",{className:"ml-auto flex flex-wrap gap-1.5",children:f.counts.map(h=>o.jsxs(qn,{variant:"outline",children:[h.count," ",h.kind]},h.kind))})]}),f.recentDenials.length>0&&o.jsxs("div",{className:"mt-4 flex flex-col gap-2",children:[o.jsxs("div",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:["Recent denials (",f.denials,")"]}),f.recentDenials.map((h,y)=>o.jsxs("div",{className:pt("flex flex-wrap items-center gap-2 border-l-4 p-3 text-sm",ai.bad),children:[o.jsx(tg,{size:14,className:ft.bad}),o.jsx("code",{className:"font-mono text-xs",children:h.label}),o.jsx("span",{className:"text-muted-foreground",children:h.reason})]},y))]})]})}function Uf(f){const h=f.replace(/[/\\]+$/,"").split(/[/\\]/);return h[h.length-1]||f}function a0(f){return f>=8?"bad":f>=3?"warn":"na"}function n0({r:f}){const[h,y]=_e.useState(!1),s=`In this repo, ${f.fix}. Context: ${f.rationale} (detector: ${f.detector}).`,x=()=>{var T;(T=navigator.clipboard)==null||T.writeText(s).then(()=>{y(!0),setTimeout(()=>y(!1),1500)},()=>{})};return o.jsxs("button",{type:"button",onClick:x,title:s,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:[h?o.jsx(Bn,{size:13,className:ft.good}):o.jsx(qf,{size:13,className:"text-muted-foreground"}),o.jsx("span",{className:pt(h&&ft.good),children:h?"copied!":"copy agent prompt"})]})}function u0({r:f,points:h}){const y=f.action==="fix"?cg:eg,s=a0(h);return o.jsxs(Ge,{className:pt("border-l-4 p-4",ai[s]),children:[o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[o.jsxs(qn,{children:[o.jsx(y,{size:12,className:"mr-1"}),f.action]}),o.jsx("strong",{children:f.surface}),h>0&&o.jsxs("span",{className:pt("rounded-full px-2 py-0.5 text-xs font-semibold",ft[s]),children:["+",h," pts"]}),o.jsx("span",{className:"ml-auto font-mono text-xs text-muted-foreground",children:f.detector})]}),o.jsx("div",{className:"mt-1.5 text-sm text-muted-foreground",children:f.rationale}),o.jsxs("div",{className:"mt-1 flex flex-wrap items-center justify-between gap-2",children:[o.jsxs("span",{className:"text-sm text-good",children:["→ ",f.fix]}),o.jsx(n0,{r:f})]})]})}function i0({c:f}){const h=f.advisory?"na":mm(f.score),y=f.score===null?0:Math.max(0,Math.min(100,f.score));return o.jsxs(Ge,{className:"flex flex-col gap-2 p-3",children:[o.jsxs("div",{className:"flex items-baseline justify-between gap-2",children:[o.jsx("span",{className:"text-xs font-semibold",children:f.key}),o.jsx("span",{className:pt("text-sm font-bold",ft[h]),children:f.advisory?"—":f.score===null?"n/a":f.score})]}),o.jsx("div",{className:"h-1.5 overflow-hidden rounded-full bg-border",children:o.jsx("div",{className:pt("h-full rounded-full",Hn[h]),style:{width:`${y}%`}})}),o.jsx("div",{className:"h-8 overflow-hidden text-[11px] leading-tight text-muted-foreground",children:f.advisory?o.jsx("span",{className:"text-na",children:"advisory — not graded"}):f.findings.length>0?o.jsxs("span",{className:"line-clamp-2",children:[f.findings[0],f.findings.length>1&&o.jsxs("span",{className:"text-foreground",children:[" ","· +",f.findings.length-1," more"]})]}):o.jsxs("span",{className:"inline-flex items-center gap-1 text-good",children:[o.jsx(Hf,{size:11})," clean"]})})]})}function c0({verdict:f,overall:h,dir:y,harness:s}){const x=mm(h);return o.jsxs(Ge,{className:"flex flex-col gap-5 p-7 sm:flex-row sm:items-center",children:[o.jsxs("div",{className:pt("flex h-28 w-28 shrink-0 flex-col items-center justify-center rounded-2xl border-2",Vg[x]),children:[o.jsx("span",{className:pt("text-5xl font-black leading-none",ft[x]),children:f.grade}),o.jsx("span",{className:"mt-1 text-sm font-medium text-muted-foreground",children:h===null?"—":`${h}/100`})]}),o.jsxs("div",{className:"min-w-0",children:[o.jsx("h1",{className:"text-xl font-bold leading-snug tracking-tight sm:text-2xl",children:f.sentence}),o.jsxs("div",{className:"mt-2 text-sm text-muted-foreground",children:[o.jsx("span",{className:"font-medium text-foreground",children:Uf(y)})," ·"," ",s]}),o.jsx("div",{className:"mt-1 text-xs text-muted-foreground",children:"deterministic · no model · nothing leaves your machine"})]})]})}function f0({data:f}){var ot,W;const{score:h,verdict:y,recommendations:s,inventory:x,meta:T,adoptability:U,adoptable:O,observations:_,rulesInventory:z,ruleRouting:B}=f,R=h.empty?null:h.overall;_e.useEffect(()=>{document.title=R===null?`vigiles — ${Uf(T.dir)}`:`vigiles — ${h.grade} (${R}) · ${Uf(T.dir)}`},[R,h.grade,T.dir]);const L=Q=>{var w;return((w=y.perRecommendation.find(xt=>xt.index===Q))==null?void 0:w.pointsIfFixed)??0},yt=s.map((Q,w)=>({r:Q,points:L(w)})).sort((Q,w)=>w.points-Q.points);return o.jsxs("div",{className:"mx-auto max-w-5xl px-6 pb-16 pt-10",children:[o.jsx(c0,{verdict:y,overall:R,dir:T.dir,harness:T.harness}),o.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Categories"}),o.jsx("div",{className:"grid grid-cols-2 gap-2.5 sm:grid-cols-3 lg:grid-cols-5",children:h.categories.map(Q=>o.jsx(i0,{c:Q},Q.key))}),o.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:s.length>0?"Do these first":"Fixes"}),yt.length>0?o.jsx("div",{className:"flex flex-col gap-2.5",children:yt.map(({r:Q,points:w},xt)=>o.jsx(u0,{r:Q,points:w},xt))}):o.jsxs(Ge,{className:"flex items-center gap-2 p-4 text-sm text-good",children:[o.jsx(Hf,{size:16})," No deterministic fixes — the structure is clean."]}),(()=>{const Q=h.categories.find(w=>w.key==="Safety");return!Q||Q.advisory||Q.findings.length===0?null:o.jsxs(o.Fragment,{children:[o.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Review — no auto-fix"}),o.jsx("div",{className:"flex flex-col gap-2.5",children:Q.findings.map((w,xt)=>o.jsx(Ge,{className:pt("border-l-4 p-4",ai.bad),children:o.jsxs("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[o.jsxs(qn,{children:[o.jsx(ug,{size:12,className:"mr-1"}),"safety"]}),o.jsx("span",{className:"text-muted-foreground",children:w}),o.jsx("span",{className:"ml-auto text-xs text-muted-foreground",children:"your call — no deterministic fix"})]})},xt))})]})})(),U&&o.jsxs(o.Fragment,{children:[o.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Broken references"}),o.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."}),o.jsx(Jg,{data:U})]}),_&&_.total>0&&o.jsxs(o.Fragment,{children:[o.jsx("h2",{className:"mb-3 mt-9 text-xs font-semibold uppercase tracking-widest text-muted-foreground",children:"Flight recorder"}),o.jsxs("p",{className:"mb-3 text-xs text-muted-foreground",children:["What your harness actually did in real sessions — read off the local",o.jsx("code",{className:"mx-1 font-mono",children:".vigiles/runs.jsonl"})," ledger."]}),o.jsx(l0,{data:_})]}),(z&&z.length>0||B&&(B.segmented>0||(((ot=B.possible)==null?void 0:ot.length)??0)>0||(((W=B.skipped)==null?void 0:W.length)??0)>0))&&o.jsxs(o.Fragment,{children:[o.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",o.jsx(qn,{className:"border-warn text-warn",children:"experimental"})]}),o.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."}),o.jsx(e0,{data:z??[],routing:B})]}),o.jsxs("div",{className:"mt-9 flex flex-wrap items-center gap-x-4 gap-y-1 text-xs text-muted-foreground",children:[o.jsx("span",{className:"font-semibold uppercase tracking-widest",children:"Ships"}),o.jsxs("span",{children:[x.skills," skills"]}),o.jsxs("span",{children:[x.agents," agents"]}),o.jsxs("span",{children:[x.hooks," hooks"]}),o.jsxs("span",{children:[x.commands," commands"]}),o.jsxs("span",{children:["MCP ",x.mcp?"yes":"no"]}),x.untested>0&&o.jsxs("span",{className:ft.warn,children:[x.untested," untested"]})]}),O&&O.surfaces.length>0&&o.jsxs("details",{className:"group mt-6",children:[o.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:[o.jsx(nm,{size:13,className:"transition-transform group-open:rotate-90"}),"Optional — turn ",O.surfaces.length," surface",O.surfaces.length>1?"s":""," into typed specs"]}),o.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."}),o.jsx(Wg,{data:O})]}),o.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 s0={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"'}]},Cf=window.__VIGILES_DATA__,o0=Cf&&typeof Cf=="object"?Cf:s0;Wy.createRoot(document.getElementById("root")).render(o.jsx(_e.StrictMode,{children:o.jsx(f0,{data:o0})}));</script>
|
|
151
|
-
<style rel="stylesheet" crossorigin>/*! tailwindcss v4.3.1 | 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-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:ui-sans-serif, system-ui, 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-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;--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,ui-sans-serif, system-ui, 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{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}.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-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-3{margin-bottom:calc(var(--spacing) * 3)}.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}.inline{display:inline}.inline-flex{display:inline-flex}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-8{height:calc(var(--spacing) * 8)}.h-28{height:calc(var(--spacing) * 28)}.h-full{height:100%}.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}.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)}: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)}.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)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.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-color:var(--border)}.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{background-color:var(--card)}.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)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.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-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}.leading-none{--tw-leading:1;line-height:1}.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-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)}.text-bad{color:var(--bad)}.text-foreground{color:var(--foreground)}.text-good{color:var(--good)}.text-muted-foreground{color:var(--muted)}.text-na{color:var(--na)}.text-warn{color:var(--warn)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.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}.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-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\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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:#0b0f17;--card:#121826;--border:#1e2636;--foreground:#e6e9ef;--muted:#9aa4b2;--good:#16c784;--warn:#ffb020;--bad:#ff5c5c;--na:#6b7280}}@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-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>
|
|
151
|
+
<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-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-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;--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}.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-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-3{margin-bottom:calc(var(--spacing) * 3)}.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}.inline{display:inline}.inline-flex{display:inline-flex}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-8{height:calc(var(--spacing) * 8)}.h-28{height:calc(var(--spacing) * 28)}.h-full{height:100%}.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}.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)}: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)}.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)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.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-color:var(--border)}.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{background-color:var(--card)}.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)}.pt-10{padding-top:calc(var(--spacing) * 10)}.pb-16{padding-bottom:calc(var(--spacing) * 16)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-center{text-align:center}.text-left{text-align:left}.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-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}.leading-none{--tw-leading:1;line-height:1}.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-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)}.text-bad{color:var(--bad)}.text-foreground{color:var(--foreground)}.text-good{color:var(--good)}.text-muted-foreground{color:var(--muted)}.text-na{color:var(--na)}.text-warn{color:var(--warn)}.uppercase{text-transform:uppercase}.italic{font-style:italic}.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,)}.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}.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-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\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-center{align-items:center}.sm\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--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:#0b0f17;--card:#121826;--border:#1e2636;--foreground:#e6e9ef;--muted:#9aa4b2;--good:#16c784;--warn:#ffb020;--bad:#ff5c5c;--na:#6b7280}}@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-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>
|
|
152
152
|
</head>
|
|
153
153
|
<body>
|
|
154
154
|
<div id="root"></div>
|
package/dist/egress.js
CHANGED
|
@@ -48,8 +48,9 @@ function hasBinary(name) {
|
|
|
48
48
|
}).status === 0);
|
|
49
49
|
}
|
|
50
50
|
catch {
|
|
51
|
-
/* v8 ignore
|
|
51
|
+
/* v8 ignore start -- defensive: spawnSync only throws on a fork failure */
|
|
52
52
|
return false;
|
|
53
|
+
/* v8 ignore stop */
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
/**
|
|
@@ -59,9 +60,10 @@ function hasBinary(name) {
|
|
|
59
60
|
* change within a run. `available` is injected so the bwrap probe isn't repeated.
|
|
60
61
|
*/
|
|
61
62
|
function probeEgressAvailable(available) {
|
|
62
|
-
/* v8 ignore
|
|
63
|
+
/* v8 ignore start -- non-Linux has no bwrap/slirp; CI/coverage runs on Linux */
|
|
63
64
|
if (process.platform !== "linux")
|
|
64
65
|
return false;
|
|
66
|
+
/* v8 ignore stop */
|
|
65
67
|
return available && hasBinary("slirp4netns") && hasBinary("nft");
|
|
66
68
|
}
|
|
67
69
|
/** Cached {@link probeEgressAvailable}. `available` = the bwrap-sandbox probe. */
|
package/dist/sandbox.js
CHANGED
|
@@ -55,9 +55,10 @@ function sandboxAvailable() {
|
|
|
55
55
|
return cachedAvailable;
|
|
56
56
|
}
|
|
57
57
|
function probeSandbox() {
|
|
58
|
-
/* v8 ignore
|
|
58
|
+
/* v8 ignore start -- non-Linux has no bwrap; CI/coverage runs on Linux */
|
|
59
59
|
if (process.platform !== "linux")
|
|
60
60
|
return false;
|
|
61
|
+
/* v8 ignore stop */
|
|
61
62
|
try {
|
|
62
63
|
// The capability that fails when user namespaces are disabled is the
|
|
63
64
|
// namespace creation itself (`--unshare-all`), so probe exactly that.
|
|
@@ -67,8 +68,9 @@ function probeSandbox() {
|
|
|
67
68
|
}).status === 0);
|
|
68
69
|
}
|
|
69
70
|
catch {
|
|
70
|
-
/* v8 ignore
|
|
71
|
+
/* v8 ignore start -- defensive: spawnSync only throws on a fork failure */
|
|
71
72
|
return false;
|
|
73
|
+
/* v8 ignore stop */
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vigiles",
|
|
3
|
-
"version": "14.6.
|
|
3
|
+
"version": "14.6.7",
|
|
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",
|
|
@@ -27,6 +27,11 @@
|
|
|
27
27
|
"url": "https://github.com/zernie/vigiles/issues"
|
|
28
28
|
},
|
|
29
29
|
"license": "MIT",
|
|
30
|
+
"workspaces": [
|
|
31
|
+
"packages/*",
|
|
32
|
+
"report",
|
|
33
|
+
"site"
|
|
34
|
+
],
|
|
30
35
|
"bin": {
|
|
31
36
|
"vigiles": "dist/cli.js"
|
|
32
37
|
},
|