PageSourceSearch

https://cernica.ai/_nuxt/B135UR2P.js

js cernica.ai collected 2026-10-05 11:54:36 UTC 2,481 bytes, 1 lines download raw bytes

1import{_ as h}from"./BT-S238n.js";import{f}from"./1WlOtcCr.js";import{u as _,q as g}from"./CrvKzWnC.js";import{d as w,k,u as v,p as b,c as t,K as I,f as s,g as i,F as m,v as p,a,t as n,b as A,w as N,e as x,h as C,_ as D}from"./Dt6xj1kd.js";const S={class:"posts"},T={class:"container"},V={key:0,class:"post-list"},B=["datetime"],R={class:"post-desc"},q={key:0,class:"post-tags"},E={key:1,class:"empty"},F=w({__name:"index",async setup(H){let o,c;const{data:l}=([o,c]=k(()=>_("systemlayers-posts",()=>g("systemlayers").order("date","DESC").all())),o=await o,c(),o);return v({title:"systemlayers · an AI security blog",description:"Research and writing on AI security: how models and agents break, and what we can do about it.",ogTitle:"systemlayers · an AI security blog",ogDescription:"Research and writing on AI security: how models and agents break, and what we can do about it.",ogType:"website",ogUrl:"https://cernica.ai/systemlayers",ogSiteName:"cernica.ai",ogImage:"https://cernica.ai/og-systemlayers.png",ogImageWidth:1200,ogImageHeight:630,twitterCard:"summary_large_image"}),b({link:[{rel:"canonical",href:"https://cernica.ai/systemlayers"}]}),(d,r)=>{const u=h;return a(),t("div",null,[r[1]||(r[1]=I('<section class="hero" data-v-6caff3e2><div class="container" data-v-6caff3e2><p class="eyebrow" data-v-6caff3e2>systemlayers · AI · Security · Research</p><h1 class="hero-title" data-v-6caff3e2> Taking AI systems apart,<br data-v-6caff3e2> layer by layer<span class="cursor" aria-hidden="true" data-v-6caff3e2></span></h1><p class="hero-lead" data-v-6caff3e2> I write about AI security: how models and agents break, how they get attacked, and what actually works to defend them. No hype, just research, real-world lessons, and things you can reproduce yourself. </p></div></section>',1)),s("section",S,[s("div",T,[r[0]||(r[0]=s("p",{class:"eyebrow"},"All posts",-1)),i(l)?.length?(a(),t("ul",V,[(a(!0),t(m,null,p(i(l),e=>(a(),t("li",{key:e.path,class:"post-item"},[s("time",{class:"post-date",datetime:e.date},n(("formatDate"in d?d.formatDate:i(f))(e.date)),9,B),s("div",null,[A(u,{to:e.path,class:"post-title"},{default:N(()=>[x(n(e.title),1)]),_:2},1032,["to"]),s("p",R,n(e.description),1),e.tags?.length?(a(),t("div",q,[(a(!0),t(m,null,p(e.tags,y=>(a(),t("span",{key:y,class:"tag"},"#"+n(y),1))),128))])):C("",!0)])]))),128))])):(a(),t("p",E,"No posts yet. The first one is on its way."))])])])}}}),U=D(F,[["__scopeId","data-v-6caff3e2"]]);export{U as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.