geneseed 4.19.0 → 4.20.0
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/CHANGELOG.md +10 -0
- package/SHIPPED.md +1 -1
- package/harness.config.json +1 -1
- package/package.json +1 -1
- package/web/dist/assets/Activity-nRkdnrgE.js +1 -0
- package/web/dist/assets/ActivityDetail-CMeNtKIN.js +1 -0
- package/web/dist/assets/Dashboard-B5-wUlXC.js +3 -0
- package/web/dist/assets/Docs-QmZs08QG.js +4 -0
- package/web/dist/assets/EmptyState-1sPNleqv.js +1 -0
- package/web/dist/assets/GreenhouseView-tHIvpI6U.js +1 -0
- package/web/dist/assets/Installs-DDWjgFDY.js +3 -0
- package/web/dist/assets/JournalView-DO0pPutM.js +1 -0
- package/web/dist/assets/{KitApply-BAF0gtXb.js → KitApply-DZGqaZpV.js} +1 -1
- package/web/dist/assets/Kits-C1VS-BtR.js +1 -0
- package/web/dist/assets/Laws-Cu3pj44B.js +3 -0
- package/web/dist/assets/Library-CrTK5XsD.js +2 -0
- package/web/dist/assets/Loops-C7DPrKbV.js +2 -0
- package/web/dist/assets/OperatorHudView-BN27gXFS.js +1 -0
- package/web/dist/assets/Personal-Cz2rcqYw.js +1 -0
- package/web/dist/assets/RailCats-DNlJKicm.js +1 -0
- package/web/dist/assets/StackBar-CXARiXzd.js +1 -0
- package/web/dist/assets/Tabs-ChiCgm2F.js +1 -0
- package/web/dist/assets/activity-BGy8Bb_l.js +1 -0
- package/web/dist/assets/drawable-r1qCgRMK.js +1 -0
- package/web/dist/assets/index-BJlfPvpv.css +1 -0
- package/web/dist/assets/index-osXUqzdX.js +2 -0
- package/web/dist/index.html +2 -2
- package/web/dist/assets/Activity-2fa9G39h.js +0 -1
- package/web/dist/assets/ActivityDetail-DIT7ITJw.js +0 -1
- package/web/dist/assets/Dashboard-Ddz0KQF3.js +0 -3
- package/web/dist/assets/Docs-j5cPrsOs.js +0 -4
- package/web/dist/assets/GreenhouseView-BhI_tF4c.js +0 -1
- package/web/dist/assets/Installs-kkE0H4Q2.js +0 -3
- package/web/dist/assets/JournalView-w5adl4Sm.js +0 -1
- package/web/dist/assets/Kits-BteVDSKD.js +0 -1
- package/web/dist/assets/Laws-DNTpf31b.js +0 -3
- package/web/dist/assets/Library-CgX1dJTr.js +0 -1
- package/web/dist/assets/Loops-MhJU2d8B.js +0 -2
- package/web/dist/assets/OperatorHudView-BvLd1zig.js +0 -1
- package/web/dist/assets/Personal-BdN0jlmh.js +0 -1
- package/web/dist/assets/RailCats-D5RVYEjy.js +0 -1
- package/web/dist/assets/Tabs-BPs85vgk.js +0 -1
- package/web/dist/assets/activity-Jw8XcPiP.js +0 -1
- package/web/dist/assets/drawable-DjpisR6c.js +0 -1
- package/web/dist/assets/index-B9-bvRjd.js +0 -2
- package/web/dist/assets/index-DwzZK5uG.css +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-DlYQp10C.js";import{t as r}from"./api-BfpZmUMI.js";import{D as i,G as a,O as o}from"./index-B9-bvRjd.js";import{a as s,n as c,o as l,r as u,t as d}from"./RailCats-D5RVYEjy.js";import{t as f}from"./Markdown-OReRRoEV.js";import{a as p,c as m,i as h,n as g,r as _,t as v}from"./KitApply-BAF0gtXb.js";var y=e(t(),1),b=n(),x=encodeURIComponent,S=`Enabled`,C=`Not enabled`,w=e=>(e||``).split(/\s+/).filter(Boolean).length,T=e=>[...new Set(e.filter(Boolean))],E=e=>(e||``).slice(0,7);function D(e,t){return[S,C].flatMap(n=>e.map(e=>({k:e,on:t.filter(t=>h(t).includes(e.name))})).filter(({on:e})=>e.length>0==(n===S)).map(({k:e,on:t})=>{let r=e.credits||[],i=T(r.map(e=>e.author||e.repo)).join(`, `),a=T(r.map(e=>e.license)).join(`, `);return{name:e.name,desc:e.description,group:n,def:e,meta:[`${(e.skills||[]).length} skills · ${(e.agents||[]).length} agents · ${w(e.rules)} rule words`,t.length?`on in ${t.map(e=>`${e.host} · ${e.scope}`).join(`, `)}`:null,i?`from ${i}${a?` (${a})`:``}`:null].filter(Boolean).join(` — `)}}))}var O=({type:e,names:t,listed:n})=>t.length?(0,b.jsx)(`ul`,{className:`kit-links`,children:t.map(t=>(0,b.jsx)(`li`,{children:n?.has(t)?(0,b.jsx)(`a`,{href:`#/item/${e}/${x(t)}`,children:t}):(0,b.jsx)(`span`,{className:`kit-link-off`,title:`Installed when this kit is on`,children:t})},t))}):(0,b.jsx)(`p`,{className:`panel-note`,children:`None.`});function k({kit:e,installs:t,stage:n,listed:r}){let i=e.credits||[];return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`div`,{className:`reader-tags`,children:[(0,b.jsx)(`span`,{className:`tag acc`,children:`Kit`}),T(i.map(e=>e.license)).map(e=>(0,b.jsx)(`span`,{className:`tag`,children:e},e))]}),(0,b.jsx)(`h2`,{className:`reader-title`,children:e.name}),e.description?(0,b.jsx)(`p`,{className:`reader-lede`,children:e.description}):null,(0,b.jsxs)(`p`,{className:`mono dim reader-src`,children:[`kits/`,e.name,`/`]}),(0,b.jsx)(`hr`,{className:`hr`}),(0,b.jsx)(`h3`,{className:`loop-h2`,children:`Installs`}),t.length?(0,b.jsx)(`ul`,{className:`kit-list kit-box`,"aria-label":`Installs for ${e.name}`,children:t.map(t=>{let r=_(t),i=`${t.host} · ${t.scope}`;return(0,b.jsxs)(`li`,{className:`kit-install`,children:[(0,b.jsxs)(`div`,{className:`kit-row`,children:[(0,b.jsxs)(`div`,{className:`kit-main`,children:[(0,b.jsx)(`b`,{children:i}),(0,b.jsx)(`span`,{className:`mono dim`,children:t.path})]}),(0,b.jsx)(g,{row:t}),(0,b.jsx)(m,{on:n.setOf(t).has(e.name),disabled:r||n.running(t),label:`${e.name} for ${i}`,onToggle:()=>n.toggle(t,e.name)})]}),r&&(0,b.jsx)(`p`,{className:`kit-lock`,children:t.reason||t.error}),(0,b.jsx)(v,{row:t,stage:n})]},t.id)})}):(0,b.jsx)(`p`,{className:`panel-note`,children:`No install yet.`}),i.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`h3`,{className:`loop-h2`,children:`Upstream`}),(0,b.jsx)(`dl`,{className:`loop-facts`,children:i.map(e=>(0,b.jsxs)(y.Fragment,{children:[(0,b.jsx)(`dt`,{children:e.author||e.repo}),(0,b.jsxs)(`dd`,{children:[(0,b.jsx)(`span`,{className:`mono`,children:e.repo}),e.commit?(0,b.jsxs)(`span`,{className:`mono dim`,children:[`@ `,E(e.commit)]}):null,e.compareUrl?(0,b.jsx)(`a`,{href:e.compareUrl,target:`_blank`,rel:`noreferrer`,children:`compare`}):null,e.license?(0,b.jsx)(`span`,{className:`tag`,children:e.license}):null]})]},e.key||e.repo))})]}):null,(0,b.jsx)(`h3`,{className:`loop-h2`,children:`Skills`}),(0,b.jsx)(O,{type:`skill`,names:e.skills||[],listed:r?.skills}),(0,b.jsx)(`h3`,{className:`loop-h2`,children:`Agents`}),(0,b.jsx)(O,{type:`agent`,names:e.agents||[],listed:r?.agents}),e.rules?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsxs)(`h3`,{className:`loop-h2`,children:[`Rules`,` `,(0,b.jsxs)(`span`,{className:`mono dim`,children:[w(e.rules),e.rulesWordBudget?` / ${e.rulesWordBudget}`:``,` words`]})]}),(0,b.jsx)(`div`,{className:`lib-doc detail-doc`,children:(0,b.jsx)(f,{body:e.rules})})]}):null,e.banned?.length?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(`h3`,{className:`loop-h2`,children:`Banned APIs`}),(0,b.jsx)(`ul`,{className:`kit-links`,"aria-label":`Banned APIs`,children:e.banned.map(e=>(0,b.jsx)(`li`,{children:(0,b.jsx)(`span`,{className:`kit-link-off`,children:e})},e))})]}):null]})}function A({item:e,onAction:t,dataRev:n}){let{data:f,error:m}=a(()=>r.kits(),[n]),h=p(f,t),[g,_]=(0,y.useState)(``),[v,S]=(0,y.useState)(`all`),C=f?.kits||[],w=f?.installs||[],T=D(C,w),E=v===`all`?T:T.filter(e=>e.group===v),O=l(E,g),A=!!e&&!!f&&!T.some(t=>t.name===e),j=A?null:T.find(t=>t.name===e)||T[0]||null,{data:M}=a(()=>Promise.all([r.catalog(`skills`),r.catalog(`agents`)]).then(([e,t])=>({skills:new Set((e.items||[]).map(e=>e.name)),agents:new Set((t.items||[]).map(e=>e.name))})).catch(()=>null),[n]),N=m||f?.error;return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(i,{error:N,style:{margin:`0 0 12px`}}),(0,b.jsxs)(`div`,{className:`library`,children:[(0,b.jsxs)(`aside`,{className:`lib-kinds`,"aria-label":`Kits sections`,children:[(0,b.jsxs)(`div`,{className:`lib-title`,children:[(0,b.jsx)(`h1`,{className:`h`,children:`Kits`}),(0,b.jsx)(`span`,{className:`dim`,children:`Optional bundles`})]}),(0,b.jsxs)(`nav`,{className:`kind-list`,"aria-label":`Sections`,children:[(0,b.jsxs)(`a`,{href:`#/kits`,className:`on`,"aria-current":`page`,children:[`Kits`,(0,b.jsx)(`span`,{className:`mono dim`,children:f?C.length:``})]}),(0,b.jsx)(d,{label:`Status`,total:T.length,cats:c(T),cat:v,onChange:S})]})]}),(0,b.jsx)(s,{label:`Kits`,count:g.trim()?`${O.length} of ${E.length}`:f?E.length:``,q:g,onQ:_,matched:O.length,inView:[e],children:f?T.length===0?N?null:(0,b.jsxs)(`div`,{className:`empty`,style:{padding:32},children:[(0,b.jsx)(`div`,{className:`big`,children:`No kits`}),`This Geneseed ships no kit.`]}):(0,b.jsx)(u,{rows:O,activeName:j?.name,hrefOf:e=>`#/kits/${x(e.name)}`}):N?null:(0,b.jsx)(o,{})}),(0,b.jsx)(`article`,{className:`lib-reader`,"aria-label":`Entry`,children:A?(0,b.jsxs)(`div`,{className:`empty`,children:[(0,b.jsx)(`div`,{className:`big`,children:`No such kit`}),`No kit is named “`,e,`”. `,(0,b.jsx)(`a`,{href:`#/kits`,children:`Back to all kits`})]}):j?(0,b.jsx)(k,{kit:j.def,installs:w,stage:h,listed:M},j.name):null})]})]})}export{A as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-DlYQp10C.js";import{t as r}from"./api-BfpZmUMI.js";import{A as i,C as a,D as o,G as s,O as c,Q as l,T as u,d,f,g as p,h as m,l as h,m as g,p as _,u as v,w as ee,x as y}from"./index-B9-bvRjd.js";import{a as b,t as x}from"./Markdown-OReRRoEV.js";var S=e(t(),1);function te({items:e,packs:t,install:n,canApply:r,onAction:i,gateArmed:o}){let s=u(),c=e.filter(e=>e.tier===`doctrine`&&e.active!==!1).map(e=>e.name),l=c.join(`,`),d=ee(),f=n?`${n.host}:${n.scope}:${n.path}`:``,p=a(c),{prune:m}=d,h=e.length>0;(0,S.useEffect)(()=>{h&&m(`rules`,(e,t)=>e===f&&t.base!==p)},[h,f,p,m]);let g=d.get(`rules`,f),_=g&&g.base===p?g.value:c,v=e=>d.put(`rules`,f,e(_),p),y=e=>_.includes(e),b=e=>v(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e]),x=e=>e.rules.some(e=>y(e.addr)),te=e=>{let t=e.rules.map(e=>e.addr),n=e.rules.every(e=>y(e.addr));v(e=>n?e.filter(e=>!t.includes(e)):[...new Set([...e,...t])])},C=e=>{let t=e.rules.filter(e=>y(e.addr)).length;return t?e.active?`${t} of ${e.rules.length} active`:`staged on · ${t} of ${e.rules.length}`:e.active?`staged off`:`not built in`},w=t.flatMap(e=>e.rules.map(e=>e.addr)),T=w.filter(y),E=T.join(`,`)!==l,D=`process.5`,O=c.includes(D)&&!_.includes(D);return{deployedRules:c,isOn:y,toggleRule:b,packOn:x,togglePack:te,packState:C,allRules:w,pickedRules:T,dirty:E,losingConsent:O,applyPacks:async()=>{if(!r||!E)return;let e=t.filter(e=>e.rules.some(e=>y(e.addr))).map(e=>e.pack),a=t.filter(t=>e.includes(t.pack)).flatMap(e=>e.rules.filter(e=>!y(e.addr)).map(e=>e.addr)),c=O?`
|
|
2
|
-
|
|
3
|
-
process 5 carries commit/push consent. Dropping it also removes the git-gate hook, so commits and pushes stop being confirmed at the tool boundary. `+(o?`(Real data loss stays gated: that is Rule IV’s, not the pack’s.)`:`(Rule IV’s deletion gate is off on this install, so real data loss is not asked about either.)`):``,l=T.length?`${T.length} of ${w.length} doctrine rules`:`no doctrine rules`;await s(`Rebuild ${n.host} · ${n.scope} with ${l}? It rebuilds in place, non-destructive.${c}`,{title:`Rebuild with these rules?`,confirmLabel:`Rebuild`})&&await i(`install`,{...n,doctrines:e,excludeRules:a})&&d.startApply(`rules`,f)},revert:()=>d.drop(`rules`,f)}}var C=n();function w({addr:e,isOpen:t,onToggle:n,className:i,style:a,head:o,label:c,rev:l,toggleCol:u=null,renderBody:d,srcLine:f}){let p=(0,S.useId)(),{data:m,error:h,reload:g}=s(()=>t?r.item(`law`,e):Promise.resolve(null),[t,e,l],`law-item`),_=t&&(0,C.jsxs)(`div`,{className:`law-expand`,id:p,children:[h?(0,C.jsxs)(`p`,{children:[(0,C.jsx)(`span`,{role:`alert`,children:h}),` `,(0,C.jsx)(`button`,{type:`button`,className:`btn ghost`,onClick:g,children:`Retry`})]}):m?d(m):(0,C.jsx)(`p`,{className:`dim`,children:`Loading…`}),(0,C.jsx)(`div`,{className:`law-srcline`,children:f})]}),v={type:`button`,onClick:n,"aria-expanded":t,"aria-controls":p,"aria-label":c};return u?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`div`,{className:i,style:a,"data-addr":e,children:[(0,C.jsx)(`button`,{className:`law-disclosure`,...v,children:o}),(0,C.jsx)(`span`,{className:`toggle-col`,children:u})]}),_]}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`button`,{className:i,style:a,"data-addr":e,...v,children:o}),_]})}function T({law:e,isOpen:t,onToggle:n,rev:r,toggleCol:i=null}){let a=(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`span`,{className:`law-no`,children:[(0,C.jsx)(`span`,{className:`x`,"aria-hidden":`true`,children:`›`}),e.no]}),(0,C.jsxs)(`span`,{className:`law-name`,children:[(0,C.jsx)(`span`,{children:e.name}),e.ess?(0,C.jsx)(`span`,{className:`law-princ`,children:e.ess}):null]}),(0,C.jsx)(`span`,{className:`law-latin`,children:e.latin}),(0,C.jsx)(`span`,{className:`law-status ${e.statusTone}`,children:e.status}),(0,C.jsx)(`span`,{className:`law-enf${e.enf===`Hook gate`?` hook`:e.enf===`Gate off`?` gate-off`:``}`,children:e.enf})]});return(0,C.jsx)(w,{addr:e.addr,isOpen:t,onToggle:n,className:`law-row${i?` has-toggle`:``}${t?` on`:``}${e.off?` law-off`:``}`,style:{"--cc":e.c},head:a,label:`${e.no?e.no+` `:``}${e.name}, ${e.status}, ${e.enf}`,rev:r,toggleCol:i,renderBody:t=>(0,C.jsx)(x,{body:t.body||e.ess,links:t.links}),srcLine:`$ geneseed law ${e.addr} · ${e.src}`})}function E({tiers:e,current:t}){return(0,C.jsx)(`div`,{className:`tier-strip`,children:e.map((e,n)=>{let r=(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)(`span`,{className:`tier-k mono`,children:[`RANK `,n+1]}),(0,C.jsxs)(`span`,{className:`tier-top`,children:[(0,C.jsx)(`span`,{className:`tier-name`,children:e.name}),(0,C.jsx)(`span`,{className:`tier-n mono`,children:e.n})]}),(0,C.jsx)(`span`,{className:`tier-bar`,"aria-hidden":`true`,children:(0,C.jsx)(`span`,{style:{width:`${Math.round(e.fill*100)}%`}})}),(0,C.jsx)(`span`,{className:`tier-sub`,children:e.sub}),(0,C.jsx)(`span`,{className:`tier-sub tier-rule`,children:e.rule})]});return e.href?(0,C.jsx)(`a`,{className:`tier`,href:e.href,children:r},e.key):(0,C.jsx)(`div`,{className:`tier${t===e.key?` on`:``}`,children:r},e.key)})})}function D({gates:e,byAddr:t,onJump:n,disarmed:r=()=>!1}){let i=Object.entries(e?.asks||{}).map(([e,t])=>[e,t,r(_(e))]).sort((e,t)=>e[2]-t[2]||t[1]-e[1]),a=Math.max(1,...i.map(([,e])=>e));return(0,C.jsxs)(`section`,{className:`panel`,"aria-labelledby":`gate-asks`,children:[(0,C.jsxs)(`div`,{className:`panel-head`,children:[(0,C.jsx)(`h2`,{id:`gate-asks`,children:`Gate asks`}),(0,C.jsxs)(`span`,{className:`mono dim`,children:[e?.total??0,` in ledger`]})]}),i.length?(0,C.jsx)(`ul`,{className:`gate-list`,children:i.map(([e,r,i])=>{let o=_(e);return(0,C.jsx)(`li`,{children:(0,C.jsxs)(`button`,{type:`button`,className:`gate-row`,onClick:()=>n(o),children:[(0,C.jsxs)(`span`,{className:`gate-top`,children:[(0,C.jsx)(`span`,{className:`gate-name${i?` dim`:``}`,children:t[o]?.name||o}),(0,C.jsx)(`span`,{className:`mono dim`,children:o}),i&&(0,C.jsx)(`span`,{className:`mono off`,children:`off`}),(0,C.jsx)(`span`,{className:`mono gate-n`,children:r})]}),(0,C.jsx)(`span`,{className:`hbar${i?``:` warn`}`,"aria-hidden":`true`,children:(0,C.jsx)(`span`,{style:{width:`${r/a*100}%`}})})]})},e)})}):(0,C.jsx)(`p`,{className:`sub`,children:`No gate has asked yet.`}),(0,C.jsx)(`p`,{className:`panel-note`,children:e?.standing_down?.length?`Standing down: ${e.standing_down.join(`, `)}.`:`None standing down.`})]})}function O({packs:e,sel:t,canApply:n,install:r,gateArmed:i}){let{isOn:a,packOn:o,togglePack:s,allRules:c,pickedRules:l,dirty:u,losingConsent:d,applyPacks:f,revert:p}=t,m=Math.max(1,...e.map(e=>e.rules.length));return(0,C.jsxs)(`section`,{className:`panel`,"aria-labelledby":`doc-packs`,children:[(0,C.jsxs)(`div`,{className:`panel-head`,children:[(0,C.jsx)(`h2`,{id:`doc-packs`,children:`Doctrine packs`}),(0,C.jsxs)(`span`,{className:`mono dim`,children:[e.filter(o).length,`/`,e.length,` on`]})]}),e.length?(0,C.jsx)(`ul`,{className:`pack-list`,children:e.map(e=>{let t=e.rules.filter(e=>a(e.addr)).length;return(0,C.jsxs)(`li`,{className:o(e)?``:`off`,children:[(0,C.jsx)(`span`,{className:`pl-name`,title:e.desc,children:e.title}),(0,C.jsx)(`span`,{className:`hbar`,"aria-hidden":`true`,children:(0,C.jsx)(`span`,{style:{width:`${t/m*100}%`}})}),(0,C.jsx)(`span`,{className:`mono pl-n`,children:t}),n?(0,C.jsx)(`button`,{type:`button`,className:`sw-toggle${o(e)?` on`:``}${t&&t<e.rules.length?` mixed`:``}`,role:`checkbox`,"aria-checked":e.rules.length&&t===e.rules.length?`true`:t?`mixed`:`false`,"aria-label":`${e.title} pack`,onClick:()=>s(e)}):null]},e.pack)})}):(0,C.jsx)(`p`,{className:`sub`,children:`This install predates the three-tier constitution.`}),n&&e.length>0&&(0,C.jsxs)(C.Fragment,{children:[d&&(0,C.jsxs)(`p`,{className:`pack-warn`,role:`status`,"aria-live":`polite`,children:[`Dropping `,(0,C.jsx)(`b`,{children:`process 5`}),` also removes the commit/push consent gate:`,` `,(0,C.jsx)(`code`,{children:`git commit`}),` and `,(0,C.jsx)(`code`,{children:`git push`}),` stop being confirmed at the tool boundary.`,` `,i?`Real data loss stays gated by Rule IV.`:`Rule IV’s deletion gate is off on this install too.`]}),(0,C.jsxs)(`div`,{className:`pack-apply`,children:[(0,C.jsxs)(`button`,{type:`button`,className:`btn`,onClick:f,disabled:!u,children:[`Apply`,u?` (${l.length}/${c.length} rules)`:``]}),(0,C.jsx)(`button`,{type:`button`,className:`btn ghost`,onClick:p,disabled:!u,children:`Revert`})]}),(0,C.jsx)(`p`,{className:`panel-note`,role:`status`,"aria-live":`polite`,children:u?`Not applied yet. Apply rebuilds ${r.host} · ${r.scope} once, with every change together.`:`Matches the deployed install. Changing a pack rebuilds it.`})]})]})}function ne(e){let t=[];for(let n of e){if(n.tier!==`doctrine`)continue;let e=t.find(e=>e.pack===n.pack);e||(e={pack:n.pack,title:n.packTitle||n.pack,desc:n.packDesc||``,active:n.packActive!==!1,rules:[]},t.push(e));let r=g(n.title);e.rules.push({addr:n.name,no:`${n.pack} ${n.name.split(`.`)[1]||``}`,name:r.name,latin:r.latin,ess:n.summary||``,enf:f(n.name),c:p[n.pack]||`var(--text-3)`,src:`doctrines/${n.pack}.md`})}return t}function re({selected:e,overview:t,setup:n,onAction:a,dataRev:_}){let ee=u(),{data:x,error:w}=s(()=>r.catalog(`laws`),[_],`catalog:laws`),{data:re}=y(_),[k,A]=(0,S.useState)(`all`),[j,M]=(0,S.useState)(``),N=e||null,P=e=>l(N===e?`#/laws`:`#/item/law/${encodeURIComponent(e)}`),[ie,ae]=(0,S.useState)(0),F=(0,S.useRef)(null);(0,S.useEffect)(()=>{if(!e)return;let t=requestAnimationFrame(()=>{let t=document.querySelector(`[data-addr="${e}"]`);if(!t)return;let n=F.current===e;F.current=null;let r=t.getBoundingClientRect();if(n||r.top<80||r.bottom>window.innerHeight){let e=window.matchMedia?.(`(prefers-reduced-motion: reduce)`).matches;t.scrollIntoView?.({block:`center`,behavior:e?`auto`:`smooth`})}n&&(t.classList.remove(`law-flash`),t.offsetWidth,t.classList.add(`law-flash`))});return()=>cancelAnimationFrame(t)},[e,ie,x]);let I=x?.items||[],L=ne(I),R=e=>t?.install?.[v[e].key]!==!1,oe=R(`IV`),z=t?.install,B=!!(z&&a),V=te({items:I,packs:L,install:z,canApply:B,onAction:a,gateArmed:oe}),{deployedRules:H,isOn:U,toggleRule:se,packOn:ce,packState:le,allRules:W}=V;if(w)return(0,C.jsx)(o,{error:w});if(!x)return(0,C.jsx)(c,{});let G={ontology:x.nouns?.ontology||`Ethos`,law:x.nouns?.law||`Dictate`,laws:x.nouns?.laws||`Dictates`,doctrines:x.nouns?.doctrines||`Doctrines`},K=I.filter(e=>e.tier===`ontology`).map(e=>({addr:e.name,no:``,name:e.title,latin:``,ess:``,status:`Always`,statusTone:`ok`,enf:`Instruction`,c:`var(--text-3)`,src:`ontology/universal.md`})),q=I.filter(e=>(e.tier??`invariant`)===`invariant`).map(e=>{let n=e.klass&&m[e.klass]?e.klass:`craft`,r=g(e.title);return{addr:e.name,no:e.name,name:r.name,latin:r.latin,ess:e.summary||``,retired:r.retired,status:r.retired?`Retired`:`Active`,statusTone:r.retired?``:`ok`,enf:r.retired?`None`:f(e.name,t?.install),cat:n,c:m[n].c,off:r.retired,src:`laws/universal.md`}}),ue=e=>{let t=U(e.addr),n=H.includes(e.addr),r=t===n?t?`Active`:`Off`:t?`Staged on`:`Staged off`;return{...e,off:!t,status:r,statusTone:t?`ok`:t===n?``:`warn`}},de=L.filter(e=>e.active).flatMap(e=>e.rules.filter(e=>!H.includes(e.addr)).map(e=>e.addr)),fe=async e=>{if(!B)return;let{key:t,label:n}=v[e],r=n.toLowerCase(),i=!R(e),o=`${z.host} · ${z.scope}`,s=V.dirty?` Your staged doctrine changes are not part of this rebuild; they stay staged.`:``;await ee((i?`Re-arm the ${r} on ${o}? ${h[e].arm} It rebuilds in place, non-destructive.`:`Switch the ${r} off on ${o}? ${h[e].off} It rebuilds in place, non-destructive.`)+s,{title:i?`Re-arm the ${r}?`:`Switch the ${r} off?`,confirmLabel:i?`Re-arm`:`Switch off`})&&a(`install`,{...z,[t]:i})},J=j.trim().toLowerCase(),Y=e=>!J||`${e.addr} ${e.name} ${e.latin} ${e.ess}`.toLowerCase().includes(J),pe=e=>{let t=_e[e],n=String(e).includes(`.`);(n&&k===`invariants`||!n&&k===`doctrines`)&&A(`all`),t&&!Y(t)&&M(``),F.current=e,ae(e=>e+1),l(`#/item/law/${encodeURIComponent(e)}`)},X=q.filter(e=>!e.retired).length,Z=H.length,Q=re?.stats,me={ethos:{name:G.ontology,n:K.length,fill:1,sub:`${K.length} sections`},invariants:{name:G.laws,n:X,fill:q.length?X/q.length:0,sub:q.length>X?`${X} active · ${q.length-X} retired`:`${X} active`},doctrines:{name:G.doctrines,n:Z,fill:W.length?Z/W.length:0,sub:`${Z} rules · ${L.filter(e=>e.active).length} of ${L.length} packs`},yours:{name:`Your rules`,n:Q?.rules??0,fill:Q?Q.rules/Q.max_rules:0,sub:Q?`${Q.rules} of ${Q.max_rules} · ${Q.tokens}/${Q.max_tokens} tok`:`user-rules.md`,href:`#/personal/rules`}},he=e=>{if(e===`—`)return`Nothing outranks them.`;let t=e.replace(`{{LAW}}`,G.law);return`${t[0].toUpperCase()}${t.slice(1)}.`},ge=d.map(e=>({key:e.key,...me[e.key],rule:he(e.against)})),_e=Object.fromEntries([...q,...L.flatMap(e=>e.rules)].map(e=>[e.addr,e])),ve=[[`all`,`All`,q.length+W.length],[`invariants`,G.laws,q.length],[`doctrines`,G.doctrines,W.length]],ye=k===`all`||k===`invariants`,be=k===`all`||k===`doctrines`,xe=(e,t)=>(0,C.jsxs)(`div`,{className:`band-head`,role:`presentation`,children:[(0,C.jsx)(`h2`,{className:`tier-h`,children:e}),(0,C.jsx)(`span`,{className:`mono dim`,children:t})]}),$=q.filter(Y),Se=(ye?$.length:0)+(be?L.reduce((e,t)=>e+t.rules.filter(Y).length,0):0);return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{className:`page-head`,children:(0,C.jsxs)(`div`,{children:[(0,C.jsx)(`h1`,{className:`h`,children:`Constitution`}),(0,C.jsx)(`p`,{className:`sub`,children:`What the agent follows on every turn. Ranked: a lower rank may tighten a higher one, never repeal it. Open any rule to read its canonical text.`})]})}),(0,C.jsx)(E,{tiers:ge,current:k}),(0,C.jsxs)(`div`,{className:`split`,children:[(0,C.jsxs)(`section`,{className:`panel flush law-wrap${B?` with-toggle`:``}`,"aria-label":`Rules`,children:[K.length>0&&(0,C.jsxs)(C.Fragment,{children:[xe(G.ontology,`ontology/universal.md`),K.map(e=>(0,C.jsx)(T,{law:e,rev:_,isOpen:N===e.addr,onToggle:()=>P(e.addr)},e.addr))]}),(0,C.jsxs)(`div`,{className:`law-toolbar`,children:[(0,C.jsx)(i,{"aria-label":`Show`,children:ve.map(([e,t,n])=>(0,C.jsxs)(`button`,{type:`button`,className:k===e?`on`:``,"aria-pressed":k===e,onClick:()=>A(e),children:[t,` `,(0,C.jsx)(`span`,{className:`mono`,children:n})]},e))}),(0,C.jsx)(b,{className:`law-filter`,value:j,onChange:M,placeholder:`Filter rules`,label:`Filter rules`})]}),(0,C.jsxs)(`div`,{className:`law-rowhead`,children:[(0,C.jsx)(`span`,{children:`No.`}),(0,C.jsx)(`span`,{children:`Rule`}),(0,C.jsx)(`span`,{children:`Latin name`}),(0,C.jsx)(`span`,{children:`Status`}),(0,C.jsx)(`span`,{children:`Enforced by`})]}),ye&&$.length>0&&(0,C.jsxs)(C.Fragment,{children:[xe(G.laws,`laws/universal.md`),$.map(e=>(0,C.jsx)(T,{law:e,rev:_,isOpen:N===e.addr,onToggle:()=>P(e.addr),toggleCol:!B||e.retired?null:v[e.addr]?(0,C.jsx)(`button`,{type:`button`,className:`sw-toggle${R(e.addr)?` on`:``}`,role:`switch`,"aria-checked":R(e.addr),"aria-label":v[e.addr].label,onClick:()=>fe(e.addr)}):(0,C.jsx)(`span`,{className:`no-gate`,title:`Enforced by its text alone: no hook gate`,children:`no gate`})},e.addr))]}),be&&L.map(e=>{let t=e.rules.filter(Y);return t.length?(0,C.jsxs)(`div`,{className:`pack-wrap${ce(e)?``:` pack-off`}`,children:[(0,C.jsxs)(`div`,{className:`band-head pack-head`,children:[(0,C.jsx)(`h2`,{className:`tier-h`,style:{"--cc":p[e.pack]},children:e.title}),(0,C.jsx)(`span`,{className:`pack-desc dim`,children:e.desc}),(0,C.jsx)(`span`,{className:`pack-state mono`,children:le(e)})]}),!e.active&&!B&&(0,C.jsxs)(`div`,{className:`pack-enable`,children:[`$ geneseed-build --doctrines`,` `,L.filter(t=>t.active||t.pack===e.pack).map(e=>e.pack).join(`,`),de.length>0&&` --exclude-rules ${de.join(`,`)}`]}),t.map(e=>(0,C.jsx)(T,{law:ue(e),rev:_,isOpen:N===e.addr,onToggle:()=>P(e.addr),toggleCol:B?(0,C.jsx)(`button`,{type:`button`,className:`sw-toggle${U(e.addr)?` on`:``}`,role:`switch`,"aria-checked":U(e.addr),"aria-label":`${e.name} rule`,onClick:()=>se(e.addr)}):null},e.addr))]},e.pack):null}),Se===0&&(0,C.jsxs)(`div`,{className:`empty`,style:{padding:32},children:[(0,C.jsx)(`div`,{className:`big`,children:J?`No matching rules`:`Nothing in this tier`}),J?(0,C.jsxs)(C.Fragment,{children:[`Nothing matches “`,j.trim(),`”.`]}):(0,C.jsx)(C.Fragment,{children:`This install predates the tier.`})]})]}),(0,C.jsxs)(`aside`,{className:`aside-stack`,children:[(0,C.jsx)(O,{packs:L,sel:V,canApply:B,install:z,gateArmed:oe}),(0,C.jsx)(D,{gates:n?.gates,byAddr:_e,onJump:pe,disarmed:e=>!!v[e]&&!R(e)})]})]})]})}export{re as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-DlYQp10C.js";import{t as r}from"./api-BfpZmUMI.js";import{n as i,t as a}from"./sections-ChwaobfW.js";import{D as ee,G as o,Q as s,R as c,T as te,_ as l,b as ne,v as u}from"./index-B9-bvRjd.js";import{a as d,i as re,o as f,r as ie,s as ae,t as p}from"./RailCats-D5RVYEjy.js";import{t as oe}from"./Markdown-OReRRoEV.js";var m=e(t(),1),h=n();function g({load:e}){let t=String(e||`lazy`).toLowerCase();return(0,h.jsx)(`span`,{className:`mf-load mf-load-${t===`eager`?`ok`:t===`exclude`?`warn`:`muted`}`,children:t})}function _({entries:e}){return e.length?(0,h.jsx)(`table`,{className:`mf-entries`,children:(0,h.jsx)(`tbody`,{children:e.map((e,t)=>{let n=String(e.load).toLowerCase()===`exclude`;return(0,h.jsxs)(`tr`,{children:[(0,h.jsx)(`td`,{className:`mf-path mono ${n?`mf-struck`:``}`,children:e.path||`·`}),(0,h.jsx)(`td`,{className:`mf-load-cell`,children:(0,h.jsx)(g,{load:e.load})}),(0,h.jsx)(`td`,{className:`mf-edesc`,children:e.description||``})]},`${e.path||t}-${t}`)})})}):null}function v({wiki:e}){let t=Array.isArray(e.entries)?e.entries:[],n=Array.isArray(e.protected)?e.protected:[];return(0,h.jsxs)(`div`,{className:`mf-vault`,children:[(0,h.jsxs)(`div`,{className:`mf-vault-head`,children:[(0,h.jsx)(`div`,{className:`mf-vault-name`,children:e.name||`wiki`}),e.path?(0,h.jsx)(`code`,{className:`mf-vault-path mono`,children:e.path}):null]}),e.description?(0,h.jsx)(`p`,{className:`mf-vault-desc`,children:e.description}):null,(0,h.jsxs)(`div`,{className:`mf-roles`,children:[e.conventions?(0,h.jsxs)(`span`,{className:`mf-role`,children:[(0,h.jsx)(c,{name:`skill`,className:`glyph`}),` conventions: `,e.conventions]}):null,e.inbox?(0,h.jsxs)(`span`,{className:`mf-role`,children:[(0,h.jsx)(c,{name:`notebook`,className:`glyph`}),` inbox: `,e.inbox]}):null,n.map(e=>(0,h.jsxs)(`span`,{className:`mf-role mf-role-danger`,children:[(0,h.jsx)(c,{name:`law`,className:`glyph`}),` protected: `,e]},e))]}),(0,h.jsx)(_,{entries:t})]})}function y({body:e}){let[t,n]=(0,m.useState)(!1);return e?(0,h.jsxs)(`div`,{className:`mf-raw`,children:[(0,h.jsxs)(`button`,{className:`mf-raw-toggle`,onClick:()=>n(e=>!e),children:[(0,h.jsx)(c,{name:`chevron`,className:`glyph mf-caret ${t?`on`:``}`}),`Raw source`]}),t?(0,h.jsx)(`pre`,{className:`mf-raw-pre`,children:e.replace(/^```json\n|\n```$/g,``)}):null]}):null}function b({manifest:e,body:t,name:n}){if(!e)return(0,h.jsx)(`pre`,{className:`mf-raw-pre`,children:(t||``).replace(/^```json\n|\n```$/g,``)});if(e.kind===`wiki`){let n=e.wikis||[];return n.length?(0,h.jsxs)(`div`,{className:`mf-doc`,children:[n.map((e,t)=>(0,h.jsx)(v,{wiki:e},e.name||t)),(0,h.jsx)(y,{body:t})]}):(0,h.jsxs)(`div`,{className:`mf-empty`,children:[(0,h.jsx)(`div`,{className:`mf-empty-title`,children:`No wiki declared yet`}),(0,h.jsxs)(`p`,{children:[`A wiki is your machine-wide knowledge base — an Obsidian vault or any folder of linked markdown the agent reads from and writes back to. Declare one in`,` `,(0,h.jsx)(`code`,{className:`mono`,children:`geneseed-wiki.jsonc`}),` to switch it on.`]}),(0,h.jsx)(`a`,{className:`btn ghost sm`,href:`#/docs/wiki`,children:`How to configure a wiki`}),(0,h.jsx)(y,{body:t})]})}let r=e.context||[];return r.length?(0,h.jsxs)(`div`,{className:`mf-doc`,children:[(0,h.jsx)(_,{entries:r}),(0,h.jsx)(y,{body:t})]}):(0,h.jsxs)(`div`,{className:`mf-empty`,children:[(0,h.jsx)(`div`,{className:`mf-empty-title`,children:`No project context declared`}),(0,h.jsxs)(`p`,{children:[`Point the agent at the docs for this project by adding entries to`,` `,(0,h.jsx)(`code`,{className:`mono`,children:n||`context.json`}),` — each with a`,` `,(0,h.jsx)(`code`,{className:`mono`,children:`path`}),`, a `,(0,h.jsx)(`code`,{className:`mono`,children:`load`}),` mode (eager or lazy), and a description.`]}),(0,h.jsx)(y,{body:t})]})}var x={fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},S={advocate:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M16 50h14M23 50V14`}),(0,h.jsx)(`path`,{className:`ag-wave ag-f`,d:`M23 15h20l-5 7.5 5 7.5H23z`}),(0,h.jsx)(`path`,{className:`ag-call`,d:`M47 38a6 6 0 0 1 0 8M51 35a11 11 0 0 1 0 14`})]}),architect:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`rect`,{x:`14`,y:`14`,width:`36`,height:`32`,rx:`2`,opacity:`.3`}),(0,h.jsx)(`path`,{className:`ag-draw`,pathLength:`100`,d:`M20 40V22h12v9h12v9z`}),(0,h.jsx)(`path`,{className:`ag-draw ag-late`,pathLength:`100`,d:`M32 31v9`}),(0,h.jsx)(`path`,{d:`M14 52h36M14 50v4M50 50v4`,opacity:`.5`})]}),developer:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`rect`,{className:`ag-f`,x:`10`,y:`14`,width:`44`,height:`36`,rx:`4`}),(0,h.jsx)(`path`,{d:`M10 22h44`,opacity:`.5`}),(0,h.jsx)(`circle`,{cx:`15`,cy:`18`,r:`1`}),(0,h.jsx)(`circle`,{cx:`19`,cy:`18`,r:`1`}),(0,h.jsx)(`path`,{className:`ag-nudge-l`,d:`M24 30l-6 6 6 6`}),(0,h.jsx)(`path`,{className:`ag-nudge-r`,d:`M40 30l6 6-6 6`}),(0,h.jsx)(`path`,{className:`ag-blink`,d:`M30 42h5`})]}),"devops-engineer":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M32 32c-5-9-18-9-18 0s13 9 18 0c5-9 18-9 18 0s-13 9-18 0z`,opacity:`.3`}),(0,h.jsx)(`path`,{className:`ag-draw`,pathLength:`100`,d:`M32 32c-5-9-18-9-18 0s13 9 18 0c5-9 18-9 18 0s-13 9-18 0z`}),(0,h.jsx)(`circle`,{className:`ag-pulse ag-f`,cx:`32`,cy:`32`,r:`3`})]}),"docker-expert":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`rect`,{className:`ag-rise ag-f`,x:`14`,y:`36`,width:`10`,height:`9`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-late ag-f`,x:`27`,y:`36`,width:`10`,height:`9`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-later ag-f`,x:`40`,y:`36`,width:`10`,height:`9`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-late ag-f`,x:`20`,y:`25`,width:`10`,height:`9`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-later ag-f`,x:`34`,y:`25`,width:`10`,height:`9`}),(0,h.jsx)(`path`,{d:`M8 52c5 0 5-3 10-3s5 3 10 3 5-3 10-3 5 3 10 3 5-3 10-3`,opacity:`.5`})]}),docs:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{className:`ag-f`,d:`M16 10h22l8 8v36H16z`}),(0,h.jsx)(`path`,{d:`M38 10v8h8`,opacity:`.5`}),(0,h.jsx)(`path`,{className:`ag-draw`,pathLength:`100`,d:`M21 26h18`}),(0,h.jsx)(`path`,{className:`ag-draw ag-late`,pathLength:`100`,d:`M21 33h18`}),(0,h.jsx)(`path`,{className:`ag-draw ag-later`,pathLength:`100`,d:`M21 40h11`}),(0,h.jsx)(`g`,{className:`ag-write`,children:(0,h.jsx)(`path`,{d:`M40 44l12-20 3 2-12 20-4 1z`})})]}),empiricist:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M12 12v40h40`,opacity:`.5`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-f`,x:`18`,y:`36`,width:`6`,height:`14`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-late ag-f`,x:`29`,y:`28`,width:`6`,height:`22`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-later ag-f`,x:`40`,y:`20`,width:`6`,height:`30`}),(0,h.jsx)(`path`,{className:`ag-draw`,pathLength:`100`,d:`M16 34l12-8 10 3 12-14`})]}),explorer:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`circle`,{cx:`32`,cy:`32`,r:`18`,opacity:`.5`}),(0,h.jsx)(`path`,{d:`M32 10v4M32 50v4M10 32h4M50 32h4`}),(0,h.jsxs)(`g`,{className:`ag-search`,children:[(0,h.jsx)(`path`,{className:`ag-f`,d:`M32 18l5 14h-10z`}),(0,h.jsx)(`path`,{d:`M32 18l5 14-5 14-5-14z`})]}),(0,h.jsx)(`circle`,{cx:`32`,cy:`32`,r:`2`})]}),framer:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`g`,{className:`ag-frame`,children:(0,h.jsx)(`path`,{d:`M12 22V12h10M42 12h10v10M52 42v10H42M22 52H12V42`})}),(0,h.jsx)(`circle`,{className:`ag-pulse`,cx:`32`,cy:`32`,r:`7`,opacity:`.6`}),(0,h.jsx)(`path`,{d:`M32 22v6M32 36v6M22 32h6M36 32h6`,opacity:`.6`}),(0,h.jsx)(`circle`,{cx:`32`,cy:`32`,r:`1.5`})]}),historian:(0,h.jsxs)(`g`,{className:`ag-turn`,children:[(0,h.jsx)(`path`,{d:`M20 12h24M20 52h24`}),(0,h.jsx)(`path`,{d:`M22 12c0 12 20 12 20 20s-20 8-20 20M42 12c0 12-20 12-20 20s20 8 20 20`}),(0,h.jsx)(`path`,{className:`ag-drain ag-f`,d:`M25 17h14c-1 6-5 9-7 11-2-2-6-5-7-11z`}),(0,h.jsx)(`path`,{className:`ag-fill ag-f`,d:`M24 49h16c-1-5-5-8-8-9-3 1-7 4-8 9z`})]}),operator:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M12 42a20 20 0 0 1 40 0`,opacity:`.4`}),(0,h.jsx)(`path`,{className:`ag-f`,d:`M40 24a20 20 0 0 1 12 18`,strokeWidth:`4`,opacity:`.7`}),(0,h.jsx)(`path`,{d:`M16 30l3 2M32 22v4M48 30l-3 2`,opacity:`.6`}),(0,h.jsx)(`g`,{className:`ag-gauge`,children:(0,h.jsx)(`path`,{d:`M32 42l10-13`})}),(0,h.jsx)(`circle`,{cx:`32`,cy:`42`,r:`3`}),(0,h.jsx)(`path`,{d:`M22 50h20`,opacity:`.5`})]}),pragmatist:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M32 14v36M22 50h20`}),(0,h.jsx)(`circle`,{cx:`32`,cy:`14`,r:`2`}),(0,h.jsxs)(`g`,{className:`ag-tilt`,children:[(0,h.jsx)(`path`,{d:`M14 18h36`}),(0,h.jsx)(`path`,{className:`ag-f`,d:`M14 18l-5 12h10zM50 18l-5 12h10z`})]})]}),"kubernetes-specialist":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`circle`,{cx:`32`,cy:`32`,r:`16`}),(0,h.jsx)(`path`,{d:`M32 8v13M32 43v13M8 32h13M43 32h13M15 15l9 9M40 40l9 9M49 15l-9 9M24 40l-9 9`,opacity:`.6`}),(0,h.jsx)(`circle`,{className:`ag-pulse ag-f`,cx:`32`,cy:`32`,r:`5`})]}),"memory-curator":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`rect`,{className:`ag-rise ag-f`,x:`17`,y:`16`,width:`14`,height:`20`,rx:`1`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-late ag-f`,x:`25`,y:`12`,width:`14`,height:`24`,rx:`1`}),(0,h.jsx)(`rect`,{className:`ag-rise ag-later ag-f`,x:`33`,y:`18`,width:`14`,height:`18`,rx:`1`}),(0,h.jsx)(`path`,{d:`M12 32h40v16a2 2 0 0 1-2 2H14a2 2 0 0 1-2-2z`}),(0,h.jsx)(`path`,{d:`M26 40h12`,opacity:`.6`})]}),researcher:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`circle`,{className:`ag-f`,cx:`30`,cy:`34`,r:`16`}),(0,h.jsx)(`path`,{d:`M14 34h32M30 18c-6 5-6 27 0 32`,opacity:`.5`}),(0,h.jsx)(`ellipse`,{className:`ag-spin`,cx:`30`,cy:`34`,rx:`7`,ry:`16`}),(0,h.jsx)(`g`,{className:`ag-orbit`,children:(0,h.jsx)(`circle`,{cx:`50`,cy:`14`,r:`3`})})]}),reviewer:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M12 18h30M12 26h40M12 34h24M12 42h34`,opacity:`.4`}),(0,h.jsx)(`path`,{className:`ag-mark`,d:`M42 30l3 3 6-6`}),(0,h.jsxs)(`g`,{className:`ag-sweep`,children:[(0,h.jsx)(`circle`,{className:`ag-f`,cx:`22`,cy:`30`,r:`9`}),(0,h.jsx)(`path`,{d:`M29 37l8 8`,strokeWidth:`3`})]})]}),performance:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M26 10h8M30 10v6M44 18l3-3`}),(0,h.jsx)(`circle`,{className:`ag-f`,cx:`30`,cy:`34`,r:`18`}),(0,h.jsx)(`path`,{d:`M30 19v3M45 34h-3M30 49v-3M15 34h3`,opacity:`.6`}),(0,h.jsx)(`g`,{className:`ag-orbit`,children:(0,h.jsx)(`path`,{d:`M30 34V22`})}),(0,h.jsx)(`circle`,{cx:`30`,cy:`34`,r:`2`})]}),security:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{className:`ag-ripple`,d:`M32 8l18 6v13c0 12-8 21-18 26-10-5-18-14-18-26V14z`}),(0,h.jsx)(`path`,{className:`ag-f`,d:`M32 8l18 6v13c0 12-8 21-18 26-10-5-18-14-18-26V14z`}),(0,h.jsx)(`path`,{className:`ag-draw`,pathLength:`100`,d:`M24 31l6 6 11-11`})]}),skeptic:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{className:`ag-f`,d:`M12 14h40v28H30l-10 8v-8h-8z`}),(0,h.jsxs)(`g`,{className:`ag-lean`,children:[(0,h.jsx)(`path`,{d:`M27 23a5 5 0 1 1 7 4.5c-1.5.8-2 2-2 3.5v1`}),(0,h.jsx)(`circle`,{cx:`32`,cy:`36`,r:`1.2`})]})]}),"spring-boot-engineer":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M22 20a16 16 0 1 0 20 0`}),(0,h.jsx)(`path`,{className:`ag-pulse`,d:`M32 12v18`}),(0,h.jsx)(`path`,{className:`ag-sway ag-f`,d:`M32 50c0-8 5-12 13-12 0 8-5 12-13 12z`})]}),"spring-reviewer":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M12 18h26M12 26h18M12 34h22M12 42h14`,opacity:`.4`}),(0,h.jsx)(`path`,{className:`ag-sway ag-f`,d:`M42 28c0-8 4-12 11-12 0 8-4 12-11 12z`}),(0,h.jsxs)(`g`,{className:`ag-sweep`,children:[(0,h.jsx)(`circle`,{className:`ag-f`,cx:`24`,cy:`32`,r:`9`}),(0,h.jsx)(`path`,{d:`M31 39l8 8`,strokeWidth:`3`})]})]}),"spring-security":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{className:`ag-ripple`,d:`M22 28v-6a10 10 0 0 1 20 0v6`}),(0,h.jsx)(`path`,{d:`M22 28v-6a10 10 0 0 1 20 0v6`}),(0,h.jsx)(`rect`,{className:`ag-f`,x:`16`,y:`28`,width:`32`,height:`24`,rx:`4`}),(0,h.jsx)(`circle`,{cx:`32`,cy:`38`,r:`3`}),(0,h.jsx)(`path`,{className:`ag-draw`,pathLength:`100`,d:`M32 41v6`})]}),"react-engineer":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`g`,{className:`ag-spin`,children:[(0,h.jsx)(`ellipse`,{cx:`32`,cy:`32`,rx:`20`,ry:`8`}),(0,h.jsx)(`ellipse`,{cx:`32`,cy:`32`,rx:`20`,ry:`8`,transform:`rotate(60 32 32)`}),(0,h.jsx)(`ellipse`,{cx:`32`,cy:`32`,rx:`20`,ry:`8`,transform:`rotate(120 32 32)`})]}),(0,h.jsx)(`circle`,{className:`ag-pulse ag-f`,cx:`32`,cy:`32`,r:`4`})]}),"react-reviewer":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`g`,{opacity:`.4`,children:[(0,h.jsx)(`ellipse`,{cx:`30`,cy:`30`,rx:`18`,ry:`7`}),(0,h.jsx)(`ellipse`,{cx:`30`,cy:`30`,rx:`18`,ry:`7`,transform:`rotate(60 30 30)`}),(0,h.jsx)(`ellipse`,{cx:`30`,cy:`30`,rx:`18`,ry:`7`,transform:`rotate(120 30 30)`})]}),(0,h.jsxs)(`g`,{className:`ag-sweep`,children:[(0,h.jsx)(`circle`,{className:`ag-f`,cx:`30`,cy:`30`,r:`8`}),(0,h.jsx)(`path`,{d:`M36 36l9 9`,strokeWidth:`3`})]})]}),steward:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M12 52h40`,opacity:`.5`}),(0,h.jsx)(`path`,{d:`M22 52c2-3 6-4 10-4s8 1 10 4`,opacity:`.4`}),(0,h.jsxs)(`g`,{className:`ag-grow`,children:[(0,h.jsx)(`path`,{d:`M32 50V26`}),(0,h.jsx)(`path`,{className:`ag-sway ag-f`,d:`M32 32c0-9 6-14 15-14 0 9-6 14-15 14z`}),(0,h.jsx)(`path`,{className:`ag-sway ag-late ag-f`,d:`M32 38c0-7-5-11-12-11 0 7 5 11 12 11z`})]})]}),tester:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{d:`M26 10h12M28 10v14L15 48a3 3 0 0 0 2.6 4.5h28.8A3 3 0 0 0 49 48L36 24V10`}),(0,h.jsx)(`path`,{className:`ag-f ag-slosh`,d:`M20 40h24l4.5 8.5H15.5z`}),(0,h.jsx)(`circle`,{className:`ag-bubble`,cx:`28`,cy:`44`,r:`2`}),(0,h.jsx)(`circle`,{className:`ag-bubble ag-late`,cx:`35`,cy:`46`,r:`1.5`}),(0,h.jsx)(`circle`,{className:`ag-bubble ag-later`,cx:`31`,cy:`42`,r:`1`})]}),"user-advocate":(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`circle`,{cx:`24`,cy:`20`,r:`6`}),(0,h.jsx)(`path`,{d:`M12 50c0-9 5-15 12-15 4 0 7 1.5 9 4`}),(0,h.jsx)(`path`,{className:`ag-beat ag-f`,d:`M44 52s-10-6-10-12.5a5 5 0 0 1 10-1.5 5 5 0 0 1 10 1.5C54 46 44 52 44 52z`}),(0,h.jsx)(`path`,{className:`ag-twinkle`,d:`M48 22v4M46 24h4`})]}),visionary:(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`g`,{className:`ag-rays`,opacity:`.5`,children:(0,h.jsx)(`path`,{d:`M32 6v6M32 52v6M6 32h6M52 32h6M13.6 13.6l4.2 4.2M46.2 46.2l4.2 4.2M13.6 50.4l4.2-4.2M46.2 17.8l4.2-4.2`})}),(0,h.jsx)(`path`,{className:`ag-f ag-pulse`,d:`M32 16l4.7 10.4 11.3 1.2-8.5 7.6 2.4 11.1L32 40.6l-9.9 5.7 2.4-11.1-8.5-7.6 11.3-1.2z`}),(0,h.jsx)(`path`,{className:`ag-twinkle`,d:`M50 8v6M47 11h6`})]})},C=(0,h.jsxs)(h.Fragment,{children:[(0,h.jsx)(`path`,{className:`ag-f`,d:`M32 12l17 10v20L32 52 15 42V22z`}),(0,h.jsx)(`circle`,{className:`ag-pulse`,cx:`32`,cy:`32`,r:`6`})]});function se({name:e,size:t=64}){return(0,h.jsxs)(`svg`,{className:`agent-glyph`,viewBox:`0 0 64 64`,width:t,height:t,"aria-hidden":`true`,...x,children:[(0,h.jsx)(`circle`,{className:`ag-disc`,cx:`32`,cy:`32`,r:`31`}),(0,h.jsx)(`circle`,{className:`ag-ring`,cx:`32`,cy:`32`,r:`31`,strokeWidth:`1`,strokeDasharray:`2 7`}),S[e]||C]})}function w(e,t){return e===`memory`?`memory/${t}`:e===`notebook`?`notebook/${t}`:e===`wiki`?`geneseed-wiki.jsonc`:e===`config`?t:`${e}/${t}.md`}function ce({section:e,source:t}){return(0,h.jsxs)(`div`,{className:`lib-doc-empty`,children:[(0,h.jsx)(c,{name:i[e].icon,className:`glyph`}),(0,h.jsxs)(`span`,{children:[`This entry is part of the `,i[e].label.toLowerCase(),` convention; see`,` `,(0,h.jsx)(`code`,{className:`mono`,children:t}),`. It has no standalone per-entry document.`]})]})}var T=(e,t)=>t||(e&&a.includes(e)?e:a[0]),E=encodeURIComponent;function D(e){let t=e=>l[e.klass]?e.klass:`personal`,n=u.flatMap(n=>e.filter(e=>t(e)===n).map(e=>({...e,cat:n,group:l[n].label,groupC:l[n].c})));return{rows:n,cats:u.map(e=>({key:e,label:l[e].label,c:l[e].c,n:n.filter(t=>t.cat===e).length})).filter(e=>e.n>0)}}function O({overview:e,section:t,selected:n,dataRev:c,lock:u,base:g,onRulesChanged:_}){let v=te(),[y,x]=(0,m.useState)(()=>T(t,u)),[S,C]=(0,m.useState)(``),[O,k]=(0,m.useState)(`all`),[A,j]=(0,m.useState)(``),[le,ue]=(0,m.useState)(t);if(t!==le){ue(t);let e=T(t,u);e!==y&&(x(e),C(``),k(`all`))}let{data:M,error:de,reload:N}=o(()=>r.catalog(y),[y,c],`catalog`),P=M?.section===y&&M?.items||[],F=y===`skills`,I=F?D(P):null,L=n||(F?I.rows[0]:P[0])?.name||null,R=L?P.find(e=>e.name===L):null,z=R?.type||i[y].type,{data:B,error:V}=o(()=>L?r.item(z,L):Promise.resolve(null),[y,L,z,c]),H=V?null:B,U=A||de||V,fe=L?{name:L,title:H?.title||L,desc:H?.desc||``}:null,W=R||fe,G=e?.counts||{},K=F?I.rows.filter(e=>O===`all`||e.cat===O):P,q=F?1/0:50,J=S.trim().toLowerCase(),Y=J?f(K,J):K.slice(0,q),pe=!J&&O===`all`&&L&&!Y.some(e=>e.name===L)?[...Y,...P.filter(e=>e.name===L)]:Y,me=e=>g?`${g}/${E(e.name)}`:`#/item/${e.type||i[y].type}/${E(e.name)}`,he=async()=>{let e=W?.name;if(e&&await v(`Forget the memory fact "${e}"? It leaves the index and moves to memory/archive/ (geneseed memory rm --archived --purge deletes it for good).`,{title:`Forget this fact?`,confirmLabel:`Forget`,tone:`danger`})){j(``);try{await r.memoryDelete(e)}catch(t){j(`Could not forget "${e}": ${t.message}`);return}s(g||`#/section/memory`),N()}},ge=async()=>{let e=W?.name;if(e&&await v(`Promote "${e}" into a standing rule? It is appended to user-rules.md as a trial rule (a month of probation), and the memory fact moves to memory/archive/ so the lesson isn't loaded twice.`,{title:`Promote to a rule?`,confirmLabel:`Promote`})){j(``);try{let t=await r.rules();await r.rulesPromote({name:e,fingerprint:t.fingerprint,delete_memory:!0}),ne(),_?.(),s(`#/personal/rules`)}catch(e){j(`Could not promote: ${e.message}`),N()}}},X=a.reduce((e,t)=>e+(G[t]??0),0),_e=X-(G.skills??0)-(G.agents??0),Z=e=>`${X?e/X*100:0}%`,ve=H?.status||W?.status,Q=y===`skills`?l[R?.klass]:null,$=i[y].label;return(0,h.jsxs)(h.Fragment,{children:[U?(0,h.jsx)(ee,{error:U,style:{margin:`0 0 12px`}}):null,(0,h.jsxs)(`div`,{className:`library${u?` locked`:``}`,children:[u?null:(0,h.jsxs)(`aside`,{className:`lib-kinds`,"aria-label":`Library kinds`,children:[(0,h.jsxs)(`div`,{className:`lib-title`,children:[(0,h.jsx)(`h1`,{className:`h`,children:`Library`}),(0,h.jsx)(`span`,{className:`dim`,children:`What the agent knows`})]}),(0,h.jsxs)(`div`,{className:`stackbar thin`,"aria-hidden":`true`,children:[(0,h.jsx)(`span`,{className:`sb-invariants`,style:{width:Z(G.skills??0)}}),(0,h.jsx)(`span`,{className:`sb-doctrines`,style:{width:Z(G.agents??0)}}),(0,h.jsx)(`span`,{className:`sb-rest`,style:{width:Z(_e)}})]}),(0,h.jsx)(`nav`,{className:`kind-list`,"aria-label":`Kinds`,children:a.map(e=>(0,h.jsxs)(m.Fragment,{children:[(0,h.jsxs)(`a`,{href:`#/section/${e}`,className:y===e?`on`:``,"aria-current":y===e?`page`:void 0,children:[i[e].label,(0,h.jsx)(`span`,{className:`mono dim`,children:G[e]??``})]}),e===y&&F&&(0,h.jsx)(p,{label:`Skill types`,total:P.length,cats:I.cats,cat:O,onChange:k})]},e))})]}),(0,h.jsxs)(d,{label:$,count:J?`${Y.length} of ${K.length}`:K.length,q:S,onQ:C,matched:Y.length,inView:[y,n],children:[(0,h.jsx)(ie,{rows:pe,activeName:W?.name,hrefOf:me}),!J&&P.length>q&&(0,h.jsxs)(`div`,{className:`lib-more`,children:[`Showing `,q,` of `,P.length,`; type to search the rest.`]}),M?.section===y&&P.length===0&&(0,h.jsxs)(`div`,{className:`empty`,style:{padding:32},children:[(0,h.jsx)(`div`,{className:`big`,children:`Nothing here yet`}),`Once the harness produces entries they appear here.`]})]}),(0,h.jsx)(`article`,{className:`lib-reader`,"aria-label":`Entry`,children:W?(0,h.jsxs)(h.Fragment,{children:[(0,h.jsxs)(`div`,{className:`reader-tags`,children:[(0,h.jsx)(`span`,{className:`tag acc`,children:$.replace(/s$/,``)}),Q?(0,h.jsx)(`span`,{className:`tag`,children:Q.label}):null,H?.kit??W.kit?(0,h.jsx)(re,{name:H?.kit??W.kit}):null,(0,h.jsx)(ae,{status:ve})]}),(0,h.jsxs)(`div`,{className:`reader-head`,children:[(0,h.jsx)(`h2`,{className:`reader-title`,children:H?.title||W.title||W.name}),y===`agents`?(0,h.jsx)(se,{name:W.name}):null]}),(H?.desc||W.desc)&&(0,h.jsx)(`p`,{className:`reader-lede`,children:H?.desc||W.desc}),(0,h.jsx)(`p`,{className:`mono dim reader-src`,children:H?.source||W.source||(V?null:w(y,W.name))}),y===`memory`&&W.name!==`MEMORY`&&W.name!==`README`&&(0,h.jsxs)(`div`,{className:`row gap-8`,children:[(0,h.jsx)(`button`,{type:`button`,className:`btn ghost sm`,onClick:ge,title:`Turn this lesson into a standing trial rule in user-rules.md`,children:`Promote to rule`}),(0,h.jsx)(`button`,{type:`button`,className:`btn ghost sm`,onClick:he,children:`Forget this fact`})]}),(0,h.jsx)(`hr`,{className:`hr`}),V?(0,h.jsxs)(`p`,{className:`sub`,children:[`No `,$.replace(/s$/,``).toLowerCase(),` named `,(0,h.jsx)(`em`,{children:W.name}),` could be read in this install.`]}):W?.kind===`manifest`||H?.manifest!==void 0?H?(0,h.jsx)(b,{manifest:H.manifest,body:H.body,name:W.name}):(0,h.jsx)(`p`,{className:`sub`,children:`Loading…`}):H?.body?(0,h.jsx)(`div`,{className:`lib-doc detail-doc`,children:(0,h.jsx)(oe,{body:H.body,links:H.links||[]})}):H===null&&L?(0,h.jsx)(`p`,{className:`sub`,children:`Loading…`}):(0,h.jsx)(ce,{section:y,source:w(y,W.name)})]}):(0,h.jsxs)(`div`,{className:`empty`,children:[(0,h.jsx)(`div`,{className:`big`,children:`Select an entry`}),`Pick something from the list to read it.`]})})]})]})}export{O as default,D as splitSkills};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-DlYQp10C.js";import{t as r}from"./api-BfpZmUMI.js";import{D as i,G as a,O as o,X as s,Z as c}from"./index-B9-bvRjd.js";import{t as l}from"./usePoll-bDFN-Hr6.js";import{a as u,n as d,o as f,r as p,t as m}from"./RailCats-D5RVYEjy.js";import{t as h}from"./Markdown-OReRRoEV.js";var g=e(t(),1),_={x:260,y:190},v=110,y=28,b=14,x=44,S=e=>e*Math.PI/180,C=e=>Math.round(e*10)/10,w=(e,t=v,n=_)=>({x:C(n.x+t*Math.cos(S(e))),y:C(n.y+t*Math.sin(S(e)))}),T=e=>e/v*(180/Math.PI)+3,E=(e,t,n,r=0)=>`M${t.x},${t.y} A${e},${e} 0 ${r} 1 ${n.x},${n.y}`,D=C(w(205).x-6),O=e=>e.length*6.4,k=e=>({x:e.x-O(e.name)/2,y:e.y-7,w:O(e.name),h:14}),A=(e,t)=>e.x<t.x+t.w&&t.x<e.x+e.w&&e.y<t.y+t.h&&t.y<e.y+e.h,j=(e,t)=>e.some((n,r)=>[...e.slice(r+1),...t.filter(e=>!e.gate)].some(e=>A(k(n),k(e))));function M(e){return e?.gate===`human`?e.gateOn?.length?`Human gate on ${e.gateOn.join(`, `)}`:`Human gate`:null}function N(e,t=[]){let n=e=>t.find(t=>t.name===e),r=e=>n(e)?.effect??null,i=e=>M(n(e)),a=e.loops||[],o=a.find(e=>e.iteration);if(!o||o.nodes.length>8)return P(e,r,i);let s=Math.max(...e.nodes.map(e=>a.filter(t=>t.nodes.includes(e)).length)),c=a.filter(e=>e!==o);if(s>3||c.some(e=>!e.nodes.every(e=>o.nodes.includes(e))))return P(e,r,i);let l=o.nodes[0],u=new Set(e.edges.filter(e=>e.to===l).map(e=>e.from)),d=new Map;for(let e of[...c].sort((e,t)=>e.nodes.length-t.nodes.length))for(let t of e.nodes.slice(1))t!==l&&!u.has(t)&&!d.has(t)&&d.set(t,e);let f=o.nodes.filter(e=>!d.has(e));if(f.length<2||c.some(e=>d.has(e.nodes[0])))return P(e,r,i);let p=360/f.length,m=f.map((e,t)=>({name:e,a:-90+t*p,r:y})),h=m.findIndex(e=>r(e.name)===`mutate`);h>=0&&m.splice(h,0,{name:`validate`,a:m[h].a-p/2,r:b,gate:!0});let g=m.map(e=>({name:e.name,...w(e.a),r:e.r,effect:e.gate?null:r(e.name),gate:!!e.gate,inner:!1,human:e.gate?null:i(e.name)})),S=m.map((e,t)=>{let n=m[(t+1)%m.length],r=(t+1===m.length?n.a+360:n.a)-T(n.r)-2,i=e.a+T(e.r);return{d:E(v,w(i),w(r),+(r-i>180)),kind:`ring`}}),D=[],k=new Map;for(let e of c)k.set(e.nodes[0],[...k.get(e.nodes[0])||[],e]);for(let[e,t]of k){let n=m.find(t=>t.name===e),a=w(n.a),o=t.length>1;t.sort((e,t)=>e.nodes.length-t.nodes.length).forEach((e,t)=>{let s=w(n.a+(o?t?18:-18:0),v+(o?54:44)),c=Math.atan2(s.y-a.y,s.x-a.x)*(180/Math.PI),l=e.nodes.filter(t=>d.get(t)===e),u=e=>l.map((t,n)=>({name:t,...w(c+(n-(l.length-1)/2)*e,x,s)})),f=105;for(;f<150&&j(u(f),g);)f+=5;u(f).forEach(({name:e,...t})=>{g.push({name:e,...t,r:y,effect:r(e),gate:!1,inner:!0,human:i(e)})});let p=c+180;S.push({d:E(x,w(p+42,x,s),w(p+138,x,s)),kind:`inner`}),S.push({d:E(x,w(p+222,x,s),w(p+318,x,s)),kind:`inner`});let m=`${e.nodes.join(e.nodes.length===2?` ⇄ `:` → `)} · max ${e.max}`,h={lx:s.x,ly:s.y+x+20,anchor:`middle`};if(o){let e=s.x>=_.x,t=Math.max(x,...l.map(e=>{let t=g.find(t=>t.name===e);return Math.abs(t.x-s.x)+y}));h={lx:C(s.x+(e?t+8:-t-8)),ly:C(s.y+4),anchor:e?`start`:`end`}}D.push({loop:e.name,cx:s.x,cy:s.y,r:x,label:m,...h})})}let A=w(205).y,N=e.nodes.filter(e=>!o.nodes.includes(e)),F=N.map((e,t)=>({name:e,x:40,y:C(A-44*(N.length-1-t)),human:i(e)})),I=e.edges.find(e=>e.to===`$close`)?.from,L=g.find(e=>e.name===I),R=L?{from:I,x:L.x+200,y:L.y-30,d:`M${L.x+y},${L.y-6} C${L.x+90},${L.y-40} ${L.x+170},${L.y-40} ${L.x+200},${L.y-30}`}:null,z=Math.max(540,...g.map(e=>e.x+e.r+8),...D.map(e=>e.cx+e.r+8),...D.map(e=>e.anchor===`start`?e.lx+O(e.label)+8:e.lx+O(e.label)/2+8)),B=Math.max(300,...g.map(e=>e.y+e.r+12),...D.map(e=>Math.max(e.cy+e.r,e.ly)+12));return{mode:`ring`,width:Math.ceil(z),height:Math.ceil(B),center:{x:_.x,y:_.y,r:v},nodes:g,arcs:S,inner:D,entry:F,exit:R}}function P(e,t,n){let r=e.loops||[],i=e=>36+16*r.filter(t=>t!==e&&t.nodes.every(t=>e.nodes.includes(t))).length,a=Math.max(y,...r.map(i))+30,o=new Map(e.nodes.map((e,t)=>[e,60+t*100])),s=e.nodes.map(e=>({name:e,x:o.get(e),y:a,r:y,effect:t(e),gate:!1,inner:!1,human:n(e)})),c=e.nodes.slice(1).map((t,n)=>({d:`M${o.get(e.nodes[n])+y},${a} L${o.get(t)-y-4},${a}`,kind:`flow`})),l=r.map(e=>{let t=i(e),n=Math.min(...e.nodes.map(e=>o.get(e))),r=Math.max(...e.nodes.map(e=>o.get(e))),s={x:n-t,y:a-t,w:r-n+2*t,h:2*t};return c.push({d:`M${r},${s.y+s.h} L${n+4},${s.y+s.h}`,kind:`flow`}),{loop:e.name,label:`${e.name} · max ${e.max}`,box:s}});return{mode:`flow`,width:60+e.nodes.length*100,height:2*a,center:null,nodes:s,arcs:c,inner:l,entry:[],exit:null}}var F=n();function I({x:e,y:t,label:n}){return(0,F.jsxs)(`g`,{className:`lr-human`,children:[(0,F.jsx)(`title`,{children:n}),(0,F.jsx)(`circle`,{cx:e,cy:t,r:`9`}),(0,F.jsx)(`circle`,{cx:e,cy:t-2.4,r:`2.6`,className:`lr-human-fig`}),(0,F.jsx)(`path`,{d:`M${e-4.6},${t+5.6} a4.6,4.6 0 0 1 9.2,0 Z`,className:`lr-human-fig`})]})}function L({graph:e,bricks:t,onSelect:n,highlight:r}){let i=N(e,t),a=(e.loops||[]).find(e=>e.iteration),o=e=>t=>{(t.type===`click`||t.key===`Enter`||t.key===` `)&&(t.preventDefault(),n?.(e))};return(0,F.jsxs)(`svg`,{className:`loop-ring`,viewBox:`0 0 ${i.width} ${i.height}`,role:`img`,"aria-label":`${e.name} loop: ${e.nodes.join(`, `)}`,children:[(0,F.jsx)(`defs`,{children:[`ring`,`inner`,`flow`].map(e=>(0,F.jsx)(`marker`,{id:`lr-arrow-${e}`,markerWidth:`10`,markerHeight:`10`,refX:`7`,refY:`4`,orient:`auto`,children:(0,F.jsx)(`path`,{d:`M0,0 L8,4 L0,8 Z`,className:`lr-head-${e}`})},e))}),i.mode===`ring`&&i.inner.map(e=>(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`circle`,{cx:e.cx,cy:e.cy,r:e.r,className:`lr-inner`}),(0,F.jsx)(`text`,{x:e.lx,y:e.ly,textAnchor:e.anchor,className:`lr-sub lr-good`,children:e.label})]},e.loop)),i.mode===`flow`&&i.inner.map(e=>(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`rect`,{x:e.box.x,y:e.box.y,width:e.box.w,height:e.box.h,rx:`14`,className:`lr-box`}),(0,F.jsx)(`text`,{x:e.box.x+10,y:e.box.y-6,className:`lr-sub lr-good`,children:e.label})]},e.loop)),i.arcs.map((e,t)=>(0,F.jsx)(`path`,{d:e.d,className:`lr-${e.kind}`,markerEnd:`url(#lr-arrow-${e.kind})`},t)),i.entry.length>0&&(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`path`,{d:`M40,${i.entry.at(-1).y} L${D},${i.entry.at(-1).y}`,className:`lr-flow`,markerEnd:`url(#lr-arrow-flow)`}),i.entry.map(e=>(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`text`,{x:e.x,y:e.y-10,className:`lr-lbl`,children:e.name}),(0,F.jsx)(`text`,{x:e.x,y:e.y+18,className:`lr-sub`,children:`setup · 1×`}),e.human?(0,F.jsx)(I,{x:e.x-14,y:e.y-14,label:e.human}):null]},e.name))]}),i.nodes.map(e=>e.gate?(0,F.jsxs)(`g`,{className:`lr-gate`,children:[(0,F.jsx)(`title`,{children:`validate — the engine scores the change before the first mutate step`}),(0,F.jsx)(`circle`,{cx:e.x,cy:e.y,r:e.r}),(0,F.jsx)(`text`,{x:e.x,y:e.y+5,textAnchor:`middle`,children:`⛨`}),(0,F.jsx)(`text`,{x:e.x+20,y:e.y-10,className:`lr-sub lr-warn`,children:`validate`})]},e.name):(0,F.jsxs)(`g`,{className:`lr-node${e.inner?` inner`:``}${e.effect===`mutate`?` mutate`:``}${e.name===r?` current`:``}`,"aria-current":e.name===r?`step`:void 0,role:`button`,tabIndex:0,"aria-label":`${e.name} brick${e.human?`, ${e.human.toLowerCase()}`:``}`,onClick:o(e.name),onKeyDown:o(e.name),children:[(0,F.jsx)(`circle`,{cx:e.x,cy:e.y,r:e.r}),(0,F.jsx)(`text`,{x:e.x,y:e.y+4,textAnchor:`middle`,children:e.name}),e.human?(0,F.jsx)(I,{x:e.x+e.r*.74,y:e.y-e.r*.74,label:e.human}):null]},e.name)),i.exit&&(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`path`,{d:i.exit.d,className:`lr-flow`,markerEnd:`url(#lr-arrow-flow)`}),(0,F.jsx)(`text`,{x:i.exit.x+6,y:i.exit.y+4,className:`lr-lbl`,children:`close`}),(0,F.jsx)(`text`,{x:i.exit.x-90,y:i.exit.y-10,textAnchor:`middle`,className:`lr-sub`,children:`done`})]}),i.center&&a&&(0,F.jsxs)(`g`,{children:[(0,F.jsx)(`text`,{x:i.center.x,y:i.center.y-4,textAnchor:`middle`,className:`lr-title`,children:e.name}),(0,F.jsxs)(`text`,{x:i.center.x,y:i.center.y+16,textAnchor:`middle`,className:`lr-sub lr-acc`,children:[`iterations · max `,a.max]})]})]})}var R=5e3,z=[`prudent`,`balanced`,`aggressive`],B={running:`acc`,awaiting:`warn`,unreadable:`bad`},V=e=>!!e.graph;function H(){let[e,t]=(0,g.useState)(null),[n,i]=(0,g.useState)(null),[a,o]=(0,g.useState)(0);return l(e=>r.activeLoops().then(n=>e()&&(t(n),i(null)),t=>e()&&i(t.message)),R,[a]),{loops:e?.loops??null,error:n,onPreset:(e,t)=>r.setLoopPreset(e,t).then(()=>o(e=>e+1),e=>i(e.message))}}function ee({history:e}){return e.length?(0,F.jsx)(`div`,{className:`loop-history`,children:(0,F.jsxs)(`table`,{className:`tbl`,children:[(0,F.jsx)(`thead`,{children:(0,F.jsx)(`tr`,{children:[`iteration`,`intent`,`declared`,`actual`,`decision`,`tests`].map(e=>(0,F.jsx)(`th`,{children:e},e))})}),(0,F.jsx)(`tbody`,{children:e.map(e=>(0,F.jsxs)(`tr`,{children:[(0,F.jsx)(`td`,{className:`num`,children:e.iteration}),(0,F.jsx)(`td`,{children:e.intent}),(0,F.jsx)(`td`,{className:`num`,children:e.declared}),(0,F.jsx)(`td`,{className:`num`,children:e.actual}),(0,F.jsx)(`td`,{children:e.decision}),(0,F.jsx)(`td`,{children:e.tests})]},e.iteration))})]})}):(0,F.jsx)(`p`,{className:`panel-note`,children:`No iteration finished yet.`})}function te({loop:e,bricks:t,onPreset:n}){let r=V(e)?(e.graph.loops||[]).find(e=>e.iteration):null;return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`div`,{className:`reader-tags`,children:[(0,F.jsx)(`span`,{className:`tag acc`,children:`Active loop`}),(0,F.jsx)(`span`,{className:`tag${B[e.status]?` ${B[e.status]}`:``}`,children:e.status})]}),(0,F.jsx)(`h2`,{className:`reader-title`,children:e.title}),(0,F.jsxs)(`p`,{className:`mono dim reader-src`,children:[e.branch,` · `,e.root]}),V(e)?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`p`,{className:`reader-lede`,children:[`Iteration `,e.iteration,r?` / ${r.max}`:``,` · at `,e.node]}),e.awaiting?(0,F.jsxs)(`p`,{className:`loop-run-wait t-warn`,children:[(0,F.jsxs)(`b`,{children:[`Awaiting `,e.awaiting.kind,e.awaiting.kind===`gate`?` at ${e.awaiting.node}`:``]}),` `,`— Answer in the agent's session.`]}):null,(0,F.jsxs)(`label`,{className:`panel-note loop-run-preset`,children:[`preset`,(0,F.jsx)(`select`,{className:`sel`,"aria-label":`Preset for ${e.title}`,value:e.preset,onChange:t=>n(e.root,t.target.value),children:z.map(e=>(0,F.jsx)(`option`,{children:e},e))})]}),(0,F.jsx)(`hr`,{className:`hr`}),(0,F.jsx)(`div`,{className:`loop-graph`,children:(0,F.jsx)(L,{graph:e.graph,bricks:t,highlight:e.node})}),(0,F.jsx)(`h3`,{className:`loop-h2`,children:`Iterations`}),(0,F.jsx)(ee,{history:e.history})]}):(0,F.jsx)(`p`,{className:`reader-lede`,children:e.status===`unreadable`?`Its LOOP.md cannot be read, so there is no state to show.`:`Its LOOP.md is gone: the loop closed and its state went with it.`})]})}var U=encodeURIComponent,W=s.loops.map(e=>[e,c[e]]),G={architecture:`Architecture`,tests:`Tests`,development:`Development`,refactoring:`Refactoring`,"day-to-day":`Day-to-day`},ne={project:`Project`,global:`Global`,shipped:`Shipped`},re={templates:`Categories`,bricks:`Origins`,active:`Statuses`},ie=[[`awaiting`,`Awaiting`],[`running`,`Running`],[`done`,`Done · stopped`],[`stopped`,`Done · stopped`],[`finished`,`Finished · unreadable`],[`unreadable`,`Finished · unreadable`]];function K(e,t){let n=e.filter(e=>e.startsWith(`${t} (`)).at(-1);return n?/(overrides \w+)\)$/.exec(n)?.[1]:null}var q=(e,t,n)=>n.flatMap(([n,r])=>e.filter(e=>t(e)===n).map(e=>({...e,group:r})));function J(e,t){let n=new Set(t.filter(e=>e.gate===`human`).map(e=>e.name));return q(e.map(e=>({...e,desc:e.description,human:e.graph.nodes.some(e=>n.has(e))})),e=>G[e.graph.category]?e.graph.category:`other`,[...Object.entries(G),[`other`,`Other`]])}function Y(e,t){return q(e.map(e=>({...e,desc:e.description,override:K(t,e.name)})),e=>e.origin,Object.entries(ne))}function X(e){return q(e.map(e=>({...e,name:e.root,desc:e.branch})),e=>e.status,ie)}var Z=(e,t)=>(0,F.jsx)(`span`,{className:`tag${e?` ${e}`:``}`,children:t},t),Q={templates:e=>e.human?Z(`human`,`human gate`):null,bricks:e=>[e.effect===`mutate`?Z(`warn`,`mutate`):null,M(e)?Z(`human`,`human gate`):null,e.override?Z(`acc`,e.override):null,e.available===!1?Z(`bad`,`unavailable`):null],active:e=>Z(B[e.status],e.status)};function ae({name:e,brick:t,override:n,on:r}){let i=`loop-brick${r?` on`:``}${!t||t.available===!1?` dimmed`:``}`;return t?(0,F.jsxs)(`li`,{className:i,id:`brick-${e}`,children:[(0,F.jsx)(`b`,{children:(0,F.jsx)(`a`,{href:`#/loops/bricks/${U(e)}`,children:e})}),Z(t.effect===`mutate`?`warn`:``,t.effect),(0,F.jsx)(`span`,{className:`mono dim`,children:t.agent||t.skill}),(0,F.jsx)(`span`,{className:`panel-note`,children:t.outcomes.join(` · `)}),M(t)?Z(`human`,M(t).toLowerCase()):null,n?Z(`acc`,n):null]}):(0,F.jsxs)(`li`,{className:i,id:`brick-${e}`,children:[(0,F.jsx)(`b`,{children:e}),(0,F.jsx)(`span`,{className:`panel-note`,children:`Not in the catalogue: this template cannot run as is.`})]})}function oe({t:e,bricks:t,overridden:n}){let[r,i]=(0,g.useState)(null),a=new Map(t.map(e=>[e.name,e]));return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`div`,{className:`reader-tags`,children:[(0,F.jsx)(`span`,{className:`tag acc`,children:`Template`}),G[e.graph.category]?Z(``,G[e.graph.category]):null,e.human?Z(`human`,`human gate`):null]}),(0,F.jsx)(`h2`,{className:`reader-title`,children:e.name}),e.description?(0,F.jsx)(`p`,{className:`reader-lede`,children:e.description}):null,(0,F.jsxs)(`p`,{className:`mono dim reader-src`,children:[`loops/`,e.name,`.json · `,e.origin]}),(0,F.jsx)(`hr`,{className:`hr`}),(0,F.jsx)(`div`,{className:`loop-graph`,children:(0,F.jsx)(L,{graph:e.graph,bricks:t,onSelect:e=>{i(e),document.getElementById(`brick-${e}`)?.scrollIntoView?.({behavior:`smooth`,block:`nearest`})}})}),e.graph.rules?.length?(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`h3`,{className:`loop-h2`,children:`Rules`}),(0,F.jsx)(`ul`,{className:`loop-rules`,"aria-label":`Rules every brick follows`,children:e.graph.rules.map(e=>(0,F.jsx)(`li`,{children:e},e))})]}):null,(0,F.jsx)(`h3`,{className:`loop-h2`,children:`Bricks`}),(0,F.jsx)(`ul`,{className:`loop-brick-list`,"aria-label":`Bricks in ${e.name}`,children:e.graph.nodes.map(e=>(0,F.jsx)(ae,{name:e,brick:a.get(e),override:K(n,e),on:r===e},e))})]})}function $(e){return`---\n${[[`name`,e.name],[`description`,e.description],[`effect`,e.effect],[e.agent?`agent`:`skill`,e.agent||e.skill],[`gate`,e.gate],[`gateOn`,e.gateOn?.join(`, `)],[`outcomes`,e.outcomes.join(`, `)]].filter(([,e])=>e).map(([e,t])=>`${e}: ${t}`).join(`
|
|
2
|
-
`)}\n---\n${e.body}`}function se({b:e}){let[t,n]=(0,g.useState)(!1),r=[[`effect`,Z(e.effect===`mutate`?`warn`:``,e.effect)],[e.agent?`agent`:`skill`,(0,F.jsx)(`span`,{className:`mono`,children:e.agent||e.skill},`who`)],[`outcomes`,e.outcomes.map(e=>Z(``,e))],[`gate`,M(e)?Z(`human`,M(e).toLowerCase()):`none`],[`origin`,e.override?`${e.origin}, ${e.override}`:e.origin],[`available`,e.available===!1?(0,F.jsxs)(`span`,{className:`t-warn`,children:[`no — `,e.reason]},`why`):`yes`]];return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsxs)(`div`,{className:`reader-tags`,children:[(0,F.jsx)(`span`,{className:`tag acc`,children:`Brick`}),Q.bricks(e)]}),(0,F.jsx)(`h2`,{className:`reader-title`,children:e.name}),e.description?(0,F.jsx)(`p`,{className:`reader-lede`,children:e.description}):null,(0,F.jsxs)(`p`,{className:`mono dim reader-src`,children:[`bricks/`,e.name,`.md`]}),(0,F.jsx)(`dl`,{className:`loop-facts`,children:r.map(([e,t])=>(0,F.jsxs)(g.Fragment,{children:[(0,F.jsx)(`dt`,{children:e}),(0,F.jsx)(`dd`,{children:t})]},e))}),(0,F.jsx)(`hr`,{className:`hr`}),(0,F.jsx)(`div`,{className:`row gap-8 loop-src-bar`,children:(0,F.jsx)(`button`,{type:`button`,className:`btn ghost sm`,"aria-expanded":t,onClick:()=>n(!t),children:t?`Hide source`:`View source`})}),t?(0,F.jsx)(`pre`,{className:`loop-brick-src`,"aria-label":`Source`,children:$(e)}):(0,F.jsx)(`div`,{className:`lib-doc detail-doc`,children:(0,F.jsx)(h,{body:e.body})})]})}function ce({problems:e}){if(!e?.length)return null;let t=e.length;return(0,F.jsxs)(`div`,{className:`panel loop-problems`,role:`status`,"aria-label":`Catalogue files skipped`,children:[(0,F.jsxs)(`b`,{className:`t-warn`,children:[t,` catalogue `,t===1?`problem`:`problems`,`: these files were skipped`]}),(0,F.jsx)(`ul`,{className:`panel-note`,children:e.map(e=>(0,F.jsx)(`li`,{className:`mono`,children:e},e))})]})}var le={templates:(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`big`,children:`No templates`}),`Add one under `,(0,F.jsx)(`code`,{className:`mono`,children:`.geneseed/loops/`}),` in the repo.`]}),bricks:(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`big`,children:`No bricks`}),`Add one under `,(0,F.jsx)(`code`,{className:`mono`,children:`.geneseed/bricks/`}),` in the repo.`]}),active:(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(`div`,{className:`big`,children:`No loops yet`}),`Start one with `,(0,F.jsx)(`code`,{className:`mono`,children:`geneseed loop init`}),` in a worktree, or ask the agent to run a loop. It shows up here while it runs.`]})};function ue({tab:e=`templates`,item:t,dataRev:n}){let{data:s,error:c}=a(()=>r.loops(),[n],`loops`),l=H(),[h,_]=(0,g.useState)(``),[v,y]=(0,g.useState)(`all`),[b,x]=(0,g.useState)(e);e!==b&&(x(e),_(``),y(`all`));let S=s?.bricks||[],C=e===`active`?l.loops&&X(l.loops):s&&(e===`bricks`?Y(s.bricks,s.overridden):J(s.templates,s.bricks)),w=C||[],T=d(w),E=v===`all`?w:w.filter(e=>e.group===v),D=h.trim(),O=f(E,D),k=w.find(e=>e.name===t)||e===`active`&&w.find(V)||w[0]||null,A={templates:s?.templates.length,bricks:s?.bricks.length,active:l.loops?.length},j=(A.templates??0)+(A.bricks??0)+(A.active??0),M=e=>`${j?(e??0)/j*100:0}%`,N=W.find(([t])=>t===e)[1],P=e===`active`?l.error:c;return(0,F.jsxs)(F.Fragment,{children:[(0,F.jsx)(i,{error:P,style:{margin:`0 0 12px`}}),(0,F.jsx)(ce,{problems:s?.problems}),(0,F.jsxs)(`div`,{className:`library`,children:[(0,F.jsxs)(`aside`,{className:`lib-kinds`,"aria-label":`Loops sections`,children:[(0,F.jsxs)(`div`,{className:`lib-title`,children:[(0,F.jsx)(`h1`,{className:`h`,children:`Loops`}),(0,F.jsx)(`span`,{className:`dim`,children:`What the engine runs`})]}),(0,F.jsxs)(`div`,{className:`stackbar thin`,"aria-hidden":`true`,children:[(0,F.jsx)(`span`,{className:`sb-invariants`,style:{width:M(A.templates)}}),(0,F.jsx)(`span`,{className:`sb-doctrines`,style:{width:M(A.bricks)}}),(0,F.jsx)(`span`,{className:`sb-rest`,style:{width:M(A.active)}})]}),(0,F.jsx)(`nav`,{className:`kind-list`,"aria-label":`Sections`,children:W.map(([t,n])=>(0,F.jsxs)(g.Fragment,{children:[(0,F.jsxs)(`a`,{href:`#/loops/${t}`,className:e===t?`on`:``,"aria-current":e===t?`page`:void 0,children:[n,(0,F.jsx)(`span`,{className:`mono dim`,children:A[t]??``})]}),e===t&&(0,F.jsx)(m,{label:re[t],total:w.length,cats:T,cat:v,onChange:y})]},t))})]}),(0,F.jsx)(u,{label:N,count:D?`${O.length} of ${E.length}`:C?E.length:``,q:h,onQ:_,matched:O.length,inView:[e,t],children:C?w.length===0?(0,F.jsx)(`div`,{className:`empty`,style:{padding:32},children:le[e]}):(0,F.jsx)(p,{rows:O,activeName:k?.name,hrefOf:t=>`#/loops/${e}/${U(t.name)}`,pills:Q[e]}):P?null:(0,F.jsx)(o,{})}),(0,F.jsx)(`article`,{className:`lib-reader`,"aria-label":`Entry`,children:k?e===`active`?(0,F.jsx)(te,{loop:k,bricks:S,onPreset:l.onPreset}):e===`bricks`?(0,F.jsx)(se,{b:k}):(0,F.jsx)(oe,{t:k,bricks:S,overridden:s.overridden},k.name):null})]})]})}export{X as activeRows,Y as brickRows,$ as brickSource,ue as default,J as templateRows};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-hePW80VL.js";import{i as e,t}from"./react-DlYQp10C.js";import{n,r}from"./sections-ChwaobfW.js";import{B as i,R as a,U as o}from"./index-B9-bvRjd.js";import{a as s,i as c,n as l,o as u}from"./Dashboard-Ddz0KQF3.js";e();var d=t(),f=14;function p({title:e,right:t,children:n,span:r}){return(0,d.jsxs)(`div`,{className:`c-mod`,style:r?{gridColumn:`span ${r}`}:null,children:[(0,d.jsxs)(`div`,{className:`c-mod-head`,children:[(0,d.jsx)(`span`,{className:`c-tab`}),(0,d.jsx)(`h3`,{children:e}),t&&(0,d.jsx)(`span`,{className:`c-mod-right`,children:t})]}),(0,d.jsx)(`div`,{className:`c-mod-body`,children:n})]})}function m({label:e,value:t}){return(0,d.jsxs)(`div`,{className:`c-kpi`,children:[(0,d.jsx)(`div`,{className:`c-kpi-label`,children:e}),(0,d.jsx)(`div`,{className:`c-kpi-val`+(t===0?` zero`:``),children:t})]})}function h({data:e,height:t=120,hi:n}){if(!e.length)return null;let r=Math.max(...e.map(e=>e.v),1);return(0,d.jsx)(`div`,{className:`c-cols`,style:{height:t},children:e.map((e,i)=>{let a=Math.max(e.v/r*(t-6),2);return(0,d.jsx)(`div`,{className:`c-col ${i===n?`hi`:``}`,style:{height:a},title:`${e.t}: ${e.v}`},i)})})}function g({checks:e}){return(0,d.jsx)(`div`,{className:`c-band`,children:e.map((e,t)=>(0,d.jsx)(`span`,{className:`c-band-cell ${e.problems.length===0?`ok`:`bad`}`,title:`${e.label}: ${e.problems.length===0?`pass`:`${e.problems.length} problem(s)`}`},t))})}function _(e){let t={};for(let n of e||[]){let e=n.action||`unknown`;t[e]=(t[e]||0)+1}return Object.entries(t).map(([e,t])=>({label:e,value:t})).sort((e,t)=>t.value-e.value)}function v({overview:e,jobs:t,lens:v,onAction:y}){let b=e.counts||{},x=r.reduce((e,t)=>e+(b[t]||0),0),S=Math.max(...r.map(e=>b[e]||0),1),C=v?.doctor?.state||`loading`,w=v?.doctor?.data?.groups||[],T=w.filter(e=>e.problems.length===0).length,E=c(t||[],10,`0d`),D=E.reduce((e,t)=>e+t.v,0),O=_(t),k=Math.max(...O.map(e=>e.value),1),A=i(e.diff),j=[[`status`,e.deployed?(0,d.jsx)(`span`,{className:`c-pill ok`,children:`DEPLOYED`}):(0,d.jsx)(`span`,{className:`c-pill warn`,children:`NOT DEPLOYED`})],[`voice`,(0,d.jsx)(`span`,{style:{textTransform:`capitalize`},children:e.theme})],[`mode`,e.emit],[`doctor`,C===`failed`?(0,d.jsx)(`span`,{className:`c-pill warn`,children:`NO ANSWER`}):C===`ok`?w.length===0?(0,d.jsx)(`span`,{className:`c-pill`,children:`—`}):T===w.length?(0,d.jsx)(`span`,{className:`c-pill ok`,children:`CLEAN`}):(0,d.jsxs)(`span`,{className:`c-pill warn`,children:[w.length-T,` ISSUES`]}):(0,d.jsx)(`span`,{className:`c-pill`,children:`…`})],[`edits`,String(A)],[`built`,e.build_time||`—`],[`target`,(0,d.jsx)(`span`,{className:`c-dim mono`,children:e.target})]];return(0,d.jsxs)(`div`,{className:`c-root`,children:[(0,d.jsxs)(`div`,{className:`c-titlebar`,children:[(0,d.jsxs)(`div`,{children:[(0,d.jsx)(`h1`,{className:`c-h1`,children:`HARNESS // STATUS READOUT`}),(0,d.jsxs)(`div`,{className:`c-sub`,children:[e.target,` · rendered from src/ · inherited everywhere`]}),(0,d.jsx)(l,{verdict:v?.verdict})]}),(0,d.jsxs)(`div`,{className:`row gap-8`,children:[(0,d.jsxs)(`button`,{className:`btn`,onClick:()=>y(`update`),children:[(0,d.jsx)(a,{name:`refresh`}),`UPDATE`]}),(0,d.jsx)(`button`,{className:`btn ghost`,onClick:()=>y(`build-all`),children:`REBUILD`}),(0,d.jsx)(`button`,{className:`btn ghost`,onClick:()=>y(`doctor`),children:`DOCTOR`})]})]}),(0,d.jsx)(`div`,{className:`c-strip`,children:j.map(([e,t],n)=>(0,d.jsxs)(`div`,{className:`c-strip-cell`,children:[(0,d.jsx)(`div`,{className:`c-strip-k`,children:e}),(0,d.jsx)(`div`,{className:`c-strip-v`,children:t})]},n))}),(0,d.jsxs)(`div`,{className:`c-kpi-row`,children:[(0,d.jsx)(m,{label:`AGENTS`,value:b.agents??`—`}),(0,d.jsx)(m,{label:`SKILLS`,value:b.skills??`—`}),(0,d.jsx)(m,{label:`DICTATES`,value:b.laws??`—`}),(0,d.jsx)(m,{label:`PACKS`,value:b.doctrines?`${b.doctrines.active}/${b.doctrines.total}`:`—`}),(0,d.jsx)(m,{label:`MEMORY`,value:b.memory??`—`}),(0,d.jsx)(m,{label:`NOTEBOOK`,value:b.notebook??`—`}),(0,d.jsx)(m,{label:`EDITS`,value:A})]}),(0,d.jsxs)(`div`,{className:`c-grid`,children:[(0,d.jsx)(p,{title:`CAPABILITY DISTRIBUTION`,right:`${x} ENTRIES`,span:2,children:(0,d.jsxs)(`table`,{className:`c-tbl`,children:[(0,d.jsx)(`thead`,{children:(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`th`,{children:`SECTION`}),(0,d.jsx)(`th`,{children:`DETAIL`}),(0,d.jsx)(`th`,{style:{width:150},children:`SHARE`}),(0,d.jsx)(`th`,{className:`num`,children:`N`})]})}),(0,d.jsx)(`tbody`,{children:r.map(e=>(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`td`,{className:`c-name`,children:n[e].label}),(0,d.jsx)(`td`,{className:`c-dim`,children:n[e].desc}),(0,d.jsx)(`td`,{children:(0,d.jsx)(`div`,{className:`c-bar`,children:(0,d.jsx)(`i`,{style:{width:`${(b[e]||0)/S*100}%`,background:e===`agents`||e===`skills`?`var(--accent)`:`var(--line-3)`}})})}),(0,d.jsx)(`td`,{className:(b[e]||0)>0?`num`:`num c-dim`,children:b[e]??0})]},e))})]})}),(0,d.jsx)(p,{title:`DOCTOR // CHECKS`,right:w.length?`${T}/${w.length}`:`—`,children:w.length>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g,{checks:w}),(0,d.jsx)(`div`,{className:`c-check-list`,children:w.map(e=>{let t=e.problems.length===0;return(0,d.jsxs)(`div`,{className:`c-check-row`,children:[(0,d.jsx)(`span`,{className:`c-dotmark ${t?`ok`:`bad`}`}),(0,d.jsx)(`span`,{className:`c-check-name`,children:e.label}),(0,d.jsx)(`span`,{className:`c-check-detail`,children:t?`clean`:`${e.problems.length} problem${e.problems.length===1?``:`s`}`})]},e.label)})})]}):(0,d.jsx)(`p`,{className:`c-dim mono`,style:{fontSize:11},children:C===`failed`?`Doctor did not answer.`:C===`ok`?`Doctor reported no checks.`:`Checking…`})}),(0,d.jsxs)(p,{title:`RUN RATE // 10D`,right:`${D} RUNS`,span:2,children:[(0,d.jsx)(h,{data:E,height:120,hi:E.length-1}),(0,d.jsx)(`div`,{className:`c-axis`,children:E.map((e,t)=>(0,d.jsx)(`span`,{children:t%2==0?e.t:``},t))})]}),(0,d.jsx)(p,{title:`RUN LOG // BY TYPE`,right:`${(t||[]).length} LOGGED`,children:O.length>0?(0,d.jsx)(`table`,{className:`c-tbl`,children:(0,d.jsx)(`tbody`,{children:O.map(e=>(0,d.jsxs)(`tr`,{children:[(0,d.jsx)(`td`,{className:`c-name`,style:{textTransform:`uppercase`,fontWeight:400},children:e.label}),(0,d.jsx)(`td`,{children:(0,d.jsx)(`div`,{className:`c-bar`,children:(0,d.jsx)(`i`,{style:{width:`${e.value/k*100}%`,background:`var(--accent)`}})})}),(0,d.jsx)(`td`,{className:`num`,children:e.value})]},e.label))})}):(0,d.jsx)(`p`,{className:`c-dim mono`,style:{fontSize:11},children:`No runs logged.`})}),(0,d.jsx)(p,{title:`RECENT // RUN LOG`,span:3,children:(0,d.jsx)(`table`,{className:`c-tbl`,children:(0,d.jsxs)(`tbody`,{children:[u(t,f).map(e=>{let t=e.status===`done`,n=e.status===`failed`?`bad`:t?`ok`:`acc`,r=s(e);return(0,d.jsxs)(`tr`,{children:[(0,d.jsxs)(`td`,{style:{width:96},children:[(0,d.jsx)(`span`,{className:`c-dotmark ${n}`}),` `,(0,d.jsx)(`span`,{className:`c-dim`,children:e.action})]}),(0,d.jsx)(`td`,{className:`c-name`,style:{fontWeight:400},title:r.command||void 0,children:[r.scope,r.result,r.duration].filter(Boolean).join(` · `)}),(0,d.jsx)(`td`,{className:`num c-dim`,children:e.started?`${o(e.started)} ago`:`—`})]},e.id)}),(!t||t.length===0)&&(0,d.jsx)(`tr`,{children:(0,d.jsx)(`td`,{colSpan:`3`,className:`c-dim`,style:{fontSize:11},children:`No runs logged.`})})]})})})]})]})}export{v as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-DlYQp10C.js";import{t as r}from"./api-BfpZmUMI.js";import{$ as i,A as a,D as o,G as s,O as c,Q as l,T as u,x as d}from"./index-B9-bvRjd.js";import{t as f}from"./Markdown-OReRRoEV.js";import{t as p}from"./Tabs-BPs85vgk.js";import m from"./Library-CgX1dJTr.js";var h=e(t(),1),g=e=>e(`Discard your unsaved edit?`,{title:`Unsaved edit`,confirmLabel:`Discard`,tone:`danger`}),_=`The file changed on disk — reloaded the fresh copy. Your draft is kept.`;function v({data:e,reload:t}){let n=u(),[r,a]=(0,h.useState)(null),[o,s]=(0,h.useState)(null),[c,d]=(0,h.useState)(!1),[f,p]=(0,h.useState)(``),m=e?.fingerprint||``,v=r!==null&&JSON.stringify(r)!==JSON.stringify(o),y=(0,h.useRef)(!1),b=e=>{a(e),s(e)},x=()=>a(null);return(0,h.useEffect)(()=>{if(!v)return;let e=e=>{e.preventDefault(),e.returnValue=``};window.addEventListener(`beforeunload`,e);let t=i(({to:e})=>(y.current||(y.current=!0,g(n).then(n=>{n&&(t(),a(null),l(e))}).finally(()=>{y.current=!1})),!1));return()=>{window.removeEventListener(`beforeunload`,e),t()}},[v,n]),{draft:r,setDraft:a,open:b,close:x,discard:async()=>v&&!await g(n)?!1:(x(),!0),dirty:v,busy:c,notice:f,setNotice:p,save:async(e,{conflict:n}={})=>{d(!0),p(``);try{return await e(m)||!0}catch(e){e.status===409?p(n??_):p(e.message);return}finally{d(!1),t()}}}}var y=n(),b={title:``,body:``,scope:`project`,trial_until:``},x=[`project`,`user`,`global`],S=/\r\n|[\n\r\v\f\x1c\x1d\x1e\x85\u2028\u2029]/,C=e=>e.startsWith(`## `)||/^##\s+R\d+\s*[—–-]+\s*\S/.test(e),w=`user-rules.md changed on disk (an agent session?) — reloaded the fresh copy. Your draft is kept — Save again.`,T=`user-rules.md changed on disk (an agent session?) — reloaded the fresh copy. Try again.`;function E({value:e,onChange:t,onCancel:n,onSave:r,busy:i}){let[a]=(0,h.useState)(e.scope),o=n=>r=>t({...e,[n]:r.target.value}),s=e.body.trim().split(S).some(C)?`A line cannot start with “## ” — user-rules.md reads it as a new rule heading. Use ### or plain text.`:``,c=e.title.trim()&&e.body.trim()&&!s;return(0,y.jsxs)(`div`,{className:`rule-form`,children:[(0,y.jsx)(`input`,{className:`lib-filter`,type:`text`,value:e.title,onChange:o(`title`),placeholder:`Title — short and imperative (e.g. No emoji in commit subjects)`,"aria-label":`Rule title`}),(0,y.jsx)(`textarea`,{className:`rule-body-input`,value:e.body,onChange:o(`body`),rows:4,placeholder:`The rule, stated plainly and testably, in one short paragraph.`,"aria-label":`Rule body`,"aria-invalid":s?!0:void 0,"aria-describedby":s?`rule-body-error`:void 0}),s?(0,y.jsx)(`p`,{id:`rule-body-error`,className:`sub rule-notice`,role:`alert`,children:s}):null,(0,y.jsxs)(`div`,{className:`row`,style:{flexWrap:`wrap`},children:[(0,y.jsxs)(`select`,{className:`sel`,value:e.scope,onChange:o(`scope`),"aria-label":`Rule scope`,children:[(0,y.jsx)(`option`,{value:`project`,children:`scope: project (this repo, committable)`}),(0,y.jsx)(`option`,{value:`user`,children:`scope: user (personal)`}),(0,y.jsx)(`option`,{value:`global`,children:`scope: global (every repository)`}),x.includes(a)?null:(0,y.jsxs)(`option`,{value:a,children:[`scope: `,a,` (as written in the file)`]})]}),(0,y.jsxs)(`label`,{className:`rule-trial-label`,children:[`trial until`,(0,y.jsx)(`input`,{className:`lib-filter rule-date`,type:`date`,value:e.trial_until,onChange:o(`trial_until`),"aria-label":`Trial until date (optional)`})]}),(0,y.jsxs)(`div`,{style:{marginLeft:`auto`,display:`flex`,gap:8},children:[(0,y.jsx)(`button`,{className:`btn sm`,disabled:!c||i,onClick:()=>r(e),children:i?`Saving…`:`Save rule`}),(0,y.jsx)(`button`,{className:`btn ghost sm`,disabled:i,onClick:n,children:`Cancel`})]})]})]})}function D({rule:e,isOpen:t,onToggle:n,onEdit:r,onDelete:i,onGraduate:a}){return(0,y.jsxs)(`div`,{className:`rule-row ${t?`on`:``}`,children:[(0,y.jsxs)(`button`,{className:`rule-head`,onClick:n,"aria-expanded":t,children:[(0,y.jsxs)(`span`,{className:`rule-no`,children:[`R`,e.id]}),(0,y.jsx)(`span`,{className:`rule-title`,children:e.title}),(0,y.jsx)(`span`,{className:`rule-chip ${e.scope===`user`?`user`:``}`,children:e.scope}),e.status===`trial`&&(0,y.jsx)(`span`,{className:`rule-chip trial ${e.overdue?`overdue`:``}`,children:e.overdue?`review due`:`trial · ${e.trial_until}`})]}),t&&(0,y.jsxs)(`div`,{className:`rule-expand`,children:[(0,y.jsx)(`p`,{children:e.body}),e.source?(0,y.jsxs)(`div`,{className:`rule-src`,children:[`source: `,e.source]}):null,(0,y.jsxs)(`div`,{className:`row`,style:{marginTop:10,gap:8},children:[e.status===`trial`&&(0,y.jsx)(`button`,{className:`btn sm`,onClick:a,title:`Adopt for good — drop the trial marker`,children:`Graduate`}),(0,y.jsx)(`button`,{className:`btn ghost sm`,onClick:r,children:`Edit`}),(0,y.jsx)(`button`,{className:`btn ghost sm`,onClick:i,children:`Retire`})]})]})]})}function O({onChanged:e}){let t=u(),[n,i]=(0,h.useState)(0),{data:a,error:l}=s(()=>r.rules(),[n]),[d,f]=(0,h.useState)(null),p=v({data:a,reload:()=>i(e=>e+1)}),{draft:m,busy:g,notice:_}=p;if(l)return(0,y.jsx)(o,{error:l});if(!a)return(0,y.jsx)(c,{});let x=a.rules||[],{stats:S}=a,C=Math.round(Math.max(S.rules/S.max_rules,S.tokens/S.max_tokens)*100),O=C>=100?`over`:C>=70?`warn`:``,k=m?.target,A=k!==void 0&&k!==`new`&&!x.some(e=>e.id===k&&e.title===m.title0),j=k===`new`||A,M=async(t,n)=>{await p.save(e=>r.rulesMutate({...t,fingerprint:e}),{conflict:n?w:T})&&n&&p.close(),e?.()},N=e=>p.setDraft({...m,form:e}),P=async e=>{await t(`Retire rule R${e.id} — “${e.title}”? It is removed from user-rules.md.`,{title:`Retire this rule?`,confirmLabel:`Retire`,tone:`danger`})&&M({op:`delete`,id:e.id})},F=e=>M({op:`update`,id:e.id,title:e.title,body:e.body,scope:e.scope,source:e.source,trial_until:``});return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`head-row mb-16`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`eyebrow`,children:`governance · yours`}),(0,y.jsx)(`h2`,{className:`h`,children:`Rules`}),(0,y.jsxs)(`p`,{className:`sub`,children:[`Your own standing rules, from `,(0,y.jsx)(`code`,{className:`mono`,children:`user-rules.md`}),` beside the deployed AGENT.md. The agent obeys them with the same force as the Laws — they may tighten a Law, never repeal one — and no update ever touches the file. Keep the set small: every rule is loaded every session.`]})]}),a.exists&&m===null&&(0,y.jsx)(`button`,{className:`btn`,onClick:()=>p.open({target:`new`,title0:``,form:b}),children:`Add rule`})]}),a.exists&&(0,y.jsxs)(`div`,{className:`rules-meter ${O}`,children:[(0,y.jsx)(`div`,{className:`rules-meter-bar`,children:(0,y.jsx)(`div`,{className:`rules-meter-fill`,style:{width:`${Math.min(C,100)}%`}})}),(0,y.jsxs)(`span`,{className:`rules-meter-label`,children:[S.rules,`/`,S.max_rules,` rules · ~`,S.tokens,` tokens`,C>=100?` — over budget: a bloated rule set dilutes the rules that matter`:C>=70?` — getting heavy; consider merging or pruning`:``]})]}),_?(0,y.jsx)(`p`,{className:`sub rule-notice`,children:_}):null,(a.warnings||[]).map(e=>(0,y.jsxs)(`p`,{className:`sub rule-notice`,children:[`format warning: `,e]},e)),j&&(0,y.jsxs)(`div`,{className:`card pad-lg mb-16`,children:[(0,y.jsx)(`div`,{className:`eyebrow`,style:{marginBottom:10},children:`new rule`}),A?(0,y.jsxs)(`p`,{className:`sub rule-notice`,children:[`Rule R`,k,` is no longer in user-rules.md (an agent session removed or renumbered it). Your draft is kept — Save adds it as a new rule.`]}):null,(0,y.jsx)(E,{value:m.form,onChange:N,busy:g,onCancel:p.discard,onSave:e=>M({op:`add`,...e},!0)})]}),a.exists?x.length===0&&!j?(0,y.jsxs)(`div`,{className:`empty`,style:{padding:48},children:[(0,y.jsx)(`div`,{className:`big`,children:`No rules yet`}),`The file is seeded and loaded every session — it is just empty. Add your first standing rule here, ask the agent for one in-session (the rule skill), or promote a recurring memory fact from the Library.`]}):(0,y.jsx)(`div`,{className:`card rules-list`,children:x.map(e=>!A&&k===e.id?(0,y.jsx)(`div`,{className:`rule-row on`,children:(0,y.jsx)(`div`,{className:`rule-expand`,style:{paddingTop:14},children:(0,y.jsx)(E,{value:m.form,onChange:N,busy:g,onCancel:p.discard,onSave:t=>M({op:`update`,id:e.id,source:e.source,...t},!0)})})},e.id):(0,y.jsx)(D,{rule:e,isOpen:d===e.id,onToggle:()=>f(d===e.id?null:e.id),onEdit:()=>{f(e.id),p.open({target:e.id,title0:e.title,form:{title:e.title,body:e.body,scope:e.scope,trial_until:e.trial_until}})},onDelete:()=>P(e),onGraduate:()=>F(e)},e.id))}):(0,y.jsxs)(`div`,{className:`empty`,style:{padding:48},children:[(0,y.jsx)(`div`,{className:`big`,children:`No user-rules.md here yet`}),`The build seeds it beside AGENT.md — run a build/update from the Dashboard (or`,` `,(0,y.jsx)(`code`,{className:`mono`,children:`geneseed update`}),`) and it appears, ready for your rules.`]})]})}var k=`PROFILE.md changed on disk since you opened it — reloaded the fresh copy. Your draft is kept — Save again.`;function A({onChanged:e}){let{data:t,error:n,loading:i,reload:l,setData:u}=s(()=>r.profile(),[]),d=v({data:t,reload:l}),{draft:p,dirty:m,busy:g,notice:_}=d,[b,x]=(0,h.useState)(!1);if(t&&!b&&(x(!0),(t.text||``).trim()||d.open(t.text||``)),i&&!t)return(0,y.jsx)(c,{});if(n)return(0,y.jsx)(o,{error:n});let S=p!==null,C=t?.text||``;return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsxs)(`div`,{className:`head-row mb-16`,children:[(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{className:`eyebrow`,children:`identity · yours`}),(0,y.jsx)(`h2`,{className:`h`,children:`Profile`}),(0,y.jsxs)(`p`,{className:`sub`,children:[`Who you are and how you like to work, from `,(0,y.jsx)(`code`,{className:`mono`,children:`PROFILE.md`}),` `,`beside the deployed AGENT.md. Unlike `,(0,y.jsx)(`code`,{className:`mono`,children:`user-rules.md`}),`, it is identity, not rules — it colours how the agent works but never binds (precedence is Laws, then rules, then this). Seeded once, never overwritten by an update. Prefer not to write it by hand? Ask the agent to run the `,(0,y.jsx)(`code`,{className:`mono`,children:`profile`}),` skill — it interviews you and drafts this file with your consent.`]})]}),(0,y.jsxs)(`div`,{className:`row`,style:{display:`flex`,alignItems:`center`,gap:12},children:[(0,y.jsxs)(a,{"aria-label":`Profile mode`,children:[(0,y.jsx)(`button`,{className:S?``:`on`,onClick:d.discard,children:`View`}),(0,y.jsx)(`button`,{className:S?`on`:``,onClick:()=>S||d.open(C),children:`Edit`})]}),S&&(0,y.jsx)(`button`,{className:`btn`,disabled:!m||g,onClick:async()=>{let t=await d.save(e=>r.profileSave({text:p,fingerprint:e}),{conflict:k});t&&(u(e=>({...e,text:p,fingerprint:t.fingerprint||``})),d.setNotice(`Saved.`),d.close(),e?.())},children:g?`Saving…`:`Save`})]})]}),_?(0,y.jsx)(`p`,{className:`sub rule-notice`,children:_}):null,S?(0,y.jsx)(`textarea`,{className:`rule-body-input`,style:{width:`100%`,minHeight:`60vh`,fontFamily:`var(--mono, monospace)`},value:p,onChange:e=>d.setDraft(e.target.value),spellCheck:!1,"aria-label":`Profile markdown`}):C.trim()?(0,y.jsx)(`div`,{className:`card pad-lg`,children:(0,y.jsx)(f,{body:C})}):(0,y.jsx)(`div`,{className:`card pad-lg`,children:(0,y.jsxs)(`p`,{className:`sub`,style:{margin:0},children:[`No profile yet — switch to Edit to write one, or ask the agent to run the`,` `,(0,y.jsx)(`code`,{className:`mono`,children:`profile`}),` skill.`]})})]})}var j=(e,t)=>`${t?Math.min(100,e/t*100):0}%`;function M({rules:e,profile:t,facts:n,notes:r}){let i=e?.exists?e.stats:null;if(!i)return null;let a=[{k:`Profile`,v:t?.seeded?`template`:t?.exists?`written`:`missing`,fill:t?.exists&&!t.seeded?1:0,warn:!!t?.seeded},{k:`Rules`,v:`${i.rules}/${i.max_rules}`,fill:i.rules/i.max_rules},{k:`Memory`,v:n==null?`n/a`:`${n} facts`,fill:+!!n},{k:`Notebook`,v:r==null?`n/a`:`${r} notes`,fill:+!!r}];return(0,y.jsxs)(`div`,{className:`card-row`,children:[(0,y.jsxs)(`section`,{className:`panel`,"aria-labelledby":`pc-budget`,children:[(0,y.jsxs)(`div`,{className:`panel-head`,children:[(0,y.jsx)(`h2`,{id:`pc-budget`,children:`Token budget`}),(0,y.jsx)(`span`,{className:`mono dim`,children:`loaded every turn`})]}),(0,y.jsxs)(`p`,{className:`big-num`,children:[(0,y.jsx)(`span`,{className:`mono`,children:i.tokens}),` `,(0,y.jsxs)(`span`,{className:`dim`,children:[`/ `,i.max_tokens.toLocaleString(`en-US`),` tokens`]})]}),(0,y.jsx)(`span`,{className:`hbar${i.tokens>i.max_tokens?` bad`:``}`,"aria-hidden":`true`,children:(0,y.jsx)(`span`,{style:{width:j(i.tokens,i.max_tokens)}})}),(0,y.jsx)(`p`,{className:`panel-note`,children:i.rules?`${i.rules} rules in ${i.lines} lines.`:`All of it is the file’s preamble; no rule text yet.`})]}),(0,y.jsxs)(`section`,{className:`panel`,"aria-labelledby":`pc-slots`,children:[(0,y.jsxs)(`div`,{className:`panel-head`,children:[(0,y.jsx)(`h2`,{id:`pc-slots`,children:`Rule slots`}),(0,y.jsxs)(`span`,{className:`mono dim`,children:[i.rules,` of `,i.max_rules]})]}),(0,y.jsx)(`div`,{className:`slots`,style:{"--slots":i.max_rules},role:`img`,"aria-label":`${i.rules} of ${i.max_rules} rule slots used`,children:Array.from({length:i.max_rules},(e,t)=>(0,y.jsx)(`span`,{className:t<i.rules?`used`:``},t))}),(0,y.jsx)(`p`,{className:`panel-note`,children:`Trial rules graduate once they have held.`})]}),(0,y.jsxs)(`section`,{className:`panel`,"aria-labelledby":`pc-known`,children:[(0,y.jsx)(`div`,{className:`panel-head`,children:(0,y.jsx)(`h2`,{id:`pc-known`,children:`What the agent knows about you`})}),(0,y.jsx)(`ul`,{className:`hbars`,children:a.map(e=>(0,y.jsxs)(`li`,{children:[(0,y.jsx)(`span`,{className:`hb-label`,children:e.k}),(0,y.jsx)(`span`,{className:`hb-track`,"aria-hidden":`true`,children:(0,y.jsx)(`span`,{className:`hb-ok`,style:{width:j(e.fill,1)}})}),(0,y.jsx)(`span`,{className:`mono hb-n${e.warn?` warn`:``}`,children:e.v})]},e.k))})]})]})}function N({tab:e=`rules`,item:t,setup:n,dataRev:i}){let a=e=>Promise.resolve(e).catch(()=>null),{data:o,reload:c}=d(i),{data:l,reload:u}=s(()=>a(r.profile()),[i]),{data:f}=s(()=>a(r.catalog(`notebook`)),[i],`catalog`),h=f?(f.items||[]).filter(e=>e.name!==`NOTEBOOK`&&e.name!==`README`).length:null,g=n?.facts??null,_={rules:o?.stats?.rules,profile:l?.seeded?`●`:null,memory:g,notebook:h};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`div`,{className:`page-head`,children:(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`h1`,{className:`h`,children:`Personal`}),(0,y.jsx)(`p`,{className:`sub`,children:`The only files you write. They survive updates, reinstalls and voice changes.`})]})}),(0,y.jsx)(p,{page:`personal`,current:e,badges:_,label:`Personal files`}),e===`rules`&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(M,{rules:o,profile:l,facts:g,notes:h}),(0,y.jsx)(O,{onChanged:c})]}),e===`profile`&&(0,y.jsx)(A,{onChanged:u}),(e===`memory`||e===`notebook`)&&(0,y.jsx)(m,{lock:e,base:`#/personal/${e}`,selected:t,dataRev:i,onRulesChanged:c},e)]})}export{N as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-DlYQp10C.js";import{a as r}from"./Markdown-OReRRoEV.js";var i=e(t(),1),a=n(),o={experimental:{label:`experimental`,cls:`warn`,hint:`Shipped, but not yet confirmed by real use.`},deprecated:{label:`deprecated`,cls:`bad`,hint:`On its way out — look for the replacement before building on it.`},personal:{label:`personal`,cls:``,hint:`Yours — present in this install, not shipped or versioned by Geneseed.`},unknown:{label:`no status`,cls:``,hint:`Not listed in registry.json.`}};function s({status:e}){let t=o[e];return t?(0,a.jsxs)(`span`,{className:`badge ${t.cls}`,title:t.hint,children:[(0,a.jsx)(`span`,{className:`dot`}),t.label]}):null}var c=({name:e})=>(0,a.jsxs)(`span`,{className:`tag acc`,title:`Ships with the ${e} kit`,children:[`kit: `,e]});function l(e,t){let n=(t||``).trim().toLowerCase();return n?e.filter(e=>`${e.title||``} ${e.name||``} ${e.desc||``}`.toLowerCase().includes(n)):e}function u({label:e,count:t,extra:n,q:i,onQ:o,matched:s,inView:c,children:l}){let u=m(c);return(0,a.jsxs)(`section`,{className:`lib-list`,"aria-label":e,children:[(0,a.jsxs)(`div`,{className:`lib-list-head`,children:[(0,a.jsxs)(`b`,{children:[e,` `,(0,a.jsx)(`span`,{className:`mono dim`,children:t})]}),n]}),(0,a.jsx)(r,{value:i,onChange:o,placeholder:`Filter ${e.toLowerCase()}`,label:`Filter ${e}`}),(0,a.jsxs)(`div`,{className:`lib-rows`,ref:u,onKeyDown:p,children:[l,i.trim()&&s===0&&(0,a.jsxs)(`div`,{className:`empty`,style:{padding:32},children:[(0,a.jsx)(`div`,{className:`big`,children:`No matches`}),`Nothing in `,e.toLowerCase(),` matches “`,i.trim(),`”.`]})]})]})}function d({item:e,isOpen:t,href:n,children:r}){return(0,a.jsxs)(`a`,{className:`lib-row${t?` on`:``}`,href:n,"aria-current":t?`true`:void 0,children:[(0,a.jsxs)(`span`,{className:`lr-name`,children:[e.title||e.name,(0,a.jsx)(s,{status:e.status}),e.kit?(0,a.jsx)(c,{name:e.kit}):null,r]}),e.desc?(0,a.jsx)(`span`,{className:`lr-desc`,children:e.desc}):null,e.meta?(0,a.jsx)(`span`,{className:`lr-meta mono`,children:e.meta}):null]})}function f({rows:e,activeName:t,hrefOf:n,pills:r}){let i=null,o=[];for(let s of e)s.group&&s.group!==i&&(i=s.group,o.push((0,a.jsxs)(`div`,{className:`lib-group`,children:[s.groupC?(0,a.jsx)(`span`,{className:`cdot`,style:{"--cc":s.groupC},"aria-hidden":`true`}):null,s.group]},`g-${s.group}`))),o.push((0,a.jsx)(d,{item:s,isOpen:t===s.name,href:n(s),children:r?.(s)},s.name));return o}function p(e){if(e.key!==`ArrowDown`&&e.key!==`ArrowUp`)return;let t=[...e.currentTarget.querySelectorAll(`.lib-row`)],n=t.indexOf(document.activeElement);n!==-1&&(e.preventDefault(),t[e.key===`ArrowDown`?Math.min(n+1,t.length-1):Math.max(n-1,0)]?.focus())}function m(e){let t=(0,i.useRef)(null);return(0,i.useEffect)(()=>{let e=t.current,n=e?.querySelector(`.lib-row.on`);if(!n||!e)return;let r=n.offsetTop;r>=e.scrollTop&&r+n.clientHeight<=e.scrollTop+e.clientHeight||(e.scrollTop=Math.max(0,r-e.clientHeight/2+n.clientHeight/2))},e),t}function h({label:e,total:t,cats:n,cat:r,onChange:i}){if(n.length<=1)return null;let o=[{key:`all`,label:`All`,n:t,c:`var(--text-3)`},...n];return(0,a.jsxs)(`div`,{className:`rail-cats`,children:[(0,a.jsx)(`ul`,{"aria-label":e,children:o.map(({key:e,label:t,n,c:o})=>(0,a.jsx)(`li`,{children:(0,a.jsxs)(`button`,{type:`button`,className:r===e?`on`:``,"aria-pressed":r===e,style:{"--cc":o},onClick:()=>i(e),children:[(0,a.jsx)(`span`,{className:`cdot`,"aria-hidden":`true`}),(0,a.jsx)(`span`,{className:`rc-name`,children:t}),(0,a.jsx)(`span`,{className:`mono dim`,children:n})]})},e))}),(0,a.jsx)(`div`,{className:`rail-mix`,"aria-hidden":`true`,children:n.map(({key:e,n:t,c:n})=>(0,a.jsx)(`span`,{className:r===`all`||r===e?``:`dim`,style:{"--cc":n,flexGrow:t}},e))})]})}function g(e){let t=[],n=new Map;for(let r of e)n.has(r.group)||t.push(r.group),n.set(r.group,(n.get(r.group)||0)+1);return t.map(e=>({key:e,label:e,n:n.get(e),c:`var(--accent)`}))}export{u as a,c as i,g as n,l as o,f as r,s,h as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-hePW80VL.js";import{i as e,t}from"./react-DlYQp10C.js";import{X as n,Z as r}from"./index-B9-bvRjd.js";e();var i=t();function a({page:e,current:t,badges:a={},label:o}){return(0,i.jsx)(`nav`,{className:`tabs`,"aria-label":o,children:n[e].map(n=>(0,i.jsxs)(`a`,{href:`#/${e}/${n}`,className:t===n?`on`:``,"aria-current":t===n?`page`:void 0,children:[r[n],a[n]==null?null:(0,i.jsx)(`span`,{className:`tab-badge`,children:a[n]})]},n))})}export{a as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,t as n}from"./react-DlYQp10C.js";var r=e(t(),1),i=n(),a={busy:{cls:`acc`,label:`working`,accent:`var(--accent)`},"waiting-input":{cls:`warn`,label:`your move`,accent:`var(--warn)`},blocked:{cls:`bad`,label:`blocked`,accent:`var(--bad)`},idle:{cls:``,label:`idle`,accent:`var(--line)`}},o={overflow:`hidden`,textOverflow:`ellipsis`,whiteSpace:`nowrap`};function s(e){if(!e)return``;let t=e.replace(/\\/g,`/`).replace(/\/+$/,``).split(`/`);return t[t.length-1]||e}var c=e=>e?e<1e3?String(e):e<1e5?(e/1e3).toFixed(1)+`k`:e<1e6?(e/1e3).toFixed(0)+`k`:(e/1e6).toFixed(1)+`M`:`0`;function l(e){if(e=Math.max(0,Math.floor(e)),e<60)return`${e}s`;let t=Math.floor(e/60);return t<60?`${t}m ${e%60}s`:`${Math.floor(t/60)}h ${t%60}m`}function u({startedAt:e}){let[t,n]=(0,r.useState)(()=>Date.now()/1e3);return(0,r.useEffect)(()=>{let e=setInterval(()=>n(Date.now()/1e3),1e3);return()=>clearInterval(e)},[]),l(t-e)}function d({done:e,total:t}){let n=Math.min(t,10),r=Math.min(n,Math.round(e/t*n));return(0,i.jsxs)(`span`,{style:{letterSpacing:2},children:[(0,i.jsx)(`span`,{style:{color:`var(--accent)`},children:`●`.repeat(r)}),(0,i.jsx)(`span`,{style:{color:`var(--text-3)`},children:`○`.repeat(n-r)})]})}export{s as a,d as i,u as n,c as o,a as r,o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Dt as e,Mt as t,bt as n,dt as r,kt as i}from"./index-B9-bvRjd.js";var a=t=>{let n=1;if(t&&t.getCTM){let r=t.getCTM();r&&(n=(e(r.a*r.a+r.b*r.b)+e(r.c*r.c+r.d*r.d))/2)}return n},o=(e,r,o)=>{let s=i,c=getComputedStyle(e),l=c.strokeLinecap,u=c.vectorEffect===`non-scaling-stroke`?e:null,d=l,f=new Proxy(e,{get(e,r){let i=e[r];return r===t?e:r===`setAttribute`?(...t)=>{if(t[0]===`draw`){let n=t[1].split(` `),r=+n[0],i=+n[1],o=a(u),c=r*-s*o,f=i*s*o+c,p=s*o+(r===0&&i===1||r===1&&i===0?0:10*o)-f;if(l!==`butt`){let t=r===i?`butt`:l;d!==t&&(e.style.strokeLinecap=`${t}`,d=t)}e.setAttribute(`stroke-dashoffset`,`${c}`),e.setAttribute(`stroke-dasharray`,`${f} ${p}`)}return Reflect.apply(i,e,t)}:n(i)?(...t)=>Reflect.apply(i,e,t):i}});return e.getAttribute(`pathLength`)!==`${s}`&&(e.setAttribute(`pathLength`,`${s}`),f.setAttribute(`draw`,`${r} ${o}`)),f},s=(e,t=0,n=0)=>r(e).map(e=>o(e,t,n));export{s as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Dashboard-Ddz0KQF3.js","assets/rolldown-runtime-hePW80VL.js","assets/react-DlYQp10C.js","assets/api-BfpZmUMI.js","assets/sections-ChwaobfW.js","assets/Activity-2fa9G39h.js","assets/activity-Jw8XcPiP.js","assets/usePoll-bDFN-Hr6.js","assets/ActivityDetail-DIT7ITJw.js","assets/Library-CgX1dJTr.js","assets/RailCats-D5RVYEjy.js","assets/Markdown-OReRRoEV.js","assets/Kits-BteVDSKD.js","assets/KitApply-BAF0gtXb.js","assets/Loops-MhJU2d8B.js","assets/Laws-DNTpf31b.js","assets/Personal-BdN0jlmh.js","assets/Tabs-BPs85vgk.js","assets/Installs-kkE0H4Q2.js","assets/Docs-j5cPrsOs.js"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{r as e}from"./rolldown-runtime-hePW80VL.js";import{i as t,n,r,t as i}from"./react-DlYQp10C.js";import{t as a}from"./api-BfpZmUMI.js";import{i as o,n as s,r as c}from"./sections-ChwaobfW.js";(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var l=typeof window<`u`,u=l?window:null,d=l?document:null,f={OBJECT:0,ATTRIBUTE:1,CSS:2,TRANSFORM:3,CSS_VAR:4},p={NUMBER:0,UNIT:1,COLOR:2,COMPLEX:3},m={NONE:0,AUTO:1,FORCE:2},h={replace:0,none:1,blend:2},g=Symbol(),_=Symbol(),v=Symbol(),y=Symbol(),b=Symbol(),x=1e-11,S=0xe8d4a51000,C=1e3,w=[],T=(()=>{let e=new Map;return e.set(`x`,`translateX`),e.set(`y`,`translateY`),e.set(`z`,`translateZ`),e})(),E=[`perspective`,`translateX`,`translateY`,`translateZ`,`rotate`,`rotateX`,`rotateY`,`rotateZ`,`scale`,`scaleX`,`scaleY`,`scaleZ`,`skew`,`skewX`,`skewY`],D=E.reduce((e,t)=>({...e,[t]:t+`(`}),{}),O=()=>{},ee=e=>e,k=/\)\s*[-.\d]/,te=/(^#([\da-f]{3}){1,2}$)|(^#([\da-f]{4}){1,2}$)/i,ne=/rgb\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*\)/i,A=/rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,j=/hsl\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*\)/i,M=/hsla\(\s*(-?\d+|-?\d*.\d+)\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)%\s*,\s*(-?\d+|-?\d*.\d+)\s*\)/i,N=/[-+]?\d*\.?\d+(?:e[-+]?\d)?/gi,P=/^([-+]?\d*\.?\d+(?:e[-+]?\d+)?)([a-z]+|%)$/i,F=/([a-z])([A-Z])/g,re=/(\*=|\+=|-=)/,ie=/var\(\s*(--[\w-]+)(?:\s*,\s*([^)]+))?\s*\)/,ae={id:null,keyframes:null,playbackEase:null,playbackRate:1,frameRate:240,loop:0,reversed:!1,alternate:!1,autoplay:!0,persist:!1,duration:C,delay:0,loopDelay:0,ease:`out(2)`,composition:h.replace,modifier:ee,onBegin:O,onBeforeUpdate:O,onUpdate:O,onLoop:O,onPause:O,onComplete:O,onRender:O},oe={current:null,root:d},I={defaults:ae,precision:4,timeScale:1,tickThreshold:200,editor:null},se={version:`4.5.0`,engine:null};l&&(u.AnimeJS||=[],u.AnimeJS.push(se));var ce=e=>e.replace(F,`$1-$2`).toLowerCase(),L=(e,t)=>e.indexOf(t)===0,le=Date.now,ue=Array.isArray,de=e=>e&&e.constructor===Object,fe=e=>typeof e==`number`&&!isNaN(e),pe=e=>typeof e==`string`,me=e=>typeof e==`function`,R=e=>e===void 0,he=e=>R(e)||e===null,z=e=>l&&e instanceof SVGElement,ge=e=>te.test(e),_e=e=>L(e,`rgb`),ve=e=>L(e,`hsl`),ye=e=>ge(e)||(_e(e)||ve(e))&&(e[e.length-1]===`)`||!k.test(e)),be=e=>!I.defaults.hasOwnProperty(e),xe=[`opacity`,`rotate`,`overflow`,`color`],B=(e,t)=>{if(xe.includes(t))return!1;if(e.getAttribute(t)||t in e){if(t===`scale`){let t=e.parentNode;return t&&t.tagName===`filter`}return!0}},Se=e=>pe(e)?parseFloat(e):e,Ce=Math.pow,we=Math.sqrt,Te=Math.sin,Ee=Math.cos,De=Math.abs,Oe=Math.floor,ke=Math.asin,Ae=Math.PI,je=Math.round,Me=(e,t,n)=>e<t?t:e>n?n:e,V=(e,t)=>{if(t<0)return e;if(!t)return je(e);let n=10**t;return je(e*n)/n},Ne=(e,t,n)=>n===1?t:n===0?e:e+(t-e)*n,Pe=e=>e===1/0?S:e===-1/0?-S:e,Fe=e=>e<=1e-11?x:Pe(V(e,11)),H=e=>ue(e)?[...e]:e,Ie=(e,t)=>{let n={...e};for(let r in t){let i=e[r];n[r]=R(i)?t[r]:i}return n},U=(e,t,n,r=`_prev`,i=`_next`)=>{let a=e._head,o=i;for(n&&(a=e._tail,o=r);a;){let e=a[o];t(a),a=e}},Le=(e,t,n=`_prev`,r=`_next`)=>{let i=t[n],a=t[r];i?i[r]=a:e._head=a,a?a[n]=i:e._tail=i,t[n]=null,t[r]=null},Re=(e,t,n,r=`_prev`,i=`_next`)=>{let a=e._tail;for(;a&&n&&n(a,t);)a=a[r];let o=a?a[i]:e._head;a?a[i]=t:e._head=t,o?o[r]=t:e._tail=t,t[r]=a,t[i]=o},ze=(e,t,n)=>{let r=e.style.transform;if(r){let i=e[y],a=0,o=r.length,s;for(;a<o;){for(;a<o&&r.charCodeAt(a)===32;)a++;if(a>=o)break;let e=a;for(;a<o&&r.charCodeAt(a)!==40;)a++;if(a>=o)break;let t=r.substring(e,a),n=1,c=a+1,l=-1,u=-1;for(a++;a<o&&n>0;){let e=r.charCodeAt(a);e===40?n++:e===41?n--:e===44&&n===1&&(l===-1?l=a:u===-1&&(u=a)),a++}let d=a-1;t===`translate`||t===`translate3d`?(l===-1?i.translateX=r.substring(c,d).trim():(i.translateX=r.substring(c,l).trim(),u===-1?i.translateY=r.substring(l+1,d).trim():(i.translateY=r.substring(l+1,u).trim(),i.translateZ=r.substring(u+1,d).trim())),s=r.substring(c,d)):t===`scale`||t===`scale3d`?l===-1?i.scale=r.substring(c,d).trim():(i.scaleX=r.substring(c,l).trim(),u===-1?i.scaleY=r.substring(l+1,d).trim():(i.scaleY=r.substring(l+1,u).trim(),i.scaleZ=r.substring(u+1,d).trim())):i[t]=r.substring(c,d)}if(t===`translate3d`&&s)return n&&(n[t]=s),s;let c=i[t];if(!R(c))return n&&(n[t]=c),c}return t===`translate3d`?`0px, 0px, 0px`:t===`rotate3d`?`0, 0, 0, 0deg`:L(t,`scale`)?`1`:L(t,`rotate`)||L(t,`skew`)?`0deg`:`0px`},Be=e=>{let t=``;for(let n=0,r=E.length;n<r;n++){let r=E[n],i=e[r];if(i!==void 0){if(r===`translateX`){let r=e.translateY;if(r!==void 0){let a=e.translateZ;a===void 0?(t+=`translate(${i},${r}) `,n+=1):(t+=`translate3d(${i},${r},${a}) `,n+=2);continue}}if(r===`scaleX`&&e.scale===void 0){let r=e.scaleY;if(r!==void 0){let a=e.scaleZ;a===void 0?(t+=`scale(${i},${r}) `,n+=1):(t+=`scale3d(${i},${r},${a}) `,n+=2);continue}}t+=`${D[r]}${i}) `}r===`rotateZ`&&e.rotate3d!==void 0&&(t+=`rotate3d(${e.rotate3d}) `)}return e.matrix!==void 0&&(t+=`matrix(${e.matrix}) `),e.matrix3d!==void 0&&(t+=`matrix3d(${e.matrix3d}) `),t},Ve=[];function He(e,t){if(!e)return null;let n=Ve.length;outer:for(let r=0;r<n;r++){let n=Ve[r];if(n.detect&&!n.detect(e))continue;let i=n.targetAdapters;for(let n=0,r=i.length;n<r;n++){let r=i[n];if(r.detect(e)){let n=r.props[t];if(n&&(!n.gate||n.gate(e)))return n;break outer}}}for(let r=0;r<n;r++){let n=Ve[r];if(n.detect&&!n.detect(e))continue;let i=n.propertyResolvers;for(let n=0,r=i.length;n<r;n++){let r=i[n](e,t);if(r)return r}}return null}var Ue=e=>{let t=ne.exec(e)||A.exec(e),n=R(t[4])?1:+t[4];return[+t[1],+t[2],+t[3],n]},We=e=>{let t=e.length,n=t===4||t===5;return[+(`0x`+e[1]+e[n?1:2]),+(`0x`+e[n?2:3]+e[n?2:4]),+(`0x`+e[n?3:5]+e[n?3:6]),t===5||t===9?+((`0x`+e[n?4:7]+e[n?4:8])/255).toFixed(3):1]},Ge=(e,t,n)=>(n<0&&(n+=1),n>1&&--n,n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e),Ke=e=>{let t=j.exec(e)||M.exec(e),n=t[1]/360,r=t[2]/100,i=t[3]/100,a=R(t[4])?1:+t[4],o,s,c;if(r===0)o=s=c=i;else{let e=i<.5?i*(1+r):i+r-i*r,t=2*i-e;o=V(Ge(t,e,n+1/3)*255,0),s=V(Ge(t,e,n)*255,0),c=V(Ge(t,e,n-1/3)*255,0)}return[o,s,c,a]},qe=e=>_e(e)?Ue(e):ge(e)?We(e):ve(e)?Ke(e):[0,0,0,1],W=(e,t)=>R(e)?t:e,Je=(e,t)=>{let n=e.match(ie),r=t[_]?t:document.documentElement,i=getComputedStyle(r)?.getPropertyValue(n[1]);return(!i||i.trim()===``)&&n[2]&&(i=n[2].trim()),i||0},Ye=(e,t,n,r,i,a)=>{if(me(e)){if(!i){let i=e(t,n,r,a);return isNaN(+i)?i||0:+i}let o=()=>{let i=e(t,n,r,a);return isNaN(+i)?i||0:+i};return i.func=o,o()}if(pe(e)&&L(e,`var(`)){if(!i)return Je(e,t);let n=()=>Je(e,t);return i.func=n,n()}return e},Xe=(e,t)=>e[_]?e[v]&&B(e,t)?f.ATTRIBUTE:E.includes(t)||T.get(t)?f.TRANSFORM:L(t,`--`)?f.CSS_VAR:t in e.style?f.CSS:t in e?f.OBJECT:f.ATTRIBUTE:f.OBJECT,Ze=(e,t,n)=>{let r=e.style[t];r&&n&&(n[t]=r);let i=r||getComputedStyle(e[b]||e).getPropertyValue(t);return i===`auto`?`0`:i},Qe=(e,t,n,r)=>{let i=R(n)?Xe(e,t):n,a=He(e,t);if(a){let n=a.get(e);return n&&r&&(r[t]=n),n??0}if(i===f.OBJECT){let n=e[t];return n&&r&&(r[t]=n),n||0}if(i===f.ATTRIBUTE){let n=e.getAttribute(t);return n&&r&&(r[t]=n),n}return i===f.TRANSFORM?ze(e,t,r):i===f.CSS_VAR?Ze(e,t,r).trimStart():Ze(e,t,r)},$e=(e,t,n)=>n===`-`?e-t:n===`+`?e+t:e*t,et=()=>({t:p.NUMBER,n:0,u:null,o:null,d:null,s:null}),G=(e,t)=>{if(t.t=p.NUMBER,t.n=0,t.u=null,t.o=null,t.d=null,t.s=null,!e)return t;let n=+e;if(!isNaN(n))return t.n=n,t;let r=e;r[1]===`=`&&(t.o=r[0],r=r.slice(2));let i=!r.includes(` `)&&P.exec(r);if(i)return t.t=p.UNIT,t.n=+i[1],t.u=i[2],t;if(t.o)return t.n=+r,t;if(ye(r))return t.t=p.COLOR,t.d=qe(r),t;{let e=r.match(N);return t.t=p.COMPLEX,t.d=e?e.map(Number):[],t.s=r.split(N)||[],t}},tt=(e,t)=>(t.t=e._valueType,t.n=e._toNumber,t.u=e._unit,t.o=null,t.d=H(e._toNumbers),t.s=H(e._strings),t),nt=et(),rt=(e,t,n)=>{let r=e._modifier,i=e._fromNumbers,a=e._toNumbers,o=e._strings,s=o[0];for(let c=0,l=a.length;c<l;c++){let l=r(V(Ne(i[c],a[c],t),n)),u=o[c+1];s+=`${u?l+u:l}`,e._numbers[c]=l}return s},it=(e,t,n,r,i)=>{let a=e.parent,o=e.duration,s=e.completed,c=e.iterationDuration,l=e.iterationCount,u=e._currentIteration,d=e._loopDelay,g=e._reversed,_=e._alternate,v=e._hasChildren,b=e._delay,S=e._currentTime,C=b+c,w=t-b,T=Me(S,-b,o),E=Me(w,-b,o),D=w-S,O=E>0,ee=E>=o,k=o<=x,te=i===m.FORCE,ne=0,A=w,j=0;if(l>1){let t=c+(ee?0:d),n=~~(E/t);e._currentIteration=Me(n,0,l),ee&&e._currentIteration--,ne=e._currentIteration%2,A=E-n*t||0}let M=g^(_&&ne),N=e._ease,P=ee?M?0:o:M?c-A:A;N&&(P=c*N(P/c)||0);let F=(a?a.backwards:w<S)?!M:!!M;if(e._currentTime=w,e._iterationTime=P,e.backwards=F,O&&!e.began?(e.began=!0,!n&&(!a||!F&&a.began)&&e.onBegin(e)):w<=0&&(e.began=!1),!n&&!v&&O&&e._currentIteration!==u&&e.onLoop(e),te||i===m.AUTO&&(t>=(a&&b>0?0:b)&&t<=C||t<=b&&T>b||t>=C&&T!==o)||P>=C&&T!==o||P<=b&&T>0&&!ee||t<=T&&T===o&&s||ee&&!s&&k){if(O&&(e.computeDeltaTime(T),n||e.onBeforeUpdate(e)),!v){let t=te||(F?D*-1:D)>=I.tickThreshold,i=V(e._offset+(a?a._offset:0)+b+P,12),o=e._head,s,c,l,u,d=0;for(;o;){let e=o._composition,n=o._currentTime,a=o._changeDuration,m=o._absoluteStartTime+o._changeDuration,g=o._nextRep,_=o._prevRep,v=e!==h.none,b=_?_._absoluteStartTime+_._changeDuration:0,x=_&&_.parent!==o.parent,S=!g||g._isOverridden?m:g.parent===o.parent?m+g._delay:g._absoluteStartTime<g._absoluteUpdateStartTime?g._absoluteStartTime:g._absoluteUpdateStartTime;if((t||(n!==a||i<=S||_&&!x&&(!g||g.parent!==o.parent))&&(n!==0||i>=o._absoluteStartTime||x&&!o._hasFromValue&&!_._isOverridden&&i>=b||g&&!g._isOverridden&&g.parent===o.parent&&g._currentTime!==0&&P<g._startTime))&&(!_||x||P>=o._startTime)&&(!v||!o._isOverridden&&(!o._isOverlapped||i<=m)&&(!g||g._isOverridden||i<=S)&&(!_||_._isOverridden||(x?i>=o._absoluteStartTime||!o._hasFromValue&&i>=b:i>=b+o._delay)))){let t=o._currentTime=Me(P-o._startTime,0,a),n=o._ease(t/o._updateDuration),i=o._modifier,m=o._valueType,g=o._tweenType,_=g===f.OBJECT,b=m===p.NUMBER,x=b&&_||n===0||n===1?-1:I.precision,S,C;if(b)S=C=i(V(Ne(o._fromNumber,o._toNumber,n),x));else if(m===p.UNIT)C=i(V(Ne(o._fromNumber,o._toNumber,n),x)),S=`${C}${o._unit}`;else if(m===p.COLOR){let e=o._numbers,t=o._fromNumbers,a=o._toNumbers,s=1-n,c=t[0],l=t[1],u=t[2],d=a[0],f=a[1],p=a[2];e[0]=i(Math.sqrt(c*c*s+d*d*n)),e[1]=i(Math.sqrt(l*l*s+f*f*n)),e[2]=i(Math.sqrt(u*u*s+p*p*n)),e[3]=i(Ne(t[3],a[3],n)),(!o._setter||r)&&(S=`rgba(${V(e[0],0)},${V(e[1],0)},${V(e[2],0)},${e[3]})`)}else m===p.COMPLEX&&(S=rt(o,n,x));if(v&&(o._number=C),!r&&e!==h.blend){let e=o.property;s=o.target,o._setter?o._setter(s,C,o):_?s[e]=S:g===f.ATTRIBUTE?s.setAttribute(e,S):(c=s.style,g===f.TRANSFORM?(s!==l&&(l=s,u=s[y]),u[e]=S,d=1):g===f.CSS?c[e]=S:g===f.CSS_VAR&&c.setProperty(e,S)),O&&(j=1)}else o._value=S}else n&&_&&!x&&P<o._startTime&&(o._currentTime=0);d&&o._renderTransforms&&(c.transform=Be(u),d=0),o=o._next}!n&&j&&e.onRender(e)}!n&&O&&e.onUpdate(e)}return a&&k?!n&&(a.began&&!F&&w>0&&!s||F&&w<=1e-11&&s)&&(e.onComplete(e),e.completed=!F):O&&ee?l===1/0?e._startTime+=e.duration:e._currentIteration>=l-1&&(e.paused=!0,!s&&!v&&(e.completed=!0,!n&&(!a||!F&&a.began)&&(e.onComplete(e),e._resolve(e)))):e.completed=!1,j},at=(e,t,n,r,i)=>{let a=e._currentIteration;if(it(e,t,n,r,i),e._hasChildren){let o=e,s=o.backwards,c=r?t:o._iterationTime,l=le(),u=0,d=!0;if(!r&&o._currentIteration!==a){let e=o.iterationDuration;U(o,t=>{if(!s)!t.completed&&!t.backwards&&t._currentTime<t.iterationDuration&&it(t,e,n,1,m.FORCE),t.began=!1,t.completed=!1;else{let r=t.duration,i=t._offset+t._delay,a=i+r;!n&&r<=1e-11&&(!i||a===e)&&t.onComplete(t)}}),n||o.onLoop(o)}U(o,e=>{let t=V((c-e._offset)*e._speed,12);if(s&&t>e._delay+e.duration)return;let a=e._fps<o._fps?e.requestTick(l):i;u+=it(e,t,n,r,a),!e.completed&&d&&(d=!1)},s),!n&&u&&o.onRender(o),(d||s)&&o._currentTime>=o.duration&&(o.paused=!0,o.completed||(o.completed=!0,n||(o.onComplete(o),o._resolve(o))))}},ot={},st=(e,t,n)=>{if(n===f.TRANSFORM)return T.get(e)||e;if(n===f.CSS||n===f.ATTRIBUTE&&z(t)&&e in t.style){let t=ot[e];if(t)return t;{let t=e&&ce(e);return ot[e]=t,t}}return e},ct=(e,t=!1)=>{if(e._hasChildren)U(e,e=>ct(e,t),!0);else{let n=e;n.pause(),U(n,e=>{let r=e.property,i=e.target,a=e._tweenType,o=e._inlineValue,s=he(o)||o===``;if(e._setter){if(!t&&!s){if(G(o,nt),nt.d){let t=nt.d,n=e._numbers;for(let e=0,r=t.length;e<r;e++)n[e]=t[e]}else e._number=nt.n;e._setter(e.target,e._number,e)}}else if(a===f.OBJECT)!t&&!s&&(i[r]=o);else if(i[_]){if(a===f.ATTRIBUTE)t||(s?i.removeAttribute(r):i.setAttribute(r,o));else{let t=i.style;if(a===f.TRANSFORM){let n=i[y];s?delete n[r]:n[r]=o,e._renderTransforms&&(Object.keys(n).length?t.transform=Be(n):t.removeProperty(`transform`))}else s?t.removeProperty(ce(r)):t[r]=o}}i[_]&&n._tail===e&&n.targets.forEach(e=>{e.getAttribute&&e.getAttribute(`style`)===``&&e.removeAttribute(`style`)})})}return e},lt=class{constructor(e=0){this.deltaTime=0,this._currentTime=e,this._lastTickTime=e,this._startTime=e,this._lastTime=e,this._frameDuration=C/240,this._fps=240,this._speed=1,this._hasChildren=!1,this._head=null,this._tail=null}get fps(){return this._fps}set fps(e){let t=+e,n=t<1e-11?x:t,r=C/n;n>ae.frameRate&&(ae.frameRate=n),this._fps=n,this._frameDuration=r}get speed(){return this._speed}set speed(e){let t=+e;this._speed=t<1e-11?x:t}requestTick(e){let t=this._frameDuration,n=e-this._lastTickTime,r=t*.25;return n+(r<4?r:4)<t?m.NONE:(this._lastTickTime=n>=t?e-n%t:e,m.AUTO)}computeDeltaTime(e){let t=e-this._lastTime;return this.deltaTime=t,this._lastTime=e,t}},ut={animation:null,update:O},dt=e=>{let t=ut.animation;return t||(t={duration:x,computeDeltaTime:O,_offset:0,_delay:0,_head:null,_tail:null},ut.animation=t,ut.update=()=>{e.forEach(e=>{for(let t in e){let n=e[t],r=n._head;if(r){let e=r._valueType,t=e===p.COMPLEX||e===p.COLOR?H(r._fromNumbers):null,i=r._fromNumber,a=n._tail;for(;a&&a!==r;){if(t)for(let e=0,n=a._numbers.length;e<n;e++)t[e]+=a._numbers[e];else i+=a._number;a=a._prevAdd}r._toNumber=i,r._toNumbers=t}}}),it(t,1,1,0,m.FORCE)}),t},ft=l?requestAnimationFrame:setImmediate,pt=l?cancelAnimationFrame:clearImmediate,mt=class extends lt{constructor(e){super(e),this.useDefaultMainLoop=!0,this.pauseOnDocumentHidden=!0,this.defaults=ae,this.paused=!0,this.reqId=0}update(){let e=this._currentTime=le();if(this.requestTick(e)){this.computeDeltaTime(e);let t=this._speed,n=this._fps,r=this._head;for(;r;){let i=r._next;r.paused?(Le(this,r),this._hasChildren=!!this._tail,r._running=!1,r.completed&&!r._cancelled&&r.cancel()):at(r,(e-r._startTime)*r._speed*t,0,0,r._fps<n?r.requestTick(e):m.AUTO),r=i}ut.update()}}wake(){return this.useDefaultMainLoop&&!this.reqId&&(this.requestTick(le()),this.reqId=ft(ht)),this}pause(){if(this.reqId)return this.paused=!0,gt()}resume(){if(this.paused)return this.paused=!1,U(this,e=>e.resetTime()),this.wake()}get speed(){return this._speed*(I.timeScale===1?1:C)}set speed(e){let t=e*I.timeScale;this._speed!==t&&(this._speed=t,U(this,e=>e.speed=e._speed))}get timeUnit(){return I.timeScale===1?`ms`:`s`}set timeUnit(e){let t=.001,n=e===`s`,r=n?t:1;if(I.timeScale!==r){I.timeScale=r,I.tickThreshold=200*r;let e=n?t:C;this.defaults.duration*=e,this._speed*=e}}get precision(){return I.precision}set precision(e){I.precision=e}},K=(()=>{let e=new mt(le());return l&&(se.engine=e,d.addEventListener(`visibilitychange`,()=>{e.pauseOnDocumentHidden&&(d.hidden?e.pause():e.resume())})),e})(),ht=()=>{K._head?(K.reqId=ft(ht),K.update()):K.reqId=0},gt=()=>(pt(K.reqId),K.reqId=0,K),_t={_rep:new WeakMap,_add:new Map},vt=(e,t,n=`_rep`)=>{let r=_t[n],i=r.get(e);return i||(i={},r.set(e,i)),i[t]?i[t]:i[t]={_head:null,_tail:null}},yt=(e,t)=>e._isOverridden||e._absoluteStartTime>t._absoluteStartTime,bt=e=>{e._isOverlapped=1,e._isOverridden=1,e._changeDuration=x,e._currentTime=x},xt=(e,t)=>{let n=e._composition;if(n===h.replace){let n=e._absoluteStartTime;Re(t,e,yt,`_prevRep`,`_nextRep`);let r=e._prevRep;if(r){let t=r.parent,i=r._absoluteEndTime;if(e.parent.id!==t.id&&t.iterationCount>1&&i+(t.duration-t.iterationDuration)>n){bt(r);let e=r._prevRep;for(;e&&e.parent.id===t.id;)bt(e),e=e._prevRep}let a=e._absoluteUpdateStartTime;if(i>a){let e=r._startTime,t=V(a-(i-(e+r._updateDuration))-e,12);r._changeDuration=t,r._currentTime=t,r._isOverlapped=1,t<1e-11&&bt(r)}let o=e.parent.parent;if(!o||o!==t.parent){let e=!0;if(U(t,t=>{t._isOverlapped||(e=!1)}),e){let e=t.parent;if(e){let n=!0;U(e,e=>{e!==t&&U(e,e=>{e._isOverlapped||(n=!1)})}),n&&e.cancel()}else t.cancel()}}}}else if(n===h.blend){let t=vt(e.target,e.property,`_add`),n=dt(_t._add),r=t._head;r||(r={...e},r._composition=h.replace,r._updateDuration=x,r._startTime=0,r._numbers=H(e._fromNumbers),r._number=0,r._next=null,r._prev=null,Re(t,r),Re(n,r));let i=e._toNumber;if(e._fromNumber=r._fromNumber-i,e._toNumber=0,e._numbers=H(e._fromNumbers),e._number=0,r._fromNumber=i,e._toNumbers.length){let t=H(e._toNumbers);t.forEach((t,n)=>{e._fromNumbers[n]=r._fromNumbers[n]-t,e._toNumbers[n]=0}),r._fromNumbers=t}Re(t,e,null,`_prevAdd`,`_nextAdd`)}return e},St=e=>{let t=e._composition;if(t!==h.none){let n=e.target,r=e.property,i=_t._rep.get(n)[r];if(Le(i,e,`_prevRep`,`_nextRep`),t===h.blend){let t=_t._add,i=t.get(n);if(!i)return;let a=i[r],o=ut.animation;Le(a,e,`_prevAdd`,`_nextAdd`);let s=a._head;if(s&&s===a._tail){Le(a,s,`_prevAdd`,`_nextAdd`),Le(o,s);let e=!0;for(let t in i)if(i[t]._head){e=!1;break}e&&t.delete(n)}}}return e},Ct=(e,t,n)=>{let r=!1;return U(t,i=>{let a=i.target;if(e.includes(a)){let e=i.property,o=i._tweenType,s=st(n,a,o);(!s||s&&s===e)&&(i.parent._tail===i&&i._tweenType===f.TRANSFORM&&i._prev&&i._prev._tweenType===f.TRANSFORM&&(i._prev._renderTransforms=1),Le(t,i),St(i),r=!0)}},!0),r},wt=(e,t,n)=>{let r=t||K,i;if(r._hasChildren){let t=0;U(r,a=>{if(!a._hasChildren){if(i=Ct(e,a,n),i&&!a._head)a.cancel(),Le(r,a);else{let e=a._offset+a._delay+a.duration;e>t&&(t=e)}}a._head?wt(e,a,n):a._hasChildren=!1},!0),R(r.iterationDuration)||(r.iterationDuration=t)}else i=Ct(e,r,n);i&&!r._head&&(r._hasChildren=!1,r.cancel&&r.cancel())},Tt=e=>(e.paused=!0,e.began=!1,e.completed=!1,e),Et=e=>e._cancelled?(e._hasChildren?U(e,Et):U(e,e=>{e._composition!==h.none&&xt(e,vt(e.target,e.property))}),e._cancelled=0,e):e,Dt=0,Ot=(e,t)=>e._priority>t._priority,kt=class extends lt{constructor(e={},t=null,n=0){super(0),++Dt;let{id:r,delay:i,duration:a,reversed:o,alternate:s,loop:c,loopDelay:l,autoplay:u,frameRate:d,playbackRate:f,priority:p,onComplete:m,onLoop:h,onPause:g,onBegin:_,onBeforeUpdate:v,onUpdate:y}=e;oe.current&&oe.current.register(this);let b=t?0:K._lastTickTime,x=t?t.defaults:I.defaults,S=me(i)||R(i)?x.delay:+i,C=me(a)||R(a)?1/0:+a,w=W(c,x.loop),T=W(l,x.loopDelay),E=w===!0||w===1/0||w<0?1/0:w+1,D=0;t?D=n:(K.reqId||K.requestTick(le()),D=(K._lastTickTime-K._startTime)*I.timeScale),this.id=R(r)?Dt:r,this.parent=t,this.duration=Pe((C+T)*E-T)||1e-11,this.backwards=!1,this.paused=!0,this.began=!1,this.completed=!1,this.onBegin=_||x.onBegin,this.onBeforeUpdate=v||x.onBeforeUpdate,this.onUpdate=y||x.onUpdate,this.onLoop=h||x.onLoop,this.onPause=g||x.onPause,this.onComplete=m||x.onComplete,this.iterationDuration=C,this.iterationCount=E,this._autoplay=!t&&W(u,x.autoplay),this._offset=D,this._delay=S,this._loopDelay=T,this._iterationTime=0,this._currentIteration=0,this._resolve=O,this._running=!1,this._reversed=+W(o,x.reversed),this._reverse=this._reversed,this._cancelled=0,this._alternate=W(s,x.alternate),this._prev=null,this._next=null,this._lastTickTime=b,this._startTime=b,this._lastTime=b,this._fps=W(d,x.frameRate),this._speed=W(f,x.playbackRate),this._priority=+W(p,1)}get cancelled(){return!!this._cancelled}set cancelled(e){e?this.cancel():this.reset(!0).play()}get currentTime(){return Me(V(this._currentTime,I.precision),-this._delay,this.duration)}set currentTime(e){let t=this.paused;this.pause().seek(+e),t||this.resume()}get iterationCurrentTime(){return Me(V(this._iterationTime,I.precision),0,this.iterationDuration)}set iterationCurrentTime(e){this.currentTime=this.iterationDuration*this._currentIteration+e}get progress(){return Me(V(this._currentTime/this.duration,10),0,1)}set progress(e){this.currentTime=this.duration*e}get iterationProgress(){return Me(V(this._iterationTime/this.iterationDuration,10),0,1)}set iterationProgress(e){let t=this.iterationDuration;this.currentTime=t*this._currentIteration+t*e}get currentIteration(){return this._currentIteration}set currentIteration(e){this.currentTime=this.iterationDuration*Me(+e,0,this.iterationCount-1)}get reversed(){return!!this._reversed}set reversed(e){e?this.reverse():this.play()}get speed(){return super.speed}set speed(e){super.speed=e,this.resetTime()}reset(e=!1){return Et(this),this._reversed&&!this._reverse&&(this.reversed=!1),this._iterationTime=this.iterationDuration,at(this,0,1,~~e,m.FORCE),Tt(this),this._hasChildren&&U(this,Tt),this}init(e=!1){this.fps=this._fps,this.speed=this._speed,!e&&this._hasChildren&&at(this,this.duration,1,~~e,m.FORCE),this.reset(e);let t=this._autoplay;return t===!0?this.resume():t&&!R(t.linked)&&t.link(this),this}resetTime(){let e=1/(this._speed*K._speed);return this._startTime=le()-(this._currentTime+this._delay)*e,this}pause(){return this.paused?this:(this.paused=!0,this.onPause(this),this)}resume(){return this.paused?(this.paused=!1,this.duration<=1e-11&&!this._hasChildren?at(this,x,0,0,m.FORCE):(this._running||=(Re(K,this,Ot),K._hasChildren=!0,!0),this.resetTime(),this._startTime-=12,K.wake()),this):this}restart(){return this.reset().resume()}seek(e,t=0,n=0){Et(this),this.completed=!1;let r=this.paused;return this.paused=!0,at(this,e+this._delay,~~t,~~n,m.AUTO),r?this:this.resume()}alternate(){let e=this._reversed,t=this.iterationCount,n=this.iterationDuration,r=t===1/0?Oe(S/n):t;return this._reversed=+(this._alternate&&!(r%2)?e:!e),t===1/0?this.iterationProgress=this._reversed?1-this.iterationProgress:this.iterationProgress:this.seek(n*r-this._currentTime),this.resetTime(),this}play(){return this._reversed&&this.alternate(),this.resume()}reverse(){return this._reversed||this.alternate(),this.resume()}cancel(){return this._hasChildren?U(this,e=>e.cancel(),!0):U(this,St),this._cancelled=1,this.pause()}stretch(e){let t=this.duration,n=Fe(e);if(t===n)return this;let r=e/t,i=e<=x;return this.duration=i?x:n,this.iterationDuration=i?x:Fe(this.iterationDuration*r),this._offset*=r,this._delay*=r,this._loopDelay*=r,this}revert(){at(this,0,1,0,m.AUTO);let e=this._autoplay;return e&&e.linked&&e.linked===this&&e.revert(),this.cancel()}complete(e=0){return this.seek(this.duration,e).cancel()}then(e=O){let t=this.then,n=()=>{this.then=null,e(this),this.then=t,this._resolve=O};return new Promise(e=>(this._resolve=()=>e(n()),this.completed&&this._resolve(),this))}};function At(e){let t=pe(e)?oe.root.querySelectorAll(e):e;if(t instanceof NodeList||t instanceof HTMLCollection)return t}function jt(e){if(he(e))return[];if(!l)return ue(e)&&e.flat(1/0)||[e];if(ue(e)){let t=e.flat(1/0),n=[];for(let e=0,r=t.length;e<r;e++){let r=t[e];if(!he(r)){let e=At(r);if(e)for(let t=0,r=e.length;t<r;t++){let r=e[t];if(!he(r)){let e=!1;for(let t=0,i=n.length;t<i;t++)if(n[t]===r){e=!0;break}e||n.push(r)}}else{let e=!1;for(let t=0,i=n.length;t<i;t++)if(n[t]===r){e=!0;break}e||n.push(r)}}}return n}let t=At(e);return t?Array.from(t):[e]}function Mt(e){let t=jt(e),n=t.length;for(let e=0;e<n;e++){let n=t[e];if(!n[g]){n[g]=!0;let e=z(n);(n.nodeType||e)&&(n[_]=!0,n[v]=e,n[y]={})}}return t}var Nt={deg:1,rad:180/Ae,turn:360},Pt={},Ft=(e,t,n,r=!1)=>{let i=t.u,a=t.n;if(t.t===p.UNIT&&i===n)return t;let o=a+i+n,s=Pt[o];if(!R(s)&&!r)t.n=s;else{let r;if(i in Nt)r=a*Nt[i]/Nt[n];else{let t=e.cloneNode(),o=e.parentNode,s=o&&o!==d?o:d.body;s.appendChild(t);let c=t.style;c.width=100+i;let l=t.offsetWidth||100;c.width=100+n;let u=l/(t.offsetWidth||100);s.removeChild(t),r=u*a}t.n=r,Pt[o]=r}return t.t,p.UNIT,t.u=n,t},It=e=>e,Lt=(e=1.68)=>t=>Ce(t,+e),Rt={in:e=>t=>e(t),out:e=>t=>1-e(1-t),inOut:e=>t=>t<.5?e(t*2)/2:1-e(t*-2+2)/2,outIn:e=>t=>t<.5?(1-e(1-t*2))/2:(e(t*2-1)+1)/2},zt=Ae/2,Bt=Ae*2,Vt={"":Lt,Quad:Lt(2),Cubic:Lt(3),Quart:Lt(4),Quint:Lt(5),Sine:e=>1-Ee(e*zt),Circ:e=>1-we(1-e*e),Expo:e=>e?Ce(2,10*e-10):0,Bounce:e=>{let t,n=4;for(;e<((t=Ce(2,--n))-1)/11;);return 1/Ce(4,3-n)-7.5625*Ce((t*3-2)/22-e,2)},Back:(e=1.7)=>t=>(+e+1)*t*t*t-+e*t*t,Elastic:(e=1,t=.3)=>{let n=Me(+e,1,10),r=Me(+t,x,2),i=r/Bt*ke(1/n),a=Bt/r;return e=>e===0||e===1?e:-n*Ce(2,-10*(1-e))*Te((1-e-i)*a)}},Ht=(()=>{let e={linear:It,none:It};for(let t in Rt)for(let n in Vt){let r=Vt[n],i=Rt[t];e[t+n]=n===``||n===`Back`||n===`Elastic`?(e,t)=>i(r(e,t)):i(r)}return e})(),Ut={linear:It,none:It},Wt=e=>{if(Ut[e])return Ut[e];if(e.indexOf(`(`)<=-1){let t=Rt[e]||e.includes(`Back`)||e.includes(`Elastic`)?Ht[e]():Ht[e];return t?Ut[e]=t:It}{let t=e.slice(0,-1).split(`(`),n=Ht[t[0]];return n?Ut[e]=n(...t[1].split(`,`)):It}},Gt=[`steps(`,`irregular(`,`linear(`,`cubicBezier(`],Kt=e=>{if(pe(e)){for(let t=0,n=Gt.length;t<n;t++)if(L(e,Gt[t]))return console.warn(`String syntax for \`ease: "${e}"\` has been removed from the core and replaced by importing and passing the easing function directly: \`ease: ${e}\``),It}return me(e)?e:pe(e)?Wt(e):It},q=et(),J=et(),qt={},Jt={func:null},Yt={func:null},Xt=[null],Zt=[null,null],Qt={to:null},$t=0,en=0,tn,nn,rn=(e,t)=>{let n={};if(ue(e)){let t=[].concat(...e.map(e=>Object.keys(e))).filter(be);for(let r=0,i=t.length;r<i;r++){let i=t[r];n[i]=e.map(e=>{let t={};for(let n in e){let r=e[n];be(n)?n===i&&(t.to=r):t[n]=r}return t})}}else{let r=W(t.duration,I.defaults.duration);Object.keys(e).map(t=>({o:parseFloat(t)/100,p:e[t]})).sort((e,t)=>e.o-t.o).forEach(e=>{let t=e.o,i=e.p;for(let e in i)if(be(e)){let a=n[e];a||=n[e]=[];let o=t*r,s=a.length,c=a[s-1],l={to:i[e]},u=0;for(let e=0;e<s;e++)u+=a[e].duration;s===1&&(l.from=c.to),i.ease&&(l.ease=i.ease),l.duration=o-(s?u:0),a.push(l)}return e});for(let e in n){let t=n[e],r;for(let e=0,n=t.length;e<n;e++){let n=t[e],i=n.ease;n.ease=r||void 0,r=i}t[0].duration||t.shift()}}return n},an=class extends kt{constructor(e,t,n,r,i=!1,a=0,o){super(t,n,r),this._head,this._tail,++en;let s=Mt(e),c=s.length,l=t.keyframes,u=l?Ie(rn(l,t),t):t,{id:d,delay:m,duration:g,ease:_,playbackEase:v,modifier:y,composition:b,onRender:S}=u,C=n?n.defaults:I.defaults,T=W(_,C.ease),E=W(v,C.playbackEase),D=E?Kt(E):null,O=!R(T.ease),ee=O?T.ease:W(_,D?`linear`:C.ease),k=O?T.settlingDuration:W(g,C.duration),te=W(m,C.delay),ne=y||C.modifier,A=R(b)&&c>=1e3?h.none:R(b)?C.composition:b,j=this._offset+(n?n._offset:0);O&&(T.parent=this);let M=NaN,N=NaN,P=0,F=0;for(let e=0;e<c;e++){let t=s[e],r=a||e,c=o||s,l=NaN,d=NaN;for(let e in u)if(be(e)){let a=Xe(t,e),o=He(t,e),s=st(e,t,a),m=u[e],g=ue(m);if(i&&!g&&(Zt[0]=m,Zt[1]=m,m=Zt),g){let e=m.length,t=!de(m[0]);e===2&&t?(Qt.to=m,Xt[0]=Qt,tn=Xt):e>2&&t?(tn=[],m.forEach((e,t)=>{t?t===1?(Zt[1]=e,tn.push(Zt)):tn.push(e):Zt[0]=e})):tn=m}else Xt[0]=m,tn=Xt;let _=null,v=null,y=NaN,b=0,x=0;for(let e=tn.length;x<e;x++){let i=tn[x];de(i)?nn=i:(Qt.to=i,nn=Qt),Jt.func=null,Yt.func=null;let l=Ye(W(nn.composition,A),t,r,c,null,null),u=fe(l)?l:h[l];!_&&u!==h.none&&(_=vt(t,s));let d=_?_._tail:null,f=n&&d&&d.parent.parent===n?d:v,m=Ye(nn.to,t,r,c,Jt,f),g;de(m)&&!R(m.to)?(nn=m,g=m.to):g=m;let S=Ye(nn.from,t,r,c,Yt,f),C=nn.ease||ee,T=Ye(C,t,r,c,null,f),E=me(T)||pe(T)?T:C,D=!R(E)&&!R(E.ease),O=D?E.ease:E,M=D?E.settlingDuration:Ye(W(nn.duration,e>1?Ye(k,t,r,c,null,f)/e:k),t,r,c,null,f),N=Ye(W(nn.delay,x?0:te),t,r,c,null,f),re=nn.modifier||ne,ie=!R(S),ae=!R(g),oe=ue(g),I=oe||ie&&ae,se=v?b:0,ce=v?b+N:N,L=V(j+ce,12),le=V(j+se,12);!F&&(ie||oe)&&(F=1);let z=v;if(u!==h.none){let e=_._head;for(;e&&e._absoluteStartTime<=L;)if(e._isOverridden||(z=e),e=e._nextRep,e&&e._absoluteStartTime>=L)for(;e;)bt(e),e=e._nextRep}if(I){G(oe?Ye(g[0],t,r,c,Yt,f):S,q),G(oe?Ye(g[1],t,r,c,Jt,f):g,J);let e=Qe(t,s,a,qt);q.t===p.NUMBER&&(z?z._valueType===p.UNIT&&(q.t=p.UNIT,q.u=z._unit):(G(e,nt),nt.t===p.UNIT&&(q.t=p.UNIT,q.u=nt.u)))}else ae?G(g,J):v?tt(v,J):G(n&&z&&z.parent.parent===n?z._value:Qe(t,s,a,qt),J),ie?G(S,q):v?tt(v,q):G(n&&z&&z.parent.parent===n?z._value:Qe(t,s,a,qt),q);if(q.o&&(q.n=$e(z?z._toNumber:G(Qe(t,s,a,qt),nt).n,q.n,q.o)),J.o&&(J.n=$e(q.n,J.n,J.o)),q.t!==J.t){if(q.t===p.COMPLEX||J.t===p.COMPLEX){let e=q.t===p.COMPLEX?q:J,t=q.t===p.COMPLEX?J:q;t.t=p.COMPLEX,t.s=H(e.s),t.d=e.d.map(()=>t.n)}else if(q.t===p.UNIT||J.t===p.UNIT){let e=q.t===p.UNIT?q:J,t=q.t===p.UNIT?J:q;t.t=p.UNIT,t.u=e.u}else if(q.t===p.COLOR||J.t===p.COLOR){let e=q.t===p.COLOR?q:J,t=q.t===p.COLOR?J:q;t.t=p.COLOR,t.d=e.d.map(()=>0)}}if(q.u!==J.u){let e=J.u?q:J;e=Ft(t,e,J.u?J.u:q.u,!1)}if(J.d&&q.d&&J.d.length!==q.d.length){let e=q.d.length>J.d.length?q:J,t=e===q?J:q;t.d=e.d.map((e,n)=>R(t.d[n])?0:t.d[n]),t.s=H(e.s)}let ge=V(+M||1e-11,12),_e=qt[s];he(_e)||(qt[s]=null);let ve=o?o.set:null;b=V(ce+ge,12);let ye=q.d,be=J.d,xe=J.s,B={parent:this,id:$t++,property:s,target:t,_value:null,_toFunc:Jt.func,_fromFunc:Yt.func,_ease:Kt(O),_fromNumbers:ye?H(ye):w,_toNumbers:be?H(be):w,_strings:xe?H(xe):w,_fromNumber:q.n,_toNumber:J.n,_numbers:ye?H(ye):w,_number:q.n,_unit:J.u,_modifier:re,_currentTime:0,_startTime:ce,_delay:+N,_updateDuration:ge,_changeDuration:ge,_absoluteStartTime:L,_absoluteUpdateStartTime:le,_absoluteEndTime:V(j+b,12),_hasFromValue:ie||oe?1:0,_tweenType:a,_setter:ve,_valueType:J.t,_composition:u,_isOverlapped:0,_isOverridden:0,_renderTransforms:0,_inlineValue:_e,_prevRep:null,_nextRep:null,_prevAdd:null,_nextAdd:null,_prev:null,_next:null};u!==h.none&&xt(B,_);let Se=B._valueType;if(Se===p.COMPLEX)B._value=rt(B,1,-1);else if(Se===p.UNIT)B._value=`${re(B._toNumber)}${B._unit}`;else if(Se===p.COLOR){let e=J.d;B._value=`rgba(${V(e[0],0)},${V(e[1],0)},${V(e[2],0)},${e[3]})`}else B._value=re(B._toNumber);isNaN(y)&&(y=B._startTime),v=B,P++,Re(this,B)}(isNaN(N)||y<N)&&(N=y),(isNaN(M)||b>M)&&(M=b),a===f.TRANSFORM&&(l=P-x,d=P)}if(!isNaN(l)){let e=0;U(this,t=>{e>=l&&e<d&&(t._renderTransforms=1,t._composition===h.blend&&U(ut.animation,e=>{e.id===t.id&&(e._renderTransforms=1)})),e++})}}c||console.warn(`No target found. Make sure the element you're trying to animate is accessible before creating your animation.`),N?(U(this,e=>{e._startTime-e._delay||(e._delay-=N),e._startTime-=N}),M-=N):N=0,M||(M=x,this.iterationCount=0),this.targets=s,this.id=R(d)?en:d,this.duration=M===1e-11?x:Pe((M+this._loopDelay)*this.iterationCount-this._loopDelay)||1e-11,this.onRender=S||C.onRender,this._ease=D,this._delay=N,this.iterationDuration=M,!this._autoplay&&F&&this.onRender(this)}stretch(e){let t=this.duration;if(t===Fe(e))return this;let n=e/t;return U(this,e=>{e._updateDuration=Fe(e._updateDuration*n),e._changeDuration=Fe(e._changeDuration*n),e._currentTime*=n,e._delay*=n,e._startTime*=n,e._absoluteStartTime*=n,e._absoluteUpdateStartTime*=n,e._absoluteEndTime*=n}),super.stretch(e)}refresh(){return U(this,e=>{let t=e._toFunc,n=e._fromFunc;(t||n)&&(n?(G(n(),q),q.u!==e._unit&&e.target[_]&&Ft(e.target,q,e._unit,!0),e._fromNumbers=H(q.d),e._fromNumber=q.n):t&&(G(Qe(e.target,e.property,e._tweenType),nt),e._fromNumbers=H(nt.d),e._fromNumber=nt.n),t&&(G(t(),J),e._toNumbers=H(J.d),e._strings=H(J.s),e._toNumber=J.o?$e(e._fromNumber,J.n,J.o):J.n))}),this.duration===1e-11&&this.restart(),this}revert(){return super.revert(),ct(this)}then(e){return super.then(e)}},on=(e,t)=>I.editor?I.editor.addAnimation(e,t):new an(e,t,null,0,!1).init(),sn=(e,t)=>{if(L(t,`<`)){let n=t[1]===`<`,r=e._tail,i=r?r._offset+r._delay:0;return n?i:i+r.duration}},cn=(e,t)=>{let n=e.iterationDuration;if(n===1e-11&&(n=0),R(t))return n;if(fe(+t))return+t;let r=t,i=e?e.labels:null,a=!he(i),o=sn(e,r),s=!R(o),c=re.exec(r);if(c){let e=c[0],t=r.split(e),l=a&&t[0]?i[t[0]]:n;return $e(s?o:a?l:n,+t[1],e[0])}return s?o:a?R(i[r])?n:i[r]:n},ln=(e,t)=>{if(!R(t))return I.editor&&I.editor.addSet?I.editor.addSet(e,t):(t.duration=x,t.composition=W(t.composition,h.none),new an(e,t,null,0,!0).resume())},un=(e=0,t=1,n=0)=>{let r=10**n;return Math.floor((Math.random()*(t-e+1/r)+e)*r)/r},dn=0,fn=(e,t=0,n=1,r=0)=>{let i=e===void 0?dn++:e;return(e=t,a=n,o=r)=>{i+=1831565813,i=Math.imul(i^i>>>15,i|1),i^=i+Math.imul(i^i>>>7,i|61);let s=10**o;return Math.floor((((i^i>>>14)>>>0)/4294967296*(a-e+1/s)+e)*s)/s}},pn=(e,t=un)=>{let n=e.length,r,i;for(;n;)i=t(0,--n),r=e[n],e[n]=e[i],e[i]=r;return e},mn=(e,t={})=>{let n=[],r=0,i,a=null,o=t.from,s=t.reversed,c=t.ease,l=!R(c),u=l&&!R(c.ease)?c.ease:l?Kt(c):null,d=t.grid,f=d===!0,p=t.axis,m=t.total,h=R(o)||o===0||o===`first`,g=o===`center`,_=o===`last`,v=o===`random`,y=ue(o),b=ue(e),x=t.use,S=Se(b?e[0]:e),C=b?Se(e[1]):0,w=P.exec((b?e[1]:e)+``),T=t.start||0+(b?S:0),E=t.seed,D=!R(E)&&E!==!1?fn(E===!0?0:E):un,O=t.jitter,ee=!R(O),k=ue(O),te=k?O[0]:O||0,ne=k?O[1]:O||0,A=h?0:fe(o)?o:0;return(e,c,l,h,E)=>{let[O]=Mt(e),k=R(m)?l.length:m,j=R(x)?!1:me(x)?x(O,c,k):Qe(O,x),M=fe(j)||pe(j)&&fe(+j)?+j:c,N=M>=0&&M<k?M:c;if(g&&(A=(k-1)/2),_&&(A=k-1),!n.length){if(f){let e=!0,t=!1,r=1/0,i=1/0,a=1/0,s=-1/0,c=-1/0,u=-1/0,d=[],f=[],m=[];for(let n=0;n<k;n++){let o=l[n],p=0,h=0,g=0,_=!1;if(o&&me(o.getBoundingClientRect)){let e=o.getBoundingClientRect();p=e.left+e.width/2,h=e.top+e.height/2,_=!0}else{let e=o;e&&fe(e.x)&&fe(e.y)&&(p=e.x,h=e.y,fe(e.z)&&(g=e.z,t=!0),_=!0)}if(!_){e=!1;break}d.push(p),f.push(h),m.push(g),p<r&&(r=p),h<i&&(i=h),g<a&&(a=g),p>s&&(s=p),h>c&&(c=h),g>u&&(u=g)}if(e){let e=d[0],l=f[0],h=m[0];y?(e=r+o[0]*(s-r),l=i+o[1]*(c-i),h=t?a+(o.length>=3?o[2]:.5)*(u-a):0):g?(e=(r+s)/2,l=(i+c)/2,h=(a+u)/2):_?(e=d[k-1],l=f[k-1],h=m[k-1]):fe(o)&&(e=d[o],l=f[o],h=m[o]);for(let r=0;r<k;r++){let i=e-d[r],a=l-f[r],o=h-m[r],s=we(i*i+a*a+(t?o*o:0));p===`x`&&(s=-i),p===`y`&&(s=-a),p===`z`&&(s=-o),n.push(s)}let v=1/0;for(let e=0;e<k;e++){let t=De(n[e]);t>0&&t<v&&(v=t)}if(v>0&&v<1/0)for(let e=0;e<k;e++)n[e]=n[e]/v}else for(let e=0;e<k;e++)n.push(De(A-e))}else for(let e=0;e<k;e++)if(!d)n.push(De(A-e));else{let t=d.length,r=d[0]*d[1],i,a,s;y?(i=o[0]*(d[0]-1),a=o[1]*(d[1]-1),s=t===3?(o.length>=3?o[2]:.5)*(d[2]-1):0):g?(i=(d[0]-1)/2,a=(d[1]-1)/2,s=t===3?(d[2]-1)/2:0):(i=A%d[0],a=Oe(A/d[0])%d[1],s=t===3?Oe(A/r):0);let c=e%d[0],l=Oe(e/d[0])%d[1],u=t===3?Oe(e/r):0,f=i-c,m=a-l,h=s-u,_=we(f*f+m*m+(t===3?h*h:0));p===`x`&&(_=-f),p===`y`&&(_=-m),p===`z`&&(_=-h),n.push(_)}r=n[0];for(let e=1;e<k;e++)n[e]>r&&(r=n[e]);if(u||s)for(let e=0;e<k;e++){let t=n[e];u&&(t=u(t/r)*r),s&&(t=p?-t:De(r-t)),n[e]=t}if(ee){a=Array(k);for(let e=0;e<k;e++)a[e]=D(-1,1,4)}v&&(n=pn(n,D))}let P=b?(C-S)/r:S;R(i)&&(i=E?cn(E,R(t.start)?E.iterationDuration:T):T);let F=i+(P*V(n[N],2)||0);if(ee){let e=r?n[N]/r:0,t=te+(ne-te)*e;F+=a[N]*t}return t.modifier&&(F=t.modifier(F)),w&&(F=`${F}${w[2]}`),F}},hn=r(),gn=n(),Y=e(t(),1);function _n(){return typeof window>`u`||!window.matchMedia?!1:!window.matchMedia(`(prefers-reduced-motion: reduce)`).matches}function vn(e,t){let n=setTimeout(()=>e.complete(),t+400);return()=>{clearTimeout(n),e.complete()}}function yn(e,t=700){let n=typeof e==`number`&&Number.isFinite(e)?e:null,r=n!==null&&_n(),[i,a]=(0,Y.useState)(0),o=(0,Y.useRef)(0);return(0,Y.useEffect)(()=>{if(!r)return;let e={n:o.current},i=on(e,{n,duration:t,ease:`outExpo`,onUpdate:()=>{o.current=e.n,a(e.n)},onComplete:()=>{o.current=n,a(n)}}),s=setTimeout(()=>i.complete(),t+400);return()=>{clearTimeout(s),i.pause()}},[n,t,r]),r?i:n}function bn({value:e,duration:t}){let n=yn(e,t);return n===null?e??null:Math.round(n)}function xn(e){let t=(0,Y.useRef)(null),n=(0,Y.useRef)(null),r=(0,Y.useRef)(()=>{}),i=(0,Y.useRef)(null);return(0,Y.useLayoutEffect)(()=>{let a=t.current,o=a?.querySelector(`:scope > .glide`);o&&(r.current=t=>{let r=a.querySelector(e);if(!r){o.style.opacity=`0`,n.current=null;return}let s=a.getBoundingClientRect(),c=r.getBoundingClientRect(),l={translateX:c.left-s.left+a.scrollLeft-a.clientLeft,translateY:c.top-s.top+a.scrollTop-a.clientTop,width:c.width,height:c.height},u=n.current;if(n.current={el:r,...l},!(u&&u.el===r&&[`translateX`,`translateY`,`width`,`height`].every(e=>Math.abs(u[e]-l[e])<.5))){if(o.style.opacity=`1`,i.current&&=(clearTimeout(i.current.t),i.current.anim.pause(),null),t&&u&&u.el!==r&&_n()){let e=on(o,{...l,duration:280,ease:`outExpo`});i.current={anim:e,t:setTimeout(()=>e.complete(),680)}}else ln(o,l)}},r.current(!0))}),(0,Y.useEffect)(()=>{let e=()=>r.current(!1);return window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[]),t}function Sn(){let e=(0,Y.useRef)(null),t=(0,Y.useRef)(null);return(0,Y.useLayoutEffect)(()=>{let n=e.current;if(!n){t.current=null;return}let r=[...n.querySelectorAll(`:scope > [data-flip]`)],i=new Map(r.map(e=>[e.dataset.flip,e.offsetTop])),a=t.current;if(t.current=i,a&&_n())for(let e of r){let t=a.get(e.dataset.flip);t===void 0?vn(on(e,{opacity:[0,1],translateY:[-12,0],duration:340,ease:`outExpo`}),340):Math.abs(t-i.get(e.dataset.flip))>1&&vn(on(e,{translateY:[t-i.get(e.dataset.flip),0],duration:340,ease:`outExpo`}),340)}}),e}var Cn={overview:`Overview`,laws:`Constitution`,library:`Library`,kits:`Kits`,loops:`Loops`,personal:`Personal`,installs:`Installs`,docs:`Docs`,activity:`Activity`},wn={loops:[`templates`,`bricks`,`active`],personal:[`rules`,`profile`,`memory`,`notebook`],installs:[`hosts`,`kits`,`edits`,`doctor`,`server`]},Tn={templates:`Templates`,bricks:`Bricks`,active:`Active`,rules:`Rules`,profile:`Profile`,memory:`Memory`,notebook:`Notebook`,hosts:`Hosts`,kits:`Kits`,edits:`Local edits`,doctor:`Doctor`,server:`Server`},En={dashboard:[`overview`],constitution:[`laws`],rules:[`personal`,`rules`],profile:[`personal`,`profile`],harness:[`installs`,`hosts`],harnesses:[`installs`,`hosts`],themes:[`installs`,`hosts`],diff:[`installs`,`edits`],doctor:[`installs`,`doctor`],settings:[`installs`,`server`],about:[`installs`,`server`]},Dn=(e,t)=>t!==void 0&&Object.hasOwn(e,t),On=(e,t)=>wn[e].includes(t)?t:wn[e][0];function kn(e){let t=(e||`#/`).slice(2).split(`/`).filter(Boolean),[n,r,i]=t,a=e=>{try{return decodeURIComponent(e||``)}catch{return e||``}};if(n===`section`||n===`item`){let e=n===`item`&&Dn(o,r)?o[r]:r,t=n===`item`?a(i):void 0;return{page:e===`laws`?`laws`:`library`,section:e,item:t}}if(n===`docs`)return{page:`docs`,item:a(t.slice(1).join(`/`))};if(n===`kits`)return r?{page:`kits`,item:a(r)}:{page:`kits`};if(n===`activity`&&r)return{page:`activity`,item:a(r)};if(n===`skills`||n===`agents`)return{page:`library`,section:n};if(Dn(wn,n)){let e=On(n,r);return i&&e===r?{page:n,tab:e,item:a(i)}:{page:n,tab:e}}if(Dn(En,n)){let[e,t]=En[n];return t?{page:e,tab:t}:{page:e}}return{page:Dn(Cn,n)?n:`overview`}}var An=new Set;function jn(e){return An.add(e),()=>An.delete(e)}function Mn(){let e=()=>kn(typeof window<`u`?window.location.hash:``),[t,n]=(0,Y.useState)(e);(0,Y.useEffect)(()=>{let t=window.location.hash,r=()=>{let r=window.location.hash;if(r!==t){for(let e of An)if(e({from:t,to:r})===!1){window.history.replaceState(window.history.state,``,t||`#/`);return}t=r,n(e())}};return window.addEventListener(`hashchange`,r),()=>window.removeEventListener(`hashchange`,r)},[]);let r=(0,Y.useRef)(!1);return(0,Y.useEffect)(()=>{if(document.title=`${Cn[t.page]} · Geneseed`,!r.current){r.current=!0;return}let e=document.getElementById(`main`);e?.focus();for(let t of[e,document.scrollingElement||document.documentElement])t&&(t.scrollTop=0)},[t.page]),t}var Nn=e=>{window.location.hash=e},Pn={red:`#FF5C57`,green:`#4ED888`,yellow:`#E8B53D`,blue:`#5B8CFF`,magenta:`#C77DFF`,cyan:`#3AD4C4`,white:`#E9EFEA`},Fn={red:`#C53A36`,green:`#2FA864`,yellow:`#B8862A`,blue:`#3C66D8`,magenta:`#9A52D6`,cyan:`#2BA89B`,white:`#AEB8B0`},In=e=>Pn[e]||Pn.cyan,Ln={red:`#A92F2B`,green:`#1E7A47`,yellow:`#8A6414`,blue:`#2F55C0`,magenta:`#7E3FB8`,cyan:`#15766C`,white:`#465A51`};function Rn(e,t,n){if(!e)return;let r=n===`light`,i=r?Fn[t]||Fn.cyan:In(t);r&&t===`white`&&(i=`#566B62`);let a=r?Ln[t]||Ln.cyan:i;nr(e,Qn(i,Fn[t]||Fn.cyan,Un,a,r),r)}var zn={cultivar:{dark:`#3AD4C4`,light:`#127E73`,ink:`#06100D`},operator:{dark:`#E8A23B`,light:`#8F5E10`,ink:`#1A1306`},matrix:{dark:`#19E37C`,light:`#0B7A47`,ink:`#04140C`},atlas:{dark:`#8FD694`,light:`#1C8450`,ink:`#14200F`}};function Bn(e,t,n){let r=zn[t];if(!e||!r)return!1;let i=n===`light`,a=i?r.light:r.dark;return nr(e,Qn(a,r.light,r.ink,a,i),i),!0}var Vn={dark:{worst:`#232A31`,soft:[`#14181D`,`#1B2026`,`#11151A`,`#171C22`,`#0B1116`,`#121A21`,`#1C1A12`,`#211E15`]},light:{worst:`#EBE6D8`,soft:[`#FBFDFC`,`#F3F6F6`,`#F4F6F8`,`#E9F4ED`,`#FCFAF4`,`#F6F2E7`]}},Hn=.13,Un=`#06100D`,Wn=e=>{let t=e.replace(`#`,``);return[0,2,4].map(e=>parseInt(t.slice(e,e+2),16))},Gn=e=>`#`+e.map(e=>Math.round(e).toString(16).padStart(2,`0`)).join(``).toUpperCase(),Kn=e=>{let[t,n,r]=Wn(e).map(e=>{let t=e/255;return t<=.03928?t/12.92:((t+.055)/1.055)**2.4});return .2126*t+.7152*n+.0722*r},qn=(e,t)=>{let[n,r]=[Kn(e),Kn(t)].sort((e,t)=>t-e);return(n+.05)/(r+.05)},Jn=(e,t,n)=>{let r=Wn(e),i=Wn(t);return Gn(r.map((e,t)=>e+(i[t]-e)*n))},Yn=(e,t,n,r)=>{let i=e=>Math.min(...[].concat(t).map(t=>qn(e,t))),a=e;for(let t=.05;i(a)<n&&t<=1.0001;t+=.05)a=Jn(e,r,t);return a},Xn=e=>{let[t,n,r]=Wn(e).map(e=>e/255),i=Math.max(t,n,r),a=Math.min(t,n,r),o=i-a;if(o===0)return{h:0,s:0};let s=o/(1-Math.abs(i+a-1));return{h:((i===t?(n-r)/o%6:i===n?(r-t)/o+2:(t-n)/o+4)*60+360)%360,s}},Zn=(e,t)=>{let n=Math.abs(e-t)%360;return n>180?360-n:n};function Qn(e,t,n,r,i){let a=i?`#000000`:`#FFFFFF`,o=e=>qn(e,n)>=qn(e,`#FFFFFF`)?n:`#FFFFFF`,s=qn(e,o(e))>=4.5?e:Yn(e,i?`#FFFFFF`:n,4.5,a),c=i?Vn.light:Vn.dark,l=[c.worst,...c.soft.map(e=>Jn(e,s,Hn))];return{accent:s,accent2:t,ink:o(s),text:Yn(r,l,4.5,a)}}var $n=39,er={dark:[`#FF8A4C`,`#FF8A4C`],light:[`#B4441F`,`#9B3A1B`]};function tr(e,t,n){let[r,i]=n?er.light:er.dark,{h:a,s:o}=Xn(t),s=Zn(a,$n);o>=.15&&s<=29&&Zn(a,Xn(r).h)>s?(e.style.setProperty(`--warn`,r),e.style.setProperty(`--warn-text`,i)):(e.style.removeProperty(`--warn`),e.style.removeProperty(`--warn-text`))}function nr(e,t,n){e.style.setProperty(`--accent`,t.accent),e.style.setProperty(`--accent-2`,t.accent2),e.style.setProperty(`--accent-ink`,t.ink),e.style.setProperty(`--accent-text`,t.text),tr(e,t.accent,n)}var rr=e=>typeof e==`string`&&/^#[0-9a-fA-F]{6}$/.test(e);function ir(e,t){let n=t===`light`,r=n?Vn.light:Vn.dark,i=n?`#000000`:`#FFFFFF`,a=Yn(e,r.worst,3,i);return Qn(a,Yn(a,r.worst,4.5,i),Un,a,n)}function ar(e,t,n){return!e||!rr(t)?!1:(nr(e,ir(t,n),n===`light`),!0)}function or(e,t){let[n,r]=(0,Y.useState)(()=>{try{return t(localStorage.getItem(e))}catch{return t(null)}});return[n,(0,Y.useCallback)(t=>r(n=>{let r=typeof t==`function`?t(n):t;try{localStorage.setItem(e,r)}catch{}return r}),[e])]}var sr=`geneseed-mode`;function cr(){let[e,t]=or(sr,e=>e===`light`?`light`:`dark`);return[e,()=>t(e=>e===`light`?`dark`:`light`)]}var lr=`geneseed-flavour`,ur=[{id:`cultivar`,short:`Cultivar`,name:`Cultivar Evolved`,tagline:`The calm default — cool teal ink, geometric sans, soft flat cards lit by one quiet shadow.`},{id:`operator`,short:`Operator`,name:`Operator HUD`,tagline:`Amber phosphor on cool charcoal — all-mono, zero-radius instrument readout.`},{id:`matrix`,short:`Matrix`,name:`Matrix`,tagline:`Acid-green order-book terminal on pure black — all Space Mono, square 2px, a faint code-grid.`},{id:`atlas`,short:`Atlas`,name:`Atlas`,tagline:`The field journal — loam dark, sage ink, the codex as a living map.`}],dr=new Set(ur.map(e=>e.id)),fr={a:`cultivar`,b:`atlas`,c:`operator`,d:`cultivar`,e:`matrix`,f:`cultivar`,g:`cultivar`,z:`cultivar`,cb:`matrix`,cm:`cultivar`,greenhouse:`atlas`,heirloom:`cultivar`,aurora:`cultivar`,perspective:`cultivar`,sequencer:`cultivar`,cobalt:`matrix`,cosmic:`cultivar`,neon:`matrix`};function pr(){return or(lr,mr)}function mr(e){return dr.has(e)?e:fr[e]||`cultivar`}var hr=`geneseed-accent`,gr=[{id:`curated`,short:`Curated`,tagline:`Each theme's own signature colour.`}],_r=[[`cyan`,`Cyan`],[`blue`,`Blue`],[`magenta`,`Violet`],[`yellow`,`Amber`],[`green`,`Green`]].map(([e,t])=>({id:`custom:${e}`,name:e,short:t,hex:In(e),tagline:`Always ${t.toLowerCase()}, whatever the voice or skin.`})),vr=[...gr,..._r],yr=new Set(vr.map(e=>e.id)),br=e=>{let t=typeof e==`string`&&e.startsWith(`hex:`)?e.slice(4):null;return rr(t)?t.toUpperCase():null},xr=e=>e&&(yr.has(e)||br(e))?e:`curated`,Sr=e=>_r.find(t=>t.id===e)?.name??null,Cr=e=>{let t=br(e);return t?`Your own colour, ${t}.`:vr.find(t=>t.id===e)?.tagline??``};function wr(){return or(hr,xr)}var Tr=`geneseed-layout`,Er=[{id:`overview`,short:`Overview`,tagline:`Every install, what needs you, cost, usage and gates.`},{id:`cultivar`,short:`Cultivar`,tagline:`Hero, KPIs & genome grid.`},{id:`greenhouse`,short:`Greenhouse`,tagline:`Ring, tiles & mix donut.`},{id:`operator`,short:`Operator`,tagline:`Dense terminal readout.`},{id:`journal`,short:`Journal`,tagline:`Growth rings & the constitution map.`}],Dr=new Set(Er.map(e=>e.id));function Or(e){return e&&Dr.has(e)?e:`overview`}function kr(){return or(Tr,Or)}function Ar(e){let[t,n]=(0,Y.useState)(null),[r,i]=(0,Y.useState)(null),[o,s]=(0,Y.useState)([]),c=()=>a.overview().then(e=>{n(e),i(null)}).catch(t=>{i(t?.body?.message||t?.message||String(t)),e?.(t)});return(0,Y.useEffect)(()=>{c()},[]),(0,Y.useEffect)(()=>{a.themes().then(e=>s(e.themes)).catch(()=>{})},[]),{overview:t,error:r,themes:o,reload:c}}var jr=1e3,Mr=e=>new Promise(t=>setTimeout(t,e));async function Nr(){try{return(await a.ping()).pid??null}catch{return null}}async function Pr(e=0,t=null){await Mr(e);for(let e=0;e<30;e++){let e=await Nr();if(e!==null&&e!==t)break;await Mr(jr)}window.location.reload()}async function Fr(){let e=await Nr();try{await a.restart()}catch(e){if(e.status)throw e}await Pr(jr,e)}var Ir=600;function Lr({onFinish:e,onError:t}={}){let[n,r]=(0,Y.useState)([]),[i,o]=(0,Y.useState)(null),[s,c]=(0,Y.useState)(!1);return(0,Y.useEffect)(()=>{a.jobs().then(({jobs:e})=>{if(!e.length)return;r(e.map(e=>({id:e.id,action:e.action,status:e.status,output:e.output||``,duration:e.duration,started:e.started})));let t=e.find(e=>e.status===`running`);t&&(o(t.id),c(!0))}).catch(()=>{})},[]),(0,Y.useEffect)(()=>{if(!i)return;let t=n.find(e=>e.id===i),s=t?.action===`update`||!!t?.restarts,c=null;s&&Nr().then(e=>c=e);let l=setInterval(async()=>{if(!document.hidden)try{let t=await a.job(i);if(r(e=>{let n=e.findIndex(e=>e.id===i);if(n===-1)return e;let r=e[n],a=t.output||``;if(r.output===a&&r.status===t.status&&r.duration===t.duration)return e;let o=e.slice();return o[n]={...r,output:a,status:t.status,duration:t.duration},o}),t.status!==`running`){if(clearInterval(l),o(null),s&&t.status===`done`){Pr(2e3,c);return}e?.(t.status)}}catch{if(!s)return;clearInterval(l),Pr(0,c)}},Ir);return()=>clearInterval(l)},[i]),{runs:n,activeId:i,consoleOpen:s,setConsoleOpen:c,runAction:async(e,n)=>{try{let{job_id:t,restarts:i}=await a.action(e,n),s=e===`build`&&n?.theme?`build (${n.theme} · ${n.emit})`:e;return r(e=>[...e,{id:t,action:s,status:`running`,output:``,started:Date.now()/1e3,restarts:!!i}]),o(t),c(!0),t}catch(e){t?.(e)}},cancelJob:e=>a.cancelJob(e).catch(e=>t?.(e)),clearRuns:()=>r([])}}var Rr=new Map,zr=new Map;function Br(e){for(let t of Rr.keys())t.startsWith(`${e}|`)&&Rr.delete(t)}function X(e,t=[],n=null,{revalidate:r=!1}={}){let i=n===null?null:`${n}|${t.join(``)}`,[a,o]=(0,Y.useState)(()=>i!==null&&Rr.has(i)?Rr.get(i):null),[s,c]=(0,Y.useState)(``),[l,u]=(0,Y.useState)(()=>!(i!==null&&Rr.has(i))),d=(0,Y.useRef)(e),f=(0,Y.useRef)(i);(0,Y.useLayoutEffect)(()=>{d.current=e,f.current=i});let p=(0,Y.useRef)(0),m=(0,Y.useCallback)(()=>{let e=++p.current,t=()=>e===p.current;u(!0),c(``);let n=f.current;return Promise.resolve(d.current()).then(e=>{if(t()&&(o(e),n!==null)){Rr.set(n,e);for(let t of zr.get(n)||[])t(e)}}).catch(e=>{t()&&c(e.message)}).finally(()=>{t()&&u(!1)})},t);return(0,Y.useEffect)(()=>{let e=f.current;return e!==null&&(zr.has(e)||zr.set(e,new Set),zr.get(e).add(o)),e!==null&&Rr.has(e)&&(p.current++,o(Rr.get(e)),c(``),u(!1),!r)||m(),()=>zr.get(e)?.delete(o)},[m]),{data:a,error:s,loading:l,reload:m,setData:o}}var Vr=60,Hr=3600,Ur=86400,Wr={seconds:90,minutes:5400,hours:36*Hr};function Gr(e){let t=Math.max(0,Date.now()/1e3-e);return t<Wr.seconds?`${Math.round(t)}s`:t<Wr.minutes?`${Math.round(t/Vr)}m`:t<Wr.hours?`${Math.round(t/Hr)}h`:`${Math.round(t/Ur)}d`}function Kr(e){return e?e.replace(/\\/g,`/`).replace(/^\/?(home|Users)\/[^/]+/i,`~`).replace(/^[A-Z]:\/Users\/[^/]+/i,`~`):`~`}var qr={deployed:.4,doctorClean:.25,doctorMinor:.15,doctorMinorMax:2,doctorFail:.05,versionSynced:.2,diskClean:.15},Jr={warn:qr.deployed+qr.doctorClean,bad:qr.deployed};function Yr(e,t,n){if(!e)return 0;let r=e.doctor?.problems?.length??99,i=e.doctor?.ok?qr.doctorClean:r<=qr.doctorMinorMax?qr.doctorMinor:qr.doctorFail,a=t&&t.installed_fp&&t.installed_fp===t.source_fp,o=(e.deployed?qr.deployed:0)+i+(a?qr.versionSynced:0)+(e.diff&&e.diff.missing===0?qr.diskClean:0);return Math.min(o,Jr[n]??1)}var Xr=e=>Math.max(...c.map(t=>e?.[t]??0),1),Zr=e=>(e?.edited??0)+(e?.added??0),Qr=e=>Zr(e)+(e?.missing??0),$r=e=>(e?.laws??0)+(e?.doctrines?.rules??0),Z=i(),ei={dashboard:`M3 13h7V3H3v10Zm0 8h7v-6H3v6Zm11 0h7V11h-7v10Zm0-18v6h7V3h-7Z`,library:`M4 5h10v14H4zM16 7h4v12h-4M7 9h4M7 12h4`,loop:`M19.5 9A8 8 0 1 1 15 4.6M15 1.5l.2 3.3-3.2.8`,graph:`M6 18a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM18 8a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM18 20a2 2 0 1 0 0-4 2 2 0 0 0 0 4ZM7.5 14.5l8-8M16.7 15.2L8.8 16.6`,changes:`M4 6h10M4 12h7M4 18h12M17 4l3 3-3 3M20 7h-6`,doctor:`M12 3v6m0 0a4 4 0 0 1-4 4H7a3 3 0 0 0-3 3v2m8-9a4 4 0 0 0 4 4h1a3 3 0 0 1 3 3v2M12 3a1.5 1.5 0 1 0 0-.01`,themes:`M12 3a9 9 0 1 0 0 18c1.1 0 2-.9 2-2 0-.5-.2-1-.5-1.3-.3-.4-.5-.8-.5-1.2 0-1 .8-1.5 1.7-1.5H17a4 4 0 0 0 4-4c0-4.4-4-8-9-8Z`,settings:`M12 15a3 3 0 1 0 0-6 3 3 0 0 0 0 6Zm8-3a8 8 0 0 0-.1-1.3l2-1.6-2-3.4-2.4 1a8 8 0 0 0-2.2-1.3L15 2H9l-.3 2.6a8 8 0 0 0-2.2 1.3l-2.4-1-2 3.4 2 1.6A8 8 0 0 0 4 12c0 .4 0 .9.1 1.3l-2 1.6 2 3.4 2.4-1a8 8 0 0 0 2.2 1.3L9 22h6l.3-2.6a8 8 0 0 0 2.2-1.3l2.4 1 2-3.4-2-1.6c.1-.4.1-.9.1-1.3Z`,search:`M11 19a8 8 0 1 0 0-16 8 8 0 0 0 0 16ZM21 21l-4.3-4.3`,chevron:`M9 6l6 6-6 6`,x:`M6 6l12 12M18 6L6 18`,menu:`M4 7h16M4 12h16M4 17h16`,play:`M7 5v14l11-7L7 5Z`,clear:`M3 6h18M8 6V4h8v2M6 6l1 14h10l1-14`,download:`M12 3v12m0 0l-4-4m4 4l4-4M4 19h16`,refresh:`M21 12a9 9 0 1 1-3-6.7M21 4v5h-5`,folder:`M3 7a2 2 0 0 1 2-2h3.5l2 2H19a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V7Z`,build:`M14 3l-1 4 4-1 3 3-4 1 1 4-3 3-1-4-4 1-3-3 4-1-1-4 3-3 5 0Z`,arrow:`M5 12h14M13 6l6 6-6 6`,external:`M14 5h5v5M19 5l-8 8M12 5H6a2 2 0 0 0-2 2v11a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2v-6`,copy:`M9 9h11v11H9zM5 15H4V4h11v1`,spark:`M12 3v3m0 12v3m9-9h-3M6 12H3m13.5-6.5-2 2m-7 7-2 2m11 0-2-2m-7-7-2-2`,activity:`M3 12h4l2.5-7 5 14 2.5-7H21`,agent:`M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2M9 11a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM22 21v-2a4 4 0 0 0-3-3.9M16 3.1a4 4 0 0 1 0 7.8`,kit:`M21 8l-9-5-9 5v8l9 5 9-5V8ZM3 8l9 5 9-5M12 13v8`,layers:`M12 3l9 5-9 5-9-5 9-5ZM3 13l9 5 9-5M3 17l9 5 9-5`,sun:`M12 4V2M12 22v-2M4 12H2M22 12h-2M5.6 5.6 4.2 4.2M19.8 19.8l-1.4-1.4M18.4 5.6l1.4-1.4M4.2 19.8l1.4-1.4M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z`,moon:`M21 12.8A8.5 8.5 0 1 1 11.2 3a6.5 6.5 0 0 0 9.8 9.8Z`,power:`M12 3v9M7.5 6.5a7 7 0 1 0 9 0`,docs:`M5 4h9l5 5v11a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1ZM14 4v5h5M8 12h7M8 16h7`,skill:`M21.7 6.6a5 5 0 0 1-6.6 6.6l-7.4 7.4a2 2 0 1 1-2.8-2.8l7.4-7.4a5 5 0 0 1 6.6-6.6l-2.6 2.6a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0Z`,law:`M12 3v18M5 6h14M8 21h8M6 6l-3 6h6zM3 12a3 3 0 0 1 6 0M18 6l-3 6h6zM15 12a3 3 0 0 1 6 0`,rule:`M7 3h10a1 1 0 0 1 1 1v17l-6-3.5L6 21V4a1 1 0 0 1 1-1ZM9.5 9.5l1.8 1.8 3.4-3.6`,profile:`M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8ZM5 20a7 7 0 0 1 14 0`,notebook:`M7 4h11v16H7zM4 8h3M4 12h3M4 16h3M11 9h5M11 13h5M11 17h3`,about:`M12 21a9 9 0 1 0 0-18 9 9 0 0 0 0 18ZM12 11v6M12 7.6h.01`,github:`M12 2a10 10 0 0 0-3.2 19.5c.5.1.7-.2.7-.5v-1.8c-2.8.6-3.4-1.2-3.4-1.2-.5-1.2-1.1-1.5-1.1-1.5-.9-.6.1-.6.1-.6 1 .1 1.5 1 1.5 1 .9 1.5 2.3 1.1 2.9.8.1-.6.3-1.1.6-1.3-2.2-.3-4.6-1.1-4.6-5 0-1.1.4-2 1-2.7-.1-.3-.4-1.3.1-2.7 0 0 .8-.3 2.7 1a9.4 9.4 0 0 1 5 0c1.9-1.3 2.7-1 2.7-1 .5 1.4.2 2.4.1 2.7.6.7 1 1.6 1 2.7 0 3.9-2.4 4.7-4.6 5 .4.3.7.9.7 1.8v2.6c0 .3.2.6.7.5A10 10 0 0 0 12 2Z`};function ti({name:e,className:t=`glyph`,style:n}){return(0,Z.jsx)(`svg`,{className:t,style:n,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:`1.7`,strokeLinecap:`round`,strokeLinejoin:`round`,"aria-hidden":`true`,children:(0,Z.jsx)(`path`,{d:ei[e]||``})})}function ni({className:e=`sprout`}){return(0,Z.jsxs)(`svg`,{className:e,viewBox:`0 0 24 24`,"aria-hidden":`true`,children:[(0,Z.jsx)(`path`,{d:`M12 21.5v-9`,stroke:`var(--accent)`,strokeWidth:`2`,strokeLinecap:`round`,fill:`none`}),(0,Z.jsx)(`path`,{d:`M12 13c0-4.5 3.2-7.5 7.5-7.5 0 4.5-3.2 7.5-7.5 7.5z`,fill:`var(--accent)`}),(0,Z.jsx)(`path`,{d:`M12 14.5c0-3.6-2.6-6-6-6 0 3.6 2.6 6 6 6z`,fill:`var(--accent)`,opacity:`.42`}),(0,Z.jsx)(`circle`,{cx:`12`,cy:`12.4`,r:`1.1`,fill:`var(--bg)`})]})}var ri=[{hash:`#/`,page:`overview`,label:`Overview`,short:`Home`,icon:`dashboard`},{hash:`#/laws`,page:`laws`,label:`Constitution`,short:`Laws`,icon:`law`,count:e=>e?.counts?(e.counts.ontology??0)+(e.counts.laws??0)+(e.counts.doctrines?.rules??0):null},{hash:`#/library`,page:`library`,label:`Library`,icon:`library`,count:e=>e?.counts?[`skills`,`agents`,`memory`,`notebook`,`wiki`,`config`].reduce((t,n)=>t+(e.counts[n]??0),0):null},{hash:`#/kits`,page:`kits`,label:`Kits`,icon:`kit`},{hash:`#/loops`,page:`loops`,label:`Loops`,icon:`loop`,count:e=>e?.counts?.loops??null},{hash:`#/personal`,page:`personal`,label:`Personal`,icon:`profile`},{hash:`#/installs`,page:`installs`,label:`Installs`,icon:`layers`,count:(e,t)=>t?`${t.filter(e=>e.state===`active`).length}/${t.length}`:null}],ii=[{hash:`#/docs`,page:`docs`,label:`Docs`,icon:`docs`},{hash:`#/activity`,page:`activity`,label:`Activity`,icon:`activity`}];function ai({n:e,lit:t,count:n,onNavigate:r}){return(0,Z.jsxs)(`a`,{className:`sb-item${t?` on`:``}`,href:e.hash,"aria-current":t?`page`:void 0,onClick:()=>r?.(),children:[(0,Z.jsx)(ti,{name:e.icon}),(0,Z.jsx)(`span`,{className:`sb-label`,children:e.label}),n==null?null:(0,Z.jsx)(`span`,{className:`sb-count`,children:n})]})}function oi({overview:e,onOpenVoice:t}){if(!e)return null;let n=e.doctor,r=Qr(e.diff);return(0,Z.jsxs)(`div`,{className:`sb-vitals`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{children:`doctor`}),(0,Z.jsx)(`b`,{className:n?n.ok?`good`:`bad`:``,children:n?n.ok?`clean`:`${n.problems.length} to fix`:`not run`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{children:`drift`}),(0,Z.jsx)(`b`,{className:r?`warn`:``,children:e.diff?r:`n/a`})]}),(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`span`,{children:`built`}),(0,Z.jsx)(`b`,{title:e.build_time||void 0,children:e.build_epoch?`${Gr(e.build_epoch)} ago`:`never`})]}),(0,Z.jsxs)(`button`,{type:`button`,className:`sb-voice`,onClick:t,title:`Switch voice`,children:[(0,Z.jsx)(`span`,{children:`voice`}),(0,Z.jsxs)(`b`,{children:[e.theme||`none`,(0,Z.jsx)(ti,{name:`chevron`})]})]})]})}function si({route:e,overview:t,installs:n,onOpenVoice:r,onNavigate:i}){return(0,Z.jsxs)(`nav`,{className:`sidebar`,id:`rail-nav`,"aria-label":`Console`,tabIndex:-1,children:[(0,Z.jsxs)(`button`,{type:`button`,className:`sb-brand`,onClick:()=>{Nn(`#/`),i?.()},"aria-label":`Geneseed, go to the overview`,children:[(0,Z.jsx)(`span`,{className:`sb-mark`,children:(0,Z.jsx)(ni,{})}),(0,Z.jsxs)(`span`,{className:`sb-brand-text`,children:[(0,Z.jsx)(`span`,{className:`sb-name`,children:`Geneseed`}),(0,Z.jsx)(`span`,{className:`sb-ver`,children:[t?.version&&`v${t.version}`,t?.theme].filter(Boolean).join(` · `)})]})]}),ri.map(r=>(0,Z.jsx)(ai,{n:r,lit:e.page===r.page,count:r.count?.(t,n),onNavigate:i},r.page)),(0,Z.jsx)(`div`,{className:`sb-spacer`}),ii.map(t=>(0,Z.jsx)(ai,{n:t,lit:e.page===t.page,onNavigate:i},t.page)),(0,Z.jsx)(oi,{overview:t,onOpenVoice:r})]})}function ci({route:e}){return(0,Z.jsx)(`nav`,{className:`tabbar`,"aria-label":`Console pages`,children:ri.map(t=>(0,Z.jsxs)(`a`,{href:t.hash,className:e.page===t.page?`on`:``,"aria-current":e.page===t.page?`page`:void 0,children:[(0,Z.jsx)(ti,{name:t.icon}),t.short||t.label]},t.page))})}var li=[{id:`opencode`,label:`OpenCode`,deployAdds:`.opencode/ + AGENT.md`,removeProject:`.opencode/ + AGENT.md + the bundle`,removeGlobal:`~/.config/opencode's AGENT.md, agents, skills, plugins + the opencode.json entry`},{id:`claude`,label:`Claude Code`,deployAdds:`.claude/ + CLAUDE.md`,removeProject:`.claude/ + the CLAUDE.md block`,removeGlobal:`~/.claude's agents/skills + the CLAUDE.md block + settings hooks`},{id:`bob`,label:`BOB (IBM)`,deployAdds:`.bob/ + AGENTS.md`,removeProject:`.bob/ + the AGENTS.md block`,removeGlobal:`~/.bob's agents/skills + the AGENTS.md block + settings hooks`},{id:`openclaude`,label:`OpenClaude`,deployAdds:`.openclaude/ + its CLAUDE.md`,removeProject:`.openclaude/ + its CLAUDE.md block`,removeGlobal:`~/.openclaude's agents/skills + the CLAUDE.md block + settings hooks`}],ui=e=>li.find(t=>t.id===e)||li[0],di=(e,t)=>t===`project`?ui(e).removeProject:ui(e).removeGlobal,fi=e=>String(e||``).replace(/[\\/]+$/,``).split(/[\\/]/).pop()||e,pi=e=>e.scope===`global`?ui(e.host).label:fi(e.path),mi=`geneseed-harness`,hi=li.map(({id:e,label:t})=>({id:e,label:t}));function gi(e=`opencode`){let[t,n]=or(mi,e=>hi.some(t=>t.id===e)?e:null);return[t??e,n]}function _i(e){let t=String(e||``);return li.find(e=>t.startsWith(e.id))?.id||`opencode`}function vi(e=0){let[t,n]=(0,Y.useState)(null),[r,i]=(0,Y.useState)(``),o=(0,Y.useRef)(null),[l]=gi(),u=`${e}|${l}`,[d,f]=(0,Y.useState)(u);return d!==u&&(f(u),n(null)),(0,Y.useEffect)(()=>{o.current=null},[u]),{index:t,error:r,prime:(0,Y.useCallback)(()=>{if(t||o.current)return o.current;let e=(async()=>{let e=Object.entries(Cn).flatMap(([e,t])=>(wn[e]||[``]).map(n=>{let r=n?t+` / `+Tn[n]:t;return{kind:`Pages`,sortKey:-1,title:r,desc:``,hay:r.toLowerCase(),route:e===`overview`?`#/`:`#/`+e+(n?`/`+n:``)}})),t=[`laws`,`skills`,...c],r=await Promise.all(t.map(async e=>{try{return{sec:e,items:(await a.catalog(e))?.items||[]}}catch{return{sec:e,items:[]}}}));for(let{sec:n,items:i}of r){let r=s[n];for(let a of i){let i=a.title||a.name;e.push({kind:r.label,sortKey:t.indexOf(n),title:i,desc:a.desc||``,hay:`${i} ${a.desc||``} ${a.name||``}`.toLowerCase(),route:`#/item/${r.type}/${encodeURIComponent(a.name)}`})}}try{let t=await a.mcp(),n=new Set;for(let r of t?.targets||[])for(let t of r.servers||[]){if(n.has(t.name))continue;n.add(t.name);let r=t.label||t.name;e.push({kind:`MCP servers`,sortKey:100,title:r,desc:t.desc||``,hay:`${r} ${t.desc||``} ${t.name||``} mcp`.toLowerCase(),route:`#/installs/hosts`})}}catch{}try{let t=await a.docs(l);for(let n of t?.groups||[])for(let t of n.pages||[])e.push({kind:`Docs`,sortKey:110,title:t.title,desc:n.label,hay:`${t.title||``} ${t.id||``} ${n.label||``} ${t.section||``} ${t.description||``}`.toLowerCase(),route:`#/docs/${encodeURIComponent(t.id)}`})}catch{}return n(e),o.current=null,e})().catch(e=>(o.current=null,i(e.message||String(e)),[]));return o.current=e,e},[t,l])}}var yi=24;function bi(e,t){let n=e.title.toLowerCase();return n.startsWith(t)?0:n.includes(t)?1:e.hay.includes(t)?2:-1}function xi(e,t){let n=t.toLowerCase().trim();if(!n||!e)return[];let r=[];for(let t of e){let e=bi(t,n);e>=0&&r.push({e:t,s:e})}return r.sort((e,t)=>e.s-t.s||e.e.sortKey-t.e.sortKey||e.e.title.localeCompare(t.e.title)),r.slice(0,yi).map(e=>e.e)}function Si(e,t){let n=t.trim().toLowerCase(),r=n?e.toLowerCase().indexOf(n):-1;return r<0?e:(0,Z.jsxs)(Z.Fragment,{children:[e.slice(0,r),(0,Z.jsx)(`mark`,{className:`spot-hit`,children:e.slice(r,r+n.length)}),e.slice(r+n.length)]})}function Ci({query:e,index:t,loading:n,error:r,active:i,onActive:a,onClose:o}){let s=(0,Y.useMemo)(()=>xi(t,e),[t,e]),c=(0,Y.useRef)(null),l=s.length>0;(0,Y.useLayoutEffect)(()=>{let e=c.current?.querySelectorAll(`[data-spot-row]`);return!l||!e?.length||!_n()?void 0:vn(on(e,{opacity:[0,1],translateY:[-4,0],duration:220,delay:mn(18),ease:`outQuart`}),220+18*e.length)},[l]),(0,Y.useEffect)(()=>{i>=s.length&&a(0)},[s,i,a]),(0,Y.useEffect)(()=>{(c.current?.querySelector(`[data-spot-row="${i}"]`))?.scrollIntoView({block:`nearest`})},[i]);let u=e=>{e&&(Nn(e.route),o())},d=[],f=null;return s.forEach((e,t)=>{(!f||f.kind!==e.kind)&&(f={kind:e.kind,rows:[]},d.push(f)),f.rows.push({entry:e,index:t})}),e.trim()?(0,Z.jsxs)(`div`,{className:`spotlight`,ref:c,id:`spotlight-list`,role:`listbox`,"aria-label":`Search results`,children:[r&&!t&&(0,Z.jsxs)(`div`,{className:`spot-empty`,role:`presentation`,children:[`Could not load the search index — `,r]}),n&&!t&&!r&&(0,Z.jsx)(`div`,{className:`spot-empty`,role:`presentation`,children:`Loading…`}),!n&&s.length===0&&t&&(0,Z.jsxs)(`div`,{className:`spot-empty`,role:`presentation`,children:[`No matches for “`,e,`”.`]}),d.map(t=>(0,Z.jsxs)(`div`,{className:`spot-group`,role:`group`,"aria-label":t.kind,children:[(0,Z.jsx)(`div`,{className:`spot-group-head`,"aria-hidden":`true`,children:t.kind}),t.rows.map(({entry:t,index:n})=>(0,Z.jsxs)(`div`,{id:`spot-opt-${n}`,"data-spot-row":n,role:`option`,"aria-selected":n===i,className:`spot-row ${n===i?`on`:``}`,onMouseDown:e=>{e.preventDefault(),u(t)},onMouseEnter:()=>a(n),children:[(0,Z.jsx)(`div`,{className:`spot-title`,children:Si(t.title,e)}),t.desc?(0,Z.jsx)(`div`,{className:`spot-desc`,children:t.desc}):null]},`${t.route}-${n}`))]},t.kind))]}):null}function wi({value:e,onChange:t,dataRev:n}){let r=(0,Y.useRef)(null),i=(0,Y.useRef)(null),[a,o]=(0,Y.useState)(!1),[s,c]=(0,Y.useState)(0),{index:l,error:u,prime:d}=vi(n);(0,Y.useEffect)(()=>{let e=e=>{((e.metaKey||e.ctrlKey)&&!e.altKey&&e.key.toLowerCase()===`k`||e.key===`/`&&!e.target.closest(`input, textarea, select`))&&(e.preventDefault(),r.current?.focus())};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[]),(0,Y.useEffect)(()=>{if(!a)return;let e=e=>{i.current?.contains(e.target)||o(!1)};return window.addEventListener(`mousedown`,e),()=>window.removeEventListener(`mousedown`,e)},[a]);let f=a&&!!e.trim(),p=f&&l?xi(l,e):[],m=s<p.length?`spot-opt-${s}`:void 0;return(0,Z.jsxs)(`div`,{className:`tb-search`,ref:i,children:[(0,Z.jsx)(ti,{name:`search`,className:`mag glyph`}),(0,Z.jsx)(`input`,{ref:r,role:`combobox`,"aria-label":`Search the harness`,"aria-autocomplete":`list`,"aria-expanded":f,"aria-controls":f?`spotlight-list`:void 0,"aria-activedescendant":m,value:e,onChange:e=>{t(e.target.value),c(0)},onFocus:()=>{o(!0),d()},onKeyDown:n=>{if(f){if(n.key===`ArrowDown`)n.preventDefault(),c(e=>Math.min(e+1,Math.max(p.length-1,0)));else if(n.key===`ArrowUp`)n.preventDefault(),c(e=>Math.max(e-1,0));else if(n.key===`Enter`){let e=p[s];e&&(n.preventDefault(),Nn(e.route),o(!1),r.current?.blur())}else n.key===`Escape`&&(n.preventDefault(),e?t(``):(o(!1),r.current?.blur()))}},placeholder:`Search the harness…`,title:`Press / to jump here, or Ctrl-K / ⌘K from inside any field`}),(0,Z.jsx)(`span`,{className:`kbd`,children:`Ctrl K`}),(0,Z.jsx)(`span`,{className:`sr-only`,role:`status`,"aria-live":`polite`,children:f?p.length?`${p.length} results`:`no matches`:``}),f&&(0,Z.jsx)(Ci,{query:e,index:l,loading:!l,error:u,active:s,onActive:c,onClose:()=>{o(!1),r.current?.blur()}})]})}function Ti({installs:e,onSwitch:t}){let n=(e||[]).filter(e=>e.state===`active`);if(n.length<2)return null;let r=n.find(e=>e.selected)||n[0];return(0,Z.jsx)(`select`,{className:`sel tb-harness`,"aria-label":`Harness to view`,title:`Harness the console is viewing`,value:r.id,onChange:async e=>{let r=n.find(t=>t.id===e.target.value);if(r)try{await a.selectView(r.host,r.path),t?.()}catch{}},children:n.map(e=>(0,Z.jsx)(`option`,{value:e.id,children:e.scope===`global`?`${e.host} · global`:`${pi(e)} · ${e.host}`},e.id))})}function Ei({children:e,...t}){let n=xn(`button.on`);return(0,Z.jsxs)(`div`,{className:`seg`,role:`group`,ref:n,...t,children:[(0,Z.jsx)(`span`,{className:`glide`,"aria-hidden":`true`}),e]})}function Di({value:e,onChange:t,labelledBy:n}){let r=br(e);return(0,Z.jsxs)(`div`,{className:`accent-picker`,role:`group`,"aria-labelledby":n,children:[gr.map(n=>(0,Z.jsx)(`button`,{type:`button`,className:`accent-src${e===n.id?` on`:``}`,"aria-pressed":e===n.id,title:n.tagline,onClick:()=>t(n.id),children:n.short},n.id)),(0,Z.jsxs)(`div`,{className:`accent-swatches`,children:[_r.map(n=>(0,Z.jsx)(`button`,{type:`button`,className:`accent-swatch${e===n.id?` on`:``}`,style:{"--sw":n.hex},"aria-pressed":e===n.id,"aria-label":`${n.short} accent`,title:n.short,onClick:()=>t(n.id)},n.id)),(0,Z.jsx)(`label`,{className:`accent-swatch accent-custom${r?` on picked`:``}`,style:r?{"--sw":r}:void 0,title:r?`Your colour, ${r}`:`Pick any colour`,children:(0,Z.jsx)(`input`,{type:`color`,"aria-label":`Custom accent colour`,value:(r||`#3AD4C4`).toLowerCase(),onChange:e=>t(`hex:${e.target.value.toUpperCase()}`)})})]})]})}function Oi({flavour:e,onFlavour:t,accentMode:n,onAccentMode:r,layout:i,onLayout:a,onClose:o}){let s=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{let e=e=>{s.current&&!s.current.contains(e.target)&&!e.target.closest?.(`.tb-pop-anchor`)&&o()},t=e=>{e.key===`Escape`&&o()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[o]);let c=(e,t,n,r,i)=>(0,Z.jsxs)(`div`,{className:`ap-group`,children:[(0,Z.jsx)(`span`,{className:`ap-label`,id:e,children:t}),(0,Z.jsx)(Ei,{"aria-labelledby":e,children:n.map(e=>(0,Z.jsx)(`button`,{type:`button`,className:r===e.id?`on`:``,"aria-pressed":r===e.id,title:e.tagline,onClick:()=>i(e.id),children:e.short},e.id))})]});return(0,Z.jsxs)(`div`,{className:`appearance-pop`,ref:s,role:`dialog`,"aria-label":`Appearance`,children:[c(`ap-skin`,`Skin`,ur,e,t),(0,Z.jsxs)(`div`,{className:`ap-group`,children:[(0,Z.jsx)(`span`,{className:`ap-label`,id:`ap-accent`,children:`Accent`}),(0,Z.jsx)(Di,{value:n,onChange:r,labelledBy:`ap-accent`})]}),c(`ap-view`,`Overview view`,Er,i,a)]})}function ki({route:e,navOpen:t,onToggleNav:n,overview:r,installs:i,query:a,onQuery:o,mode:s,onToggleMode:c,appearance:l,dataRev:u,onSwitch:d}){let[f,p]=(0,Y.useState)(!1),m=r?.install,h=m?`${m.host}:${m.scope}`:Kr(r?.target),g=e.tab&&Tn[e.tab];return(0,Z.jsxs)(`header`,{className:`topbar`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`tb-menu iconbtn`,onClick:n,"aria-label":t?`Close navigation`:`Open navigation`,"aria-expanded":!!t,"aria-controls":`rail-nav`,children:(0,Z.jsx)(ti,{name:t?`x`:`menu`})}),(0,Z.jsxs)(`nav`,{className:`crumbs`,"aria-label":`Breadcrumb`,children:[(0,Z.jsx)(`span`,{className:`crumb-root mono`,title:r?.target||void 0,children:h}),(0,Z.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,Z.jsx)(`span`,{className:g?``:`crumb-here`,"aria-current":g?void 0:`page`,children:Cn[e.page]}),g?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`span`,{"aria-hidden":`true`,children:`/`}),(0,Z.jsx)(`span`,{className:`crumb-here`,"aria-current":`page`,children:g})]}):null]}),(0,Z.jsx)(`div`,{className:`topbar-spacer`}),(0,Z.jsx)(Ti,{installs:i,onSwitch:d}),(0,Z.jsx)(wi,{value:a,onChange:o,dataRev:u}),(0,Z.jsxs)(`div`,{className:`tb-pop-anchor`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`iconbtn`,"aria-label":`Appearance`,title:`Appearance`,"aria-expanded":f,onClick:()=>p(e=>!e),children:(0,Z.jsx)(ti,{name:`themes`})}),f?(0,Z.jsx)(Oi,{...l,onClose:()=>p(!1)}):null]}),(0,Z.jsx)(`button`,{type:`button`,className:`iconbtn`,title:s===`light`?`Switch to dark`:`Switch to light`,"aria-label":s===`light`?`Switch to dark mode`:`Switch to light mode`,onClick:c,children:(0,Z.jsx)(ti,{name:s===`light`?`moon`:`sun`})})]})}function Ai({themes:e,current:t,onPick:n,onClose:r}){let i=(0,Y.useRef)(null);return(0,Y.useEffect)(()=>{let e=e=>{i.current&&!i.current.contains(e.target)&&r()},t=e=>{e.key===`Escape`&&r()};return document.addEventListener(`mousedown`,e),document.addEventListener(`keydown`,t),()=>{document.removeEventListener(`mousedown`,e),document.removeEventListener(`keydown`,t)}},[r]),(0,Y.useEffect)(()=>{i.current?.querySelector(`button.pop-item`)?.focus()},[]),(0,Z.jsxs)(`div`,{className:`pop`,ref:i,role:`menu`,"aria-label":`Switch voice`,children:[(0,Z.jsx)(`div`,{className:`tick`,style:{padding:`4px 10px 8px`},children:`Switch voice`}),e.map(e=>(0,Z.jsxs)(`button`,{type:`button`,role:`menuitemradio`,"aria-checked":e.name===t,className:`pop-item ${e.name===t?`on`:``}`,onClick:()=>n(e.name),children:[(0,Z.jsx)(`span`,{className:`po`,style:{background:In(e.accent),boxShadow:`0 0 8px ${In(e.accent)}`}}),(0,Z.jsx)(`span`,{className:`pn`,children:e.name})]},e.name))]})}var ji=3500;function Mi({toast:e,onClose:t}){let[n,r]=(0,Y.useState)(null),i=!!e&&e.kind!==`err`&&n!==e;(0,Y.useEffect)(()=>{if(!i)return;let e=setTimeout(t,ji);return()=>clearTimeout(e)},[e,i]);let a=()=>r(e),o=()=>r(null);return(0,Z.jsx)(`div`,{className:`toast-region`,"aria-live":e?.kind===`err`?void 0:`polite`,children:e&&(0,Z.jsxs)(`div`,{className:`toast ${e.kind}`,role:e.kind===`err`?`alert`:void 0,onMouseEnter:a,onMouseLeave:e=>{e.currentTarget.contains(document.activeElement)||o()},onFocus:a,onBlur:e=>{e.currentTarget.contains(e.relatedTarget)||o()},children:[(0,Z.jsx)(`div`,{children:e.msg}),(0,Z.jsx)(`div`,{style:{marginTop:8},children:(0,Z.jsx)(`button`,{className:`btn ghost`,onClick:t,children:`Dismiss`})})]})})}function Ni({runs:e,open:t,onToggle:n,onClear:r,onCancel:i,busy:a,finish:o}){let s=(0,Y.useRef)(null),c=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{let e=c.current;o&&e&&(e.classList.remove(`flash-ok`,`flash-bad`),e.offsetWidth,e.classList.add(o.status===`done`?`flash-ok`:`flash-bad`))},[o]);let l=e.length?e[e.length-1].output.length:0;return(0,Y.useEffect)(()=>{let e=s.current;e&&t&&(e.scrollTop=e.scrollHeight)},[e.length,l,t]),(0,Z.jsxs)(`div`,{className:`console`,style:{height:`42vh`,transform:t?`none`:`translateY(calc(42vh - 42px))`},children:[(0,Z.jsxs)(`div`,{className:`console-head`,ref:c,onClick:n,onAnimationEnd:e=>{e.target===e.currentTarget&&e.currentTarget.classList.remove(`flash-ok`,`flash-bad`)},children:[a&&(0,Z.jsx)(`span`,{className:`console-progress`,"aria-hidden":`true`}),(0,Z.jsxs)(`span`,{className:`ttl`,children:[(0,Z.jsx)(`span`,{className:`live ${a?`on`:``}`}),`terminal`]}),(0,Z.jsx)(`span`,{className:`count`,children:e.length}),(0,Z.jsxs)(`div`,{className:`right`,onClick:e=>e.stopPropagation(),children:[(0,Z.jsx)(`button`,{className:`iconbtn`,title:`Clear`,"aria-label":`Clear run history`,onClick:r,disabled:!e.length,children:(0,Z.jsx)(ti,{name:`clear`})}),(0,Z.jsx)(`button`,{className:`iconbtn`,title:t?`Collapse`:`Expand`,"aria-label":t?`Collapse console`:`Expand console`,"aria-expanded":t,onClick:n,children:(0,Z.jsx)(ti,{name:`chevron`,className:`glyph`,style:{transform:t?`rotate(90deg)`:`rotate(-90deg)`}})})]})]}),t&&(0,Z.jsxs)(`div`,{className:`console-body`,ref:s,children:[e.length===0&&(0,Z.jsx)(`div`,{className:`console-empty`,children:`No commands run yet. Actions you trigger stream here.`}),e.map(e=>(0,Z.jsxs)(`div`,{className:`run`,children:[(0,Z.jsxs)(`div`,{className:`run-head`,children:[(0,Z.jsx)(`span`,{className:`pr`,children:`$`}),(0,Z.jsx)(`span`,{className:`act`,children:e.action}),(0,Z.jsx)(`span`,{className:`st ${e.status}`,children:e.status===`running`?`…running`:`${e.status===`done`?`✓ done`:`✗ failed`}${e.duration?` · ${e.duration}s`:``}`}),e.status===`running`&&i&&(0,Z.jsx)(`button`,{className:`iconbtn run-cancel`,title:`Cancel this run`,"aria-label":`Cancel the ${e.action} run`,onClick:()=>i(e.id),children:(0,Z.jsx)(ti,{name:`x`})})]}),e.output&&(0,Z.jsx)(`pre`,{className:`run-out`,children:e.output})]},e.id))]})]})}var Pi=550,Fi=`gs-splash-seen`;function Ii(){try{if(window.localStorage.getItem(Fi))return 0;window.localStorage.setItem(Fi,`1`)}catch{}return Pi}function Li({ready:e,onDone:t}){let[n,r]=(0,Y.useState)(!1),[i,a]=(0,Y.useState)(!1);return(0,Y.useEffect)(()=>{let e=setTimeout(()=>r(!0),Ii());return()=>clearTimeout(e)},[]),e&&n&&!i&&a(!0),(0,Y.useEffect)(()=>{if(!i)return;let e=setTimeout(()=>t?.(),700);return()=>clearTimeout(e)},[i]),(0,Z.jsxs)(`div`,{className:`boot-splash${i?` fading`:``}`,"aria-hidden":`true`,onAnimationEnd:e=>{e.animationName===`splashOut`&&t?.()},children:[(0,Z.jsxs)(`div`,{className:`boot-dial`,children:[(0,Z.jsxs)(`svg`,{className:`boot-ring`,viewBox:`0 0 172 172`,children:[(0,Z.jsx)(`circle`,{cx:`86`,cy:`86`,r:`72`,fill:`none`,stroke:`var(--surface-3)`,strokeWidth:`9`}),(0,Z.jsx)(`circle`,{cx:`86`,cy:`86`,r:`50`,fill:`none`,stroke:`var(--line-2)`,strokeWidth:`8`,strokeDasharray:`1.2 5.3`,opacity:`.7`}),(0,Z.jsx)(`circle`,{className:`boot-progress`,cx:`86`,cy:`86`,r:`72`,fill:`none`,stroke:`var(--accent)`,strokeWidth:`9`,strokeLinecap:`round`})]}),(0,Z.jsxs)(`svg`,{className:`boot-sprout`,viewBox:`0 0 24 24`,children:[(0,Z.jsx)(`path`,{className:`bs-stem`,d:`M12 21.5v-9`,stroke:`var(--accent)`,strokeWidth:`2`,strokeLinecap:`round`,fill:`none`}),(0,Z.jsx)(`path`,{className:`bs-leaf bs-leaf-main`,d:`M12 13c0-4.5 3.2-7.5 7.5-7.5 0 4.5-3.2 7.5-7.5 7.5z`,fill:`var(--accent)`}),(0,Z.jsx)(`path`,{className:`bs-leaf bs-leaf-back`,d:`M12 14.5c0-3.6-2.6-6-6-6 0 3.6 2.6 6 6 6z`,fill:`var(--accent)`,opacity:`.42`}),(0,Z.jsx)(`circle`,{cx:`12`,cy:`12.4`,r:`1.1`,fill:`var(--bg)`})]})]}),(0,Z.jsxs)(`div`,{className:`boot-status`,children:[(0,Z.jsx)(`span`,{children:`germinating harness`}),(0,Z.jsx)(`span`,{className:`boot-caret`})]})]})}function Ri({label:e=`Loading…`}){return(0,Z.jsxs)(`div`,{className:`loading`,role:`status`,children:[e,(0,Z.jsxs)(`div`,{className:`skel`,"aria-hidden":`true`,children:[(0,Z.jsx)(`div`,{className:`skel-bar`}),(0,Z.jsx)(`div`,{className:`skel-bar`}),(0,Z.jsx)(`div`,{className:`skel-bar`})]})]})}function zi({error:e,style:t,onRetry:n,role:r=`alert`}){return e?n?(0,Z.jsxs)(`div`,{className:`error-state`,role:r,style:t,children:[(0,Z.jsx)(`p`,{className:`badge bad`,children:e}),(0,Z.jsx)(`button`,{type:`button`,className:`btn sm`,onClick:n,children:`Retry`})]}):(0,Z.jsx)(`p`,{className:`badge bad`,role:r,style:t,children:e}):null}function Bi(){let[e,t]=(0,Y.useState)(!1),[n,r]=(0,Y.useState)(null);return(0,Z.jsxs)(`div`,{className:`stale-banner`,role:`alert`,children:[(0,Z.jsx)(`span`,{children:n||`This console is running code from before your last upgrade.`}),(0,Z.jsx)(`button`,{className:`btn sm`,onClick:async()=>{t(!0),r(null);try{await Fr()}catch(e){r(e.message),t(!1)}},disabled:e,children:e?`Restarting…`:`Restart`})]})}var Vi=/dynamically imported module|Importing a module script failed|Unable to preload CSS/i,Hi=e=>Vi.test(e?.message||``),Ui=class extends Y.Component{state={error:null};static getDerivedStateFromError(e){return{error:e}}render(){let{error:e}=this.state;if(!e)return this.props.children;let t=Hi(e);return(0,Z.jsxs)(`div`,{role:t?void 0:`alert`,children:[(0,Z.jsx)(zi,{error:e.message||String(e),role:null}),t?(0,Z.jsx)(Bi,{}):(0,Z.jsx)(`button`,{type:`button`,className:`btn sm`,onClick:()=>this.setState({error:null}),children:`Retry`})]})}};function Wi({open:e,title:t,children:n,confirmLabel:r,tone:i,onConfirm:a,onClose:o}){let s=(0,Y.useRef)(null),c=(0,Y.useRef)(null),l=(0,Y.useRef)(null),u=(0,Y.useId)(),d=i===`danger`;return(0,Y.useEffect)(()=>{let t=s.current;t&&(e&&!t.open&&(typeof t.showModal==`function`?t.showModal():t.setAttribute(`open`,``)),e&&(d?c:l).current?.focus(),!e&&t.open&&(typeof t.close==`function`?t.close():t.removeAttribute(`open`)))},[e,d]),(0,Z.jsxs)(`dialog`,{ref:s,className:`confirm`,"aria-labelledby":`${u}-title`,"aria-describedby":`${u}-body`,onCancel:o,onClose:o,children:[(0,Z.jsx)(`h3`,{className:`confirm-title`,id:`${u}-title`,children:t}),(0,Z.jsx)(`div`,{className:`confirm-body`,id:`${u}-body`,children:n}),(0,Z.jsxs)(`div`,{className:`confirm-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`btn ghost`,onClick:o,ref:c,children:`Cancel`}),(0,Z.jsx)(`button`,{type:`button`,className:d?`btn danger`:`btn`,onClick:a,ref:l,children:r||`Confirm`})]})]})}var Gi=(0,Y.createContext)(null),Ki=()=>{throw Error(`useConfirm() needs a <ConfirmProvider> above it`)};function qi(){return(0,Y.useContext)(Gi)||Ki}function Ji({children:e}){let[t,n]=(0,Y.useState)(null),r=(0,Y.useRef)(null),i=e=>{let t=r.current;r.current=null,n(null),t?.(e)},a=(0,Y.useCallback)((e,t={})=>new Promise(i=>{r.current?.(!1),r.current=i,n({msg:e,...t})}),[]);return(0,Z.jsxs)(Gi.Provider,{value:a,children:[e,(0,Z.jsx)(Wi,{open:!!t,title:t?.title||`Are you sure?`,confirmLabel:t?.confirmLabel,tone:t?.tone,onConfirm:()=>i(!0),onClose:()=>i(!1),children:t?.msg})]})}var Yi=(0,Y.createContext)(null),Xi=e=>[...e].sort().join(`,`),Zi=e=>[...e.values()].some(e=>!e.applied&&Xi(e.value)!==e.base);function Qi(e,t){let[n,r]=(0,Y.useState)(()=>({kits:new Map,rules:new Map})),[i,a]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(t);if(o!==t&&(s(t),i&&t)){let e=t.status===`done`?{applied:!0}:{failed:!0};r(t=>{let n=t[i.kind].get(i.key);return n?{...t,[i.kind]:new Map(t[i.kind]).set(i.key,{...n,...e})}:t}),a(null)}let c=Zi(n.kits)||Zi(n.rules);return(0,Y.useEffect)(()=>{if(!c)return;let e=e=>{e.preventDefault(),e.returnValue=``};return window.addEventListener(`beforeunload`,e),()=>window.removeEventListener(`beforeunload`,e)},[c]),{get:(e,t)=>n[e].get(t),put:(e,t,n,i)=>r(r=>{let a=new Map(r[e]);return Xi(n)===i?a.delete(t):a.set(t,{value:n,base:i}),{...r,[e]:a}}),drop:(e,t)=>r(n=>{let r=new Map(n[e]);return r.delete(t),{...n,[e]:r}}),prune:(0,Y.useCallback)((e,t)=>r(n=>{let r=[...n[e]].filter(([e,n])=>t(e,n)).map(([e])=>e);if(!r.length)return n;let i=new Map(n[e]);return r.forEach(e=>i.delete(e)),{...n,[e]:i}}),[]),startApply:(e,t)=>{a({kind:e,key:t}),r(n=>{let r=n[e].get(t);return r?.failed?{...n,[e]:new Map(n[e]).set(t,{value:r.value,base:r.base})}:n})},running:(t,n)=>!!e&&i?.kind===t&&i?.key===n}}function $i({activeId:e,finish:t,children:n}){let r=Qi(e,t);return(0,Z.jsx)(Yi.Provider,{value:r,children:n})}function ea(){let e=Qi(null,null);return(0,Y.useContext)(Yi)||e}var ta=e=>!!e&&!e.endsWith(`-global`);function na({onAction:e}){let{data:t,error:n}=X(()=>a.themes(),[]),[r,i]=(0,Y.useState)(``),[o,s]=(0,Y.useState)(``),[c,l]=(0,Y.useState)(``),[u,d]=(0,Y.useState)(``),[f,p]=(0,Y.useState)(!1);if(n)return(0,Z.jsx)(zi,{error:n});if(!t)return(0,Z.jsx)(Ri,{});let m=r||t.current?.theme||`neutral`,h=(t.emits||[]).filter(e=>e.name!==`files`),g=t.emits?.some(e=>e.name===`opencode-global`),_=o||(g?`opencode-global`:t.current?.emit||h[0]?.name||``),v=i,y=s,b=ta(_);return(0,Z.jsxs)(`div`,{className:`narrow-lg`,children:[(0,Z.jsx)(`div`,{className:`head-row mb-18`,children:(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h1`,{className:`h`,children:`Deploy your harness`}),(0,Z.jsx)(`p`,{className:`sub`,children:`Geneseed isn't implanted on this machine yet. Pick a voice and an install mode, then deploy. The graft runs in the console below, and this dashboard lights up when it lands.`})]})}),(0,Z.jsxs)(`div`,{className:`card pad-lg mb-16`,children:[(0,Z.jsx)(`div`,{className:`card-head`,children:(0,Z.jsx)(`h3`,{children:`1 · Choose a voice`})}),(0,Z.jsx)(`div`,{className:`row wrap gap-10`,children:t.themes.map(e=>(0,Z.jsxs)(`button`,{className:`btn ${e.name===m?`soft`:`ghost`}`,onClick:()=>v(e.name),title:e.blurb||e.tagline||e.name,children:[(0,Z.jsx)(`span`,{className:`po`,style:{width:10,height:10,borderRadius:`50%`,background:In(e.accent),boxShadow:`0 0 8px ${In(e.accent)}`}}),(0,Z.jsx)(`span`,{style:{textTransform:`capitalize`},children:e.name})]},e.name))})]}),(0,Z.jsxs)(`div`,{className:`card pad-lg mb-16`,children:[(0,Z.jsx)(`div`,{className:`card-head`,children:(0,Z.jsx)(`h3`,{children:`2 · Install mode`})}),(0,Z.jsxs)(`p`,{className:`sub mb-16`,children:[`A `,(0,Z.jsx)(`code`,{children:`-global`}),` mode deploys once to that tool's global config, so every repo on this machine inherits the harness (recommended). A project mode installs into the repository folder you choose.`]}),(0,Z.jsxs)(`label`,{className:`stack`,style:{gap:6,maxWidth:360},children:[(0,Z.jsx)(`span`,{className:`tick`,children:`Mode`}),(0,Z.jsx)(`select`,{className:`sel`,value:_,onChange:e=>y(e.target.value),children:h.map(e=>(0,Z.jsxs)(`option`,{value:e.name,children:[e.name,e.desc?` · ${e.desc}`:``]},e.name))})]}),b&&(0,Z.jsxs)(`div`,{className:`row gap-10`,style:{maxWidth:560,marginTop:12},children:[(0,Z.jsx)(`input`,{className:`inp`,style:{flex:1},type:`text`,placeholder:`/path/to/project, or click Browse…`,value:c,onChange:e=>l(e.target.value),"aria-label":`Project folder to install into`}),(0,Z.jsx)(`button`,{className:`btn ghost sm`,disabled:f,onClick:async()=>{p(!0),d(``);try{let e=await a.pickFolder();e.path?l(e.path):e.error&&d(e.error)}catch(e){d(e.message)}finally{p(!1)}},children:f?`Choosing…`:`Browse…`})]}),u&&(0,Z.jsx)(`p`,{className:`sub`,style:{marginTop:12},children:u})]}),(0,Z.jsxs)(`button`,{className:`btn btn-grid`,disabled:!m||!_||b&&!c.trim(),onClick:()=>{if(!b)return e(`build`,{theme:m,emit:_});let t=c.trim();return t?(d(``),e(`deploy`,{host:_,path:t,theme:m})):d(`Choose or type the project folder to install into.`)},children:[(0,Z.jsx)(ti,{name:`build`}),`Deploy harness`]})]})}var ra=e=>X(()=>a.rules().catch(()=>null),[e],`rules`,{revalidate:!0}),ia=()=>Br(`rules`),Q={security:`oklch(0.74 0.085 45)`,verify:`oklch(0.78 0.075 200)`,process:`oklch(0.76 0.075 150)`,craft:`oklch(0.78 0.085 95)`,context:`oklch(0.74 0.08 280)`,comms:`oklch(0.76 0.085 345)`},aa={security:{label:`Security`,c:Q.security},verify:{label:`Verification`,c:Q.verify},process:{label:`Process`,c:Q.process},craft:{label:`Craft`,c:Q.craft},context:{label:`Context`,c:Q.context},comms:{label:`Communication`,c:Q.comms}},oa={craft:Q.craft,rigor:Q.verify,ops:Q.process,process:Q.security,comms:Q.comms},sa=e=>oa[e]||`var(--text-3)`,ca={design:{label:`Design`,c:Q.context},build:{label:`Build`,c:Q.craft},review:{label:`Review`,c:Q.security},ship:{label:`Ship`,c:Q.process},understand:{label:`Understand`,c:Q.verify},learn:{label:`Learn`,c:Q.comms},harness:{label:`Harness`,c:`oklch(0.76 0.07 250)`},personal:{label:`Personal`,c:`oklch(0.72 0.025 250)`}},la=Object.keys(ca);function ua(e){let t=String(e||``),n=/\(retired\)\s*$/i.test(t);t=t.replace(/\s*\(retired\)\s*$/i,``),t=t.replace(/^(?:Rule\s+[IVXLCDM\d]+|Doctrine\s+[a-z]+\s+\d+)\s*[—-]\s*/i,``);let r=t.indexOf(` · `);return r===-1?{latin:``,name:t.trim(),retired:n}:{latin:t.slice(0,r).trim(),name:t.slice(r+3).trim(),retired:n}}var da=[[10,`X`],[9,`IX`],[5,`V`],[4,`IV`],[1,`I`]],fa=e=>{let t=``;for(let[n,r]of da)for(;e>=n;)t+=r,e-=n;return t};function pa(e){let t=/^([a-z]+)-(\d+)$/.exec(String(e));return t?t[1]===`law`?fa(Number(t[2])):`${t[1]}.${t[2]}`:String(e)}var ma=new Set([`I`,`III`,`IV`,`process.1`,`process.5`,`rigor.5`,`ops.2`]),ha={I:{key:`secretsGate`,label:`Secrets gate`},III:{key:`doneGate`,label:`Done gate`},IV:{key:`deletionGate`,label:`Deletion gate`}},ga={I:{arm:`Writes that would carry a credential-shaped string are refused again.`,off:`A write carrying a credential-shaped string (on OpenCode, also a write to a key file) stops being refused. Rule I’s text still binds the agent; protected checks, real data loss and commit/push consent stay gated.`},III:{arm:`A turn that edited files cannot end before the project’s declared checks pass.`,off:`A turn that edited files may end without the checks in .geneseed/done-checks.txt passing. Rule III’s text still binds the agent; every other gate stays.`},IV:{arm:`Commands that would lose data nothing else holds ask again.`,off:`Commands that would really lose data — discarding uncommitted work, deleting an unpushed branch, removing untracked files — stop asking. Rule IV’s text still binds the agent; secrets, root-wide scans and commit/push consent stay gated.`}},_a=[{key:`invariants`,source:`{{LAWS}}`,against:`—`},{key:`yours`,source:`user-rules.md`,against:`may tighten a {{LAW}}, never repeal one`},{key:`ethos`,source:`{{ONTOLOGY}}`,against:`never against a user rule`},{key:`doctrines`,source:`{{DOCTRINES}}`,against:`may tighten, never repeal`}],va=(e,t={})=>ha[e]&&t?.[ha[e].key]===!1?`Gate off`:ma.has(e)?`Hook gate`:`Instruction`;function ya(e){let t={};for(let n of e||[]){let e=ca[n.klass]?n.klass:`personal`,r=t[e]||(t[e]={key:e,label:ca[e].label,ok:0,exp:0});n.status===`experimental`?r.exp+=1:r.ok+=1}let n=la.filter(e=>t[e]).map(e=>({...t[e],n:t[e].ok+t[e].exp}));return{rows:n,total:n.reduce((e,t)=>e+t.n,0),experimental:n.reduce((e,t)=>e+t.exp,0),max:Math.max(1,...n.map(e=>e.n))}}var $=(e,t,n=t+`s`)=>`${e} ${e===1?t:n}`;function ba({overview:e,setup:t,rules:n,activity:r,profile:i,skills:a,laws:o}){let s=[],c=e?.doctor;c&&!c.ok&&s.push({id:`doctor`,tag:`Doctor`,tone:`bad`,title:`Doctor found ${$(c.problems.length,`problem`)}`,detail:c.problems[0]||``,where:`installs/doctor`,verb:`Review`,href:`#/installs/doctor`});let l=e?.diff,u=Qr(l);u&&s.push({id:`drift`,tag:`Drift`,tone:`warn`,title:`${$(u,`file`)} drifted from the source`,detail:`${l.edited} edited, ${l.added} added, ${l.missing} missing`,where:`installs/edits`,verb:`Review`,href:`#/installs/edits`}),i?.seeded&&s.push({id:`profile`,tag:`Profile`,tone:`warn`,title:`Profile is still the seeded template`,detail:`every section holds placeholder text`,where:`personal/profile`,verb:`Fill in`,href:`#/personal/profile`});let d=n?.exists?n.stats:null;d&&d.rules===0&&s.push({id:`rules`,tag:`Rules`,tone:``,title:`No standing rules yet`,detail:`0 of ${d.max_rules} · ${d.tokens} of ${d.max_tokens} tokens`,where:`personal/rules`,verb:`Write a rule`,href:`#/personal/rules`});let f=Object.entries(t?.gates?.asks||{}).sort((e,t)=>t[1]-e[1]);if(f.length){let[e,n]=f[0],r=pa(e),i=(o?.items||[]).find(e=>e.name===r),a=i?ua(i.title).name:r;s.push({id:`gates`,tag:`Gates`,tone:``,title:`${a} asked ${$(n,`time`)}`,detail:`${n} of ${t.gates.total} gate asks`,where:r,verb:`Review`,href:`#/item/law/${encodeURIComponent(r)}`})}if(a){let{rows:e,experimental:t}=ya(a.items);t&&s.push({id:`skills`,tag:`Skills`,tone:``,title:`${$(t,`skill`)} still experimental`,detail:e.filter(e=>e.exp).sort((e,t)=>t.exp-e.exp).map(e=>`${e.label.toLowerCase()} ${e.exp}`).join(`, `),where:`library/skills`,verb:`Triage`,href:`#/skills`})}return t&&t.facts===0&&s.push({id:`memory`,tag:`Memory`,tone:``,title:`Memory holds no facts`,detail:`MEMORY.md is an empty index`,where:`library/memory`,verb:`Open`,href:`#/section/memory`}),r&&r.enabled===!1&&s.push({id:`activity`,tag:`Activity`,tone:``,title:`Session tracking is off`,detail:`no per-session trace is kept`,where:`activity`,verb:`Turn on`,href:`#/activity`}),s}var xa=e=>Qr(e.drift),Sa=e=>e.drift?.stale??0;function Ca(e){let t=t=>new Set((e?.never||[]).filter(e=>e.kind===t).map(e=>e.name)).size;return{skills:t(`skill`),agents:t(`agent`)}}function wa(e){let t=e?.installs||[],n=t.filter(e=>e.state===`active`),r=t.length-n.length,i=n.filter(e=>e.verdict===`behind`).length,a=n.reduce((e,t)=>e+xa(t),0),o=n.reduce((e,t)=>e+Sa(t),0),s=e?.doctor,c=s&&!s.ok?`bad`:i||a||o?`warn`:`good`,l={good:`Harness healthy.`,warn:`Harness needs a look.`,bad:`Harness has problems.`}[c],u=[$(n.length,`active install`)+(r?`, ${r} disabled`:``),s?s.ok?`doctor clean`:`doctor found ${$(s.problems.length,`problem`)}`:`doctor not run yet`,i?`${$(i,`install`)} behind source`:`all in step with source`,a?`${$(a,`file`)} hand-edited`:`no hand edits`];return o&&u.push(`${$(o,`file`)} behind source`),{tone:c,head:l,facts:u}}var Ta=[[`carrier`,`Root file`],[`skills`,`Skill list`],[`agents`,`Agent list`],[`context`,`Session files`]],Ea=e=>e?e.carrier+e.skills+e.agents+e.context:0,Da=e=>`≈${(e/4/1e3).toFixed(1)}k`,Oa=e=>`${e.host} · ${e.scope}`;function ka({fleet:e,usage:t,...n}){let r=[],i=e?.doctor;i&&!i.ok&&r.push({id:`doctor`,tag:`Doctor`,tone:`bad`,title:`Doctor found ${$(i.problems.length,`problem`)}`,detail:i.problems[0]||``,where:`installs/doctor`,verb:`Review`,href:`#/installs/doctor`});for(let t of(e?.installs||[]).filter(e=>e.state===`active`)){if(t.verdict===`behind`){let e=t.built_epoch?`built ${Gr(t.built_epoch)} ago`:`never built`,n=Sa(t);r.push({id:`behind:${t.id}`,tag:`Behind`,tone:`warn`,title:`${Oa(t)} is behind its source`,detail:n?`${e} · ${$(n,`file`)} behind`:e,where:t.host,verb:`Rebuild`,act:`build-all`})}let e=xa(t);e&&r.push({id:`drift:${t.id}`,tag:`Drift`,tone:`warn`,title:`${Oa(t)}: ${$(e,`file`)} edited by hand`,detail:`${t.drift.edited} edited, ${t.drift.added} added, ${t.drift.missing} missing`,where:`installs/edits`,verb:`Review`,href:`#/installs/edits`})}if(t&&t.days_counted>=30&&t.never?.length){let{skills:e,agents:n}=Ca(t);r.push({id:`usage`,tag:`Usage`,tone:``,sugg:!0,title:`${$(e,`skill`)} never fired in 30 days`,detail:`${$(n,`agent`)} too`,where:`library/skills`,verb:`Triage`,href:`#/skills`})}let a=ba({...n,overview:n.overview&&{...n.overview,doctor:null,diff:null}});for(let e of a)r.push({...e,sugg:!0});return r}function Aa(e,t){return(e?.rules||[]).map(e=>{let n=pa(e.rule),r=(t?.items||[]).find(e=>e.name===n);return{...e,name:r?ua(r.title).name:e.rule===`wiki`?`Wiki guard`:n}})}var ja=e=>e.catch(()=>null),Ma=(e,t)=>`${t?Math.min(100,e/t*100):0}%`,Na=36e5;function Pa({update:e,onAction:t}){if(!e)return null;let n=e.install??(e.git?`git`:`npm-global`),r=n===`git`&&typeof e.behind==`number`?e.behind:null,i=r===null?e.latest===null?(0,Z.jsxs)(`span`,{className:`mono dim ver-chip`,children:[e.current??``,` · update check unavailable`]}):e.available?(0,Z.jsxs)(`span`,{className:`mono ver-chip`,children:[e.current,` `,(0,Z.jsxs)(`span`,{className:`ver-new`,children:[e.latest,` available`]})]}):(0,Z.jsxs)(`span`,{className:`mono dim ver-chip`,children:[e.current,` · latest`]}):r>0?(0,Z.jsxs)(`span`,{className:`mono ver-chip`,children:[e.current??``,` `,(0,Z.jsxs)(`span`,{className:`ver-new`,children:[r,` commit`,r===1?``:`s`,` to pull`]})]}):(0,Z.jsxs)(`span`,{className:`mono dim ver-chip`,children:[e.current??``,` · up to date`]});if(n===`other`)return!e.available||!e.command?i:(0,Z.jsxs)(Z.Fragment,{children:[i,(0,Z.jsxs)(`span`,{className:`dim`,children:[`update with `,(0,Z.jsx)(`code`,{className:`mono`,children:e.command})]})]});if(n!==`git`&&!e.available)return i;let a=r===null?!!e.available:r>0;return(0,Z.jsxs)(Z.Fragment,{children:[i,(0,Z.jsx)(`button`,{type:`button`,className:a?`btn`:`btn ghost`,title:n===`git`?r===0?`Nothing to pull: up to date with upstream. Pulls and rebuilds every install anyway.`:`git pull, then rebuild every install`:`npm install -g geneseed@latest, then rebuild every install`,onClick:()=>t(`update`),children:`Update`})]})}function Fa({fleet:e,error:t}){if(!e)return t?(0,Z.jsxs)(`div`,{className:`health`,role:`status`,children:[(0,Z.jsx)(`span`,{className:`health-dot`,"aria-hidden":`true`}),(0,Z.jsx)(`p`,{className:`verdict-facts`,children:(0,Z.jsx)(`b`,{children:`Status unknown`})})]}):(0,Z.jsx)(`div`,{className:`health`,"aria-busy":`true`});let n=wa(e);return(0,Z.jsxs)(`div`,{className:`health ${n.tone}`,role:`status`,children:[(0,Z.jsx)(`span`,{className:`health-dot`,"aria-hidden":`true`}),(0,Z.jsxs)(`p`,{className:`verdict-facts`,children:[(0,Z.jsx)(`b`,{children:n.head}),n.facts.map(e=>(0,Z.jsx)(`span`,{className:`muted`,children:e},e))]})]})}function Ia({chars:e}){let t=yn(e);return(0,Z.jsxs)(`span`,{className:`mono`,children:[Da(t??e),` tok`]})}function La({cost:e,i:t}){let n=2*Math.PI*14,r=e.ceiling?Math.min(1,e.carrier/e.ceiling):0;return(0,Z.jsxs)(`svg`,{className:`ldg-ring`,viewBox:`0 0 36 36`,"aria-hidden":`true`,children:[(0,Z.jsx)(`circle`,{className:`bg`,cx:`18`,cy:`18`,r:14}),(0,Z.jsx)(`circle`,{className:`fg`+(e.ceiling&&e.carrier>e.ceiling?` over`:``),cx:`18`,cy:`18`,r:14,strokeDasharray:n.toFixed(2),strokeDashoffset:(n*(1-r)).toFixed(2),style:{"--circ":n.toFixed(2),"--i":t}})]})}function Ra({i:e,n:t,onAction:n,onOpen:r}){let i=(0,Z.jsxs)(`td`,{children:[(0,Z.jsx)(`span`,{className:`ldg-host`,children:e.host}),` `,(0,Z.jsx)(`span`,{className:`dim`,children:e.scope}),(0,Z.jsx)(`div`,{className:`mono dim ldg-path`,children:e.path})]});if(e.state!==`active`)return(0,Z.jsxs)(`tr`,{className:`ldg-off`,children:[i,(0,Z.jsxs)(`td`,{children:[e.theme,` `,(0,Z.jsxs)(`span`,{className:`dim`,children:[`· `,e.footprint]})]}),(0,Z.jsx)(`td`,{children:(0,Z.jsx)(`span`,{className:`pill off`,children:`disabled`})}),(0,Z.jsx)(`td`,{}),(0,Z.jsx)(`td`,{}),(0,Z.jsx)(`td`,{}),(0,Z.jsx)(`td`,{className:`ldg-act`,children:(0,Z.jsx)(`button`,{type:`button`,className:`btn ghost sm`,onClick:()=>r(e),children:`Open`})})]});let a=Qr(e.drift),o=e.drift?.stale??0,s={synced:(0,Z.jsx)(`span`,{className:`pill good`,children:`in step`}),behind:(0,Z.jsx)(`span`,{className:`pill warn`,children:`behind source`}),unknown:(0,Z.jsx)(`span`,{className:`pill off`,children:`not checked`})}[e.verdict],c=Ea(e.cost),l=e.cost?.ceiling?Math.round(e.cost.carrier/e.cost.ceiling*100):null,u=l===null?`no ceiling`:`root file ${l}% of ceiling`;return(0,Z.jsxs)(`tr`,{children:[i,(0,Z.jsxs)(`td`,{children:[e.theme,` `,(0,Z.jsxs)(`span`,{className:`dim`,children:[`· `,e.footprint]})]}),(0,Z.jsxs)(`td`,{children:[s,o?(0,Z.jsxs)(`div`,{className:`mono dim ldg-sub`,children:[o,` file`,o===1?``:`s`,` behind`]}):null]}),(0,Z.jsx)(`td`,{children:e.diffable?a?(0,Z.jsxs)(`span`,{className:`mono t-warn`,children:[a,` edited`]}):e.drift?.linked?(0,Z.jsxs)(`span`,{className:`mono dim`,title:`Yours: links Geneseed leaves alone`,children:[e.drift.linked,` linked`]}):(0,Z.jsx)(`span`,{className:`mono dim`,children:`none`}):(0,Z.jsx)(`span`,{className:`dim`,title:`Drift is only checked for global installs`,children:`not checkable`})}),(0,Z.jsx)(`td`,{children:e.cost?(0,Z.jsxs)(`div`,{className:`ldg-cost`,title:l===null?`no ceiling`:`root file ${l}% of the ${e.footprint} ceiling`,children:[(0,Z.jsx)(La,{cost:e.cost,i:t}),(0,Z.jsxs)(`span`,{children:[(0,Z.jsx)(Ia,{chars:c}),(0,Z.jsx)(`span`,{className:`dim ldg-sub`,children:u})]})]}):(0,Z.jsx)(`span`,{className:`dim`,children:`not measured`})}),(0,Z.jsx)(`td`,{className:`mono dim`,children:e.built_epoch?`${Gr(e.built_epoch)} ago`:`never`}),(0,Z.jsx)(`td`,{className:`ldg-act`,children:e.verdict===`behind`||a||o?(0,Z.jsx)(`button`,{type:`button`,className:`btn sm`,onClick:()=>n(`build-all`),children:`Rebuild`}):(0,Z.jsx)(`button`,{type:`button`,className:`btn ghost sm`,onClick:()=>r(e),children:`Open`})})]})}function za({rows:e,onAction:t}){let n=e.filter(e=>!e.sugg).length;return(0,Z.jsxs)(`section`,{className:`panel`,"aria-labelledby":`ldg-needs`,children:[(0,Z.jsxs)(`div`,{className:`panel-head panel-head-rule`,children:[(0,Z.jsx)(`h2`,{id:`ldg-needs`,children:`Needs attention`}),(0,Z.jsxs)(`span`,{className:`mono dim`,children:[n,` problem`,n===1?``:`s`,`, `,e.length-n,` suggestion`,e.length-n===1?``:`s`]})]}),e.length?(0,Z.jsx)(`ul`,{className:`needs`,children:e.map(e=>(0,Z.jsxs)(`li`,{className:e.sugg?`sugg`:``,children:[(0,Z.jsx)(`span`,{className:`tag ${e.tone}`,children:e.tag}),(0,Z.jsxs)(`span`,{className:`needs-what`,children:[(0,Z.jsx)(`b`,{children:e.title}),e.detail?(0,Z.jsxs)(`span`,{className:`dim`,children:[` · `,e.detail]}):null]}),(0,Z.jsx)(`span`,{className:`mono dim needs-where`,children:e.where}),e.act?(0,Z.jsx)(`button`,{type:`button`,className:`needs-verb linkish`,onClick:()=>t(e.act),children:e.verb}):(0,Z.jsx)(`a`,{className:`needs-verb`,href:e.href,children:e.verb})]},e.id))}):(0,Z.jsx)(`p`,{className:`needs-empty`,children:`Nothing needs you.`})]})}function Ba({installs:e}){let t=e.filter(e=>e.state===`active`&&e.cost),n=Math.max(1,...t.map(e=>Math.max(Ea(e.cost),e.cost.ceiling||0)));return(0,Z.jsxs)(`section`,{className:`panel chart-card`,"aria-labelledby":`ldg-cost`,children:[(0,Z.jsxs)(`div`,{className:`panel-head`,children:[(0,Z.jsx)(`h2`,{id:`ldg-cost`,children:`Always-on cost`}),(0,Z.jsx)(`span`,{className:`mono dim`,children:`≈ tokens per session`})]}),t.length?t.map((e,t)=>(0,Z.jsxs)(`div`,{className:`cost-row`,children:[(0,Z.jsxs)(`div`,{className:`cost-lab`,children:[(0,Z.jsxs)(`span`,{children:[e.host,` `,(0,Z.jsx)(`span`,{className:`dim`,children:e.scope})]}),(0,Z.jsx)(`span`,{className:`mono`,children:Da(Ea(e.cost))})]}),(0,Z.jsx)(`div`,{className:`cost-stack`,children:(0,Z.jsx)(`span`,{className:`cost-segs`,style:{"--i":t},children:Ta.map(([t])=>(0,Z.jsx)(`span`,{className:`cs-${t}`,style:{width:Ma(e.cost[t],n)}},t))})}),e.cost.ceiling?(0,Z.jsxs)(`div`,{className:`cost-stack cost-lane`,title:`root file ${Math.round(e.cost.carrier/e.cost.ceiling*100)}% of ceiling`,children:[(0,Z.jsx)(`span`,{className:`cost-segs`,style:{"--i":t},children:(0,Z.jsx)(`span`,{className:`cs-carrier`,style:{width:Ma(e.cost.carrier,n)}})}),(0,Z.jsx)(`span`,{className:`cost-ceil`,style:{left:Ma(e.cost.ceiling,n)}})]}):null]},e.id)):(0,Z.jsx)(`p`,{className:`dim`,children:`No install has a root file to measure.`}),(0,Z.jsxs)(`div`,{className:`cost-key`,children:[Ta.map(([e,t])=>(0,Z.jsxs)(`span`,{children:[(0,Z.jsx)(`i`,{className:`cs-${e}`}),t]},e)),(0,Z.jsxs)(`span`,{children:[(0,Z.jsx)(`i`,{className:`cost-ceil-key`}),`root file ceiling`]})]}),(0,Z.jsx)(`p`,{className:`dim chart-foot`,children:`Estimated as characters ÷ 4 from the emitted files.`})]})}function Va({usage:e}){let t=(0,Z.jsxs)(`div`,{className:`panel-head`,children:[(0,Z.jsx)(`h2`,{id:`ldg-usage`,children:`What fires`}),(0,Z.jsx)(`span`,{className:`mono dim`,children:`skills and agents, 30 d`})]});if(!e)return(0,Z.jsxs)(`section`,{className:`panel chart-card`,"aria-labelledby":`ldg-usage`,children:[t,(0,Z.jsx)(`p`,{className:`dim`,children:`Usage could not be read.`})]});if(!e.enabled)return(0,Z.jsxs)(`section`,{className:`panel chart-card`,"aria-labelledby":`ldg-usage`,children:[t,(0,Z.jsx)(`p`,{className:`dim`,children:`Usage counting is off on this machine.`})]});if(e.days_counted<30)return(0,Z.jsxs)(`section`,{className:`panel chart-card`,"aria-labelledby":`ldg-usage`,children:[t,(0,Z.jsx)(`p`,{className:`muted`,children:e.since?(0,Z.jsxs)(Z.Fragment,{children:[`Counting since `,(0,Z.jsx)(`b`,{children:e.since}),`, `,e.days_counted,` of 30 days`]}):`No skill or agent call counted yet`}),(0,Z.jsx)(`div`,{className:`daytrack`,"aria-hidden":`true`,children:Array.from({length:30},(t,n)=>(0,Z.jsx)(`i`,{className:n<e.days_counted?`on`:``},n))}),(0,Z.jsx)(`p`,{className:`dim chart-foot`,children:`Rankings and the never-fired count appear once 30 days are counted, so a new install is not told every skill is unused.`})]});let n=e.rows.slice(0,7),r=Math.max(1,...n.map(e=>e.n)),i=Math.max(1,...e.per_day),a=e.per_day.reduce((e,t)=>e+t,0);return(0,Z.jsxs)(`section`,{className:`panel chart-card`,"aria-labelledby":`ldg-usage`,children:[t,(0,Z.jsxs)(`div`,{className:`cols30-wrap`,children:[(0,Z.jsxs)(`div`,{className:`chart-axis mono dim`,children:[(0,Z.jsx)(`span`,{children:`calls per day`}),(0,Z.jsxs)(`span`,{children:[(0,Z.jsx)(bn,{value:a}),` in 30 d`]})]}),(0,Z.jsx)(`div`,{className:`cols30`,"aria-hidden":`true`,children:e.per_day.map((e,t)=>(0,Z.jsx)(`i`,{className:t===29?`today`:``,style:{height:Ma(e,i),"--i":t}},t))})]}),(0,Z.jsx)(`ul`,{className:`ubars`,children:n.map((e,t)=>(0,Z.jsxs)(`li`,{className:e.kind,children:[(0,Z.jsx)(`span`,{className:`ub-name`,children:e.name}),(0,Z.jsx)(`span`,{className:`ub-trk`,children:(0,Z.jsx)(`i`,{style:{width:Ma(e.n,r),"--i":t}})}),(0,Z.jsx)(`span`,{className:`mono`,children:e.n})]},`${e.install}:${e.kind}:${e.name}`))}),e.never.length?(0,Z.jsxs)(`div`,{className:`ub-never`,children:[(0,Z.jsxs)(`span`,{children:[(0,Z.jsx)(`b`,{children:Ca(e).skills}),` skills never fired`]}),(0,Z.jsx)(`a`,{className:`needs-verb`,href:`#/skills`,children:`Triage`})]}):null]})}function Ha({vals:e,i:t}){let n=Math.max(1,...e),r=96/(e.length-1),i=e.map((e,t)=>`${(t*r).toFixed(1)},${(20-e/n*17).toFixed(1)}`),[a,o]=i[i.length-1].split(`,`);return(0,Z.jsxs)(`svg`,{className:`spark`,viewBox:`0 0 96 22`,"aria-hidden":`true`,style:{"--i":t},children:[(0,Z.jsx)(`polyline`,{points:`0,21 96,21`,className:`spk-base`}),(0,Z.jsx)(`polygon`,{className:`spk-area`,points:`0,21 ${i.join(` `)} 96,21`}),(0,Z.jsx)(`polyline`,{className:`spk-line`,pathLength:`1`,points:i.join(` `)}),(0,Z.jsx)(`circle`,{className:`spk-end`,cx:a,cy:o,r:`2.4`})]})}function Ua({gates:e,laws:t}){let n=Aa(e,t);return(0,Z.jsxs)(`section`,{className:`panel chart-card`,"aria-labelledby":`ldg-gates`,children:[(0,Z.jsxs)(`div`,{className:`panel-head`,children:[(0,Z.jsx)(`h2`,{id:`ldg-gates`,children:`Gates`}),(0,Z.jsx)(`span`,{className:`mono dim`,children:`asks per rule, 30 d`})]}),n.length?(0,Z.jsx)(`ul`,{className:`gate-rows`,children:n.slice(0,6).map((e,t)=>(0,Z.jsxs)(`li`,{children:[(0,Z.jsx)(`span`,{children:e.name}),(0,Z.jsx)(Ha,{vals:e.per_day,i:t}),(0,Z.jsx)(`span`,{className:`mono`,children:e.n})]},e.rule))}):(0,Z.jsx)(`p`,{className:`dim`,children:e?`No gate asked in 30 days.`:`Gate activity could not be read.`})]})}function Wa({overview:e,setup:t,onAction:n,onRetry:r,dataRev:i,banner:o}){let{data:s,error:c,reload:l}=X(()=>a.fleet(),[i]),{data:u}=X(()=>ja(a.usage()),[i]),{data:d}=X(()=>ja(a.gates()),[i]),f=(0,Y.useRef)(null),{data:p,reload:m}=X(()=>ja(a.update()).then(e=>(e&&(f.current=e),f.current)),[i]);(0,Y.useEffect)(()=>{let e=setInterval(m,Na),t=()=>{document.visibilityState===`visible`&&m()};return document.addEventListener(`visibilitychange`,t),()=>{clearInterval(e),document.removeEventListener(`visibilitychange`,t)}},[m]);let{data:h}=ra(i),{data:g}=X(()=>ja(a.activity()),[i]),{data:_}=X(()=>ja(a.profile()),[i]),{data:v}=X(()=>ja(a.catalog(`skills`)),[i],`catalog:skills`),{data:y}=X(()=>ja(a.catalog(`laws`)),[i],`catalog:laws`),b=s?.installs||[],x=async e=>{try{await a.selectView(e.host,e.path)}catch{}r?.(),window.location.hash=`#/installs`},S=ka({fleet:s,usage:u,overview:e,setup:t,rules:h,activity:g,profile:_,skills:v,laws:y});return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`page-head`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h1`,{className:`h`,children:`Overview`}),(0,Z.jsx)(`p`,{className:`sub mono`,children:s?`${b.length} installed · machine-wide`:` `})]}),(0,Z.jsxs)(`div`,{className:`page-actions`,children:[(0,Z.jsx)(Pa,{update:p,onAction:n}),(0,Z.jsx)(`button`,{type:`button`,className:`btn ghost`,onClick:()=>n(`doctor`),children:`Run doctor`})]})]}),o,(0,Z.jsxs)(`div`,{className:`ov-stack ldg`,children:[(0,Z.jsx)(Fa,{fleet:s,error:c}),(0,Z.jsxs)(`section`,{className:`panel`,"aria-labelledby":`ldg-fleet`,children:[(0,Z.jsxs)(`div`,{className:`panel-head panel-head-rule`,children:[(0,Z.jsx)(`h2`,{id:`ldg-fleet`,children:`Installs`}),s?.source_fp?(0,Z.jsxs)(`span`,{className:`mono dim`,children:[`source `,s.source_fp]}):null]}),c&&s?(0,Z.jsxs)(`p`,{className:`dim`,role:`status`,children:[`Could not refresh the installs — showing the last read.`,` `,(0,Z.jsx)(`button`,{type:`button`,className:`btn ghost sm`,onClick:l,children:`Retry`})]}):null,(0,Z.jsx)(`div`,{className:`ldg-scroll`,children:(0,Z.jsxs)(`table`,{className:`ldg-fleet`,children:[(0,Z.jsx)(`thead`,{children:(0,Z.jsxs)(`tr`,{children:[(0,Z.jsx)(`th`,{children:`Install`}),(0,Z.jsx)(`th`,{children:`Voice`}),(0,Z.jsx)(`th`,{children:`Sync`}),(0,Z.jsx)(`th`,{children:`Hand edits`}),(0,Z.jsx)(`th`,{children:`Always-on`}),(0,Z.jsx)(`th`,{children:`Built`}),(0,Z.jsx)(`th`,{})]})}),(0,Z.jsxs)(`tbody`,{children:[c&&!s?(0,Z.jsx)(`tr`,{children:(0,Z.jsxs)(`td`,{colSpan:7,children:[(0,Z.jsx)(`span`,{className:`dim`,role:`status`,children:`Could not read the installs`}),` `,(0,Z.jsx)(`button`,{type:`button`,className:`btn ghost sm`,onClick:l,children:`Retry`})]})}):null,b.map((e,t)=>(0,Z.jsx)(Ra,{i:e,n:t,onAction:n,onOpen:x},e.id))]})]})})]}),(0,Z.jsx)(za,{rows:S,onAction:n}),(0,Z.jsxs)(`div`,{className:`ov-charts`,children:[(0,Z.jsx)(Ba,{installs:b}),(0,Z.jsx)(Va,{usage:u}),(0,Z.jsx)(Ua,{gates:d,laws:y})]})]})]})}var Ga=`geneseed-understand-seen`,Ka=`understand`;function qa(){try{let e=JSON.parse(localStorage.getItem(Ga));return Array.isArray(e)?e:[]}catch{return[]}}function Ja(e){let t=qa();if(t.includes(e))return t;let n=[...t,e];try{localStorage.setItem(Ga,JSON.stringify(n))}catch{}return n}function Ya(e,t){let n=e?.groups||[],r=n.findIndex(e=>e.id===Ka),i=n[r]?.pages||[],a=i.findIndex(e=>e.id===t);if(a<0)return{prev:null,next:null};let o=n.slice(r+1).find(e=>e.pages.length);return{prev:i[a-1]||null,next:i[a+1]||o?.pages[0]||null}}function Xa(e,t){for(let n of e?.groups||[]){let e=n.pages.find(e=>e.id===t);if(e)return{part:n,section:e.section||`General`,page:e}}return{part:null,section:null,page:null}}function Za(e,t){let{part:n,section:r}=Xa(e,t);if(!n)return{prev:null,next:null};if(n.id===`understand`)return Ya(e,t);let i=n.pages.filter(e=>(e.section||`General`)===r),a=i.findIndex(e=>e.id===t);return{prev:i[a-1]||null,next:i[a+1]||null}}var Qa=e=>Nn(`#/docs/${encodeURIComponent(e)}`);function $a({pages:e,seen:t}){let n=e.filter(e=>t.includes(e.id)).length;return(0,Z.jsx)(`div`,{className:`track-prog`,role:`progressbar`,"aria-label":`Pages read`,"aria-valuemin":0,"aria-valuemax":e.length,"aria-valuenow":n,children:(0,Z.jsx)(`i`,{style:{width:`${n/(e.length||1)*100}%`}})})}function eo({menu:e,pageId:t}){let{prev:n,next:r}=Za(e,t);return!n&&!r?null:(0,Z.jsxs)(`div`,{className:`track-bar`,children:[n?(0,Z.jsxs)(`button`,{className:`btn ghost sm`,onClick:()=>Qa(n.id),children:[`← `,n.title]}):(0,Z.jsx)(`span`,{}),r&&(0,Z.jsxs)(`button`,{className:`btn sm`,onClick:()=>Qa(r.id),children:[`Next: `,r.title,` →`]})]})}var to=`modulepreload`,no=function(e){return`/`+e},ro={},io=function(e){return e.pathname.endsWith(`.css`)},ao=function(e,t,n){if(t in e)return e[t];let r=n();if(!r){e[t]=void 0;return}let i=r.then(()=>{e[t]=void 0},n=>{throw e[t]=void 0,n});return e[t]=i,i},oo=function(e,t,n){let r=Promise.resolve();if(t&&t.length>0){let e,i=document.querySelector(`meta[property=csp-nonce]`),a=i?.nonce||i?.getAttribute(`nonce`);function o(e){return Promise.all(e.map(e=>Promise.resolve(e).then(e=>({status:`fulfilled`,value:e}),e=>({status:`rejected`,reason:e}))))}function s(e){return import.meta.resolve?new URL(import.meta.resolve(e)):new URL(e,import.meta.url)}r=o(t.map(t=>{t=no(t,n);let r=s(t),i=io(r);return ao(ro,r.href,()=>{if(e===void 0){e={all:new Set,styles:new Set};let t=document.getElementsByTagName(`link`);for(let n=t.length-1;n>=0;n--){let r=t[n];e.all.add(r.href),r.rel===`stylesheet`&&e.styles.add(r.href)}}if((i?e.styles:e.all).has(r.href))return;let t=document.createElement(`link`);if(t.rel=i?`stylesheet`:to,i||(t.as=`script`),t.crossOrigin=``,t.href=r.href,a&&t.setAttribute(`nonce`,a),document.head.appendChild(t),i)return new Promise((e,n)=>{t.addEventListener(`load`,e),t.addEventListener(`error`,()=>n(Error(`Unable to preload CSS for ${r}`)))})})}).filter(e=>e!==void 0))}function i(e){let t=new Event(`vite:preloadError`,{cancelable:!0});if(t.payload=e,window.dispatchEvent(t),!t.defaultPrevented)throw e}return r.then(t=>{for(let e of t||[])e.status===`rejected`&&i(e.reason);return e().catch(i)})},so=`geneseed-newhere-dismissed`,co=(0,Y.lazy)(()=>oo(()=>import(`./Dashboard-Ddz0KQF3.js`).then(e=>e.t),__vite__mapDeps([0,1,2,3,4])));function lo({harness:e}){let[t,n]=(0,Y.useState)(()=>!!localStorage.getItem(so)),{data:r}=X(()=>t?Promise.resolve(null):a.docs(e).catch(()=>null),[t,e]),i=r?.groups?.find(e=>e.id===`understand`)?.pages||[],o=qa(),s=i.findIndex(e=>!o.includes(e.id));if(t||!i.length||s<0)return null;let c=i.filter(e=>o.includes(e.id)).length;return(0,Z.jsxs)(`section`,{className:`newhere`,"aria-label":`New here?`,children:[(0,Z.jsxs)(`div`,{className:`newhere-body`,children:[(0,Z.jsx)(`b`,{children:`New here? Understand your harness.`}),(0,Z.jsxs)(`p`,{children:[i.length,` short pages: what a harness is, what was installed, what changes in your day, and what is guaranteed.`]}),(0,Z.jsx)(`div`,{className:`newhere-dots`,"aria-label":`${c} of ${i.length} read`,children:i.map(e=>(0,Z.jsx)(`i`,{className:o.includes(e.id)?`f`:``},e.id))})]}),(0,Z.jsx)(`a`,{className:`btn`,href:`#/docs/${encodeURIComponent(i[s].id)}`,children:c?`Continue · step ${s+1}`:`Start`}),(0,Z.jsx)(`button`,{type:`button`,className:`newhere-x`,onClick:()=>{localStorage.setItem(so,`1`),n(!0)},title:`Dismiss for good`,"aria-label":`Dismiss`,children:`×`})]})}function uo({overview:e,overviewError:t,onRetry:n,themes:r,setup:i,runs:a,onAction:o,layout:s=`overview`,dataRev:c}){if(!e)return t?(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(zi,{error:`Could not load the harness overview: ${t}`}),(0,Z.jsx)(`button`,{type:`button`,className:`btn`,onClick:n,children:`Retry`})]}):(0,Z.jsx)(Ri,{});if(!e.deployed)return(0,Z.jsx)(na,{onAction:o});let l=(0,Z.jsx)(lo,{harness:_i(e.emit)});return s===`overview`?(0,Z.jsx)(Wa,{overview:e,setup:i,onAction:o,onRetry:n,dataRev:c,banner:(0,Z.jsxs)(Z.Fragment,{children:[e.daemon_stale?(0,Z.jsx)(Bi,{}):null,l]})}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`page-head`,children:[(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`h1`,{className:`h`,children:`Overview`}),(0,Z.jsx)(`p`,{className:`sub`,children:[e.theme&&`${e.theme} voice`,e.footprint&&`${e.footprint} footprint`,e.target].filter(Boolean).join(` · `)})]}),(0,Z.jsxs)(`div`,{className:`page-actions`,children:[(0,Z.jsx)(`button`,{type:`button`,className:`btn ghost`,onClick:()=>o(`doctor`),children:`Run doctor`}),(0,Z.jsx)(`button`,{type:`button`,className:`btn`,onClick:()=>o(`build-all`),children:`Rebuild`})]})]}),l,(0,Z.jsx)(Y.Suspense,{fallback:(0,Z.jsx)(Ri,{}),children:(0,Z.jsx)(co,{overview:e,overviewError:t,onRetry:n,themes:r,setup:i,runs:a,onAction:o,layout:s,dataRev:c})})]})}var fo=(0,Y.lazy)(()=>oo(()=>import(`./Activity-2fa9G39h.js`),__vite__mapDeps([5,1,2,3,6,7]))),po=(0,Y.lazy)(()=>oo(()=>import(`./ActivityDetail-DIT7ITJw.js`),__vite__mapDeps([8,1,2,3,6,7]))),mo=(0,Y.lazy)(()=>oo(()=>import(`./Library-CgX1dJTr.js`),__vite__mapDeps([9,1,2,3,4,10,11]))),ho=(0,Y.lazy)(()=>oo(()=>import(`./Kits-BteVDSKD.js`),__vite__mapDeps([12,1,2,3,10,11,13]))),go=(0,Y.lazy)(()=>oo(()=>import(`./Loops-MhJU2d8B.js`),__vite__mapDeps([14,1,2,3,7,10,11]))),_o=(0,Y.lazy)(()=>oo(()=>import(`./Laws-DNTpf31b.js`),__vite__mapDeps([15,1,2,3,11]))),vo=(0,Y.lazy)(()=>oo(()=>import(`./Personal-BdN0jlmh.js`),__vite__mapDeps([16,1,2,3,11,17,9,4,10]))),yo=(0,Y.lazy)(()=>oo(()=>import(`./Installs-kkE0H4Q2.js`),__vite__mapDeps([18,1,2,3,17,13]))),bo=(0,Y.lazy)(()=>oo(()=>import(`./Docs-j5cPrsOs.js`),__vite__mapDeps([19,1,2,3,10,11])));function xo(){let e=Mn(),[t,n]=(0,Y.useState)(``),[r,i]=(0,Y.useState)(null),[o,s]=(0,Y.useState)(!1),[c,l]=cr(),[u,d]=pr(),f=e=>{if(!document.startViewTransition||!_n())return d(e);document.startViewTransition(()=>(0,hn.flushSync)(()=>d(e)))},[p,m]=wr(),[h,g]=kr(),[_,v]=(0,Y.useState)(()=>{try{return!window.sessionStorage.getItem(`gs-booted`)}catch{return!0}}),[y,b]=(0,Y.useState)(!1),x=(0,Y.useRef)(null),S=(0,Y.useRef)(null);(0,Y.useEffect)(()=>{if(!y)return;let e=e=>{e.key===`Escape`&&b(!1)};return window.addEventListener(`keydown`,e),()=>window.removeEventListener(`keydown`,e)},[y]),(0,Y.useEffect)(()=>{if(!y)return;let e=S.current,t=document.activeElement;return e&&(e.inert=!0),document.getElementById(`rail-nav`)?.focus(),()=>{e&&(e.inert=!1),t instanceof HTMLElement&&t.focus()}},[y]);let C=e=>i({kind:e?.body?.kind||`err`,msg:e?.body?.message||e.message}),{overview:w,error:T,themes:E,reload:D}=Ar(C),[O,ee]=(0,Y.useState)(0),k=()=>{D(),ee(e=>e+1)},[te,ne]=(0,Y.useState)(null),{runs:A,activeId:j,consoleOpen:M,setConsoleOpen:N,runAction:P,cancelJob:F,clearRuns:re}=Lr({onFinish:e=>{k(),ne({status:e,at:Date.now()})},onError:C}),{data:ie}=X(()=>a.setup().catch(()=>null),[O],`setup`),{data:ae}=X(()=>a.installs().catch(()=>null),[O],`installs`),oe=ae?.installs||null,I=A[A.length-1],se=I?I.status===`running`?`${I.action} running`:`${I.action} ${I.status}`:``;(0,Y.useEffect)(()=>{let e=x.current;if(e){if(!ar(e,br(p),c)){let t=Sr(p);t?Rn(e,t,c):!Bn(e,u,c)&&w?.accent&&Rn(e,w.accent,c)}document.querySelector(`meta[name="theme-color"]`)?.setAttribute(`content`,getComputedStyle(e).getPropertyValue(`--bg`).trim())}},[w,c,p,u]);let ce={flavour:u,onFlavour:f,accentMode:p,onAccentMode:m,layout:h,onLayout:g};return(0,Z.jsx)(`div`,{className:`app fl-${u} ${c===`light`?`light`:``}${y?` nav-open`:``}`,ref:x,children:(0,Z.jsxs)(Ji,{children:[(0,Z.jsx)(`div`,{className:`atmos`,"aria-hidden":`true`}),(0,Z.jsx)(`a`,{className:`skip-link`,href:`#main`,onClick:e=>{e.preventDefault(),document.getElementById(`main`)?.focus()},children:`Skip to content`}),(0,Z.jsx)(`p`,{className:`sr-only`,role:`status`,"aria-live":`polite`,children:se}),y&&(0,Z.jsx)(`button`,{type:`button`,className:`nav-scrim`,"aria-label":`Close navigation`,onClick:()=>b(!1)}),(0,Z.jsx)(si,{route:e,overview:w,installs:oe,onOpenVoice:()=>s(e=>!e),onNavigate:()=>b(!1)}),o&&(0,Z.jsx)(Ai,{themes:E,current:w?.theme,onPick:e=>{s(!1),P(`build`,{theme:e,emit:w?.emit})},onClose:()=>s(!1)}),(0,Z.jsxs)(`div`,{className:`col`,ref:S,children:[(0,Z.jsx)(ki,{route:e,navOpen:y,onToggleNav:()=>b(e=>!e),overview:w,installs:oe,query:t,onQuery:n,mode:c,onToggleMode:l,appearance:ce,dataRev:O,onSwitch:k}),(0,Z.jsx)(`main`,{className:`page`,id:`main`,tabIndex:-1,children:(0,Z.jsx)(`div`,{className:[`library`,`kits`,`loops`,`docs`].includes(e.page)?`pad pad-wide`:`pad`,children:(0,Z.jsx)($i,{activeId:j,finish:te,children:(0,Z.jsx)(Ui,{children:(0,Z.jsx)(Y.Suspense,{fallback:(0,Z.jsx)(Ri,{}),children:{overview:()=>(0,Z.jsx)(uo,{overview:w,overviewError:T,onRetry:D,themes:E,setup:ie,runs:A,onAction:P,layout:h,dataRev:O}),laws:()=>(0,Z.jsx)(_o,{selected:e.item,overview:w,setup:ie,onAction:P,dataRev:O}),library:()=>(0,Z.jsx)(mo,{overview:w,section:e.section,selected:e.item,dataRev:O}),kits:()=>(0,Z.jsx)(ho,{item:e.item,onAction:P,dataRev:O}),loops:()=>(0,Z.jsx)(go,{tab:e.tab,item:e.item,dataRev:O}),personal:()=>(0,Z.jsx)(vo,{tab:e.tab,item:e.item,setup:ie,dataRev:O}),installs:()=>(0,Z.jsx)(yo,{tab:e.tab,overview:w,setup:ie,themes:E,onAction:P,onMutated:k,dataRev:O,appearance:ce}),activity:()=>e.item?(0,Z.jsx)(po,{sid:e.item},e.item):(0,Z.jsx)(fo,{}),docs:()=>(0,Z.jsx)(bo,{page:e.item,onAction:P,overview:w})}[e.page]?.()})},e.page)})})}),(0,Z.jsx)(ci,{route:e}),(0,Z.jsx)(Ni,{runs:A,open:M,busy:!!j,finish:te,onToggle:()=>N(e=>!e),onClear:re,onCancel:F})]}),(0,Z.jsx)(Mi,{toast:r,onClose:()=>i(null)}),_&&(0,Z.jsx)(Li,{ready:!!w||!!T,onDone:()=>{try{window.sessionStorage.setItem(`gs-booted`,`1`)}catch{}v(!1)}})]})})}(0,gn.createRoot)(document.getElementById(`root`)).render((0,Z.jsx)(xo,{})),`serviceWorker`in navigator&&window.addEventListener(`load`,()=>{navigator.serviceWorker.register(`/sw.js`).catch(()=>{})});export{jn as $,Ei as A,h as At,Zr as B,Xi as C,pe as Ct,zi as D,we as Dt,Bi as E,Fe as Et,ui as F,X as G,Yr as H,pi as I,Cr as J,Fr as K,di as L,_i as M,b as Mt,gi as N,m as Nt,Ri as O,I as Ot,li as P,Nn as Q,ti as R,na as S,de as St,qi as T,Ie as Tt,Gr as U,Xr as V,$r as W,wn as X,ur as Y,Tn as Z,ca as _,Re as _t,Ja as a,mn as at,ia as b,me as bt,wa as c,an as ct,_a as d,jt as dt,bn as et,va as f,kt as ft,oa as g,W as gt,aa as h,at as ht,$a as i,Sn as it,hi as j,x as jt,Di as k,C as kt,ga as l,on as lt,ua as m,ct as mt,eo as n,vn as nt,Xa as o,ln as ot,pa as p,wt as pt,Er as q,Ka as r,yn as rt,qa as s,cn as st,oo as t,_n as tt,ha as u,Kt as ut,la as v,Pe as vt,ea as w,R as wt,ra as x,fe as xt,sa as y,U as yt,Qr as z};
|