@reddb-io/red-skills 3.12.5 → 3.12.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,71 +1,71 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
3
- var Cx=Object.create;var Vl=Object.defineProperty;var Dx=Object.getOwnPropertyDescriptor;var Ox=Object.getOwnPropertyNames;var Fx=Object.getPrototypeOf,Ix=Object.prototype.hasOwnProperty;var Mx=(e,t)=>()=>(e&&(t=e(e=0)),t);var Cf=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Lx=(e,t)=>{for(var r in t)Vl(e,r,{get:t[r],enumerable:!0})},jx=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ox(t))!Ix.call(e,o)&&o!==r&&Vl(e,o,{get:()=>t[o],enumerable:!(n=Dx(t,o))||n.enumerable});return e};var zl=(e,t,r)=>(r=e!=null?Cx(Fx(e)):{},jx(t||!e||!e.__esModule?Vl(r,"default",{value:e,enumerable:!0}):r,e));var oh={};Lx(oh,{REDSKILLED_BIN_ENV:()=>Bd,REDSKILLED_BUNDLE_ASSET:()=>Tr,REDSKILLED_ENTRY_UNRESOLVED:()=>vs,RedskilledDaemonEntryError:()=>Ss,isRedskilledEntryPath:()=>Nd,isResolvedRedskilledEntry:()=>Pr,redskilledBundleCacheRoot:()=>aa,redskilledServeArgv:()=>cn,requireRedskilledEntry:()=>la,resolveRedskilledEntry:()=>un});import{existsSync as xS,readdirSync as ES}from"node:fs";import{homedir as vS}from"node:os";import{basename as jd,dirname as Ld,join as Vt,resolve as ia}from"node:path";function Pr(e){return"command"in e}function cn(e,t={}){let r=["serve","--socket",e.socketPath,"--lease",e.leasePath,"--events",e.eventLanePath,"--session-key-hash",e.sessionKeyHash,"--machine-id-hash",e.machineIdHash,"--machine-claim",e.machineClaimPath];return t.idleMs!=null&&r.push("--idle-ms",String(t.idleMs)),t.daemonVersion!=null&&r.push("--daemon-version",t.daemonVersion),r}function aa(e=process.env){return nh(e)}function un(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??xS,o=t.execPath??process.execPath,s=t.execArgv??[],i=t.callerEntry===void 0?process.argv[1]:t.callerEntry,a=(c,u)=>({command:o,args:[...s,c],source:u,entry:c}),l=r[Bd];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Nd(i))return a(ia(i),"caller-entry");let d=[];for(let[c,u]of AS(i,t.rootDir,r,t.listDir??OS))if(d.push(c),n(c))return a(c,u);return{diagnostic:vs,searched:d,...i?{callerEntry:ia(i)}:{}}}function la(e={},t={}){let r=un(e,t);if(Pr(r))return r;throw new Ss(r)}function Nd(e){let t=jd(e);return t===Tr||$d.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:PS(ia(e))}function PS(e){let t=Ld(e);for(let r=0;r<4;r++){if(jd(t)==="redskilled")return!0;let n=Ld(t);if(n===t)return!1;t=n}return!1}function*AS(e,t,r,n){if(e){let s=Ld(ia(e));yield[Vt(s,Tr),"caller-sibling-bundle"];let i=SS.exec(jd(e));i&&(yield[Vt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Vt(s,"..","dist",Tr),"caller-sibling-bundle"]}for(let s of TS){let i=r[s];i&&(yield[Vt(i,"dist",Tr),"plugin-root-bundle"],yield[Vt(i,"..","..","dist",Tr),"plugin-root-bundle"])}t&&(yield[Vt(t,"dist",Tr),"repo-bundle"],yield[Vt(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[Vt(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=nh(r);yield[Vt(o,Tr),"bundle-cache"];for(let s of CS(o,n))yield[Vt(o,s),"bundle-cache"]}function nh(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vt(e.HOME||vS(),".cache");return Vt(t,"red-skills","bundles")}function CS(e,t){return t(e).filter(r=>$d.test(r)).sort((r,n)=>DS(rh(n),rh(r)))}function rh(e){return $d.exec(e)?.[1]??""}function DS(e,t){let r=s=>s.split(".").map(i=>Number.parseInt(i,10)),[n,o]=[r(e),r(t)];for(let s=0;s<Math.max(n.length,o.length);s++){let[i,a]=[n[s],o[s]];if(Number.isNaN(i)||i===void 0)return Number.isNaN(a)||a===void 0?e.localeCompare(t):-1;if(Number.isNaN(a)||a===void 0)return 1;if(i!==a)return i-a}return 0}function OS(e){try{return ES(e)}catch{return[]}}var Tr,vs,Bd,Ss,SS,$d,TS,zr=Mx(()=>{"use strict";Tr="redskilled.bundle.min.mjs",vs="redskilled-daemon-entry-unresolved",Bd="REDSKILLED_BIN";Ss=class extends Error{code=vs;searched;callerEntry;constructor(t){super(`${vs}: no published ${Tr} found to spawn the redskilled daemon from${t.callerEntry?` (caller entry: ${t.callerEntry}, which is NOT used as a fallback)`:""}
3
+ var Mx=Object.create;var Vl=Object.defineProperty;var Lx=Object.getOwnPropertyDescriptor;var jx=Object.getOwnPropertyNames;var Bx=Object.getPrototypeOf,$x=Object.prototype.hasOwnProperty;var Nx=(e,t)=>()=>(e&&(t=e(e=0)),t);var Of=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Gx=(e,t)=>{for(var r in t)Vl(e,r,{get:t[r],enumerable:!0})},Wx=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of jx(t))!$x.call(e,o)&&o!==r&&Vl(e,o,{get:()=>t[o],enumerable:!(n=Lx(t,o))||n.enumerable});return e};var zl=(e,t,r)=>(r=e!=null?Mx(Bx(e)):{},Wx(t||!e||!e.__esModule?Vl(r,"default",{value:e,enumerable:!0}):r,e));var ih={};Gx(ih,{REDSKILLED_BIN_ENV:()=>Bd,REDSKILLED_BUNDLE_ASSET:()=>Tr,REDSKILLED_ENTRY_UNRESOLVED:()=>Es,RedskilledDaemonEntryError:()=>vs,isRedskilledEntryPath:()=>Nd,isResolvedRedskilledEntry:()=>Pr,redskilledBundleCacheRoot:()=>ia,redskilledServeArgv:()=>cn,requireRedskilledEntry:()=>aa,resolveRedskilledEntry:()=>un});import{existsSync as PS,readdirSync as AS}from"node:fs";import{homedir as CS}from"node:os";import{basename as jd,dirname as Ld,join as Vt,resolve as sa}from"node:path";function Pr(e){return"command"in e}function cn(e,t={}){let r=["serve","--socket",e.socketPath,"--lease",e.leasePath,"--events",e.eventLanePath,"--session-key-hash",e.sessionKeyHash,"--machine-id-hash",e.machineIdHash,"--machine-claim",e.machineClaimPath];return t.idleMs!=null&&r.push("--idle-ms",String(t.idleMs)),t.daemonVersion!=null&&r.push("--daemon-version",t.daemonVersion),r}function ia(e=process.env){return sh(e)}function un(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??PS,o=t.execPath??process.execPath,s=t.execArgv??[],i=t.callerEntry===void 0?process.argv[1]:t.callerEntry,a=(c,u)=>({command:o,args:[...s,c],source:u,entry:c}),l=r[Bd];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Nd(i))return a(sa(i),"caller-entry");let d=[];for(let[c,u]of IS(i,t.rootDir,r,t.listDir??jS))if(d.push(c),n(c))return a(c,u);return{diagnostic:Es,searched:d,...i?{callerEntry:sa(i)}:{}}}function aa(e={},t={}){let r=un(e,t);if(Pr(r))return r;throw new vs(r)}function Nd(e){let t=jd(e);return t===Tr||$d.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:FS(sa(e))}function FS(e){let t=Ld(e);for(let r=0;r<4;r++){if(jd(t)==="redskilled")return!0;let n=Ld(t);if(n===t)return!1;t=n}return!1}function*IS(e,t,r,n){if(e){let s=Ld(sa(e));yield[Vt(s,Tr),"caller-sibling-bundle"];let i=DS.exec(jd(e));i&&(yield[Vt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Vt(s,"..","dist",Tr),"caller-sibling-bundle"]}for(let s of OS){let i=r[s];i&&(yield[Vt(i,"dist",Tr),"plugin-root-bundle"],yield[Vt(i,"..","..","dist",Tr),"plugin-root-bundle"])}t&&(yield[Vt(t,"dist",Tr),"repo-bundle"],yield[Vt(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[Vt(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=sh(r);yield[Vt(o,Tr),"bundle-cache"];for(let s of MS(o,n))yield[Vt(o,s),"bundle-cache"]}function sh(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vt(e.HOME||CS(),".cache");return Vt(t,"red-skills","bundles")}function MS(e,t){return t(e).filter(r=>$d.test(r)).sort((r,n)=>LS(oh(n),oh(r)))}function oh(e){return $d.exec(e)?.[1]??""}function LS(e,t){let r=s=>s.split(".").map(i=>Number.parseInt(i,10)),[n,o]=[r(e),r(t)];for(let s=0;s<Math.max(n.length,o.length);s++){let[i,a]=[n[s],o[s]];if(Number.isNaN(i)||i===void 0)return Number.isNaN(a)||a===void 0?e.localeCompare(t):-1;if(Number.isNaN(a)||a===void 0)return 1;if(i!==a)return i-a}return 0}function jS(e){try{return AS(e)}catch{return[]}}var Tr,Es,Bd,vs,DS,$d,OS,zr=Nx(()=>{"use strict";Tr="redskilled.bundle.min.mjs",Es="redskilled-daemon-entry-unresolved",Bd="REDSKILLED_BIN";vs=class extends Error{code=Es;searched;callerEntry;constructor(t){super(`${Es}: no published ${Tr} found to spawn the redskilled daemon from${t.callerEntry?` (caller entry: ${t.callerEntry}, which is NOT used as a fallback)`:""}
4
4
  searched:
5
5
  ${t.searched.map(r=>` ${r}`).join(`
6
- `)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};SS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,$d=/^redskilled-(.+)\.bundle\.min\.mjs$/,TS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var hc=Cf((fc,gc)=>{(function(e,t){typeof fc=="object"&&typeof gc<"u"?gc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(fc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(Q){return Q&&Q.default||Q}var r=function(Q,C,w={}){var I,L,B;for(I in C)B=C[I],w[I]=(L=Q[I])!=null?L:B;return w},n=function(Q,C,w={}){var I,L;for(I in Q)L=Q[I],C[I]!==void 0&&(w[I]=L);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,I;for(C=this._first,I=[];C!=null;)I.push((w=C,C=C.next,w.value));return I}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,I,L,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(I=w.prev)!=null?I.value:void 0,next:(L=w.next)!=null?L.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,I)=>this._addListener(w,"many",I),this.instance.once=(w,I)=>this._addListener(w,"once",I),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,I){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:I,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var I,L;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),L=this._events[C].map(async B=>{var K,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(ye){return K=ye,this.trigger("error",K),null}}}),(await Promise.all(L)).find(function(B){return B!=null}))}catch(B){return I=B,this.trigger("error",I),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var I,L,B;for(B=[],w=I=1,L=C;1<=L?I<=L:I>=L;w=1<=L?++I:--I)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,I,L;for(w=0,I=C.length;w<I;w++)if(L=C[w],L.length>0)return L;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,h,R,T,$;T=10,h=5,$=o,y=f,R=class{constructor(C,w,I,L,B,K,X,ye){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=ye,this.options=$.load(I,L),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===L.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?h:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new y(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new y(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,I,L){var B,K,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),K={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",K);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(ye){return B=ye,this._onFailure(B,K,w,I,L)}}doExpire(C,w,I){var L,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,B,C,w,I)}async _onFailure(C,w,I,L,B){var K,X;if(I())return K=await this.Events.trigger("failed",C,w),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,L(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=R,M,N,U;U=o,M=f,N=class{constructor(C,w,I){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),U.load(I,I,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,I,L,B,K;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,I=L!=null?Math.min(w,L-K):w,I>0))return this.storeOptions.reservoir+=I,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,I){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),U.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,I){var L,B;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-L,0),this._nextRequest=L+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var I,L,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return L=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,L),I=this.strategyIsBlock()&&(B||this.isBlocked(L)),I&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:I,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,F,W;F=f,W=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,I;if(w=this._jobs[C],I=w+1,w!=null&&I<this.status.length)return this.counts[w]--,this.counts[I]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,I,L,B,K;if(C!=null){if(I=this.status.indexOf(C),I<0)throw new F(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(w in L)K=L[w],K===I&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,I)=>(C[this.status[I]]=w,C),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,I,L,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:L}=this._queue.shift(),w=await async function(){try{return K=await X(...C),function(){return B(K)}}catch(ye){return I=ye,function(){return L(I)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var I,L,B;return B=L=null,I=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:w,resolve:B,reject:L}),this._tryToRun(),I}};var se=ae,Z="2.19.5",pe={version:Z},Ae=Object.freeze({version:Z,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),we=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,_e,Ce,ve,Re,Se;Se=o,de=l,ve=Ee,Ce=we,Re=J,_e=function(){class Q{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=De,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ce(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var I;return(I=this.instances[w])!=null?I:(()=>{var L;return L=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",L,w),L})()}async deleteKey(w=""){var I,L;return L=this.instances[w],this.connection&&(I=await this.connection.__runCommand__(["del",...Re.allKeys(`${this.id}-${w}`)])),L!=null&&(delete this.instances[w],await L.disconnect()),L!=null||I>0}limiters(){var w,I,L,B;I=this.instances,L=[];for(w in I)B=I[w],L.push({key:w,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,I,L,B,K,X,ye,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,I=9;w!==0;)for([je,L]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,ye=L.length;B<ye;B++)K=L[B],X.push(K.slice(Be,-I));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var I,L,B,K,X,ye;X=Date.now(),B=this.instances,K=[];for(L in B){ye=B[L];try{await ye._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){I=je,K.push(ye.Events.trigger("error",I))}}return K},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var I;if(!this.sharedConnection)return(I=this.connection)!=null?I.disconnect(w):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var fe=_e,ie,xe,Fe;Fe=o,xe=l,ie=function(){class Q{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new xe(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,I)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var I;return this._arr.push(w),I=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),I}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var at=ie,Nt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),nn=t(Ae),on,mo,ue,Gt,ct,et,Rt,lt,ut,_t,xt,Wr=[].splice;et=10,mo=5,xt=o,Rt=p,Gt=D,ct=G,lt=Nt,ue=l,ut=q,_t=se,on=function(){class Q{constructor(w={},...I){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,I),xt.load(w,this.instanceDefaults,this),this._queues=new Rt(et),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ue(this),this._submitLock=new _t("submit",this.Promise),this._registerLock=new _t("register",this.Promise),B=xt.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=xt.load(w,this.redisStoreDefaults,{}),new lt(this,B,L);if(this.datastore==="local")return L=xt.load(w,this.localStoreDefaults,{}),new ct(this,B,L);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.ref=="function"?K.ref():void 0}),this._queues.on("zero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.unref=="function"?K.unref():void 0})}_validateOptions(w,I){if(!(w!=null&&typeof w=="object"&&I.length===0))throw new Q.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,I,L,B){var K,X;try{if({running:X}=await this._store.__free__(w,L.weight),this.Events.trigger("debug",`Freed ${L.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(ye){return K=ye,this.Events.trigger("error",K)}}_run(w,I,L){var B,K,X;return I.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,I),K=this._free.bind(this,w,I),this._scheduled[w]={timeout:setTimeout(()=>I.doExecute(this._limiter,B,X,K),L),expiration:I.options.expiration!=null?setTimeout(function(){return I.doExpire(B,X,K)},L+I.options.expiration):void 0,job:I}}_drainOne(w){return this._registerLock.schedule(()=>{var I,L,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:I}=B=X.first(),w!=null&&K.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:I,options:K}),L=this._randomIndex(),this._store.__register__(L,K.weight,K.expiration).then(({success:ye,wait:je,reservoir:Be})=>{var er;return this.Events.trigger("debug",`Drained ${K.id}`,{success:ye,args:I,options:K}),ye?(X.shift(),er=this.empty(),er&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",er),this._run(L,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(w,I=0){return this._drainOne(w).then(L=>{var B;return L!=null?(B=w!=null?w-L:w,this._drainAll(B,I+L)):this.Promise.resolve(I)}).catch(L=>this.Events.trigger("error",L))}_dropAllQueued(w){return this._queues.shiftAll(function(I){return I.doDrop({message:w})})}stop(w={}){var I,L;return w=xt.load(w,this.stopDefaults),L=B=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,ye)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},I=w.dropWaitingJobs?(this._run=function(B,K){return K.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,K,X;K=this._scheduled;for(B in K)X=K[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),L(0)}))):this.schedule({priority:et-1,weight:0},()=>L(1)),this._receive=function(B){return B._reject(new Q.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),I}async _addToQueue(w){var I,L,B,K,X,ye,je;({args:I,options:K}=w);try{({reachedHWM:X,blocked:L,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:I,options:K,error:B}),w.doDrop({error:B}),!1}return L?(w.doDrop(),!0):X&&(ye=je===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===Q.prototype.strategy.OVERFLOW?w:void 0,ye?.doDrop(),ye==null||je===Q.prototype.strategy.OVERFLOW)?(ye==null&&w.doDrop(),X):(w.doQueue(X,L),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var I,L,B,K,X,ye,je;return typeof w[0]=="function"?(X=w,[L,...w]=X,[I]=Wr.call(w,-1),K=xt.load({},this.jobDefaults)):(ye=w,[K,L,...w]=ye,[I]=Wr.call(w,-1),K=xt.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(er,Rr){return L(...Be,function(...Ve){return(Ve[0]!=null?Rr:er)(Ve)})}),B=new Gt(je,w,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof I=="function"?I(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof I=="function"?I(...Be):void 0:typeof I=="function"?I(Be):void 0}),this._receive(B)}schedule(...w){var I,L,B;return typeof w[0]=="function"?([B,...w]=w,L={}):[L,B,...w]=w,I=new Gt(B,w,L,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(I),I.promise}wrap(w){var I,L;return I=this.schedule.bind(this),L=function(...B){return I(w.bind(this),...B)},L.withOptions=function(B,...K){return I(B,w,...K)},L}async updateSettings(w={}){return await this._store.__updateSettings__(xt.overwrite(w,this.storeDefaults)),xt.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return Q.default=Q,Q.Events=ue,Q.version=Q.prototype.version=nn.version,Q.strategy=Q.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},Q.BottleneckError=Q.prototype.BottleneckError=f,Q.Group=Q.prototype.Group=fe,Q.RedisConnection=Q.prototype.RedisConnection=Ee,Q.IORedisConnection=Q.prototype.IORedisConnection=we,Q.Batcher=Q.prototype.Batcher=at,Q.prototype.jobDefaults={priority:mo,weight:1,expiration:null,id:"<no-id>"},Q.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Q.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},Q.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},Q.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},Q.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},Q.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},Q}.call(e);var De=on,Le=De;return Le})});var Qm=Cf(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.format=XP;wa.parse=ZP;var JP=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Km=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,YP=/[\\"]/g,QP=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Vm=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function XP(e){let{type:t,parameters:r}=e;if(!t||!QP.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!Km.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${nA(r[o])}`}return n}function ZP(e,t){let r=e.length,n=Rc(e,0,r),o=n;n=wc(e,n,r);let s=_c(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new Vm:rA(e,n,r);return{type:i,parameters:a}}var zm=32,Jm=9,Ym=59,eA=61,qm=34,tA=92;function rA(e,t,r){let n=new Vm;e:for(;t<r;){t=Rc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Ym)continue e;if(s===eA){let i=_c(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Rc(e,t+1,r),t<r&&e.charCodeAt(t)===qm){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===qm){t=wc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===tA&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=wc(e,t,r),n[a]===void 0){let d=_c(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function wc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Ym;)t++;return t}function Rc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==zm&&n!==Jm)break;t++}return t}function _c(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==zm&&n!==Jm)break;r--}return r}function nA(e){if(Km.test(e))return e;if(JP.test(e))return`"${e.replace(YP,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as sB}from"node:child_process";import{homedir as Di}from"node:os";import{join as Nl}from"node:path";var Ro=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},Mn=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function V(e,t){return new Ro(e,t)}function Te(e,t){return new Mn(e,t)}function _o(e){return e instanceof Mn?e:e instanceof Ro?new Mn(e.line,e.reason):new Mn(0,String(e&&e.message?e.message:e))}var Df=["type","kind","event"],Ln="|",Of=new Set(["order","discriminator","rows","common"]);var ze=",";function qi(e){let t=e.split(`
7
- `);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function xr(e){return V(e,"invalid quoted string")}function qt(e,t){if(e==="")return"";if(e.startsWith('"'))return Mf(e,t);if(e.includes('"'))throw xr(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:Bx(e)?Number(e):e}function rr(e,t){let r=e.trim();if(r.startsWith('"'))return[Mf(r,t),!0];if(r.includes('"')||/\s/.test(r))throw V(t,"expected non-empty field name");return[r,!1]}var Ff=/["\\\u0000-\u0008\u000a-\u001f]/g;function Mf(e,t){if(e.charCodeAt(0)!==34)throw xr(t);let r="",n=1;for(;n<e.length;){Ff.lastIndex=n;let o=Ff.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw xr(t)}if(o[0]!=="\\")throw xr(t);r+=e.slice(n,o.index);let s=e[o.index+1];switch(n=o.index+2,s){case'"':r+='"';break;case"\\":r+="\\";break;case"n":r+=`
8
- `;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw xr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw xr(t);r+=String.fromCharCode(a),n+=4;break}default:throw xr(t)}}throw xr(t)}function Lf(e,t,r){for(;;){let n=e.indexOf('"',t),o=e.indexOf("\\",t);if(o!==-1&&(n===-1||o<n)){if(o===e.length-1)throw xr(r);t=o+2;continue}if(n===-1)throw xr(r);return n+1}}function nr(e,t,r){if(e==="")return[];let n=[],o=0,s=0;for(;s<e.length;){let i=e.indexOf('"',s),a=e.indexOf(t,s);if(a!==-1&&(i===-1||a<i))n.push(e.slice(o,a).trim()),o=a+1,s=a+1;else if(i!==-1)s=Lf(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function vt(e,t,r){let n=0;for(;n<e.length;){let o=e.indexOf('"',n),s=e.indexOf(t,n);if(s!==-1&&(o===-1||s<o))return s;if(o===-1)return-1;n=Lf(e,o+1,r)}return-1}function Bx(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function $x(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Nx(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw V(0,"number is not representable in TOON");return String(e)}function Er(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function St(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Nx(e);if(typeof e=="string")return Wx(e,t);throw V(0,"not a primitive")}function Gx(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return Gx(e)?e:Ki(e)}function Wx(e,t){return Jl(e,t)?Ki(e):e}function Jl(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||$x(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var If=/["\\\u0000-\u001f]/g;function Ki(e){let t='"',r=0;If.lastIndex=0;let n;for(;(n=If.exec(e))!==null;){let o=e.charCodeAt(n.index),s;o===34?s='\\"':o===92?s="\\\\":o===10?s="\\n":o===13?s="\\r":o===9?s="\\t":s=`\\u${o.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+s,r=n.index+1}return`${t}${e.slice(r)}"`}function or(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function jf(e={}){let t=e.maxDepth??1e3,r=t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t));return{indent:Math.max(1,e.indent??2),strict:e.strict??!0,expandPaths:e.expandPaths==="safe"||e.expandPaths===!0,cyclicDiscriminatedArrays:e.cyclicDiscriminatedArrays!==!1,maxDepth:r}}function Bf(e,t){let r=[],n=!1;return qi(e).forEach((o,s)=>{let i=s+1;if(o.trim()===""){n=!0;return}let a=o.length-o.replace(/^ +/,"").length;if(o[a]===" ")throw V(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw V(i,"invalid indentation");let l=Math.floor(a/t.indent);vr(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function vr(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw V(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function ys(e,t,r){if(r.maxDepth===0)return;let n=0,o=!1,s=!1;for(let i of e){if(s){s=!1;continue}if(o&&i==="\\"){s=!0;continue}if(i==='"'){o=!o;continue}o||(i==="{"?(n+=1,vr(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function Gf(e){if(!nt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=Hx(n,1);if(o===void 0)return e;or(t,r,o)}return t}function Hx(e,t){if(!nt(e)||!Ux(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw bt(t);let s=qx(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(nt))throw Wf(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Of.has(u)){if(!Array.isArray(p)||!p.every(nt))throw bt(t);l.set(u,p)}if(l.size===0)throw bt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw Yl(t);let f=d.get(u)??0,y=g[f];if(y===void 0)throw Yl(t);return d.set(u,f+1),Kx(n,u,a[p],y,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw Yl(t);return c}function Ux(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function qx(e,t,r){if(!e.startsWith("cycle("))throw bt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw bt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw bt(r);let a=s.split(",").map(c=>Yx(c,r));if(a.some(c=>c===""))throw bt(r);let l=Jx(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw bt(r);if(d!==t)throw Wf(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function Kx(e,t,r,n,o){let s={};or(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);or(s,i,a)}for(let[i,a]of Object.entries(Vx(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);or(s,i,a)}return s}function Vx(e,t){let r={};for(let[n,o]of Object.entries(e))zx(r,n.split("."),o,t);return Vi(r,t)}function zx(e,t,r,n){if(t.some(s=>s===""))throw bt(n);let o=e;for(let s=0;s<t.length;s+=1){let i=t[s];if(s===t.length-1){o[i]=r;return}if(o[i]??={},o=o[i],!nt(o))throw bt(n)}}function Vi(e,t){return Array.isArray(e)?e.map(r=>Vi(r,t)):nt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw bt(t);return Vi(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Vi(n,t)])):e}function Jx(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw bt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw bt(t);return r}function Yx(e,t){try{return decodeURIComponent(e)}catch{throw bt(t)}}function $f(e){return encodeURIComponent(e)}function bt(e){return V(e,"invalid cyclic array wire")}function Wf(e){return V(e,"cyclic array length mismatch")}function Yl(e){return V(e,"cyclic array group length mismatch")}function Hf(e){if(!nt(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=Qx(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)tE(n,o,s);return n.join("")}function Qx(e){if(!Array.isArray(e)||e.length===0||!e.every(nt))return;let t=Xx(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=Zx(r);if(n===void 0)return;let o=eE(e,t),s=new Map;for(let a of e){let l=a[t];s.has(l)||s.set(l,[]);let d={};for(let[c,u]of Object.entries(a))if(c!==t&&!o.includes(c)&&!Ql(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=nE(l);if(d===void 0||d.length===0)return;i.push({fields:d,label:a,rows:l})}return{common:o,commonRows:e.map(a=>Object.fromEntries(o.map(l=>[l,a[l]]))),discriminator:t,groups:i,order:n,rows:e}}function Xx(e){return Df.find(t=>e.every(r=>typeof r[t]=="string"))}function Zx(e){if(!(e.length<12))for(let t=2;t<=Math.min(8,Math.floor(e.length/3));t+=1){if(e.length%t!==0)continue;let r=e.slice(0,t);if(new Set(r).size<2||!e.every((i,a)=>i===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let o=e.map($f).join(","),s=`cycle(${r.map($f).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function eE(e,t){let r=[],n=Object.keys(e[0]),o=n.indexOf(t)+1;for(let s of n.slice(o).filter(i=>i!==t)){if(!rE(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>Er(i[s])))break;r.push(s)}return r}function tE(e,t,r){e.push(ft(t),`:
9
- `),e.push(" order: ",St(r.order.encoded,Ln),`
10
- `),e.push(" discriminator: ",St(r.discriminator,Ln),`
6
+ `)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};DS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,$d=/^redskilled-(.+)\.bundle\.min\.mjs$/,OS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var hc=Of((fc,gc)=>{(function(e,t){typeof fc=="object"&&typeof gc<"u"?gc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(fc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(Q){return Q&&Q.default||Q}var r=function(Q,C,w={}){var I,L,B;for(I in C)B=C[I],w[I]=(L=Q[I])!=null?L:B;return w},n=function(Q,C,w={}){var I,L;for(I in Q)L=Q[I],C[I]!==void 0&&(w[I]=L);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,I;for(C=this._first,I=[];C!=null;)I.push((w=C,C=C.next,w.value));return I}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,I,L,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(I=w.prev)!=null?I.value:void 0,next:(L=w.next)!=null?L.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,I)=>this._addListener(w,"many",I),this.instance.once=(w,I)=>this._addListener(w,"once",I),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,I){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:I,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var I,L;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),L=this._events[C].map(async B=>{var K,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(ye){return K=ye,this.trigger("error",K),null}}}),(await Promise.all(L)).find(function(B){return B!=null}))}catch(B){return I=B,this.trigger("error",I),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var I,L,B;for(B=[],w=I=1,L=C;1<=L?I<=L:I>=L;w=1<=L?++I:--I)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,I,L;for(w=0,I=C.length;w<I;w++)if(L=C[w],L.length>0)return L;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,h,R,T,$;T=10,h=5,$=o,y=f,R=class{constructor(C,w,I,L,B,K,X,ye){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=ye,this.options=$.load(I,L),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===L.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?h:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new y(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new y(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,I,L){var B,K,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),K={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",K);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(ye){return B=ye,this._onFailure(B,K,w,I,L)}}doExpire(C,w,I){var L,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,B,C,w,I)}async _onFailure(C,w,I,L,B){var K,X;if(I())return K=await this.Events.trigger("failed",C,w),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,L(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=R,M,N,U;U=o,M=f,N=class{constructor(C,w,I){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),U.load(I,I,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,I,L,B,K;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,I=L!=null?Math.min(w,L-K):w,I>0))return this.storeOptions.reservoir+=I,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,I){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),U.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,I){var L,B;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-L,0),this._nextRequest=L+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var I,L,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return L=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,L),I=this.strategyIsBlock()&&(B||this.isBlocked(L)),I&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:I,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,F,W;F=f,W=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,I;if(w=this._jobs[C],I=w+1,w!=null&&I<this.status.length)return this.counts[w]--,this.counts[I]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,I,L,B,K;if(C!=null){if(I=this.status.indexOf(C),I<0)throw new F(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(w in L)K=L[w],K===I&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,I)=>(C[this.status[I]]=w,C),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,I,L,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:L}=this._queue.shift(),w=await async function(){try{return K=await X(...C),function(){return B(K)}}catch(ye){return I=ye,function(){return L(I)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var I,L,B;return B=L=null,I=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:w,resolve:B,reject:L}),this._tryToRun(),I}};var se=ae,Z="2.19.5",pe={version:Z},Ae=Object.freeze({version:Z,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),we=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,_e,Ce,ve,Re,Se;Se=o,de=l,ve=Ee,Ce=we,Re=J,_e=function(){class Q{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=De,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ce(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var I;return(I=this.instances[w])!=null?I:(()=>{var L;return L=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",L,w),L})()}async deleteKey(w=""){var I,L;return L=this.instances[w],this.connection&&(I=await this.connection.__runCommand__(["del",...Re.allKeys(`${this.id}-${w}`)])),L!=null&&(delete this.instances[w],await L.disconnect()),L!=null||I>0}limiters(){var w,I,L,B;I=this.instances,L=[];for(w in I)B=I[w],L.push({key:w,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,I,L,B,K,X,ye,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,I=9;w!==0;)for([je,L]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,ye=L.length;B<ye;B++)K=L[B],X.push(K.slice(Be,-I));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var I,L,B,K,X,ye;X=Date.now(),B=this.instances,K=[];for(L in B){ye=B[L];try{await ye._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){I=je,K.push(ye.Events.trigger("error",I))}}return K},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var I;if(!this.sharedConnection)return(I=this.connection)!=null?I.disconnect(w):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var fe=_e,ie,xe,Fe;Fe=o,xe=l,ie=function(){class Q{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new xe(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,I)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var I;return this._arr.push(w),I=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),I}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var at=ie,Nt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),nn=t(Ae),on,go,ue,Gt,ct,et,Rt,lt,ut,_t,xt,Wr=[].splice;et=10,go=5,xt=o,Rt=p,Gt=D,ct=G,lt=Nt,ue=l,ut=q,_t=se,on=function(){class Q{constructor(w={},...I){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,I),xt.load(w,this.instanceDefaults,this),this._queues=new Rt(et),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ue(this),this._submitLock=new _t("submit",this.Promise),this._registerLock=new _t("register",this.Promise),B=xt.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=xt.load(w,this.redisStoreDefaults,{}),new lt(this,B,L);if(this.datastore==="local")return L=xt.load(w,this.localStoreDefaults,{}),new ct(this,B,L);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.ref=="function"?K.ref():void 0}),this._queues.on("zero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.unref=="function"?K.unref():void 0})}_validateOptions(w,I){if(!(w!=null&&typeof w=="object"&&I.length===0))throw new Q.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,I,L,B){var K,X;try{if({running:X}=await this._store.__free__(w,L.weight),this.Events.trigger("debug",`Freed ${L.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(ye){return K=ye,this.Events.trigger("error",K)}}_run(w,I,L){var B,K,X;return I.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,I),K=this._free.bind(this,w,I),this._scheduled[w]={timeout:setTimeout(()=>I.doExecute(this._limiter,B,X,K),L),expiration:I.options.expiration!=null?setTimeout(function(){return I.doExpire(B,X,K)},L+I.options.expiration):void 0,job:I}}_drainOne(w){return this._registerLock.schedule(()=>{var I,L,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:I}=B=X.first(),w!=null&&K.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:I,options:K}),L=this._randomIndex(),this._store.__register__(L,K.weight,K.expiration).then(({success:ye,wait:je,reservoir:Be})=>{var er;return this.Events.trigger("debug",`Drained ${K.id}`,{success:ye,args:I,options:K}),ye?(X.shift(),er=this.empty(),er&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",er),this._run(L,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(w,I=0){return this._drainOne(w).then(L=>{var B;return L!=null?(B=w!=null?w-L:w,this._drainAll(B,I+L)):this.Promise.resolve(I)}).catch(L=>this.Events.trigger("error",L))}_dropAllQueued(w){return this._queues.shiftAll(function(I){return I.doDrop({message:w})})}stop(w={}){var I,L;return w=xt.load(w,this.stopDefaults),L=B=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,ye)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},I=w.dropWaitingJobs?(this._run=function(B,K){return K.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,K,X;K=this._scheduled;for(B in K)X=K[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),L(0)}))):this.schedule({priority:et-1,weight:0},()=>L(1)),this._receive=function(B){return B._reject(new Q.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),I}async _addToQueue(w){var I,L,B,K,X,ye,je;({args:I,options:K}=w);try{({reachedHWM:X,blocked:L,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:I,options:K,error:B}),w.doDrop({error:B}),!1}return L?(w.doDrop(),!0):X&&(ye=je===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===Q.prototype.strategy.OVERFLOW?w:void 0,ye?.doDrop(),ye==null||je===Q.prototype.strategy.OVERFLOW)?(ye==null&&w.doDrop(),X):(w.doQueue(X,L),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var I,L,B,K,X,ye,je;return typeof w[0]=="function"?(X=w,[L,...w]=X,[I]=Wr.call(w,-1),K=xt.load({},this.jobDefaults)):(ye=w,[K,L,...w]=ye,[I]=Wr.call(w,-1),K=xt.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(er,Rr){return L(...Be,function(...Ve){return(Ve[0]!=null?Rr:er)(Ve)})}),B=new Gt(je,w,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof I=="function"?I(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof I=="function"?I(...Be):void 0:typeof I=="function"?I(Be):void 0}),this._receive(B)}schedule(...w){var I,L,B;return typeof w[0]=="function"?([B,...w]=w,L={}):[L,B,...w]=w,I=new Gt(B,w,L,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(I),I.promise}wrap(w){var I,L;return I=this.schedule.bind(this),L=function(...B){return I(w.bind(this),...B)},L.withOptions=function(B,...K){return I(B,w,...K)},L}async updateSettings(w={}){return await this._store.__updateSettings__(xt.overwrite(w,this.storeDefaults)),xt.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return Q.default=Q,Q.Events=ue,Q.version=Q.prototype.version=nn.version,Q.strategy=Q.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},Q.BottleneckError=Q.prototype.BottleneckError=f,Q.Group=Q.prototype.Group=fe,Q.RedisConnection=Q.prototype.RedisConnection=Ee,Q.IORedisConnection=Q.prototype.IORedisConnection=we,Q.Batcher=Q.prototype.Batcher=at,Q.prototype.jobDefaults={priority:go,weight:1,expiration:null,id:"<no-id>"},Q.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Q.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},Q.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},Q.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},Q.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},Q.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},Q}.call(e);var De=on,Le=De;return Le})});var Zm=Of(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.format=nA;ka.parse=oA;var eA=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,zm=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,tA=/[\\"]/g,rA=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Jm=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function nA(e){let{type:t,parameters:r}=e;if(!t||!rA.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!zm.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${lA(r[o])}`}return n}function oA(e,t){let r=e.length,n=Rc(e,0,r),o=n;n=wc(e,n,r);let s=_c(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new Jm:aA(e,n,r);return{type:i,parameters:a}}var Ym=32,Qm=9,Xm=59,sA=61,Vm=34,iA=92;function aA(e,t,r){let n=new Jm;e:for(;t<r;){t=Rc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Xm)continue e;if(s===sA){let i=_c(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Rc(e,t+1,r),t<r&&e.charCodeAt(t)===Vm){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===Vm){t=wc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===iA&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=wc(e,t,r),n[a]===void 0){let d=_c(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function wc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Xm;)t++;return t}function Rc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Ym&&n!==Qm)break;t++}return t}function _c(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Ym&&n!==Qm)break;r--}return r}function lA(e){if(zm.test(e))return e;if(eA.test(e))return`"${e.replace(tA,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as sB}from"node:child_process";import{homedir as Ci}from"node:os";import{join as Nl}from"node:path";var ko=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},In=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function V(e,t){return new ko(e,t)}function Te(e,t){return new In(e,t)}function wo(e){return e instanceof In?e:e instanceof ko?new In(e.line,e.reason):new In(0,String(e&&e.message?e.message:e))}var Ff=["type","kind","event"],Mn="|",If=new Set(["order","discriminator","rows","common"]);var ze=",";function Ui(e){let t=e.split(`
7
+ `);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function xr(e){return V(e,"invalid quoted string")}function qt(e,t){if(e==="")return"";if(e.startsWith('"'))return jf(e,t);if(e.includes('"'))throw xr(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:Hx(e)?Number(e):e}function rr(e,t){let r=e.trim();if(r.startsWith('"'))return[jf(r,t),!0];if(r.includes('"')||/\s/.test(r))throw V(t,"expected non-empty field name");return[r,!1]}var Mf=/["\\\u0000-\u0008\u000a-\u001f]/g;function jf(e,t){if(e.charCodeAt(0)!==34)throw xr(t);let r="",n=1;for(;n<e.length;){Mf.lastIndex=n;let o=Mf.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw xr(t)}if(o[0]!=="\\")throw xr(t);r+=e.slice(n,o.index);let s=e[o.index+1];switch(n=o.index+2,s){case'"':r+='"';break;case"\\":r+="\\";break;case"n":r+=`
8
+ `;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw xr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw xr(t);r+=String.fromCharCode(a),n+=4;break}default:throw xr(t)}}throw xr(t)}function Bf(e,t,r){for(;;){let n=e.indexOf('"',t),o=e.indexOf("\\",t);if(o!==-1&&(n===-1||o<n)){if(o===e.length-1)throw xr(r);t=o+2;continue}if(n===-1)throw xr(r);return n+1}}function nr(e,t,r){if(e==="")return[];let n=[],o=0,s=0;for(;s<e.length;){let i=e.indexOf('"',s),a=e.indexOf(t,s);if(a!==-1&&(i===-1||a<i))n.push(e.slice(o,a).trim()),o=a+1,s=a+1;else if(i!==-1)s=Bf(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function vt(e,t,r){let n=0;for(;n<e.length;){let o=e.indexOf('"',n),s=e.indexOf(t,n);if(s!==-1&&(o===-1||s<o))return s;if(o===-1)return-1;n=Bf(e,o+1,r)}return-1}function Hx(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Ux(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function qx(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw V(0,"number is not representable in TOON");return String(e)}function Er(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function St(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return qx(e);if(typeof e=="string")return Vx(e,t);throw V(0,"not a primitive")}function Kx(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return Kx(e)?e:qi(e)}function Vx(e,t){return Jl(e,t)?qi(e):e}function Jl(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||Ux(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var Lf=/["\\\u0000-\u001f]/g;function qi(e){let t='"',r=0;Lf.lastIndex=0;let n;for(;(n=Lf.exec(e))!==null;){let o=e.charCodeAt(n.index),s;o===34?s='\\"':o===92?s="\\\\":o===10?s="\\n":o===13?s="\\r":o===9?s="\\t":s=`\\u${o.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+s,r=n.index+1}return`${t}${e.slice(r)}"`}function or(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function $f(e={}){let t=e.maxDepth??1e3,r=t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t));return{indent:Math.max(1,e.indent??2),strict:e.strict??!0,expandPaths:e.expandPaths==="safe"||e.expandPaths===!0,cyclicDiscriminatedArrays:e.cyclicDiscriminatedArrays!==!1,maxDepth:r}}function Nf(e,t){let r=[],n=!1;return Ui(e).forEach((o,s)=>{let i=s+1;if(o.trim()===""){n=!0;return}let a=o.length-o.replace(/^ +/,"").length;if(o[a]===" ")throw V(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw V(i,"invalid indentation");let l=Math.floor(a/t.indent);vr(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function vr(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw V(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function bs(e,t,r){if(r.maxDepth===0)return;let n=0,o=!1,s=!1;for(let i of e){if(s){s=!1;continue}if(o&&i==="\\"){s=!0;continue}if(i==='"'){o=!o;continue}o||(i==="{"?(n+=1,vr(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function Hf(e){if(!nt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=zx(n,1);if(o===void 0)return e;or(t,r,o)}return t}function zx(e,t){if(!nt(e)||!Jx(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw bt(t);let s=Yx(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(nt))throw Uf(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!If.has(u)){if(!Array.isArray(p)||!p.every(nt))throw bt(t);l.set(u,p)}if(l.size===0)throw bt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw Yl(t);let f=d.get(u)??0,y=g[f];if(y===void 0)throw Yl(t);return d.set(u,f+1),Qx(n,u,a[p],y,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw Yl(t);return c}function Jx(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function Yx(e,t,r){if(!e.startsWith("cycle("))throw bt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw bt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw bt(r);let a=s.split(",").map(c=>tE(c,r));if(a.some(c=>c===""))throw bt(r);let l=eE(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw bt(r);if(d!==t)throw Uf(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function Qx(e,t,r,n,o){let s={};or(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);or(s,i,a)}for(let[i,a]of Object.entries(Xx(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);or(s,i,a)}return s}function Xx(e,t){let r={};for(let[n,o]of Object.entries(e))Zx(r,n.split("."),o,t);return Ki(r,t)}function Zx(e,t,r,n){if(t.some(s=>s===""))throw bt(n);let o=e;for(let s=0;s<t.length;s+=1){let i=t[s];if(s===t.length-1){o[i]=r;return}if(o[i]??={},o=o[i],!nt(o))throw bt(n)}}function Ki(e,t){return Array.isArray(e)?e.map(r=>Ki(r,t)):nt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw bt(t);return Ki(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Ki(n,t)])):e}function eE(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw bt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw bt(t);return r}function tE(e,t){try{return decodeURIComponent(e)}catch{throw bt(t)}}function Gf(e){return encodeURIComponent(e)}function bt(e){return V(e,"invalid cyclic array wire")}function Uf(e){return V(e,"cyclic array length mismatch")}function Yl(e){return V(e,"cyclic array group length mismatch")}function qf(e){if(!nt(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=rE(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)iE(n,o,s);return n.join("")}function rE(e){if(!Array.isArray(e)||e.length===0||!e.every(nt))return;let t=nE(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=oE(r);if(n===void 0)return;let o=sE(e,t),s=new Map;for(let a of e){let l=a[t];s.has(l)||s.set(l,[]);let d={};for(let[c,u]of Object.entries(a))if(c!==t&&!o.includes(c)&&!Ql(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=lE(l);if(d===void 0||d.length===0)return;i.push({fields:d,label:a,rows:l})}return{common:o,commonRows:e.map(a=>Object.fromEntries(o.map(l=>[l,a[l]]))),discriminator:t,groups:i,order:n,rows:e}}function nE(e){return Ff.find(t=>e.every(r=>typeof r[t]=="string"))}function oE(e){if(!(e.length<12))for(let t=2;t<=Math.min(8,Math.floor(e.length/3));t+=1){if(e.length%t!==0)continue;let r=e.slice(0,t);if(new Set(r).size<2||!e.every((i,a)=>i===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let o=e.map(Gf).join(","),s=`cycle(${r.map(Gf).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function sE(e,t){let r=[],n=Object.keys(e[0]),o=n.indexOf(t)+1;for(let s of n.slice(o).filter(i=>i!==t)){if(!aE(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>Er(i[s])))break;r.push(s)}return r}function iE(e,t,r){e.push(ft(t),`:
9
+ `),e.push(" order: ",St(r.order.encoded,Mn),`
10
+ `),e.push(" discriminator: ",St(r.discriminator,Mn),`
11
11
  `),e.push(" rows: ",String(r.rows.length),`
12
- `),r.common.length>0&&Nf(e,"common",r.common,r.commonRows);for(let n of r.groups)Nf(e,n.label,n.fields,n.rows)}function Nf(e,t,r,n){e.push(" ",ft(t),"[",String(n.length),Ln,"]{",r.map(ft).join(Ln),`}:
13
- `);for(let o of n)e.push(" ",r.map(s=>St(o[s],Ln)).join(Ln),`
14
- `)}function rE(e){return e!==""&&Xl(e)}function Ql(e,t,r,n=new Set){if(!Xl(t))return!1;if(Er(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let o=e.every((s,i)=>Ql(s,`${t}.${i}`,r,n));return n.delete(e),o}if(nt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&Ql(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function nE(e){let t=Object.keys(e[0]??{});if(e.every(r=>oE(Object.keys(r),t)))return t.every(Xl)?t:void 0}function oE(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Xl(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function xo(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function zi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=vt(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=rr(r.slice(0,n),0)}catch{throw V(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw V(0,"invalid array header");let l=i.slice(0,a),d=/^[0-9]*/.exec(l)[0];if(d===""||d.length>1&&d.startsWith("0"))throw V(0,"invalid array header");let c=Number.parseInt(d,10),u;switch(l.slice(d.length)){case"":u=",";break;case" ":u=" ";break;case"|":u="|";break;default:throw V(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=iE(p.slice(1,-1),u),g=ed(f)}catch(y){throw V(0,y.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw V(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function Uf(e){let t=vt(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=rr(e.slice(0,t),0)}catch{throw V(0,"invalid keyed map header")}if(r===""&&!n)throw V(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=ze;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=sE(o,s,s)}catch(a){throw V(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function sE(e,t,r){let n=[],o=0;function s(l,d){let c=0;for(;o<e.length&&!(d&&e[o]==="}");){if(e[o]===t||e[o]==="}")throw V(0,"invalid array header");let u=o;for(;o<e.length;){let f=e[o];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;o+=1}let[p,g]=rr(e.slice(u,o),0);if(p===""&&!g)throw V(0,"invalid array header");if(c+=1,e[o]==="["){o+=1;let f=o;for(;o<e.length&&e[o]!=="]";)o+=1;if(o>=e.length)throw V(0,"invalid array header");let y=e.slice(f,o);if(!qf(y,r))throw V(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:y})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw V(0,"invalid array header");o+=1}else n.push({path:[...l,p],listDelimiter:void 0});if(e[o]===t){if(o+=1,o>=e.length||e[o]==="}")throw V(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw V(0,"invalid array header")}if(c===0)throw V(0,"invalid array header")}function i(){for(o+=1;o<e.length;){let l=e[o];if(o+=1,l==="\\")o+=1;else if(l==='"')return}}if(s([],!1),o!==e.length)throw V(0,"invalid array header");let a=new Set;for(let l=0;l<n.length;l+=1)for(let d=l+1;d<n.length;d+=1)if(Kf(n[l].path,n[d].path)||ks(n[l].path,n[d].path)||ks(n[d].path,n[l].path))throw V(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw V(0,"duplicate key");a.add(c)}return n}function iE(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return Zl(e,ze,t);try{return Zl(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return Zl(e,ze,t);throw r}}function Zl(e,t,r){let n=0;function o(l){let d=[];for(;n<e.length&&!(l&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw V(0,"invalid array header");let c=n;for(;n<e.length;){let f=e[n];if(f==='"'){s();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[u,p]=rr(e.slice(c,n),0);if(u===""&&!p)throw V(0,"invalid array header");let g={key:u};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw V(0,"invalid array header");let y=e.slice(f,n);n+=1;let h=aE(y);if(h!==void 0){if(h.delimiter!==r)throw V(0,"invalid array header");g.fixedLength=h.len,g.fixedDelimiter=h.delimiter}else if(qf(y,r))g.listDelimiter=y;else throw V(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw V(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw V(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw V(0,"invalid array header")}if(d.length===0)throw V(0,"invalid array header");return d}function s(){for(n+=1;n<e.length;){let l=e[n];if(n+=1,l==="\\")n+=1;else if(l==='"')return}}let i=o(!1);if(n!==e.length)throw V(0,"invalid array header");let a=ed(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Kf(a[l].path,a[d].path)||ks(a[l].path,a[d].path)||ks(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function aE(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=ze;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function ed(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?ed(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Ji(e,t,r){return e.listDelimiter===void 0?qt(t,r):nr(t,e.listDelimiter,r).map(n=>qt(n,r))}function qf(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Kf(e,t){return e.length===t.length&&ks(e,t)}function ks(e,t){return t.every((r,n)=>e[n]===r)}function Yi(e,t){return V(t,e.reason??String(e.message))}function Dt(e,t){let r=jf(t),n=Bf(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw V(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){ys(o.content,o.number,r);let d;try{d=zi(o.content,vt(o.content,":",o.number))}catch(c){if(r.strict)throw Yi(c,o.number);d=void 0}if(d!==void 0)return cE(d,n,r)}if(s&&vt(o.content,":",o.number)===-1)return qt(o.content.trim(),o.number);let i={index:0},a=rd(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Gf(a):a}function rd(e,t,r,n){let o={};for(;t.index<e.length;){let s=e[t.index];if(s.depth<r)break;if(s.depth>r)throw V(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=lE(e,t,r,n);Zf(o,i,a,l,n,s.number)}return o}function lE(e,t,r,n){let o=e[t.index],s=o.content,i=vt(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=vt(a,"[",o.number),c=vt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){ys(a,o.number,n);let f;try{f=Uf(a)}catch(h){if(n.strict)throw Yi(h,o.number);t.index+=1;let R=td(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(l.trim()!=="")throw V(o.number,"expected keyed map rows");let y=dE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:y}}if(d!==-1){ys(a,o.number,n);let f;try{f=zi(a,i)}catch(h){if(n.strict)throw Yi(h,o.number);t.index+=1;let R=td(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(f.key===""&&!f.keyQuoted)throw V(o.number,"expected non-empty field name");let y=nd(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=rr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=td(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function td(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return qt(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?rd(e,t,r+1,s):{}}function dE(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=vt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=rr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=nr(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw V(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{vo(u,p.path,Ji(p,c[g],i.number),o,i.number)}),Zf(s,l,d,u,o,i.number),r.index+=1}return s}function cE(e,t,r){let n=t[0],o=vt(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=nd(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return a}function nd(e,t,r,n,o,s){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw V(i,"expected tabular rows");return uE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=nr(a,e.delimiter,i).map(d=>qt(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return yE(e,r,n,o+1,s)}function uE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&mE(e.fieldTree))return pE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw xo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw V(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw V(l.number,"blank line inside array");if(!Eo(l.content,e.delimiter,l.number))break;let d=nr(l.content,e.delimiter,l.number);if(d.length!==t.length)throw V(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{vo(c,u.path,Ji(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw xo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&Eo(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function pE(e,t,r,n,o){return Vf(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function Vf(e,t,r,n,o,s,i,a){let l=[],d=Jf(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw xo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw V(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw V(u.number,"blank line inside array");if(!Eo(u.content,r,u.number))break;let p=nr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Qi(t),childTableFields:d},f=zf(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw V(u.number,"array row length mismatch");l.push(hE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw xo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&Eo(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function zf(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=fE(d,u,t,r,n,o,s,i,a);vo(l,[d.key],p,a,r)}),l}function fE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw V(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>qt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Qi(e.children),u=r[s.cellIndex],p=Qf(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],y=f!==void 0&&f.depth===i,h=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(h===void 0?p!==void 0&&(y||r.length!==s.flatWidth&&g<c+bE(t)):h){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Vf(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return zf(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Ji(e,d,n)}function Jf(e,t,r,n,o,s,i){let a=t.filter(c=>c.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let l,d=1<<a.length;for(let c=0;c<d;c+=1){let u=new Set;a.forEach((g,f)=>{c&1<<f&&u.add(g)});let p=Yf(e,t,u,r,n,o,s,i);p!==void 0&&(l===void 0||p.consumedChildRows>l.consumedChildRows||p.consumedChildRows===l.consumedChildRows&&u.size<l.childTableFields.size)&&(l={childTableFields:u,consumedChildRows:p.consumedChildRows})}return l?.childTableFields}function Yf(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u+=1){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!Eo(p.content,n,p.number))return;let g=nr(p.content,n,p.number),f=gE(t,r,g,n,o,l+1,i+1,a);if(f===void 0||o[f.nextIndex]?.depth>i)return;d+=f.consumedChildRows,l=f.nextIndex}let c=o[l];if(c!==void 0&&c.depth>=i&&Eo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function gE(e,t,r,n,o,s,i,a){let l=0,d=s,c=0;for(let u of e){if(u.fixedLength!==void 0)l+=u.fixedLength;else if(u.children!==void 0)if(t.has(u)){let p=Qf(r[l]);if(p===void 0)return;l+=1;let g=Jf(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Yf(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Qi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function hE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Qf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function mE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Qi(e){return e.reduce((t,r)=>t+Xf(r),0)}function Xf(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Qi(e.children):1}function bE(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Xf(r),0)}function Eo(e,t,r){let n=vt(e,":",r);if(n===-1)return!0;let o=vt(e,t,r);return o===-1?!1:o<n}function yE(e,t,r,n,o){let s=[];for(;s.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw xo(t,r.index);if(a.depth>n)throw V(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw V(a.number,"blank line inside array");s.push(kE(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw V(i.number,"array length mismatch");return s}function kE(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=vt(s,":",o.number);ys(s,o.number,n);let a;try{a=zi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return nd(a,l,e,t,r,n)}}if(vt(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return rd(i,{index:0},r+1,n)}return t.index+=1,qt(s,o.number)}function Zf(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(wE)){vo(e,i,n,o,s);return}}vo(e,[t],n,o,s)}function vo(e,t,r,n,o){vr(t.length-1,o,n);let s=t[0],i=Object.prototype.hasOwnProperty.call(e,s);if(t.length===1){if(i&&n.strict)throw V(o,"duplicate key");or(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw V(o,"path expansion conflict");or(e,s,{})}else i||or(e,s,{});vo(e[s],t.slice(1),r,n,o)}function wE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ze;if(![ze,"|"," "].includes(n))throw V(0,"invalid array header");let o={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(o.cyclicDiscriminatedArrays){let i=Hf(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?ad(s,void 0,e,0,!1,o):nt(e)?eg(s,e,0,o):s.push(St(e,n)),s.join("")}function So(e,t){e.push(" ".repeat(t*2))}function eg(e,t,r,n){vr(r,0,n);for(let[o,s]of Object.entries(t))So(e,r),sd(e,o,s,r,n)}function sd(e,t,r,n,o){if(vr(n,0,o),Array.isArray(r)){ad(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?_E(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",ld(o.delimiter),s.fields.map(i=>ud(i,o.delimiter)).join(o.delimiter),`}:
15
- `);for(let[i,a]of Object.entries(r)){So(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>pd(cd(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
12
+ `),r.common.length>0&&Wf(e,"common",r.common,r.commonRows);for(let n of r.groups)Wf(e,n.label,n.fields,n.rows)}function Wf(e,t,r,n){e.push(" ",ft(t),"[",String(n.length),Mn,"]{",r.map(ft).join(Mn),`}:
13
+ `);for(let o of n)e.push(" ",r.map(s=>St(o[s],Mn)).join(Mn),`
14
+ `)}function aE(e){return e!==""&&Xl(e)}function Ql(e,t,r,n=new Set){if(!Xl(t))return!1;if(Er(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let o=e.every((s,i)=>Ql(s,`${t}.${i}`,r,n));return n.delete(e),o}if(nt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&Ql(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function lE(e){let t=Object.keys(e[0]??{});if(e.every(r=>dE(Object.keys(r),t)))return t.every(Xl)?t:void 0}function dE(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Xl(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function Ro(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function Vi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=vt(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=rr(r.slice(0,n),0)}catch{throw V(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw V(0,"invalid array header");let l=i.slice(0,a),d=/^[0-9]*/.exec(l)[0];if(d===""||d.length>1&&d.startsWith("0"))throw V(0,"invalid array header");let c=Number.parseInt(d,10),u;switch(l.slice(d.length)){case"":u=",";break;case" ":u=" ";break;case"|":u="|";break;default:throw V(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=uE(p.slice(1,-1),u),g=ed(f)}catch(y){throw V(0,y.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw V(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function Kf(e){let t=vt(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=rr(e.slice(0,t),0)}catch{throw V(0,"invalid keyed map header")}if(r===""&&!n)throw V(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=ze;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=cE(o,s,s)}catch(a){throw V(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function cE(e,t,r){let n=[],o=0;function s(l,d){let c=0;for(;o<e.length&&!(d&&e[o]==="}");){if(e[o]===t||e[o]==="}")throw V(0,"invalid array header");let u=o;for(;o<e.length;){let f=e[o];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;o+=1}let[p,g]=rr(e.slice(u,o),0);if(p===""&&!g)throw V(0,"invalid array header");if(c+=1,e[o]==="["){o+=1;let f=o;for(;o<e.length&&e[o]!=="]";)o+=1;if(o>=e.length)throw V(0,"invalid array header");let y=e.slice(f,o);if(!Vf(y,r))throw V(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:y})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw V(0,"invalid array header");o+=1}else n.push({path:[...l,p],listDelimiter:void 0});if(e[o]===t){if(o+=1,o>=e.length||e[o]==="}")throw V(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw V(0,"invalid array header")}if(c===0)throw V(0,"invalid array header")}function i(){for(o+=1;o<e.length;){let l=e[o];if(o+=1,l==="\\")o+=1;else if(l==='"')return}}if(s([],!1),o!==e.length)throw V(0,"invalid array header");let a=new Set;for(let l=0;l<n.length;l+=1)for(let d=l+1;d<n.length;d+=1)if(zf(n[l].path,n[d].path)||ys(n[l].path,n[d].path)||ys(n[d].path,n[l].path))throw V(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw V(0,"duplicate key");a.add(c)}return n}function uE(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return Zl(e,ze,t);try{return Zl(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return Zl(e,ze,t);throw r}}function Zl(e,t,r){let n=0;function o(l){let d=[];for(;n<e.length&&!(l&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw V(0,"invalid array header");let c=n;for(;n<e.length;){let f=e[n];if(f==='"'){s();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[u,p]=rr(e.slice(c,n),0);if(u===""&&!p)throw V(0,"invalid array header");let g={key:u};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw V(0,"invalid array header");let y=e.slice(f,n);n+=1;let h=pE(y);if(h!==void 0){if(h.delimiter!==r)throw V(0,"invalid array header");g.fixedLength=h.len,g.fixedDelimiter=h.delimiter}else if(Vf(y,r))g.listDelimiter=y;else throw V(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw V(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw V(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw V(0,"invalid array header")}if(d.length===0)throw V(0,"invalid array header");return d}function s(){for(n+=1;n<e.length;){let l=e[n];if(n+=1,l==="\\")n+=1;else if(l==='"')return}}let i=o(!1);if(n!==e.length)throw V(0,"invalid array header");let a=ed(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(zf(a[l].path,a[d].path)||ys(a[l].path,a[d].path)||ys(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function pE(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=ze;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function ed(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?ed(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function zi(e,t,r){return e.listDelimiter===void 0?qt(t,r):nr(t,e.listDelimiter,r).map(n=>qt(n,r))}function Vf(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function zf(e,t){return e.length===t.length&&ys(e,t)}function ys(e,t){return t.every((r,n)=>e[n]===r)}function Ji(e,t){return V(t,e.reason??String(e.message))}function Dt(e,t){let r=$f(t),n=Nf(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw V(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){bs(o.content,o.number,r);let d;try{d=Vi(o.content,vt(o.content,":",o.number))}catch(c){if(r.strict)throw Ji(c,o.number);d=void 0}if(d!==void 0)return hE(d,n,r)}if(s&&vt(o.content,":",o.number)===-1)return qt(o.content.trim(),o.number);let i={index:0},a=rd(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Hf(a):a}function rd(e,t,r,n){let o={};for(;t.index<e.length;){let s=e[t.index];if(s.depth<r)break;if(s.depth>r)throw V(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=fE(e,t,r,n);tg(o,i,a,l,n,s.number)}return o}function fE(e,t,r,n){let o=e[t.index],s=o.content,i=vt(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=vt(a,"[",o.number),c=vt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){bs(a,o.number,n);let f;try{f=Kf(a)}catch(h){if(n.strict)throw Ji(h,o.number);t.index+=1;let R=td(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(l.trim()!=="")throw V(o.number,"expected keyed map rows");let y=gE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:y}}if(d!==-1){bs(a,o.number,n);let f;try{f=Vi(a,i)}catch(h){if(n.strict)throw Ji(h,o.number);t.index+=1;let R=td(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(f.key===""&&!f.keyQuoted)throw V(o.number,"expected non-empty field name");let y=nd(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=rr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=td(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function td(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return qt(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?rd(e,t,r+1,s):{}}function gE(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=vt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=rr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=nr(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw V(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{xo(u,p.path,zi(p,c[g],i.number),o,i.number)}),tg(s,l,d,u,o,i.number),r.index+=1}return s}function hE(e,t,r){let n=t[0],o=vt(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=nd(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return a}function nd(e,t,r,n,o,s){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw V(i,"expected tabular rows");return mE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=nr(a,e.delimiter,i).map(d=>qt(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return xE(e,r,n,o+1,s)}function mE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&RE(e.fieldTree))return bE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw Ro(r,n.index);if(l.depth<o)break;if(l.depth>o)throw V(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw V(l.number,"blank line inside array");if(!_o(l.content,e.delimiter,l.number))break;let d=nr(l.content,e.delimiter,l.number);if(d.length!==t.length)throw V(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{xo(c,u.path,zi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw Ro(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&_o(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function bE(e,t,r,n,o){return Jf(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function Jf(e,t,r,n,o,s,i,a){let l=[],d=Qf(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw Ro(n,o.index);if(u.depth<s)break;if(u.depth>s)throw V(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw V(u.number,"blank line inside array");if(!_o(u.content,r,u.number))break;let p=nr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Yi(t),childTableFields:d},f=Yf(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw V(u.number,"array row length mismatch");l.push(wE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw Ro(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&_o(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function Yf(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=yE(d,u,t,r,n,o,s,i,a);xo(l,[d.key],p,a,r)}),l}function yE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw V(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>qt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Yi(e.children),u=r[s.cellIndex],p=Zf(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],y=f!==void 0&&f.depth===i,h=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(h===void 0?p!==void 0&&(y||r.length!==s.flatWidth&&g<c+_E(t)):h){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Jf(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return Yf(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,zi(e,d,n)}function Qf(e,t,r,n,o,s,i){let a=t.filter(c=>c.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let l,d=1<<a.length;for(let c=0;c<d;c+=1){let u=new Set;a.forEach((g,f)=>{c&1<<f&&u.add(g)});let p=Xf(e,t,u,r,n,o,s,i);p!==void 0&&(l===void 0||p.consumedChildRows>l.consumedChildRows||p.consumedChildRows===l.consumedChildRows&&u.size<l.childTableFields.size)&&(l={childTableFields:u,consumedChildRows:p.consumedChildRows})}return l?.childTableFields}function Xf(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u+=1){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!_o(p.content,n,p.number))return;let g=nr(p.content,n,p.number),f=kE(t,r,g,n,o,l+1,i+1,a);if(f===void 0||o[f.nextIndex]?.depth>i)return;d+=f.consumedChildRows,l=f.nextIndex}let c=o[l];if(c!==void 0&&c.depth>=i&&_o(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function kE(e,t,r,n,o,s,i,a){let l=0,d=s,c=0;for(let u of e){if(u.fixedLength!==void 0)l+=u.fixedLength;else if(u.children!==void 0)if(t.has(u)){let p=Zf(r[l]);if(p===void 0)return;l+=1;let g=Qf(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Xf(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Yi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function wE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Zf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function RE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Yi(e){return e.reduce((t,r)=>t+eg(r),0)}function eg(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Yi(e.children):1}function _E(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+eg(r),0)}function _o(e,t,r){let n=vt(e,":",r);if(n===-1)return!0;let o=vt(e,t,r);return o===-1?!1:o<n}function xE(e,t,r,n,o){let s=[];for(;s.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Ro(t,r.index);if(a.depth>n)throw V(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw V(a.number,"blank line inside array");s.push(EE(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw V(i.number,"array length mismatch");return s}function EE(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=vt(s,":",o.number);bs(s,o.number,n);let a;try{a=Vi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return nd(a,l,e,t,r,n)}}if(vt(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return rd(i,{index:0},r+1,n)}return t.index+=1,qt(s,o.number)}function tg(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(vE)){xo(e,i,n,o,s);return}}xo(e,[t],n,o,s)}function xo(e,t,r,n,o){vr(t.length-1,o,n);let s=t[0],i=Object.prototype.hasOwnProperty.call(e,s);if(t.length===1){if(i&&n.strict)throw V(o,"duplicate key");or(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw V(o,"path expansion conflict");or(e,s,{})}else i||or(e,s,{});xo(e[s],t.slice(1),r,n,o)}function vE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ze;if(![ze,"|"," "].includes(n))throw V(0,"invalid array header");let o={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(o.cyclicDiscriminatedArrays){let i=qf(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?ad(s,void 0,e,0,!1,o):nt(e)?rg(s,e,0,o):s.push(St(e,n)),s.join("")}function Eo(e,t){e.push(" ".repeat(t*2))}function rg(e,t,r,n){vr(r,0,n);for(let[o,s]of Object.entries(t))Eo(e,r),sd(e,o,s,r,n)}function sd(e,t,r,n,o){if(vr(n,0,o),Array.isArray(r)){ad(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?TE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",ld(o.delimiter),s.fields.map(i=>ud(i,o.delimiter)).join(o.delimiter),`}:
15
+ `);for(let[i,a]of Object.entries(r)){Eo(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>pd(cd(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
16
16
  `),e.push(...l)}return}e.push(ft(t),`:
17
- `),eg(e,r,n+1,o);return}e.push(ft(t),": ",St(r,o.delimiter),`
17
+ `),rg(e,r,n+1,o);return}e.push(ft(t),": ",St(r,o.delimiter),`
18
18
  `)}function ad(e,t,r,n,o,s){if(vr(n,0,s),r.length===0){t!==void 0?e.push(ft(t),`: []
19
19
  `):o?e.push(`[0]:
20
20
  `):e.push(`[]
21
21
  `);return}if(r.every(Er)){od(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>St(a,s.delimiter)).join(s.delimiter)),e.push(`
22
- `);return}let i=o?void 0:tg(r,s,n+1);if(i!==void 0){od(e,t,r.length,i.fields,s.delimiter),e.push(`
23
- `);for(let a of r){So(e,n+1);let l=[];e.push(i.paths.map(d=>pd(cd(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
22
+ `);return}let i=o?void 0:ng(r,s,n+1);if(i!==void 0){od(e,t,r.length,i.fields,s.delimiter),e.push(`
23
+ `);for(let a of r){Eo(e,n+1);let l=[];e.push(i.paths.map(d=>pd(cd(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
24
24
  `),e.push(...l)}return}od(e,t,r.length,void 0,s.delimiter),e.push(`
25
- `);for(let a of r)So(e,n+1),RE(e,a,n+1,s)}function RE(e,t,r,n){if(vr(r,0,n),Array.isArray(t)){e.push("- "),ad(e,void 0,t,r,!0,n);return}if(nt(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
26
- `);return}e.push("- "),sd(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))So(e,r+1),sd(e,s,i,r+1,n);return}e.push("- ",St(t,n.delimiter),`
27
- `)}function od(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),ld(o),"]"),n!==void 0&&e.push("{",n.map(s=>ud(s,o)).join(o),"}"),e.push(":")}function ld(e){return e===ze?"":e}function tg(e,t,r){let n=xE(e,t);if(n!==void 0)return n;let o=id(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:dd(o)}}function _E(e,t,r){let n=Object.values(e);if(!(n.length<2))return tg(n,t,r)}function id(e,t,r){vr(r,0,t);let n=e[0]?.value;if(!nt(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!nt(s)||Object.keys(s).length!==o.length||o.some(a=>!Object.prototype.hasOwnProperty.call(s,a.key)))return;for(let s of o){let i=e.map(({value:l})=>({value:l[s.key]}));if(i.every(({value:l})=>Er(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(Er))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=rg(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=id(i.flatMap(({value:c})=>c.map(u=>({value:u}))),t,r+1);if(d!==void 0){s.children=d,s.childTable=!0;continue}}if(!t.nestedTabularHeaders)return;let a=id(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function xE(e,t){if(!t.objectArrayColumns)return;let r=rg(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function rg(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(Er)))return{fixedLength:t}}function dd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.childTable===!0?[{path:n,childFields:r.children}]:r.fixedLength!==void 0?[{path:n,fixedLength:r.fixedLength}]:r.children===void 0?[{path:n,listDelimiter:r.listDelimiter}]:dd(r.children,n)})}function cd(e,t){let r=e;for(let n of t)r=r[n];return r}function ud(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${ld(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>ud(r,t)).join(t)}}`}function pd(e,t,r,n,o,s){return t.childFields!==void 0?(EE(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>St(i,r)).join(r):t.listDelimiter===void 0?St(e,r):e.map(i=>vE(i,r,t.listDelimiter)).join(t.listDelimiter)}function EE(e,t,r,n,o){for(let s of t){So(e,o);let i=[];e.push(dd(r).map(a=>pd(cd(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
28
- `),e.push(...i)}}function vE(e,t,r){return typeof e!="string"?St(e,t):Jl(e,t)||e.includes(r)?Ki(e):e}var cg=[ze,"|"," "];var ug=8,pg=/^[A-Za-z0-9_-]+$/,E$=new TextEncoder,v$=new TextDecoder;function AE(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Te(t,"invalid trailer count");return Number.parseInt(r,10)}function fg(e,t){if(!pg.test(e))throw Te(t,"invalid tag")}function CE(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!pg.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Te(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function DE(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Te(t,"invalid header");let o=r.slice(0,n),s=o.startsWith("~"),i=s?o.slice(1):o;if(!s&&i.startsWith("="))return null;if(!cg.includes(i)&&i!=="")throw Te(t,"invalid header delimiter");let a=i===""?ze:i,l=r.slice(n+1),d=null;if(!s&&l.startsWith("<")){let p=l.indexOf(">");if(p===-1)throw Te(t,"invalid tag");if(d=l.slice(1,p),fg(d,t),i!=="")throw Te(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Te(t,"invalid header");let c=l.slice(1,-2),u;try{u=nr(c,a,t).map(p=>rr(p,t)[0])}catch(p){throw _o(p)}if(u.length===0||u.some(p=>p===""))throw Te(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function OE(e,t,r){if(e===null||e.delimiter===void 0)throw Te(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Te(r,"continuation header mismatch")}function ng(e,t,r,n){let o;try{o=nr(e,t,n)}catch(s){throw _o(s)}if(o.length!==r)throw Te(n,"row arity mismatch");for(let s of o)try{qt(s,n)}catch(i){throw _o(i)}return o}function FE(e,t,r){let n={};return e.forEach((o,s)=>{try{or(n,o,qt(t[s],r))}catch(i){throw _o(i)}}),n}function IE(e,t,r){if(e.startsWith("- "))throw Te(t,"reserved line prefix");let n=AE(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Te(t,"trailer without header");if(r.rowCount!==n)throw Te(t,"trailer count mismatch");return{kind:"trailer"}}let o=DE(e,t);if(o!==null)return o.continuation?(OE(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=CE(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Te(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:ng(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Te(t,"row before header");return{kind:"row",cells:ng(e,r.delimiter,r.fields.length,t)}}function ME(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let y=s.at(-1);if(y!==void 0&&y.lane===g.lane&&y.delimiter===g.delimiter&&y.fieldText===g.fieldText){y.rows.push(f);return}s.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function c(){i!==null&&o.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function u(g,f,y){let h=n.get(g);if(h===void 0){if(n.size>=ug)throw Te(y,"too many tagged lanes");h={segments:[],current:null},n.set(g,h),r.push(g)}else h.current!==null&&h.segments.push(h.current);h.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},h.delimiter=f.delimiter,h.fields=f.fields,h.fieldText=f.fieldText}if(qi(e).forEach((g,f)=>{let y=f+1;if(g==="")return;let h=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},R=IE(g,y,h);if(R.kind==="trailer"){c(),i=null;return}if(R.kind!=="continuation"){if(R.kind==="tag-header"){l=!0,u(R.header.tag,R.header,y);return}if(R.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:R.header.delimiter,fields:R.header.fields,fieldText:R.header.fieldText,rows:[]};return}if(R.kind==="tagged-row"){l=!0;let T=n.get(R.tag).current;T.rows.push(R.cells),d(T,R.cells);return}if(i===null)throw Te(y,"row before header");i.rows.push(R.cells),d(i,R.cells)}}),!l)return c(),t.preserveInterleaving===!0,o;let p=[];c();for(let g of r){if(g===null){p.push(...o);continue}let f=n.get(g);p.push(...f.segments),f.current!==null&&p.push(f.current)}return t.preserveInterleaving===!0?s:p}function Sr(e){return ME(e).flatMap(t=>t.rows.map(r=>FE(t.fields,r,0)))}function LE(e){if(!cg.includes(e))throw Te(0,"invalid header delimiter")}function og(e,t,r=!1){return`[${`${r?"~":""}${e===ze?"":e}`}]{${t}}:
29
- `}function sg(e,t){return`[]<${e}>{${t}}:
30
- `}function fd(e,t){return t.map(ft).join(e)}function jE(e){if(!Array.isArray(e)||e.length===0)throw Te(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=rr(String(t),0)}catch(n){throw _o(n)}if(r==="")throw Te(0,"TOONL header requires fields");return r})}function ig(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function ag(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Te(0,"TOONL continuation cadence must be positive")}function BE(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function lg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Te(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Te(0,"TOONL output requires object rows");if(t.some(r=>!Er(e[r])))throw Te(0,"TOONL rows must be flat objects");return t}function $E(e){return JSON.stringify([...e].sort())}function dg(e,t){let r=$E(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Lt({delimiter:e=ze,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){LE(e),ag(r),ag(n);let o=null,s="",i=new Map,a=0,l=0,d=0,c=new Map,u=!1,p={continuationEveryRows:r,continuationEveryBytes:n},g=()=>o===null||!t?"":`[=${a}]
31
- `,f=()=>BE(p,l,d)?(l=0,d=0,og(e,s,!0)):"",y=h=>{fg(h,0);let R=c.get(h);if(R===void 0){if(c.size>=ug)throw Te(0,"too many tagged lanes");R={fields:null,fieldsByShape:new Map},c.set(h,R)}return R};return{push(h){if(u)throw Te(0,"TOONL encoder is closed");let R=dg(lg(h),i),T="";(o===null||o.length!==R.length||o.some((M,N)=>M!==R[N]))&&(T+=g(),o=R,s=fd(e,o),a=0,l=0,d=0,T+=og(e,s));let $=o.map(M=>St(h[M],e));T+=f();let D=`${$.join(e)}
32
- `;return T+=D,a+=1,l+=1,d+=D.length,T},declareLane(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=jE(R),$=fd(ze,T),D=y(h);return ig(D.fields,T)?"":(D.fields=T,sg(h,$))},pushTagged(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=y(h),$=dg(lg(R),T.fieldsByShape),D=fd(ze,$),M=$.map(U=>St(R[U],ze)),N="";return ig(T.fields,$)||(T.fields=$,N+=sg(h,D)),`${N}${h}:${M.join(ze)}
33
- `},end(){return u?"":(u=!0,g())}}}function gd(e){let t={app:e,version:NE(To("__RED_BUILD_VERSION__",()=>"3.12.5")??"0.0.0-dev"),gitSha:To("__RED_BUILD_GIT_SHA__",()=>"d560e20c2fa0cc625d2c2bc0643a6a468221a433")??"unknown",buildTime:To("__RED_BUILD_TIME__",()=>"2026-08-07T23:18:42-03:00")??"unknown",bundleAsset:To("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=To("__REDDB_SDK_VERSION__",()=>""),n=To("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function NE(e){return e.startsWith("v")?e.slice(1):e}function gg(e){return`${e.app} ${e.version} ${e.gitSha}`}function To(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var hg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},GE=/^[a-z][a-z0-9+.-]*:\/\//i;function WE(e,t){return typeof t=="string"?{separator:e,to:t,typed:!1,prefix:!1}:{separator:e,to:t.to,typed:t.typed??!1,prefix:t.prefix??!1}}function HE(e=hg){return Object.entries(e).map(([t,r])=>WE(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function UE(e){return/^-\d+(\.\d+)?$/.test(e)}function ws(e){return!(!e||e.startsWith("-")&&!UE(e))}function Xi(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function mg(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e.includes(",")?e.split(",").map(r=>mg(r.trim())):e}function jn(e,t){switch(t){case"boolean":return qE(e);case"number":return KE(e);case"array":return e.split(",").map(r=>Xi(r.trim()));case"string":default:return e}}function qE(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function KE(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function ln(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function VE(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Me(e,t){return{type:e,value:t}}function zE(e){let t=[],r=YE(e);if(t.push(Me("section-header","Usage:"),Me("text"," "),Me("usage-text",r),Me("newline",`
25
+ `);for(let a of r)Eo(e,n+1),SE(e,a,n+1,s)}function SE(e,t,r,n){if(vr(r,0,n),Array.isArray(t)){e.push("- "),ad(e,void 0,t,r,!0,n);return}if(nt(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
26
+ `);return}e.push("- "),sd(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))Eo(e,r+1),sd(e,s,i,r+1,n);return}e.push("- ",St(t,n.delimiter),`
27
+ `)}function od(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),ld(o),"]"),n!==void 0&&e.push("{",n.map(s=>ud(s,o)).join(o),"}"),e.push(":")}function ld(e){return e===ze?"":e}function ng(e,t,r){let n=PE(e,t);if(n!==void 0)return n;let o=id(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:dd(o)}}function TE(e,t,r){let n=Object.values(e);if(!(n.length<2))return ng(n,t,r)}function id(e,t,r){vr(r,0,t);let n=e[0]?.value;if(!nt(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!nt(s)||Object.keys(s).length!==o.length||o.some(a=>!Object.prototype.hasOwnProperty.call(s,a.key)))return;for(let s of o){let i=e.map(({value:l})=>({value:l[s.key]}));if(i.every(({value:l})=>Er(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(Er))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=og(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=id(i.flatMap(({value:c})=>c.map(u=>({value:u}))),t,r+1);if(d!==void 0){s.children=d,s.childTable=!0;continue}}if(!t.nestedTabularHeaders)return;let a=id(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function PE(e,t){if(!t.objectArrayColumns)return;let r=og(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function og(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(Er)))return{fixedLength:t}}function dd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.childTable===!0?[{path:n,childFields:r.children}]:r.fixedLength!==void 0?[{path:n,fixedLength:r.fixedLength}]:r.children===void 0?[{path:n,listDelimiter:r.listDelimiter}]:dd(r.children,n)})}function cd(e,t){let r=e;for(let n of t)r=r[n];return r}function ud(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${ld(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>ud(r,t)).join(t)}}`}function pd(e,t,r,n,o,s){return t.childFields!==void 0?(AE(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>St(i,r)).join(r):t.listDelimiter===void 0?St(e,r):e.map(i=>CE(i,r,t.listDelimiter)).join(t.listDelimiter)}function AE(e,t,r,n,o){for(let s of t){Eo(e,o);let i=[];e.push(dd(r).map(a=>pd(cd(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
28
+ `),e.push(...i)}}function CE(e,t,r){return typeof e!="string"?St(e,t):Jl(e,t)||e.includes(r)?qi(e):e}var pg=[ze,"|"," "];var fg=8,gg=/^[A-Za-z0-9_-]+$/,E$=new TextEncoder,v$=new TextDecoder;function IE(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Te(t,"invalid trailer count");return Number.parseInt(r,10)}function hg(e,t){if(!gg.test(e))throw Te(t,"invalid tag")}function ME(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!gg.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Te(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function LE(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Te(t,"invalid header");let o=r.slice(0,n),s=o.startsWith("~"),i=s?o.slice(1):o;if(!s&&i.startsWith("="))return null;if(!pg.includes(i)&&i!=="")throw Te(t,"invalid header delimiter");let a=i===""?ze:i,l=r.slice(n+1),d=null;if(!s&&l.startsWith("<")){let p=l.indexOf(">");if(p===-1)throw Te(t,"invalid tag");if(d=l.slice(1,p),hg(d,t),i!=="")throw Te(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Te(t,"invalid header");let c=l.slice(1,-2),u;try{u=nr(c,a,t).map(p=>rr(p,t)[0])}catch(p){throw wo(p)}if(u.length===0||u.some(p=>p===""))throw Te(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function jE(e,t,r){if(e===null||e.delimiter===void 0)throw Te(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Te(r,"continuation header mismatch")}function sg(e,t,r,n){let o;try{o=nr(e,t,n)}catch(s){throw wo(s)}if(o.length!==r)throw Te(n,"row arity mismatch");for(let s of o)try{qt(s,n)}catch(i){throw wo(i)}return o}function BE(e,t,r){let n={};return e.forEach((o,s)=>{try{or(n,o,qt(t[s],r))}catch(i){throw wo(i)}}),n}function $E(e,t,r){if(e.startsWith("- "))throw Te(t,"reserved line prefix");let n=IE(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Te(t,"trailer without header");if(r.rowCount!==n)throw Te(t,"trailer count mismatch");return{kind:"trailer"}}let o=LE(e,t);if(o!==null)return o.continuation?(jE(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=ME(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Te(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:sg(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Te(t,"row before header");return{kind:"row",cells:sg(e,r.delimiter,r.fields.length,t)}}function NE(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let y=s.at(-1);if(y!==void 0&&y.lane===g.lane&&y.delimiter===g.delimiter&&y.fieldText===g.fieldText){y.rows.push(f);return}s.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function c(){i!==null&&o.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function u(g,f,y){let h=n.get(g);if(h===void 0){if(n.size>=fg)throw Te(y,"too many tagged lanes");h={segments:[],current:null},n.set(g,h),r.push(g)}else h.current!==null&&h.segments.push(h.current);h.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},h.delimiter=f.delimiter,h.fields=f.fields,h.fieldText=f.fieldText}if(Ui(e).forEach((g,f)=>{let y=f+1;if(g==="")return;let h=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},R=$E(g,y,h);if(R.kind==="trailer"){c(),i=null;return}if(R.kind!=="continuation"){if(R.kind==="tag-header"){l=!0,u(R.header.tag,R.header,y);return}if(R.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:R.header.delimiter,fields:R.header.fields,fieldText:R.header.fieldText,rows:[]};return}if(R.kind==="tagged-row"){l=!0;let T=n.get(R.tag).current;T.rows.push(R.cells),d(T,R.cells);return}if(i===null)throw Te(y,"row before header");i.rows.push(R.cells),d(i,R.cells)}}),!l)return c(),t.preserveInterleaving===!0,o;let p=[];c();for(let g of r){if(g===null){p.push(...o);continue}let f=n.get(g);p.push(...f.segments),f.current!==null&&p.push(f.current)}return t.preserveInterleaving===!0?s:p}function Sr(e){return NE(e).flatMap(t=>t.rows.map(r=>BE(t.fields,r,0)))}function GE(e){if(!pg.includes(e))throw Te(0,"invalid header delimiter")}function ig(e,t,r=!1){return`[${`${r?"~":""}${e===ze?"":e}`}]{${t}}:
29
+ `}function ag(e,t){return`[]<${e}>{${t}}:
30
+ `}function fd(e,t){return t.map(ft).join(e)}function WE(e){if(!Array.isArray(e)||e.length===0)throw Te(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=rr(String(t),0)}catch(n){throw wo(n)}if(r==="")throw Te(0,"TOONL header requires fields");return r})}function lg(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function dg(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Te(0,"TOONL continuation cadence must be positive")}function HE(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function cg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Te(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Te(0,"TOONL output requires object rows");if(t.some(r=>!Er(e[r])))throw Te(0,"TOONL rows must be flat objects");return t}function UE(e){return JSON.stringify([...e].sort())}function ug(e,t){let r=UE(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Lt({delimiter:e=ze,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){GE(e),dg(r),dg(n);let o=null,s="",i=new Map,a=0,l=0,d=0,c=new Map,u=!1,p={continuationEveryRows:r,continuationEveryBytes:n},g=()=>o===null||!t?"":`[=${a}]
31
+ `,f=()=>HE(p,l,d)?(l=0,d=0,ig(e,s,!0)):"",y=h=>{hg(h,0);let R=c.get(h);if(R===void 0){if(c.size>=fg)throw Te(0,"too many tagged lanes");R={fields:null,fieldsByShape:new Map},c.set(h,R)}return R};return{push(h){if(u)throw Te(0,"TOONL encoder is closed");let R=ug(cg(h),i),T="";(o===null||o.length!==R.length||o.some((M,N)=>M!==R[N]))&&(T+=g(),o=R,s=fd(e,o),a=0,l=0,d=0,T+=ig(e,s));let $=o.map(M=>St(h[M],e));T+=f();let D=`${$.join(e)}
32
+ `;return T+=D,a+=1,l+=1,d+=D.length,T},declareLane(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=WE(R),$=fd(ze,T),D=y(h);return lg(D.fields,T)?"":(D.fields=T,ag(h,$))},pushTagged(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=y(h),$=ug(cg(R),T.fieldsByShape),D=fd(ze,$),M=$.map(U=>St(R[U],ze)),N="";return lg(T.fields,$)||(T.fields=$,N+=ag(h,D)),`${N}${h}:${M.join(ze)}
33
+ `},end(){return u?"":(u=!0,g())}}}function gd(e){let t={app:e,version:qE(vo("__RED_BUILD_VERSION__",()=>"3.12.6")??"0.0.0-dev"),gitSha:vo("__RED_BUILD_GIT_SHA__",()=>"e42c56bf8eae3e35091357141b6aa8773272ecf6")??"unknown",buildTime:vo("__RED_BUILD_TIME__",()=>"2026-08-08T14:35:52-03:00")??"unknown",bundleAsset:vo("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=vo("__REDDB_SDK_VERSION__",()=>""),n=vo("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function qE(e){return e.startsWith("v")?e.slice(1):e}function mg(e){return`${e.app} ${e.version} ${e.gitSha}`}function vo(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var bg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},KE=/^[a-z][a-z0-9+.-]*:\/\//i;function VE(e,t){return typeof t=="string"?{separator:e,to:t,typed:!1,prefix:!1}:{separator:e,to:t.to,typed:t.typed??!1,prefix:t.prefix??!1}}function zE(e=bg){return Object.entries(e).map(([t,r])=>VE(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function JE(e){return/^-\d+(\.\d+)?$/.test(e)}function ks(e){return!(!e||e.startsWith("-")&&!JE(e))}function Qi(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function yg(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e.includes(",")?e.split(",").map(r=>yg(r.trim())):e}function Ln(e,t){switch(t){case"boolean":return YE(e);case"number":return QE(e);case"array":return e.split(",").map(r=>Qi(r.trim()));case"string":default:return e}}function YE(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function QE(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function ln(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function XE(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Me(e,t){return{type:e,value:t}}function ZE(e){let t=[],r=tv(e);if(t.push(Me("section-header","Usage:"),Me("text"," "),Me("usage-text",r),Me("newline",`
34
34
  `),Me("newline",`
35
35
  `)),e.positional&&e.positional.length>0){t.push(Me("section-header","Arguments:"),Me("newline",`
36
36
  `));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Me("indent"," "),Me("positional-name",`<${o}>`)),n.required||t.push(Me("positional-optional"," (optional)")),t.push(Me("newline",`
37
37
  `),Me("indent"," "),Me("option-description",n.description),Me("newline",`
38
38
  `))}t.push(Me("newline",`
39
39
  `))}if(e.options&&Object.keys(e.options).length>0){t.push(Me("section-header","Options:"),Me("newline",`
40
- `));let n=QE(e.options);t.push(...n)}return t}function JE(e,t){let r=zE(e);return VE(r,t)}function YE(e){let t=["[options]"];if(e.positional)for(let r of e.positional)r.variadic?t.push(r.required?`<${r.name}...>`:`[${r.name}...]`):t.push(r.required?`<${r.name}>`:`[${r.name}]`);return t.join(" ")}function QE(e,t=!1){let r=[],n=[],o=t?"global-option-flag":"option-flag",s=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[d,c]of Object.entries(e)){if(c.hidden)continue;let u=[],p=y=>{u.includes(y)||u.push(y)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let y of c.aliases??[])y.length===1?p(`-${y}`):p(`--${y}`);let g=u.join(", "),f=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:g,type:f,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(d=>d.flags.length+(d.type?d.type.length+1:0)),20);for(let d of n){let c=d.flags.length+(d.type?d.type.length+1:0),u=" ".repeat(l-c+2);r.push(Me("indent"," ")),r.push(Me(o,d.flags)),d.type&&(r.push(Me("text"," ")),r.push(Me(s,d.type))),r.push(Me("text",u)),r.push(Me(a,d.desc)),d.default!==void 0&&(r.push(Me("text"," ")),r.push(Me(i,`(default: ${d.default})`))),r.push(Me("newline",`
41
- `))}return r}function bg(e){let t=ov(e.options??{},e.autoShort??!1),r=HE(e.separators??hg);return{schema:e,parse(n){return XE(n,e,t,r)},help(){return JE(e,e.formatter)}}}function XE(e,t,r,n){let o={positional:{},options:{},errors:[],rest:[]},s=new Set(n.map(c=>c.to));for(let c of s)o[c]={};let i=0,a=t.positional??[],l=0,d=!1;for(;l<e.length;){let c=e[l];if(t.stopEarly&&i>0){o.rest=e.slice(l);break}if(c==="--"&&!d){d=!0,l++;continue}if(d){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;l<e.length;){let f=e[l];g.push(p.type?jn(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?jn(c,p.type):c;o.positional[p.name]=g,i++,l++}}else t.allowUnknown!==!1&&(o.rest=o.rest??[],o.rest.push(c)),l++;continue}if(c.startsWith("--")){l=rv(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!dv(c)){l=nv(c,l,e,o,r,t);continue}let u=ZE(c,n);if(u){let{key:p,value:g,config:f}=u,y=o,h=y[f.to]??(y[f.to]={});h[p]=f.typed?mg(g):ln(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let y=e[l];f.push(p.type?jn(y,p.type):y),l++}o.positional[p.name]=f,i++;continue}let g=p.type?jn(c,p.type):c;o.positional[p.name]=g,i++}else t.allowUnknown!==!1?o.rest.push(c):o.errors.push(`Unexpected positional argument: ${c}`);l++}return iv(o,t,r),av(o,t,a),lv(o,t,r),o}function ZE(e,t){if(GE.test(e))return null;for(let r of t){if(r.prefix&&e.startsWith(r.separator)){let o=e.slice(r.separator.length),s=o.indexOf(":");if(s>0){let i=o.slice(0,s),a=o.slice(s+1);if(ev(i))return{key:i,value:a,config:r}}continue}let n=e.indexOf(r.separator);if(n>0){let o=e.slice(0,n),s=e.slice(n+r.separator.length);if(tv(o,s,r))return{key:o,value:s,config:r}}}return null}function ev(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function tv(e,t,r){return e?r.separator===":"?e.includes("/")||e.includes(".")||/^\d+$/.test(t)?!1:/^[A-Z][a-zA-Z0-9-]*$/.test(e):!((r.separator==="="||r.separator===":=")&&e.includes("/")):!1}function rv(e,t,r,n,o,s){let i=e.slice(2);if(i.startsWith("no-")){let l=i.slice(3),d=o.get(l);if(d?.negatable!==!1&&d?.type==="boolean")return n.options[d.name]=!1,t+1}if(i.includes("=")){let l=i.indexOf("="),d=i.slice(0,l),c=i.slice(l+1);return Zi(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return ws(l)?Zi(a.name,l,t+2,n,o,s):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return s.strict?n.errors.push(`Unknown option: --${i}`):s.allowUnknown!==!1&&(n.options[i]=!0),t+1}function nv(e,t,r,n,o,s){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),l=i.slice(0,a),d=i.slice(a+1),c=hd(l,o);return c?Zi(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=Xi(ln(d))),t+1)}if(i.length===1){let a=hd(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return ws(l)?Zi(a.name,l,t+2,n,o,s):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(s.strict)n.errors.push(`Unknown option: -${i}`);else if(s.allowUnknown!==!1){let l=r[t+1];if(ws(l))return n.options[i]=Xi(ln(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=hd(a,o);l?l.type==="boolean"?n.options[l.name]=!0:n.errors.push(`Option -${a} requires a value`):s.strict?n.errors.push(`Unknown option: -${a}`):s.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function Zi(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?jn(ln(t),i.type):ln(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?jn(ln(t),i.type):ln(t);if(i.type==="array"){let l=n.options[e];Array.isArray(l)?l.push(...a):n.options[e]=a}else n.options[e]=a}else s.strict?n.errors.push(`Unknown option: --${e}`):s.allowUnknown!==!1&&(n.options[e]=Xi(ln(t)));return r}function ov(e,t=!1){let r=new Map,n=Object.entries(e).sort(([s],[i])=>s.localeCompare(i)),o=new Set;for(let[,s]of n)s.short&&o.add(s.short);for(let[s,i]of n){let a=i.short??"";t&&!a&&(a=sv(s,o),a&&o.add(a));let l={name:s,short:a,aliases:i.aliases??[],type:i.type??"string",description:i.description??"",required:i.required??!1,hidden:i.hidden??!1,negatable:i.negatable??!0,default:i.default,choices:i.choices,env:i.env,validate:i.validate};r.set(s,l);for(let d of l.aliases)r.set(d,l)}return r}function sv(e,t){for(let r of e){if(!/[a-zA-Z]/.test(r))continue;let n=r.toLowerCase();if(!t.has(n))return n;let o=r.toUpperCase();if(!t.has(o))return o}return""}function hd(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function iv(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let o=process.env[n.env];e.options[n.name]=n.type?jn(o,n.type):o}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function av(e,t,r){if(t.options)for(let[n,o]of Object.entries(t.options))o.required&&e.options[n]===void 0&&e.errors.push(`Missing required option: --${n}`);for(let n of r)n.required&&e.positional[n.name]===void 0&&e.errors.push(`Missing required argument: <${n.name}>`)}function lv(e,t,r){for(let n of r.values()){let o=e.options[n.name];if(n.validate&&o!==void 0){let s=n.validate(o);s!==!0&&e.errors.push(s)}}for(let n of t.positional??[]){let o=e.positional[n.name];if(n.validate&&o!==void 0){let s=n.validate(o);s!==!0&&e.errors.push(s)}}}function dv(e){return/^-\d+(\.\d+)?$/.test(e)}var md=class extends Error{flag;known;constructor(t,r){super(`unknown flag '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownFlagError",this.flag=t,this.known=r}};function cv(e){let t={};for(let[r,n]of Object.entries(e))t[r]={type:n.kind==="boolean"?"boolean":"string",...r.length===1?{short:r}:{},...n.aliases===void 0?{}:{aliases:n.aliases}};return t}function uv(e,t){let r=new Map;for(let[o,s]of Object.entries(t))if(!(s.kind!=="value"||s.type!=="array")){r.set(o,o);for(let i of s.aliases??[])r.set(i,o)}let n=new Map;for(let o=0;o<e.length;o+=1){let s=e[o];if(s==="--")break;let i=s.match(/^--([^=]+)(?:=(.*))?$/)??s.match(/^-([^=])(?:=(.*))?$/);if(i===null)continue;let a=r.get(i[1]);if(a===void 0)continue;let l=i[2];if(l===void 0&&ws(e[o+1])&&(l=e[o+1],o+=1),l===void 0)continue;let d=n.get(a)??[];d.push(l),n.set(a,d)}return n}function dn(e,t,r={}){let o=bg({options:cv(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=uv(e,t),a=o.errors.find(l=>/^Option --?\S+ requires a value$/.test(l));if(a!==void 0)throw new Error(a.replace(/^Option /,""));if(o.errors.length>0)throw new Error(o.errors[0]);if(r.unknownFlags==="error"){let l=new Set(Object.keys(t));for(let d of Object.keys(o.options))if(!l.has(d))throw new md(d.length===1?`-${d}`:`--${d}`,Object.keys(t).map(c=>c.length===1?`-${c}`:`--${c}`))}for(let[l,d]of Object.entries(t)){let c=o.options[l];c!==void 0&&(d.kind==="boolean"?s[l]=c:d.type==="array"?s[l]=(i.get(l)??[]).map(u=>d.coerce(u)):s[l]=d.coerce(String(c)))}return{values:s,positionals:o.rest}}var bd=class extends Error{token;known;constructor(t,r){super(`unknown command '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownCommandError",this.token=t,this.known=r}};function yg(e,t){let[r,...n]=e;if(r!==void 0){for(let[s,i]of Object.entries(t.commands))if(r===s||(i.aliases??[]).includes(r))return{command:s,args:n};if(t.errorOnUnknownCommand&&!r.startsWith("-"))throw new bd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as _v,mkdirSync as xv,readFileSync as Pg,statSync as Ev}from"node:fs";import{dirname as Cg,join as vv}from"node:path";var kg="RED_WORKER_SCOPE",wg="RED_WORKER_MEMORY_CEILING",Rg="RED_WORKER_SCOPE_DEGRADATION",kd={scope:null,memory_ceiling:null,scope_degradation:null};function wd(e){return{scope:yd(e[kg]),memory_ceiling:yd(e[wg]),scope_degradation:yd(e[Rg])}}function Rs(e){let t={};return e.scope!=null&&e.scope!==""&&(t[kg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(t[wg]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(t[Rg]=e.scope_degradation),t}function yd(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as gv,readdirSync as hv,readFileSync as vg,rmSync as mv,writeFileSync as bv}from"node:fs";import{basename as yv,join as Po}from"node:path";import{isAbsolute as o2,join as ea,resolve as s2}from"node:path";function pv(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var _g="deaths",xg="deaths.toonl";function ta(e){return ea(pv(e),_g)}function _s(e){return ea(ta(e),xg)}var xs="live",Eg="attributions.toonl";function ra(e){return ea(ta(e),xs)}function Rd(e){return ea(ta(e),Eg)}var xd=Po("sys","kernel","random","boot_id"),Sg=1;function Ed(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:Sg,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Tg(Po(r,xd)),cgroup:kv(r,n),last_phase:e.last_phase}}function Tg(e){try{let t=vg(e,"utf8").trim();return t===""?null:t}catch{return null}}function kv(e,t){let r=Tg(Po(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
42
- `),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function vd(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Sd(e,t){let r=Po(e,vd(t));try{return gv(e,{recursive:!0,mode:448}),bv(r,Lt({trailer:!1}).push(Rv(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function Bn(e,t){try{mv(Po(e,vd(t)),{force:!0})}catch{}}function Td(e,t){let r;try{r=hv(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Po(e,o);try{let a=Sr(vg(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(wv(a))}catch(i){t?.(yv(s),i instanceof Error?i.message:String(i))}}return n}function wv(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:_d(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:_d(e.pid),ppid:_d(e.ppid),boot_id:e.boot_id==null?null:String(e.boot_id),cgroup:e.cgroup==null?null:String(e.cgroup),last_phase:String(e.last_phase)}}function _d(e){return typeof e=="number"?e:Number(e)}function Rv(e){return{...e}}var Sv=1,Tv=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function Pv(e){return typeof e=="string"&&Tv.has(e)}var Av="startup";function Cv(e,t){return{...e.scope??kd,version:Sv,ts:e.ts,kind:e.kind,id:e.id,pid:e.pid,exit_path:e.exit_path,signal:e.signal??null,exit_code:e.exit_code??null,last_phase:e.last_phase,detail:e.detail??null,...t}}function Dv(e){let t=e.resourceUsage();return{uptime_s:Math.round(e.uptime()),rss_kb:Math.round(e.memoryUsage().rss/1024),max_rss_kb:t.maxRSS,user_cpu_us:t.userCPUTime,system_cpu_us:t.systemCPUTime,minor_page_faults:t.minorPageFault,major_page_faults:t.majorPageFault,voluntary_ctx_switches:t.voluntaryContextSwitches,involuntary_ctx_switches:t.involuntaryContextSwitches}}var Ad={mkdir(e){xv(e,{recursive:!0,mode:448})},endsClean(e){let t;try{t=Ev(e).size}catch{return!0}if(t===0)return!0;try{return Pg(e,"utf8").endsWith(`
43
- `)}catch{return!0}},append(e,t){_v(e,t,{encoding:"utf8",mode:384})},read(e){return Pg(e,"utf8")}};function Ov(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function Fv(e,t,r=Ad){let n=Lt({trailer:!1}).push(Ov(t));return r.mkdir(Cg(e)),r.endsClean(e)||r.append(e,`
44
- `),r.append(e,n),t}function Dg(e){let t=e.endsWith(`
40
+ `));let n=rv(e.options);t.push(...n)}return t}function ev(e,t){let r=ZE(e);return XE(r,t)}function tv(e){let t=["[options]"];if(e.positional)for(let r of e.positional)r.variadic?t.push(r.required?`<${r.name}...>`:`[${r.name}...]`):t.push(r.required?`<${r.name}>`:`[${r.name}]`);return t.join(" ")}function rv(e,t=!1){let r=[],n=[],o=t?"global-option-flag":"option-flag",s=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[d,c]of Object.entries(e)){if(c.hidden)continue;let u=[],p=y=>{u.includes(y)||u.push(y)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let y of c.aliases??[])y.length===1?p(`-${y}`):p(`--${y}`);let g=u.join(", "),f=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:g,type:f,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(d=>d.flags.length+(d.type?d.type.length+1:0)),20);for(let d of n){let c=d.flags.length+(d.type?d.type.length+1:0),u=" ".repeat(l-c+2);r.push(Me("indent"," ")),r.push(Me(o,d.flags)),d.type&&(r.push(Me("text"," ")),r.push(Me(s,d.type))),r.push(Me("text",u)),r.push(Me(a,d.desc)),d.default!==void 0&&(r.push(Me("text"," ")),r.push(Me(i,`(default: ${d.default})`))),r.push(Me("newline",`
41
+ `))}return r}function kg(e){let t=dv(e.options??{},e.autoShort??!1),r=zE(e.separators??bg);return{schema:e,parse(n){return nv(n,e,t,r)},help(){return ev(e,e.formatter)}}}function nv(e,t,r,n){let o={positional:{},options:{},errors:[],rest:[]},s=new Set(n.map(c=>c.to));for(let c of s)o[c]={};let i=0,a=t.positional??[],l=0,d=!1;for(;l<e.length;){let c=e[l];if(t.stopEarly&&i>0){o.rest=e.slice(l);break}if(c==="--"&&!d){d=!0,l++;continue}if(d){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;l<e.length;){let f=e[l];g.push(p.type?Ln(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Ln(c,p.type):c;o.positional[p.name]=g,i++,l++}}else t.allowUnknown!==!1&&(o.rest=o.rest??[],o.rest.push(c)),l++;continue}if(c.startsWith("--")){l=av(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!gv(c)){l=lv(c,l,e,o,r,t);continue}let u=ov(c,n);if(u){let{key:p,value:g,config:f}=u,y=o,h=y[f.to]??(y[f.to]={});h[p]=f.typed?yg(g):ln(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let y=e[l];f.push(p.type?Ln(y,p.type):y),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Ln(c,p.type):c;o.positional[p.name]=g,i++}else t.allowUnknown!==!1?o.rest.push(c):o.errors.push(`Unexpected positional argument: ${c}`);l++}return uv(o,t,r),pv(o,t,a),fv(o,t,r),o}function ov(e,t){if(KE.test(e))return null;for(let r of t){if(r.prefix&&e.startsWith(r.separator)){let o=e.slice(r.separator.length),s=o.indexOf(":");if(s>0){let i=o.slice(0,s),a=o.slice(s+1);if(sv(i))return{key:i,value:a,config:r}}continue}let n=e.indexOf(r.separator);if(n>0){let o=e.slice(0,n),s=e.slice(n+r.separator.length);if(iv(o,s,r))return{key:o,value:s,config:r}}}return null}function sv(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function iv(e,t,r){return e?r.separator===":"?e.includes("/")||e.includes(".")||/^\d+$/.test(t)?!1:/^[A-Z][a-zA-Z0-9-]*$/.test(e):!((r.separator==="="||r.separator===":=")&&e.includes("/")):!1}function av(e,t,r,n,o,s){let i=e.slice(2);if(i.startsWith("no-")){let l=i.slice(3),d=o.get(l);if(d?.negatable!==!1&&d?.type==="boolean")return n.options[d.name]=!1,t+1}if(i.includes("=")){let l=i.indexOf("="),d=i.slice(0,l),c=i.slice(l+1);return Xi(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return ks(l)?Xi(a.name,l,t+2,n,o,s):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return s.strict?n.errors.push(`Unknown option: --${i}`):s.allowUnknown!==!1&&(n.options[i]=!0),t+1}function lv(e,t,r,n,o,s){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),l=i.slice(0,a),d=i.slice(a+1),c=hd(l,o);return c?Xi(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=Qi(ln(d))),t+1)}if(i.length===1){let a=hd(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return ks(l)?Xi(a.name,l,t+2,n,o,s):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(s.strict)n.errors.push(`Unknown option: -${i}`);else if(s.allowUnknown!==!1){let l=r[t+1];if(ks(l))return n.options[i]=Qi(ln(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=hd(a,o);l?l.type==="boolean"?n.options[l.name]=!0:n.errors.push(`Option -${a} requires a value`):s.strict?n.errors.push(`Unknown option: -${a}`):s.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function Xi(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Ln(ln(t),i.type):ln(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Ln(ln(t),i.type):ln(t);if(i.type==="array"){let l=n.options[e];Array.isArray(l)?l.push(...a):n.options[e]=a}else n.options[e]=a}else s.strict?n.errors.push(`Unknown option: --${e}`):s.allowUnknown!==!1&&(n.options[e]=Qi(ln(t)));return r}function dv(e,t=!1){let r=new Map,n=Object.entries(e).sort(([s],[i])=>s.localeCompare(i)),o=new Set;for(let[,s]of n)s.short&&o.add(s.short);for(let[s,i]of n){let a=i.short??"";t&&!a&&(a=cv(s,o),a&&o.add(a));let l={name:s,short:a,aliases:i.aliases??[],type:i.type??"string",description:i.description??"",required:i.required??!1,hidden:i.hidden??!1,negatable:i.negatable??!0,default:i.default,choices:i.choices,env:i.env,validate:i.validate};r.set(s,l);for(let d of l.aliases)r.set(d,l)}return r}function cv(e,t){for(let r of e){if(!/[a-zA-Z]/.test(r))continue;let n=r.toLowerCase();if(!t.has(n))return n;let o=r.toUpperCase();if(!t.has(o))return o}return""}function hd(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function uv(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let o=process.env[n.env];e.options[n.name]=n.type?Ln(o,n.type):o}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function pv(e,t,r){if(t.options)for(let[n,o]of Object.entries(t.options))o.required&&e.options[n]===void 0&&e.errors.push(`Missing required option: --${n}`);for(let n of r)n.required&&e.positional[n.name]===void 0&&e.errors.push(`Missing required argument: <${n.name}>`)}function fv(e,t,r){for(let n of r.values()){let o=e.options[n.name];if(n.validate&&o!==void 0){let s=n.validate(o);s!==!0&&e.errors.push(s)}}for(let n of t.positional??[]){let o=e.positional[n.name];if(n.validate&&o!==void 0){let s=n.validate(o);s!==!0&&e.errors.push(s)}}}function gv(e){return/^-\d+(\.\d+)?$/.test(e)}var md=class extends Error{flag;known;constructor(t,r){super(`unknown flag '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownFlagError",this.flag=t,this.known=r}};function hv(e){let t={};for(let[r,n]of Object.entries(e))t[r]={type:n.kind==="boolean"?"boolean":"string",...r.length===1?{short:r}:{},...n.aliases===void 0?{}:{aliases:n.aliases}};return t}function mv(e,t){let r=new Map;for(let[o,s]of Object.entries(t))if(!(s.kind!=="value"||s.type!=="array")){r.set(o,o);for(let i of s.aliases??[])r.set(i,o)}let n=new Map;for(let o=0;o<e.length;o+=1){let s=e[o];if(s==="--")break;let i=s.match(/^--([^=]+)(?:=(.*))?$/)??s.match(/^-([^=])(?:=(.*))?$/);if(i===null)continue;let a=r.get(i[1]);if(a===void 0)continue;let l=i[2];if(l===void 0&&ks(e[o+1])&&(l=e[o+1],o+=1),l===void 0)continue;let d=n.get(a)??[];d.push(l),n.set(a,d)}return n}function dn(e,t,r={}){let o=kg({options:hv(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=mv(e,t),a=o.errors.find(l=>/^Option --?\S+ requires a value$/.test(l));if(a!==void 0)throw new Error(a.replace(/^Option /,""));if(o.errors.length>0)throw new Error(o.errors[0]);if(r.unknownFlags==="error"){let l=new Set(Object.keys(t));for(let d of Object.keys(o.options))if(!l.has(d))throw new md(d.length===1?`-${d}`:`--${d}`,Object.keys(t).map(c=>c.length===1?`-${c}`:`--${c}`))}for(let[l,d]of Object.entries(t)){let c=o.options[l];c!==void 0&&(d.kind==="boolean"?s[l]=c:d.type==="array"?s[l]=(i.get(l)??[]).map(u=>d.coerce(u)):s[l]=d.coerce(String(c)))}return{values:s,positionals:o.rest}}var bd=class extends Error{token;known;constructor(t,r){super(`unknown command '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownCommandError",this.token=t,this.known=r}};function wg(e,t){let[r,...n]=e;if(r!==void 0){for(let[s,i]of Object.entries(t.commands))if(r===s||(i.aliases??[]).includes(r))return{command:s,args:n};if(t.errorOnUnknownCommand&&!r.startsWith("-"))throw new bd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as Tv,mkdirSync as Pv,readFileSync as Cg,statSync as Av}from"node:fs";import{dirname as Og,join as Cv}from"node:path";var Rg="RED_WORKER_SCOPE",_g="RED_WORKER_MEMORY_CEILING",xg="RED_WORKER_SCOPE_DEGRADATION",kd={scope:null,memory_ceiling:null,scope_degradation:null};function wd(e){return{scope:yd(e[Rg]),memory_ceiling:yd(e[_g]),scope_degradation:yd(e[xg])}}function ws(e){let t={};return e.scope!=null&&e.scope!==""&&(t[Rg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(t[_g]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(t[xg]=e.scope_degradation),t}function yd(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as kv,readdirSync as wv,readFileSync as Tg,rmSync as Rv,writeFileSync as _v}from"node:fs";import{basename as xv,join as So}from"node:path";import{isAbsolute as o2,join as Zi,resolve as s2}from"node:path";function bv(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var Eg="deaths",vg="deaths.toonl";function ea(e){return Zi(bv(e),Eg)}function Rs(e){return Zi(ea(e),vg)}var _s="live",Sg="attributions.toonl";function ta(e){return Zi(ea(e),_s)}function Rd(e){return Zi(ea(e),Sg)}var xd=So("sys","kernel","random","boot_id"),Pg=1;function Ed(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:Pg,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Ag(So(r,xd)),cgroup:Ev(r,n),last_phase:e.last_phase}}function Ag(e){try{let t=Tg(e,"utf8").trim();return t===""?null:t}catch{return null}}function Ev(e,t){let r=Ag(So(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
42
+ `),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function vd(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Sd(e,t){let r=So(e,vd(t));try{return kv(e,{recursive:!0,mode:448}),_v(r,Lt({trailer:!1}).push(Sv(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function jn(e,t){try{Rv(So(e,vd(t)),{force:!0})}catch{}}function Td(e,t){let r;try{r=wv(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=So(e,o);try{let a=Sr(Tg(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(vv(a))}catch(i){t?.(xv(s),i instanceof Error?i.message:String(i))}}return n}function vv(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:_d(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:_d(e.pid),ppid:_d(e.ppid),boot_id:e.boot_id==null?null:String(e.boot_id),cgroup:e.cgroup==null?null:String(e.cgroup),last_phase:String(e.last_phase)}}function _d(e){return typeof e=="number"?e:Number(e)}function Sv(e){return{...e}}var Dv=1,Ov=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function Fv(e){return typeof e=="string"&&Ov.has(e)}var Iv="startup";function Mv(e,t){return{...e.scope??kd,version:Dv,ts:e.ts,kind:e.kind,id:e.id,pid:e.pid,exit_path:e.exit_path,signal:e.signal??null,exit_code:e.exit_code??null,last_phase:e.last_phase,detail:e.detail??null,...t}}function Lv(e){let t=e.resourceUsage();return{uptime_s:Math.round(e.uptime()),rss_kb:Math.round(e.memoryUsage().rss/1024),max_rss_kb:t.maxRSS,user_cpu_us:t.userCPUTime,system_cpu_us:t.systemCPUTime,minor_page_faults:t.minorPageFault,major_page_faults:t.majorPageFault,voluntary_ctx_switches:t.voluntaryContextSwitches,involuntary_ctx_switches:t.involuntaryContextSwitches}}var Ad={mkdir(e){Pv(e,{recursive:!0,mode:448})},endsClean(e){let t;try{t=Av(e).size}catch{return!0}if(t===0)return!0;try{return Cg(e,"utf8").endsWith(`
43
+ `)}catch{return!0}},append(e,t){Tv(e,t,{encoding:"utf8",mode:384})},read(e){return Cg(e,"utf8")}};function jv(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function Bv(e,t,r=Ad){let n=Lt({trailer:!1}).push(jv(t));return r.mkdir(Og(e)),r.endsClean(e)||r.append(e,`
44
+ `),r.append(e,n),t}function Fg(e){let t=e.endsWith(`
45
45
  `)?e:e.slice(0,e.lastIndexOf(`
46
- `)+1);return t===""?[]:Sr(t).map(Iv)}function Iv(e){let t=e.exit_path;if(!Pv(t))throw new Error(`death record has unknown exit_path ${JSON.stringify(t)}`);let r=e.kind;if(r!=="launcher"&&r!=="worker"&&r!=="daemon")throw new Error(`death record has unknown kind ${JSON.stringify(r)}`);return{version:Kt(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:Kt(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:Kt(e.exit_code),last_phase:String(e.last_phase),detail:e.detail==null?null:String(e.detail),scope:e.scope==null?null:String(e.scope),memory_ceiling:e.memory_ceiling==null?null:String(e.memory_ceiling),scope_degradation:e.scope_degradation==null?null:String(e.scope_degradation),uptime_s:Kt(e.uptime_s),rss_kb:Kt(e.rss_kb),max_rss_kb:Kt(e.max_rss_kb),user_cpu_us:Kt(e.user_cpu_us),system_cpu_us:Kt(e.system_cpu_us),minor_page_faults:Kt(e.minor_page_faults),major_page_faults:Kt(e.major_page_faults),voluntary_ctx_switches:Kt(e.voluntary_ctx_switches),involuntary_ctx_switches:Kt(e.involuntary_ctx_switches)}}function Kt(e){return typeof e=="number"?e:Number(e)}function Og(e,t=Ad){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return Dg(r)}var Mv=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],Pd=null;function Fg(e){let t=e.host??process,r=e.io??Ad,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??wd(process.env),i=e.phase??Av,a=null,l=e.presenceDir===void 0?vv(Cg(e.lanePath),xs):e.presenceDir,d=null,c=()=>{l!==null&&(d=Ed({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Sd(l,d))},u=h=>{if(!a){try{a=Fv(e.lanePath,Cv({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...h},Dv(t)),r)}catch{}l!==null&&d!==null&&Bn(l,d)}},p={signal(h){u({exit_path:"signal",signal:h})},exit(h){u({exit_path:"exit",exit_code:h})},uncaughtException(h){u({exit_path:"uncaught-exception",detail:Ag(h)})},unhandledRejection(h){u({exit_path:"unhandled-rejection",detail:Ag(h)})}},f=[...(e.signals??Mv).map(h=>{let R=()=>{if(p.signal(h),!(t.listenerCount?.(h)!==1||!t.kill)){t.off(h,R);try{t.kill(o,h)}catch{}}};return[h,R]}),["uncaughtException",(...h)=>p.uncaughtException(h[0])],["unhandledRejection",(...h)=>p.unhandledRejection(h[0])],["exit",(...h)=>p.exit(typeof h[0]=="number"?h[0]:null)]];for(let[h,R]of f)t.on(h,R);let y={lanePath:e.lanePath,phase(h){i=h,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[h,R]of f)t.off(h,R);l!==null&&d!==null&&Bn(l,d),Pd===y&&(Pd=null)},handlers:p};return e.setActive!==!1&&(Pd=y),c(),y}function Ag(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as Lv,readdirSync as jv,readFileSync as na,statSync as Bv,writeFileSync as $v}from"node:fs";import{join as jg}from"node:path";var Nv=1,Gv=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],Wv=512*1024;function Hv(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??Gv,n=[],o=jg(t,xd),s=null;try{let l=na(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:Cd(l),detail:null})}let i=new Set;try{for(let l of jv(t))/^\d+$/.test(l)&&i.add(Number(l));n.push({source:t,result:"read",detail:`${i.size} live pids`})}catch(l){n.push({source:t,result:Cd(l),detail:null})}let a=[];for(let l of r)try{let c=Uv(l,e.tailBytes??Wv).split(`
47
- `).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:Cd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Cd(e){return e.code==="ENOENT"?"absent":"unreadable"}function Uv(e,t){let r=Bv(e).size,n=na(e,"utf8");return r<=t?n:n.slice(n.length-t)}var qv=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,Kv=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,Vv=/Killed (\/\S*) due to memory pressure/,zv=/\bopid=(\d+)\b/,Ig=/\bsig=(\d+)\b/,Jv=/\buid=(\d+)\b/,Yv=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,Qv={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function Xv(e,t,r,n){let o=e.boot_id!==null&&t.boot_id!==null&&e.boot_id!==t.boot_id,s=[...t.probes.map(u=>`${u.source}: ${u.result}${u.detail?` (${u.detail})`:""}`),`boot id: anchored under ${e.boot_id??"unknown"}, host now ${t.boot_id??"unknown"} (${o?"changed":"same"})`,`parent account: ppid ${e.ppid}`,`cgroup: ${e.cgroup??"unknown"}`],i=(u,p,g,f)=>({version:Nv,ts:n,kind:e.kind,id:e.id,pid:e.pid,last_seen:e.ts,last_phase:e.last_phase,sender_class:u,confidence:p,signal:g,host_boot_changed:o,evidence:f,checked:s}),a=o?["the host rebooted since the anchor, so this line may name a reused pid"]:[],l=t.journal.find(u=>Mg(u,e.pid,qv)||Mg(u,e.pid,Kv));if(l!==void 0)return i("oomd",o?"medium":"high","SIGKILL",[l,...a]);if(e.cgroup!==null)for(let u of t.journal){let p=Vv.exec(u)?.[1];if(p!==void 0){if(p===e.cgroup)return i("oomd",o?"medium":"high","SIGKILL",[u,...a]);if(e.cgroup.startsWith(`${p}/`))return i("oomd","medium","SIGKILL",[u,`the killed scope ${p} is an ancestor of this process's ${e.cgroup}`,...a])}}let d=t.journal.find(u=>Number(zv.exec(u)?.[1])===e.pid&&Ig.test(u));if(d!==void 0){let u=Number(Ig.exec(d)?.[1]),p=Jv.exec(d)?.[1];return i("user-signal",o?"medium":"high",Qv[u]??null,[d,...p===void 0?[]:[`sent by uid ${p}`],...a])}let c=r.find(u=>u.pid===e.ppid);if(c!==void 0&&!t.live_pids.has(e.ppid))return i("parent-death","medium",null,[`parent pid ${e.ppid} (${c.kind} ${c.id}) recorded its own death at ${c.ts} via ${c.exit_path}${c.signal?` ${c.signal}`:""}`]);if(o){let u=t.journal.find(p=>Yv.test(p));return u!==void 0?i("teardown","high",null,[`host boot id changed from ${e.boot_id} to ${t.boot_id}`,u]):i("teardown","medium",null,[`host boot id changed from ${e.boot_id} to ${t.boot_id}`,"no shutdown record on any journal read: the host stopped without announcing it (a freeze or a power loss, not an orderly teardown)"])}return i("unknown","none",null,[])}function Mg(e,t,r){return Number(r.exec(e)?.[1])===t}var Zv=" | ";function Lg(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(Zv)}function eS(e){return{version:e.version,ts:e.ts,kind:e.kind,id:e.id,pid:e.pid,last_seen:e.last_seen,last_phase:e.last_phase,sender_class:e.sender_class,confidence:e.confidence,signal:e.signal,host_boot_changed:e.host_boot_changed,evidence:Lg(e.evidence),checked:Lg(e.checked)}}function tS(e){let t=Lt({trailer:!1});return e.map(r=>t.push(eS(r))).join("")}function Bg(e){let t=ra(e.stateRoot),r=Rd(e.stateRoot),n=e.now??(()=>new Date().toISOString()),o=e.evidence??Hv({procRoot:e.procRoot,journalPaths:e.journalPaths}),s=[],i=Td(t,u=>s.push(u)),a=Og(_s(e.stateRoot)),l=[],d=[],c=[];for(let u of i){if(o.live_pids.has(u.pid)){d.push(u);continue}if(a.find(g=>g.pid===u.pid&&g.id===u.id)!==void 0){c.push(u),Bn(t,u);continue}l.push(Xv(u,o,a,n())),Bn(t,u)}return l.length>0&&rS(r,l),{attributions:l,alive:d,self_recorded:c,skipped:s,laneText:()=>{try{return na(r,"utf8")}catch{return""}}}}function $g(e){let t=e.skipped.length===0?"":` | unreadable anchors=${e.skipped.join(",")}`;if(e.attributions.length===0)return`death reaper: no un-recorded deaths (live=${e.alive.length} self-recorded=${e.self_recorded.length})${t}`;let r=e.attributions.map(n=>` | ${n.kind} ${n.id} pid=${n.pid} ${n.sender_class}/${n.confidence} phase=${n.last_phase}`+(n.evidence[0]?` evidence="${n.evidence[0]}"`:"")).join("");return`death reaper: attributed ${e.attributions.length}${r}${t}`}function rS(e,t){try{Lv(jg(e,".."),{recursive:!0,mode:448});let r=nS(e),n=r===""||r.endsWith(`
46
+ `)+1);return t===""?[]:Sr(t).map($v)}function $v(e){let t=e.exit_path;if(!Fv(t))throw new Error(`death record has unknown exit_path ${JSON.stringify(t)}`);let r=e.kind;if(r!=="launcher"&&r!=="worker"&&r!=="daemon")throw new Error(`death record has unknown kind ${JSON.stringify(r)}`);return{version:Kt(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:Kt(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:Kt(e.exit_code),last_phase:String(e.last_phase),detail:e.detail==null?null:String(e.detail),scope:e.scope==null?null:String(e.scope),memory_ceiling:e.memory_ceiling==null?null:String(e.memory_ceiling),scope_degradation:e.scope_degradation==null?null:String(e.scope_degradation),uptime_s:Kt(e.uptime_s),rss_kb:Kt(e.rss_kb),max_rss_kb:Kt(e.max_rss_kb),user_cpu_us:Kt(e.user_cpu_us),system_cpu_us:Kt(e.system_cpu_us),minor_page_faults:Kt(e.minor_page_faults),major_page_faults:Kt(e.major_page_faults),voluntary_ctx_switches:Kt(e.voluntary_ctx_switches),involuntary_ctx_switches:Kt(e.involuntary_ctx_switches)}}function Kt(e){return typeof e=="number"?e:Number(e)}function Ig(e,t=Ad){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return Fg(r)}var Nv=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],Pd=null;function Mg(e){let t=e.host??process,r=e.io??Ad,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??wd(process.env),i=e.phase??Iv,a=null,l=e.presenceDir===void 0?Cv(Og(e.lanePath),_s):e.presenceDir,d=null,c=()=>{l!==null&&(d=Ed({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Sd(l,d))},u=h=>{if(!a){try{a=Bv(e.lanePath,Mv({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...h},Lv(t)),r)}catch{}l!==null&&d!==null&&jn(l,d)}},p={signal(h){u({exit_path:"signal",signal:h})},exit(h){u({exit_path:"exit",exit_code:h})},uncaughtException(h){u({exit_path:"uncaught-exception",detail:Dg(h)})},unhandledRejection(h){u({exit_path:"unhandled-rejection",detail:Dg(h)})}},f=[...(e.signals??Nv).map(h=>{let R=()=>{if(p.signal(h),!(t.listenerCount?.(h)!==1||!t.kill)){t.off(h,R);try{t.kill(o,h)}catch{}}};return[h,R]}),["uncaughtException",(...h)=>p.uncaughtException(h[0])],["unhandledRejection",(...h)=>p.unhandledRejection(h[0])],["exit",(...h)=>p.exit(typeof h[0]=="number"?h[0]:null)]];for(let[h,R]of f)t.on(h,R);let y={lanePath:e.lanePath,phase(h){i=h,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[h,R]of f)t.off(h,R);l!==null&&d!==null&&jn(l,d),Pd===y&&(Pd=null)},handlers:p};return e.setActive!==!1&&(Pd=y),c(),y}function Dg(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as Gv,readdirSync as Wv,readFileSync as ra,statSync as Hv,writeFileSync as Uv}from"node:fs";import{join as $g}from"node:path";var qv=1,Kv=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],Vv=512*1024;function zv(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??Kv,n=[],o=$g(t,xd),s=null;try{let l=ra(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:Cd(l),detail:null})}let i=new Set;try{for(let l of Wv(t))/^\d+$/.test(l)&&i.add(Number(l));n.push({source:t,result:"read",detail:`${i.size} live pids`})}catch(l){n.push({source:t,result:Cd(l),detail:null})}let a=[];for(let l of r)try{let c=Jv(l,e.tailBytes??Vv).split(`
47
+ `).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:Cd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Cd(e){return e.code==="ENOENT"?"absent":"unreadable"}function Jv(e,t){let r=Hv(e).size,n=ra(e,"utf8");return r<=t?n:n.slice(n.length-t)}var Yv=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,Qv=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,Xv=/Killed (\/\S*) due to memory pressure/,Zv=/\bopid=(\d+)\b/,Lg=/\bsig=(\d+)\b/,eS=/\buid=(\d+)\b/,tS=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,rS={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function nS(e,t,r,n){let o=e.boot_id!==null&&t.boot_id!==null&&e.boot_id!==t.boot_id,s=[...t.probes.map(u=>`${u.source}: ${u.result}${u.detail?` (${u.detail})`:""}`),`boot id: anchored under ${e.boot_id??"unknown"}, host now ${t.boot_id??"unknown"} (${o?"changed":"same"})`,`parent account: ppid ${e.ppid}`,`cgroup: ${e.cgroup??"unknown"}`],i=(u,p,g,f)=>({version:qv,ts:n,kind:e.kind,id:e.id,pid:e.pid,last_seen:e.ts,last_phase:e.last_phase,sender_class:u,confidence:p,signal:g,host_boot_changed:o,evidence:f,checked:s}),a=o?["the host rebooted since the anchor, so this line may name a reused pid"]:[],l=t.journal.find(u=>jg(u,e.pid,Yv)||jg(u,e.pid,Qv));if(l!==void 0)return i("oomd",o?"medium":"high","SIGKILL",[l,...a]);if(e.cgroup!==null)for(let u of t.journal){let p=Xv.exec(u)?.[1];if(p!==void 0){if(p===e.cgroup)return i("oomd",o?"medium":"high","SIGKILL",[u,...a]);if(e.cgroup.startsWith(`${p}/`))return i("oomd","medium","SIGKILL",[u,`the killed scope ${p} is an ancestor of this process's ${e.cgroup}`,...a])}}let d=t.journal.find(u=>Number(Zv.exec(u)?.[1])===e.pid&&Lg.test(u));if(d!==void 0){let u=Number(Lg.exec(d)?.[1]),p=eS.exec(d)?.[1];return i("user-signal",o?"medium":"high",rS[u]??null,[d,...p===void 0?[]:[`sent by uid ${p}`],...a])}let c=r.find(u=>u.pid===e.ppid);if(c!==void 0&&!t.live_pids.has(e.ppid))return i("parent-death","medium",null,[`parent pid ${e.ppid} (${c.kind} ${c.id}) recorded its own death at ${c.ts} via ${c.exit_path}${c.signal?` ${c.signal}`:""}`]);if(o){let u=t.journal.find(p=>tS.test(p));return u!==void 0?i("teardown","high",null,[`host boot id changed from ${e.boot_id} to ${t.boot_id}`,u]):i("teardown","medium",null,[`host boot id changed from ${e.boot_id} to ${t.boot_id}`,"no shutdown record on any journal read: the host stopped without announcing it (a freeze or a power loss, not an orderly teardown)"])}return i("unknown","none",null,[])}function jg(e,t,r){return Number(r.exec(e)?.[1])===t}var oS=" | ";function Bg(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(oS)}function sS(e){return{version:e.version,ts:e.ts,kind:e.kind,id:e.id,pid:e.pid,last_seen:e.last_seen,last_phase:e.last_phase,sender_class:e.sender_class,confidence:e.confidence,signal:e.signal,host_boot_changed:e.host_boot_changed,evidence:Bg(e.evidence),checked:Bg(e.checked)}}function iS(e){let t=Lt({trailer:!1});return e.map(r=>t.push(sS(r))).join("")}function Ng(e){let t=ta(e.stateRoot),r=Rd(e.stateRoot),n=e.now??(()=>new Date().toISOString()),o=e.evidence??zv({procRoot:e.procRoot,journalPaths:e.journalPaths}),s=[],i=Td(t,u=>s.push(u)),a=Ig(Rs(e.stateRoot)),l=[],d=[],c=[];for(let u of i){if(o.live_pids.has(u.pid)){d.push(u);continue}if(a.find(g=>g.pid===u.pid&&g.id===u.id)!==void 0){c.push(u),jn(t,u);continue}l.push(nS(u,o,a,n())),jn(t,u)}return l.length>0&&aS(r,l),{attributions:l,alive:d,self_recorded:c,skipped:s,laneText:()=>{try{return ra(r,"utf8")}catch{return""}}}}function Gg(e){let t=e.skipped.length===0?"":` | unreadable anchors=${e.skipped.join(",")}`;if(e.attributions.length===0)return`death reaper: no un-recorded deaths (live=${e.alive.length} self-recorded=${e.self_recorded.length})${t}`;let r=e.attributions.map(n=>` | ${n.kind} ${n.id} pid=${n.pid} ${n.sender_class}/${n.confidence} phase=${n.last_phase}`+(n.evidence[0]?` evidence="${n.evidence[0]}"`:"")).join("");return`death reaper: attributed ${e.attributions.length}${r}${t}`}function aS(e,t){try{Gv($g(e,".."),{recursive:!0,mode:448});let r=lS(e),n=r===""||r.endsWith(`
48
48
  `)?"":`
49
- `;$v(e,`${r}${n}${tS(t)}`,{encoding:"utf8",mode:384})}catch{}}function nS(e){try{return na(e,"utf8")}catch{return""}}import{join as oS}from"node:path";var sS=[".red","redskilled"],Vr=448;function sr(e){return oS(e,...sS)}import{randomUUID as $0}from"node:crypto";import{spawn as F1}from"node:child_process";import{mkdir as I1}from"node:fs/promises";import{dirname as M1}from"node:path";import{createHash as lS}from"node:crypto";import{constants as Md}from"node:fs";import{mkdir as zg,open as dS,readFile as cS,rm as Jg,stat as uS}from"node:fs/promises";import{createConnection as pS}from"node:net";import{tmpdir as fS}from"node:os";import{dirname as Yg,join as Es}from"node:path";var iS="toon";function Wg(e){return e.trimStart().startsWith("{")?"json":"toon"}function Od(e){let t=0;for(;e[t]===`
50
- `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Wg(r);if(n==="json"){let s=r.indexOf(`
49
+ `;Uv(e,`${r}${n}${iS(t)}`,{encoding:"utf8",mode:384})}catch{}}function lS(e){try{return ra(e,"utf8")}catch{return""}}import{join as dS}from"node:path";var cS=[".red","redskilled"],Vr=448;function sr(e){return dS(e,...cS)}import{randomUUID as U0}from"node:crypto";import{spawn as F1}from"node:child_process";import{mkdir as I1}from"node:fs/promises";import{dirname as M1}from"node:path";import{createHash as fS}from"node:crypto";import{constants as Md}from"node:fs";import{mkdir as Yg,open as gS,readFile as hS,rm as Qg,stat as mS}from"node:fs/promises";import{createConnection as bS}from"node:net";import{tmpdir as yS}from"node:os";import{dirname as Xg,join as xs}from"node:path";var uS="toon";function Ug(e){return e.trimStart().startsWith("{")?"json":"toon"}function Od(e){let t=0;for(;e[t]===`
50
+ `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Ug(r);if(n==="json"){let s=r.indexOf(`
51
51
  `);return s<0?null:{frame:r.slice(0,s),dialect:n,rest:r.slice(s+1)}}let o=r.indexOf(`
52
52
 
53
- `);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function Fd(e){let t=Wg(e)==="json"?Dd:Ng,r=t===Dd?Ng:Dd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Dd(e){return JSON.parse(e)}function Ng(e){return Dt(e)}function Id(e,t){if(t==="toon"){let r=aS(e);if(r!==null)return r.endsWith(`
53
+ `);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function Fd(e){let t=Ug(e)==="json"?Dd:Wg,r=t===Dd?Wg:Dd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Dd(e){return JSON.parse(e)}function Wg(e){return Dt(e)}function Id(e,t){if(t==="toon"){let r=pS(e);if(r!==null)return r.endsWith(`
54
54
  `)?`${r}
55
55
  `:`${r}
56
56
 
57
57
  `}return`${JSON.stringify(e)}
58
- `}function aS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=ot(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function Hg(e,t){return!Gg(e)||!Gg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Gg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Ug=new Set;function qg(e){return Ug.has(e)?"json":iS}function Kg(e){Ug.add(e)}var gS=108;async function oa(e,t,r="resident server"){let n=e.wire,o=n??qg(e.socketPath),s=await Vg(e,t,r,o);return n||o==="json"||!Hg(t,s)?s:(Kg(e.socketPath),await Vg(e,t,r,"json"))}async function Vg(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=pS(e.socketPath),l=!1,d="",c=setTimeout(()=>{u(()=>i(new Error(`${r} timed out`))),a.destroy()},o);function u(p){l||(l=!0,clearTimeout(c),p())}a.on("connect",()=>{a.write(Id(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Od(d);g&&(d=g.rest,u(()=>{try{s(Fd(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",p=>u(()=>i(p))),a.on("close",()=>{l||u(()=>i(new Error(`${r} closed without response`)))})})}function Qg(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Od(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Id(a,s.dialect))}catch{}};(async()=>{let a;try{a=Fd(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function hS(e){await zg(Yg(e),{recursive:!0,mode:448});try{return await dS(e,Md.O_CREAT|Md.O_EXCL|Md.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var mS=6e4,Xg="resident-spawn-lock v1",bS=3;async function Zg(e,t={}){let r=t.maxAgeMs??mS,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Qe;await zg(Yg(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await hS(e);if(l)return await l.writeFile(`${Xg} pid=${o} taken=${new Date(n()).toISOString()}
59
- `).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await kS(e),c=await RS(e,d,n());if(a>=bS||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=yS(d,c,r,s);if(u==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let p={lockPath:e,reason:u,holder:d,ageMs:c};await Jg(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function eh(e){await e.handle.close().catch(()=>{}),await Jg(e.lockPath,{force:!0})}function yS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function th(e){let t=e.ageMs==null?"of unknown age":`taken ${Math.round(e.ageMs/1e3)}s ago`,r=e.holder==null?"an owner it does not name":`pid ${e.holder.pid} (at ${e.holder.takenAt})`;return`no spawn was attempted: the spawn lock ${JSON.stringify(e.lockPath)} is held by ${r}, ${t}. If that process is gone, remove the file to clear it`}async function kS(e){try{return wS(await cS(e,"utf8"))}catch{return null}}function wS(e){let t=e.split(`
60
- `,1)[0]?.trim()??"";if(!t.startsWith(Xg))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function RS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await uS(e)).mtimeMs)}catch{return null}}function Qe(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var _S="/tmp";function sa(e){let t=e.env??process.env,r=lS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Es(l,e.socketFileName).length<gS,o=t.XDG_RUNTIME_DIR;if(o){let l=Es(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Es(`red-skills-${s}`,r),a=Es(fS(),i);return n(a)||process.platform==="win32"?a:Es(_S,i)}zr();import{homedir as qS}from"node:os";import{join as Vd}from"node:path";import{spawnSync as KS}from"node:child_process";import{createHash as VS}from"node:crypto";import{existsSync as zS,readdirSync as JS}from"node:fs";import{mkdir as dh,readFile as YS,rename as QS,writeFile as XS}from"node:fs/promises";import{dirname as ZS}from"node:path";var Nn="@reddb-io/red-skills",FS="https://registry.npmjs.org",IS="canary",$n=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},MS=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Wd(e){return typeof e=="string"&&MS.test(e.trim())}function sh(e){return`${e}-.bundle.min.mjs`}var LS=".unversioned";function jS(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Wd(t))throw new $n("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${sh(e)}, a name no resolver prefers and one whose mere existence satisfies the cache-first test forever (#3153)`);return`${e}-${t.trim()}.bundle.min.mjs`}function da(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return Ts(n,jS(t,r,o))}function BS(e){return e==="dev"?["rsp","redskilled"]:[]}function $S(e){return`${e}.bundle.min.mjs`}function NS(e){return Ts("dist",$S(e))}function GS(e,t="stable"){return`${Nn}@${t==="canary"?IS:e}`}function Hd(e=Nn){return`${FS}/${e.replace("/","%2F")}`}async function Ud(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=da({plugin:r,version:n,cacheDir:o,channel:s}),a=BS(r),l=a.map(p=>da({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await HS(e,l))return i;let d=GS(n,s),c=Ts(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw lh(p,d)}for(let p of[r,...a]){let g=NS(p),f=Ts(u,g);if(!await e.exists(f))throw new $n("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:da({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await WS(e,o,[r,...a]),i}async function WS(e,t,r){if(e.rename)for(let n of r){let o=Ts(t,sh(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${LS}`)}catch{}}}async function HS(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function ih(e,t,r=Nn){let n;try{n=await e.fetchText(Hd(r))}catch(s){throw lh(s,r)}let o=qd(n);return{sameMajor:US(o,t),newest:Kd(o)}}function qd(e){let t;try{t=JSON.parse(e)}catch{return[]}if(typeof t!="object"||t===null)return[];let r=t.versions;return typeof r!="object"||r===null?[]:Object.keys(r)}function US(e,t){let r=Gd(t);if(r===null)return null;let n=null;for(let o of e)Gd(o)===r&&(n===null||ah(o,n)>0)&&(n=o);return n}function Kd(e){let t=null;for(let r of e){let n=String(r).trim();Gd(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||ah(n,t)>0)&&(t=n)}return t}function Gd(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function ah(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e.trim()),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t.trim());return!r||!n?0:Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function lh(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new $n("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new $n("package-missing",`npm could not resolve ${t}: ${r}`,e):new $n("network",`failed to resolve ${t}: ${r}`,e)}function Ts(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}zr();var ch={async materialize(e,t){await dh(t,{recursive:!0});let r=KS("npm",["install",e,"--prefix",t,"--no-save","--no-audit","--no-fund","--ignore-scripts","--loglevel=error"],{stdio:["ignore","ignore","pipe"],encoding:"utf8"});if(r.error)throw r.error;if(r.status!==0)throw new Error(`npm install ${e} -> ${r.status}: ${(r.stderr||"").trim()}`);return Vd(t,"node_modules",...Nn.split("/"))},async readFile(e){return new Uint8Array(await YS(e))},async writeFile(e,t){await dh(ZS(e),{recursive:!0}),await XS(e,t)},async exists(e){return zS(e)},sha256(e){return VS("sha256").update(e).digest("hex")},async fetchText(e){let t=await fetch(e,{redirect:"follow"});if(!t.ok)throw new Error(`GET ${e} -> ${t.status}`);return await t.text()},async rename(e,t){await QS(e,t)}},eT="redskilled";function tT(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vd(e.HOME||qS(),".cache");return Vd(t,"red-skills","bundles")}var rT=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function nT(e,t){if(Wd(e.version))return e.version.trim();let r=e.listCacheDir??iT,n=oT(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??ch).fetchText(Hd());return Kd(qd(s))}catch{return null}}function oT(e,t){let r=null;for(let n of e){let o=rT.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||sT(s,r)>0)&&(r=s)}return r}function sT(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t);return Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function iT(e){try{return JS(e)}catch{return[]}}async function aT(e={},t={},r={}){let n=un(e,t);if(Pr(n))return n;let o=r.env??t.env??process.env,s=tT(o),i=await nT(r,s);if(i===null)return n;try{await Ud(r.bundleIO??ch,{plugin:eT,version:i,cacheDir:s})}catch{return n}return un(e,t)}async function uh(e={},t={},r={}){let n=await aT(e,t,r);if(Pr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(zr(),oh));throw new o(n)}var Ao=3e5,ph=1e4,fh=6e4,gh=15e3,zd=3e4,hh=zd*2,mh=6e4,Ps=16;function bh(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill")return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,s=t.startedAt==null?null:Date.parse(t.startedAt),i=Date.parse(e.ts),a=s!=null&&Number.isFinite(s)&&Number.isFinite(i)?Math.max(0,i-s)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":"unknown",confidence:r||n?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n?[o]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${o}`],project_label:e.project_label,...a===void 0?{}:{uptime_s:a},detail:t.refusal??e.detail}}function Jd(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var yh="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as D0}from"node:crypto";import{mkdir as E1,rm as v1}from"node:fs/promises";import{dirname as S1}from"node:path";import{randomUUID as kh}from"node:crypto";import{rm as lT}from"node:fs/promises";import{connect as dT,createServer as cT}from"node:net";var Ar=class extends Error{constructor(r,n){super(`a redskilled daemon already owns ${JSON.stringify(r)}`);this.socketPath=r;this.lease=n;this.name="RedskilledAlreadyRunningError"}};async function Yd(e,t=250){return await new Promise(r=>{let n=dT(e),o=!1,s=a=>{o||(o=!0,clearTimeout(i),n.destroy(),r(a))},i=setTimeout(()=>s("unknown"),t);i.unref?.(),n.once("connect",()=>s("owned")),n.once("error",a=>{s(a.code==="ECONNREFUSED"||a.code==="ENOENT"?"unowned":"unknown")})})}async function wh(e,t){for(let r=0;r<2;r++){let n=cT();try{return await new Promise((o,s)=>{n.once("error",s),n.listen(e,()=>{n.off("error",s),o()})}),n}catch(o){if(n.close(),o.code!=="EADDRINUSE")throw o;if(await Yd(e)!=="unowned")throw new Ar(e);if(await t?.())throw new Ar(e);await lT(e,{force:!0})}}throw new Ar(e)}async function zt(e,t=250){try{return(await oa({socketPath:e,timeoutMs:t},{id:kh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Rh(e,t){Qg(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??kh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Ah(e){return{generated_at:e.now,hour:xh("hour",36e5,e),day:xh("day",864e5,e),history_48h:uT(e)}}function uT(e){let t=pn(e.now),r=t==null?null:Math.floor(t/36e5)*36e5,n=r==null?null:r-47*36e5,o=Array.from({length:48},(d,c)=>n==null?null:n+c*36e5),s=pT(e.observations,o,t),i=o.map((d,c)=>({hour:d==null?e.now:new Date(d).toISOString(),value:s[c]??null,absent_reason:s[c]==null?"no token samples span this hour":null})),a=e.outcomes.map(d=>pn(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:_h(i),tickets_per_hour:_h(l)}}function pT(e,t,r){if(r==null||t.some(i=>i==null))return t.map(()=>null);let n=new Map;for(let i of e){let a=pn(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],y=Math.min(f+36e5,r),h=Math.max(0,Math.min(c.at,y)-Math.max(d.at,f));h!==0&&(a[g].tokens+=p*(h/u),a[g].duration+=h)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function _h(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Gn(e,t,r){let n=pn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=pn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function xh(e,t,r){let n=pn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:pn(u.observed_at)})).filter(u=>u.at!=null&&Sh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>pn(u.ts)).filter(u=>u!=null&&Sh(u,o,n)),l=Eh(i,u=>u.tokens,"tokens",s),d=Eh(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:fT(a.length,t,s),runner_share:vh("runner",i,u=>u.runner,s),model_share:vh("model",i,u=>u.model,s),unavailable:c}}function Eh(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function fT(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function vh(e,t,r,n){let o=new Map;for(let d of t){let c=r(d.observation);c!=null?o.set(d.observation.worker_id,c):o.has(d.observation.worker_id)||o.set(d.observation.worker_id,null)}let s=new Map,i=0,a=0;for(let d of o.values()){if(d==null){a+=1;continue}i+=1,s.set(d,(s.get(d)??0)+1)}let l=[...s.entries()].map(([d,c])=>({key:d,worker_count:c,share:c/i})).sort((d,c)=>c.worker_count-d.worker_count||d.key.localeCompare(c.key));return{dimension:e,attributed_workers:i,unattributed_workers:a,shares:l,absent_reason:l.length>0?null:o.size===0?`no Worker was observed in the last ${n}`:`no Worker published a ${e} in the last ${n}`}}function Sh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function pn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ch(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Ph(t.hour)&&Ph(t.day)&&(t.history_48h===void 0||gT(t.history_48h))}function gT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Th(t.tokens_per_hour)&&Th(t.tickets_per_hour)}function Th(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function Ph(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&Qd(t.tokens_per_min)&&Qd(t.tools_per_min)&&Qd(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Qd(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.value===null||typeof t.value=="number")&&(t.absent_reason===null||typeof t.absent_reason=="string")&&Number.isInteger(t.samples)}function Dh(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Gn([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function Oh(e,t){return Gn(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as Mh,totalmem as mT}from"node:os";function As(e){if(e.applied_budget!=null)return e.applied_budget;let t=e.budget??{};return t.memory_max==null&&t.memory_high==null&&e.memory_ceiling!=null?{...t,memory_max:e.memory_ceiling}:t}function Fh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=As(d),u=!1;for(let[p,g]of[[c.memory_high,f=>r+=f],[c.memory_max,f=>n+=f]]){if(p==null)continue;let f=Co(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:hT(e.length,n,a,l)}}function hT(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function Co(e){let t=/^\s*(\d+(?:\.\d+)?)\s*([KMGT]?)(?:B)?\s*$/i.exec(e);if(!t)return null;let r={"":1,k:1024,m:1024**2,g:1024**3,t:1024**4}[t[2].toLowerCase()];return Math.round(Number(t[1])*r)}function Ih(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Number.isInteger(t.worker_count)&&typeof t.memory_high_bytes=="number"&&typeof t.memory_max_bytes=="number"&&typeof t.cpu_weight_total=="number"&&Array.isArray(t.unaccounted_workers)&&Array.isArray(t.unisolated_workers)}var Lh="REDSKILLED_MEMORY_CEILING",Zd="REDSKILLED_WORKER_CEILING",Nh="REDSKILLED_VALIDATION_CEILING",jh="REDSKILLED_INTERACTIVE_RESERVATION",Cs=1,Bh=.7,bT=2*1024**3,yT=2;function Gh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Co(t)}function ua(e){let t=0,r=[];for(let n of e){let o=Gh(n.budget);o===null?r.push(n.worker_id):o!==void 0&&(t+=o)}return{worker_count:e.length,memory_bytes:t,unaccounted_workers:r.sort()}}function Wh(e){let{ceiling:t}=e,r=ua(e.workers),n=Gh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??Cs),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function Hh(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=ua(e.workers),n=e.ceiling.memory_bytes-r.memory_bytes,o=e.ceiling.worker_count,s=o==null?n:Math.floor(e.ceiling.memory_bytes/o),i=Math.min(n,s);if(i<=0)return{memory_max:null,reason:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes is already fully committed to ${r.worker_count} Worker(s), so no positive per-Worker ceiling can be derived; the daemon's RSS sampling floor is the only remaining ceiling`};let a=o==null?`the headroom under this host's memory ceiling of ${e.ceiling.memory_bytes} bytes; this host declares no Worker slot count (${Zd} is unset), so this ceiling is a per-Worker wall and not memory the host sets aside \u2014 N Workers may carry N such walls, and the host ceiling is not enforced host-wide. Declare a slot count to make it divide into shares that sum to it`:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes shared across its ${o} Worker slot(s)`;return{memory_max:String(i),reason:`derived from ${a} (ceiling source: ${e.ceiling.source})`}}function pa(e=process.env,t=mT(),r={}){let n=Xd(r.flags?.memoryCeiling,e[Lh],r.config?.memoryCeiling),o=Xd(r.flags?.workerCeiling,e[Zd],r.config?.workerCeiling),s=Xd(r.flags?.validationCeiling,e[Nh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[jh]??"").trim(),d=Uh(a),c=l===""?Cs:RT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!kT(a)&&(ca(`redskilled: ${ec(o)} ${Zd}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=wT(i,t);if(p!==void 0)return $h({memory_bytes:p,worker_count:d,interactive_reservation:c??Cs,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Mh());ca(`redskilled: ${ec(n)} ${Lh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Bh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&ca(`redskilled: ${jh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Cs} Worker(s) instead.`),$h({memory_bytes:Math.floor(t*Bh),worker_count:d,interactive_reservation:c??Cs,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Mh())}function $h(e,t,r){if(t!==void 0){let i=Uh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};ca(`redskilled: ${ec(t)} ${Nh}=${JSON.stringify(t.value)} is not a positive integer; deriving the validation ceiling from host CPU, memory, and Worker capacity instead.`)}let n=Math.max(1,Math.floor(Math.max(1,r)/yT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/bT)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Xd(e,t,r){if(e?.trim())return{value:e.trim(),source:"flag"};if(t?.trim())return{value:t.trim(),source:"environment"};if(r?.trim())return{value:r.trim(),source:"home-config"}}function ec(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function kT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var ca=e=>process.stderr.write(`${e}
61
- `);function wT(e,t){let r=e.toLowerCase();if(["infinity","none","off","unbounded"].includes(r))return null;let n=/^(\d+(?:\.\d+)?)\s*%$/.exec(e);return n?Math.floor(t*(Number(n[1])/100)):Co(e)??void 0}function Uh(e){if(e===""||["infinity","none","off","unbounded"].includes(e.toLowerCase()))return null;let t=Number(e);return Number.isSafeInteger(t)&&t>0?t:null}function RT(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as _T,mkdir as xT,open as ET,readFile as vT,stat as ST,truncate as qh}from"node:fs/promises";import{dirname as TT}from"node:path";var PT=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],AT=["demand-refusal","daemon-stop"],Kh="redskilled.log.toonl";function fa(e){let t=e.worker.budget??{},r="kind"in e?e.kind:e.event;return{version:1,ts:e.ts,kind:r,event:r,worker_id:e.worker.worker_id,project_label:e.worker.project_label,pid:e.worker.pid,workspace_path:e.worker.workspace_path,fork_sha:e.worker.fork_sha??null,log_path:e.worker.log_path??null,isolated:e.worker.isolated,unit:e.worker.unit??null,memory_high:t.memory_high??null,memory_max:t.memory_max??null,cpu_weight:t.cpu_weight??null,admission_verdict:"admissionVerdict"in e?e.admissionVerdict??null:null,phase:"phase"in e?e.phase??null:null,step:"step"in e?e.step??null:null,tokens:"tokens"in e?e.tokens??null:null,tools:"tools"in e?e.tools??null:null,runner:"runner"in e?e.runner??null:null,model:"model"in e?e.model??null:null,base_head_sha:"baseHeadSha"in e?e.baseHeadSha??null:null,base_commits_ahead:"baseCommitsAhead"in e?e.baseCommitsAhead??null:null,heal_kind:"healKind"in e?e.healKind??null:null,detail:e.detail??null,exit_code:e.exitCode??null,signal:e.signal??null,reason:"reason"in e?e.reason??null:null}}var CT="daemon:";function DT(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${CT}${e.pid}`,project_label:"",pid:e.pid,workspace_path:e.socketPath,fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:e.detail,exit_code:null,signal:e.signal??null,reason:e.reason}}function OT(e){return{version:1,ts:e.ts,kind:"demand-refusal",event:"demand-refusal",worker_id:`demand:${e.projectLabel}`,project_label:e.projectLabel,pid:0,workspace_path:"",fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:e.detail,exit_code:null,signal:null,reason:null}}function Vh(e){let t=Lt({trailer:!1}),r=Promise.resolve();async function n(o){let s=r.then(async()=>{await xT(TT(e),{recursive:!0,mode:448}),await FT(e),await _T(e,t.push(jT(o)),{encoding:"utf8",mode:384})});return r=s.catch(()=>{}),await s,o}return{path:e,record:o=>n(fa(o)),recordWorker:o=>n(fa(o)),recordDemandRefusal:o=>n(OT(o)),recordDaemonStop:o=>n(DT(o)),read:()=>IT(e),flush:async()=>{await r}}}async function FT(e){let t;try{t=(await ST(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await ET(e,"r");try{let o=Buffer.alloc(1);if(await n.read(o,0,1,t-1),o[0]===10)return;for(let s=t;s>0;s-=r){let i=Math.min(r,s),a=Buffer.alloc(i);await n.read(a,0,i,s-i);let l=a.lastIndexOf(10);if(l>=0){await qh(e,s-i+l+1);return}}await qh(e,0)}finally{await n.close()}}async function IT(e){let t;try{t=await vT(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return MT(t)}function MT(e){let t=e.split(`
58
+ `}function pS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=ot(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function qg(e,t){return!Hg(e)||!Hg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Hg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Kg=new Set;function Vg(e){return Kg.has(e)?"json":uS}function zg(e){Kg.add(e)}var kS=108;async function na(e,t,r="resident server"){let n=e.wire,o=n??Vg(e.socketPath),s=await Jg(e,t,r,o);return n||o==="json"||!qg(t,s)?s:(zg(e.socketPath),await Jg(e,t,r,"json"))}async function Jg(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=bS(e.socketPath),l=!1,d="",c=setTimeout(()=>{u(()=>i(new Error(`${r} timed out`))),a.destroy()},o);function u(p){l||(l=!0,clearTimeout(c),p())}a.on("connect",()=>{a.write(Id(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Od(d);g&&(d=g.rest,u(()=>{try{s(Fd(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",p=>u(()=>i(p))),a.on("close",()=>{l||u(()=>i(new Error(`${r} closed without response`)))})})}function Zg(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Od(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Id(a,s.dialect))}catch{}};(async()=>{let a;try{a=Fd(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function wS(e){await Yg(Xg(e),{recursive:!0,mode:448});try{return await gS(e,Md.O_CREAT|Md.O_EXCL|Md.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var RS=6e4,eh="resident-spawn-lock v1",_S=3;async function th(e,t={}){let r=t.maxAgeMs??RS,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Qe;await Yg(Xg(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await wS(e);if(l)return await l.writeFile(`${eh} pid=${o} taken=${new Date(n()).toISOString()}
59
+ `).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await ES(e),c=await SS(e,d,n());if(a>=_S||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=xS(d,c,r,s);if(u==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let p={lockPath:e,reason:u,holder:d,ageMs:c};await Qg(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function rh(e){await e.handle.close().catch(()=>{}),await Qg(e.lockPath,{force:!0})}function xS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function nh(e){let t=e.ageMs==null?"of unknown age":`taken ${Math.round(e.ageMs/1e3)}s ago`,r=e.holder==null?"an owner it does not name":`pid ${e.holder.pid} (at ${e.holder.takenAt})`;return`no spawn was attempted: the spawn lock ${JSON.stringify(e.lockPath)} is held by ${r}, ${t}. If that process is gone, remove the file to clear it`}async function ES(e){try{return vS(await hS(e,"utf8"))}catch{return null}}function vS(e){let t=e.split(`
60
+ `,1)[0]?.trim()??"";if(!t.startsWith(eh))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function SS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await mS(e)).mtimeMs)}catch{return null}}function Qe(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var TS="/tmp";function oa(e){let t=e.env??process.env,r=fS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>xs(l,e.socketFileName).length<kS,o=t.XDG_RUNTIME_DIR;if(o){let l=xs(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=xs(`red-skills-${s}`,r),a=xs(yS(),i);return n(a)||process.platform==="win32"?a:xs(TS,i)}zr();import{homedir as YS}from"node:os";import{join as Vd}from"node:path";import{spawnSync as QS}from"node:child_process";import{createHash as XS}from"node:crypto";import{existsSync as ZS,readdirSync as eT}from"node:fs";import{mkdir as uh,readFile as tT,rename as rT,writeFile as nT}from"node:fs/promises";import{dirname as oT}from"node:path";var $n="@reddb-io/red-skills",BS="https://registry.npmjs.org",$S="canary",Bn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},NS=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Wd(e){return typeof e=="string"&&NS.test(e.trim())}function ah(e){return`${e}-.bundle.min.mjs`}var GS=".unversioned";function WS(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Wd(t))throw new Bn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${ah(e)}, a name no resolver prefers and one whose mere existence satisfies the cache-first test forever (#3153)`);return`${e}-${t.trim()}.bundle.min.mjs`}function la(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return Ss(n,WS(t,r,o))}function HS(e){return e==="dev"?["rsp","redskilled"]:[]}function US(e){return`${e}.bundle.min.mjs`}function qS(e){return Ss("dist",US(e))}function KS(e,t="stable"){return`${$n}@${t==="canary"?$S:e}`}function Hd(e=$n){return`${BS}/${e.replace("/","%2F")}`}async function Ud(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=la({plugin:r,version:n,cacheDir:o,channel:s}),a=HS(r),l=a.map(p=>la({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await zS(e,l))return i;let d=KS(n,s),c=Ss(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw ch(p,d)}for(let p of[r,...a]){let g=qS(p),f=Ss(u,g);if(!await e.exists(f))throw new Bn("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:la({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await VS(e,o,[r,...a]),i}async function VS(e,t,r){if(e.rename)for(let n of r){let o=Ss(t,ah(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${GS}`)}catch{}}}async function zS(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function lh(e,t,r=$n){let n;try{n=await e.fetchText(Hd(r))}catch(s){throw ch(s,r)}let o=qd(n);return{sameMajor:JS(o,t),newest:Kd(o)}}function qd(e){let t;try{t=JSON.parse(e)}catch{return[]}if(typeof t!="object"||t===null)return[];let r=t.versions;return typeof r!="object"||r===null?[]:Object.keys(r)}function JS(e,t){let r=Gd(t);if(r===null)return null;let n=null;for(let o of e)Gd(o)===r&&(n===null||dh(o,n)>0)&&(n=o);return n}function Kd(e){let t=null;for(let r of e){let n=String(r).trim();Gd(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||dh(n,t)>0)&&(t=n)}return t}function Gd(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function dh(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e.trim()),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t.trim());return!r||!n?0:Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function ch(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Bn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Bn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Bn("network",`failed to resolve ${t}: ${r}`,e)}function Ss(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}zr();var ph={async materialize(e,t){await uh(t,{recursive:!0});let r=QS("npm",["install",e,"--prefix",t,"--no-save","--no-audit","--no-fund","--ignore-scripts","--loglevel=error"],{stdio:["ignore","ignore","pipe"],encoding:"utf8"});if(r.error)throw r.error;if(r.status!==0)throw new Error(`npm install ${e} -> ${r.status}: ${(r.stderr||"").trim()}`);return Vd(t,"node_modules",...$n.split("/"))},async readFile(e){return new Uint8Array(await tT(e))},async writeFile(e,t){await uh(oT(e),{recursive:!0}),await nT(e,t)},async exists(e){return ZS(e)},sha256(e){return XS("sha256").update(e).digest("hex")},async fetchText(e){let t=await fetch(e,{redirect:"follow"});if(!t.ok)throw new Error(`GET ${e} -> ${t.status}`);return await t.text()},async rename(e,t){await rT(e,t)}},sT="redskilled";function iT(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vd(e.HOME||YS(),".cache");return Vd(t,"red-skills","bundles")}var aT=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function lT(e,t){if(Wd(e.version))return e.version.trim();let r=e.listCacheDir??uT,n=dT(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??ph).fetchText(Hd());return Kd(qd(s))}catch{return null}}function dT(e,t){let r=null;for(let n of e){let o=aT.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||cT(s,r)>0)&&(r=s)}return r}function cT(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t);return Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function uT(e){try{return eT(e)}catch{return[]}}async function pT(e={},t={},r={}){let n=un(e,t);if(Pr(n))return n;let o=r.env??t.env??process.env,s=iT(o),i=await lT(r,s);if(i===null)return n;try{await Ud(r.bundleIO??ph,{plugin:sT,version:i,cacheDir:s})}catch{return n}return un(e,t)}async function fh(e={},t={},r={}){let n=await pT(e,t,r);if(Pr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(zr(),ih));throw new o(n)}var To=3e5,gh=1e4,hh=6e4,mh=15e3,zd=3e4,bh=zd*2,yh=6e4,Ts=16;function kh(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill"||e.event==="worker-death"&&e.exit_code===0)return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=!r&&!n&&e.signal!=null,s=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,i=t.startedAt==null?null:Date.parse(t.startedAt),a=Date.parse(e.ts),l=i!=null&&Number.isFinite(i)&&Number.isFinite(a)?Math.max(0,a-i)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":o?"user-signal":"unknown",confidence:r||n||o?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n||o?[s]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${s}`],project_label:e.project_label,...l===void 0?{}:{uptime_s:l},detail:t.refusal??e.detail,observed_exit:e.exit_code!=null||e.signal!=null}}function Jd(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var wh="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as L0}from"node:crypto";import{mkdir as E1,rm as v1}from"node:fs/promises";import{dirname as S1}from"node:path";import{randomUUID as Rh}from"node:crypto";import{rm as fT}from"node:fs/promises";import{connect as gT,createServer as hT}from"node:net";var Ar=class extends Error{constructor(r,n){super(`a redskilled daemon already owns ${JSON.stringify(r)}`);this.socketPath=r;this.lease=n;this.name="RedskilledAlreadyRunningError"}};async function Yd(e,t=250){return await new Promise(r=>{let n=gT(e),o=!1,s=a=>{o||(o=!0,clearTimeout(i),n.destroy(),r(a))},i=setTimeout(()=>s("unknown"),t);i.unref?.(),n.once("connect",()=>s("owned")),n.once("error",a=>{s(a.code==="ECONNREFUSED"||a.code==="ENOENT"?"unowned":"unknown")})})}async function _h(e,t){for(let r=0;r<2;r++){let n=hT();try{return await new Promise((o,s)=>{n.once("error",s),n.listen(e,()=>{n.off("error",s),o()})}),n}catch(o){if(n.close(),o.code!=="EADDRINUSE")throw o;if(await Yd(e)!=="unowned")throw new Ar(e);if(await t?.())throw new Ar(e);await fT(e,{force:!0})}}throw new Ar(e)}async function zt(e,t=250){try{return(await na({socketPath:e,timeoutMs:t},{id:Rh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function xh(e,t){Zg(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??Rh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Dh(e){return{generated_at:e.now,hour:vh("hour",36e5,e),day:vh("day",864e5,e),history_48h:mT(e)}}function mT(e){let t=pn(e.now),r=t==null?null:Math.floor(t/36e5)*36e5,n=r==null?null:r-47*36e5,o=Array.from({length:48},(d,c)=>n==null?null:n+c*36e5),s=bT(e.observations,o,t),i=o.map((d,c)=>({hour:d==null?e.now:new Date(d).toISOString(),value:s[c]??null,absent_reason:s[c]==null?"no token samples span this hour":null})),a=e.outcomes.map(d=>pn(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:Eh(i),tickets_per_hour:Eh(l)}}function bT(e,t,r){if(r==null||t.some(i=>i==null))return t.map(()=>null);let n=new Map;for(let i of e){let a=pn(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],y=Math.min(f+36e5,r),h=Math.max(0,Math.min(c.at,y)-Math.max(d.at,f));h!==0&&(a[g].tokens+=p*(h/u),a[g].duration+=h)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function Eh(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Nn(e,t,r){let n=pn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=pn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function vh(e,t,r){let n=pn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:pn(u.observed_at)})).filter(u=>u.at!=null&&Ph(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>pn(u.ts)).filter(u=>u!=null&&Ph(u,o,n)),l=Sh(i,u=>u.tokens,"tokens",s),d=Sh(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:yT(a.length,t,s),runner_share:Th("runner",i,u=>u.runner,s),model_share:Th("model",i,u=>u.model,s),unavailable:c}}function Sh(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function yT(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function Th(e,t,r,n){let o=new Map;for(let d of t){let c=r(d.observation);c!=null?o.set(d.observation.worker_id,c):o.has(d.observation.worker_id)||o.set(d.observation.worker_id,null)}let s=new Map,i=0,a=0;for(let d of o.values()){if(d==null){a+=1;continue}i+=1,s.set(d,(s.get(d)??0)+1)}let l=[...s.entries()].map(([d,c])=>({key:d,worker_count:c,share:c/i})).sort((d,c)=>c.worker_count-d.worker_count||d.key.localeCompare(c.key));return{dimension:e,attributed_workers:i,unattributed_workers:a,shares:l,absent_reason:l.length>0?null:o.size===0?`no Worker was observed in the last ${n}`:`no Worker published a ${e} in the last ${n}`}}function Ph(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function pn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Oh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Ch(t.hour)&&Ch(t.day)&&(t.history_48h===void 0||kT(t.history_48h))}function kT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Ah(t.tokens_per_hour)&&Ah(t.tickets_per_hour)}function Ah(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function Ch(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&Qd(t.tokens_per_min)&&Qd(t.tools_per_min)&&Qd(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Qd(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.value===null||typeof t.value=="number")&&(t.absent_reason===null||typeof t.absent_reason=="string")&&Number.isInteger(t.samples)}function Fh(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Nn([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function Ih(e,t){return Nn(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as jh,totalmem as RT}from"node:os";function Ps(e){if(e.applied_budget!=null)return e.applied_budget;let t=e.budget??{};return t.memory_max==null&&t.memory_high==null&&e.memory_ceiling!=null?{...t,memory_max:e.memory_ceiling}:t}function Mh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Ps(d),u=!1;for(let[p,g]of[[c.memory_high,f=>r+=f],[c.memory_max,f=>n+=f]]){if(p==null)continue;let f=Po(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:wT(e.length,n,a,l)}}function wT(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function Po(e){let t=/^\s*(\d+(?:\.\d+)?)\s*([KMGT]?)(?:B)?\s*$/i.exec(e);if(!t)return null;let r={"":1,k:1024,m:1024**2,g:1024**3,t:1024**4}[t[2].toLowerCase()];return Math.round(Number(t[1])*r)}function Lh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Number.isInteger(t.worker_count)&&typeof t.memory_high_bytes=="number"&&typeof t.memory_max_bytes=="number"&&typeof t.cpu_weight_total=="number"&&Array.isArray(t.unaccounted_workers)&&Array.isArray(t.unisolated_workers)}var Bh="REDSKILLED_MEMORY_CEILING",Zd="REDSKILLED_WORKER_CEILING",Wh="REDSKILLED_VALIDATION_CEILING",$h="REDSKILLED_INTERACTIVE_RESERVATION",As=1,Nh=.7,_T=2*1024**3,xT=2;function Hh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Po(t)}function ca(e){let t=0,r=[];for(let n of e){let o=Hh(n.budget);o===null?r.push(n.worker_id):o!==void 0&&(t+=o)}return{worker_count:e.length,memory_bytes:t,unaccounted_workers:r.sort()}}function Uh(e){let{ceiling:t}=e,r=ca(e.workers),n=Hh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??As),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function qh(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=ca(e.workers),n=e.ceiling.memory_bytes-r.memory_bytes,o=e.ceiling.worker_count,s=o==null?n:Math.floor(e.ceiling.memory_bytes/o),i=Math.min(n,s);if(i<=0)return{memory_max:null,reason:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes is already fully committed to ${r.worker_count} Worker(s), so no positive per-Worker ceiling can be derived; the daemon's RSS sampling floor is the only remaining ceiling`};let a=o==null?`the headroom under this host's memory ceiling of ${e.ceiling.memory_bytes} bytes; this host declares no Worker slot count (${Zd} is unset), so this ceiling is a per-Worker wall and not memory the host sets aside \u2014 N Workers may carry N such walls, and the host ceiling is not enforced host-wide. Declare a slot count to make it divide into shares that sum to it`:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes shared across its ${o} Worker slot(s)`;return{memory_max:String(i),reason:`derived from ${a} (ceiling source: ${e.ceiling.source})`}}function ua(e=process.env,t=RT(),r={}){let n=Xd(r.flags?.memoryCeiling,e[Bh],r.config?.memoryCeiling),o=Xd(r.flags?.workerCeiling,e[Zd],r.config?.workerCeiling),s=Xd(r.flags?.validationCeiling,e[Wh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[$h]??"").trim(),d=Kh(a),c=l===""?As:ST(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!ET(a)&&(da(`redskilled: ${ec(o)} ${Zd}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=vT(i,t);if(p!==void 0)return Gh({memory_bytes:p,worker_count:d,interactive_reservation:c??As,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??jh());da(`redskilled: ${ec(n)} ${Bh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Nh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&da(`redskilled: ${$h}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${As} Worker(s) instead.`),Gh({memory_bytes:Math.floor(t*Nh),worker_count:d,interactive_reservation:c??As,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??jh())}function Gh(e,t,r){if(t!==void 0){let i=Kh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};da(`redskilled: ${ec(t)} ${Wh}=${JSON.stringify(t.value)} is not a positive integer; deriving the validation ceiling from host CPU, memory, and Worker capacity instead.`)}let n=Math.max(1,Math.floor(Math.max(1,r)/xT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/_T)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Xd(e,t,r){if(e?.trim())return{value:e.trim(),source:"flag"};if(t?.trim())return{value:t.trim(),source:"environment"};if(r?.trim())return{value:r.trim(),source:"home-config"}}function ec(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function ET(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var da=e=>process.stderr.write(`${e}
61
+ `);function vT(e,t){let r=e.toLowerCase();if(["infinity","none","off","unbounded"].includes(r))return null;let n=/^(\d+(?:\.\d+)?)\s*%$/.exec(e);return n?Math.floor(t*(Number(n[1])/100)):Po(e)??void 0}function Kh(e){if(e===""||["infinity","none","off","unbounded"].includes(e.toLowerCase()))return null;let t=Number(e);return Number.isSafeInteger(t)&&t>0?t:null}function ST(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as TT,mkdir as PT,open as AT,readFile as CT,stat as DT,truncate as Vh}from"node:fs/promises";import{dirname as OT}from"node:path";var FT=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],IT=["demand-refusal","daemon-stop"],zh="redskilled.log.toonl";function pa(e){let t=e.worker.budget??{},r="kind"in e?e.kind:e.event;return{version:1,ts:e.ts,kind:r,event:r,worker_id:e.worker.worker_id,project_label:e.worker.project_label,pid:e.worker.pid,workspace_path:e.worker.workspace_path,fork_sha:e.worker.fork_sha??null,log_path:e.worker.log_path??null,isolated:e.worker.isolated,unit:e.worker.unit??null,memory_high:t.memory_high??null,memory_max:t.memory_max??null,cpu_weight:t.cpu_weight??null,admission_verdict:"admissionVerdict"in e?e.admissionVerdict??null:null,phase:"phase"in e?e.phase??null:null,step:"step"in e?e.step??null:null,tokens:"tokens"in e?e.tokens??null:null,tools:"tools"in e?e.tools??null:null,runner:"runner"in e?e.runner??null:null,model:"model"in e?e.model??null:null,base_head_sha:"baseHeadSha"in e?e.baseHeadSha??null:null,base_commits_ahead:"baseCommitsAhead"in e?e.baseCommitsAhead??null:null,heal_kind:"healKind"in e?e.healKind??null:null,detail:e.detail??null,exit_code:e.exitCode??null,signal:e.signal??null,reason:"reason"in e?e.reason??null:null}}var MT="daemon:";function LT(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${MT}${e.pid}`,project_label:"",pid:e.pid,workspace_path:e.socketPath,fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:e.detail,exit_code:null,signal:e.signal??null,reason:e.reason}}function jT(e){return{version:1,ts:e.ts,kind:"demand-refusal",event:"demand-refusal",worker_id:`demand:${e.projectLabel}`,project_label:e.projectLabel,pid:0,workspace_path:"",fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:e.detail,exit_code:null,signal:null,reason:null}}function Jh(e){let t=Lt({trailer:!1}),r=Promise.resolve();async function n(o){let s=r.then(async()=>{await PT(OT(e),{recursive:!0,mode:448}),await BT(e),await TT(e,t.push(WT(o)),{encoding:"utf8",mode:384})});return r=s.catch(()=>{}),await s,o}return{path:e,record:o=>n(pa(o)),recordWorker:o=>n(pa(o)),recordDemandRefusal:o=>n(jT(o)),recordDaemonStop:o=>n(LT(o)),read:()=>$T(e),flush:async()=>{await r}}}async function BT(e){let t;try{t=(await DT(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await AT(e,"r");try{let o=Buffer.alloc(1);if(await n.read(o,0,1,t-1),o[0]===10)return;for(let s=t;s>0;s-=r){let i=Math.min(r,s),a=Buffer.alloc(i);await n.read(a,0,i,s-i);let l=a.lastIndexOf(10);if(l>=0){await Vh(e,s-i+l+1);return}}await Vh(e,0)}finally{await n.close()}}async function $T(e){let t;try{t=await CT(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return NT(t)}function NT(e){let t=e.split(`
62
62
  `);return t.pop(),t.length===0?[]:Sr(`${t.join(`
63
63
  `)}
64
- `).filter(BT).map($T)}function zh(e){let t=new Map;for(let r of e)r.kind==="daemon-stop"||r.kind==="demand-refusal"||(r.kind==="worker-birth"?t.set(r.worker_id,LT(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function LT(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function jT(e){return{...e}}function BT(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...PT,...AT].includes(t)}function $T(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function Jh(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target),d)-a);if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,y=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:y,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let h=0;h<y;h+=1)(s[h]??(s[h]=[])).push({project_label:i.project_label,index:a+h,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Yh(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Qh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var Ds={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Xh(e,t,r){if(t>=6e4)return Ds;let n=e.shortLifeStreak+1;return!(e.haltUntilMs!=null||e.probeWorkerId!=null)&&n<3?{shortLifeStreak:n,haltUntilMs:null,openedAtMs:null,probeWorkerId:null}:{shortLifeStreak:n,haltUntilMs:r+6e5,openedAtMs:r,probeWorkerId:null}}function Zh(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function tc(){return Ds}function NT(e,t,r){if(t.haltUntilMs==null||t.openedAtMs==null)return null;let n=r>=t.haltUntilMs;return{name:"project-birth-breaker",project_label:e,state:n?"half-open":"open",opened_at:new Date(t.openedAtMs).toISOString(),reason:`${t.shortLifeStreak} Workers from this project died before surviving 60000ms`,closes:n?t.probeWorkerId==null?"the next demand tick admits one probe Worker; surviving the short-life window closes the latch":`probe Worker ${JSON.stringify(t.probeWorkerId)} surviving 60000ms closes the latch; a fast death re-opens it with a fresh cooldown`:`the cooldown ends at ${new Date(t.haltUntilMs).toISOString()}, then one probe Worker is admitted; surviving the short-life window closes the latch`,probe_worker_id:t.probeWorkerId,repair:{tool:"project_reset",args:{latch:"project-birth-breaker"},why:"clear the project's birth-breaker history and allow the next demand tick to birth normally"}}}function em(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>NT(r,n,t)).filter(r=>r!=null)}function rm(e){let t=e.workers.map(GT),r=[...new Set([...t.map(o=>o.project_label),...e.projects??[]])].filter(o=>o!=="").sort(),n=t.filter(o=>o.survives).map(o=>o.worker_id);return{version:1,running:!0,stopped:!0,reason:e.reason,socket_path:e.socketPath,daemon_version:e.daemonVersion,pid:e.pid,holding:{workers:t,projects:r},surviving:n,detail:HT({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function nm(e){return{version:1,running:!1,stopped:!1,reason:"not-running",socket_path:e,daemon_version:null,pid:null,holding:{workers:[],projects:[]},surviving:[],detail:`no redskilled daemon is answering on ${JSON.stringify(e)}, so there was nothing to stop`}}function GT(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,survives:!0}}function WT(e){return e==="requested"?"an operator asked for it":e==="signal"?"the daemon was signalled":e==="idle"?"the daemon was idle and held nothing":e==="replaced"?"a newer published bundle is taking the session over":"no daemon was running"}function HT(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${WT(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${tm(e.held,"Worker")} across ${tm(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 a Worker is an init-system unit, so this is a restart and not an evacuation`}function tm(e,t){return`${e} ${t}${e===1?"":"s"}`}function rc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as UT,mkdir as qT,readFile as KT,rm as VT,writeFile as zT}from"node:fs/promises";import{dirname as om,join as lm}from"node:path";import{tmpdir as sm}from"node:os";var JT="redskilled.machine.claim.toon",oc="REDSKILLED_MACHINE_DIR",YT=8,Jr=class extends Error{constructor(r,n,o){super(XT(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},im;function ga(){return im??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},im}function QT(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[oc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||sm():sm();return lm(o,`redskilled-${e.machineIdHash}`)}function Do(e){return lm(QT(e),JT)}function Os(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){let l;try{l=await KT(e,"utf8")}catch(c){if(c.code==="ENOENT"||nc(c))return;throw c}let d=eP(l);return tP(d)?d:void 0}function i(l,d){return{version:1,scope:"machine",pid:l.pid,start_time:l.startTime,uid:l.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}async function a(){try{return await VT(e,{force:!0}),!0}catch(l){if(nc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await qT(om(e),{recursive:!0,mode:1023})!=null&&await UT(om(e),1023).catch(()=>{});let c=!1;for(let u=0;u<YT;u+=1){let p=i(l,n());try{return await zT(e,ZT(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(nc(f))return{claimed:!1,reason:"stale-claim-not-reapable"};throw f}}let g=await s();if(!g){if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable"};c=!0;continue}if(am(g,l,t.socketPath))return{claimed:!0,reaped:c,claim:g};if(await o(g.pid))return{claimed:!1,reason:"held",claim:g};if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable",claim:g};c=!0}return{claimed:!1,reason:"contended"}},async release(l){let d=await s();return!d||!am(d,l,t.socketPath)?!1:await a()}}}function dm(e,t,r){return{kind:"machine",claim_path:e,owner_uid:r.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath}}function cm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.kind==="machine"&&typeof t.claim_path=="string"&&typeof t.owner_uid=="number"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&typeof t.socket_path=="string"}function XT(e,t,r){let n=r==null?"":` \u2014 held by pid ${r.pid} (uid ${r.uid}) on socket ${JSON.stringify(r.socket_path)}`;return t==="held"?`this machine already has a redskilled daemon${n}; a second one would void the host budget, so none was started. Reach that daemon, or stop it before starting another.`:t==="stale-claim-not-reapable"?`the redskilled machine claim ${JSON.stringify(e)} is stale and cannot be removed by this user${n}; remove it as its owner, then start again. No second daemon was started.`:`the redskilled machine claim ${JSON.stringify(e)} changed hands repeatedly; no daemon was started.`}function nc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function am(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function ZT(e){return`${ot(e,{keyedMapCollapse:!0})}
65
- `}function eP(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function tP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.scope!=="machine"||!Number.isInteger(t.pid)||t.pid<=0||!Number.isInteger(t.uid))return!1;for(let r of["start_time","machine_id_hash","session_key_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}var rP=["worker_id","slot","workspace_path","log_path"],ha=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${rP.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},um=/\{\{([a-z_]+)\}\}/g;function nP(e,t){let r=(i,a)=>i.replace(um,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new ha(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function pm(e,t){if(!(e==null||e.trim()===""))return e.replace(um,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ha(n,"the log path")}})}function fm(e,t,r){let n=nP(e,t),o=n.log_path??t.log_path,[s,...i]=n.argv;if(s===void 0||s==="")throw new Error(`redskilled cannot start a Worker for project ${JSON.stringify(r.project_label)}: its launch expanded to an argv with no command`);return{worker_id:t.worker_id,project_label:r.project_label,workspace_path:t.workspace_path,...o==null||o===""?{}:{log_path:o},command:s,args:i,env:n.env}}function sc(e,t){if(!Array.isArray(e)||e.length===0)throw new Error(`redskilled needs an argv to register project ${JSON.stringify(t)}: a registration with nothing to run is a project the host could never start a Worker for`);return e.map((r,n)=>{if(typeof r!="string"||r==="")throw new Error(`redskilled needs every word of an argv to be a non-empty string, and word ${n} of project ${JSON.stringify(t)} is not`);return r})}function ic(e,t){if(e!=null){if(typeof e!="string"||e.trim()==="")throw new Error(`redskilled needs a declared log path to be a non-empty string to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}: a project that declares an empty path states a Worker whose output no surface can ever show, which reads as a Worker with nothing to say`);return e}}function ac(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}var oP=3e5,sP=.5,lc=class extends Error{constructor(r){super(`redskilled already holds a registration for project ${JSON.stringify(r.project_label)}, registered at ${r.registered_at} for a target of ${r.target} and standing until ${r.renew_by}: a project contributes one registration, so a second one is refused rather than silently replacing the first`);this.held=r;this.name="RedskilledProjectRegisteredError"}};function gm(e,t){if(t.held!=null)throw new lc(t.held);let r=Fs(e.project_label,"a project label"),n=Fs(e.selector,"a selector"),o=dP(e.queue_poll,r),s=sc(e.argv,r),i=ac(e.env,r),a=ic(e.log_path,r),l=Fs(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),d=e.trunk==null?void 0:{remote:Fs(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Fs(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let c=e.renew_within_ms??oP;if(!Number.isFinite(c)||c<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let u=Date.parse(t.now);if(!Number.isFinite(u))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:l,...d==null?{}:{trunk:d},env:i,...a==null?{}:{log_path:a},target:e.target,registered_at:new Date(u).toISOString(),renew_within_ms:c,renew_by:new Date(u+c).toISOString(),renewed_at:new Date(u).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var Wn=class extends Error{constructor(r,n={kind:"never"}){super(iP(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function iP(e,t){let r=JSON.stringify(e);if(t.kind==="lapsed"){let n=t.registered_at==null?"":` (registered ${t.registered_at})`;return`redskilled holds no registration for project ${r} to renew: it lapsed at ${t.at}${n}; renewal stopped \u2014 find why before registering it again`}return t.kind==="stopped"?`redskilled holds no registration for project ${r} to renew: it was stopped at ${t.at}; this is the requested state, so there is nothing to renew`:t.kind==="orphaned"?`redskilled holds no registration for project ${r} to renew: it is registered on a daemon this socket does not reach \u2014 do not register it again`:`redskilled holds no registration for project ${r} to renew: it was never registered on this host; register it first, stating the selector, the argv and the target`}function hm(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to date a renewal, not ${JSON.stringify(t.now)}`);let n=t.renew_within_ms??e.renew_within_ms;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled needs a positive renewal window to renew project ${JSON.stringify(e.project_label)}, not ${JSON.stringify(t.renew_within_ms)}`);let o=t.launch==null?{env:e.env??{},launch_revision:e.launch_revision??0}:{argv:sc(t.launch.argv,e.project_label),env:ac(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:ic(t.launch.log_path,e.project_label),{log_path:i,...a}=e;return{...a,...s==null?{}:{log_path:s},...o,renew_within_ms:n,renewed_at:new Date(r).toISOString(),renew_by:new Date(r+n).toISOString(),renewals:e.renewals+1,session_renewals:(e.session_renewals??e.renewals)+1}}function dc(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to sustain a registration, not ${JSON.stringify(t.now)}`);let n=JSON.stringify(e.project_label),o=Math.max(0,t.liveWorkers??0),s=t.queue,i=s!=null&&s.outcome==="counted"?s.depth:null,a=i!=null&&i>0?"open-work":o>0?"live-worker":null;if(a==null){let l=i===0?"drained":"uncounted";return{registration:e,verdict:l,detail:l==="drained"?`project ${n} has nothing queued and no Worker running, so nothing holds its registration up and it lapses at ${e.renew_by}`:`no poll counted project ${n}, and an uncounted queue never sustains a registration \u2014 it stands on its own deadline of ${e.renew_by}`}}return{registration:{...e,renew_by:new Date(r+e.renew_within_ms).toISOString(),sustained_at:new Date(r).toISOString(),sustains:(e.sustains??0)+1,sustained_by:a,renewals:e.renewals+1,session_renewals:e.session_renewals??e.renewals},verdict:a,detail:a==="open-work"?`project ${n} has ${i} item(s) queued, so its registration stands past its window`:`project ${n} holds ${o} Worker(s), so its registration stands past its window`}}function aP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function mm(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*sP;if(n(r))return"renewing";let o=e.sustained_at==null?Number.NaN:Date.parse(e.sustained_at);return n(o)?"self-renewing":"running-on"}function bm(e,t){let r=[],n=[];for(let o of e)(aP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Is(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.project_label=="string"&&typeof t.selector=="string"&&(t.queue_poll===void 0||ym(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||lP(t.trunk))&&Number.isInteger(t.target)&&typeof t.registered_at=="string"&&typeof t.renew_within_ms=="number"&&typeof t.renew_by=="string"&&(t.renewed_at===void 0||typeof t.renewed_at=="string")&&(t.renewals===void 0||Number.isInteger(t.renewals))&&(t.session_renewals===void 0||Number.isInteger(t.session_renewals))&&(t.env===void 0||cP(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function lP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.remote=="string"&&t.remote.trim()!==""&&typeof t.branch=="string"&&t.branch.trim()!==""}function dP(e,t){if(e!==void 0){if(!ym(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function ym(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(r=>typeof r=="string"&&r!=="")&&(t.creator===void 0||typeof t.creator=="string")}function cP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Fs(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var uP={ping:"host-read","host-state":"host-read","statusline-payload":"host-read",shutdown:"daemon-life","worker-start":"project-write","worker-stop":"project-write","worker-recycle":"project-write","worker-steer":"project-write","worker-heartbeat":"project-write","project-register":"project-write","project-renew":"project-write","project-reset":"project-write","project-deregister":"project-write"};function km(e){return`worker-${e}`}function wm(e){let t=uP[e.op]??"project-write",r=e.sessionProject??null,n=e.targetProject??null,o={version:1,op:e.op,reach:t,session_project:r,target_project:n};return t==="host-read"?{...o,permitted:!0,verdict:"permitted-host-read",reason:`redskilled permitted ${e.op}: a session reads the whole host, whichever project it was started in`}:t==="daemon-life"?{...o,permitted:!0,verdict:"permitted-daemon-life",reason:`redskilled permitted ${e.op}: it acts on the daemon's own process, not on any project's Workers`}:r==null||r===""?{...o,permitted:!0,verdict:"permitted-unattributed",reason:`redskilled permitted ${e.op}: the session named no project of its own, so there is nothing to refuse it against`}:n!=null&&n===r?{...o,permitted:!0,verdict:"permitted-own-project",reason:`redskilled permitted ${e.op}: the target belongs to project ${JSON.stringify(r)}, which is this session's own`}:{...o,permitted:!1,verdict:"refused-cross-project",reason:`redskilled refused ${e.op} from a session in project ${JSON.stringify(r)}: ${n==null?"it names no Worker of that project":`the target belongs to project ${JSON.stringify(n)}`}. A session reads the whole host and writes only its own project.`}}function Rm(e){return e==="single-object"?"rest":"graphql"}function _m(e,t){return e==="stable-poll"?"rest":Rm(t)}function Jt(e){return{none:e}}function st(e,t,r,n,o,s,i){let a=typeof o=="string"?{fallback:o}:{fallback:null,noFallbackBecause:o.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??_m(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ot(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var xm=[st("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),st("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),st("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),st("run view","single-object","stable-poll","rest",Jt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",Jt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),st("pr diff","single-object","one-shot","rest",Jt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),st("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),st("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),st("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),st("release list","multi-node","stable-poll","rest",Jt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",Jt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),st("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),st("issue list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),st("pr list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),st("search issues","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search prs","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search repos","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("api graphql","multi-node","one-shot","graphql",Jt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),st("api rest","single-object","one-shot","rest",Jt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ot("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ot("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ot("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ot("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ot("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ot("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ot("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ot("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ot("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ot("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ot("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ot("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ot("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ot("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],pP=new Map(xm.map(e=>[e.key,e]));function Em(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function cc(e){let t=Em(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var ma=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=cc(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}};function vm(e){return pP.get(cc(e))??null}function Sm(e){let t=vm(e);if(!t)throw new ma(e);return t}function uc(e){return Sm(e).surface}import{appendFile as fP,mkdir as gP,readFile as hP}from"node:fs/promises";import{dirname as mP}from"node:path";function ba(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=bP(n.operation,n.cost,n.observedAt??t(),n.actor),s=Lt().push(kP(o));return r=r.then(async()=>{await gP(mP(e.path),{recursive:!0}),await fP(e.path,s,"utf8")}),r},async report(n){await r;let o=pc(n.from,"report window start"),s=pc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await yP(e.path),a=new Map;for(let d of i.observations){let c=Date.parse(d.observed_at);if(c<o||c>=s||n.pool!==void 0&&d.pool!==n.pool)continue;let u=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,p=a.get(u);a.set(u,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+d.cost})}let l=[...a.values()].sort((d,c)=>c.cost-d.cost||c.count-d.count||d.operation_key.localeCompare(c.operation_key)||d.pool.localeCompare(c.pool)||(d.actor??"").localeCompare(c.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:l.reduce((d,c)=>d+c.count,0),total_cost:l.reduce((d,c)=>d+c.cost,0),operations:l,unreadable_records:i.unreadable}}}}function bP(e,t,r,n){if(pc(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function yP(e){let t;try{t=await hP(e,"utf8")}catch(s){if(_P(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
64
+ `).filter(HT).map(UT)}function Yh(e){let t=new Map;for(let r of e)r.kind==="daemon-stop"||r.kind==="demand-refusal"||(r.kind==="worker-birth"?t.set(r.worker_id,GT(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function GT(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function WT(e){return{...e}}function HT(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...FT,...IT].includes(t)}function UT(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function Qh(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target),d)-a);if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,y=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:y,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let h=0;h<y;h+=1)(s[h]??(s[h]=[])).push({project_label:i.project_label,index:a+h,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Xh(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Zh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var Cs={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function em(e,t,r){if(t>=6e4)return Cs;let n=e.shortLifeStreak+1;return!(e.haltUntilMs!=null||e.probeWorkerId!=null)&&n<3?{shortLifeStreak:n,haltUntilMs:null,openedAtMs:null,probeWorkerId:null}:{shortLifeStreak:n,haltUntilMs:r+6e5,openedAtMs:r,probeWorkerId:null}}function tm(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function tc(){return Cs}function qT(e,t,r){if(t.haltUntilMs==null||t.openedAtMs==null)return null;let n=r>=t.haltUntilMs;return{name:"project-birth-breaker",project_label:e,state:n?"half-open":"open",opened_at:new Date(t.openedAtMs).toISOString(),reason:`${t.shortLifeStreak} Workers from this project died before surviving 60000ms`,closes:n?t.probeWorkerId==null?"the next demand tick admits one probe Worker; surviving the short-life window closes the latch":`probe Worker ${JSON.stringify(t.probeWorkerId)} surviving 60000ms closes the latch; a fast death re-opens it with a fresh cooldown`:`the cooldown ends at ${new Date(t.haltUntilMs).toISOString()}, then one probe Worker is admitted; surviving the short-life window closes the latch`,probe_worker_id:t.probeWorkerId,repair:{tool:"project_reset",args:{latch:"project-birth-breaker"},why:"clear the project's birth-breaker history and allow the next demand tick to birth normally"}}}function rm(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>qT(r,n,t)).filter(r=>r!=null)}function om(e){let t=e.workers.map(KT),r=[...new Set([...t.map(o=>o.project_label),...e.projects??[]])].filter(o=>o!=="").sort(),n=t.filter(o=>o.survives).map(o=>o.worker_id);return{version:1,running:!0,stopped:!0,reason:e.reason,socket_path:e.socketPath,daemon_version:e.daemonVersion,pid:e.pid,holding:{workers:t,projects:r},surviving:n,detail:zT({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function sm(e){return{version:1,running:!1,stopped:!1,reason:"not-running",socket_path:e,daemon_version:null,pid:null,holding:{workers:[],projects:[]},surviving:[],detail:`no redskilled daemon is answering on ${JSON.stringify(e)}, so there was nothing to stop`}}function KT(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,survives:!0}}function VT(e){return e==="requested"?"an operator asked for it":e==="signal"?"the daemon was signalled":e==="idle"?"the daemon was idle and held nothing":e==="replaced"?"a newer published bundle is taking the session over":"no daemon was running"}function zT(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${VT(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${nm(e.held,"Worker")} across ${nm(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 a Worker is an init-system unit, so this is a restart and not an evacuation`}function nm(e,t){return`${e} ${t}${e===1?"":"s"}`}function rc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as JT,mkdir as YT,readFile as QT,rm as XT,writeFile as ZT}from"node:fs/promises";import{dirname as im,join as cm}from"node:path";import{tmpdir as am}from"node:os";var eP="redskilled.machine.claim.toon",oc="REDSKILLED_MACHINE_DIR",tP=8,Jr=class extends Error{constructor(r,n,o){super(nP(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},lm;function fa(){return lm??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},lm}function rP(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[oc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||am():am();return cm(o,`redskilled-${e.machineIdHash}`)}function Ao(e){return cm(rP(e),eP)}function Ds(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){let l;try{l=await QT(e,"utf8")}catch(c){if(c.code==="ENOENT"||nc(c))return;throw c}let d=sP(l);return iP(d)?d:void 0}function i(l,d){return{version:1,scope:"machine",pid:l.pid,start_time:l.startTime,uid:l.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}async function a(){try{return await XT(e,{force:!0}),!0}catch(l){if(nc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await YT(im(e),{recursive:!0,mode:1023})!=null&&await JT(im(e),1023).catch(()=>{});let c=!1;for(let u=0;u<tP;u+=1){let p=i(l,n());try{return await ZT(e,oP(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(nc(f))return{claimed:!1,reason:"stale-claim-not-reapable"};throw f}}let g=await s();if(!g){if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable"};c=!0;continue}if(dm(g,l,t.socketPath))return{claimed:!0,reaped:c,claim:g};if(await o(g.pid))return{claimed:!1,reason:"held",claim:g};if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable",claim:g};c=!0}return{claimed:!1,reason:"contended"}},async release(l){let d=await s();return!d||!dm(d,l,t.socketPath)?!1:await a()}}}function um(e,t,r){return{kind:"machine",claim_path:e,owner_uid:r.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath}}function pm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.kind==="machine"&&typeof t.claim_path=="string"&&typeof t.owner_uid=="number"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&typeof t.socket_path=="string"}function nP(e,t,r){let n=r==null?"":` \u2014 held by pid ${r.pid} (uid ${r.uid}) on socket ${JSON.stringify(r.socket_path)}`;return t==="held"?`this machine already has a redskilled daemon${n}; a second one would void the host budget, so none was started. Reach that daemon, or stop it before starting another.`:t==="stale-claim-not-reapable"?`the redskilled machine claim ${JSON.stringify(e)} is stale and cannot be removed by this user${n}; remove it as its owner, then start again. No second daemon was started.`:`the redskilled machine claim ${JSON.stringify(e)} changed hands repeatedly; no daemon was started.`}function nc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function dm(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function oP(e){return`${ot(e,{keyedMapCollapse:!0})}
65
+ `}function sP(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function iP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.scope!=="machine"||!Number.isInteger(t.pid)||t.pid<=0||!Number.isInteger(t.uid))return!1;for(let r of["start_time","machine_id_hash","session_key_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}var aP=["worker_id","slot","workspace_path","log_path"],ga=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${aP.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},fm=/\{\{([a-z_]+)\}\}/g;function lP(e,t){let r=(i,a)=>i.replace(fm,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new ga(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function gm(e,t){if(!(e==null||e.trim()===""))return e.replace(fm,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ga(n,"the log path")}})}function hm(e,t,r){let n=lP(e,t),o=n.log_path??t.log_path,[s,...i]=n.argv;if(s===void 0||s==="")throw new Error(`redskilled cannot start a Worker for project ${JSON.stringify(r.project_label)}: its launch expanded to an argv with no command`);return{worker_id:t.worker_id,project_label:r.project_label,workspace_path:t.workspace_path,...o==null||o===""?{}:{log_path:o},command:s,args:i,env:n.env}}function sc(e,t){if(!Array.isArray(e)||e.length===0)throw new Error(`redskilled needs an argv to register project ${JSON.stringify(t)}: a registration with nothing to run is a project the host could never start a Worker for`);return e.map((r,n)=>{if(typeof r!="string"||r==="")throw new Error(`redskilled needs every word of an argv to be a non-empty string, and word ${n} of project ${JSON.stringify(t)} is not`);return r})}function ic(e,t){if(e!=null){if(typeof e!="string"||e.trim()==="")throw new Error(`redskilled needs a declared log path to be a non-empty string to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}: a project that declares an empty path states a Worker whose output no surface can ever show, which reads as a Worker with nothing to say`);return e}}function ac(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}var dP=3e5,cP=.5,lc=class extends Error{constructor(r){super(`redskilled already holds a registration for project ${JSON.stringify(r.project_label)}, registered at ${r.registered_at} for a target of ${r.target} and standing until ${r.renew_by}: a project contributes one registration, so a second one is refused rather than silently replacing the first`);this.held=r;this.name="RedskilledProjectRegisteredError"}};function mm(e,t){if(t.held!=null)throw new lc(t.held);let r=Os(e.project_label,"a project label"),n=Os(e.selector,"a selector"),o=gP(e.queue_poll,r),s=sc(e.argv,r),i=ac(e.env,r),a=ic(e.log_path,r),l=Os(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),d=e.trunk==null?void 0:{remote:Os(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Os(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let c=e.renew_within_ms??dP;if(!Number.isFinite(c)||c<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let u=Date.parse(t.now);if(!Number.isFinite(u))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:l,...d==null?{}:{trunk:d},env:i,...a==null?{}:{log_path:a},target:e.target,registered_at:new Date(u).toISOString(),renew_within_ms:c,renew_by:new Date(u+c).toISOString(),renewed_at:new Date(u).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var Gn=class extends Error{constructor(r,n={kind:"never"}){super(uP(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function uP(e,t){let r=JSON.stringify(e);if(t.kind==="lapsed"){let n=t.registered_at==null?"":` (registered ${t.registered_at})`;return`redskilled holds no registration for project ${r} to renew: it lapsed at ${t.at}${n}; renewal stopped \u2014 find why before registering it again`}return t.kind==="stopped"?`redskilled holds no registration for project ${r} to renew: it was stopped at ${t.at}; this is the requested state, so there is nothing to renew`:t.kind==="orphaned"?`redskilled holds no registration for project ${r} to renew: it is registered on a daemon this socket does not reach \u2014 do not register it again`:`redskilled holds no registration for project ${r} to renew: it was never registered on this host; register it first, stating the selector, the argv and the target`}function bm(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to date a renewal, not ${JSON.stringify(t.now)}`);let n=t.renew_within_ms??e.renew_within_ms;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled needs a positive renewal window to renew project ${JSON.stringify(e.project_label)}, not ${JSON.stringify(t.renew_within_ms)}`);let o=t.launch==null?{env:e.env??{},launch_revision:e.launch_revision??0}:{argv:sc(t.launch.argv,e.project_label),env:ac(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:ic(t.launch.log_path,e.project_label),{log_path:i,...a}=e;return{...a,...s==null?{}:{log_path:s},...o,renew_within_ms:n,renewed_at:new Date(r).toISOString(),renew_by:new Date(r+n).toISOString(),renewals:e.renewals+1,session_renewals:(e.session_renewals??e.renewals)+1}}function dc(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to sustain a registration, not ${JSON.stringify(t.now)}`);let n=JSON.stringify(e.project_label),o=Math.max(0,t.liveWorkers??0),s=t.queue,i=s!=null&&s.outcome==="counted"?s.depth:null,a=i!=null&&i>0?"open-work":o>0?"live-worker":null;if(a==null){let l=i===0?"drained":"uncounted";return{registration:e,verdict:l,detail:l==="drained"?`project ${n} has nothing queued and no Worker running, so nothing holds its registration up and it lapses at ${e.renew_by}`:`no poll counted project ${n}, and an uncounted queue never sustains a registration \u2014 it stands on its own deadline of ${e.renew_by}`}}return{registration:{...e,renew_by:new Date(r+e.renew_within_ms).toISOString(),sustained_at:new Date(r).toISOString(),sustains:(e.sustains??0)+1,sustained_by:a,renewals:e.renewals+1,session_renewals:e.session_renewals??e.renewals},verdict:a,detail:a==="open-work"?`project ${n} has ${i} item(s) queued, so its registration stands past its window`:`project ${n} holds ${o} Worker(s), so its registration stands past its window`}}function pP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function ym(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*cP;if(n(r))return"renewing";let o=e.sustained_at==null?Number.NaN:Date.parse(e.sustained_at);return n(o)?"self-renewing":"running-on"}function km(e,t){let r=[],n=[];for(let o of e)(pP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Fs(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.project_label=="string"&&typeof t.selector=="string"&&(t.queue_poll===void 0||wm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||fP(t.trunk))&&Number.isInteger(t.target)&&typeof t.registered_at=="string"&&typeof t.renew_within_ms=="number"&&typeof t.renew_by=="string"&&(t.renewed_at===void 0||typeof t.renewed_at=="string")&&(t.renewals===void 0||Number.isInteger(t.renewals))&&(t.session_renewals===void 0||Number.isInteger(t.session_renewals))&&(t.env===void 0||hP(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function fP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.remote=="string"&&t.remote.trim()!==""&&typeof t.branch=="string"&&t.branch.trim()!==""}function gP(e,t){if(e!==void 0){if(!wm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function wm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(r=>typeof r=="string"&&r!=="")&&(t.creator===void 0||typeof t.creator=="string")}function hP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Os(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var mP={ping:"host-read","host-state":"host-read","statusline-payload":"host-read",shutdown:"daemon-life","worker-start":"project-write","worker-stop":"project-write","worker-recycle":"project-write","worker-steer":"project-write","worker-heartbeat":"project-write","project-register":"project-write","project-renew":"project-write","project-reset":"project-write","project-deregister":"project-write"};function Rm(e){return`worker-${e}`}function _m(e){let t=mP[e.op]??"project-write",r=e.sessionProject??null,n=e.targetProject??null,o={version:1,op:e.op,reach:t,session_project:r,target_project:n};return t==="host-read"?{...o,permitted:!0,verdict:"permitted-host-read",reason:`redskilled permitted ${e.op}: a session reads the whole host, whichever project it was started in`}:t==="daemon-life"?{...o,permitted:!0,verdict:"permitted-daemon-life",reason:`redskilled permitted ${e.op}: it acts on the daemon's own process, not on any project's Workers`}:r==null||r===""?{...o,permitted:!0,verdict:"permitted-unattributed",reason:`redskilled permitted ${e.op}: the session named no project of its own, so there is nothing to refuse it against`}:n!=null&&n===r?{...o,permitted:!0,verdict:"permitted-own-project",reason:`redskilled permitted ${e.op}: the target belongs to project ${JSON.stringify(r)}, which is this session's own`}:{...o,permitted:!1,verdict:"refused-cross-project",reason:`redskilled refused ${e.op} from a session in project ${JSON.stringify(r)}: ${n==null?"it names no Worker of that project":`the target belongs to project ${JSON.stringify(n)}`}. A session reads the whole host and writes only its own project.`}}function xm(e){return e==="single-object"?"rest":"graphql"}function Em(e,t){return e==="stable-poll"?"rest":xm(t)}function Jt(e){return{none:e}}function st(e,t,r,n,o,s,i){let a=typeof o=="string"?{fallback:o}:{fallback:null,noFallbackBecause:o.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??Em(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ot(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var vm=[st("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),st("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),st("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),st("run view","single-object","stable-poll","rest",Jt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",Jt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),st("pr diff","single-object","one-shot","rest",Jt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),st("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),st("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),st("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),st("release list","multi-node","stable-poll","rest",Jt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",Jt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),st("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),st("issue list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),st("pr list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),st("search issues","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search prs","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search repos","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("api graphql","multi-node","one-shot","graphql",Jt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),st("api rest","single-object","one-shot","rest",Jt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ot("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ot("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ot("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ot("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ot("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ot("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ot("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ot("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ot("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ot("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ot("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ot("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ot("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ot("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],bP=new Map(vm.map(e=>[e.key,e]));function Sm(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function cc(e){let t=Sm(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var ha=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=cc(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}};function Tm(e){return bP.get(cc(e))??null}function Pm(e){let t=Tm(e);if(!t)throw new ha(e);return t}function uc(e){return Pm(e).surface}import{appendFile as yP,mkdir as kP,readFile as wP}from"node:fs/promises";import{dirname as RP}from"node:path";function ma(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=_P(n.operation,n.cost,n.observedAt??t(),n.actor),s=Lt().push(EP(o));return r=r.then(async()=>{await kP(RP(e.path),{recursive:!0}),await yP(e.path,s,"utf8")}),r},async report(n){await r;let o=pc(n.from,"report window start"),s=pc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await xP(e.path),a=new Map;for(let d of i.observations){let c=Date.parse(d.observed_at);if(c<o||c>=s||n.pool!==void 0&&d.pool!==n.pool)continue;let u=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,p=a.get(u);a.set(u,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+d.cost})}let l=[...a.values()].sort((d,c)=>c.cost-d.cost||c.count-d.count||d.operation_key.localeCompare(c.operation_key)||d.pool.localeCompare(c.pool)||(d.actor??"").localeCompare(c.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:l.reduce((d,c)=>d+c.count,0),total_cost:l.reduce((d,c)=>d+c.cost,0),operations:l,unreadable_records:i.unreadable}}}}function _P(e,t,r,n){if(pc(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function xP(e){let t;try{t=await wP(e,"utf8")}catch(s){if(TP(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
66
66
  `);for(let s=0;s<o.length;s+=1){let i=o[s];if(i.trim()==="")continue;let a=o[s+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let l;try{l=Sr(`${i}
67
67
  ${a}
68
- `)[0]}catch{n+=1,s+=1;continue}if(!wP(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function kP(e){return{version:e.version,observed_at:e.observed_at,operation_key:e.operation_key,pool:e.pool,...e.actor===void 0?{}:{actor:e.actor},cost:e.cost}}function wP(e){return RP(e)?e.version===1&&typeof e.observed_at=="string"&&Number.isFinite(Date.parse(e.observed_at))&&typeof e.operation_key=="string"&&e.operation_key!==""&&(e.pool==="rest"||e.pool==="graphql"||e.pool==="search")&&(e.actor===void 0||typeof e.actor=="string"&&e.actor!=="")&&typeof e.cost=="number"&&Number.isSafeInteger(e.cost)&&e.cost>=0:!1}function pc(e,t){let r=Date.parse(e);if(!Number.isFinite(r))throw new Error(`${t} must be an ISO-8601 instant; received ${JSON.stringify(e)}`);return r}function RP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function _P(e){return e instanceof Error&&"code"in e}var Pm=zl(hc(),1);var Yr=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let o=Object.assign({},n.request);n.request.headers.authorization&&(o.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=o}};var xP="0.0.0-development";function EP(e){return e.request!==void 0}async function Tm(e,t,r,n){if(!EP(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let o=n.request.retries!=null?n.request.retries:e.retries,s=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,o,s)}throw r}async function vP(e,t,r,n){let o=new Pm.default;return o.on("failed",function(s,i){let a=~~s.request.request?.retries,l=~~s.request.request?.retryAfter;if(n.request.retryCount=i.retryCount+1,a>i.retryCount)return l*e.retryAfterBaseValue}),o.schedule(SP.bind(null,e,t,r),n)}async function SP(e,t,r,n){let o=await r(n);if(o.data&&o.data.errors&&o.data.errors.length>0&&/Something went wrong while executing your query/.test(o.data.errors[0].message)){let s=new Yr(o.data.errors[0].message,500,{request:n,response:o});return Tm(e,t,s,n)}return o}function mc(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(o,s,i)=>(o.request.request=Object.assign({},o.request.request,{retries:s,retryAfter:i}),o)}};return r.enabled&&(e.hook.error("request",Tm.bind(null,r,n)),e.hook.wrap("request",vP.bind(null,r,n))),n}mc.VERSION=xP;var Cm=zl(hc(),1),TP="0.0.0-development",bc=()=>Promise.resolve();function PP(e,t,r){return e.retryLimiter.schedule(AP,e,t,r)}async function AP(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=CP(r.method,n),s=!o&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),d=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(d.expiration=1e3*60),(s||a)&&await e.write.key(e.id).schedule(d,bc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,bc),i&&await e.search.key(e.id).schedule(d,bc);let c=(o?e.auth:e.global).key(e.id).schedule(d,t,r);if(a){let u=await c;if(u.data.errors!=null&&u.data.errors.some(p=>p.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:u,data:u.data})}return c}function CP(e,t){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t==="/login/oauth/access_token")}var DP=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];function OP(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var Am=OP(DP),Dm=Am.test.bind(Am),ir={},FP=function(e,t){ir.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ir.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ir.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ir.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ir.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function ya(e,t){let{enabled:r=!0,Bottleneck:n=Cm.default,id:o="no-id",timeout:s=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:s};typeof i<"u"&&(a.connection=i);let l=Object.assign({clustering:i!=null,triggersNotification:Dm,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
68
+ `)[0]}catch{n+=1,s+=1;continue}if(!vP(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function EP(e){return{version:e.version,observed_at:e.observed_at,operation_key:e.operation_key,pool:e.pool,...e.actor===void 0?{}:{actor:e.actor},cost:e.cost}}function vP(e){return SP(e)?e.version===1&&typeof e.observed_at=="string"&&Number.isFinite(Date.parse(e.observed_at))&&typeof e.operation_key=="string"&&e.operation_key!==""&&(e.pool==="rest"||e.pool==="graphql"||e.pool==="search")&&(e.actor===void 0||typeof e.actor=="string"&&e.actor!=="")&&typeof e.cost=="number"&&Number.isSafeInteger(e.cost)&&e.cost>=0:!1}function pc(e,t){let r=Date.parse(e);if(!Number.isFinite(r))throw new Error(`${t} must be an ISO-8601 instant; received ${JSON.stringify(e)}`);return r}function SP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function TP(e){return e instanceof Error&&"code"in e}var Cm=zl(hc(),1);var Yr=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let o=Object.assign({},n.request);n.request.headers.authorization&&(o.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=o}};var PP="0.0.0-development";function AP(e){return e.request!==void 0}async function Am(e,t,r,n){if(!AP(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let o=n.request.retries!=null?n.request.retries:e.retries,s=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,o,s)}throw r}async function CP(e,t,r,n){let o=new Cm.default;return o.on("failed",function(s,i){let a=~~s.request.request?.retries,l=~~s.request.request?.retryAfter;if(n.request.retryCount=i.retryCount+1,a>i.retryCount)return l*e.retryAfterBaseValue}),o.schedule(DP.bind(null,e,t,r),n)}async function DP(e,t,r,n){let o=await r(n);if(o.data&&o.data.errors&&o.data.errors.length>0&&/Something went wrong while executing your query/.test(o.data.errors[0].message)){let s=new Yr(o.data.errors[0].message,500,{request:n,response:o});return Am(e,t,s,n)}return o}function mc(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(o,s,i)=>(o.request.request=Object.assign({},o.request.request,{retries:s,retryAfter:i}),o)}};return r.enabled&&(e.hook.error("request",Am.bind(null,r,n)),e.hook.wrap("request",CP.bind(null,r,n))),n}mc.VERSION=PP;var Om=zl(hc(),1),OP="0.0.0-development",bc=()=>Promise.resolve();function FP(e,t,r){return e.retryLimiter.schedule(IP,e,t,r)}async function IP(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=MP(r.method,n),s=!o&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),d=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(d.expiration=1e3*60),(s||a)&&await e.write.key(e.id).schedule(d,bc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,bc),i&&await e.search.key(e.id).schedule(d,bc);let c=(o?e.auth:e.global).key(e.id).schedule(d,t,r);if(a){let u=await c;if(u.data.errors!=null&&u.data.errors.some(p=>p.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:u,data:u.data})}return c}function MP(e,t){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t==="/login/oauth/access_token")}var LP=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];function jP(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var Dm=jP(LP),Fm=Dm.test.bind(Dm),ir={},BP=function(e,t){ir.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ir.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ir.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ir.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ir.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function ba(e,t){let{enabled:r=!0,Bottleneck:n=Om.default,id:o="no-id",timeout:s=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:s};typeof i<"u"&&(a.connection=i);let l=Object.assign({clustering:i!=null,triggersNotification:Fm,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
69
69
  You must pass the onSecondaryRateLimit and onRateLimit error handlers.
70
70
  See https://octokit.github.io/rest.js/#throttling
71
71
 
@@ -75,34 +75,34 @@ ${a}
75
75
  onRateLimit: (retryAfter, options) => {/* ... */}
76
76
  }
77
77
  })
78
- `);let d=!1,c=()=>{if(d)return;d=!0,ir.global==null&&FP(n,a),l.global=l.global??ir.global,l.auth=l.auth??ir.auth,l.search=l.search??ir.search,l.write=l.write??ir.write,l.notifications=l.notifications??ir.notifications,l.retryLimiter=l.retryLimiter??new n;let u={},p=new n.Events(u);u.on("secondary-limit",l.onSecondaryRateLimit),u.on("rate-limit",l.onRateLimit),u.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),l.retryLimiter.on("failed",async function(g,f){let[y,h,R]=f.args,{pathname:T}=new URL(R.url,"http://github.test");if(!(T.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let D=~~h.retryCount;h.retryCount=D,R.request.retryCount=D;let{wantRetry:M,retryAfter:N=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let U=Number(g.response.headers["retry-after"])||y.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",U,R,e,D),retryAfter:U}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(U=>U.type==="RATE_LIMITED")){let U=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),G=Math.max(Math.ceil((U-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",G,R,e,D),retryAfter:G}}return{}}();if(M)return h.retryCount++,N*y.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),PP(l,u,p))),{}}ya.VERSION=TP;ya.triggersNotification=Dm;function fn(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}function ka(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((o,s)=>ka.bind(null,e,s,o,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((o,s)=>s.hook.bind(null,o,n),r)():r(n))}function Om(e,t,r,n){let o=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(s,i)=>Promise.resolve().then(o.bind(null,i)).then(s.bind(null,i))),t==="after"&&(n=(s,i)=>{let a;return Promise.resolve().then(s.bind(null,i)).then(l=>(a=l,o(a,i))).then(()=>a)}),t==="error"&&(n=(s,i)=>Promise.resolve().then(s.bind(null,i)).catch(a=>o(a,i))),e.registry[r].push({hook:n,orig:o})}function Fm(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(o=>o.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Im=Function.bind,Mm=Im.bind(Im);function Lm(e,t,r){let n=Mm(Fm,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(o=>{let s=r?[t,o,r]:[t,o];e[o]=e.api[o]=Mm(Om,null).apply(null,s)})}function IP(){let e=Symbol("Singular"),t={registry:{}},r=ka.bind(null,t,e);return Lm(r,t,e),r}function MP(){let e={registry:{}},t=ka.bind(null,e);return Lm(t,e),t}var jm={Singular:IP,Collection:MP};var LP="0.0.0-development",jP=`octokit-endpoint.js/${LP} ${fn()}`,BP={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":jP},mediaType:{format:""}};function $P(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function NP(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Nm(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{NP(t[n])?n in e?r[n]=Nm(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Bm(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function kc(e,t,r){if(typeof t=="string"){let[o,s]=t.split(" ");r=Object.assign(s?{method:o,url:s}:{url:o},r)}else r=Object.assign({},t);r.headers=$P(r.headers),Bm(r),Bm(r.headers);let n=Nm(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(o=>!n.mediaType.previews.includes(o)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(o=>o.replace(/-preview/,""))),n}function GP(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(o=>o==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${o}=${encodeURIComponent(t[o])}`).join("&")}var WP=/\{[^{}}]+\}/g;function HP(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function UP(e){let t=e.match(WP);return t?t.map(HP).reduce((r,n)=>r.concat(n),[]):[]}function $m(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Gm(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function Fo(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ms(e,t,r){return t=e==="+"||e==="#"?Gm(t):Fo(t),r?Fo(r)+"="+t:t}function Oo(e){return e!=null}function yc(e){return e===";"||e==="&"||e==="?"}function qP(e,t,r,n){var o=e[r],s=[];if(Oo(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||typeof o=="boolean")o=o.toString(),n&&n!=="*"&&(o=o.substring(0,parseInt(n,10))),s.push(Ms(t,o,yc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Oo).forEach(function(i){s.push(Ms(t,i,yc(t)?r:""))}):Object.keys(o).forEach(function(i){Oo(o[i])&&s.push(Ms(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Oo).forEach(function(a){i.push(Ms(t,a))}):Object.keys(o).forEach(function(a){Oo(o[a])&&(i.push(Fo(a)),i.push(Ms(t,o[a].toString())))}),yc(t)?s.push(Fo(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Oo(o)&&s.push(Fo(r)):o===""&&(t==="&"||t==="?")?s.push(Fo(r)+"="):o===""&&s.push("");return s}function KP(e){return{expand:VP.bind(null,e)}}function VP(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,o,s){if(o){let a="",l=[];if(r.indexOf(o.charAt(0))!==-1&&(a=o.charAt(0),o=o.substr(1)),o.split(/,/g).forEach(function(d){var c=/([^:\*]*)(?::(\d+)|(\*))?/.exec(d);l.push(qP(t,a,c[1],c[2]||c[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(l.length!==0?a:"")+l.join(i)}else return l.join(",")}else return Gm(s)}),e==="/"?e:e.replace(/\/$/,"")}function Wm(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=$m(e,["method","baseUrl","url","headers","request","mediaType"]),i=UP(r);r=KP(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=$m(s,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(c=>c.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let c=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=c.concat(e.mediaType.previews).map(u=>{let p=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${u}-preview${p}`}).join(",")}return["GET","HEAD"].includes(t)?r=GP(r,l):"data"in l?o=l.data:Object.keys(l).length&&(o=l),!n["content-type"]&&typeof o<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof o>"u"&&(o=""),Object.assign({method:t,url:r,headers:n},typeof o<"u"?{body:o}:null,e.request?{request:e.request}:null)}function zP(e,t,r){return Wm(kc(e,t,r))}function Hm(e,t){let r=kc(e,t),n=zP.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Hm.bind(null,r),merge:kc.bind(null,r),parse:Wm})}var Um=Hm(null,BP);var lb=zl(Qm(),1);var oA=/^-?\d+$/,_a=/^-?\d+n+$/,gn=JSON.stringify,xc=JSON.parse,rb=/^-?\d+n$/,Xm=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Zm=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Ec=e=>e===void 0||typeof e=="function"||typeof e=="symbol",vc=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",sA=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let o=typeof t=="function",s=Array.isArray(t)?new Set(t.map(String)):null,i=(f,y,h)=>(h!==null&&typeof h=="object"&&typeof h.toJSON=="function"&&(h=h.toJSON(y)),typeof h=="string"&&_a.test(h)?h+"n":typeof h=="bigint"?"rawJSON"in JSON?JSON.rawJSON(h.toString()):h.toString()+"n":(o&&(h=t.call(f,y,h)),h!==null&&typeof h=="object"&&(h instanceof Number||h instanceof String||h instanceof Boolean)&&(h=h.valueOf()),h)),a=i({"":e},"",e);if(Ec(a))return;let l=a===null||typeof a!="object",d=vc(a);if(l||d)return gn(a);let c=[],u=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(c.push(f.isArray?"[":"{"),u++);let y=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
78
+ `);let d=!1,c=()=>{if(d)return;d=!0,ir.global==null&&BP(n,a),l.global=l.global??ir.global,l.auth=l.auth??ir.auth,l.search=l.search??ir.search,l.write=l.write??ir.write,l.notifications=l.notifications??ir.notifications,l.retryLimiter=l.retryLimiter??new n;let u={},p=new n.Events(u);u.on("secondary-limit",l.onSecondaryRateLimit),u.on("rate-limit",l.onRateLimit),u.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),l.retryLimiter.on("failed",async function(g,f){let[y,h,R]=f.args,{pathname:T}=new URL(R.url,"http://github.test");if(!(T.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let D=~~h.retryCount;h.retryCount=D,R.request.retryCount=D;let{wantRetry:M,retryAfter:N=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let U=Number(g.response.headers["retry-after"])||y.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",U,R,e,D),retryAfter:U}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(U=>U.type==="RATE_LIMITED")){let U=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),G=Math.max(Math.ceil((U-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",G,R,e,D),retryAfter:G}}return{}}();if(M)return h.retryCount++,N*y.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),FP(l,u,p))),{}}ba.VERSION=OP;ba.triggersNotification=Fm;function fn(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}function ya(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((o,s)=>ya.bind(null,e,s,o,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((o,s)=>s.hook.bind(null,o,n),r)():r(n))}function Im(e,t,r,n){let o=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(s,i)=>Promise.resolve().then(o.bind(null,i)).then(s.bind(null,i))),t==="after"&&(n=(s,i)=>{let a;return Promise.resolve().then(s.bind(null,i)).then(l=>(a=l,o(a,i))).then(()=>a)}),t==="error"&&(n=(s,i)=>Promise.resolve().then(s.bind(null,i)).catch(a=>o(a,i))),e.registry[r].push({hook:n,orig:o})}function Mm(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(o=>o.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Lm=Function.bind,jm=Lm.bind(Lm);function Bm(e,t,r){let n=jm(Mm,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(o=>{let s=r?[t,o,r]:[t,o];e[o]=e.api[o]=jm(Im,null).apply(null,s)})}function $P(){let e=Symbol("Singular"),t={registry:{}},r=ya.bind(null,t,e);return Bm(r,t,e),r}function NP(){let e={registry:{}},t=ya.bind(null,e);return Bm(t,e),t}var $m={Singular:$P,Collection:NP};var GP="0.0.0-development",WP=`octokit-endpoint.js/${GP} ${fn()}`,HP={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":WP},mediaType:{format:""}};function UP(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function qP(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Wm(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{qP(t[n])?n in e?r[n]=Wm(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Nm(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function kc(e,t,r){if(typeof t=="string"){let[o,s]=t.split(" ");r=Object.assign(s?{method:o,url:s}:{url:o},r)}else r=Object.assign({},t);r.headers=UP(r.headers),Nm(r),Nm(r.headers);let n=Wm(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(o=>!n.mediaType.previews.includes(o)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(o=>o.replace(/-preview/,""))),n}function KP(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(o=>o==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${o}=${encodeURIComponent(t[o])}`).join("&")}var VP=/\{[^{}}]+\}/g;function zP(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function JP(e){let t=e.match(VP);return t?t.map(zP).reduce((r,n)=>r.concat(n),[]):[]}function Gm(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Hm(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function Do(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Is(e,t,r){return t=e==="+"||e==="#"?Hm(t):Do(t),r?Do(r)+"="+t:t}function Co(e){return e!=null}function yc(e){return e===";"||e==="&"||e==="?"}function YP(e,t,r,n){var o=e[r],s=[];if(Co(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||typeof o=="boolean")o=o.toString(),n&&n!=="*"&&(o=o.substring(0,parseInt(n,10))),s.push(Is(t,o,yc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Co).forEach(function(i){s.push(Is(t,i,yc(t)?r:""))}):Object.keys(o).forEach(function(i){Co(o[i])&&s.push(Is(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Co).forEach(function(a){i.push(Is(t,a))}):Object.keys(o).forEach(function(a){Co(o[a])&&(i.push(Do(a)),i.push(Is(t,o[a].toString())))}),yc(t)?s.push(Do(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Co(o)&&s.push(Do(r)):o===""&&(t==="&"||t==="?")?s.push(Do(r)+"="):o===""&&s.push("");return s}function QP(e){return{expand:XP.bind(null,e)}}function XP(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,o,s){if(o){let a="",l=[];if(r.indexOf(o.charAt(0))!==-1&&(a=o.charAt(0),o=o.substr(1)),o.split(/,/g).forEach(function(d){var c=/([^:\*]*)(?::(\d+)|(\*))?/.exec(d);l.push(YP(t,a,c[1],c[2]||c[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(l.length!==0?a:"")+l.join(i)}else return l.join(",")}else return Hm(s)}),e==="/"?e:e.replace(/\/$/,"")}function Um(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=Gm(e,["method","baseUrl","url","headers","request","mediaType"]),i=JP(r);r=QP(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=Gm(s,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(c=>c.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let c=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=c.concat(e.mediaType.previews).map(u=>{let p=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${u}-preview${p}`}).join(",")}return["GET","HEAD"].includes(t)?r=KP(r,l):"data"in l?o=l.data:Object.keys(l).length&&(o=l),!n["content-type"]&&typeof o<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof o>"u"&&(o=""),Object.assign({method:t,url:r,headers:n},typeof o<"u"?{body:o}:null,e.request?{request:e.request}:null)}function ZP(e,t,r){return Um(kc(e,t,r))}function qm(e,t){let r=kc(e,t),n=ZP.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:qm.bind(null,r),merge:kc.bind(null,r),parse:Um})}var Km=qm(null,HP);var cb=zl(Zm(),1);var dA=/^-?\d+$/,Ra=/^-?\d+n+$/,gn=JSON.stringify,xc=JSON.parse,ob=/^-?\d+n$/,eb=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,tb=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Ec=e=>e===void 0||typeof e=="function"||typeof e=="symbol",vc=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",cA=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let o=typeof t=="function",s=Array.isArray(t)?new Set(t.map(String)):null,i=(f,y,h)=>(h!==null&&typeof h=="object"&&typeof h.toJSON=="function"&&(h=h.toJSON(y)),typeof h=="string"&&Ra.test(h)?h+"n":typeof h=="bigint"?"rawJSON"in JSON?JSON.rawJSON(h.toString()):h.toString()+"n":(o&&(h=t.call(f,y,h)),h!==null&&typeof h=="object"&&(h instanceof Number||h instanceof String||h instanceof Boolean)&&(h=h.valueOf()),h)),a=i({"":e},"",e);if(Ec(a))return;let l=a===null||typeof a!="object",d=vc(a);if(l||d)return gn(a);let c=[],u=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(c.push(f.isArray?"[":"{"),u++);let y=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
79
79
  `+n.repeat(u));let h=f.val[f.index],R=i(f.val,String(f.index),h);if(Ec(R))c.push("null"),f.first=!1,f.index++;else{let T=R!==null&&typeof R=="object",$=vc(R);if(T&&!$){if(g.has(R))throw new TypeError("Converting circular structure to JSON");g.add(R),p.push({parent:f.val,key:String(f.index),val:R,isArray:Array.isArray(R),keys:Array.isArray(R)?null:Object.keys(R),index:0,first:!0}),f.first=!1,f.index++}else c.push(gn(R)),f.first=!1,f.index++}}else y=!0;else{for(;f.index<f.keys.length;){let R=f.keys[f.index++];if(s&&!s.has(R))continue;let $=f.val[R],D=i(f.val,R,$);if(Ec(D))continue;f.first||c.push(","),n?c.push(`
80
80
  `+n.repeat(u)+gn(R)+": "):c.push(gn(R)+":");let M=D!==null&&typeof D=="object",N=vc(D);if(M&&!N){if(g.has(D))throw new TypeError("Converting circular structure to JSON");g.add(D),p.push({parent:f.val,key:R,val:D,isArray:Array.isArray(D),keys:Array.isArray(D)?null:Object.keys(D),index:0,first:!0}),f.first=!1;break}else c.push(gn(D)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(y=!0)}y&&(u--,!f.first&&n&&c.push(`
81
- `+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},nb=(e,t,r)=>{try{return"rawJSON"in JSON?gn(e,(a,l)=>typeof l=="bigint"?JSON.rawJSON(l.toString()):typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r):e?gn(e,(a,l)=>typeof l=="string"&&_a.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(Xm,"$1$2$3").replace(Zm,"$1$2$3"):gn(e,t,r)}catch(n){if(n instanceof RangeError){let o=sA(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(Xm,"$1$2$3").replace(Zm,"$1$2$3")}throw n}},Ra=new Map,iA=()=>{let e=JSON.parse.toString();if(Ra.has(e))return Ra.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return Ra.set(e,t),t}catch{return Ra.set(e,!1),!1}},aA=(e,t,r,n)=>typeof t=="string"&&rb.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&_a.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,lA=(e,t)=>JSON.parse(e,(r,n,o)=>{let s=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=s&&i,l=o&&oA.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),ob=Number.MAX_SAFE_INTEGER.toString(),eb=ob.length,dA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,cA=/^"-?\d+n+"$/,uA=(e,t)=>{let r={"":e},n=[{parent:r,key:"",visited:!1}];for(;n.length>0;){let o=n[n.length-1];if(o.visited){let{parent:s,key:i}=o,a=s[i];typeof a=="string"&&(rb.test(a)?a=BigInt(a.slice(0,-1)):_a.test(a)&&(a=a.slice(0,-1))),typeof t=="function"&&(a=t.call(s,i,a)),a===void 0?delete s[i]:s[i]=a,n.pop()}else{o.visited=!0;let s=o.parent[o.key];if(s!==null&&typeof s=="object"){let a=Object.keys(s);for(let l=a.length-1;l>=0;l--)n.push({parent:s,key:a[l],visited:!1})}}}return r[""]},tb=e=>e.replace(dA,(t,r,n,o)=>{let s=t[0]==='"';if(s&&cA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<eb||r.length===eb&&r<=ob);return s||a||l?t:'"'+t+'n"'}),sb=(e,t)=>{if(!e)return xc(e,t);try{if(iA())return lA(e,t);let r=tb(e);return xc(r,(n,o,s)=>aA(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=tb(e),o=xc(n);return uA(o,t)}throw r}};var pA="10.0.13",fA={headers:{"user-agent":`octokit-request.js/${pA} ${fn()}`}};function gA(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var ib=()=>"";async function ab(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,o=gA(e.body)||Array.isArray(e.body)?nb(e.body):e.body,s=Object.fromEntries(Object.entries(e.headers).map(([u,p])=>[u,String(p)])),i;try{i=await t(e.url,{method:e.method,body:o,redirect:e.request?.redirect,headers:s,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(u){let p="Unknown Error";if(u instanceof Error){if(u.name==="AbortError")throw u.status=500,u;p=u.message,u.name==="TypeError"&&"cause"in u&&(u.cause instanceof Error?p=u.cause.message:typeof u.cause=="string"&&(p=u.cause))}let g=new Yr(p,500,{request:e});throw g.cause=u,g}let a=i.status,l=i.url,d={};for(let[u,p]of i.headers)d[u]=p;let c={url:l,status:a,headers:d,data:""};if("deprecation"in d){let u=d.link&&d.link.match(/<([^<>]+)>; rel="deprecation"/),p=u&&u.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${d.sunset}${p?`. See ${p}`:""}`)}if(a===204||a===205)return c;if(e.method==="HEAD"){if(a<400)return c;throw new Yr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Sc(i),new Yr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Sc(i),new Yr(mA(c.data),a,{response:c,request:e});return c.data=n?await Sc(i):i.body,c}async function Sc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(ib);let r=(0,lb.parse)(t);if(hA(r)){let n="";try{return n=await e.text(),sb(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(ib):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function hA(e){return e.type==="application/json"||e.type==="application/scim+json"}function mA(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function Tc(e,t){let r=e.defaults(t);return Object.assign(function(o,s){let i=r.merge(o,s);if(!i.request||!i.request.hook)return ab(r.parse(i));let a=(l,d)=>ab(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:Tc.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Tc.bind(null,r)})}var Ls=Tc(Um,fA);var bA="0.0.0-development";function yA(e){return`Request failed due to following response errors:
81
+ `+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},sb=(e,t,r)=>{try{return"rawJSON"in JSON?gn(e,(a,l)=>typeof l=="bigint"?JSON.rawJSON(l.toString()):typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r):e?gn(e,(a,l)=>typeof l=="string"&&Ra.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(eb,"$1$2$3").replace(tb,"$1$2$3"):gn(e,t,r)}catch(n){if(n instanceof RangeError){let o=cA(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(eb,"$1$2$3").replace(tb,"$1$2$3")}throw n}},wa=new Map,uA=()=>{let e=JSON.parse.toString();if(wa.has(e))return wa.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return wa.set(e,t),t}catch{return wa.set(e,!1),!1}},pA=(e,t,r,n)=>typeof t=="string"&&ob.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&Ra.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,fA=(e,t)=>JSON.parse(e,(r,n,o)=>{let s=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=s&&i,l=o&&dA.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),ib=Number.MAX_SAFE_INTEGER.toString(),rb=ib.length,gA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,hA=/^"-?\d+n+"$/,mA=(e,t)=>{let r={"":e},n=[{parent:r,key:"",visited:!1}];for(;n.length>0;){let o=n[n.length-1];if(o.visited){let{parent:s,key:i}=o,a=s[i];typeof a=="string"&&(ob.test(a)?a=BigInt(a.slice(0,-1)):Ra.test(a)&&(a=a.slice(0,-1))),typeof t=="function"&&(a=t.call(s,i,a)),a===void 0?delete s[i]:s[i]=a,n.pop()}else{o.visited=!0;let s=o.parent[o.key];if(s!==null&&typeof s=="object"){let a=Object.keys(s);for(let l=a.length-1;l>=0;l--)n.push({parent:s,key:a[l],visited:!1})}}}return r[""]},nb=e=>e.replace(gA,(t,r,n,o)=>{let s=t[0]==='"';if(s&&hA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<rb||r.length===rb&&r<=ib);return s||a||l?t:'"'+t+'n"'}),ab=(e,t)=>{if(!e)return xc(e,t);try{if(uA())return fA(e,t);let r=nb(e);return xc(r,(n,o,s)=>pA(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=nb(e),o=xc(n);return mA(o,t)}throw r}};var bA="10.0.13",yA={headers:{"user-agent":`octokit-request.js/${bA} ${fn()}`}};function kA(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var lb=()=>"";async function db(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,o=kA(e.body)||Array.isArray(e.body)?sb(e.body):e.body,s=Object.fromEntries(Object.entries(e.headers).map(([u,p])=>[u,String(p)])),i;try{i=await t(e.url,{method:e.method,body:o,redirect:e.request?.redirect,headers:s,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(u){let p="Unknown Error";if(u instanceof Error){if(u.name==="AbortError")throw u.status=500,u;p=u.message,u.name==="TypeError"&&"cause"in u&&(u.cause instanceof Error?p=u.cause.message:typeof u.cause=="string"&&(p=u.cause))}let g=new Yr(p,500,{request:e});throw g.cause=u,g}let a=i.status,l=i.url,d={};for(let[u,p]of i.headers)d[u]=p;let c={url:l,status:a,headers:d,data:""};if("deprecation"in d){let u=d.link&&d.link.match(/<([^<>]+)>; rel="deprecation"/),p=u&&u.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${d.sunset}${p?`. See ${p}`:""}`)}if(a===204||a===205)return c;if(e.method==="HEAD"){if(a<400)return c;throw new Yr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Sc(i),new Yr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Sc(i),new Yr(RA(c.data),a,{response:c,request:e});return c.data=n?await Sc(i):i.body,c}async function Sc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(lb);let r=(0,cb.parse)(t);if(wA(r)){let n="";try{return n=await e.text(),ab(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(lb):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function wA(e){return e.type==="application/json"||e.type==="application/scim+json"}function RA(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function Tc(e,t){let r=e.defaults(t);return Object.assign(function(o,s){let i=r.merge(o,s);if(!i.request||!i.request.hook)return db(r.parse(i));let a=(l,d)=>db(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:Tc.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Tc.bind(null,r)})}var Ms=Tc(Km,yA);var _A="0.0.0-development";function xA(e){return`Request failed due to following response errors:
82
82
  `+e.errors.map(t=>` - ${t.message}`).join(`
83
- `)}var kA=class extends Error{constructor(e,t,r){super(yA(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},wA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],RA=["query","method","url"],db=/\/api\/v3\/?$/;function _A(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(RA.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,o=Object.keys(n).reduce((i,a)=>wA.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),s=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return db.test(s)&&(o.url=s.replace(db,"/api/graphql")),e(o).then(i=>{if(i.data.errors){let a={};for(let l of Object.keys(i.headers))a[l]=i.headers[l];throw new kA(o,a,i.data)}return i.data.data})}function Pc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>_A(r,o,s),{defaults:Pc.bind(null,r),endpoint:r.endpoint})}var wG=Pc(Ls,{headers:{"user-agent":`octokit-graphql.js/${bA} ${fn()}`},method:"POST",url:"/graphql"});function cb(e){return Pc(e,{method:"POST",url:"/graphql"})}var Ac="(?:[a-zA-Z0-9_-]+)",ub="\\.",pb=new RegExp(`^${Ac}${ub}${Ac}${ub}${Ac}$`),xA=pb.test.bind(pb);async function EA(e){let t=xA(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function vA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function SA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=vA(e),t(o)}var fb=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(EA.bind(null,t),{hook:SA.bind(null,t)})};var Cc="7.0.7";var gb=()=>{},TA=console.warn.bind(console),PA=console.error.bind(console);function AA(e={}){return typeof e.debug!="function"&&(e.debug=gb),typeof e.info!="function"&&(e.info=gb),typeof e.warn!="function"&&(e.warn=TA),typeof e.error!="function"&&(e.error=PA),e}var hb=`octokit-core.js/${Cc} ${fn()}`,xa=class{static VERSION=Cc;static defaults(t){return class extends this{constructor(...n){let o=n[0]||{};if(typeof t=="function"){super(t(o));return}super(Object.assign({},t,o,o.userAgent&&t.userAgent?{userAgent:`${o.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(o=>!r.includes(o)))}}constructor(t={}){let r=new jm.Collection,n={baseUrl:Ls.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${hb}`:hb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Ls.defaults(n),this.graphql=cb(this.request).defaults(n),this.log=AA(t.log),this.hook=r,t.authStrategy){let{authStrategy:s,...i}=t,a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=fb(t.auth);r.wrap("request",s.hook),this.auth=s}let o=this.constructor;for(let s=0;s<o.plugins.length;++s)Object.assign(this,o.plugins[s](this,t))}request;graphql;log;hook;auth};var mb="6.0.0";function Dc(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),o=e.request.endpoint.parse(r),s=o.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}Dc.VERSION=mb;var CA="0.0.0-development";function DA(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,o=e.data.total_count,s=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=o,e.data.total_commits=s,e}function Oc(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),o=typeof t=="function"?t:e.request,s=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let l=await o({method:s,url:a,headers:i}),d=DA(l);if(a=((d.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in d.data){let c=new URL(d.url),u=c.searchParams,p=parseInt(u.get("page")||"1",10),g=parseInt(u.get("per_page")||"250",10);p*g<d.data.total_commits&&(u.set("page",String(p+1)),a=c.toString())}return{value:d}}catch(l){if(l.status!==409)throw l;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function bb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),yb(e,[],Oc(e,t,r)[Symbol.asyncIterator](),n)}function yb(e,t,r,n){return r.next().then(o=>{if(o.done)return t;let s=!1;function i(){s=!0}return t=t.concat(n?n(o.value,i):o.value.data),s?t:yb(e,t,r,n)})}var jG=Object.assign(bb,{iterator:Oc});function Fc(e){return{paginate:Object.assign(bb.bind(null,e),{iterator:Oc.bind(null,e)})}}Fc.VERSION=CA;var Ic="17.0.0";var OA={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},kb=OA;var Hn=new Map;for(let[e,t]of Object.entries(kb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Hn.has(e)||Hn.set(e,new Map),Hn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var FA={has({scope:e},t){return Hn.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Hn.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let o=Hn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=IA(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Mc(e){let t={};for(let r of Hn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},FA);return t}function IA(e,t,r,n,o){let s=e.request.defaults(n);function i(...a){let l=s.endpoint.merge(...a);if(o.mapToData)return l=Object.assign({},l,{data:l[o.mapToData],[o.mapToData]:void 0}),s(l);if(o.renamed){let[d,c]=o.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${d}.${c}()`)}if(o.deprecated&&e.log.warn(o.deprecated),o.renamedParameters){let d=s.endpoint.merge(...a);for(let[c,u]of Object.entries(o.renamedParameters))c in d&&(e.log.warn(`"${c}" parameter is deprecated for "octokit.${t}.${r}()". Use "${u}" instead`),u in d||(d[u]=d[c]),delete d[c]);return s(d)}return s(...a)}return Object.assign(i,s)}function MA(e){return{rest:Mc(e)}}MA.VERSION=Ic;function Lc(e){let t=Mc(e);return{...t,rest:t}}Lc.VERSION=Ic;var wb="22.0.1";var Rb=xa.plugin(Dc,Lc,Fc).defaults({userAgent:`octokit-rest.js/${wb}`});function LA(e){return`r${e}`}function _b(e){if(e.length===0)throw new Error("an aliased single-object query needs at least one read");let t=e[0].kind;if(e.some(s=>s.kind!==t))throw new Error("an aliased single-object query may contain only one object kind");let r={},n=t==="pr"?"pullRequest":"issue";return{query:["query CoalescedSingleObjectReads {",...e.map((s,i)=>{if(!Number.isSafeInteger(s.number)||s.number<=0)throw new Error(`an aliased single-object read needs a positive number, got ${s.number}`);let a=s.selection.trim();if(a==="")throw new Error("an aliased single-object read needs a field selection");let l=LA(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
83
+ `)}var EA=class extends Error{constructor(e,t,r){super(xA(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},vA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],SA=["query","method","url"],ub=/\/api\/v3\/?$/;function TA(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(SA.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,o=Object.keys(n).reduce((i,a)=>vA.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),s=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return ub.test(s)&&(o.url=s.replace(ub,"/api/graphql")),e(o).then(i=>{if(i.data.errors){let a={};for(let l of Object.keys(i.headers))a[l]=i.headers[l];throw new EA(o,a,i.data)}return i.data.data})}function Pc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>TA(r,o,s),{defaults:Pc.bind(null,r),endpoint:r.endpoint})}var wG=Pc(Ms,{headers:{"user-agent":`octokit-graphql.js/${_A} ${fn()}`},method:"POST",url:"/graphql"});function pb(e){return Pc(e,{method:"POST",url:"/graphql"})}var Ac="(?:[a-zA-Z0-9_-]+)",fb="\\.",gb=new RegExp(`^${Ac}${fb}${Ac}${fb}${Ac}$`),PA=gb.test.bind(gb);async function AA(e){let t=PA(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function CA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function DA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=CA(e),t(o)}var hb=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(AA.bind(null,t),{hook:DA.bind(null,t)})};var Cc="7.0.7";var mb=()=>{},OA=console.warn.bind(console),FA=console.error.bind(console);function IA(e={}){return typeof e.debug!="function"&&(e.debug=mb),typeof e.info!="function"&&(e.info=mb),typeof e.warn!="function"&&(e.warn=OA),typeof e.error!="function"&&(e.error=FA),e}var bb=`octokit-core.js/${Cc} ${fn()}`,_a=class{static VERSION=Cc;static defaults(t){return class extends this{constructor(...n){let o=n[0]||{};if(typeof t=="function"){super(t(o));return}super(Object.assign({},t,o,o.userAgent&&t.userAgent?{userAgent:`${o.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(o=>!r.includes(o)))}}constructor(t={}){let r=new $m.Collection,n={baseUrl:Ms.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${bb}`:bb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Ms.defaults(n),this.graphql=pb(this.request).defaults(n),this.log=IA(t.log),this.hook=r,t.authStrategy){let{authStrategy:s,...i}=t,a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=hb(t.auth);r.wrap("request",s.hook),this.auth=s}let o=this.constructor;for(let s=0;s<o.plugins.length;++s)Object.assign(this,o.plugins[s](this,t))}request;graphql;log;hook;auth};var yb="6.0.0";function Dc(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),o=e.request.endpoint.parse(r),s=o.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}Dc.VERSION=yb;var MA="0.0.0-development";function LA(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,o=e.data.total_count,s=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=o,e.data.total_commits=s,e}function Oc(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),o=typeof t=="function"?t:e.request,s=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let l=await o({method:s,url:a,headers:i}),d=LA(l);if(a=((d.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in d.data){let c=new URL(d.url),u=c.searchParams,p=parseInt(u.get("page")||"1",10),g=parseInt(u.get("per_page")||"250",10);p*g<d.data.total_commits&&(u.set("page",String(p+1)),a=c.toString())}return{value:d}}catch(l){if(l.status!==409)throw l;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function kb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),wb(e,[],Oc(e,t,r)[Symbol.asyncIterator](),n)}function wb(e,t,r,n){return r.next().then(o=>{if(o.done)return t;let s=!1;function i(){s=!0}return t=t.concat(n?n(o.value,i):o.value.data),s?t:wb(e,t,r,n)})}var jG=Object.assign(kb,{iterator:Oc});function Fc(e){return{paginate:Object.assign(kb.bind(null,e),{iterator:Oc.bind(null,e)})}}Fc.VERSION=MA;var Ic="17.0.0";var jA={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Rb=jA;var Wn=new Map;for(let[e,t]of Object.entries(Rb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Wn.has(e)||Wn.set(e,new Map),Wn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var BA={has({scope:e},t){return Wn.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Wn.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let o=Wn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=$A(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Mc(e){let t={};for(let r of Wn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},BA);return t}function $A(e,t,r,n,o){let s=e.request.defaults(n);function i(...a){let l=s.endpoint.merge(...a);if(o.mapToData)return l=Object.assign({},l,{data:l[o.mapToData],[o.mapToData]:void 0}),s(l);if(o.renamed){let[d,c]=o.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${d}.${c}()`)}if(o.deprecated&&e.log.warn(o.deprecated),o.renamedParameters){let d=s.endpoint.merge(...a);for(let[c,u]of Object.entries(o.renamedParameters))c in d&&(e.log.warn(`"${c}" parameter is deprecated for "octokit.${t}.${r}()". Use "${u}" instead`),u in d||(d[u]=d[c]),delete d[c]);return s(d)}return s(...a)}return Object.assign(i,s)}function NA(e){return{rest:Mc(e)}}NA.VERSION=Ic;function Lc(e){let t=Mc(e);return{...t,rest:t}}Lc.VERSION=Ic;var _b="22.0.1";var xb=_a.plugin(Dc,Lc,Fc).defaults({userAgent:`octokit-rest.js/${_b}`});function GA(e){return`r${e}`}function Eb(e){if(e.length===0)throw new Error("an aliased single-object query needs at least one read");let t=e[0].kind;if(e.some(s=>s.kind!==t))throw new Error("an aliased single-object query may contain only one object kind");let r={},n=t==="pr"?"pullRequest":"issue";return{query:["query CoalescedSingleObjectReads {",...e.map((s,i)=>{if(!Number.isSafeInteger(s.number)||s.number<=0)throw new Error(`an aliased single-object read needs a positive number, got ${s.number}`);let a=s.selection.trim();if(a==="")throw new Error("an aliased single-object read needs a field selection");let l=GA(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
84
84
  `)})," rateLimit { cost }","}"].join(`
85
- `),aliases:r}}function xb(e,t){let r=t!==null&&typeof t=="object"?t:{},n=r.data??r,o=n!==null&&typeof n=="object"?n:{};return Object.entries(e.aliases).map(([s,i])=>{let a=o[s];if(a===null||typeof a!="object")return{read:i,value:null};let l=a.object;return{read:i,value:l!==null&&typeof l=="object"&&!Array.isArray(l)?l:null}})}var jA=Rb.plugin(mc,ya);function Eb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function vb(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}var Io=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}};function jc(e){let t=e.etags??Eb(),r=new jA({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async c=>{let u=t.get(c.cacheKey),p={...c.parameters??{}},g=hn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),y=f.headers,h=Ea(y,"etag");return h!==void 0&&t.set(c.cacheKey,{etag:h,data:f.data,headers:y}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:y,quotaFree:!1}}catch(f){if(js(f)===304){if(u===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(c.cacheKey)} without a held answer to reuse`,{cause:f});let y=Sb(f),h={...u.headers,...y},R=Ea(h,"etag")??u.etag;return t.set(c.cacheKey,{etag:R,data:u.data,headers:h}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:h,quotaFree:!0}}throw js(f)===401?new Io({cause:f}):f}},o=new Map,s=!1,i=async c=>{let u=c.input,p=u.kind==="pr";try{let g=await n({cacheKey:u.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:u.owner,repo:u.repo,...p?{pull_number:u.number}:{issue_number:u.number}},operation:u.operation,actor:u.actor});c.resolve({data:u.project?u.project(g.data,"rest"):g.data,surface:"rest",quotaFree:g.quotaFree})}catch(g){c.reject(g)}},a=async c=>{try{let u=_b(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=xb(u,p),f=$A(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:NA(c.map(({input:h})=>h.actor))}),g.forEach((h,R)=>{let T=c[R];h.value===null?T.reject(new Error(`GitHub returned no ${h.read.kind} #${h.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(h.value,"graphql"):h.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=js(u)===401?new Io({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=vb(c);s=!1;let p=[...o.values()];o.clear(),await Promise.all(p.map(async g=>{g.length>u?await a(g):await Promise.all(g.map(i))}))};return{conditionalRest:n,singleObject:c=>t.get(c.cacheKey)!==void 0?new Promise((u,p)=>{i({input:c,resolve:u,reject:p})}):new Promise((u,p)=>{let g=o.get(c.kind)??[];g.push({input:c,resolve:u,reject:p}),o.set(c.kind,g),s||(s=!0,setTimeout(()=>void l(),0))}),async conditionalPaginate(c){let u=[],p={},g=0,f=!0,y=1;for(;;){let h=await n({...c,cacheKey:`${c.cacheKey}:page:${y}`,parameters:{...c.parameters??{},per_page:100,page:y}});if(g+=1,f=f&&h.quotaFree,!Array.isArray(h.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${y}`);if(u.push(...h.data),p=h.headers,!BA(h.headers))break;y+=1}return{data:u,headers:p,requestCount:g,quotaFree:f}},async graphql(c,u={},p){try{let g=await r.graphql(c,u);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),g}catch(g){throw js(g)===401?new Io({cause:g}):g}}}}function BA(e){let t=Ea(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Bs(e){let t=js(e),r=Sb(e);return t===429||t===403&&Ea(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function js(e){if(hn(e))return typeof e.status=="number"?e.status:void 0}function Sb(e){return!hn(e)||!hn(e.response)||!hn(e.response.headers)?{}:e.response.headers}function Ea(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function hn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function $A(e){let t=hn(e)?e:{},r=hn(t.data)?t.data:t,o=(hn(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(o)||o<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return o}function NA(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var Pb="rate_limit",Ab={rest:"core",graphql:"graphql",search:"search"},Qr=["rest","graphql","search"];function Pa(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Qr],detail:t??"no balance has been asked for yet, so none is known"}}var $c=15e3,Mo=.15,Sa=[{at_or_below_fraction:0,every_ms:$c,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Mo,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}];var s5=60*6e4,Bc=2;function Cb(e,t){let r=Tb(e),n=Tb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Qr){let l=Ab[a],d=n[l],c=HA(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Qr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${Qr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Nc(e){try{let t=await e.transport();return Cb(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Pa(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Gc(e){let t=null;for(let r of Qr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function Aa(e,t){let r=Gc(e);if(r==null)return Ta(Mo).every_ms;let n=Ta(r.fraction);if(r.remaining>0)return n.every_ms;let o=Ob(t.now,r.reset_at);return o==null?n.every_ms:Math.max($c,Math.min(n.every_ms,o))}function Wc(e,t=Mo){return Math.ceil(e.limit*t)}function Db(e,t,r=Mo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Wc(n,r)?"reserved":"open"}function Hc(e){let t=e.reservedFraction??Mo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Ta(t).every_ms*Bc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Ta(t).every_ms,pools:[],unreported_pools:[...Qr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=Aa(r,{now:e.now}),o=e.stalenessMs??n*Bc,s=Ob(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Qr.map(c=>r.pools[c]).filter(c=>c!=null),l=WA(r,t),d=Gc(r);return{version:1,origin:"asked",outcome:r.outcome,asked_at:r.asked_at,age_ms:s,threshold_ms:o,stale:i,posture:l,reserved_fraction:t,next_poll_ms:n,pools:a,unreported_pools:r.unreported_pools,reason:i?`this balance is stale: asked ${s==null?"at an unreadable instant":`${s}ms ago`}, past the ${o}ms window, so the posture below is the last one the token confirmed and not the current one`:GA(l,d,r,t)}}function Uc(e){if(!Kc(e))return!1;let t=e;return t.version===1&&t.origin==="asked"&&(t.outcome==="asked"||t.outcome==="unanswered")&&(t.asked_at===null||typeof t.asked_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.posture=="string"&&typeof t.reserved_fraction=="number"&&typeof t.next_poll_ms=="number"&&Array.isArray(t.pools)&&Array.isArray(t.unreported_pools)&&typeof t.reason=="string"}function GA(e,t,r,n){if(t==null)return r.detail;let o=Wc(t,n);switch(e){case"spent":return`the ${t.pool} pool is spent and resets at ${t.reset_at}: work is not queued, it is refused`;case"reserved":return`the ${t.pool} pool has ${t.remaining} of ${t.limit} left, inside the reserved band of ${o}: convenience reads are refused and the claim, a landing and a closing comment still pass`;default:return`the ${t.pool} pool is the tightest at ${t.remaining} of ${t.limit}, above the reserved band of ${o}`}}function WA(e,t){let r="unknown";for(let n of Qr){if(e.pools[n]==null)continue;let o=Db(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Ta(e){for(let t of Sa)if(e<=t.at_or_below_fraction)return t;return Sa[Sa.length-1]}function HA(e,t,r){if(!Kc(r))return null;let n=va(r.limit),o=va(r.remaining),s=va(r.used),i=va(r.reset);return n==null||n<=0||o==null?null:{pool:e,resource:t,limit:n,remaining:o,used:s??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:o/n}}function qc(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${Pb}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function Ob(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function va(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Tb(e){return Kc(e)?e:{}}function Kc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as UA}from"node:child_process";import{existsSync as qA,readFileSync as Ca,readdirSync as KA}from"node:fs";import{dirname as VA,join as Un}from"node:path";function $s(e){let t=As(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Co(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Fb(e){let t=[],r=[];for(let n of e.workers){let o=$s(n);if(o==null){r.push({worker_id:n.worker_id,reason:(As(n).memory_max??As(n).memory_high)==null?"this Worker declared no memory budget and the host derived no ceiling for it, so the sampler has none to enforce":"this Worker's declared memory budget cannot be reduced to bytes, so the sampler has no ceiling to enforce"});continue}let s=e.rss[n.worker_id];if(typeof s!="number"||!Number.isFinite(s)){r.push({worker_id:n.worker_id,reason:"the host produced no RSS reading for this Worker on this tick, and an unmeasured Worker is never killed on suspicion"});continue}if(!(s<=o.bytes)){if(e.sources?.[n.worker_id]==="cgroup"&&o.name==="MemoryMax"){r.push({worker_id:n.worker_id,reason:`this Worker's ${o.name} of ${o.declared} is held by the kernel on its own cgroup, and the reading is memory.current \u2014 which counts reclaimable page cache the kernel drops before it kills anything, so the daemon does not duplicate an enforcement that can tell cache from anonymous memory`});continue}t.push(zA(n,o,s))}}return{terminations:t,unenforceable:r}}function zA(e,t,r){let n=`Worker ${JSON.stringify(e.worker_id)} of project ${JSON.stringify(e.project_label)}`;return{version:1,worker_id:e.worker_id,project_label:e.project_label,outcome:"terminated-over-memory-budget",classification:"budget-exceeded",stall:!1,budget_name:t.name,budget_declared:t.declared,budget_bytes:t.bytes,observed_rss_bytes:r,workspace_path:e.workspace_path,reason:`redskilled terminated ${n}: its tree RSS of ${r} bytes exceeded its ${t.name} budget of ${t.declared} (${t.bytes} bytes). This is a budget termination, not a stall, and the work in ${JSON.stringify(e.workspace_path)} is handed forward.`}}var JA=4096;function Ib(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=QA(e,r,t);for(let[u,p]of a){let g=eC(p);g!=null&&(o[u]=g.memoryBytes,g.cpuSeconds!=null&&(s[u]=g.cpuSeconds),i[u]="cgroup")}let l=e.filter(u=>i[u.worker_id]==null);if(l.length===0)return{rss:o,cpu_seconds:s,sources:i};let d=nC(r,t);if(d.size===0)return{rss:o,cpu_seconds:s,sources:i};let c=new Map;for(let u of d.values()){let p=c.get(u.ppid);p?p.push(u.pid):c.set(u.ppid,[u.pid])}for(let u of l){if(!d.has(u.pid))continue;let p=0,g=0,f=[u.pid],y=new Set;for(;f.length>0;){let h=f.pop();if(y.has(h))continue;y.add(h);let R=d.get(h);if(R){p+=R.rssBytes,g+=R.cpuSeconds;for(let T of c.get(h)??[])f.push(T)}}o[u.worker_id]=p,s[u.worker_id]=g,i[u.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,sources:i}}var YA="/sys/fs/cgroup";function QA(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??YA,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=XA(s,r);for(let l of i)for(let d of a){let c=Un(d,l.unit);if(qA(Un(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function XA(e,t){let r=t.selfCgroupPath??ZA(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Un(e,s));let a=VA(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(Un(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function ZA(){try{for(let e of Ca("/proc/self/cgroup","utf8").split(`
86
- `))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function eC(e){let t;try{t=Ca(Un(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:tC(e)}}function tC(e){let t;try{t=Ca(Un(e,"cpu.stat"),"utf8")}catch{return null}return rC(t)}function rC(e){for(let t of e.split(`
87
- `)){let[r,n]=t.trim().split(/\s+/);if(r!=="usage_usec")continue;let o=Number(n);return!Number.isFinite(o)||o<0?null:o/1e6}return null}function nC(e,t){return t.procRoot!=null||e==="linux"?dC(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?aC(oC(t.psTable)):new Map}function oC(e){try{return(e??sC)()}catch{return""}}function sC(){return UA("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var iC=1024;function aC(e){let t=new Map;for(let r of e.split(`
88
- `)){let n=r.trim().split(/\s+/);if(n.length!==4)continue;let[o,s,i]=n.slice(0,3).map(Number);if(![o,s,i].every(l=>l!=null&&Number.isSafeInteger(l)&&l>=0))continue;let a=lC(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*iC,cpuSeconds:a})}return t}function lC(e){let t=e.indexOf("-"),r=t<0?0:Number(e.slice(0,t));if(!Number.isFinite(r)||r<0)return null;let n=e.slice(t+1).split(":"),o=r*86400,s=1;for(let i=n.length-1;i>=0;i--){let a=Number(n[i]);if(!Number.isFinite(a)||a<0||n[i]==="")return null;o+=a*s,s*=60}return o}function dC(e){let t=new Map,r;try{r=KA(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=Ca(Un(e,n,"stat"),"utf8")}catch{continue}let s=uC(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*JA,cpuSeconds:s.cpuTicks/cC})}return t}var cC=100;function uC(e){let t=e.lastIndexOf(")");if(t<0)return null;let r=Number(e.slice(0,e.indexOf(" "))),n=e.slice(t+1).trim().split(/\s+/),o=Number(n[1]),s=Number(n[11]),i=Number(n[12]),a=Number(n[21]);return!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(i)?null:{pid:r,ppid:o,rssPages:Math.max(0,a),cpuTicks:Math.max(0,s)+Math.max(0,i)}}var pC=["api","graphql"],L5=uc(pC);var Mb=100,zc=6e4,fC=2*zc,gC=7*24*60*60*1e3,Vc=class extends Error{constructor(r,n,o){super(`redskilled polls every repository with one host token ${JSON.stringify(o)}, and project ${JSON.stringify(r)} declares its own credential ${JSON.stringify(n)}: a project needing its own credential invalidates the host-scoped poller (ADR 0130 Amendment 1) rather than bending it, so the poller returns to the projects instead of reaching this repository under the wrong identity`);this.projectLabel=r;this.tokenRef=n;this.hostTokenRef=o;this.name="RedskilledSplitCredentialError"}};function Jc(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new Vc(r.project_label,r.token_ref,t)}function Nb(e,t={now:new Date(0).toISOString()}){qb(e);let r=t.closedWindowMs??gC,n=Date.parse(t.now);if(!Number.isFinite(n))throw new Error(`redskilled activity fetch needs an instant, not ${JSON.stringify(t.now)}`);let o=new Date(n-Math.max(0,r)).toISOString(),s=e.map((l,d)=>({alias:`r${d}`,search_alias:`c${d}`,project:l}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...s.flatMap(({alias:l,search_alias:d,project:c})=>{let u=JSON.stringify(c.owner),p=JSON.stringify(c.name),g=JSON.stringify(`repo:${c.owner}/${c.name} is:closed closed:>=${o}`);return[` ${l}: repository(owner: ${u}, name: ${p}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${d}: search(query: ${g}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
89
- `),aliases:s,closed_since:o}}function hC(e,t,r){let n=Lo(t),o=Lo(n.data),s=Array.isArray(n.errors)?n.errors.map(Lo):[],i=RC(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,project:c})=>{let u=c.owner+"/"+c.name,p=o[l],g=s.find(f=>Bb(f.path,l)||Bb(f.path,d));if(Ns(p)){let f=$b(p.open_pull_requests),y=$b(p.open_issues),h=_C(o[d]);if(f!=null&&y!=null&&h!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:y,recently_closed:h},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||Kb(g)?{project_label:c.project_label,repository:u,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${u} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:c.project_label,repository:u,outcome:"unreachable",counts:null,detail:`${u} is not reachable with the host token: ${Da(g?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function mC(e){return{version:1,fetched_at:e,request_count:0,project_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[]}}async function Gb(e){if(e.projects.length===0)return mC(e.now);if(Jc(e.projects,e.hostTokenRef),e.transport.conditionalList)return await yC(e);let t=Nb(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return hC(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}var bC={key:"redskilled repository activity poll",budget:"rest"};async function yC(e){qb(e.projects);let t=Date.parse(e.now),r=Number.isFinite(t)?new Date(Math.floor(t/(60*60*1e3))*60*60*1e3).toISOString():e.now,n=Nb(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let y=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:bC});i+=y.requestCount;let h=p==="open-prs"?y.data:y.data.filter(R=>!Ns(R.pull_request));u.push(p==="recently-closed"?h.filter(R=>Da(R.closed_at)>=n.closed_since).length:h.length),a=Lb(a,wC(y.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=Bs(p);a=Lb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function Wb(e){let t=e.stalenessMs??fC,r=e.activity;if(r==null)return{version:1,fetched_at:null,age_ms:null,threshold_ms:t,stale:!1,request_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[],reason:"the daemon polls no repository, so there are no counts to age"};let n=Date.parse(e.now),o=Date.parse(r.fetched_at),s=Number.isFinite(n)&&Number.isFinite(o)?Math.max(0,n-o):null,i=s==null||s>t;return{version:1,fetched_at:r.fetched_at,age_ms:s,threshold_ms:t,stale:r.projects.length>0&&i,request_count:r.request_count,rate_limit:r.rate_limit,projects:r.projects.map(a=>({...a,fetched_at:r.fetched_at,age_ms:s,stale:i})),reason:r.projects.length===0?"the daemon polls no repository, so there are no counts to age":s==null?"these counts carry no readable instant, so they cannot be presented as current":i?`these counts are ${s}ms old, past the ${t}ms window`:`fetched ${s}ms ago, within the ${t}ms window`}}function Hb(e){if(!Ns(e))return!1;let t=e;return t.version===1&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&Number.isInteger(t.request_count)&&Ns(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Ub(e){let t=e.endpoint==null?void 0:kC(e.endpoint),r=jc({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n}function kC(e){let t=new URL(e);return/\/api\/graphql\/?$/.test(t.pathname)?t.pathname=t.pathname.replace(/\/api\/graphql\/?$/,"/api/v3"):t.pathname=t.pathname.replace(/\/graphql\/?$/,""),t.search="",t.hash="",t.toString().replace(/\/$/,"")}function wC(e){let t=jb(e,"x-ratelimit-remaining"),r=jb(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Lb(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted,point_cost:null}}function jb(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function qb(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Mb)throw new Error(`redskilled activity fetch spans at most ${Mb} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function RC(e,t){let r=Lo(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(Kb),i=typeof r.cost=="number"&&Number.isFinite(r.cost)?r.cost:null;return{remaining:n,reset_at:o,exhausted:s||n===0,point_cost:i}}function Kb(e){if(e==null)return!1;let t=Da(e.type),r=Da(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Bb(e,t){return Array.isArray(e)&&e.includes(t)}function $b(e){let t=Lo(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function _C(e){let t=Lo(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Lo(e){return Ns(e)?e:{}}function Ns(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Da(e){return typeof e=="string"?e:""}var xC=3e4,EC=2,vC=3,SC=4,TC=["logs","vitals","display"];function Vb(e,t){if(t===void 0)return e;let r=TC.filter(o=>t[o]!==!0);if(r.length===0)return e;let n=o=>t[o]===!0;return{...e,workers:e.workers.map(o=>({...o,...n("vitals")?{}:{vitals:PC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:AC},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var PC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},AC={last_line:null,published_at:null,source:null};function zb(e){let t=e.stalenessMs??xC,r=mn(e.now),n=e.sampledAt==null?null:mn(e.sampledAt),o=r==null||n==null?null:Math.max(0,r-n),s=o!=null&&o<=t,i=new Set(e.reattachedWorkerIds??[]),a=e.hostState.workers.map(p=>FC(p,{rss:e.rss,sampledAt:e.sampledAt,ageMs:o,sampleFresh:s,nowMs:r,log:e.logLines?.[p.worker_id],display:e.displays?.[p.worker_id],state:i.has(p.worker_id)?"reattached":"running"})),l=a.filter(p=>p.vitals.rss_bytes==null).map(p=>p.worker_id).sort(),d=a.length-l.length,c=a.reduce((p,g)=>p+(g.vitals.rss_bytes??0),0),u=ua(e.hostState.workers);return{version:1,generated_at:e.now,daemon:{pid:e.hostState.pid,daemon_version:e.hostState.daemon_version,protocol_version:e.hostState.protocol_version,started_at:e.hostState.started_at,machine_id_hash:e.hostState.machine_id_hash,session_key_hash:e.hostState.session_key_hash},staleness:jC({sampledAt:e.sampledAt,ageMs:o,threshold:t,workerCount:a.length,measuredCount:d,unmeasured:l}),host:{worker_count:a.length,project_count:e.hostState.projects.length,ceiling:e.ceiling,consumption:u,budget_accounting:e.hostState.budget_accounting,observed_rss_bytes:c,measured_worker_count:d,ceiling_used_fraction:e.ceiling.memory_bytes==null||e.ceiling.memory_bytes<=0?null:u.memory_bytes/e.ceiling.memory_bytes},projects:LC(a),known_projects:MC(e.hostState),registered_projects:(e.hostState.registrations??[]).map(p=>p.project_label).sort((p,g)=>p.localeCompare(g)),lapsed_projects:(e.hostState.lapsed_registrations??[]).map(p=>({project_label:p.project_label,at:p.at,...p.registered_at==null?{}:{registered_at:p.registered_at},reason:p.detail})),stopped_projects:(e.hostState.stopped_registrations??[]).map(p=>({project_label:p.project_label,at:p.at})),orphaned_projects:(e.hostState.orphaned_registrations??[]).map(p=>p.project_label),workers:a,github_balance:Hc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Wb({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:CC(e.deaths,e.recentDeathLimit??SC)},engine:OC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function CC(e,t){let r=[...e].sort((s,i)=>(mn(i.ts)??0)-(mn(s.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(s=>({kind:s.kind,id:s.id,pid:s.pid,ts:s.ts,last_seen:s.last_seen,last_phase:s.last_phase,sender_class:s.sender_class,confidence:s.confidence,signal:s.signal,evidence:s.evidence[0]??null})),o=DC(r);return{count:r.length,recent:n,latest:n[0]??null,reaped_at:n[0]?.ts??null,...o==null?{}:{boot_loop:o}}}function DC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>EC||n.project_label==null||n.project_label===""||mn(n.ts)==null)continue;let o=t.get(n.project_label)??[];o.push(n),t.set(n.project_label,o)}return[...t.entries()].filter(([,n])=>n.length>=vC).map(([n,o])=>{let s=o[0],i=mn(s.ts),a=Math.min(...o.map(d=>mn(d.ts))),l=s.detail?.trim()||s.evidence[0]?.trim();return l==null||l===""?null:{project_label:n,count:o.length,span_ms:Math.max(0,i-a),latest_refusal:l}}).filter(n=>n!=null).sort((n,o)=>o.count-n.count||o.span_ms-n.span_ms)[0]??null}function OC(e){let t=e.upgrade,r=t?.running_version??e.daemon_version,n=t?.published_version??null,o=t?.newest_published_version??null,s=(t?.newer_published??0)>0,i=(t?.major_held??0)>0;return{running_version:r,published_version:n,newer_published:s,major_held:i,current:n==null&&o==null?null:!s&&!i}}function FC(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=$s(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=mn(e.started_at);return{worker_id:e.worker_id,project_label:e.project_label,workspace_path:e.workspace_path,pid:e.pid,started_at:e.started_at,...e.base_commits_ahead==null?{}:{base_commits_ahead:e.base_commits_ahead},uptime_ms:t.nowMs==null||i==null?null:Math.max(0,t.nowMs-i),state:t.state,isolated:e.isolated,unit:e.unit??null,warnings:[...e.warnings],vitals:{rss_bytes:n,sampled_at:n==null?null:t.sampledAt,age_ms:n==null?null:t.ageMs,fresh:n!=null&&t.sampleFresh,rss_source:n==null?null:e.rss_source??null},budget:{name:o?.name??null,declared:o?.declared??s,bytes:o?.bytes??null,used_bytes:n,used_fraction:o==null||o.bytes<=0||n==null?null:n/o.bytes,enforceable:o!=null},log:IC(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function IC(e){let t={last_line:null,published_at:null,source:null};return e==null||e.line.trim()===""?t:{last_line:e.line,published_at:e.published_at,source:e.source}}function MC(e){let t=new Set;for(let r of e.registrations??[])t.add(r.project_label);for(let r of e.projects)t.add(r.project_label);for(let r of e.lapsed_registrations??[])t.add(r.project_label);for(let r of e.stopped_registrations??[])t.add(r.project_label);for(let r of e.orphaned_registrations??[])t.add(r.project_label);return[...t].sort((r,n)=>r.localeCompare(n))}function LC(e){let t=new Map;for(let r of e){let n=t.get(r.project_label)??{workers:0,declared:0,observed:0,measured:0};n.workers+=1,n.declared+=r.budget.bytes??0,n.observed+=r.vitals.rss_bytes??0,n.measured+=r.vitals.rss_bytes==null?0:1,t.set(r.project_label,n)}return[...t.entries()].map(([r,n])=>({project_label:r,worker_count:n.workers,declared_memory_bytes:n.declared,observed_rss_bytes:n.observed,measured_worker_count:n.measured})).sort((r,n)=>r.project_label.localeCompare(n.project_label))}function jC(e){let t={sampled_at:e.sampledAt,age_ms:e.ageMs,threshold_ms:e.threshold,measured_worker_count:e.measuredCount,unmeasured_workers:e.unmeasured};return e.workerCount===0?{...t,stale:!1,reason:"the host holds no Workers, so there is nothing to measure and nothing to age"}:e.sampledAt==null||e.ageMs==null?{...t,stale:!0,reason:`this answer is stale: the daemon has taken no measurement of its ${e.workerCount} live Worker(s) yet`}:e.ageMs>e.threshold?{...t,stale:!0,reason:`this answer is stale: its measurement is ${e.ageMs}ms old, past the ${e.threshold}ms staleness window`}:{...t,stale:!1,reason:`measured ${e.ageMs}ms ago, within the ${e.threshold}ms staleness window`}}function mn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Yc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.daemon,n=t.staleness,o=t.host;return t.version===1&&typeof t.generated_at=="string"&&r!=null&&typeof r=="object"&&Number.isInteger(r.pid)&&typeof r.daemon_version=="string"&&typeof r.protocol_version=="number"&&n!=null&&typeof n=="object"&&typeof n.stale=="boolean"&&typeof n.threshold_ms=="number"&&Array.isArray(n.unmeasured_workers)&&o!=null&&typeof o=="object"&&Number.isInteger(o.worker_count)&&Number.isInteger(o.project_count)&&typeof o.observed_rss_bytes=="number"&&Array.isArray(t.projects)&&Array.isArray(t.workers)&&(t.known_projects===void 0||Array.isArray(t.known_projects)&&t.known_projects.every(s=>typeof s=="string"))&&(t.registered_projects===void 0||Array.isArray(t.registered_projects)&&t.registered_projects.every(s=>typeof s=="string"))&&(t.lapsed_projects===void 0||Array.isArray(t.lapsed_projects)&&t.lapsed_projects.every(BC))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every($C))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Hb(t.repository_activity))&&(t.github_balance===void 0||Uc(t.github_balance))&&(t.deaths===void 0||NC(t.deaths))&&(t.engine===void 0||GC(t.engine))&&(t.metrics===void 0||Ch(t.metrics))}function BC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.reason=="string"}function $C(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"}function NC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Number.isInteger(t.count)&&Array.isArray(t.recent)}function GC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")}var Jb={runner:null,model:null,effort:null,origin:null,issue:null,phase:null,step:null,phase_index:null,phase_total:null,failed:!1,heartbeat:null,wait_kind:null,wait_subject:null,wait_pid:null,wait_started_at:null,wait_deadline:null,wait_escalation:null,started_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null};function Yb(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var yt=e=>`\x1B[${e}m`,Gs=yt("48;2;114;47;55"),Qc=yt("48;2;88;36;42"),bn=yt("38;2;255;255;255"),Xc=yt("38;2;201;150;158"),Ws=yt("38;2;255;214;214"),Hs=yt("39"),jt=yt("38;2;224;138;148"),Zc=yt("38;2;240;200;120"),eu=yt("38;2;240;110;120"),tu=yt("38;2;255;214;214"),ru=yt("38;2;146;84;94"),nu=yt("38;2;255;95;95"),Cr=yt("49"),ar=yt("0"),Oa=yt("1"),Fa=yt("22");var WC=/\x1b\[[0-9;]*m/g,HC=/(\x1b\[[0-9;]*m)/,UC=/^\x1b\[[0-9;]*m$/;function qn(e){return e.replace(WC,"")}function qC(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Yt(e){return[...qn(e)].length}function Xe(e,t){if(t<=0)return"";if(Yt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(HC))if(i!==""){if(UC.test(i)){s+=i,o=!qC(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?ar:""}`;s+=a,n+=1}}return`${s}\u2026${o?ar:""}`}function Us(e,t){return e+" ".repeat(Math.max(0,t-Yt(e)))}function ou(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"]){let n=t.indexOf(r);if(n===-1)continue;let s=t.slice(n+r.length).match(/^-(\d+(?:[-.]\d+)*)/)?.[1]?.split(/[-.]/)??[];return/^\d{8}$/.test(s.at(-1)??"")&&s.pop(),s.length===0?r:`${r}-${s.join(".")}`}return e}function lr(e){if(!Number.isFinite(e)||e<=0)return"0B";let t=["B","K","M","G","T"],r=e,n=0;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r>=100||n===0?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")}${t[n]}`}function qs(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function yn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return qs(e);if(e<=0)return"0";let t=(Math.round(e*10)/10).toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function kn(e){if(e==null||!Number.isFinite(e)||e<0)return"\u2014";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function jo(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Ks="!unregistered",su="!lapsed",Vs="\u21E1",Dr="\u2020",Bo="\u25D0",$o="\u25EF",iu="\u21B3",au="redskilled unreachable \u2014 Worker state unknown";function No(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Ia(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function zs(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function lu(e){let t=[];return e.workers.length>0&&e.workers.length<=e.maxWorkers&&t.push("workers"),e.mode==="global"&&e.projects.length>0&&e.projects.length<=e.maxProjects&&t.push("projects"),t.push("host"),t}function Ma(e,t){return e.startsWith(t)?e.slice(t.length):e}function Or(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function du(e,t,r){return r<110?{variant:"compact",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"work",header:"Work",flex:2,minWidth:14,truncate:!0},{key:"state",header:"State",flex:2,minWidth:14,truncate:!0},{key:"activity",header:"Latest activity",flex:3,minWidth:18,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,work:Or(Ma(n.cells.iss,"iss="),n.cells.phase),state:Or(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}:{variant:"operational",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"issue",header:"Issue",width:7},{key:"runner",header:"Runner",flex:1,minWidth:12,truncate:!0},{key:"phase",header:"Phase",flex:2,minWidth:16,truncate:!0},{key:"progress",header:"Progress",width:9},{key:"elapsed",header:"Elapsed",width:9,align:"right"},{key:"eta",header:"ETA",width:8,align:"right"},{key:"activity",header:"Activity",flex:2,minWidth:16,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,issue:Or(Ma(n.cells.iss,"iss=")),runner:Or(Ma(n.cells.run,"run=")),phase:Or(n.cells.phase),progress:Or(n.cells.bar),elapsed:Or(n.cells.elapsed),eta:Ma(Or(n.cells.eta),"eta="),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}}var wn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Bt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},KC=" ",Qb="\u2588",VC="\u25B6",zC="\u2717",JC="\u2591",YC=new Set(["gate","push-pr","merge","cascade"]),QC=new Set(["requeue"]),XC="repair";function Js(e){return e.display?.origin===XC}function Go(e,t=Bt){let r=zs(e,t.project),n=No(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>ja(y,t,e.generated_at)),i=uD(s),a=o.map((y,h)=>({worker_id:y.worker_id,project_label:y.project_label,mine:t.project!=null&&y.project_label===t.project,cells:s[h],line:Xe(pD(s[h],i),t.maxWidth)})),l=du(a,o,t.maxWidth),d=eD(e,t,n,r),c=n.length-o.length,u=[d.line,...iD(e,t),...a.map(y=>y.line)];c>0&&u.push(Xe(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...oD(e,t)),u.push(...nD(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Bt.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Xe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:wn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function ja(e,t,r){let n=e.display??Jb,o=Js(e),s=[n.runner,n.model==null?null:ou(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&YC.has(n.phase),a=o||i||n.origin!=null&&QC.has(n.origin);return{wid:t.mode==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id,run:o||s===""?"":`run=${s}`,org:o?"lane=repair":i?"org=landing":n.origin==null?"":`org=${n.origin}`,iss:n.issue==null?"":o?`pr=#${n.issue.replace(/^#/,"")}`:`iss=${n.issue}`,bar:Zb(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:kn(Yb(e,r)),eta:n.eta==null?"":`eta=${kn(n.eta*1e3)}`,hb:ZC(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":cD(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${qs(n.tokens)}`,ctx:n.context==null?"":`ctx=${qs(n.context)}`,tls:a||n.tools==null?"":`tls=${n.tools}`,rsn:a||n.reasoning==null?"":`rsn=${n.reasoning}`,txt:a||n.text==null?"":`txt=${n.text}`}}function ZC(e,t){if(e.wait_kind==null||e.wait_subject==null||e.wait_pid==null||e.wait_pid<=0||e.wait_started_at==null)return null;let r=Date.parse(e.wait_started_at),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:`${e.wait_kind}=${e.wait_subject} ${kn(Math.max(0,n-r))}`}function Zb(e){let t=e.phase_total,r=e.phase_index;if(t==null||t<=0||r==null||r<0)return"";let n=Math.min(Math.floor(r),Math.floor(t));if(n>=t)return Qb.repeat(Math.floor(t));let o=e.failed?zC:VC;return`${Qb.repeat(n)}${o}${JC.repeat(Math.floor(t)-n-1)}`}function eD(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=dD(r),l=o?.repository??t.project,d=e.engine??null,c=d?.running_version??e.daemon.daemon_version,u=e.deaths??null,p=e.metrics??null,g=[tD(l??"host",c,d!=null&&d.current===!1?Vs:"")];(n==="unregistered"||n==="name-only")&&g.push(Ks),n==="lapsed"&&g.push(su);let f=p?.history_48h==null?null:sD(p.history_48h);f!=null&&g.push(Xr(f));let y=e.workers.filter(Js).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Xr(`workers=${M} coding +`)} ${Gs}${bn}${y} repairing${Cr}${jt}`)}else g.push(Xr(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Xr(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(Xr(lD(i))),a!=null&&g.push(`${Gs}${bn}${a}${Cr}${jt}`),s.open_pull_requests!=null&&g.push(Xr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Xr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Xr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let R=p==null?null:ey(p.hour),T=R==null?null:Xr(R);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=jo(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${rD(M.span_ms)}`+(N==null?"":` \u2014 ${N}`))}if(e.staleness.stale){let M=e.staleness.age_ms;g.push(M==null?"!unmeasured":`!stale ${Math.round(M/1e3)}s`)}let $=`${g.join(" \xB7 ")}${ar}`,D=R!=null&&Yt($)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${ar}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Xe(D,t.maxWidth)}}function tD(e,t,r){return`${Qc}${bn}${Zc}\xBB${bn} ${Oa}${e}${Fa} ${Xc}v${t}${r}${bn}${Cr}${jt}`}function Xr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ws}${n}${Hs}${o}${jt}`)}function rD(e){return kn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function ey(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${yn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${yn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${yn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function nD(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?$o:Bo,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Xe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function oD(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Xe(`${Dr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Xe(`${Dr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Xe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function sD(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${yn(t)} ${cu(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${yn(r)} ${cu(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function iD(e,t){let r=e.metrics;return r==null?[Xe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Xe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[Xb("tokens",r.history_48h.tokens_per_hour,t),Xb("Tickets",r.history_48h.tickets_per_hour,t)]}var La=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function Xb(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${yn(o)}/h ${cu(t.trend)}`.trim();if(r.maxWidth<72)return Xe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Xe(`${n} 48h ${aD(t)} \xB7 ${a}${l}`,r.maxWidth)}function aD(e){let t=e.buckets.flatMap(n=>n.value==null?[]:[Math.max(0,n.value)]),r=Math.max(0,...t);return e.buckets.map(n=>n.value==null?"\xB7":r===0?La[0]:La[Math.min(La.length-1,Math.floor(Math.max(0,n.value)/r*(La.length-1)))]).join("")}function cu(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function lD(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${lr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${lr(e.memory_used_bytes)}/${lr(e.memory_ceiling_bytes)}${t}`}function dD(e){for(let t of e){let r=t.display;if(r==null)continue;let n=[r.runner,r.model,r.effort].filter(o=>!!o);if(n.length>0)return n.join("\xB7")}return null}function cD(e,t){if(e==null&&t==null)return"";let r=[];return e!=null&&e>0&&r.push(`+${e}`),t!=null&&t>0&&r.push(`-${t}`),`loc=${r.length>0?r.join(" "):"0"}`}function uD(e){let t=Object.fromEntries(wn.map(r=>[r,0]));for(let r of e)for(let n of wn)t[n]=Math.max(t[n],Yt(r[n]));return t}function pD(e,t){let r=wn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>Ba(o,Us(e[o],s===r.length-1?Yt(e[o]):t[o])));return`${Cr}${jt}${n.join(KC)}${ar}`}function Ba(e,t){if(e==="wid")return`${Oa}${t}${Fa}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Gs}${bn}${t.trimEnd()}${Cr}${jt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${eu}${n}`).replace("\u25B6",`${tu}\u25B6`).replace("\u2717",`${nu}\u2717`).replace(/░+/g,n=>`${ru}${n}`)+jt;let r=t.indexOf("=");return r>0?`${Ws}${t.slice(0,r+1)}${Hs}${t.slice(r+1)}${jt}`:t}function pu(e){return Object.freeze({none:!0,reason:e})}function Ys(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function uu(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError("repair args must contain only finite JSON numbers");return e}if(t.has(e))throw new TypeError("repair args must not contain cycles");t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(n=>uu(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=uu(o,t);return Object.freeze(r)}finally{t.delete(e)}}function fD(e){let t=uu(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Kn(e){if("none"in e.repair)return{prose:`${e.state}; repair: none because ${e.repair.reason}`,repair:"none",repair_reason:e.repair.reason};let t=fD(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ne={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function Vn(e,t=Ne){let r=zs(e,t.project),n=No(e,t),o=Ia(e,t),s=kD(e,t.project,r),i=hD(e,t,n,r,s.prose),a=lu({mode:t.mode,maxWorkers:t.maxWorkers,maxProjects:t.maxProjects,workers:n,projects:o}),l={detail:"host",line:i};for(let g of a){let f=g==="workers"?i:ED(i,gD(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Yt(f)<=t.maxWidth)break}let d=Xe(l.line,t.maxWidth),c=l.detail==="workers"?RD(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?_D(g,t):null;return y==null?[c.lines[f]]:[c.lines[f],y]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function mu(e){let t=e.options??Ne,r=Xe(au,t.maxWidth);return{version:1,line:r,lines:[r],verbose:t.verbose,mode:t.mode,project:t.project,project_match:"unanswered",detail:"host",degraded:!0,stale:!0,generated_at:e.generated_at}}function gD(e,t){return e==="projects"?t.map(xD):[]}function hD(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="name-only";t.mode==="global"?(s.push(`host ${fu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(hu(e,t))):n==="matched"?(s.push(`${t.project} ${fu(r,r.length)}`),s.push(hu(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${fu(r,r.length)}`),s.push(hu(e,t)),s.push(Ks)):s.push(o),s.push(ty(e));let a=mD(e);a!=null&&s.push(a);let l=bD(e);l!=null&&s.push(l),e.staleness.stale&&s.push(ry(e));let d=s.join(" ");return!i||Yt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,ty(e),e.staleness.stale?ry(e):null].filter(c=>c!=null).join(" ")}function fu(e,t){let r=e.filter(Js).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function ty(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Vs}`}function mD(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${$o} quota spent`:t.posture==="reserved"?`${Bo} quota band`:null}function bD(e){let t=e.deaths;if(t==null||t.count<=0||t.latest==null)return null;let r=t.boot_loop;if(r!=null){let n=jo(r.latest_refusal);return`${Dr}${t.count} boot-refused \xD7${r.count} in ${yD(r.span_ms)}`+(n==null?"":` \u2014 ${n}`)}return`${Dr}${t.count} ${t.latest.sender_class}`}function yD(e){return kn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function kD(e,t,r){if(r==="unregistered")return Kn({state:`project unknown \u2014 ${t} was never registered on this host`,repair:Ys()});if(r==="orphaned")return Kn({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:pu("this socket cannot safely replace a registration owned by an unreachable daemon")});if(r==="stopped"){let n=e.stopped_projects?.find(o=>o.project_label===t);return Kn({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${gu(n.at)}`}`,repair:Ys()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${gu(n.registered_at)})`;return Kn({state:`project unknown \u2014 ${t} lapsed at ${gu(n.at)}${o}`,repair:Ys()})}return Kn({state:`project unknown \u2014 ${t} lapsed`,repair:Ys()})}return r==="unresolved"?Kn({state:"project unknown \u2014 this directory resolved to no project",repair:pu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function gu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function hu(e,t){let r=t.mode==="global"?e.host.observed_rss_bytes:e.projects.filter(o=>o.project_label===t.project).reduce((o,s)=>o+s.observed_rss_bytes,0),n=e.host.ceiling.memory_bytes;return t.mode==="global"&&n!=null&&n>0?`${lr(r)}/${lr(n)}`:lr(r)}function ry(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function wD(e,t,r,n){let o=r.map(s=>Ba(s,Us(e[s],t[s])));return Xe(`${Cr}${jt}${o.join(" ")}${ar}`,n)}function RD(e,t,r){let n=e.map(a=>ja(a,t,r)),o=wn.filter(a=>n.some(l=>Yt(l[a])>0)),s=[...o],i=ny(n,s);for(;s.length>1&&oy(i,s)>t.maxWidth;)s.pop(),i=ny(n,s);return{lines:n.map(a=>wD(a,i,s,t.maxWidth)),degraded:s.length<o.length||oy(i,s)>t.maxWidth}}function ny(e,t){let r=Object.fromEntries(wn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Yt(n[o]));return r}function oy(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function _D(e,t){let r=jo(e.log.last_line);return r==null?null:Xe(` ${iu} ${sy(e,t.mode)}: ${r}`,t.maxWidth)}function sy(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function xD(e){return`${e.project_label} ${e.worker_count}w ${lr(e.observed_rss_bytes)}`}function ED(e,t,r){return[e,...t].join(r)}var $a=1;async function Qs(e,t){return await oa(e,t,"redskilled daemon")}function ay(e){let t=[...e.workers??[]],r=new Map;for(let n of t)r.set(n.project_label,(r.get(n.project_label)??0)+1);return{version:1,protocol_version:$a,daemon_version:e.daemonVersion,machine_id_hash:e.machineIdHash,session_key_hash:e.sessionKeyHash,pid:e.pid,started_at:e.startedAt,...e.ceiling==null?{}:{ceiling:e.ceiling},...e.scope==null?{}:{scope:e.scope},workers:t,projects:[...r.entries()].map(([n,o])=>({project_label:n,worker_count:o})).sort((n,o)=>n.project_label.localeCompare(o.project_label)),registrations:PD(e),...e.demand==null?{}:{demand:e.demand},...e.lapses==null||e.lapses.length===0?{}:{lapsed_registrations:[...e.lapses]},...e.stops==null||e.stops.length===0?{}:{stopped_registrations:[...e.stops]},...e.orphanedRegistrations==null||e.orphanedRegistrations.length===0?{}:{orphaned_registrations:[...e.orphanedRegistrations]},birth_latches:[...e.birthLatches??[]],budget_accounting:Fh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:AD(e)}}function PD(e){let t=e.now==null?Number.NaN:Date.parse(e.now),r=Number.isFinite(t),n=e.queue??null,o=new Map(n==null?[]:n.projects.map(s=>[s.project_label,s]));return[...e.registrations??[]].map(s=>{let i=o.get(s.project_label);return{...s,...r?{renewal:mm(s,t)}:{},...n==null||i==null?{}:{last_poll:{at:n.fetched_at,outcome:i.outcome,depth:i.depth,request_count:n.request_count,detail:i.detail}}}}).sort((s,i)=>s.project_label.localeCompare(i.project_label))}function AD(e){let t=e.daemonVersion,r=e.published?.version??null,n=e.published?.majorHold??null;return{running_version:t,published_version:r,published_unknown:+(r===null),newer_published:+(e.published?.newer===!0),replacement:e.published?.replacement??"none",checked_at:e.published?.checkedAt??null,checks:e.published?.checks??0,hold_reason:e.published?.holdReason??null,newest_published_version:e.published?.newest??null,major_held:+(n!==null),major_hold:n}}function ly(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.protocol_version=="number"&&typeof t.daemon_version=="string"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&Number.isInteger(t.pid)&&typeof t.started_at=="string"&&(t.ceiling===void 0||ID(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Ih(t.budget_accounting)&&(t.scope===void 0||cm(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Is))&&(t.demand===void 0||Qh(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(DD))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(OD))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(FD))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(CD))&&(t.upgrade===void 0||MD(t.upgrade))}function CD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.repair;return t.name==="project-birth-breaker"&&typeof t.project_label=="string"&&(t.state==="open"||t.state==="half-open")&&typeof t.opened_at=="string"&&typeof t.reason=="string"&&typeof t.closes=="string"&&(t.probe_worker_id===null||typeof t.probe_worker_id=="string")&&r!=null&&r.tool==="project_reset"&&typeof r.args=="object"&&r.args!==null&&typeof r.why=="string"}function DD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.at=="string"&&typeof t.renew_by=="string"&&Number.isInteger(t.renewals)&&Number.isInteger(t.sustains)&&typeof t.detail=="string"}function OD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.registered_at=="string"&&typeof t.at=="string"&&typeof t.detail=="string"}function FD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")}function ID(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=new Set(["flag","environment","home-config","derived-default"]);return(t.memory_bytes===null||typeof t.memory_bytes=="number")&&(t.worker_count===null||typeof t.worker_count=="number")&&(t.validation_count===void 0||Number.isInteger(t.validation_count)&&Number(t.validation_count)>0)&&(t.source==="declared"||t.source==="host-fraction")&&(t.memory_source===void 0||r.has(String(t.memory_source)))&&(t.worker_source===void 0||r.has(String(t.worker_source)))&&(t.validation_source===void 0||r.has(String(t.validation_source)))}function MD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")&&typeof t.published_unknown=="number"&&typeof t.newer_published=="number"&&(t.replacement==="none"||t.replacement==="pending"||t.replacement==="in-progress")&&(t.checked_at===null||typeof t.checked_at=="string")&&(t.newest_published_version===void 0||t.newest_published_version===null||typeof t.newest_published_version=="string")&&(t.major_held===void 0||typeof t.major_held=="number")&&(t.checks===void 0||typeof t.checks=="number")&&(t.hold_reason===void 0||t.hold_reason===null||typeof t.hold_reason=="string")&&(t.major_hold===void 0||t.major_hold===null||LD(t.major_hold))}function LD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{randomUUID as jD}from"node:crypto";import{mkdir as BD,readFile as $D,rename as ND,writeFile as GD}from"node:fs/promises";import{dirname as WD}from"node:path";function dy(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await $D(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=HD(s);return UD(i)?i.registrations:[]}async function o(s){await BD(WD(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${jD()}.tmp`,a={version:1,registrations:[...s]};await GD(i,`${ot(a,{keyedMapCollapse:!0})}
90
- `,{encoding:"utf8",mode:384}),await ND(i,e)}return{read:n,replace(s){let i=t.then(()=>o(s));return t=i.then(()=>{r=null},a=>{r=a}),i},async flush(){if(await t,r!=null)throw r}}}function HD(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function UD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Array.isArray(t.registrations)&&t.registrations.every(Is)}import{spawnSync as Wa}from"node:child_process";import{existsSync as Ru}from"node:fs";import{delimiter as ZD,join as ky}from"node:path";import{join as cy}from"node:path";import{existsSync as qD}from"node:fs";import{createRequire as KD}from"node:module";var uy="redskilled-job-object.node",zn=100;function Wo(e){return{available:!1,reason:e}}function VD(e,t,r){return[cy(r,"prebuilds",`${e}-${t}`,uy),cy(r,"native","build","Release",uy)]}function py(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return Wo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??JD(),o=e.exists??qD,s=VD(t,r,n),i=s.find(d=>o(d));if(i==null)return Wo(`no Job Object addon was found for ${t}-${r} (looked in ${s.join(", ")}); either install the prebuild for this platform and architecture or build the addon locally`);let a=e.requireFn??KD(import.meta.url),l;try{l=a(i)}catch(d){return Wo(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return zD(l)?{available:!0,binding:l}:Wo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function zD(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function JD(){return new URL("..",import.meta.url).pathname}function fy(e){let t=e??{},r=[],n=YD(t);n==null&&(t.memory_max??t.memory_high)!=null&&r.push("the declared memory budget could not be reduced to bytes, so the job carries no memory ceiling");let o;return t.cpu_weight!=null&&(t.cpu_weight<zn?o=Math.max(1,Math.min(100,Math.round(t.cpu_weight))):r.push(`cpu_weight=${t.cpu_weight} is at or above the fair share of ${zn}, and Windows CPU rate control is an absolute cap rather than a share, so no rate limit is set`)),{...n!=null?{memory_limit_bytes:n.bytes,memory_budget_name:n.name,memory_budget_declared:n.declared}:{},...o!=null?{cpu_rate_percent:o}:{},kill_on_close:!0,...r.length>0?{note:r.join("; ")}:{}}}function YD(e){return $s({budget:e})}var Na=5,gy=19;function bu(e){return{available:!1,reason:e}}var QD="an address-space rlimit is not a resident-memory ceiling: a runtime that reserves address space it never faults in would die under a limit it never used, so no memory rlimit is set and the daemon's RSS sampling floor is the ceiling that actually holds";function my(e,t){let r=e??{},n=[],o;if(!t.canRenice)n.push("nice is not on this host, so no priority control was applied and the Worker competes with interactive work");else if(r.cpu_weight==null)o=Na;else if(r.cpu_weight<zn){let a=Math.round(gy*(zn-r.cpu_weight)/zn);o=Math.min(gy,Math.max(Na,a))}else o=Na,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${zn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${Na}`);let s=hy(r.max_processes);s==null&&r.max_processes!=null&&n.push(`max_processes=${r.max_processes} is not a positive whole number, so no ulimit -u is set`);let i=hy(r.cpu_seconds);return i==null&&r.cpu_seconds!=null&&n.push(`cpu_seconds=${r.cpu_seconds} is not a positive whole number, so no ulimit -t is set`),{...o!=null?{nice:o}:{},...s!=null?{max_processes:s}:{},...i!=null?{cpu_seconds:i}:{},memory_ceiling:"sampling-floor",memory_ceiling_reason:QD,...n.length>0?{note:n.join("; ")}:{}}}function by(e){let{limits:t}=e,r=[];return t.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t.nice!=null&&e.nice!=null?`exec ${XD(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
91
- `),e.command,...e.args]}function yy(e){let t=[];return e.nice!=null?t.push(`the Worker runs at nice ${e.nice} so it yields to interactive work`):t.push("no priority control was applied"),e.max_processes!=null&&t.push(`its processes are capped at ${e.max_processes}`),e.cpu_seconds!=null&&t.push(`its CPU time is capped at ${e.cpu_seconds} seconds`),`macOS placement applied POSIX limits: ${t.join(", ")}. macOS has no resource-group equivalent, so the Worker is charged to the daemon's own resource group, and ${e.memory_ceiling_reason}`+(e.note!=null?` (${e.note})`:"")}function yu(e){let t=e??{},r=[t.max_processes!=null?"max_processes":null,t.cpu_seconds!=null?"cpu_seconds":null].filter(n=>n!=null);return r.length===0?null:`${r.join(" and ")} ${r.length===1?"is a POSIX rlimit":"are POSIX rlimits"} honoured only by the macOS placement backend, so this placement carries no equivalent`}function hy(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function XD(e){return`'${e.replace(/'/g,"'\\''")}'`}var wy="REDSKILLED_PLACEMENT",Ga="red-worker",ku="/bin/sh";function Ry(e=process.env,t=process.platform){let r=bu(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:py({platform:t}),posix:r};let n=Wo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);if(t==="darwin")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:eO(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&Ru(ky(o,"systemd","private"));return{platform:t,systemdRun:vy("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function eO(e){return Ru(ku)?{available:!0,shell:ku,nice:vy("nice",e)}:bu(`no POSIX shell was found at ${ku}, so there is nothing to apply rlimits or priority in`)}function _y(e=process.env){let t=(e[wy]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function tO(e,t,r=Ga){return xy(e,t,r).replace(/\.service$/,"")}function xy(e,t,r=Ga){return`${wu(r,"red-worker",24)}-${wu(e,"project",32)}-${wu(t,"worker",32)}.service`}function Ey(e){let t=[...e.args??[]],r={...e.budget??{},...e.budget?.memory_max==null&&e.memoryCeiling?.memory_max!=null?{memory_max:e.memoryCeiling.memory_max}:{}},n=r.memory_max??r.memory_high??null,o=r.memory_high!=null||r.memory_max!=null||r.cpu_weight!=null,s=e.target??{isolation:"transient-unit"},i=u=>({isolated:!1,backend:"none",command:e.command,args:t,cwd:e.workspacePath,warning:u,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Rs({scope:null,memory_ceiling:n,scope_degradation:u}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}});if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${wy}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return nO(e,t,r,n,o,i);if(e.probes.platform==="darwin")return rO(e,t,r,n,i);if(e.probes.platform!=="linux")return i(`transient-unit placement is the Linux backend (platform=${e.probes.platform}): the Worker is charged to the daemon's own resource group`);if(!e.probes.systemdRun)return i("transient-unit placement unavailable: systemd-run is not on PATH; the Worker is charged to the daemon's own resource group and a memory-pressure kill will hit the whole session");if(!e.probes.userSession)return i("transient-unit placement unavailable: no systemd --user session; the Worker is charged to the daemon's own resource group and a memory-pressure kill will hit the whole session");let a=xy(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`];e.pipeOutput===!0&&l.push("--pipe"),r.memory_high!=null&&l.push(`--property=MemoryHigh=${r.memory_high}`),r.memory_max!=null&&l.push(`--property=MemoryMax=${r.memory_max}`),r.cpu_weight!=null&&l.push(`--property=CPUWeight=${r.cpu_weight}`);let d=Rs({scope:a,memory_ceiling:n,scope_degradation:null});for(let[u,p]of Object.entries({...e.env??{},...d}))l.push(`--setenv=${u}=${p}`);let c=yu(e.budget);return{isolated:!0,backend:"transient-unit",unit:a,command:e.probes.systemdRun,args:[...l,"--",e.command,...t],budget:r,...n!=null?{memoryCeiling:n}:{},environment:d,...c!=null?{budgetWarning:c}:{}}}function rO(e,t,r,n,o){let s=e.probes.posix;if(!s.available)return o(`POSIX limit placement unavailable: ${s.reason}. The Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling`);let i=my(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=yy(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:by({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Rs({scope:null,memory_ceiling:n,scope_degradation:l}),...a?{budgetWarning:"the declared memory budget is enforced by the daemon's RSS sampling floor rather than by the kernel: "+i.memory_ceiling_reason}:{}}}function nO(e,t,r,n,o,s){let i=e.probes.jobObjects;if(!i.available)return s(`Job Object placement unavailable: ${i.reason}. The Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling`);let a=fy(r),l=tO(e.projectLabel,e.workerId,e.target?.unit_prefix);return{isolated:!0,backend:"job-object",command:e.command,args:[...t],cwd:e.workspacePath,job:{name:l,limits:a},budget:r,...n!=null?{memoryCeiling:n}:{},environment:Rs({scope:l,memory_ceiling:n,scope_degradation:null}),...oO(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,yu(e.budget))}}function oO(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function vy(e,t){for(let r of(t.PATH??"").split(ZD)){if(!r)continue;let n=ky(r,e);if(Ru(n))return n}return null}function wu(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function _u(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}var Sy=3e4;function Ty(e){return e.unit!=null&&e.unit!==""?sO(e.unit):Qe(e.pid)}function sO(e){let t=Wa("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var iO="REDSKILLED_UNIT_DISCOVERY",Py="(unowned)";function Ay(e){let t=Wa("systemctl",["--user","show","--property=MainPID","--value",e],{encoding:"utf8"});if(t.error!=null||t.status!==0)return null;let r=Number.parseInt((t.stdout??"").trim(),10);return Number.isInteger(r)&&r>0?r:null}function aO(e=process.env){let t=(e[iO]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function Cy(e,t,r=process.env){return aO(r)&&e===t}function Dy(e=Ga){let t=Wa("systemctl",["--user","list-units","--type=service","--state=active","--plain","--no-legend","--no-pager",`${e}-*.service`],{encoding:"utf8"});return t.error!=null||t.status!==0?[]:(t.stdout??"").split(`
92
- `).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function Oy(e){let t=new Set(e.held.map(o=>o.unit).filter(o=>o!=null&&o!=="")),r=new Set,n=[];for(let o of e.units)o===""||t.has(o)||r.has(o)||(r.add(o),n.push({worker_id:o.replace(/\.service$/,""),project_label:Py,pid:e.mainPid?.(o)??0,started_at:e.now,workspace_path:"",isolated:!0,unit:o,warnings:[`adopted from active unit ${JSON.stringify(o)}, which has no birth on this host's event lane: its project, its Worker id and its budget belonged to a daemon that is gone, so they are reported as unknown rather than guessed \u2014 it is counted against the host budget from here on instead of running outside it`]}));return n}function Fy(e){return e.project_label.trim()!==""?e:{...e,project_label:Py,warnings:[...e.warnings,"adopted at start with no owning project on the event lane: the daemon that birthed it recorded no project label, so it is held and counted under a stated placeholder rather than dropped"]}}function Iy(e){if(e.unit!=null&&e.unit!==""){let t=Wa("systemctl",["--user","stop",e.unit],{stdio:"ignore"});return t.error==null&&t.status===0}try{return process.kill(e.pid,"SIGTERM"),!0}catch{return!1}}var ei=50,Eu=15e3,CH=2*Eu;function lO(e,t=ei){if(vu(e),!Number.isInteger(t)||t<=0)throw new Error(`redskilled queue discovery needs a whole, positive batch size, not ${JSON.stringify(t)}`);let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function Ly(e,t={}){let r=t.batchSize??ei;if(vu(e),e.length>r)throw new Error(`redskilled queue discovery spans at most ${r} selectors in one query, and this batch holds ${e.length}: split it with planQueueDiscoveryBatches rather than dropping the remainder`);let n=e.map((i,a)=>({alias:`q${a}`,project:i}));return{query:["query RedskilledQueueDiscovery {"," rateLimit { remaining resetAt }",...n.map(({alias:i,project:a})=>` ${i}: search(query: ${JSON.stringify(a.selector)}, type: ISSUE, first: 1) { issueCount }`),"}"].join(`
93
- `),aliases:n}}function jy(e,t){let r=Zs(t),n=Zs(r.data),o=Array.isArray(r.errors)?r.errors.map(Zs):[],s=fO(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=hO(n[a]);if(d!=null)return{project_label:l.project_label,outcome:"counted",depth:d,detail:`project ${JSON.stringify(l.project_label)} has ${d} item(s) matching its selector`};let c=o.find(u=>gO(u.path,a));return s.exhausted||Ny(c)?{project_label:l.project_label,outcome:"rate-limited",depth:null,detail:`the host token's quota was spent before project ${JSON.stringify(l.project_label)} answered, so this queue has no depth rather than a depth of zero`+(s.reset_at==null?"":`; the quota resets at ${s.reset_at}`)}:{project_label:l.project_label,outcome:"unreachable",depth:null,detail:`project ${JSON.stringify(l.project_label)} could not be counted with the host token: ${xu(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function dO(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:ei,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function By(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:ei,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:e.map(n=>({project_label:n.project_label,outcome:"unconfigured",depth:null,detail:`project ${JSON.stringify(n.project_label)} was not counted because this host polls no tracker: ${r}`}))}}async function $y(e){if(e.projects.length===0)return dO(e.now);if(e.transport.conditionalList)return await uO(e);let t=e.batchSize??ei,r=lO(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=Ly(s,{batchSize:t});try{let a=await e.transport(i.query),l=jy(i,a);n.push(...l.projects),o=Xs(o,l.rate_limit)}catch(a){let l=a instanceof Error?a.message:String(a),d=/rate limit|secondary rate|429/i.test(l);o=Xs(o,{remaining:null,reset_at:null,exhausted:d});for(let c of s)n.push({project_label:c.project_label,outcome:d?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(c.project_label)} answered: ${l}`})}}return{version:1,fetched_at:e.now,request_count:r.length,project_count:n.length,batch_size:t,rate_limit:o,projects:n}}var cO={key:"redskilled queue poll",budget:"rest"};async function uO(e){vu(e.projects);let t=e.transport.conditionalList,r=[],n={remaining:null,reset_at:null,exhausted:!1},o=0;for(let s of e.projects)try{if(s.poll==null){let l=Ly([s],{batchSize:1}),d=jy(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=Xs(n,d.rate_limit);continue}let i=await t({cacheKey:`queue:${s.project_label}:${JSON.stringify(s.poll)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:{owner:s.poll.owner,repo:s.poll.repo,state:"open",labels:s.poll.labels.join(","),...s.poll.creator==null?{}:{creator:s.poll.creator}},operation:cO});o+=i.requestCount;let a=i.data.filter(l=>!Gy(l.pull_request)).length;n=Xs(n,pO(i.headers)),r.push({project_label:s.project_label,outcome:"counted",depth:a,detail:`project ${JSON.stringify(s.project_label)} has ${a} item(s) matching its selector`})}catch(i){let a=Bs(i);n=Xs(n,{remaining:null,reset_at:null,exhausted:a}),r.push({project_label:s.project_label,outcome:a?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(s.project_label)} answered: ${i instanceof Error?i.message:String(i)}`})}return{version:1,fetched_at:e.now,request_count:o,project_count:r.length,batch_size:1,rate_limit:n,projects:r}}function vu(e){if(e.length===0)throw new Error("redskilled queue discovery needs at least one registered project");let t=new Set;for(let r of e){if(typeof r.project_label!="string"||r.project_label==="")throw new Error("redskilled queue discovery needs a project label for every registered project");if(typeof r.selector!="string"||r.selector==="")throw new Error(`redskilled queue discovery needs a selector for project ${JSON.stringify(r.project_label)}: a project that names no work has no queue to discover`);if(t.has(r.project_label))throw new Error(`redskilled holds one selector per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function Xs(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted}}function pO(e){let t=My(e,"x-ratelimit-remaining"),r=My(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function My(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function fO(e,t){let r=Zs(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null;return{remaining:n,reset_at:o,exhausted:t.some(Ny)||n===0}}function Ny(e){return e==null?!1:xu(e.type)==="RATE_LIMITED"||/rate limit/i.test(xu(e.message))}function gO(e,t){return Array.isArray(e)&&e.includes(t)}function hO(e){let t=Zs(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Zs(e){return Gy(e)?e:{}}function Gy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xu(e){return typeof e=="string"?e:""}function Wy(e,t,r){let n=e?.rate_limit;if(n==null)return t;if(n.exhausted){let s=n.reset_at==null?Number.NaN:Date.parse(n.reset_at),i=Number.isFinite(s)?s-r+1e3:t*4;return Math.min(mO,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=bO?Math.max(t,3e4):o<=yO?Math.max(t,2e4):t}var mO=1e5,bO=250,yO=1e3;var kO={runner:null,model:null,effort:null,origin:null,issue:null,phase:null,step:null,phase_index:null,phase_total:null,failed:!1,heartbeat:null,wait_kind:null,wait_subject:null,wait_pid:null,wait_started_at:null,wait_deadline:null,wait_escalation:null,started_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null},wO=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],RO=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function Hy(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...kO};for(let n of wO){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of RO){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{randomInt as vO}from"node:crypto";import{spawn as SO}from"node:child_process";import{appendFileSync as TO,mkdirSync as PO}from"node:fs";import{dirname as AO}from"node:path";import{delimiter as Uy,dirname as _O}from"node:path";function xO(e,t=Uy){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function EO(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=_O(t);return r===""||r==="."?null:r}function qy(e,t=process.execPath,r=Uy){let n=xO(e,r),o=EO(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var Ho=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},Fr=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},Su="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",Ky=4,CO=Su.length**Ky;function Pu(e,t=vO){let r=new Set(e);for(let n=0;n<CO;n+=1){let o="h";for(let s=0;s<Ky;s+=1)o+=Su[t(Su.length)];if(!r.has(o))return o}throw new Ho("redskilled exhausted the host Worker id space")}function DO(e){if(e==null||e.trim()==="")return{ready:!1};let t=AO(e);try{return PO(t,{recursive:!0}),{ready:!0}}catch(r){let n=r?.code;return{ready:!1,warning:`redskilled could not create the log directory ${JSON.stringify(t)} for ${JSON.stringify(e)}${n==null?"":` (${n})`}: ${Tu(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function OO(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{TO(t,Lt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
94
- `);s=l.pop()??"";for(let d of l)i(d)}),n.on("end",()=>{s!==""&&i(s)})};r(e.stdout,"worker.stdout"),r(e.stderr,"worker.stderr")}function FO(e){let t=[["project_label",e.project_label],["workspace_path",e.workspace_path],["command",e.command]];for(let[r,n]of t)if(typeof n!="string"||n.trim()==="")throw new Ho(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new Ho("redskilled worker spec args must be an array")}function IO(e){if(e==null)throw new Fr("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new Fr(e.reason,e)}function Vy(e){let{spec:t,admission:r}=e;IO(r),FO(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||Pu(e.liveWorkerIds??[]),i=e.probes??Ry(n),a=pm(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),l=e.openLog===!1?{ready:!1}:DO(a),d=l.ready,c={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:qy(t.env?.PATH??n.PATH,e.execPath??process.execPath)},u=Ey({workerId:s,projectLabel:t.project_label,workspacePath:t.workspace_path,command:t.command,args:t.args,budget:t.budget,...e.memoryCeiling!=null?{memoryCeiling:e.memoryCeiling}:{},target:t.placement,env:c,enabled:e.enabled??_y(n),probes:i,pipeOutput:d}),g=(e.spawnFn??SO)(u.command,u.args,{...u.cwd!=null?{cwd:u.cwd}:{},detached:!0,stdio:d?["ignore","pipe","pipe"]:"ignore",env:u.backend==="transient-unit"?{...n}:{...n,...c,...u.environment}});if(d&&a!=null&&OO(g,a),g.pid==null)throw g.once("error",()=>{}),new Ho(`redskilled could not spawn ${JSON.stringify(u.command)} for worker ${s}`);let f=u.job!=null?MO(u,i,g.pid):null;g.once("error",()=>{}),g.once("exit",(T,$)=>{try{f?.job?.close()}catch{}e.onExit?.(s,T,$)}),g.unref();let y=u.job!=null?f?.job!=null:u.isolated,h=[u.warning,f?.warning,u.budgetWarning,l.warning].filter(T=>T!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:g.pid,started_at:o(),workspace_path:t.workspace_path,...d&&a!=null?{log_path:a}:{},isolated:y,...u.unit!=null?{unit:u.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(u.budget).length>0?{applied_budget:u.budget}:{},...u.memoryCeiling!=null?{memory_ceiling:u.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:h},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:h,plan:u,child:g,...f?.job!=null?{job:f.job}:{}}}function MO(e,t,r){let n=e.job;if(n==null)return{};let o="the Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling";if(!t.jobObjects.available)return{warning:`Job Object placement unavailable: ${t.jobObjects.reason}. ${o}`};let s;try{s=t.jobObjects.binding.createJobObject({name:n.name,limits:n.limits})}catch(i){return{warning:`Job Object ${JSON.stringify(n.name)} could not be created: ${Tu(i)}. ${o}`}}try{s.assign(r)}catch(i){try{s.close()}catch{}return{warning:`Worker pid ${r} could not be assigned to Job Object ${JSON.stringify(n.name)}: ${Tu(i)}. ${o}`}}return{job:s}}function Tu(e){return e instanceof Error?e.message:String(e)}import{execFile as LO}from"node:child_process";var jO="refs/heads/red-trunk";function Ha(e,t){return new Promise((r,n)=>{LO("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function zy(e){await Ha(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Ha(e.workspace_path,["rev-parse","--verify","FETCH_HEAD^{commit}"]);if(t==="")throw new Error("the fetched trunk did not resolve to a commit");return await Ha(e.workspace_path,["update-ref",jO,t]),t}async function Jy(e){let t=await Ha(e.workspace_path,["rev-list","--count",`${e.fork_sha}..${e.head_sha}`]),r=Number(t);if(!Number.isInteger(r)||r<0)throw new Error(`git returned an invalid base movement count: ${t}`);return r}import{open as BO,stat as $O}from"node:fs/promises";var NO=16*1024;async function Yy(e,t=NO){let r;try{r=(await $O(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await BO(e,"r");try{let i=Buffer.alloc(n);await s.read(i,0,n,r-n),o=i.toString("utf8")}finally{await s.close()}}catch{return null}return GO(o)}function GO(e){let t=e.split(`
95
- `);for(let r=t.length-1;r>=0;r-=1){let n=t[r].replace(/\r$/,"");if(n.trim()!=="")return n}return null}import{spawn as o1}from"node:child_process";import{existsSync as s1,readdirSync as i1}from"node:fs";import{dirname as a1,join as a0,resolve as l1}from"node:path";var WO="<version>";function Rn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():WO;return[`npx -y -p ${Nn}@${n}`,e,...t].join(" ")}function dr(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}:null}function Au(e,t){let r=dr(e),n=dr(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var ZH=4*60*60*1e3;zr();zr();import{spawnSync as HO}from"node:child_process";import{randomUUID as UO}from"node:crypto";import{mkdir as qO,rm as KO,writeFile as VO}from"node:fs/promises";import{existsSync as zO,mkdirSync as JO,renameSync as YO,writeFileSync as QO}from"node:fs";import{homedir as XO}from"node:os";import{dirname as Qy,join as ti}from"node:path";var Qt="redskilled.service",Cu="REDSKILLED_SUPERVISED",ZO="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function e1(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||ti(e.HOME?.trim()||XO(),".config");return ti(t,"systemd","user")}function Uo(e=process.env){return ti(e1(e),Qt)}function Xy(e,t={}){let r=t.env??process.env,n=la(t.override??{},t.entryLookup??{}),o=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:Qt,unitPath:Uo(r),command:n.command,args:o,text:t1(n.command,o,e)}}function t1(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${ZO}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(t0).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${Cu}=1"`,`Environment="REDSKILLED_SESSION=${r0(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
96
- `)}function r1(e=process.env){return ti(`${Uo(e)}.d`,"10-current-entry.conf")}function Zy(e){return ti(`${e}.d`,"10-current-entry.conf")}function e0(e,t,r={}){let n=r1(r.env??process.env),o=`${n}.${process.pid}.${UO()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(t0).join(" ")}`,""].join(`
97
- `);JO(Qy(n),{recursive:!0,mode:448}),QO(o,i,{encoding:"utf8",mode:384}),YO(o,n);let a=(r.run??qa)(["systemctl","--user","daemon-reload"]);if(a.status!==0)throw new Error(`redskilled wrote the supervised replacement drop-in ${n}, but systemd did not reload it: ${(a.stderr??a.stdout??`status ${a.status}`).trim()}`);return n}function t0(e){return/[\s"'\\$%]/.test(e)?`"${r0(e)}"`:e}function r0(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function n0(e,t={}){let r=t.writeFile??n1,n=t.removeFile??i0,o=t.run??qa,s=[];return await r(e.unitPath,e.text),await n(Zy(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Ua("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Ua("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function o0(e={}){let t=e.removeFile??i0,r=e.run??qa,n=Uo(e.env??process.env),o=[Ua("disable",r,["systemctl","--user","disable","--now",Qt])];return await t(n),await t(Zy(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Ua("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function s0(e={}){let t=e.exists??zO,r=e.run??qa,n=Uo(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Qt]).status===0,i=o&&r(["systemctl","--user","is-active",Qt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Qt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Qt}`}]:[];return{unitName:Qt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Ua(e,t,r){let n=t(r),o=(n.stderr??n.stdout??"").trim();return{step:e,argv:r,ok:n.status===0,...o?{detail:o}:{}}}async function n1(e,t){await qO(Qy(e),{recursive:!0}),await VO(e,t,{encoding:"utf8",mode:420})}async function i0(e){await KO(e,{force:!0})}function qa(e){let t=HO(e[0],[...e.slice(1)],{encoding:"utf8"});return t.error!=null?{status:null,stderr:t.error.message}:{status:t.status,stdout:t.stdout??"",stderr:t.stderr??""}}var l0=75,c0=9e5,d0="redskilled-replacement-entry-unresolved",d1="REDSKILLED_NO_REGISTRY_PROBE",u0="REDSKILLED_BORN_BY_REPLACEMENT";function p0(e=process.env){return e[u0]==="1"}function f0(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function g0(e){let t=e.running.trim();if(ri(t))return null;let r=e.newest?.trim()??"",n=dr(r),o=dr(t);return n===null||o===null||n.major<=o.major?null:{version:r,running_major:o.major,held_major:n.major,reason:`redskilled ${r} is published and this daemon runs ${t}; a major version is deliberately never adopted by the background check, because a breaking change must not arrive on a machine that is holding Workers`,action:c1(n.major,e.supervised)}}function c1(e,t){let r=`install the ${e}.x bundle (update this machine's plugin pin), then `;return t?`${r}re-point the unit and restart it: ${Rn("red-skills-redskilled",["unit","install"])} && systemctl --user restart redskilled.service`:`${r}stop this daemon \u2014 the next client start resolves the newly installed bundle`}function h0(e){let t=e.running.trim();if(ri(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||dr(r)===null?{act:"hold",reason:"published-unknown"}:Au(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function ri(e){let t=e.trim();return dr(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function m0(e=process.env){return e[Cu]==="1"}var Du=class extends Error{code=d0;searched;constructor(t,r){super(`${d0}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled
85
+ `),aliases:r}}function vb(e,t){let r=t!==null&&typeof t=="object"?t:{},n=r.data??r,o=n!==null&&typeof n=="object"?n:{};return Object.entries(e.aliases).map(([s,i])=>{let a=o[s];if(a===null||typeof a!="object")return{read:i,value:null};let l=a.object;return{read:i,value:l!==null&&typeof l=="object"&&!Array.isArray(l)?l:null}})}var WA=xb.plugin(mc,ba);function Sb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function Tb(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}var Oo=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}};function jc(e){let t=e.etags??Sb(),r=new WA({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async c=>{let u=t.get(c.cacheKey),p={...c.parameters??{}},g=hn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),y=f.headers,h=xa(y,"etag");return h!==void 0&&t.set(c.cacheKey,{etag:h,data:f.data,headers:y}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:y,quotaFree:!1}}catch(f){if(Ls(f)===304){if(u===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(c.cacheKey)} without a held answer to reuse`,{cause:f});let y=Pb(f),h={...u.headers,...y},R=xa(h,"etag")??u.etag;return t.set(c.cacheKey,{etag:R,data:u.data,headers:h}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:h,quotaFree:!0}}throw Ls(f)===401?new Oo({cause:f}):f}},o=new Map,s=!1,i=async c=>{let u=c.input,p=u.kind==="pr";try{let g=await n({cacheKey:u.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:u.owner,repo:u.repo,...p?{pull_number:u.number}:{issue_number:u.number}},operation:u.operation,actor:u.actor});c.resolve({data:u.project?u.project(g.data,"rest"):g.data,surface:"rest",quotaFree:g.quotaFree})}catch(g){c.reject(g)}},a=async c=>{try{let u=Eb(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=vb(u,p),f=UA(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:qA(c.map(({input:h})=>h.actor))}),g.forEach((h,R)=>{let T=c[R];h.value===null?T.reject(new Error(`GitHub returned no ${h.read.kind} #${h.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(h.value,"graphql"):h.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=Ls(u)===401?new Oo({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=Tb(c);s=!1;let p=[...o.values()];o.clear(),await Promise.all(p.map(async g=>{g.length>u?await a(g):await Promise.all(g.map(i))}))};return{conditionalRest:n,singleObject:c=>t.get(c.cacheKey)!==void 0?new Promise((u,p)=>{i({input:c,resolve:u,reject:p})}):new Promise((u,p)=>{let g=o.get(c.kind)??[];g.push({input:c,resolve:u,reject:p}),o.set(c.kind,g),s||(s=!0,setTimeout(()=>void l(),0))}),async conditionalPaginate(c){let u=[],p={},g=0,f=!0,y=1;for(;;){let h=await n({...c,cacheKey:`${c.cacheKey}:page:${y}`,parameters:{...c.parameters??{},per_page:100,page:y}});if(g+=1,f=f&&h.quotaFree,!Array.isArray(h.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${y}`);if(u.push(...h.data),p=h.headers,!HA(h.headers))break;y+=1}return{data:u,headers:p,requestCount:g,quotaFree:f}},async graphql(c,u={},p){try{let g=await r.graphql(c,u);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),g}catch(g){throw Ls(g)===401?new Oo({cause:g}):g}}}}function HA(e){let t=xa(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function js(e){let t=Ls(e),r=Pb(e);return t===429||t===403&&xa(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Ls(e){if(hn(e))return typeof e.status=="number"?e.status:void 0}function Pb(e){return!hn(e)||!hn(e.response)||!hn(e.response.headers)?{}:e.response.headers}function xa(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function hn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function UA(e){let t=hn(e)?e:{},r=hn(t.data)?t.data:t,o=(hn(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(o)||o<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return o}function qA(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var Cb="rate_limit",Db={rest:"core",graphql:"graphql",search:"search"},Qr=["rest","graphql","search"];function Ta(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Qr],detail:t??"no balance has been asked for yet, so none is known"}}var $c=15e3,Fo=.15,va=[{at_or_below_fraction:0,every_ms:$c,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Fo,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}];var s5=60*6e4,Bc=2;function Ob(e,t){let r=Ab(e),n=Ab(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Qr){let l=Db[a],d=n[l],c=zA(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Qr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${Qr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Nc(e){try{let t=await e.transport();return Ob(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Ta(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Gc(e){let t=null;for(let r of Qr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function Pa(e,t){let r=Gc(e);if(r==null)return Sa(Fo).every_ms;let n=Sa(r.fraction);if(r.remaining>0)return n.every_ms;let o=Ib(t.now,r.reset_at);return o==null?n.every_ms:Math.max($c,Math.min(n.every_ms,o))}function Wc(e,t=Fo){return Math.ceil(e.limit*t)}function Fb(e,t,r=Fo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Wc(n,r)?"reserved":"open"}function Hc(e){let t=e.reservedFraction??Fo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Sa(t).every_ms*Bc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Sa(t).every_ms,pools:[],unreported_pools:[...Qr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=Pa(r,{now:e.now}),o=e.stalenessMs??n*Bc,s=Ib(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Qr.map(c=>r.pools[c]).filter(c=>c!=null),l=VA(r,t),d=Gc(r);return{version:1,origin:"asked",outcome:r.outcome,asked_at:r.asked_at,age_ms:s,threshold_ms:o,stale:i,posture:l,reserved_fraction:t,next_poll_ms:n,pools:a,unreported_pools:r.unreported_pools,reason:i?`this balance is stale: asked ${s==null?"at an unreadable instant":`${s}ms ago`}, past the ${o}ms window, so the posture below is the last one the token confirmed and not the current one`:KA(l,d,r,t)}}function Uc(e){if(!Kc(e))return!1;let t=e;return t.version===1&&t.origin==="asked"&&(t.outcome==="asked"||t.outcome==="unanswered")&&(t.asked_at===null||typeof t.asked_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.posture=="string"&&typeof t.reserved_fraction=="number"&&typeof t.next_poll_ms=="number"&&Array.isArray(t.pools)&&Array.isArray(t.unreported_pools)&&typeof t.reason=="string"}function KA(e,t,r,n){if(t==null)return r.detail;let o=Wc(t,n);switch(e){case"spent":return`the ${t.pool} pool is spent and resets at ${t.reset_at}: work is not queued, it is refused`;case"reserved":return`the ${t.pool} pool has ${t.remaining} of ${t.limit} left, inside the reserved band of ${o}: convenience reads are refused and the claim, a landing and a closing comment still pass`;default:return`the ${t.pool} pool is the tightest at ${t.remaining} of ${t.limit}, above the reserved band of ${o}`}}function VA(e,t){let r="unknown";for(let n of Qr){if(e.pools[n]==null)continue;let o=Fb(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Sa(e){for(let t of va)if(e<=t.at_or_below_fraction)return t;return va[va.length-1]}function zA(e,t,r){if(!Kc(r))return null;let n=Ea(r.limit),o=Ea(r.remaining),s=Ea(r.used),i=Ea(r.reset);return n==null||n<=0||o==null?null:{pool:e,resource:t,limit:n,remaining:o,used:s??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:o/n}}function qc(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${Cb}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function Ib(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function Ea(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Ab(e){return Kc(e)?e:{}}function Kc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as JA}from"node:child_process";import{existsSync as YA,readFileSync as Aa,readdirSync as QA}from"node:fs";import{dirname as XA,join as Hn}from"node:path";function Bs(e){let t=Ps(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Po(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Mb(e){let t=[],r=[];for(let n of e.workers){let o=Bs(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Ps(n).memory_max??Ps(n).memory_high)==null?"this Worker declared no memory budget and the host derived no ceiling for it, so the sampler has none to enforce":"this Worker's declared memory budget cannot be reduced to bytes, so the sampler has no ceiling to enforce"});continue}let s=e.rss[n.worker_id];if(typeof s!="number"||!Number.isFinite(s)){r.push({worker_id:n.worker_id,reason:"the host produced no RSS reading for this Worker on this tick, and an unmeasured Worker is never killed on suspicion"});continue}if(!(s<=o.bytes)){if(e.sources?.[n.worker_id]==="cgroup"&&o.name==="MemoryMax"){r.push({worker_id:n.worker_id,reason:`this Worker's ${o.name} of ${o.declared} is held by the kernel on its own cgroup, and the reading is memory.current \u2014 which counts reclaimable page cache the kernel drops before it kills anything, so the daemon does not duplicate an enforcement that can tell cache from anonymous memory`});continue}t.push(ZA(n,o,s))}}return{terminations:t,unenforceable:r}}function ZA(e,t,r){let n=`Worker ${JSON.stringify(e.worker_id)} of project ${JSON.stringify(e.project_label)}`;return{version:1,worker_id:e.worker_id,project_label:e.project_label,outcome:"terminated-over-memory-budget",classification:"budget-exceeded",stall:!1,budget_name:t.name,budget_declared:t.declared,budget_bytes:t.bytes,observed_rss_bytes:r,workspace_path:e.workspace_path,reason:`redskilled terminated ${n}: its tree RSS of ${r} bytes exceeded its ${t.name} budget of ${t.declared} (${t.bytes} bytes). This is a budget termination, not a stall, and the work in ${JSON.stringify(e.workspace_path)} is handed forward.`}}var eC=4096;function Lb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=rC(e,r,t);for(let[u,p]of a){let g=sC(p);g!=null&&(o[u]=g.memoryBytes,g.cpuSeconds!=null&&(s[u]=g.cpuSeconds),i[u]="cgroup")}let l=e.filter(u=>i[u.worker_id]==null);if(l.length===0)return{rss:o,cpu_seconds:s,sources:i};let d=lC(r,t);if(d.size===0)return{rss:o,cpu_seconds:s,sources:i};let c=new Map;for(let u of d.values()){let p=c.get(u.ppid);p?p.push(u.pid):c.set(u.ppid,[u.pid])}for(let u of l){if(!d.has(u.pid))continue;let p=0,g=0,f=[u.pid],y=new Set;for(;f.length>0;){let h=f.pop();if(y.has(h))continue;y.add(h);let R=d.get(h);if(R){p+=R.rssBytes,g+=R.cpuSeconds;for(let T of c.get(h)??[])f.push(T)}}o[u.worker_id]=p,s[u.worker_id]=g,i[u.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,sources:i}}var tC="/sys/fs/cgroup";function rC(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??tC,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=nC(s,r);for(let l of i)for(let d of a){let c=Hn(d,l.unit);if(YA(Hn(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function nC(e,t){let r=t.selfCgroupPath??oC(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Hn(e,s));let a=XA(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(Hn(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function oC(){try{for(let e of Aa("/proc/self/cgroup","utf8").split(`
86
+ `))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function sC(e){let t;try{t=Aa(Hn(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:iC(e)}}function iC(e){let t;try{t=Aa(Hn(e,"cpu.stat"),"utf8")}catch{return null}return aC(t)}function aC(e){for(let t of e.split(`
87
+ `)){let[r,n]=t.trim().split(/\s+/);if(r!=="usage_usec")continue;let o=Number(n);return!Number.isFinite(o)||o<0?null:o/1e6}return null}function lC(e,t){return t.procRoot!=null||e==="linux"?gC(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?pC(dC(t.psTable)):new Map}function dC(e){try{return(e??cC)()}catch{return""}}function cC(){return JA("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var uC=1024;function pC(e){let t=new Map;for(let r of e.split(`
88
+ `)){let n=r.trim().split(/\s+/);if(n.length!==4)continue;let[o,s,i]=n.slice(0,3).map(Number);if(![o,s,i].every(l=>l!=null&&Number.isSafeInteger(l)&&l>=0))continue;let a=fC(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*uC,cpuSeconds:a})}return t}function fC(e){let t=e.indexOf("-"),r=t<0?0:Number(e.slice(0,t));if(!Number.isFinite(r)||r<0)return null;let n=e.slice(t+1).split(":"),o=r*86400,s=1;for(let i=n.length-1;i>=0;i--){let a=Number(n[i]);if(!Number.isFinite(a)||a<0||n[i]==="")return null;o+=a*s,s*=60}return o}function gC(e){let t=new Map,r;try{r=QA(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=Aa(Hn(e,n,"stat"),"utf8")}catch{continue}let s=mC(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*eC,cpuSeconds:s.cpuTicks/hC})}return t}var hC=100;function mC(e){let t=e.lastIndexOf(")");if(t<0)return null;let r=Number(e.slice(0,e.indexOf(" "))),n=e.slice(t+1).trim().split(/\s+/),o=Number(n[1]),s=Number(n[11]),i=Number(n[12]),a=Number(n[21]);return!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(i)?null:{pid:r,ppid:o,rssPages:Math.max(0,a),cpuTicks:Math.max(0,s)+Math.max(0,i)}}var bC=["api","graphql"],L5=uc(bC);var jb=100,zc=6e4,yC=2*zc,kC=7*24*60*60*1e3,Vc=class extends Error{constructor(r,n,o){super(`redskilled polls every repository with one host token ${JSON.stringify(o)}, and project ${JSON.stringify(r)} declares its own credential ${JSON.stringify(n)}: a project needing its own credential invalidates the host-scoped poller (ADR 0130 Amendment 1) rather than bending it, so the poller returns to the projects instead of reaching this repository under the wrong identity`);this.projectLabel=r;this.tokenRef=n;this.hostTokenRef=o;this.name="RedskilledSplitCredentialError"}};function Jc(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new Vc(r.project_label,r.token_ref,t)}function Wb(e,t={now:new Date(0).toISOString()}){Vb(e);let r=t.closedWindowMs??kC,n=Date.parse(t.now);if(!Number.isFinite(n))throw new Error(`redskilled activity fetch needs an instant, not ${JSON.stringify(t.now)}`);let o=new Date(n-Math.max(0,r)).toISOString(),s=e.map((l,d)=>({alias:`r${d}`,search_alias:`c${d}`,project:l}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...s.flatMap(({alias:l,search_alias:d,project:c})=>{let u=JSON.stringify(c.owner),p=JSON.stringify(c.name),g=JSON.stringify(`repo:${c.owner}/${c.name} is:closed closed:>=${o}`);return[` ${l}: repository(owner: ${u}, name: ${p}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${d}: search(query: ${g}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
89
+ `),aliases:s,closed_since:o}}function wC(e,t,r){let n=Io(t),o=Io(n.data),s=Array.isArray(n.errors)?n.errors.map(Io):[],i=SC(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,project:c})=>{let u=c.owner+"/"+c.name,p=o[l],g=s.find(f=>Nb(f.path,l)||Nb(f.path,d));if($s(p)){let f=Gb(p.open_pull_requests),y=Gb(p.open_issues),h=TC(o[d]);if(f!=null&&y!=null&&h!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:y,recently_closed:h},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||zb(g)?{project_label:c.project_label,repository:u,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${u} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:c.project_label,repository:u,outcome:"unreachable",counts:null,detail:`${u} is not reachable with the host token: ${Ca(g?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function RC(e){return{version:1,fetched_at:e,request_count:0,project_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[]}}async function Hb(e){if(e.projects.length===0)return RC(e.now);if(Jc(e.projects,e.hostTokenRef),e.transport.conditionalList)return await xC(e);let t=Wb(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return wC(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}var _C={key:"redskilled repository activity poll",budget:"rest"};async function xC(e){Vb(e.projects);let t=Date.parse(e.now),r=Number.isFinite(t)?new Date(Math.floor(t/(60*60*1e3))*60*60*1e3).toISOString():e.now,n=Wb(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let y=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:_C});i+=y.requestCount;let h=p==="open-prs"?y.data:y.data.filter(R=>!$s(R.pull_request));u.push(p==="recently-closed"?h.filter(R=>Ca(R.closed_at)>=n.closed_since).length:h.length),a=Bb(a,vC(y.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=js(p);a=Bb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function Ub(e){let t=e.stalenessMs??yC,r=e.activity;if(r==null)return{version:1,fetched_at:null,age_ms:null,threshold_ms:t,stale:!1,request_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[],reason:"the daemon polls no repository, so there are no counts to age"};let n=Date.parse(e.now),o=Date.parse(r.fetched_at),s=Number.isFinite(n)&&Number.isFinite(o)?Math.max(0,n-o):null,i=s==null||s>t;return{version:1,fetched_at:r.fetched_at,age_ms:s,threshold_ms:t,stale:r.projects.length>0&&i,request_count:r.request_count,rate_limit:r.rate_limit,projects:r.projects.map(a=>({...a,fetched_at:r.fetched_at,age_ms:s,stale:i})),reason:r.projects.length===0?"the daemon polls no repository, so there are no counts to age":s==null?"these counts carry no readable instant, so they cannot be presented as current":i?`these counts are ${s}ms old, past the ${t}ms window`:`fetched ${s}ms ago, within the ${t}ms window`}}function qb(e){if(!$s(e))return!1;let t=e;return t.version===1&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&Number.isInteger(t.request_count)&&$s(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Kb(e){let t=e.endpoint==null?void 0:EC(e.endpoint),r=jc({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n}function EC(e){let t=new URL(e);return/\/api\/graphql\/?$/.test(t.pathname)?t.pathname=t.pathname.replace(/\/api\/graphql\/?$/,"/api/v3"):t.pathname=t.pathname.replace(/\/graphql\/?$/,""),t.search="",t.hash="",t.toString().replace(/\/$/,"")}function vC(e){let t=$b(e,"x-ratelimit-remaining"),r=$b(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Bb(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted,point_cost:null}}function $b(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function Vb(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>jb)throw new Error(`redskilled activity fetch spans at most ${jb} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function SC(e,t){let r=Io(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(zb),i=typeof r.cost=="number"&&Number.isFinite(r.cost)?r.cost:null;return{remaining:n,reset_at:o,exhausted:s||n===0,point_cost:i}}function zb(e){if(e==null)return!1;let t=Ca(e.type),r=Ca(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Nb(e,t){return Array.isArray(e)&&e.includes(t)}function Gb(e){let t=Io(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function TC(e){let t=Io(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Io(e){return $s(e)?e:{}}function $s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ca(e){return typeof e=="string"?e:""}function Yb(e,t){let r=[...e].sort((i,a)=>(Ns(a.ts)??0)-(Ns(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(Jb),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=PC(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:Jb(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function Jb(e){return{kind:e.kind,id:e.id,pid:e.pid,ts:e.ts,last_seen:e.last_seen,last_phase:e.last_phase,sender_class:e.sender_class,confidence:e.confidence,signal:e.signal,evidence:e.evidence[0]??null}}function PC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>2||n.project_label==null||n.project_label===""||Ns(n.ts)==null)continue;let o=t.get(n.project_label)??[];o.push(n),t.set(n.project_label,o)}return[...t.entries()].filter(([,n])=>n.length>=3).map(([n,o])=>{let s=o[0],i=Ns(s.ts),a=Math.min(...o.map(d=>Ns(d.ts))),l=s.detail?.trim()||s.evidence[0]?.trim();return l==null||l===""?null:{project_label:n,count:o.length,span_ms:Math.max(0,i-a),latest_refusal:l}}).filter(n=>n!=null).sort((n,o)=>o.count-n.count||o.span_ms-n.span_ms)[0]??null}function Yc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Number.isInteger(t.count)&&Array.isArray(t.recent)}function Ns(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var AC=3e4,CC=["logs","vitals","display"];function Xb(e,t){if(t===void 0)return e;let r=CC.filter(o=>t[o]!==!0);if(r.length===0)return e;let n=o=>t[o]===!0;return{...e,workers:e.workers.map(o=>({...o,...n("vitals")?{}:{vitals:DC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:OC},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var DC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},OC={last_line:null,published_at:null,source:null};function Zb(e){let t=e.stalenessMs??AC,r=Qc(e.now),n=e.sampledAt==null?null:Qc(e.sampledAt),o=r==null||n==null?null:Math.max(0,r-n),s=o!=null&&o<=t,i=new Set(e.reattachedWorkerIds??[]),a=e.hostState.workers.map(p=>IC(p,{rss:e.rss,sampledAt:e.sampledAt,ageMs:o,sampleFresh:s,nowMs:r,log:e.logLines?.[p.worker_id],display:e.displays?.[p.worker_id],state:i.has(p.worker_id)?"reattached":"running"})),l=a.filter(p=>p.vitals.rss_bytes==null).map(p=>p.worker_id).sort(),d=a.length-l.length,c=a.reduce((p,g)=>p+(g.vitals.rss_bytes??0),0),u=ca(e.hostState.workers);return{version:1,generated_at:e.now,daemon:{pid:e.hostState.pid,daemon_version:e.hostState.daemon_version,protocol_version:e.hostState.protocol_version,started_at:e.hostState.started_at,machine_id_hash:e.hostState.machine_id_hash,session_key_hash:e.hostState.session_key_hash},staleness:BC({sampledAt:e.sampledAt,ageMs:o,threshold:t,workerCount:a.length,measuredCount:d,unmeasured:l}),host:{worker_count:a.length,project_count:e.hostState.projects.length,ceiling:e.ceiling,consumption:u,budget_accounting:e.hostState.budget_accounting,observed_rss_bytes:c,measured_worker_count:d,ceiling_used_fraction:e.ceiling.memory_bytes==null||e.ceiling.memory_bytes<=0?null:u.memory_bytes/e.ceiling.memory_bytes},projects:jC(a),known_projects:LC(e.hostState),registered_projects:(e.hostState.registrations??[]).map(p=>p.project_label).sort((p,g)=>p.localeCompare(g)),lapsed_projects:(e.hostState.lapsed_registrations??[]).map(p=>({project_label:p.project_label,at:p.at,...p.registered_at==null?{}:{registered_at:p.registered_at},reason:p.detail})),stopped_projects:(e.hostState.stopped_registrations??[]).map(p=>({project_label:p.project_label,at:p.at})),orphaned_projects:(e.hostState.orphaned_registrations??[]).map(p=>p.project_label),workers:a,github_balance:Hc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Ub({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:Yb(e.deaths,e.recentDeathLimit??4)},engine:FC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function FC(e){let t=e.upgrade,r=t?.running_version??e.daemon_version,n=t?.published_version??null,o=t?.newest_published_version??null,s=(t?.newer_published??0)>0,i=(t?.major_held??0)>0;return{running_version:r,published_version:n,newer_published:s,major_held:i,current:n==null&&o==null?null:!s&&!i}}function IC(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Bs(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=Qc(e.started_at);return{worker_id:e.worker_id,project_label:e.project_label,workspace_path:e.workspace_path,pid:e.pid,started_at:e.started_at,...e.base_commits_ahead==null?{}:{base_commits_ahead:e.base_commits_ahead},uptime_ms:t.nowMs==null||i==null?null:Math.max(0,t.nowMs-i),state:t.state,isolated:e.isolated,unit:e.unit??null,warnings:[...e.warnings],vitals:{rss_bytes:n,sampled_at:n==null?null:t.sampledAt,age_ms:n==null?null:t.ageMs,fresh:n!=null&&t.sampleFresh,rss_source:n==null?null:e.rss_source??null},budget:{name:o?.name??null,declared:o?.declared??s,bytes:o?.bytes??null,used_bytes:n,used_fraction:o==null||o.bytes<=0||n==null?null:n/o.bytes,enforceable:o!=null},log:MC(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function MC(e){let t={last_line:null,published_at:null,source:null};return e==null||e.line.trim()===""?t:{last_line:e.line,published_at:e.published_at,source:e.source}}function LC(e){let t=new Set;for(let r of e.registrations??[])t.add(r.project_label);for(let r of e.projects)t.add(r.project_label);for(let r of e.lapsed_registrations??[])t.add(r.project_label);for(let r of e.stopped_registrations??[])t.add(r.project_label);for(let r of e.orphaned_registrations??[])t.add(r.project_label);return[...t].sort((r,n)=>r.localeCompare(n))}function jC(e){let t=new Map;for(let r of e){let n=t.get(r.project_label)??{workers:0,declared:0,observed:0,measured:0};n.workers+=1,n.declared+=r.budget.bytes??0,n.observed+=r.vitals.rss_bytes??0,n.measured+=r.vitals.rss_bytes==null?0:1,t.set(r.project_label,n)}return[...t.entries()].map(([r,n])=>({project_label:r,worker_count:n.workers,declared_memory_bytes:n.declared,observed_rss_bytes:n.observed,measured_worker_count:n.measured})).sort((r,n)=>r.project_label.localeCompare(n.project_label))}function BC(e){let t={sampled_at:e.sampledAt,age_ms:e.ageMs,threshold_ms:e.threshold,measured_worker_count:e.measuredCount,unmeasured_workers:e.unmeasured};return e.workerCount===0?{...t,stale:!1,reason:"the host holds no Workers, so there is nothing to measure and nothing to age"}:e.sampledAt==null||e.ageMs==null?{...t,stale:!0,reason:`this answer is stale: the daemon has taken no measurement of its ${e.workerCount} live Worker(s) yet`}:e.ageMs>e.threshold?{...t,stale:!0,reason:`this answer is stale: its measurement is ${e.ageMs}ms old, past the ${e.threshold}ms staleness window`}:{...t,stale:!1,reason:`measured ${e.ageMs}ms ago, within the ${e.threshold}ms staleness window`}}function Qc(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Xc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.daemon,n=t.staleness,o=t.host;return t.version===1&&typeof t.generated_at=="string"&&r!=null&&typeof r=="object"&&Number.isInteger(r.pid)&&typeof r.daemon_version=="string"&&typeof r.protocol_version=="number"&&n!=null&&typeof n=="object"&&typeof n.stale=="boolean"&&typeof n.threshold_ms=="number"&&Array.isArray(n.unmeasured_workers)&&o!=null&&typeof o=="object"&&Number.isInteger(o.worker_count)&&Number.isInteger(o.project_count)&&typeof o.observed_rss_bytes=="number"&&Array.isArray(t.projects)&&Array.isArray(t.workers)&&(t.known_projects===void 0||Array.isArray(t.known_projects)&&t.known_projects.every(s=>typeof s=="string"))&&(t.registered_projects===void 0||Array.isArray(t.registered_projects)&&t.registered_projects.every(s=>typeof s=="string"))&&(t.lapsed_projects===void 0||Array.isArray(t.lapsed_projects)&&t.lapsed_projects.every($C))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(NC))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||qb(t.repository_activity))&&(t.github_balance===void 0||Uc(t.github_balance))&&(t.deaths===void 0||Yc(t.deaths))&&(t.engine===void 0||GC(t.engine))&&(t.metrics===void 0||Oh(t.metrics))}function $C(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.reason=="string"}function NC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"}function GC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")}var ey={runner:null,model:null,effort:null,origin:null,issue:null,phase:null,step:null,phase_index:null,phase_total:null,failed:!1,heartbeat:null,wait_kind:null,wait_subject:null,wait_pid:null,wait_started_at:null,wait_deadline:null,wait_escalation:null,started_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null};function ty(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var yt=e=>`\x1B[${e}m`,Gs=yt("48;2;114;47;55"),Zc=yt("48;2;88;36;42"),mn=yt("38;2;255;255;255"),eu=yt("38;2;201;150;158"),Ws=yt("38;2;255;214;214"),Hs=yt("39"),jt=yt("38;2;224;138;148"),tu=yt("38;2;240;200;120"),ru=yt("38;2;240;110;120"),nu=yt("38;2;255;214;214"),ou=yt("38;2;146;84;94"),su=yt("38;2;255;95;95"),Cr=yt("49"),ar=yt("0"),Da=yt("1"),Oa=yt("22");var WC=/\x1b\[[0-9;]*m/g,HC=/(\x1b\[[0-9;]*m)/,UC=/^\x1b\[[0-9;]*m$/;function Un(e){return e.replace(WC,"")}function qC(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Yt(e){return[...Un(e)].length}function Xe(e,t){if(t<=0)return"";if(Yt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(HC))if(i!==""){if(UC.test(i)){s+=i,o=!qC(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?ar:""}`;s+=a,n+=1}}return`${s}\u2026${o?ar:""}`}function Us(e,t){return e+" ".repeat(Math.max(0,t-Yt(e)))}function iu(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"]){let n=t.indexOf(r);if(n===-1)continue;let s=t.slice(n+r.length).match(/^-(\d+(?:[-.]\d+)*)/)?.[1]?.split(/[-.]/)??[];return/^\d{8}$/.test(s.at(-1)??"")&&s.pop(),s.length===0?r:`${r}-${s.join(".")}`}return e}function lr(e){if(!Number.isFinite(e)||e<=0)return"0B";let t=["B","K","M","G","T"],r=e,n=0;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r>=100||n===0?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")}${t[n]}`}function qs(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function bn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return qs(e);if(e<=0)return"0";let t=(Math.round(e*10)/10).toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function yn(e){if(e==null||!Number.isFinite(e)||e<0)return"\u2014";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function Mo(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Ks="!unregistered",au="!lapsed",Vs="\u21E1",Dr="\u2020",Lo="\u25D0",jo="\u25EF",lu="\u21B3",du="redskilled unreachable \u2014 Worker state unknown";function Bo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Fa(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function zs(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function cu(e){let t=[];return e.workers.length>0&&e.workers.length<=e.maxWorkers&&t.push("workers"),e.mode==="global"&&e.projects.length>0&&e.projects.length<=e.maxProjects&&t.push("projects"),t.push("host"),t}function Ia(e,t){return e.startsWith(t)?e.slice(t.length):e}function Or(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function uu(e,t,r){return r<110?{variant:"compact",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"work",header:"Work",flex:2,minWidth:14,truncate:!0},{key:"state",header:"State",flex:2,minWidth:14,truncate:!0},{key:"activity",header:"Latest activity",flex:3,minWidth:18,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,work:Or(Ia(n.cells.iss,"iss="),n.cells.phase),state:Or(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}:{variant:"operational",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"issue",header:"Issue",width:7},{key:"runner",header:"Runner",flex:1,minWidth:12,truncate:!0},{key:"phase",header:"Phase",flex:2,minWidth:16,truncate:!0},{key:"progress",header:"Progress",width:9},{key:"elapsed",header:"Elapsed",width:9,align:"right"},{key:"eta",header:"ETA",width:8,align:"right"},{key:"activity",header:"Activity",flex:2,minWidth:16,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,issue:Or(Ia(n.cells.iss,"iss=")),runner:Or(Ia(n.cells.run,"run=")),phase:Or(n.cells.phase),progress:Or(n.cells.bar),elapsed:Or(n.cells.elapsed),eta:Ia(Or(n.cells.eta),"eta="),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}}var kn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Bt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},KC=" ",ry="\u2588",VC="\u25B6",zC="\u2717",JC="\u2591",YC=new Set(["gate","push-pr","merge","cascade"]),QC=new Set(["requeue"]),XC="repair";function Js(e){return e.display?.origin===XC}function $o(e,t=Bt){let r=zs(e,t.project),n=Bo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>La(y,t,e.generated_at)),i=uD(s),a=o.map((y,h)=>({worker_id:y.worker_id,project_label:y.project_label,mine:t.project!=null&&y.project_label===t.project,cells:s[h],line:Xe(pD(s[h],i),t.maxWidth)})),l=uu(a,o,t.maxWidth),d=eD(e,t,n,r),c=n.length-o.length,u=[d.line,...iD(e,t),...a.map(y=>y.line)];c>0&&u.push(Xe(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...oD(e,t)),u.push(...nD(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Bt.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Xe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:kn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function La(e,t,r){let n=e.display??ey,o=Js(e),s=[n.runner,n.model==null?null:iu(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&YC.has(n.phase),a=o||i||n.origin!=null&&QC.has(n.origin);return{wid:t.mode==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id,run:o||s===""?"":`run=${s}`,org:o?"lane=repair":i?"org=landing":n.origin==null?"":`org=${n.origin}`,iss:n.issue==null?"":o?`pr=#${n.issue.replace(/^#/,"")}`:`iss=${n.issue}`,bar:oy(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:yn(ty(e,r)),eta:n.eta==null?"":`eta=${yn(n.eta*1e3)}`,hb:ZC(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":cD(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${qs(n.tokens)}`,ctx:n.context==null?"":`ctx=${qs(n.context)}`,tls:a||n.tools==null?"":`tls=${n.tools}`,rsn:a||n.reasoning==null?"":`rsn=${n.reasoning}`,txt:a||n.text==null?"":`txt=${n.text}`}}function ZC(e,t){if(e.wait_kind==null||e.wait_subject==null||e.wait_pid==null||e.wait_pid<=0||e.wait_started_at==null)return null;let r=Date.parse(e.wait_started_at),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:`${e.wait_kind}=${e.wait_subject} ${yn(Math.max(0,n-r))}`}function oy(e){let t=e.phase_total,r=e.phase_index;if(t==null||t<=0||r==null||r<0)return"";let n=Math.min(Math.floor(r),Math.floor(t));if(n>=t)return ry.repeat(Math.floor(t));let o=e.failed?zC:VC;return`${ry.repeat(n)}${o}${JC.repeat(Math.floor(t)-n-1)}`}function eD(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=dD(r),l=o?.repository??t.project,d=e.engine??null,c=d?.running_version??e.daemon.daemon_version,u=e.deaths??null,p=e.metrics??null,g=[tD(l??"host",c,d!=null&&d.current===!1?Vs:"")];(n==="unregistered"||n==="name-only")&&g.push(Ks),n==="lapsed"&&g.push(au);let f=p?.history_48h==null?null:sD(p.history_48h);f!=null&&g.push(Xr(f));let y=e.workers.filter(Js).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Xr(`workers=${M} coding +`)} ${Gs}${mn}${y} repairing${Cr}${jt}`)}else g.push(Xr(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Xr(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(Xr(lD(i))),a!=null&&g.push(`${Gs}${mn}${a}${Cr}${jt}`),s.open_pull_requests!=null&&g.push(Xr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Xr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Xr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let R=p==null?null:sy(p.hour),T=R==null?null:Xr(R);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=Mo(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${rD(M.span_ms)}`+(N==null?"":` \u2014 ${N}`))}if(e.staleness.stale){let M=e.staleness.age_ms;g.push(M==null?"!unmeasured":`!stale ${Math.round(M/1e3)}s`)}let $=`${g.join(" \xB7 ")}${ar}`,D=R!=null&&Yt($)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${ar}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Xe(D,t.maxWidth)}}function tD(e,t,r){return`${Zc}${mn}${tu}\xBB${mn} ${Da}${e}${Oa} ${eu}v${t}${r}${mn}${Cr}${jt}`}function Xr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ws}${n}${Hs}${o}${jt}`)}function rD(e){return yn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function sy(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${bn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${bn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${bn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function nD(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?jo:Lo,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Xe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function oD(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Xe(`${Dr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Xe(`${Dr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Xe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function sD(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${bn(t)} ${pu(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${bn(r)} ${pu(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function iD(e,t){let r=e.metrics;return r==null?[Xe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Xe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[ny("tokens",r.history_48h.tokens_per_hour,t),ny("Tickets",r.history_48h.tickets_per_hour,t)]}var Ma=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function ny(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${bn(o)}/h ${pu(t.trend)}`.trim();if(r.maxWidth<72)return Xe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Xe(`${n} 48h ${aD(t)} \xB7 ${a}${l}`,r.maxWidth)}function aD(e){let t=e.buckets.flatMap(n=>n.value==null?[]:[Math.max(0,n.value)]),r=Math.max(0,...t);return e.buckets.map(n=>n.value==null?"\xB7":r===0?Ma[0]:Ma[Math.min(Ma.length-1,Math.floor(Math.max(0,n.value)/r*(Ma.length-1)))]).join("")}function pu(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function lD(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${lr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${lr(e.memory_used_bytes)}/${lr(e.memory_ceiling_bytes)}${t}`}function dD(e){for(let t of e){let r=t.display;if(r==null)continue;let n=[r.runner,r.model,r.effort].filter(o=>!!o);if(n.length>0)return n.join("\xB7")}return null}function cD(e,t){if(e==null&&t==null)return"";let r=[];return e!=null&&e>0&&r.push(`+${e}`),t!=null&&t>0&&r.push(`-${t}`),`loc=${r.length>0?r.join(" "):"0"}`}function uD(e){let t=Object.fromEntries(kn.map(r=>[r,0]));for(let r of e)for(let n of kn)t[n]=Math.max(t[n],Yt(r[n]));return t}function pD(e,t){let r=kn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>ja(o,Us(e[o],s===r.length-1?Yt(e[o]):t[o])));return`${Cr}${jt}${n.join(KC)}${ar}`}function ja(e,t){if(e==="wid")return`${Da}${t}${Oa}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Gs}${mn}${t.trimEnd()}${Cr}${jt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${ru}${n}`).replace("\u25B6",`${nu}\u25B6`).replace("\u2717",`${su}\u2717`).replace(/░+/g,n=>`${ou}${n}`)+jt;let r=t.indexOf("=");return r>0?`${Ws}${t.slice(0,r+1)}${Hs}${t.slice(r+1)}${jt}`:t}function gu(e){return Object.freeze({none:!0,reason:e})}function Ba(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function fu(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError("repair args must contain only finite JSON numbers");return e}if(t.has(e))throw new TypeError("repair args must not contain cycles");t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(n=>fu(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=fu(o,t);return Object.freeze(r)}finally{t.delete(e)}}function fD(e){let t=fu(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function No(e){if("none"in e.repair)return{prose:`${e.state}; repair: none because ${e.repair.reason}`,repair:"none",repair_reason:e.repair.reason};let t=fD(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ne={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function qn(e,t=Ne){let r=zs(e,t.project),n=Bo(e,t),o=Fa(e,t),s=kD(e,t.project,r),i=hD(e,t,n,r,s.prose),a=cu({mode:t.mode,maxWorkers:t.maxWorkers,maxProjects:t.maxProjects,workers:n,projects:o}),l={detail:"host",line:i};for(let g of a){let f=g==="workers"?i:ED(i,gD(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Yt(f)<=t.maxWidth)break}let d=Xe(l.line,t.maxWidth),c=l.detail==="workers"?RD(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?_D(g,t):null;return y==null?[c.lines[f]]:[c.lines[f],y]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function yu(e){let t=e.options??Ne,r=Xe(du,t.maxWidth);return{version:1,line:r,lines:[r],verbose:t.verbose,mode:t.mode,project:t.project,project_match:"unanswered",detail:"host",degraded:!0,stale:!0,generated_at:e.generated_at}}function gD(e,t){return e==="projects"?t.map(xD):[]}function hD(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${hu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(bu(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${hu(r,r.length)}`),s.push(bu(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${hu(r,r.length)}`),s.push(bu(e,t)),s.push(Ks)):s.push(o),s.push(iy(e));let a=mD(e);a!=null&&s.push(a);let l=bD(e);l!=null&&s.push(l),e.staleness.stale&&s.push(ay(e));let d=s.join(" ");return!i||Yt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,iy(e),e.staleness.stale?ay(e):null].filter(c=>c!=null).join(" ")}function hu(e,t){let r=e.filter(Js).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function iy(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Vs}`}function mD(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${jo} quota spent`:t.posture==="reserved"?`${Lo} quota band`:null}function bD(e){let t=e.deaths;if(t==null)return null;let r=t.sender_attributed_count??t.count,n=t.sender_attributed_count===void 0?t.latest:t.latest_sender_attributed??null;if(r<=0||n==null)return null;let o=t.boot_loop;if(o!=null){let s=Mo(o.latest_refusal);return`${Dr}${r} boot-refused \xD7${o.count} in ${yD(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Dr}${r} ${n.sender_class}`}function yD(e){return yn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function kD(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return No({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:gu("this socket cannot safely replace a registration owned by an unreachable daemon")});if(r==="stopped"){let n=e.stopped_projects?.find(o=>o.project_label===t);return No({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${mu(n.at)}`}`,repair:Ba()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${mu(n.registered_at)})`;return No({state:`project unknown \u2014 ${t} lapsed at ${mu(n.at)}${o}`,repair:Ba()})}return No({state:`project unknown \u2014 ${t} lapsed`,repair:Ba()})}return r==="unresolved"?No({state:"project unknown \u2014 this directory resolved to no project",repair:gu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function mu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function bu(e,t){let r=t.mode==="global"?e.host.observed_rss_bytes:e.projects.filter(o=>o.project_label===t.project).reduce((o,s)=>o+s.observed_rss_bytes,0),n=e.host.ceiling.memory_bytes;return t.mode==="global"&&n!=null&&n>0?`${lr(r)}/${lr(n)}`:lr(r)}function ay(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function wD(e,t,r,n){let o=r.map(s=>ja(s,Us(e[s],t[s])));return Xe(`${Cr}${jt}${o.join(" ")}${ar}`,n)}function RD(e,t,r){let n=e.map(a=>La(a,t,r)),o=kn.filter(a=>n.some(l=>Yt(l[a])>0)),s=[...o],i=ly(n,s);for(;s.length>1&&dy(i,s)>t.maxWidth;)s.pop(),i=ly(n,s);return{lines:n.map(a=>wD(a,i,s,t.maxWidth)),degraded:s.length<o.length||dy(i,s)>t.maxWidth}}function ly(e,t){let r=Object.fromEntries(kn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Yt(n[o]));return r}function dy(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function _D(e,t){let r=Mo(e.log.last_line);return r==null?null:Xe(` ${lu} ${cy(e,t.mode)}: ${r}`,t.maxWidth)}function cy(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function xD(e){return`${e.project_label} ${e.worker_count}w ${lr(e.observed_rss_bytes)}`}function ED(e,t,r){return[e,...t].join(r)}var $a=1;async function Ys(e,t){return await na(e,t,"redskilled daemon")}function py(e){let t=[...e.workers??[]],r=new Map;for(let n of t)r.set(n.project_label,(r.get(n.project_label)??0)+1);return{version:1,protocol_version:$a,daemon_version:e.daemonVersion,machine_id_hash:e.machineIdHash,session_key_hash:e.sessionKeyHash,pid:e.pid,started_at:e.startedAt,...e.ceiling==null?{}:{ceiling:e.ceiling},...e.scope==null?{}:{scope:e.scope},workers:t,projects:[...r.entries()].map(([n,o])=>({project_label:n,worker_count:o})).sort((n,o)=>n.project_label.localeCompare(o.project_label)),registrations:PD(e),...e.demand==null?{}:{demand:e.demand},...e.lapses==null||e.lapses.length===0?{}:{lapsed_registrations:[...e.lapses]},...e.stops==null||e.stops.length===0?{}:{stopped_registrations:[...e.stops]},...e.orphanedRegistrations==null||e.orphanedRegistrations.length===0?{}:{orphaned_registrations:[...e.orphanedRegistrations]},birth_latches:[...e.birthLatches??[]],budget_accounting:Mh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:AD(e)}}function PD(e){let t=e.now==null?Number.NaN:Date.parse(e.now),r=Number.isFinite(t),n=e.queue??null,o=new Map(n==null?[]:n.projects.map(s=>[s.project_label,s]));return[...e.registrations??[]].map(s=>{let i=o.get(s.project_label);return{...s,...r?{renewal:ym(s,t)}:{},...n==null||i==null?{}:{last_poll:{at:n.fetched_at,outcome:i.outcome,depth:i.depth,request_count:n.request_count,detail:i.detail}}}}).sort((s,i)=>s.project_label.localeCompare(i.project_label))}function AD(e){let t=e.daemonVersion,r=e.published?.version??null,n=e.published?.majorHold??null;return{running_version:t,published_version:r,published_unknown:+(r===null),newer_published:+(e.published?.newer===!0),replacement:e.published?.replacement??"none",checked_at:e.published?.checkedAt??null,checks:e.published?.checks??0,hold_reason:e.published?.holdReason??null,newest_published_version:e.published?.newest??null,major_held:+(n!==null),major_hold:n}}function fy(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.protocol_version=="number"&&typeof t.daemon_version=="string"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&Number.isInteger(t.pid)&&typeof t.started_at=="string"&&(t.ceiling===void 0||ID(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Lh(t.budget_accounting)&&(t.scope===void 0||pm(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Fs))&&(t.demand===void 0||Zh(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(DD))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(OD))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(FD))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(CD))&&(t.upgrade===void 0||MD(t.upgrade))}function CD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.repair;return t.name==="project-birth-breaker"&&typeof t.project_label=="string"&&(t.state==="open"||t.state==="half-open")&&typeof t.opened_at=="string"&&typeof t.reason=="string"&&typeof t.closes=="string"&&(t.probe_worker_id===null||typeof t.probe_worker_id=="string")&&r!=null&&r.tool==="project_reset"&&typeof r.args=="object"&&r.args!==null&&typeof r.why=="string"}function DD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.at=="string"&&typeof t.renew_by=="string"&&Number.isInteger(t.renewals)&&Number.isInteger(t.sustains)&&typeof t.detail=="string"}function OD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.registered_at=="string"&&typeof t.at=="string"&&typeof t.detail=="string"}function FD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")}function ID(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=new Set(["flag","environment","home-config","derived-default"]);return(t.memory_bytes===null||typeof t.memory_bytes=="number")&&(t.worker_count===null||typeof t.worker_count=="number")&&(t.validation_count===void 0||Number.isInteger(t.validation_count)&&Number(t.validation_count)>0)&&(t.source==="declared"||t.source==="host-fraction")&&(t.memory_source===void 0||r.has(String(t.memory_source)))&&(t.worker_source===void 0||r.has(String(t.worker_source)))&&(t.validation_source===void 0||r.has(String(t.validation_source)))}function MD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")&&typeof t.published_unknown=="number"&&typeof t.newer_published=="number"&&(t.replacement==="none"||t.replacement==="pending"||t.replacement==="in-progress")&&(t.checked_at===null||typeof t.checked_at=="string")&&(t.newest_published_version===void 0||t.newest_published_version===null||typeof t.newest_published_version=="string")&&(t.major_held===void 0||typeof t.major_held=="number")&&(t.checks===void 0||typeof t.checks=="number")&&(t.hold_reason===void 0||t.hold_reason===null||typeof t.hold_reason=="string")&&(t.major_hold===void 0||t.major_hold===null||LD(t.major_hold))}function LD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{randomUUID as jD}from"node:crypto";import{mkdir as BD,readFile as $D,rename as ND,writeFile as GD}from"node:fs/promises";import{dirname as WD}from"node:path";function gy(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await $D(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=HD(s);return UD(i)?i.registrations:[]}async function o(s){await BD(WD(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${jD()}.tmp`,a={version:1,registrations:[...s]};await GD(i,`${ot(a,{keyedMapCollapse:!0})}
90
+ `,{encoding:"utf8",mode:384}),await ND(i,e)}return{read:n,replace(s){let i=t.then(()=>o(s));return t=i.then(()=>{r=null},a=>{r=a}),i},async flush(){if(await t,r!=null)throw r}}}function HD(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function UD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Array.isArray(t.registrations)&&t.registrations.every(Fs)}import{spawnSync as Wa}from"node:child_process";import{existsSync as xu}from"node:fs";import{delimiter as ZD,join as Ey}from"node:path";import{join as hy}from"node:path";import{existsSync as qD}from"node:fs";import{createRequire as KD}from"node:module";var my="redskilled-job-object.node",Kn=100;function Go(e){return{available:!1,reason:e}}function VD(e,t,r){return[hy(r,"prebuilds",`${e}-${t}`,my),hy(r,"native","build","Release",my)]}function by(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return Go(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??JD(),o=e.exists??qD,s=VD(t,r,n),i=s.find(d=>o(d));if(i==null)return Go(`no Job Object addon was found for ${t}-${r} (looked in ${s.join(", ")}); either install the prebuild for this platform and architecture or build the addon locally`);let a=e.requireFn??KD(import.meta.url),l;try{l=a(i)}catch(d){return Go(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return zD(l)?{available:!0,binding:l}:Go(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function zD(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function JD(){return new URL("..",import.meta.url).pathname}function yy(e){let t=e??{},r=[],n=YD(t);n==null&&(t.memory_max??t.memory_high)!=null&&r.push("the declared memory budget could not be reduced to bytes, so the job carries no memory ceiling");let o;return t.cpu_weight!=null&&(t.cpu_weight<Kn?o=Math.max(1,Math.min(100,Math.round(t.cpu_weight))):r.push(`cpu_weight=${t.cpu_weight} is at or above the fair share of ${Kn}, and Windows CPU rate control is an absolute cap rather than a share, so no rate limit is set`)),{...n!=null?{memory_limit_bytes:n.bytes,memory_budget_name:n.name,memory_budget_declared:n.declared}:{},...o!=null?{cpu_rate_percent:o}:{},kill_on_close:!0,...r.length>0?{note:r.join("; ")}:{}}}function YD(e){return Bs({budget:e})}var Na=5,ky=19;function ku(e){return{available:!1,reason:e}}var QD="an address-space rlimit is not a resident-memory ceiling: a runtime that reserves address space it never faults in would die under a limit it never used, so no memory rlimit is set and the daemon's RSS sampling floor is the ceiling that actually holds";function Ry(e,t){let r=e??{},n=[],o;if(!t.canRenice)n.push("nice is not on this host, so no priority control was applied and the Worker competes with interactive work");else if(r.cpu_weight==null)o=Na;else if(r.cpu_weight<Kn){let a=Math.round(ky*(Kn-r.cpu_weight)/Kn);o=Math.min(ky,Math.max(Na,a))}else o=Na,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${Kn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${Na}`);let s=wy(r.max_processes);s==null&&r.max_processes!=null&&n.push(`max_processes=${r.max_processes} is not a positive whole number, so no ulimit -u is set`);let i=wy(r.cpu_seconds);return i==null&&r.cpu_seconds!=null&&n.push(`cpu_seconds=${r.cpu_seconds} is not a positive whole number, so no ulimit -t is set`),{...o!=null?{nice:o}:{},...s!=null?{max_processes:s}:{},...i!=null?{cpu_seconds:i}:{},memory_ceiling:"sampling-floor",memory_ceiling_reason:QD,...n.length>0?{note:n.join("; ")}:{}}}function _y(e){let{limits:t}=e,r=[];return t.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t.nice!=null&&e.nice!=null?`exec ${XD(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
91
+ `),e.command,...e.args]}function xy(e){let t=[];return e.nice!=null?t.push(`the Worker runs at nice ${e.nice} so it yields to interactive work`):t.push("no priority control was applied"),e.max_processes!=null&&t.push(`its processes are capped at ${e.max_processes}`),e.cpu_seconds!=null&&t.push(`its CPU time is capped at ${e.cpu_seconds} seconds`),`macOS placement applied POSIX limits: ${t.join(", ")}. macOS has no resource-group equivalent, so the Worker is charged to the daemon's own resource group, and ${e.memory_ceiling_reason}`+(e.note!=null?` (${e.note})`:"")}function wu(e){let t=e??{},r=[t.max_processes!=null?"max_processes":null,t.cpu_seconds!=null?"cpu_seconds":null].filter(n=>n!=null);return r.length===0?null:`${r.join(" and ")} ${r.length===1?"is a POSIX rlimit":"are POSIX rlimits"} honoured only by the macOS placement backend, so this placement carries no equivalent`}function wy(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function XD(e){return`'${e.replace(/'/g,"'\\''")}'`}var vy="REDSKILLED_PLACEMENT",Ga="red-worker",Ru="/bin/sh";function Sy(e=process.env,t=process.platform){let r=ku(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:by({platform:t}),posix:r};let n=Go(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);if(t==="darwin")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:eO(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&xu(Ey(o,"systemd","private"));return{platform:t,systemdRun:Cy("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function eO(e){return xu(Ru)?{available:!0,shell:Ru,nice:Cy("nice",e)}:ku(`no POSIX shell was found at ${Ru}, so there is nothing to apply rlimits or priority in`)}function Ty(e=process.env){let t=(e[vy]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function tO(e,t,r=Ga){return Py(e,t,r).replace(/\.service$/,"")}function Py(e,t,r=Ga){return`${_u(r,"red-worker",24)}-${_u(e,"project",32)}-${_u(t,"worker",32)}.service`}function Ay(e){let t=[...e.args??[]],r={...e.budget??{},...e.budget?.memory_max==null&&e.memoryCeiling?.memory_max!=null?{memory_max:e.memoryCeiling.memory_max}:{}},n=r.memory_max??r.memory_high??null,o=r.memory_high!=null||r.memory_max!=null||r.cpu_weight!=null,s=e.target??{isolation:"transient-unit"},i=u=>({isolated:!1,backend:"none",command:e.command,args:t,cwd:e.workspacePath,warning:u,budget:r,...n!=null?{memoryCeiling:n}:{},environment:ws({scope:null,memory_ceiling:n,scope_degradation:u}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}});if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${vy}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return nO(e,t,r,n,o,i);if(e.probes.platform==="darwin")return rO(e,t,r,n,i);if(e.probes.platform!=="linux")return i(`transient-unit placement is the Linux backend (platform=${e.probes.platform}): the Worker is charged to the daemon's own resource group`);if(!e.probes.systemdRun)return i("transient-unit placement unavailable: systemd-run is not on PATH; the Worker is charged to the daemon's own resource group and a memory-pressure kill will hit the whole session");if(!e.probes.userSession)return i("transient-unit placement unavailable: no systemd --user session; the Worker is charged to the daemon's own resource group and a memory-pressure kill will hit the whole session");let a=Py(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`];e.pipeOutput===!0&&l.push("--pipe"),r.memory_high!=null&&l.push(`--property=MemoryHigh=${r.memory_high}`),r.memory_max!=null&&l.push(`--property=MemoryMax=${r.memory_max}`),r.cpu_weight!=null&&l.push(`--property=CPUWeight=${r.cpu_weight}`);let d=ws({scope:a,memory_ceiling:n,scope_degradation:null});for(let[u,p]of Object.entries({...e.env??{},...d}))l.push(`--setenv=${u}=${p}`);let c=wu(e.budget);return{isolated:!0,backend:"transient-unit",unit:a,command:e.probes.systemdRun,args:[...l,"--",e.command,...t],budget:r,...n!=null?{memoryCeiling:n}:{},environment:d,...c!=null?{budgetWarning:c}:{}}}function rO(e,t,r,n,o){let s=e.probes.posix;if(!s.available)return o(`POSIX limit placement unavailable: ${s.reason}. The Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling`);let i=Ry(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=xy(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:_y({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:ws({scope:null,memory_ceiling:n,scope_degradation:l}),...a?{budgetWarning:"the declared memory budget is enforced by the daemon's RSS sampling floor rather than by the kernel: "+i.memory_ceiling_reason}:{}}}function nO(e,t,r,n,o,s){let i=e.probes.jobObjects;if(!i.available)return s(`Job Object placement unavailable: ${i.reason}. The Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling`);let a=yy(r),l=tO(e.projectLabel,e.workerId,e.target?.unit_prefix);return{isolated:!0,backend:"job-object",command:e.command,args:[...t],cwd:e.workspacePath,job:{name:l,limits:a},budget:r,...n!=null?{memoryCeiling:n}:{},environment:ws({scope:l,memory_ceiling:n,scope_degradation:null}),...oO(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,wu(e.budget))}}function oO(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function Cy(e,t){for(let r of(t.PATH??"").split(ZD)){if(!r)continue;let n=Ey(r,e);if(xu(n))return n}return null}function _u(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function Eu(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}var Dy=3e4;function Oy(e){return e.unit!=null&&e.unit!==""?sO(e.unit):Qe(e.pid)}function sO(e){let t=Wa("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var iO="REDSKILLED_UNIT_DISCOVERY",Fy="(unowned)";function Iy(e){let t=Wa("systemctl",["--user","show","--property=MainPID","--value",e],{encoding:"utf8"});if(t.error!=null||t.status!==0)return null;let r=Number.parseInt((t.stdout??"").trim(),10);return Number.isInteger(r)&&r>0?r:null}function aO(e=process.env){let t=(e[iO]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function My(e,t,r=process.env){return aO(r)&&e===t}function Ly(e=Ga){let t=Wa("systemctl",["--user","list-units","--type=service","--state=active","--plain","--no-legend","--no-pager",`${e}-*.service`],{encoding:"utf8"});return t.error!=null||t.status!==0?[]:(t.stdout??"").split(`
92
+ `).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function jy(e){let t=new Set(e.held.map(o=>o.unit).filter(o=>o!=null&&o!=="")),r=new Set,n=[];for(let o of e.units)o===""||t.has(o)||r.has(o)||(r.add(o),n.push({worker_id:o.replace(/\.service$/,""),project_label:Fy,pid:e.mainPid?.(o)??0,started_at:e.now,workspace_path:"",isolated:!0,unit:o,warnings:[`adopted from active unit ${JSON.stringify(o)}, which has no birth on this host's event lane: its project, its Worker id and its budget belonged to a daemon that is gone, so they are reported as unknown rather than guessed \u2014 it is counted against the host budget from here on instead of running outside it`]}));return n}function By(e){return e.project_label.trim()!==""?e:{...e,project_label:Fy,warnings:[...e.warnings,"adopted at start with no owning project on the event lane: the daemon that birthed it recorded no project label, so it is held and counted under a stated placeholder rather than dropped"]}}function $y(e){if(e.unit!=null&&e.unit!==""){let t=Wa("systemctl",["--user","stop",e.unit],{stdio:"ignore"});return t.error==null&&t.status===0}try{return process.kill(e.pid,"SIGTERM"),!0}catch{return!1}}var Zs=50,Su=15e3,MH=2*Su;function lO(e,t=Zs){if(Tu(e),!Number.isInteger(t)||t<=0)throw new Error(`redskilled queue discovery needs a whole, positive batch size, not ${JSON.stringify(t)}`);let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function Gy(e,t={}){let r=t.batchSize??Zs;if(Tu(e),e.length>r)throw new Error(`redskilled queue discovery spans at most ${r} selectors in one query, and this batch holds ${e.length}: split it with planQueueDiscoveryBatches rather than dropping the remainder`);let n=e.map((i,a)=>({alias:`q${a}`,project:i}));return{query:["query RedskilledQueueDiscovery {"," rateLimit { remaining resetAt }",...n.map(({alias:i,project:a})=>` ${i}: search(query: ${JSON.stringify(a.selector)}, type: ISSUE, first: 1) { issueCount }`),"}"].join(`
93
+ `),aliases:n}}function Wy(e,t){let r=Xs(t),n=Xs(r.data),o=Array.isArray(r.errors)?r.errors.map(Xs):[],s=fO(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=hO(n[a]);if(d!=null)return{project_label:l.project_label,outcome:"counted",depth:d,detail:`project ${JSON.stringify(l.project_label)} has ${d} item(s) matching its selector`};let c=o.find(u=>gO(u.path,a));return s.exhausted||qy(c)?{project_label:l.project_label,outcome:"rate-limited",depth:null,detail:`the host token's quota was spent before project ${JSON.stringify(l.project_label)} answered, so this queue has no depth rather than a depth of zero`+(s.reset_at==null?"":`; the quota resets at ${s.reset_at}`)}:{project_label:l.project_label,outcome:"unreachable",depth:null,detail:`project ${JSON.stringify(l.project_label)} could not be counted with the host token: ${vu(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function dO(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:Zs,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function Hy(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:Zs,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:e.map(n=>({project_label:n.project_label,outcome:"unconfigured",depth:null,detail:`project ${JSON.stringify(n.project_label)} was not counted because this host polls no tracker: ${r}`}))}}async function Uy(e){if(e.projects.length===0)return dO(e.now);if(e.transport.conditionalList)return await uO(e);let t=e.batchSize??Zs,r=lO(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=Gy(s,{batchSize:t});try{let a=await e.transport(i.query),l=Wy(i,a);n.push(...l.projects),o=Qs(o,l.rate_limit)}catch(a){let l=a instanceof Error?a.message:String(a),d=/rate limit|secondary rate|429/i.test(l);o=Qs(o,{remaining:null,reset_at:null,exhausted:d});for(let c of s)n.push({project_label:c.project_label,outcome:d?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(c.project_label)} answered: ${l}`})}}return{version:1,fetched_at:e.now,request_count:r.length,project_count:n.length,batch_size:t,rate_limit:o,projects:n}}var cO={key:"redskilled queue poll",budget:"rest"};async function uO(e){Tu(e.projects);let t=e.transport.conditionalList,r=[],n={remaining:null,reset_at:null,exhausted:!1},o=0;for(let s of e.projects)try{if(s.poll==null){let l=Gy([s],{batchSize:1}),d=Wy(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=Qs(n,d.rate_limit);continue}let i=await t({cacheKey:`queue:${s.project_label}:${JSON.stringify(s.poll)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:{owner:s.poll.owner,repo:s.poll.repo,state:"open",labels:s.poll.labels.join(","),...s.poll.creator==null?{}:{creator:s.poll.creator}},operation:cO});o+=i.requestCount;let a=i.data.filter(l=>!Ky(l.pull_request)).length;n=Qs(n,pO(i.headers)),r.push({project_label:s.project_label,outcome:"counted",depth:a,detail:`project ${JSON.stringify(s.project_label)} has ${a} item(s) matching its selector`})}catch(i){let a=js(i);n=Qs(n,{remaining:null,reset_at:null,exhausted:a}),r.push({project_label:s.project_label,outcome:a?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(s.project_label)} answered: ${i instanceof Error?i.message:String(i)}`})}return{version:1,fetched_at:e.now,request_count:o,project_count:r.length,batch_size:1,rate_limit:n,projects:r}}function Tu(e){if(e.length===0)throw new Error("redskilled queue discovery needs at least one registered project");let t=new Set;for(let r of e){if(typeof r.project_label!="string"||r.project_label==="")throw new Error("redskilled queue discovery needs a project label for every registered project");if(typeof r.selector!="string"||r.selector==="")throw new Error(`redskilled queue discovery needs a selector for project ${JSON.stringify(r.project_label)}: a project that names no work has no queue to discover`);if(t.has(r.project_label))throw new Error(`redskilled holds one selector per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function Qs(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted}}function pO(e){let t=Ny(e,"x-ratelimit-remaining"),r=Ny(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function Ny(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function fO(e,t){let r=Xs(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null;return{remaining:n,reset_at:o,exhausted:t.some(qy)||n===0}}function qy(e){return e==null?!1:vu(e.type)==="RATE_LIMITED"||/rate limit/i.test(vu(e.message))}function gO(e,t){return Array.isArray(e)&&e.includes(t)}function hO(e){let t=Xs(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Xs(e){return Ky(e)?e:{}}function Ky(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function vu(e){return typeof e=="string"?e:""}function Vy(e,t,r){let n=e?.rate_limit;if(n==null)return t;if(n.exhausted){let s=n.reset_at==null?Number.NaN:Date.parse(n.reset_at),i=Number.isFinite(s)?s-r+1e3:t*4;return Math.min(mO,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=bO?Math.max(t,3e4):o<=yO?Math.max(t,2e4):t}var mO=1e5,bO=250,yO=1e3;var kO={runner:null,model:null,effort:null,origin:null,issue:null,phase:null,step:null,phase_index:null,phase_total:null,failed:!1,heartbeat:null,wait_kind:null,wait_subject:null,wait_pid:null,wait_started_at:null,wait_deadline:null,wait_escalation:null,started_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null},wO=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],RO=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function zy(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...kO};for(let n of wO){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of RO){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{randomInt as vO}from"node:crypto";import{spawn as SO}from"node:child_process";import{appendFileSync as TO,mkdirSync as PO}from"node:fs";import{dirname as AO}from"node:path";import{delimiter as Jy,dirname as _O}from"node:path";function xO(e,t=Jy){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function EO(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=_O(t);return r===""||r==="."?null:r}function Yy(e,t=process.execPath,r=Jy){let n=xO(e,r),o=EO(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var Wo=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},Fr=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},Pu="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",Qy=4,CO=Pu.length**Qy;function Cu(e,t=vO){let r=new Set(e);for(let n=0;n<CO;n+=1){let o="h";for(let s=0;s<Qy;s+=1)o+=Pu[t(Pu.length)];if(!r.has(o))return o}throw new Wo("redskilled exhausted the host Worker id space")}function DO(e){if(e==null||e.trim()==="")return{ready:!1};let t=AO(e);try{return PO(t,{recursive:!0}),{ready:!0}}catch(r){let n=r?.code;return{ready:!1,warning:`redskilled could not create the log directory ${JSON.stringify(t)} for ${JSON.stringify(e)}${n==null?"":` (${n})`}: ${Au(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function OO(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{TO(t,Lt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
94
+ `);s=l.pop()??"";for(let d of l)i(d)}),n.on("end",()=>{s!==""&&i(s)})};r(e.stdout,"worker.stdout"),r(e.stderr,"worker.stderr")}function FO(e){let t=[["project_label",e.project_label],["workspace_path",e.workspace_path],["command",e.command]];for(let[r,n]of t)if(typeof n!="string"||n.trim()==="")throw new Wo(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new Wo("redskilled worker spec args must be an array")}function IO(e){if(e==null)throw new Fr("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new Fr(e.reason,e)}function Xy(e){let{spec:t,admission:r}=e;IO(r),FO(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||Cu(e.liveWorkerIds??[]),i=e.probes??Sy(n),a=gm(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),l=e.openLog===!1?{ready:!1}:DO(a),d=l.ready,c={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:Yy(t.env?.PATH??n.PATH,e.execPath??process.execPath)},u=Ay({workerId:s,projectLabel:t.project_label,workspacePath:t.workspace_path,command:t.command,args:t.args,budget:t.budget,...e.memoryCeiling!=null?{memoryCeiling:e.memoryCeiling}:{},target:t.placement,env:c,enabled:e.enabled??Ty(n),probes:i,pipeOutput:d}),g=(e.spawnFn??SO)(u.command,u.args,{...u.cwd!=null?{cwd:u.cwd}:{},detached:!0,stdio:d?["ignore","pipe","pipe"]:"ignore",env:u.backend==="transient-unit"?{...n}:{...n,...c,...u.environment}});if(d&&a!=null&&OO(g,a),g.pid==null)throw g.once("error",()=>{}),new Wo(`redskilled could not spawn ${JSON.stringify(u.command)} for worker ${s}`);let f=u.job!=null?MO(u,i,g.pid):null;g.once("error",()=>{}),g.once("exit",(T,$)=>{try{f?.job?.close()}catch{}e.onExit?.(s,T,$)}),g.unref();let y=u.job!=null?f?.job!=null:u.isolated,h=[u.warning,f?.warning,u.budgetWarning,l.warning].filter(T=>T!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:g.pid,started_at:o(),workspace_path:t.workspace_path,...d&&a!=null?{log_path:a}:{},isolated:y,...u.unit!=null?{unit:u.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(u.budget).length>0?{applied_budget:u.budget}:{},...u.memoryCeiling!=null?{memory_ceiling:u.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:h},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:h,plan:u,child:g,...f?.job!=null?{job:f.job}:{}}}function MO(e,t,r){let n=e.job;if(n==null)return{};let o="the Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling";if(!t.jobObjects.available)return{warning:`Job Object placement unavailable: ${t.jobObjects.reason}. ${o}`};let s;try{s=t.jobObjects.binding.createJobObject({name:n.name,limits:n.limits})}catch(i){return{warning:`Job Object ${JSON.stringify(n.name)} could not be created: ${Au(i)}. ${o}`}}try{s.assign(r)}catch(i){try{s.close()}catch{}return{warning:`Worker pid ${r} could not be assigned to Job Object ${JSON.stringify(n.name)}: ${Au(i)}. ${o}`}}return{job:s}}function Au(e){return e instanceof Error?e.message:String(e)}import{execFile as LO}from"node:child_process";var jO="refs/heads/red-trunk";function Ha(e,t){return new Promise((r,n)=>{LO("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function Zy(e){await Ha(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Ha(e.workspace_path,["rev-parse","--verify","FETCH_HEAD^{commit}"]);if(t==="")throw new Error("the fetched trunk did not resolve to a commit");return await Ha(e.workspace_path,["update-ref",jO,t]),t}async function e0(e){let t=await Ha(e.workspace_path,["rev-list","--count",`${e.fork_sha}..${e.head_sha}`]),r=Number(t);if(!Number.isInteger(r)||r<0)throw new Error(`git returned an invalid base movement count: ${t}`);return r}import{open as BO,stat as $O}from"node:fs/promises";var NO=16*1024;async function t0(e,t=NO){let r;try{r=(await $O(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await BO(e,"r");try{let i=Buffer.alloc(n);await s.read(i,0,n,r-n),o=i.toString("utf8")}finally{await s.close()}}catch{return null}return GO(o)}function GO(e){let t=e.split(`
95
+ `);for(let r=t.length-1;r>=0;r-=1){let n=t[r].replace(/\r$/,"");if(n.trim()!=="")return n}return null}import{spawn as o1}from"node:child_process";import{existsSync as s1,readdirSync as i1}from"node:fs";import{dirname as a1,join as p0,resolve as l1}from"node:path";var WO="<version>";function wn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():WO;return[`npx -y -p ${$n}@${n}`,e,...t].join(" ")}function dr(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}:null}function Du(e,t){let r=dr(e),n=dr(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var oU=4*60*60*1e3;zr();zr();import{spawnSync as HO}from"node:child_process";import{randomUUID as UO}from"node:crypto";import{mkdir as qO,rm as KO,writeFile as VO}from"node:fs/promises";import{existsSync as zO,mkdirSync as JO,renameSync as YO,writeFileSync as QO}from"node:fs";import{homedir as XO}from"node:os";import{dirname as r0,join as ei}from"node:path";var Qt="redskilled.service",Ou="REDSKILLED_SUPERVISED",ZO="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function e1(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||ei(e.HOME?.trim()||XO(),".config");return ei(t,"systemd","user")}function Ho(e=process.env){return ei(e1(e),Qt)}function n0(e,t={}){let r=t.env??process.env,n=aa(t.override??{},t.entryLookup??{}),o=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:Qt,unitPath:Ho(r),command:n.command,args:o,text:t1(n.command,o,e)}}function t1(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${ZO}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(i0).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${Ou}=1"`,`Environment="REDSKILLED_SESSION=${a0(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
96
+ `)}function r1(e=process.env){return ei(`${Ho(e)}.d`,"10-current-entry.conf")}function o0(e){return ei(`${e}.d`,"10-current-entry.conf")}function s0(e,t,r={}){let n=r1(r.env??process.env),o=`${n}.${process.pid}.${UO()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(i0).join(" ")}`,""].join(`
97
+ `);JO(r0(n),{recursive:!0,mode:448}),QO(o,i,{encoding:"utf8",mode:384}),YO(o,n);let a=(r.run??qa)(["systemctl","--user","daemon-reload"]);if(a.status!==0)throw new Error(`redskilled wrote the supervised replacement drop-in ${n}, but systemd did not reload it: ${(a.stderr??a.stdout??`status ${a.status}`).trim()}`);return n}function i0(e){return/[\s"'\\$%]/.test(e)?`"${a0(e)}"`:e}function a0(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function l0(e,t={}){let r=t.writeFile??n1,n=t.removeFile??u0,o=t.run??qa,s=[];return await r(e.unitPath,e.text),await n(o0(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Ua("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Ua("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function d0(e={}){let t=e.removeFile??u0,r=e.run??qa,n=Ho(e.env??process.env),o=[Ua("disable",r,["systemctl","--user","disable","--now",Qt])];return await t(n),await t(o0(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Ua("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function c0(e={}){let t=e.exists??zO,r=e.run??qa,n=Ho(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Qt]).status===0,i=o&&r(["systemctl","--user","is-active",Qt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Qt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Qt}`}]:[];return{unitName:Qt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Ua(e,t,r){let n=t(r),o=(n.stderr??n.stdout??"").trim();return{step:e,argv:r,ok:n.status===0,...o?{detail:o}:{}}}async function n1(e,t){await qO(r0(e),{recursive:!0}),await VO(e,t,{encoding:"utf8",mode:420})}async function u0(e){await KO(e,{force:!0})}function qa(e){let t=HO(e[0],[...e.slice(1)],{encoding:"utf8"});return t.error!=null?{status:null,stderr:t.error.message}:{status:t.status,stdout:t.stdout??"",stderr:t.stderr??""}}var f0=75,h0=9e5,g0="redskilled-replacement-entry-unresolved",d1="REDSKILLED_NO_REGISTRY_PROBE",m0="REDSKILLED_BORN_BY_REPLACEMENT";function b0(e=process.env){return e[m0]==="1"}function y0(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function k0(e){let t=e.running.trim();if(ti(t))return null;let r=e.newest?.trim()??"",n=dr(r),o=dr(t);return n===null||o===null||n.major<=o.major?null:{version:r,running_major:o.major,held_major:n.major,reason:`redskilled ${r} is published and this daemon runs ${t}; a major version is deliberately never adopted by the background check, because a breaking change must not arrive on a machine that is holding Workers`,action:c1(n.major,e.supervised)}}function c1(e,t){let r=`install the ${e}.x bundle (update this machine's plugin pin), then `;return t?`${r}re-point the unit and restart it: ${wn("red-skills-redskilled",["unit","install"])} && systemctl --user restart redskilled.service`:`${r}stop this daemon \u2014 the next client start resolves the newly installed bundle`}function w0(e){let t=e.running.trim();if(ti(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||dr(r)===null?{act:"hold",reason:"published-unknown"}:Du(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function ti(e){let t=e.trim();return dr(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function R0(e=process.env){return e[Ou]==="1"}var Fu=class extends Error{code=g0;searched;constructor(t,r){super(`${g0}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled
98
98
  searched:
99
99
  ${r.map(n=>` ${n}`).join(`
100
- `)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function u1(e,t={}){let r=t.env??process.env,n=t.exists??s1,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=[[a0(aa(r),i),"bundle-cache"]];s&&l.push([a0(a1(l1(s)),i),"caller-sibling-bundle"]);for(let[d,c]of l)if(a.push(d),n(d))return{command:o,args:[d],version:e,source:c,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new Du(e,a);return{command:r.RED_SKILLS_NPX||"npx",args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function b0(e,t={},r,n){let s=(t.resolveEntry??(i=>u1(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>e0(a,l,{...t.env==null?{}:{env:t.env},...d==null?{}:{idleMs:d}}));if(r==null)throw new Error("a supervised redskilled replacement needs its serve target before exit");i(s,r,n)}return{via:e.via,to:e.to,entry:s}}function y0(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??f1)(l0),{...e,exitCode:l0};let o=[...e.entry.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??p1(n.env))(e.entry,o),e}function p1(e){return(t,r)=>{let n=o1(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[u0]:"1"}});n.on("error",()=>{}),n.unref()}}function f1(e){process.exitCode=e,process.exit(e)}async function k0(e,t=process.env,r=g1){let n=R0(t),o=_0(e,t);if(t[d1]==="1")return{version:o,newest:n};let s=dr(e)===null?"0.0.0":e;try{let i=await ih({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function w0(e,t=process.env,r){let n=r??Ou;return{version:_0(e,t,n),newest:R0(t,n)}}function R0(e=process.env,t=Ou){return E0(x0(e,t))}function _0(e,t=process.env,r=Ou){let n=dr(e.trim())?.major;return n===void 0?null:E0(x0(t,r).filter(o=>dr(o)?.major===n))}function x0(e,t){let r=[];for(let n of t(aa(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||dr(o)===null||r.push(o)}return r}function E0(e){let t=null;for(let r of e)(t===null||Au(r,t)>0)&&(t=r);return t}function Ou(e){try{return i1(e)}catch{return[]}}async function g1(e){let t=await fetch(e,{headers:{accept:"application/json"}});if(!t.ok)throw new Error(`registry read failed with HTTP ${t.status}`);return await t.text()}import{mkdir as h1,readFile as m1,rename as b1,rm as Fu,writeFile as v0}from"node:fs/promises";import{randomUUID as y1}from"node:crypto";import{dirname as k1}from"node:path";var Ka=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function qo(e){let t;try{t=await m1(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=w1(t);return R1(r)?r:void 0}var S0;function P0(){return S0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},S0}function A0(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){return await qo(e)}async function i(l){let d=`${e}.${l.pid}.${y1()}.tmp`;await v0(d,T0(l),{encoding:"utf8",mode:384}),await b1(d,e)}function a(l,d){return{version:1,pid:l.pid,start_time:l.startTime,session_key_hash:t.sessionKeyHash,machine_id_hash:t.machineIdHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}return{read:s,async acquire(l){await h1(k1(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await v0(e,T0(u),{encoding:"utf8",mode:384,flag:"wx"}),{acquired:!0,reaped:d,lease:u}}catch(g){if(g.code!=="EEXIST")throw g}let p=await s();if(!p){await Fu(e,{force:!0}),d=!0;continue}if(Iu(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await Fu(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!Iu(d,l))throw new Ka(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!Iu(d,l))throw new Ka(e);return await Fu(e,{force:!0}),!0}}}function Iu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function T0(e){return`${ot(e,{keyedMapCollapse:!0})}
101
- `}function w1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function R1(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||!Number.isInteger(t.pid)||t.pid<=0)return!1;for(let r of["start_time","session_key_hash","machine_id_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}async function O0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Ao,o=e.clock??(()=>new Date().toISOString()),s=e.launch??Vy,i=e.refreshTrunk??zy,a=e.countBaseMovement??Jy,l=e.ceiling??pa();e.repositoryActivity!=null&&Jc(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??P0(),c=e.leaseStore??A0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??ga(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Os(t.machineClaimPath,p,{clock:o});await E1(S1(t.socketPath),{recursive:!0,mode:448});let[f,y]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),h=Date.parse(o()),R=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&y!=null&&f.pid===y.pid&&f.start_time===y.start_time&&f.socket_path===t.socketPath&&y.socket_path===t.socketPath&&Number.isFinite(h)&&Number.isFinite(R)&&h-R>=hh&&await Yd(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:y.pid,startTime:y.start_time,uid:y.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new Ar(t.socketPath):new Jr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new Ar(t.socketPath,D.lease);let M;try{M=await wh(t.socketPath,async()=>{let[b,A]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return b!=null&&b.pid!==d.pid&&Qe(b.pid)?!0:A!=null&&A.socket_path===t.socketPath&&A.pid!==u.pid&&Qe(A.pid)})}catch(b){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),b}let N=o(),U=e.eventLane??Vh(t.eventLanePath),G=e.registrationIntentStore??dy(t.registrationIntentPath),F=e.liveness??Ty,W=e.livenessGraceMs??Sy,q=e.stopWorker??Iy,oe=e.unitInventory??(()=>Cy(t.machineClaimPath,Do({machineIdHash:t.machineIdHash}))?Dy():[]),ae=e.unitMainPid??Ay,se=e.treeSampler??Ib,Z=e.readLogTail??Yy,pe=e.sampleMs??gh,Ae=e.leaseRenewMs??zd,Ee=e.registrationSustainMs??mh,we=e.publishedVersion??(b=>k0(b)),J=e.replaceCheckMs??c0,de=e.publishedProbeTimeoutMs??ph,_e=e.localPublishedEvidence??(b=>w0(b,e.replacementIO?.env??process.env)),Ce=e.bornByReplacement??p0(),ve=e.replaceBootCheckMs??fh,Re=e.supervised??m0(),Se=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??zc,xe=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??fe?.transport,Nt=Fe?.unconfiguredReason??yh,nn=Fe?.intervalMs??Eu,on=e.demandMs??15e3,mo=e.demandBackoffMs??3e4,ue=new Map,Gt=new Map,ct=new Set,et=new Map,Rt=new Map,lt=[],ut=[],_t=e.deaths===void 0?void 0:[...e.deaths],xt=await G.read().catch(()=>[]),Wr=Date.parse(N),De=new Map,Le=new Map;for(let b of xt){let A=Date.parse(b.renew_by);!Number.isFinite(Wr)||!Number.isFinite(A)||A>=Wr?De.set(b.project_label,b):Wr-A<=b.renew_within_ms&&Le.set(b.project_label,b)}let Q=new Set,C={},w=null,I=null,L=null,B=!1,K=0,X=null,ye="none",je=null,Be=null,er=null,Rr=null,Ve=null,_r=null,At=[],tr=[],re=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),ke=null,Ie={},Wt=!1,Ct,Ht,sn,An,Cn,Dn,Ue,On,an,Hr,tt=!1,bo=!1,$e=null,Fn,Ur=new Promise(b=>{Fn=b});function qr(b){lf(b);let A=Date.parse(b),j=bm(De.values(),A);for(let H of j.lapsed){De.delete(H.project_label);let z=Ve?.projects.find(le=>le.project_label===H.project_label),ne=[...ue.values()].some(le=>le.project_label===H.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(H.project_label,H),rx(H,A)}return j.lapsed.length>0&&yo(),j.lapsed}function yo(){let b=new Map(Le);for(let[A,j]of De)b.set(A,j);G.replace([...b.values()]).catch(()=>{})}function rx(b,A){let j=Number.isFinite(A)?new Date(A).toISOString():b.renew_by;At.push({project_label:b.project_label,registered_at:b.registered_at,at:j,renew_by:b.renew_by,renewals:b.renewals,sustains:b.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(b.project_label)}: it stood until ${b.renew_by} and nothing renewed it \u2014 no session spoke for it, and no poll found it work or a Worker to hold it up`}),At.length>Ps&&At.splice(0,At.length-Ps)}function lf(b){if(De.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j={};for(let le of ue.values())j[le.project_label]=(j[le.project_label]??0)+1;let H=Ve==null?Number.NaN:Date.parse(Ve.fetched_at),z=new Map((Ve?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...De.values()]){let Ye=Number.isFinite(H)&&A-H<=le.renew_within_ms?z.get(le.project_label):void 0,ko=dc(le,{now:b,...Ye==null?{}:{queue:{outcome:Ye.outcome,depth:Ye.depth}},liveWorkers:j[le.project_label]??0});ko.registration!==le&&(De.set(le.project_label,ko.registration),ne=!0)}ne&&yo()}function df(b){if(Le.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j=new Map((Ve?.projects??[]).map(z=>[z.project_label,z])),H=!1;for(let[z,ne]of[...Le]){if(A-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),H=!0;continue}let le=j.get(z),rt=dc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ue.values()].filter(Ye=>Ye.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(De.set(z,rt.registration),Le.delete(z),H=!0):rt.verdict==="drained"&&(Le.delete(z),H=!0)}H&&yo()}function Fi(){let b=o();return qr(b),ay({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:dm(g.claimPath,p,u),workers:[...ue.values()],registrations:[...De.values()],demand:_r,lapses:At,stops:tr,orphanedRegistrations:[...re.values()],birthLatches:em(Ie,Date.parse(b)),queue:Ve,published:{version:I,checkedAt:L,newer:B,replacement:ye,newest:je,majorHold:Be,checks:K,holdReason:X}})}function Ii(){return zb({hostState:Fi(),ceiling:l,rss:C,sampledAt:w,logLines:Object.fromEntries(et),displays:Object.fromEntries(Rt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:er,githubBalance:Rr,..._t===void 0?{}:{deaths:_t},metrics:Ah({observations:lt,outcomes:ut,now:o()})})}function nx(b,A){let j=Dh(lt,b,A,o());lt=j.observations,U.recordWorker(j.record).catch(()=>{})}function ox(b){ut=Gn([...ut,b],A=>A.ts,{now:o()})}async function Gl(){return fe==null||fe.projects.length===0?null:(er=await Gb({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),er)}async function cf(){return xe==null?null:(Rr=await Nc({transport:xe.transport,now:o()}),Rr)}function sx(){if(tt||an!=null||xe==null)return;let b=()=>{an=void 0,cf().catch(()=>{}).then(()=>{if(tt)return;let A=xe.intervalMsOverride??Aa(Rr??ix(),{now:o()});an=setTimeout(b,A),an.unref()})};b()}function ix(){return Pa(o())}function ax(){if(!(at!=null||Fe?.armTransport==null))try{let b=Fe.armTransport();if(b.transport!=null){at=b.transport;return}b.unconfiguredReason!=null&&(Nt=b.unconfiguredReason)}catch(b){Nt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function uf(){let b=o();qr(b);let A=Date.parse(b);for(let[ne,le]of[...Le])Number.isFinite(A)&&A-Date.parse(le.renew_by)>le.renew_within_ms&&Le.delete(ne);let H=[...new Map([...Le,...De]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,le)=>ne.project_label.localeCompare(le.project_label));if(H.length===0)return null;if(ax(),at==null)return Ve=By(H,b,Nt),Ve;Ve=await $y({projects:H,transport:at,now:b,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return df(z),lf(z),Ve}async function pf(){let b=o();if(Wt)return _r??Yh(b);Wt=!0;try{await Hl().catch(()=>{});let A={};for(let me of ue.values())A[me.project_label]=(A[me.project_label]??0)+1;let j={};for(let me of Ve?.projects??[])j[me.project_label]=me.depth;let H=Date.parse(b),z=Number.isFinite(H)?H:0;for(let[me,Et]of Object.entries(Ie)){if(Et.probeWorkerId==null)continue;let Wi=ue.get(Et.probeWorkerId);Wi!=null&&z-Date.parse(Wi.started_at)>=6e4&&(Ie[me]=tc())}let ne=Jh({projects:[...De.values()].map(me=>({project_label:me.project_label,selector:me.selector,argv:me.argv,workspace_path:me.workspace_path,target:me.target})),queue:j,live:A,nowMs:z,backoffUntilMs:ke,birthHealth:Ie}),le=[],rt=new Map,Ye=null;for(let me of ne.births){let Et,Wi=Pu(ue.keys()),wo=De.get(me.project_label),Hi=fm({argv:me.argv,...wo?.env==null?{}:{env:wo.env},...wo?.log_path==null?{}:{log_path:wo.log_path}},{worker_id:Wi,slot:me.index,workspace_path:me.workspace_path},{project_label:me.project_label});try{if(wo?.trunk==null)Et=Li(Hi);else{let Kr={workspace_path:me.workspace_path,trunk:wo.trunk},hs=gs(Hi);if(!hs.admitted)throw new Fr(hs.reason,hs);let Af=kf(Kr),Ui=rt.get(Af);Ui==null&&(Ui=Wl(Kr),rt.set(Af,Ui)),Et=await wf(Hi,Kr,Ui,hs)}}catch(Kr){Ye=Kr instanceof Error?Kr.message:String(Kr),Kr instanceof Fr&&Kr.admission?.verdict==="refused-unreachable-trunk-remote"||(ke=(Number.isFinite(H)?H:Date.now())+mo);break}le.push({project_label:me.project_label,worker_id:Et.worker.worker_id,pid:Et.worker.pid,...Et.fork_sha==null?{}:{fork_sha:Et.fork_sha},warnings:Hi.log_path==null?[...Et.warnings,`project ${JSON.stringify(me.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(Et.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:Et.warnings});let Kl=Ie[me.project_label];Kl?.haltUntilMs!=null&&z>=Kl.haltUntilMs&&(Ie[me.project_label]=Zh(Kl,Et.worker.worker_id))}Ye==null&&ne.births.length>0&&(ke=null);let ko=new Set(le.map(me=>me.project_label));for(let me of ne.intents){if(me.queue_depth==null||me.queue_depth<=0||me.live>=me.target||ko.has(me.project_label))continue;let Et=Ye!=null&&(me.outcome==="asking"||me.outcome==="half-open-probe")?`project ${JSON.stringify(me.project_label)} was birth-eligible but the host refused it: ${Ye}`:me.detail;await U.recordDemandRefusal({ts:b,projectLabel:me.project_label,detail:Et}).catch(()=>{})}return _r={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Ye,retry_after:ke==null?null:new Date(ke).toISOString(),projects:ne.intents},_r}finally{Wt=!1}}function lx(b){return Vn(Ii(),{...Ne,mode:b?.mode??Ne.mode,project:b?.project??Ne.project,maxWorkers:b?.max_workers??Ne.maxWorkers,maxProjects:b?.max_projects??Ne.maxProjects,maxWidth:b?.max_width??Ne.maxWidth,verbose:b?.verbose??Ne.verbose})}function dx(b){return Go(Ii(),{mode:b?.mode??Bt.mode,project:b?.project??Bt.project,maxWidth:b?.max_width??Bt.maxWidth,maxRows:b?.max_rows??Bt.maxRows,maxHeight:b?.max_height??Bt.maxHeight,showDeathDetails:b?.show_death_details??Bt.showDeathDetails})}function In(b,A,j){return wm({op:b,sessionProject:A??null,targetProject:j})}async function cx(b){let A=ue.get(b.worker_id),j=In(km(b.command),b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(b.command!=="stop")throw new Error(`redskilled does not implement ${b.command}: it owns birth, death and limits, and ${b.command} is a work decision the project's own bundle makes on top of them`);let H=A!=null&&await hx(A,b.detail??"stopped by its own project");return{version:1,command:b.command,worker_id:b.worker_id,applied:H,reach:j,detail:H?`redskilled stopped Worker ${JSON.stringify(b.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to stop`}}function Mi(b){ue.delete(b),ct.delete(b),et.delete(b),Rt.delete(b)}function ff(b){let A=ue.get(b.worker_id),j=In("worker-heartbeat",b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof b.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(A==null)return{version:1,worker_id:b.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to publish a line for`};let H=o();et.set(b.worker_id,{line:b.last_log_line,published_at:H,source:"heartbeat"});let z=b.display===void 0?null:Hy(b.display);if(z!=null){let ne=Rt.get(b.worker_id)?.display,le={display:z,published_at:H};Rt.set(b.worker_id,le),nx(le,A),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ut("worker-activity",A,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ut("worker-heal",A,`${b.mechanical_heal.cause}; cycle ${b.mechanical_heal.cycle}/${b.mechanical_heal.cap}; free=${b.mechanical_heal.free}`,{healKind:b.mechanical_heal.heal_kind}),{version:1,worker_id:b.worker_id,accepted:!0,reach:j,published_at:H,detail:`redskilled stored a line for Worker ${JSON.stringify(b.worker_id)} without reading it`}}async function ux(b,A,j){let H=`exit code=${A??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await fx(b)){gx(b,`its launch client ended (${H}) while unit ${JSON.stringify(b.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=b.log_path==null?null:Jd(await Z(b.log_path).catch(()=>null));Mi(b.worker_id),Ut("worker-death",b,z==null?H:`session-error: ${z}`,{exitCode:A,signal:j,refusal:z}),pt()}function px(b,A){if(!Number.isFinite(A)||A<0){Ie[b]=Ds;return}let j=Ie[b]??Ds,H=Xh(j,A,Date.parse(o()));Ie[b]=H,H.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(b)} lost ${H.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(H.haltUntilMs).toISOString()}
102
- `)}function gf(b,A){let j=In("project-reset",A,b);if(!j.permitted)throw new Error(j.reason);let H=Ie[b]?.haltUntilMs!=null||Ie[b]?.probeWorkerId!=null;return Ie[b]=tc(),{version:1,project_label:b,latch:"project-birth-breaker",reset:H,reach:j,detail:H?`redskilled cleared project ${JSON.stringify(b)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(b)}; nothing changed`}}async function fx(b){try{return await F(b)===!0}catch{return!1}}function gx(b,A){let j=b.unit==null?null:ae(b.unit);ue.set(b.worker_id,{...b,...j!=null&&j>0?{pid:j}:{},warnings:[...b.warnings,A]}),ct.add(b.worker_id),pt()}function hf(b,A){let j=In("project-register",A,b.project_label);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=gm(b,{now:H,held:De.get(b.project_label)});return De.set(z.project_label,z),yo(),yf(z.project_label),pt(),{version:1,registration:z,reach:j,detail:`redskilled holds a registration for project ${JSON.stringify(z.project_label)} at a target of ${z.target} until ${z.renew_by}, and has read neither its selector nor its argv`}}function mf(b,A={}){let j=In("project-renew",A.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=De.get(b);if(z==null){if(re.has(b))throw new Wn(b,{kind:"orphaned"});let le=[...tr].reverse().find(Ye=>Ye.project_label===b);if(le!=null)throw new Wn(b,{kind:"stopped",at:le.at});let rt=[...At].reverse().find(Ye=>Ye.project_label===b);throw rt!=null?new Wn(b,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new Wn(b)}let ne=hm(z,{now:H,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return De.set(ne.project_label,ne),yo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(A.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function bf(b,A){let j=In("project-deregister",A,b);if(!j.permitted)throw new Error(j.reason);let H=De.get(b)??Le.get(b),z=De.delete(b),ne=Le.delete(b),le=z||ne;if(H!=null){let rt=`redskilled released the registration for project ${JSON.stringify(b)}`;yf(b),tr.push({project_label:b,registered_at:H.registered_at,at:o(),detail:rt}),tr.length>Ps&&tr.splice(0,tr.length-Ps)}return le&&yo(),{version:1,project_label:b,released:le,reach:j,detail:le?`redskilled released the registration for project ${JSON.stringify(b)}`:`redskilled held no registration for project ${JSON.stringify(b)}, so there was nothing to release`}}function yf(b){Le.delete(b);for(let A=At.length-1;A>=0;A-=1)At[A].project_label===b&&At.splice(A,1);for(let A=tr.length-1;A>=0;A-=1)tr[A].project_label===b&&tr.splice(A,1);re.delete(b)}async function hx(b,A){try{await q(b)}catch{}return Mi(b.worker_id),Ut("worker-death",b,A),pt(),!0}function gs(b){return Wh({ceiling:l,workers:[...ue.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function kf(b){return`${b.workspace_path}\0${b.trunk.remote}\0${b.trunk.branch}`}function Wl(b){let A=kf(b),j=Gt.get(A);if(j!=null)return j;let H=i(b).finally(()=>{Gt.get(A)===H&&Gt.delete(A)});return Gt.set(A,H),H}function mx(b,A,j){let H=j instanceof Error?j.message:String(j);return{...b,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(A.trunk.remote)} could not refresh branch ${JSON.stringify(A.trunk.branch)}: ${H}`}}async function wf(b,A,j,H){let z=H??gs(b);if(!z.admitted)throw new Fr(z.reason,z);let ne;try{ne=await(j??Wl(A))}catch(rt){let Ye=mx(z,A,rt);throw new Fr(Ye.reason,Ye)}let le=gs(b);if(!le.admitted)throw new Fr(le.reason,le);return Li(b,{admission:le,forkSha:ne})}function Li(b,A={}){let j=Hh({ceiling:l,workers:[...ue.values()],budget:b.budget}),H=s({spec:b,admission:A.admission??gs(b),...A.forkSha==null?{}:{forkSha:A.forkSha},memoryCeiling:j,liveWorkerIds:ue.keys(),clock:o,onExit:(rt,Ye,ko)=>{let me=ue.get(rt);if(me==null){pt();return}ux(me,Ye,ko).catch(()=>{})}}),z=A.forkSha??H.fork_sha??H.worker.fork_sha,ne=z==null||z===""?H.worker:{...H.worker,fork_sha:z},le={...H,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ue.set(ne.worker_id,ne),Ut("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??H.admission.verdict}),pt(),le}function Ut(b,A,j,H={}){if(tt)return;let z=o(),ne={kind:b,worker:A,ts:z,detail:j,...H};(b==="worker-death"||b==="worker-budget-kill")&&(ox({worker_id:A.worker_id,ts:z,outcome:b}),Rf(fa(ne),{startedAt:A.started_at,...H.refusal==null?{}:{refusal:H.refusal}}),px(A.project_label,Date.parse(z)-Date.parse(A.started_at))),U.recordWorker(ne).catch(()=>{})}function Rf(b,A={}){let j=bh(b,A);if(j==null)return;let H=[j,...(_t??[]).filter(z=>z.kind!==j.kind||z.id!==j.id||z.ts!==j.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));_t=Gn(H,z=>z.ts,{now:o()})}async function Hl(){let b=Date.parse(o()),A=[...ue.values()].filter(H=>{if(ct.has(H.worker_id))return!0;let z=Date.parse(H.started_at);return!Number.isFinite(z)||b-z>=W});if(A.length===0)return[];let{dead:j}=await _u(A,F);for(let H of j)Mi(H.worker_id),Ut("worker-death",H,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function _f(b,A){let j=ue.get(b);if(!j)return!1;try{await q(j)}catch{}return Mi(b),Ut("worker-budget-kill",j,A),pt(),!0}async function xf(){let b=[...ue.values()];if(b.length===0)return[];let A;try{A=await se(b)}catch{return[]}let j=A.rss;C=j,w=o(),bx(A.cpu_seconds,w);let{terminations:H}=Fb({workers:b,rss:j}),z=[];for(let ne of H)await _f(ne.worker_id,ne.reason)&&z.push(ne);return z}function bx(b,A){for(let[j,H]of Object.entries(b)){if(typeof H!="number"||!Number.isFinite(H))continue;let z=ue.get(j);z&&ue.set(j,{...z,cpu:{cpu_seconds:H,sampled_at:A}})}}async function yx(){try{return de<=0?await we(r):await new Promise(b=>{let A=setTimeout(()=>b(Ul()),de);A.unref(),we(r).then(j=>{clearTimeout(A),b(j)},()=>{clearTimeout(A),b(Ul())})})}catch{return Ul()}}function Ul(){try{return _e(r)}catch{return null}}async function Ef(){if(ri(r))return K+=1,L=o(),X="local-build",{act:"hold",reason:"local-build"};let b=f0(await yx()),A=b.version;I=A,je=b.newest??null,L=o(),Be=g0({running:r,newest:je,supervised:Re});let j=h0({running:r,published:A,supervised:Re});return B=j.act==="replace",K+=1,X=j.act==="hold"?j.reason:null,ye!=="in-progress"&&(ye=j.act==="replace"?"pending":"none"),j}async function ji(){let b=await Ef();if(b.act!=="replace"||ye==="in-progress")return b;let A=b0(b,Se,t,n);return ye="in-progress",await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await $i({reason:"replaced"}),y0(A,t,{...n==null?{}:{idleMs:n},io:Se}),b}function kx(){tt||Dn!=null||J<=0||(!Ce&&ve>0&&(Ue=setTimeout(()=>{ji().catch(()=>{})},ve),Ue.unref()),Dn=setInterval(()=>{ji().catch(()=>{})},J),Dn.unref())}async function vf(){return await c.renew(d).catch(()=>null)}function wx(){tt||sn!=null||Ae<=0||(sn=setInterval(()=>{vf()},Ae),sn.unref())}function Rx(){tt||An!=null||Ee<=0||(An=setInterval(()=>{qr(o())},Ee),An.unref())}function _x(){tt||Ht!=null||pe<=0||(Ht=setInterval(()=>{xf().catch(()=>{})},pe),Ht.unref())}function xx(){tt||On!=null||fe==null||fe.projects.length===0||ie<=0||(Gl().catch(()=>{}),On=setInterval(()=>{Gl().catch(()=>{})},ie),On.unref())}function Ex(){if(tt||Hr!=null||nn<=0)return;let b=A=>{Hr=setTimeout(()=>{Hr=void 0,Sf().then(()=>uf()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());b(Wy(Ve,nn,Number.isFinite(j)?j:Date.now()))})},A),Hr.unref()};b(nn)}async function Sf(){await Promise.allSettled([...De.values()].filter(b=>b.trunk!=null).map(async b=>{let A=await Wl({workspace_path:b.workspace_path,trunk:b.trunk}),j=[...ue.values()].filter(H=>H.project_label===b.project_label&&H.fork_sha!=null&&H.fork_sha!=="");await Promise.allSettled(j.map(async H=>{let z=await a({workspace_path:b.workspace_path,fork_sha:H.fork_sha,head_sha:A}),ne=ue.get(H.worker_id);if(ne==null||ne.fork_sha!==H.fork_sha)return;let le={...ne,base_head_sha:A,base_commits_ahead:z};ue.set(H.worker_id,le),(ne.base_head_sha!==A||ne.base_commits_ahead!==z)&&Ut("worker-drift",le,null,{baseHeadSha:A,baseCommitsAhead:z})}))}))}function vx(){tt||Cn!=null||on<=0||(Cn=setInterval(()=>{pf().catch(()=>{})},on),Cn.unref())}function pt(){tt||(Ct&&clearTimeout(Ct),Ct=setTimeout(()=>{Hl().catch(()=>{}).then(()=>Tf())},n),Ct.unref())}function Tf(){return ue.size>0?(pt(),"held-by-workers"):(qr(o()),De.size>0?(pt(),"held-by-registrations"):(Sx(),"exited"))}async function Sx(){if(!ri(r)){if((await ji().catch(()=>null))?.act==="replace"||bo||tt)return;if(ue.size>0||De.size>0){pt();return}}await $i({reason:"idle"})}function Bi(b){return rm({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ue.values()],projects:[...De.keys()]})}function Pf(b){if($e!=null)return $e;let A=b.reason??"requested",j=b.note?.trim();return $e=U.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:j==null||j===""?Bi(A).detail:`${Bi(A).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),$e}async function $i(b={}){if(bo)return await Ur;bo=!0,await Pf(b),tt=!0,Ct&&clearTimeout(Ct),Ht&&clearInterval(Ht),sn&&clearInterval(sn),An&&clearInterval(An),Dn&&clearInterval(Dn),Ue&&clearTimeout(Ue),On&&clearInterval(On),an&&clearTimeout(an),Hr&&clearTimeout(Hr),Cn&&clearInterval(Cn),await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let A of Q)A.destroy();return await new Promise(A=>M.once("close",()=>A())),await v1(t.socketPath,{force:!0}),Fn(),await Ur}let Ni=await U.read().catch(()=>[]),Gi=new Map;for(let b of Ni){if(b.event==="worker-birth"){Gi.set(b.worker_id,b.ts);continue}let A=Jd(b.detail);Rf(b,{...Gi.get(b.worker_id)==null?{}:{startedAt:Gi.get(b.worker_id)},...A==null?{}:{refusal:A}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Gi.delete(b.worker_id)}ut=Gn(Ni.filter(b=>b.event==="worker-death"||b.event==="worker-budget-kill").map(b=>({worker_id:b.worker_id,ts:b.ts,outcome:b.event})),b=>b.ts,{now:o()}),lt=Oh(Ni,o());let Tx=zh(Ni),ql=await _u(Tx,F);for(let b of ql.alive){let A=Fy(b),j=A.unit==null||Qe(A.pid)?null:ae(A.unit);ue.set(A.worker_id,j!=null&&j>0?{...A,pid:j}:A),ct.add(A.worker_id)}for(let b of ql.dead)Ut("worker-death",b,"the Worker ended while no daemon was watching");let Px=Oy({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ue.values()],mainPid:ae,now:N});for(let b of Px)ue.set(b.worker_id,b),ct.add(b.worker_id),Ut("worker-birth",b,"adopted from an active unit with no birth on this lane");df(o());for(let b of ql.alive){if(b.log_path==null||et.has(b.worker_id))continue;let A=await Z(b.log_path).catch(()=>null);A==null||A.trim()===""||et.set(b.worker_id,{line:A,published_at:o(),source:"rehydrated"})}M.on("connection",b=>{Q.add(b),b.once("close",()=>Q.delete(b)),pt(),Rh(b,async(A,j)=>{pt();let H=await Ax(A);j(H),A.op==="shutdown"&&setImmediate(()=>void $i({reason:"requested"}).catch(()=>{}))})});async function Ax(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:$a,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Fi()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:Vb(Ii(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:lx(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:dx(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:ff(b.heartbeat)};if(b.op==="project-register"){let j=hf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=mf(b.project_label,{...b.session_project==null?{}:{sessionProject:b.session_project},...b.renew_within_ms==null?{}:{renewWithinMs:b.renew_within_ms},...b.launch==null?{}:{launch:b.launch}});return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-deregister"){let j=bf(b.project_label,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-reset")return{id:b.id,ok:!0,value:gf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await cx(b.command)};if(b.op==="worker-start"){let j=In("worker-start",b.session_project,b.spec.project_label);if(!j.permitted)return{id:b.id,ok:!1,error:j.reason};let H=b.spec.trunk==null?Li(b.spec):await wf(b.spec,{workspace_path:b.spec.workspace_path,trunk:b.spec.trunk});return await U.flush().catch(()=>{}),{id:b.id,ok:!0,value:{worker:H.worker,admission:H.admission,fork_sha:H.fork_sha,warnings:H.warnings}}}if(b.op==="shutdown"){let j=Bi("requested");return await Pf({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let A=b;return{id:A.id??D0(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:b.id??D0(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return pt(),_x(),wx(),Rx(),kx(),xx(),sx(),Ex(),vx(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:Ur,startWorker:Li,admit:gs,ceiling:()=>l,killWorkerOverBudget:_f,sampleMemoryBudgets:xf,renewLease:vf,pollRepositoryActivity:Gl,pollGithubBalance:cf,githubBalance:()=>Rr,pollQueueDiscovery:uf,queueDiscovery:()=>Ve,driveDemand:pf,demand:()=>_r,sweepWorkerLiveness:Hl,publishWorkerHeartbeat:ff,reattached:()=>[...ct].map(b=>ue.get(b)).filter(b=>b!=null),flushEvents:()=>U.flush(),trackWorker(b){ue.set(b.worker_id,b),Ut("worker-birth",b,null),pt()},releaseWorker(b){let A=ue.get(b),j=ue.delete(b);return ct.delete(b),et.delete(b),Rt.delete(b),A&&Ut("worker-death",A,"released by the daemon"),pt(),j},workerCount:()=>ue.size,registerProject:hf,renewProject:mf,resetProjectBirthBreaker:gf,deregisterProject:bf,registrations:()=>Fi().registrations??[],hostState:Fi,refreshRegisteredTrunks:Sf,statuslinePayload:Ii,evaluateIdle:Tf,observePublishedVersion:Ef,checkForReplacement:ji,stopReport:Bi,stop:$i}}function Mu(e){let t=e.socketPath,r=T1(e);return e.answers?{version:1,kind:"answering",socket_path:t,holder:r,reason:`a redskilled daemon answered on ${JSON.stringify(t)}`,repair:"nothing to repair"}:r!=null?{version:1,kind:"held-unresponsive",socket_path:t,holder:r,reason:`redskilled pid ${r.pid} is alive and has held ${JSON.stringify(t)} since ${r.acquired_at}${r.uptime_ms==null?"":` (up ${F0(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${Rn("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${Rn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Lu(e){return`${e.reason} ${e.repair}`}function T1(e){let t=e.lease;return t==null||e.holderAlive!==!0||t.socket_path!==e.socketPath?null:{pid:t.pid,socket_path:t.socket_path,acquired_at:t.acquired_at,renewed_at:t.renewed_at,uptime_ms:P1(t.acquired_at,e.now??new Date().toISOString())}}function P1(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function F0(e){let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h${String(n).padStart(2,"0")}m`:n>0?`${n}m${String(o).padStart(2,"0")}s`:`${o}s`}import{spawnSync as A1}from"node:child_process";import{existsSync as C1}from"node:fs";import{basename as I0,dirname as D1,join as M0}from"node:path";async function ni(e){let r=await Os(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==ga().uid||!Qe(r.pid))return{paths:e,joined:!1};let n=D1(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:M0(n,I0(e.lockPath)),leasePath:M0(n,I0(e.leasePath))}}}async function L0(e){let r=await Os(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Qe(r.pid)))throw new Jr(e.machineClaimPath,"held",r)}async function j0(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[oc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Do({env:n,machineIdHash:e.machineIdHash}))||!(o??C1(Uo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=A1("systemctl",["--user","start",Qt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Qt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await O1(e,t,r),!0}async function O1(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ni(e);if(await zt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Qt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}zr();var Bu=1e4,Jn=class extends Error{constructor(r,n,o){super(`redskilled daemon is unreachable on ${JSON.stringify(r)}, so no Worker was started: ${n instanceof Error?n.message:String(n)}${o!=null&&o.kind==="held-unresponsive"?`. ${Lu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},ju=class extends Jn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Va=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function za(e,t={}){let r=t.answers??await zt(e.socketPath),n=await qo(e.leasePath).catch(()=>{});return Mu({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Qe(n.pid)})}async function $u(e,t={}){let r=await ni(e);try{let n=await L1(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Jr||n instanceof Jn)throw n;let o=await za(r.paths).catch(()=>{});throw new Jn(r.paths.socketPath,n,o)}}async function L1(e,t){if(await I1(M1(e.socketPath),{recursive:!0,mode:448}),await zt(e.socketPath))return"already-running";await L0(e);let r=await B1(e,t);if(r!=null)return r;if(await j0(e,t,Bu))return"joined";let n=await Zg(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??j1});if(!n.acquired)return await B0(e,t,void 0,n),"joined";try{if(await zt(e.socketPath))return"already-running";let o=await N1(e,t);return await B0(e,t,o),"spawned"}finally{await eh(n)}}function j1(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
103
- `)}async function B1(e,t){let r=await za(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Bu,o=Date.now()+n;for(;;){if(await zt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await za(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new ju(e.socketPath,s,new Error(`it did not answer a ping within ${n}ms, and no second daemon was spawned because pid ${s.holder?.pid??"unknown"} still holds this socket`))}async function N0(e,t,r={}){await $u(e,r);let n=(await ni(e)).paths,o;try{o=await Qs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:$0()})}catch(s){throw new Jn(n.socketPath,s,await za(n).catch(()=>{}))}if(!o.ok)throw new Va(o.error);return o.value}async function G0(e,t={},r={}){let n=(await ni(e)).paths;if(!await zt(n.socketPath))return nm(n.socketPath);let o;try{o=await Qs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:$0(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Jn(n.socketPath,a)}if(!o.ok)throw new Va(o.error);if(!rc(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await $1(n,s.pid,t.settleTimeoutMs??5e3);return i.complete?s:{...s,stopped:!1,detail:`${s.detail}; the daemon accepted the stop but did not finish its bounded drain by ${i.deadline}: ${i.pending.join(", ")}`}}async function $1(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await zt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await qo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Qe(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function W0(e,t={}){let r=await N0(e,{op:"host-state"},t);if(!ly(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function H0(e,t={},r){let n=await N0(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!Yc(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function U0(e,t=Ne,r={}){let n=await H0(e,r,{vitals:!0,logs:t.verbose,display:!0});return Vn(n,t)}async function q0(e,t={},r={}){let n=await H0(e,r,{vitals:!0,logs:!0,display:!0});return Go(n,{...Bt,...t})}async function B0(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Bu);for(;;){if(await zt(e.socketPath))return;if(r?.failure)throw new Error(`redskilled daemon failed to start from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source}): ${r.failure.message}`);if(Date.now()>=o){if(n!=null)throw new Error(`no redskilled daemon answered on ${JSON.stringify(e.socketPath)} within the ready window, and ${th(n)}`);let s=r?` from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source})${r.exit?`, which ${r.exit}`:""}`:"";throw new Error(`redskilled daemon did not start on ${JSON.stringify(e.socketPath)}${s}`)}await new Promise(s=>setTimeout(s,25))}}async function N1(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await uh({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=F1(n.command,s,{detached:!0,stdio:"ignore",env:{...t.env??process.env,REDSKILLED_DAEMON:"1"}});return i.on("error",a=>{o.failure=a}),i.on("exit",(a,l)=>{o.exit=l?`died on ${l}`:`exited with code ${a??-1}`}),i.unref(),o}zr();import{readFile as G1}from"node:fs/promises";import{homedir as W1,totalmem as H1}from"node:os";import{join as U1}from"node:path";var q1="REDSKILLED_IDLE_MS",K1=".red/config.yaml";async function V0(e=W1()){let t=U1(e,K1),r;try{r=await G1(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Nu(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${K0(n)}`),{})}try{let n=z1(r);return{...Ja(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...Ja(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...Ja(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...Ja(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Nu(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${K0(n)}`),{}}}function z0(e={}){let t=e.env??process.env,r=e.config??{},n=pa(t,e.totalMemoryBytes??H1(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=V1(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[q1],r.idleMs);if(o==null)return{ceiling:n,idleMs:Ao,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Nu(`redskilled: ${Q1(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Ao}ms instead.`),{ceiling:n,idleMs:Ao,idleMsSource:"derived-default"})}function V1(e,t,r){if(e!==void 0)return{value:e.trim(),source:"flag"};if(t!==void 0)return{value:t.trim(),source:"environment"};if(r!==void 0)return{value:r.trim(),source:"home-config"}}function Ja(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function z1(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=J1(o);if(s.trim()==="")continue;let i=s.match(/^ */)?.[0].length??0;if(i%2!==0||/\t/.test(s.slice(0,i)))throw new Error(`line ${n+1} has unsupported indentation`);let a=/^([A-Za-z_][A-Za-z0-9_-]*):(?:\s*(.*))?$/.exec(s.slice(i).trimEnd());if(a==null)throw new Error(`line ${n+1} is not a mapping entry`);let l=i/2;if(l>r.length)throw new Error(`line ${n+1} skips a mapping level`);r.splice(l);let d=a[1],c=a[2]??"";if(c===""){r.push(d);continue}t[[...r,d].join(".")]=Y1(c.trim())}return t}function J1(e){let t;for(let r=0;r<e.length;r+=1){let n=e[r];if(t==null&&(n==="'"||n==='"'))t=n;else if(t===n)t=void 0;else if(t==null&&n==="#"&&(r===0||/\s/.test(e[r-1])))return e.slice(0,r).trimEnd()}if(t!=null)throw new Error("unclosed quoted scalar");return e}function Y1(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Q1(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function K0(e){return e instanceof Error?e.message:String(e)}function Nu(e){process.stderr.write(`${e}
104
- `)}import{chmod as rk,mkdir as ok,readFile as sk,stat as pF,writeFile as ik}from"node:fs/promises";import{homedir as Hu}from"node:os";import{dirname as ak,join as Ya}from"node:path";import{join as rF}from"node:path";import{existsSync as X1,readFileSync as g3}from"node:fs";import{dirname as Z1,join as eF}from"node:path";function J0(e,t){let r=e;for(let n=0;n<16;n++){let o=eF(r,t);if(X1(o))return o;let s=Z1(r);if(s===r)break;r=s}return null}function tF(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Ko(e,t){let r=[];for(let n of e.split(`
105
- `)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return tF(d)}}var Y0=["local","tmp","host"],nF="local",oi="plugins.dev.workspace.target";var Gu=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function X0(e){let t=Ko(e,oi),r=iF(t??"").trim();return r===""?void 0:r}function Z0(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:nF};let r=Y0.find(n=>n===t.toLowerCase());if(r)return{kind:"preset",preset:r};if(t.startsWith("/")||t==="~"||t.startsWith("~/"))return{kind:"custom",parentDir:t};throw new Gu(`${oi}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${Y0.join(", ")}) or an absolute parent directory for Workers.`)}function ek(e,t){return e.kind==="preset"?e.preset==="host":sF(oF(e.parentDir,t),sr(t))}function oF(e,t){return e==="~"?Q0(t):e.startsWith("~/")?rF(t,e.slice(2)):Q0(e)}function sF(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function Q0(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function iF(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}zr();import{createHash as aF}from"node:crypto";import{hostname as lF}from"node:os";import{join as si}from"node:path";var Vo="redskilled.sock",dF="REDSKILLED_SESSION";function cF(e={}){let t=e.env??process.env,r=t[dF]?.trim();if(r)return r;let n=t.XDG_RUNTIME_DIR?.trim();return n||`uid:${e.uid??(typeof process.getuid=="function"?process.getuid():"nouid")}`}function uF(e={}){return tk(e.host??lF())}function cr(e={}){let t=cF(e),r=e.runtimeDir??sa({key:`redskilled:${t}`,socketFileName:Vo,env:e.env,uid:e.uid}),n=uF(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:tk(t),machineIdHash:n,runtimeDir:r,socketPath:si(r,Vo),lockPath:si(r,"redskilled.spawn.lock"),leasePath:si(r,"redskilled.lease.toon"),eventLanePath:si(sr(o),Kh),registrationIntentPath:si(sr(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Do({env:e.env,machineIdHash:n,platform:e.platform})}}function tk(e){return aF("sha256").update(e).digest("hex").slice(0,12)}var Wu=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${Rn("red-skills-redskilled",["provision"])}\` directly`,fF=`# Host-scoped redskilled policy. This file is never read from a repository.
100
+ `)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function u1(e,t={}){let r=t.env??process.env,n=t.exists??s1,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=[[p0(ia(r),i),"bundle-cache"]];s&&l.push([p0(a1(l1(s)),i),"caller-sibling-bundle"]);for(let[d,c]of l)if(a.push(d),n(d))return{command:o,args:[d],version:e,source:c,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new Fu(e,a);return{command:r.RED_SKILLS_NPX||"npx",args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function _0(e,t={},r,n){let s=(t.resolveEntry??(i=>u1(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>s0(a,l,{...t.env==null?{}:{env:t.env},...d==null?{}:{idleMs:d}}));if(r==null)throw new Error("a supervised redskilled replacement needs its serve target before exit");i(s,r,n)}return{via:e.via,to:e.to,entry:s}}function x0(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??f1)(f0),{...e,exitCode:f0};let o=[...e.entry.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??p1(n.env))(e.entry,o),e}function p1(e){return(t,r)=>{let n=o1(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[m0]:"1"}});n.on("error",()=>{}),n.unref()}}function f1(e){process.exitCode=e,process.exit(e)}async function E0(e,t=process.env,r=g1){let n=S0(t),o=T0(e,t);if(t[d1]==="1")return{version:o,newest:n};let s=dr(e)===null?"0.0.0":e;try{let i=await lh({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function v0(e,t=process.env,r){let n=r??Iu;return{version:T0(e,t,n),newest:S0(t,n)}}function S0(e=process.env,t=Iu){return A0(P0(e,t))}function T0(e,t=process.env,r=Iu){let n=dr(e.trim())?.major;return n===void 0?null:A0(P0(t,r).filter(o=>dr(o)?.major===n))}function P0(e,t){let r=[];for(let n of t(ia(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||dr(o)===null||r.push(o)}return r}function A0(e){let t=null;for(let r of e)(t===null||Du(r,t)>0)&&(t=r);return t}function Iu(e){try{return i1(e)}catch{return[]}}async function g1(e){let t=await fetch(e,{headers:{accept:"application/json"}});if(!t.ok)throw new Error(`registry read failed with HTTP ${t.status}`);return await t.text()}import{mkdir as h1,readFile as m1,rename as b1,rm as Mu,writeFile as C0}from"node:fs/promises";import{randomUUID as y1}from"node:crypto";import{dirname as k1}from"node:path";var Ka=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function Uo(e){let t;try{t=await m1(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=w1(t);return R1(r)?r:void 0}var D0;function F0(){return D0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},D0}function I0(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){return await Uo(e)}async function i(l){let d=`${e}.${l.pid}.${y1()}.tmp`;await C0(d,O0(l),{encoding:"utf8",mode:384}),await b1(d,e)}function a(l,d){return{version:1,pid:l.pid,start_time:l.startTime,session_key_hash:t.sessionKeyHash,machine_id_hash:t.machineIdHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}return{read:s,async acquire(l){await h1(k1(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await C0(e,O0(u),{encoding:"utf8",mode:384,flag:"wx"}),{acquired:!0,reaped:d,lease:u}}catch(g){if(g.code!=="EEXIST")throw g}let p=await s();if(!p){await Mu(e,{force:!0}),d=!0;continue}if(Lu(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await Mu(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!Lu(d,l))throw new Ka(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!Lu(d,l))throw new Ka(e);return await Mu(e,{force:!0}),!0}}}function Lu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function O0(e){return`${ot(e,{keyedMapCollapse:!0})}
101
+ `}function w1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function R1(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||!Number.isInteger(t.pid)||t.pid<=0)return!1;for(let r of["start_time","session_key_hash","machine_id_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}async function j0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??To,o=e.clock??(()=>new Date().toISOString()),s=e.launch??Xy,i=e.refreshTrunk??Zy,a=e.countBaseMovement??e0,l=e.ceiling??ua();e.repositoryActivity!=null&&Jc(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??F0(),c=e.leaseStore??I0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??fa(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Ds(t.machineClaimPath,p,{clock:o});await E1(S1(t.socketPath),{recursive:!0,mode:448});let[f,y]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),h=Date.parse(o()),R=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&y!=null&&f.pid===y.pid&&f.start_time===y.start_time&&f.socket_path===t.socketPath&&y.socket_path===t.socketPath&&Number.isFinite(h)&&Number.isFinite(R)&&h-R>=bh&&await Yd(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:y.pid,startTime:y.start_time,uid:y.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new Ar(t.socketPath):new Jr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new Ar(t.socketPath,D.lease);let M;try{M=await _h(t.socketPath,async()=>{let[b,A]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return b!=null&&b.pid!==d.pid&&Qe(b.pid)?!0:A!=null&&A.socket_path===t.socketPath&&A.pid!==u.pid&&Qe(A.pid)})}catch(b){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),b}let N=o(),U=e.eventLane??Jh(t.eventLanePath),G=e.registrationIntentStore??gy(t.registrationIntentPath),F=e.liveness??Oy,W=e.livenessGraceMs??Dy,q=e.stopWorker??$y,oe=e.unitInventory??(()=>My(t.machineClaimPath,Ao({machineIdHash:t.machineIdHash}))?Ly():[]),ae=e.unitMainPid??Iy,se=e.treeSampler??Lb,Z=e.readLogTail??t0,pe=e.sampleMs??mh,Ae=e.leaseRenewMs??zd,Ee=e.registrationSustainMs??yh,we=e.publishedVersion??(b=>E0(b)),J=e.replaceCheckMs??h0,de=e.publishedProbeTimeoutMs??gh,_e=e.localPublishedEvidence??(b=>v0(b,e.replacementIO?.env??process.env)),Ce=e.bornByReplacement??b0(),ve=e.replaceBootCheckMs??hh,Re=e.supervised??R0(),Se=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??zc,xe=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??fe?.transport,Nt=Fe?.unconfiguredReason??wh,nn=Fe?.intervalMs??Su,on=e.demandMs??15e3,go=e.demandBackoffMs??3e4,ue=new Map,Gt=new Map,ct=new Set,et=new Map,Rt=new Map,lt=[],ut=[],_t=e.deaths===void 0?void 0:[...e.deaths],xt=await G.read().catch(()=>[]),Wr=Date.parse(N),De=new Map,Le=new Map;for(let b of xt){let A=Date.parse(b.renew_by);!Number.isFinite(Wr)||!Number.isFinite(A)||A>=Wr?De.set(b.project_label,b):Wr-A<=b.renew_within_ms&&Le.set(b.project_label,b)}let Q=new Set,C={},w=null,I=null,L=null,B=!1,K=0,X=null,ye="none",je=null,Be=null,er=null,Rr=null,Ve=null,_r=null,At=[],tr=[],re=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),ke=null,Ie={},Wt=!1,Ct,Ht,sn,Pn,An,Cn,Ue,Dn,an,Hr,tt=!1,ho=!1,$e=null,On,Ur=new Promise(b=>{On=b});function qr(b){cf(b);let A=Date.parse(b),j=km(De.values(),A);for(let H of j.lapsed){De.delete(H.project_label);let z=Ve?.projects.find(le=>le.project_label===H.project_label),ne=[...ue.values()].some(le=>le.project_label===H.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(H.project_label,H),ax(H,A)}return j.lapsed.length>0&&mo(),j.lapsed}function mo(){let b=new Map(Le);for(let[A,j]of De)b.set(A,j);G.replace([...b.values()]).catch(()=>{})}function ax(b,A){let j=Number.isFinite(A)?new Date(A).toISOString():b.renew_by;At.push({project_label:b.project_label,registered_at:b.registered_at,at:j,renew_by:b.renew_by,renewals:b.renewals,sustains:b.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(b.project_label)}: it stood until ${b.renew_by} and nothing renewed it \u2014 no session spoke for it, and no poll found it work or a Worker to hold it up`}),At.length>Ts&&At.splice(0,At.length-Ts)}function cf(b){if(De.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j={};for(let le of ue.values())j[le.project_label]=(j[le.project_label]??0)+1;let H=Ve==null?Number.NaN:Date.parse(Ve.fetched_at),z=new Map((Ve?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...De.values()]){let Ye=Number.isFinite(H)&&A-H<=le.renew_within_ms?z.get(le.project_label):void 0,bo=dc(le,{now:b,...Ye==null?{}:{queue:{outcome:Ye.outcome,depth:Ye.depth}},liveWorkers:j[le.project_label]??0});bo.registration!==le&&(De.set(le.project_label,bo.registration),ne=!0)}ne&&mo()}function uf(b){if(Le.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j=new Map((Ve?.projects??[]).map(z=>[z.project_label,z])),H=!1;for(let[z,ne]of[...Le]){if(A-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),H=!0;continue}let le=j.get(z),rt=dc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ue.values()].filter(Ye=>Ye.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(De.set(z,rt.registration),Le.delete(z),H=!0):rt.verdict==="drained"&&(Le.delete(z),H=!0)}H&&mo()}function Oi(){let b=o();return qr(b),py({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:um(g.claimPath,p,u),workers:[...ue.values()],registrations:[...De.values()],demand:_r,lapses:At,stops:tr,orphanedRegistrations:[...re.values()],birthLatches:rm(Ie,Date.parse(b)),queue:Ve,published:{version:I,checkedAt:L,newer:B,replacement:ye,newest:je,majorHold:Be,checks:K,holdReason:X}})}function Fi(){return Zb({hostState:Oi(),ceiling:l,rss:C,sampledAt:w,logLines:Object.fromEntries(et),displays:Object.fromEntries(Rt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:er,githubBalance:Rr,..._t===void 0?{}:{deaths:_t},metrics:Dh({observations:lt,outcomes:ut,now:o()})})}function lx(b,A){let j=Fh(lt,b,A,o());lt=j.observations,U.recordWorker(j.record).catch(()=>{})}function dx(b){ut=Nn([...ut,b],A=>A.ts,{now:o()})}async function Gl(){return fe==null||fe.projects.length===0?null:(er=await Hb({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),er)}async function pf(){return xe==null?null:(Rr=await Nc({transport:xe.transport,now:o()}),Rr)}function cx(){if(tt||an!=null||xe==null)return;let b=()=>{an=void 0,pf().catch(()=>{}).then(()=>{if(tt)return;let A=xe.intervalMsOverride??Pa(Rr??ux(),{now:o()});an=setTimeout(b,A),an.unref()})};b()}function ux(){return Ta(o())}function px(){if(!(at!=null||Fe?.armTransport==null))try{let b=Fe.armTransport();if(b.transport!=null){at=b.transport;return}b.unconfiguredReason!=null&&(Nt=b.unconfiguredReason)}catch(b){Nt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function ff(){let b=o();qr(b);let A=Date.parse(b);for(let[ne,le]of[...Le])Number.isFinite(A)&&A-Date.parse(le.renew_by)>le.renew_within_ms&&Le.delete(ne);let H=[...new Map([...Le,...De]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,le)=>ne.project_label.localeCompare(le.project_label));if(H.length===0)return null;if(px(),at==null)return Ve=Hy(H,b,Nt),Ve;Ve=await Uy({projects:H,transport:at,now:b,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return uf(z),cf(z),Ve}async function gf(){let b=o();if(Wt)return _r??Xh(b);Wt=!0;try{await Hl().catch(()=>{});let A={};for(let me of ue.values())A[me.project_label]=(A[me.project_label]??0)+1;let j={};for(let me of Ve?.projects??[])j[me.project_label]=me.depth;let H=Date.parse(b),z=Number.isFinite(H)?H:0;for(let[me,Et]of Object.entries(Ie)){if(Et.probeWorkerId==null)continue;let Gi=ue.get(Et.probeWorkerId);Gi!=null&&z-Date.parse(Gi.started_at)>=6e4&&(Ie[me]=tc())}let ne=Qh({projects:[...De.values()].map(me=>({project_label:me.project_label,selector:me.selector,argv:me.argv,workspace_path:me.workspace_path,target:me.target})),queue:j,live:A,nowMs:z,backoffUntilMs:ke,birthHealth:Ie}),le=[],rt=new Map,Ye=null;for(let me of ne.births){let Et,Gi=Cu(ue.keys()),yo=De.get(me.project_label),Wi=hm({argv:me.argv,...yo?.env==null?{}:{env:yo.env},...yo?.log_path==null?{}:{log_path:yo.log_path}},{worker_id:Gi,slot:me.index,workspace_path:me.workspace_path},{project_label:me.project_label});try{if(yo?.trunk==null)Et=Mi(Wi);else{let Kr={workspace_path:me.workspace_path,trunk:yo.trunk},gs=fs(Wi);if(!gs.admitted)throw new Fr(gs.reason,gs);let Df=Rf(Kr),Hi=rt.get(Df);Hi==null&&(Hi=Wl(Kr),rt.set(Df,Hi)),Et=await _f(Wi,Kr,Hi,gs)}}catch(Kr){Ye=Kr instanceof Error?Kr.message:String(Kr),Kr instanceof Fr&&Kr.admission?.verdict==="refused-unreachable-trunk-remote"||(ke=(Number.isFinite(H)?H:Date.now())+go);break}le.push({project_label:me.project_label,worker_id:Et.worker.worker_id,pid:Et.worker.pid,...Et.fork_sha==null?{}:{fork_sha:Et.fork_sha},warnings:Wi.log_path==null?[...Et.warnings,`project ${JSON.stringify(me.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(Et.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:Et.warnings});let Kl=Ie[me.project_label];Kl?.haltUntilMs!=null&&z>=Kl.haltUntilMs&&(Ie[me.project_label]=tm(Kl,Et.worker.worker_id))}Ye==null&&ne.births.length>0&&(ke=null);let bo=new Set(le.map(me=>me.project_label));for(let me of ne.intents){if(me.queue_depth==null||me.queue_depth<=0||me.live>=me.target||bo.has(me.project_label))continue;let Et=Ye!=null&&(me.outcome==="asking"||me.outcome==="half-open-probe")?`project ${JSON.stringify(me.project_label)} was birth-eligible but the host refused it: ${Ye}`:me.detail;await U.recordDemandRefusal({ts:b,projectLabel:me.project_label,detail:Et}).catch(()=>{})}return _r={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Ye,retry_after:ke==null?null:new Date(ke).toISOString(),projects:ne.intents},_r}finally{Wt=!1}}function fx(b){return qn(Fi(),{...Ne,mode:b?.mode??Ne.mode,project:b?.project??Ne.project,maxWorkers:b?.max_workers??Ne.maxWorkers,maxProjects:b?.max_projects??Ne.maxProjects,maxWidth:b?.max_width??Ne.maxWidth,verbose:b?.verbose??Ne.verbose})}function gx(b){return $o(Fi(),{mode:b?.mode??Bt.mode,project:b?.project??Bt.project,maxWidth:b?.max_width??Bt.maxWidth,maxRows:b?.max_rows??Bt.maxRows,maxHeight:b?.max_height??Bt.maxHeight,showDeathDetails:b?.show_death_details??Bt.showDeathDetails})}function Fn(b,A,j){return _m({op:b,sessionProject:A??null,targetProject:j})}async function hx(b){let A=ue.get(b.worker_id),j=Fn(Rm(b.command),b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(b.command!=="stop")throw new Error(`redskilled does not implement ${b.command}: it owns birth, death and limits, and ${b.command} is a work decision the project's own bundle makes on top of them`);let H=A!=null&&await wx(A,b.detail??"stopped by its own project");return{version:1,command:b.command,worker_id:b.worker_id,applied:H,reach:j,detail:H?`redskilled stopped Worker ${JSON.stringify(b.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to stop`}}function Ii(b){ue.delete(b),ct.delete(b),et.delete(b),Rt.delete(b)}function hf(b){let A=ue.get(b.worker_id),j=Fn("worker-heartbeat",b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof b.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(A==null)return{version:1,worker_id:b.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to publish a line for`};let H=o();et.set(b.worker_id,{line:b.last_log_line,published_at:H,source:"heartbeat"});let z=b.display===void 0?null:zy(b.display);if(z!=null){let ne=Rt.get(b.worker_id)?.display,le={display:z,published_at:H};Rt.set(b.worker_id,le),lx(le,A),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ut("worker-activity",A,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ut("worker-heal",A,`${b.mechanical_heal.cause}; cycle ${b.mechanical_heal.cycle}/${b.mechanical_heal.cap}; free=${b.mechanical_heal.free}`,{healKind:b.mechanical_heal.heal_kind}),{version:1,worker_id:b.worker_id,accepted:!0,reach:j,published_at:H,detail:`redskilled stored a line for Worker ${JSON.stringify(b.worker_id)} without reading it`}}async function mx(b,A,j){let H=`exit code=${A??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await yx(b)){kx(b,`its launch client ended (${H}) while unit ${JSON.stringify(b.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=b.log_path==null?null:Jd(await Z(b.log_path).catch(()=>null));Ii(b.worker_id),Ut("worker-death",b,z==null?H:`session-error: ${z}`,{exitCode:A,signal:j,refusal:z}),pt()}function bx(b,A){if(!Number.isFinite(A)||A<0){Ie[b]=Cs;return}let j=Ie[b]??Cs,H=em(j,A,Date.parse(o()));Ie[b]=H,H.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(b)} lost ${H.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(H.haltUntilMs).toISOString()}
102
+ `)}function mf(b,A){let j=Fn("project-reset",A,b);if(!j.permitted)throw new Error(j.reason);let H=Ie[b]?.haltUntilMs!=null||Ie[b]?.probeWorkerId!=null;return Ie[b]=tc(),{version:1,project_label:b,latch:"project-birth-breaker",reset:H,reach:j,detail:H?`redskilled cleared project ${JSON.stringify(b)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(b)}; nothing changed`}}async function yx(b){try{return await F(b)===!0}catch{return!1}}function kx(b,A){let j=b.unit==null?null:ae(b.unit);ue.set(b.worker_id,{...b,...j!=null&&j>0?{pid:j}:{},warnings:[...b.warnings,A]}),ct.add(b.worker_id),pt()}function bf(b,A){let j=Fn("project-register",A,b.project_label);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=mm(b,{now:H,held:De.get(b.project_label)});return De.set(z.project_label,z),mo(),wf(z.project_label),pt(),{version:1,registration:z,reach:j,detail:`redskilled holds a registration for project ${JSON.stringify(z.project_label)} at a target of ${z.target} until ${z.renew_by}, and has read neither its selector nor its argv`}}function yf(b,A={}){let j=Fn("project-renew",A.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=De.get(b);if(z==null){if(re.has(b))throw new Gn(b,{kind:"orphaned"});let le=[...tr].reverse().find(Ye=>Ye.project_label===b);if(le!=null)throw new Gn(b,{kind:"stopped",at:le.at});let rt=[...At].reverse().find(Ye=>Ye.project_label===b);throw rt!=null?new Gn(b,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new Gn(b)}let ne=bm(z,{now:H,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return De.set(ne.project_label,ne),mo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(A.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function kf(b,A){let j=Fn("project-deregister",A,b);if(!j.permitted)throw new Error(j.reason);let H=De.get(b)??Le.get(b),z=De.delete(b),ne=Le.delete(b),le=z||ne;if(H!=null){let rt=`redskilled released the registration for project ${JSON.stringify(b)}`;wf(b),tr.push({project_label:b,registered_at:H.registered_at,at:o(),detail:rt}),tr.length>Ts&&tr.splice(0,tr.length-Ts)}return le&&mo(),{version:1,project_label:b,released:le,reach:j,detail:le?`redskilled released the registration for project ${JSON.stringify(b)}`:`redskilled held no registration for project ${JSON.stringify(b)}, so there was nothing to release`}}function wf(b){Le.delete(b);for(let A=At.length-1;A>=0;A-=1)At[A].project_label===b&&At.splice(A,1);for(let A=tr.length-1;A>=0;A-=1)tr[A].project_label===b&&tr.splice(A,1);re.delete(b)}async function wx(b,A){try{await q(b)}catch{}return Ii(b.worker_id),Ut("worker-death",b,A),pt(),!0}function fs(b){return Uh({ceiling:l,workers:[...ue.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function Rf(b){return`${b.workspace_path}\0${b.trunk.remote}\0${b.trunk.branch}`}function Wl(b){let A=Rf(b),j=Gt.get(A);if(j!=null)return j;let H=i(b).finally(()=>{Gt.get(A)===H&&Gt.delete(A)});return Gt.set(A,H),H}function Rx(b,A,j){let H=j instanceof Error?j.message:String(j);return{...b,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(A.trunk.remote)} could not refresh branch ${JSON.stringify(A.trunk.branch)}: ${H}`}}async function _f(b,A,j,H){let z=H??fs(b);if(!z.admitted)throw new Fr(z.reason,z);let ne;try{ne=await(j??Wl(A))}catch(rt){let Ye=Rx(z,A,rt);throw new Fr(Ye.reason,Ye)}let le=fs(b);if(!le.admitted)throw new Fr(le.reason,le);return Mi(b,{admission:le,forkSha:ne})}function Mi(b,A={}){let j=qh({ceiling:l,workers:[...ue.values()],budget:b.budget}),H=s({spec:b,admission:A.admission??fs(b),...A.forkSha==null?{}:{forkSha:A.forkSha},memoryCeiling:j,liveWorkerIds:ue.keys(),clock:o,onExit:(rt,Ye,bo)=>{let me=ue.get(rt);if(me==null){pt();return}mx(me,Ye,bo).catch(()=>{})}}),z=A.forkSha??H.fork_sha??H.worker.fork_sha,ne=z==null||z===""?H.worker:{...H.worker,fork_sha:z},le={...H,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ue.set(ne.worker_id,ne),Ut("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??H.admission.verdict}),pt(),le}function Ut(b,A,j,H={}){if(tt)return;let z=o(),ne={kind:b,worker:A,ts:z,detail:j,...H};(b==="worker-death"||b==="worker-budget-kill")&&(dx({worker_id:A.worker_id,ts:z,outcome:b}),xf(pa(ne),{startedAt:A.started_at,...H.refusal==null?{}:{refusal:H.refusal}}),bx(A.project_label,Date.parse(z)-Date.parse(A.started_at))),U.recordWorker(ne).catch(()=>{})}function xf(b,A={}){let j=kh(b,A);if(j==null)return;let H=[j,...(_t??[]).filter(z=>z.kind!==j.kind||z.id!==j.id||z.ts!==j.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));_t=Nn(H,z=>z.ts,{now:o()})}async function Hl(){let b=Date.parse(o()),A=[...ue.values()].filter(H=>{if(ct.has(H.worker_id))return!0;let z=Date.parse(H.started_at);return!Number.isFinite(z)||b-z>=W});if(A.length===0)return[];let{dead:j}=await Eu(A,F);for(let H of j)Ii(H.worker_id),Ut("worker-death",H,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function Ef(b,A){let j=ue.get(b);if(!j)return!1;try{await q(j)}catch{}return Ii(b),Ut("worker-budget-kill",j,A),pt(),!0}async function vf(){let b=[...ue.values()];if(b.length===0)return[];let A;try{A=await se(b)}catch{return[]}let j=A.rss;C=j,w=o(),_x(A.cpu_seconds,w);let{terminations:H}=Mb({workers:b,rss:j}),z=[];for(let ne of H)await Ef(ne.worker_id,ne.reason)&&z.push(ne);return z}function _x(b,A){for(let[j,H]of Object.entries(b)){if(typeof H!="number"||!Number.isFinite(H))continue;let z=ue.get(j);z&&ue.set(j,{...z,cpu:{cpu_seconds:H,sampled_at:A}})}}async function xx(){try{return de<=0?await we(r):await new Promise(b=>{let A=setTimeout(()=>b(Ul()),de);A.unref(),we(r).then(j=>{clearTimeout(A),b(j)},()=>{clearTimeout(A),b(Ul())})})}catch{return Ul()}}function Ul(){try{return _e(r)}catch{return null}}async function Sf(){if(ti(r))return K+=1,L=o(),X="local-build",{act:"hold",reason:"local-build"};let b=y0(await xx()),A=b.version;I=A,je=b.newest??null,L=o(),Be=k0({running:r,newest:je,supervised:Re});let j=w0({running:r,published:A,supervised:Re});return B=j.act==="replace",K+=1,X=j.act==="hold"?j.reason:null,ye!=="in-progress"&&(ye=j.act==="replace"?"pending":"none"),j}async function Li(){let b=await Sf();if(b.act!=="replace"||ye==="in-progress")return b;let A=_0(b,Se,t,n);return ye="in-progress",await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Bi({reason:"replaced"}),x0(A,t,{...n==null?{}:{idleMs:n},io:Se}),b}function Ex(){tt||Cn!=null||J<=0||(!Ce&&ve>0&&(Ue=setTimeout(()=>{Li().catch(()=>{})},ve),Ue.unref()),Cn=setInterval(()=>{Li().catch(()=>{})},J),Cn.unref())}async function Tf(){return await c.renew(d).catch(()=>null)}function vx(){tt||sn!=null||Ae<=0||(sn=setInterval(()=>{Tf()},Ae),sn.unref())}function Sx(){tt||Pn!=null||Ee<=0||(Pn=setInterval(()=>{qr(o())},Ee),Pn.unref())}function Tx(){tt||Ht!=null||pe<=0||(Ht=setInterval(()=>{vf().catch(()=>{})},pe),Ht.unref())}function Px(){tt||Dn!=null||fe==null||fe.projects.length===0||ie<=0||(Gl().catch(()=>{}),Dn=setInterval(()=>{Gl().catch(()=>{})},ie),Dn.unref())}function Ax(){if(tt||Hr!=null||nn<=0)return;let b=A=>{Hr=setTimeout(()=>{Hr=void 0,Pf().then(()=>ff()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());b(Vy(Ve,nn,Number.isFinite(j)?j:Date.now()))})},A),Hr.unref()};b(nn)}async function Pf(){await Promise.allSettled([...De.values()].filter(b=>b.trunk!=null).map(async b=>{let A=await Wl({workspace_path:b.workspace_path,trunk:b.trunk}),j=[...ue.values()].filter(H=>H.project_label===b.project_label&&H.fork_sha!=null&&H.fork_sha!=="");await Promise.allSettled(j.map(async H=>{let z=await a({workspace_path:b.workspace_path,fork_sha:H.fork_sha,head_sha:A}),ne=ue.get(H.worker_id);if(ne==null||ne.fork_sha!==H.fork_sha)return;let le={...ne,base_head_sha:A,base_commits_ahead:z};ue.set(H.worker_id,le),(ne.base_head_sha!==A||ne.base_commits_ahead!==z)&&Ut("worker-drift",le,null,{baseHeadSha:A,baseCommitsAhead:z})}))}))}function Cx(){tt||An!=null||on<=0||(An=setInterval(()=>{gf().catch(()=>{})},on),An.unref())}function pt(){tt||(Ct&&clearTimeout(Ct),Ct=setTimeout(()=>{Hl().catch(()=>{}).then(()=>Af())},n),Ct.unref())}function Af(){return ue.size>0?(pt(),"held-by-workers"):(qr(o()),De.size>0?(pt(),"held-by-registrations"):(Dx(),"exited"))}async function Dx(){if(!ti(r)){if((await Li().catch(()=>null))?.act==="replace"||ho||tt)return;if(ue.size>0||De.size>0){pt();return}}await Bi({reason:"idle"})}function ji(b){return om({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ue.values()],projects:[...De.keys()]})}function Cf(b){if($e!=null)return $e;let A=b.reason??"requested",j=b.note?.trim();return $e=U.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:j==null||j===""?ji(A).detail:`${ji(A).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),$e}async function Bi(b={}){if(ho)return await Ur;ho=!0,await Cf(b),tt=!0,Ct&&clearTimeout(Ct),Ht&&clearInterval(Ht),sn&&clearInterval(sn),Pn&&clearInterval(Pn),Cn&&clearInterval(Cn),Ue&&clearTimeout(Ue),Dn&&clearInterval(Dn),an&&clearTimeout(an),Hr&&clearTimeout(Hr),An&&clearInterval(An),await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let A of Q)A.destroy();return await new Promise(A=>M.once("close",()=>A())),await v1(t.socketPath,{force:!0}),On(),await Ur}let $i=await U.read().catch(()=>[]),Ni=new Map;for(let b of $i){if(b.event==="worker-birth"){Ni.set(b.worker_id,b.ts);continue}let A=Jd(b.detail);xf(b,{...Ni.get(b.worker_id)==null?{}:{startedAt:Ni.get(b.worker_id)},...A==null?{}:{refusal:A}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Ni.delete(b.worker_id)}ut=Nn($i.filter(b=>b.event==="worker-death"||b.event==="worker-budget-kill").map(b=>({worker_id:b.worker_id,ts:b.ts,outcome:b.event})),b=>b.ts,{now:o()}),lt=Ih($i,o());let Ox=Yh($i),ql=await Eu(Ox,F);for(let b of ql.alive){let A=By(b),j=A.unit==null||Qe(A.pid)?null:ae(A.unit);ue.set(A.worker_id,j!=null&&j>0?{...A,pid:j}:A),ct.add(A.worker_id)}for(let b of ql.dead)Ut("worker-death",b,"the Worker ended while no daemon was watching");let Fx=jy({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ue.values()],mainPid:ae,now:N});for(let b of Fx)ue.set(b.worker_id,b),ct.add(b.worker_id),Ut("worker-birth",b,"adopted from an active unit with no birth on this lane");uf(o());for(let b of ql.alive){if(b.log_path==null||et.has(b.worker_id))continue;let A=await Z(b.log_path).catch(()=>null);A==null||A.trim()===""||et.set(b.worker_id,{line:A,published_at:o(),source:"rehydrated"})}M.on("connection",b=>{Q.add(b),b.once("close",()=>Q.delete(b)),pt(),xh(b,async(A,j)=>{pt();let H=await Ix(A);j(H),A.op==="shutdown"&&setImmediate(()=>void Bi({reason:"requested"}).catch(()=>{}))})});async function Ix(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:$a,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Oi()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:Xb(Fi(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:fx(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:gx(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:hf(b.heartbeat)};if(b.op==="project-register"){let j=bf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=yf(b.project_label,{...b.session_project==null?{}:{sessionProject:b.session_project},...b.renew_within_ms==null?{}:{renewWithinMs:b.renew_within_ms},...b.launch==null?{}:{launch:b.launch}});return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-deregister"){let j=kf(b.project_label,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-reset")return{id:b.id,ok:!0,value:mf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await hx(b.command)};if(b.op==="worker-start"){let j=Fn("worker-start",b.session_project,b.spec.project_label);if(!j.permitted)return{id:b.id,ok:!1,error:j.reason};let H=b.spec.trunk==null?Mi(b.spec):await _f(b.spec,{workspace_path:b.spec.workspace_path,trunk:b.spec.trunk});return await U.flush().catch(()=>{}),{id:b.id,ok:!0,value:{worker:H.worker,admission:H.admission,fork_sha:H.fork_sha,warnings:H.warnings}}}if(b.op==="shutdown"){let j=ji("requested");return await Cf({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let A=b;return{id:A.id??L0(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:b.id??L0(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return pt(),Tx(),vx(),Sx(),Ex(),Px(),cx(),Ax(),Cx(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:Ur,startWorker:Mi,admit:fs,ceiling:()=>l,killWorkerOverBudget:Ef,sampleMemoryBudgets:vf,renewLease:Tf,pollRepositoryActivity:Gl,pollGithubBalance:pf,githubBalance:()=>Rr,pollQueueDiscovery:ff,queueDiscovery:()=>Ve,driveDemand:gf,demand:()=>_r,sweepWorkerLiveness:Hl,publishWorkerHeartbeat:hf,reattached:()=>[...ct].map(b=>ue.get(b)).filter(b=>b!=null),flushEvents:()=>U.flush(),trackWorker(b){ue.set(b.worker_id,b),Ut("worker-birth",b,null),pt()},releaseWorker(b){let A=ue.get(b),j=ue.delete(b);return ct.delete(b),et.delete(b),Rt.delete(b),A&&Ut("worker-death",A,"released by the daemon"),pt(),j},workerCount:()=>ue.size,registerProject:bf,renewProject:yf,resetProjectBirthBreaker:mf,deregisterProject:kf,registrations:()=>Oi().registrations??[],hostState:Oi,refreshRegisteredTrunks:Pf,statuslinePayload:Fi,evaluateIdle:Af,observePublishedVersion:Sf,checkForReplacement:Li,stopReport:ji,stop:Bi}}function ju(e){let t=e.socketPath,r=T1(e);return e.answers?{version:1,kind:"answering",socket_path:t,holder:r,reason:`a redskilled daemon answered on ${JSON.stringify(t)}`,repair:"nothing to repair"}:r!=null?{version:1,kind:"held-unresponsive",socket_path:t,holder:r,reason:`redskilled pid ${r.pid} is alive and has held ${JSON.stringify(t)} since ${r.acquired_at}${r.uptime_ms==null?"":` (up ${B0(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${wn("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${wn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Bu(e){return`${e.reason} ${e.repair}`}function T1(e){let t=e.lease;return t==null||e.holderAlive!==!0||t.socket_path!==e.socketPath?null:{pid:t.pid,socket_path:t.socket_path,acquired_at:t.acquired_at,renewed_at:t.renewed_at,uptime_ms:P1(t.acquired_at,e.now??new Date().toISOString())}}function P1(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function B0(e){let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h${String(n).padStart(2,"0")}m`:n>0?`${n}m${String(o).padStart(2,"0")}s`:`${o}s`}import{spawnSync as A1}from"node:child_process";import{existsSync as C1}from"node:fs";import{basename as $0,dirname as D1,join as N0}from"node:path";async function ri(e){let r=await Ds(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==fa().uid||!Qe(r.pid))return{paths:e,joined:!1};let n=D1(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:N0(n,$0(e.lockPath)),leasePath:N0(n,$0(e.leasePath))}}}async function G0(e){let r=await Ds(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Qe(r.pid)))throw new Jr(e.machineClaimPath,"held",r)}async function W0(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[oc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Ao({env:n,machineIdHash:e.machineIdHash}))||!(o??C1(Ho(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=A1("systemctl",["--user","start",Qt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Qt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await O1(e,t,r),!0}async function O1(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ri(e);if(await zt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Qt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}zr();var Nu=1e4,Vn=class extends Error{constructor(r,n,o){super(`redskilled daemon is unreachable on ${JSON.stringify(r)}, so no Worker was started: ${n instanceof Error?n.message:String(n)}${o!=null&&o.kind==="held-unresponsive"?`. ${Bu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},$u=class extends Vn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Va=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function za(e,t={}){let r=t.answers??await zt(e.socketPath),n=await Uo(e.leasePath).catch(()=>{});return ju({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Qe(n.pid)})}async function Gu(e,t={}){let r=await ri(e);try{let n=await L1(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Jr||n instanceof Vn)throw n;let o=await za(r.paths).catch(()=>{});throw new Vn(r.paths.socketPath,n,o)}}async function L1(e,t){if(await I1(M1(e.socketPath),{recursive:!0,mode:448}),await zt(e.socketPath))return"already-running";await G0(e);let r=await B1(e,t);if(r!=null)return r;if(await W0(e,t,Nu))return"joined";let n=await th(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??j1});if(!n.acquired)return await H0(e,t,void 0,n),"joined";try{if(await zt(e.socketPath))return"already-running";let o=await N1(e,t);return await H0(e,t,o),"spawned"}finally{await rh(n)}}function j1(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
103
+ `)}async function B1(e,t){let r=await za(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Nu,o=Date.now()+n;for(;;){if(await zt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await za(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new $u(e.socketPath,s,new Error(`it did not answer a ping within ${n}ms, and no second daemon was spawned because pid ${s.holder?.pid??"unknown"} still holds this socket`))}async function q0(e,t,r={}){await Gu(e,r);let n=(await ri(e)).paths,o;try{o=await Ys({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:U0()})}catch(s){throw new Vn(n.socketPath,s,await za(n).catch(()=>{}))}if(!o.ok)throw new Va(o.error);return o.value}async function K0(e,t={},r={}){let n=(await ri(e)).paths;if(!await zt(n.socketPath))return sm(n.socketPath);let o;try{o=await Ys({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:U0(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Vn(n.socketPath,a)}if(!o.ok)throw new Va(o.error);if(!rc(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await $1(n,s.pid,t.settleTimeoutMs??5e3);return i.complete?s:{...s,stopped:!1,detail:`${s.detail}; the daemon accepted the stop but did not finish its bounded drain by ${i.deadline}: ${i.pending.join(", ")}`}}async function $1(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await zt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await Uo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Qe(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function V0(e,t={}){let r=await q0(e,{op:"host-state"},t);if(!fy(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function z0(e,t={},r){let n=await q0(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!Xc(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function J0(e,t=Ne,r={}){let n=await z0(e,r,{vitals:!0,logs:t.verbose,display:!0});return qn(n,t)}async function Y0(e,t={},r={}){let n=await z0(e,r,{vitals:!0,logs:!0,display:!0});return $o(n,{...Bt,...t})}async function H0(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Nu);for(;;){if(await zt(e.socketPath))return;if(r?.failure)throw new Error(`redskilled daemon failed to start from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source}): ${r.failure.message}`);if(Date.now()>=o){if(n!=null)throw new Error(`no redskilled daemon answered on ${JSON.stringify(e.socketPath)} within the ready window, and ${nh(n)}`);let s=r?` from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source})${r.exit?`, which ${r.exit}`:""}`:"";throw new Error(`redskilled daemon did not start on ${JSON.stringify(e.socketPath)}${s}`)}await new Promise(s=>setTimeout(s,25))}}async function N1(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await fh({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=F1(n.command,s,{detached:!0,stdio:"ignore",env:{...t.env??process.env,REDSKILLED_DAEMON:"1"}});return i.on("error",a=>{o.failure=a}),i.on("exit",(a,l)=>{o.exit=l?`died on ${l}`:`exited with code ${a??-1}`}),i.unref(),o}zr();import{readFile as G1}from"node:fs/promises";import{homedir as W1,totalmem as H1}from"node:os";import{join as U1}from"node:path";var q1="REDSKILLED_IDLE_MS",K1=".red/config.yaml";async function X0(e=W1()){let t=U1(e,K1),r;try{r=await G1(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Wu(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${Q0(n)}`),{})}try{let n=z1(r);return{...Ja(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...Ja(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...Ja(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...Ja(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Wu(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${Q0(n)}`),{}}}function Z0(e={}){let t=e.env??process.env,r=e.config??{},n=ua(t,e.totalMemoryBytes??H1(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=V1(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[q1],r.idleMs);if(o==null)return{ceiling:n,idleMs:To,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Wu(`redskilled: ${Q1(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${To}ms instead.`),{ceiling:n,idleMs:To,idleMsSource:"derived-default"})}function V1(e,t,r){if(e!==void 0)return{value:e.trim(),source:"flag"};if(t!==void 0)return{value:t.trim(),source:"environment"};if(r!==void 0)return{value:r.trim(),source:"home-config"}}function Ja(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function z1(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=J1(o);if(s.trim()==="")continue;let i=s.match(/^ */)?.[0].length??0;if(i%2!==0||/\t/.test(s.slice(0,i)))throw new Error(`line ${n+1} has unsupported indentation`);let a=/^([A-Za-z_][A-Za-z0-9_-]*):(?:\s*(.*))?$/.exec(s.slice(i).trimEnd());if(a==null)throw new Error(`line ${n+1} is not a mapping entry`);let l=i/2;if(l>r.length)throw new Error(`line ${n+1} skips a mapping level`);r.splice(l);let d=a[1],c=a[2]??"";if(c===""){r.push(d);continue}t[[...r,d].join(".")]=Y1(c.trim())}return t}function J1(e){let t;for(let r=0;r<e.length;r+=1){let n=e[r];if(t==null&&(n==="'"||n==='"'))t=n;else if(t===n)t=void 0;else if(t==null&&n==="#"&&(r===0||/\s/.test(e[r-1])))return e.slice(0,r).trimEnd()}if(t!=null)throw new Error("unclosed quoted scalar");return e}function Y1(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Q1(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function Q0(e){return e instanceof Error?e.message:String(e)}function Wu(e){process.stderr.write(`${e}
104
+ `)}import{chmod as ak,mkdir as dk,readFile as ck,stat as pF,writeFile as uk}from"node:fs/promises";import{homedir as qu}from"node:os";import{dirname as pk,join as Ya}from"node:path";import{join as rF}from"node:path";import{existsSync as X1,readFileSync as k3}from"node:fs";import{dirname as Z1,join as eF}from"node:path";function ek(e,t){let r=e;for(let n=0;n<16;n++){let o=eF(r,t);if(X1(o))return o;let s=Z1(r);if(s===r)break;r=s}return null}function tF(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function qo(e,t){let r=[];for(let n of e.split(`
105
+ `)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return tF(d)}}var tk=["local","tmp","host"],nF="local",ni="plugins.dev.workspace.target";var Hu=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function nk(e){let t=qo(e,ni),r=iF(t??"").trim();return r===""?void 0:r}function ok(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:nF};let r=tk.find(n=>n===t.toLowerCase());if(r)return{kind:"preset",preset:r};if(t.startsWith("/")||t==="~"||t.startsWith("~/"))return{kind:"custom",parentDir:t};throw new Hu(`${ni}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${tk.join(", ")}) or an absolute parent directory for Workers.`)}function sk(e,t){return e.kind==="preset"?e.preset==="host":sF(oF(e.parentDir,t),sr(t))}function oF(e,t){return e==="~"?rk(t):e.startsWith("~/")?rF(t,e.slice(2)):rk(e)}function sF(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function rk(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function iF(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}zr();import{createHash as aF}from"node:crypto";import{hostname as lF}from"node:os";import{join as oi}from"node:path";var Ko="redskilled.sock",dF="REDSKILLED_SESSION";function cF(e={}){let t=e.env??process.env,r=t[dF]?.trim();if(r)return r;let n=t.XDG_RUNTIME_DIR?.trim();return n||`uid:${e.uid??(typeof process.getuid=="function"?process.getuid():"nouid")}`}function uF(e={}){return ik(e.host??lF())}function cr(e={}){let t=cF(e),r=e.runtimeDir??oa({key:`redskilled:${t}`,socketFileName:Ko,env:e.env,uid:e.uid}),n=uF(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:ik(t),machineIdHash:n,runtimeDir:r,socketPath:oi(r,Ko),lockPath:oi(r,"redskilled.spawn.lock"),leasePath:oi(r,"redskilled.lease.toon"),eventLanePath:oi(sr(o),zh),registrationIntentPath:oi(sr(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Ao({env:e.env,machineIdHash:n,platform:e.platform})}}function ik(e){return aF("sha256").update(e).digest("hex").slice(0,12)}var Uu=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${wn("red-skills-redskilled",["provision"])}\` directly`,fF=`# Host-scoped redskilled policy. This file is never read from a repository.
106
106
  plugins:
107
107
  dev:
108
108
  redskilled:
@@ -110,15 +110,15 @@ plugins:
110
110
  # memory_ceiling: 8G
111
111
  # validation_ceiling: 2
112
112
  # idle_ms: 300000
113
- `;async function lk(e=Hu()){let t=sr(e),r=Ya(ak(t),"config.yaml"),n=await qu(t),o=!1,s=!1;n===void 0?(await ok(t,{recursive:!0,mode:Vr}),await rk(t,Vr),o=!0):n!==Vr&&(await rk(t,Vr),s=!0);let i=!1;try{await ik(r,fF,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:Vr,configPath:r,configCreated:i}}var dk={needed:!1,declaredBy:`no ${oi} in view`};async function Uu(e={}){let t=e.homeDir??Hu(),r=e.declaredTarget?.trim();if(r)return nk(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return dk;let o=Ya(n,".red","config.yaml"),s=await sk(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=X0(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:nk(i,t,o)}function nk(e,t,r){let n=`${oi}: ${e} (${r})`;try{return{needed:ek(Z0(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function ck(e){let t=[gF(e),hF(e),mF(e),bF(e)],r=t.filter(o=>o.verdict!=="ok");return{verdict:r.some(o=>o.verdict==="missing")?"missing":r.length>0?"degraded":"ok",rows:t,findings:r}}function gF(e){let t=e.homeNeed??dk;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Wu}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??Vr;return r!==Vr?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${Vr.toString(8)}`,fix:`${Wu} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function hF(e){return Pr(e.entry)?{check:"daemon-entry",verdict:"ok",evidence:`${e.entry.entry??e.entry.command} (resolved as ${e.entry.source})`,fix:""}:{check:"daemon-entry",verdict:"missing",evidence:`no published redskilled bundle; probed ${e.entry.searched.join(", ")||"nothing"}`,fix:`install or warm the RedSkills bundle for this host, then re-run \`${Rn("red-skills-redskilled",["provision"])}\``}}function mF(e){return e.reachable?{check:"reach",verdict:"ok",evidence:`daemon answered on ${e.socketPath}`,fix:""}:{check:"reach",verdict:"missing",evidence:`no daemon answered on ${e.socketPath}`,fix:`${Wu} \u2014 it starts the daemon and waits for the socket`}}function bF(e){return{check:"supervisor-unit",verdict:"ok",evidence:e.supervisorUnit==="installed"?"redskilled.service is installed (optional supervision, Restart=always)":e.supervisorUnit==="unsupported"?"optional: this host has no systemd --user session; auto-spawn is the only start path":"optional: not installed; auto-spawn already starts the daemon on first use",fix:""}}async function uk(e={}){let t=e.env??process.env,r=e.homeDir??Hu(),n=e.paths??cr({env:t}),o=sr(r),[s,i,a]=await Promise.all([qu(o),zt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Uu({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:un(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await kF(wF(e,t,r),t)}}var yF="redskilled.service";function pk(e){return Ya(e,"systemd","user",yF)}function fk(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
114
- `)}async function gk(e){let t=pk(e.configHome);return await qu(t)!==void 0?{path:t,status:"already-present"}:(await ok(ak(t),{recursive:!0}),await ik(t,e.unit,"utf8"),{path:t,status:"installed"})}async function kF(e,t){if(process.platform!=="linux")return"unsupported";try{return await sk(pk(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function wF(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??Ya(r,".config")}async function qu(e){try{return(await pF(e)).mode&511}catch{return}}import{readdir as mk,rm as RF,stat as _F}from"node:fs/promises";import{dirname as xF,join as Ku}from"node:path";var EF=5*6e4,vF="redskilled.";function SF(e={}){let t=e.env??process.env,r=i=>xF(sa({key:"redskilled:reclaim-probe",socketFileName:Vo,env:i,...e.uid===void 0?{}:{uid:e.uid}})),{XDG_RUNTIME_DIR:n,...o}=t,s=[r(t),r(o)];return[...new Set(s)]}async function bk(e={}){let t=e.roots??SF(e),r=e.graceMs??EF,n=e.now??Date.now,o=e.isPidAlive??Qe,s=e.answers??CF,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await mk(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await TF(Ku(l,c),{graceMs:r,now:n,pidAlive:o,answers:s,dryRun:i}))}return{roots:t,scanned:a.length,reclaimed:a.filter(l=>l.verdict==="reclaimed").length,dryRun:i,entries:a}}async function TF(e,t){let r;try{r=(await mk(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:yk(i),removed:[]}}let n=r.filter(i=>i.startsWith(vF));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await PF(Ku(e,"redskilled.lease.toon"));if(o!==void 0)return await t.pidAlive(o.pid)?{dir:e,verdict:"live",reason:`lease pid ${o.pid} is alive`,removed:[]}:await hk(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(Vo)&&await t.answers(Ku(e,Vo)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await AF(e,t.now);return s!==void 0&&s<t.graceMs?{dir:e,verdict:"young",reason:`no lease, modified ${Math.round(s/1e3)}s ago`,removed:[]}:await hk(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function hk(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await RF(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:yk(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function PF(e){try{return await qo(e)}catch{return}}async function AF(e,t){try{return Math.max(0,t()-(await _F(e)).mtimeMs)}catch{return}}async function CF(e){try{return(await Qs({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function yk(e){return e instanceof Error?e.message:String(e)}var DF="plugins.dev.statusline",OF="dev.statusline";function FF(e){let t=[],r=a=>{for(let l of[DF,OF]){let d=`${l}.${a}`,c=Ko(e,d)?.trim();if(c!=null&&c!=="")return{key:d,value:c}}},n=r("mode"),o={};n!=null&&(n.value==="local"||n.value==="global"?o.mode=n.value:t.push({...n,reason:"expected `local` or `global`"}));let s=[{leaf:"max_workers",assign:a=>{o.maxWorkers=a}},{leaf:"max_projects",assign:a=>{o.maxProjects=a}},{leaf:"max_width",assign:a=>{o.maxWidth=a}}];for(let a of s){let l=r(a.leaf);if(l==null)continue;let d=Number(l.value);Number.isInteger(d)&&d>=0?a.assign(d):t.push({...l,reason:"expected a whole number of zero or more"})}let i=r("verbose");return i!=null&&(i.value==="true"||i.value==="false"?o.verbose=i.value==="true":t.push({...i,reason:"expected `true` or `false`"})),{config:o,warnings:t}}var IF={mode:{kind:"value",coerce:e=>e},verbose:{kind:"boolean"},project:{kind:"value",coerce:e=>e},"max-workers":{kind:"value",coerce:e=>e},"max-projects":{kind:"value",coerce:e=>e},"max-width":{kind:"value",coerce:e=>e}};function Qa(e){let{values:t,positionals:r}=dn(e,IF),n=[],o={},s=t.mode??r.find(a=>a==="global"||a==="local");s!=null&&(s==="local"||s==="global"?o.mode=s:n.push({key:"--mode",value:s,reason:"expected `local` or `global`"})),t.project!=null&&(o.project=t.project),t.verbose!==void 0&&(o.verbose=t.verbose===!0);let i=[{flag:"max-workers",assign:a=>{o.maxWorkers=a}},{flag:"max-projects",assign:a=>{o.maxProjects=a}},{flag:"max-width",assign:a=>{o.maxWidth=a}}];for(let a of i){let l=t[a.flag];if(l==null)continue;let d=Number(l);Number.isInteger(d)&&d>=0?a.assign(d):n.push({key:`--${a.flag}`,value:l,reason:"expected a whole number of zero or more"})}return{flags:o,warnings:n}}function Xa(e={}){let t=e.configText==null?{config:{},warnings:[]}:FF(e.configText),r=e.flags??{};return{options:{...Ne,mode:r.mode??t.config.mode??Ne.mode,project:r.project!==void 0?r.project:e.project??Ne.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Ne.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Ne.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Ne.maxWidth,verbose:r.verbose??t.config.verbose??Ne.verbose},warnings:t.warnings}}var Za,el=new Map,MF=256;function _k(){if(Za!==void 0)return Za;let e=Intl.Segmenter;return Za=e?new e(void 0,{granularity:"grapheme"}):null,Za}function Vu(e){return e===8205||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65024&&e<=65039||e>=65056&&e<=65071||e>=127995&&e<=127999||e>=917536&&e<=917631||e>=917760&&e<=917999}function kk(e){let t=el.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return el.size>=MF&&el.clear(),el.set(e,r),r}function wk(e){return e>=127462&&e<=127487}function Rk(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function LF(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function jF(e,t,r){if(kk(t)||LF(t)||Rk(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Vu(n)||kk(n)||Rk(n)||wk(t)&&wk(n)||t===13&&n===10)}function BF(e){let t=[],r=0;for(;r<e.length;){let n=r,o=!1,s=e.codePointAt(r);for(r+=s>65535?2:1;r<e.length;){let i=e.codePointAt(r);if(!o&&!Vu(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function xk(e){let t=_k();if(!t)return BF(e);let r=[...t.segment(e)];return r.map((n,o)=>({segment:n.segment,index:n.index,end:r[o+1]?.index??e.length}))}function zu(e,t){if(t<0||t>=e.length)return null;let r=e.codePointAt(t);if(r===void 0)return null;let n=t+(r>65535?2:1);if(jF(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=_k();if(o){let a=o.segment(e).containing(t);return a?{segment:a.segment,index:a.index,end:a.index+a.segment.length}:null}let s=n,i=!1;for(;s<e.length;){let a=e.codePointAt(s);if(!i&&!Vu(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var zo="\x1B",$F="\x07",Z3=`${zo}\\`;function NF(e){return e>=64&&e<=126}function GF(e,t){for(let r=t;r<e.length;r++){if(e[r]===$F)return r+1;if(e[r]===zo&&e[r+1]==="\\")return r+2}return e.length}function Yn(e,t){if(e[t]!==zo)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:zo,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!NF(e.charCodeAt(n));)n++;if(n>=e.length)return{end:e.length,value:e.slice(t),kind:"control"};let o=e.slice(t,n+1),s=/^\x1b\[[0-9:;]*m$/.test(o)?"sgr":"control";return{end:n+1,value:o,kind:s}}if(r==="]"||r==="P"||r==="X"||r==="^"||r==="_"){let n=GF(e,t+2);return{end:n,value:e.slice(t,n),kind:"control"}}return{end:Math.min(e.length,t+2),value:e.slice(t,t+2),kind:"control"}}function Ek(e){return e<=31||e>=127&&e<=159}function Jo(e){let t="",r=0;for(;r<e.length;){if(e[r]===zo){let o=Yn(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!Ek(n)||e[r]===`
115
- `||e[r]===" ")&&(t+=e[r]),r++}return t}function Ju(e){let t="",r=0;for(;r<e.length;){if(e[r]===zo){let o=Yn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!Ek(n)||e[r]===`
116
- `||e[r]===" ")&&(t+=e[r]),r++}return t}function vk(e){return Ju(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var Tk="\x1B",Sk=/^[\x20-\x7e]*$/,tl=new Map,WF=256;function HF(e){return Ju(e)}function be(e){if(Sk.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return Pk(t);let r=HF(e);if(Sk.test(r))return r.length;let n=0;for(let{segment:o}of xk(r))n+=UF(o);return n}function Qn(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=zu(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function UF(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?Pk(t[0]):t.every(o=>o<=31||o>=127&&o<=159||Ak(o))?0:t.filter(o=>o>=127462&&o<=127487).length>=2||t.includes(65039)||t.includes(8419)||new RegExp("\\p{Extended_Pictographic}","u").test(e)||t.some(Ck)?2:1}function Pk(e){let t=tl.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||Ak(e)?r=0:r=Ck(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,tl.size>=WF&&tl.clear(),tl.set(e,r),r}function Ak(e){return e>=65024&&e<=65039||e>=917760&&e<=917999||e===8203||e===8204||e===8205||e===8288||e===65279||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=65056&&e<=65071||e===173}function Ck(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=183983||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=12352&&e<=12543||e>=44032&&e<=55203||e>=127744&&e<=129535||e>=129536&&e<=129791||qF(e)}function qF(e){let t=[9986,9989,9992,9993,9994,9995,9996,9997,9999,10002,10004,10006,10024,10035,10036,10052,10055,10060,10062,10067,10068,10069,10071,10083,10084,10133,10134,10135,10145,10160],r=[9728,9729,9730,9731,9732,9742,9745,9748,9749,9752,9757,9760,9762,9763,9766,9770,9774,9775,9784,9785,9786,9792,9794,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9823,9824,9827,9829,9830,9832,9851,9854,9855,9874,9875,9876,9877,9878,9879,9881,9883,9884,9889,9898,9899,9904,9905,9917,9918,9924,9925,9934,9940,9962,9970,9971,9973,9978,9981];return t.includes(e)||r.includes(e)}function Xn(e,t,r){if(t<=0)return e.split(`
113
+ `;async function fk(e=qu()){let t=sr(e),r=Ya(pk(t),"config.yaml"),n=await Vu(t),o=!1,s=!1;n===void 0?(await dk(t,{recursive:!0,mode:Vr}),await ak(t,Vr),o=!0):n!==Vr&&(await ak(t,Vr),s=!0);let i=!1;try{await uk(r,fF,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:Vr,configPath:r,configCreated:i}}var gk={needed:!1,declaredBy:`no ${ni} in view`};async function Ku(e={}){let t=e.homeDir??qu(),r=e.declaredTarget?.trim();if(r)return lk(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return gk;let o=Ya(n,".red","config.yaml"),s=await ck(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=nk(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:lk(i,t,o)}function lk(e,t,r){let n=`${ni}: ${e} (${r})`;try{return{needed:sk(ok(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function hk(e){let t=[gF(e),hF(e),mF(e),bF(e)],r=t.filter(o=>o.verdict!=="ok");return{verdict:r.some(o=>o.verdict==="missing")?"missing":r.length>0?"degraded":"ok",rows:t,findings:r}}function gF(e){let t=e.homeNeed??gk;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Uu}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??Vr;return r!==Vr?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${Vr.toString(8)}`,fix:`${Uu} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function hF(e){return Pr(e.entry)?{check:"daemon-entry",verdict:"ok",evidence:`${e.entry.entry??e.entry.command} (resolved as ${e.entry.source})`,fix:""}:{check:"daemon-entry",verdict:"missing",evidence:`no published redskilled bundle; probed ${e.entry.searched.join(", ")||"nothing"}`,fix:`install or warm the RedSkills bundle for this host, then re-run \`${wn("red-skills-redskilled",["provision"])}\``}}function mF(e){return e.reachable?{check:"reach",verdict:"ok",evidence:`daemon answered on ${e.socketPath}`,fix:""}:{check:"reach",verdict:"missing",evidence:`no daemon answered on ${e.socketPath}`,fix:`${Uu} \u2014 it starts the daemon and waits for the socket`}}function bF(e){return{check:"supervisor-unit",verdict:"ok",evidence:e.supervisorUnit==="installed"?"redskilled.service is installed (optional supervision, Restart=always)":e.supervisorUnit==="unsupported"?"optional: this host has no systemd --user session; auto-spawn is the only start path":"optional: not installed; auto-spawn already starts the daemon on first use",fix:""}}async function mk(e={}){let t=e.env??process.env,r=e.homeDir??qu(),n=e.paths??cr({env:t}),o=sr(r),[s,i,a]=await Promise.all([Vu(o),zt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Ku({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:un(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await kF(wF(e,t,r),t)}}var yF="redskilled.service";function bk(e){return Ya(e,"systemd","user",yF)}function yk(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
114
+ `)}async function kk(e){let t=bk(e.configHome);return await Vu(t)!==void 0?{path:t,status:"already-present"}:(await dk(pk(t),{recursive:!0}),await uk(t,e.unit,"utf8"),{path:t,status:"installed"})}async function kF(e,t){if(process.platform!=="linux")return"unsupported";try{return await ck(bk(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function wF(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??Ya(r,".config")}async function Vu(e){try{return(await pF(e)).mode&511}catch{return}}import{readdir as Rk,rm as RF,stat as _F}from"node:fs/promises";import{dirname as xF,join as zu}from"node:path";var EF=5*6e4,vF="redskilled.";function SF(e={}){let t=e.env??process.env,r=i=>xF(oa({key:"redskilled:reclaim-probe",socketFileName:Ko,env:i,...e.uid===void 0?{}:{uid:e.uid}})),{XDG_RUNTIME_DIR:n,...o}=t,s=[r(t),r(o)];return[...new Set(s)]}async function _k(e={}){let t=e.roots??SF(e),r=e.graceMs??EF,n=e.now??Date.now,o=e.isPidAlive??Qe,s=e.answers??CF,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await Rk(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await TF(zu(l,c),{graceMs:r,now:n,pidAlive:o,answers:s,dryRun:i}))}return{roots:t,scanned:a.length,reclaimed:a.filter(l=>l.verdict==="reclaimed").length,dryRun:i,entries:a}}async function TF(e,t){let r;try{r=(await Rk(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:xk(i),removed:[]}}let n=r.filter(i=>i.startsWith(vF));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await PF(zu(e,"redskilled.lease.toon"));if(o!==void 0)return await t.pidAlive(o.pid)?{dir:e,verdict:"live",reason:`lease pid ${o.pid} is alive`,removed:[]}:await wk(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(Ko)&&await t.answers(zu(e,Ko)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await AF(e,t.now);return s!==void 0&&s<t.graceMs?{dir:e,verdict:"young",reason:`no lease, modified ${Math.round(s/1e3)}s ago`,removed:[]}:await wk(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function wk(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await RF(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:xk(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function PF(e){try{return await Uo(e)}catch{return}}async function AF(e,t){try{return Math.max(0,t()-(await _F(e)).mtimeMs)}catch{return}}async function CF(e){try{return(await Ys({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function xk(e){return e instanceof Error?e.message:String(e)}var DF="plugins.dev.statusline",OF="dev.statusline";function FF(e){let t=[],r=a=>{for(let l of[DF,OF]){let d=`${l}.${a}`,c=qo(e,d)?.trim();if(c!=null&&c!=="")return{key:d,value:c}}},n=r("mode"),o={};n!=null&&(n.value==="local"||n.value==="global"?o.mode=n.value:t.push({...n,reason:"expected `local` or `global`"}));let s=[{leaf:"max_workers",assign:a=>{o.maxWorkers=a}},{leaf:"max_projects",assign:a=>{o.maxProjects=a}},{leaf:"max_width",assign:a=>{o.maxWidth=a}}];for(let a of s){let l=r(a.leaf);if(l==null)continue;let d=Number(l.value);Number.isInteger(d)&&d>=0?a.assign(d):t.push({...l,reason:"expected a whole number of zero or more"})}let i=r("verbose");return i!=null&&(i.value==="true"||i.value==="false"?o.verbose=i.value==="true":t.push({...i,reason:"expected `true` or `false`"})),{config:o,warnings:t}}var IF={mode:{kind:"value",coerce:e=>e},verbose:{kind:"boolean"},project:{kind:"value",coerce:e=>e},"max-workers":{kind:"value",coerce:e=>e},"max-projects":{kind:"value",coerce:e=>e},"max-width":{kind:"value",coerce:e=>e}};function Qa(e){let{values:t,positionals:r}=dn(e,IF),n=[],o={},s=t.mode??r.find(a=>a==="global"||a==="local");s!=null&&(s==="local"||s==="global"?o.mode=s:n.push({key:"--mode",value:s,reason:"expected `local` or `global`"})),t.project!=null&&(o.project=t.project),t.verbose!==void 0&&(o.verbose=t.verbose===!0);let i=[{flag:"max-workers",assign:a=>{o.maxWorkers=a}},{flag:"max-projects",assign:a=>{o.maxProjects=a}},{flag:"max-width",assign:a=>{o.maxWidth=a}}];for(let a of i){let l=t[a.flag];if(l==null)continue;let d=Number(l);Number.isInteger(d)&&d>=0?a.assign(d):n.push({key:`--${a.flag}`,value:l,reason:"expected a whole number of zero or more"})}return{flags:o,warnings:n}}function Xa(e={}){let t=e.configText==null?{config:{},warnings:[]}:FF(e.configText),r=e.flags??{};return{options:{...Ne,mode:r.mode??t.config.mode??Ne.mode,project:r.project!==void 0?r.project:e.project??Ne.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Ne.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Ne.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Ne.maxWidth,verbose:r.verbose??t.config.verbose??Ne.verbose},warnings:t.warnings}}var Za,el=new Map,MF=256;function Tk(){if(Za!==void 0)return Za;let e=Intl.Segmenter;return Za=e?new e(void 0,{granularity:"grapheme"}):null,Za}function Ju(e){return e===8205||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65024&&e<=65039||e>=65056&&e<=65071||e>=127995&&e<=127999||e>=917536&&e<=917631||e>=917760&&e<=917999}function Ek(e){let t=el.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return el.size>=MF&&el.clear(),el.set(e,r),r}function vk(e){return e>=127462&&e<=127487}function Sk(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function LF(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function jF(e,t,r){if(Ek(t)||LF(t)||Sk(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Ju(n)||Ek(n)||Sk(n)||vk(t)&&vk(n)||t===13&&n===10)}function BF(e){let t=[],r=0;for(;r<e.length;){let n=r,o=!1,s=e.codePointAt(r);for(r+=s>65535?2:1;r<e.length;){let i=e.codePointAt(r);if(!o&&!Ju(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function Pk(e){let t=Tk();if(!t)return BF(e);let r=[...t.segment(e)];return r.map((n,o)=>({segment:n.segment,index:n.index,end:r[o+1]?.index??e.length}))}function Yu(e,t){if(t<0||t>=e.length)return null;let r=e.codePointAt(t);if(r===void 0)return null;let n=t+(r>65535?2:1);if(jF(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=Tk();if(o){let a=o.segment(e).containing(t);return a?{segment:a.segment,index:a.index,end:a.index+a.segment.length}:null}let s=n,i=!1;for(;s<e.length;){let a=e.codePointAt(s);if(!i&&!Ju(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var Vo="\x1B",$F="\x07",o6=`${Vo}\\`;function NF(e){return e>=64&&e<=126}function GF(e,t){for(let r=t;r<e.length;r++){if(e[r]===$F)return r+1;if(e[r]===Vo&&e[r+1]==="\\")return r+2}return e.length}function zn(e,t){if(e[t]!==Vo)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:Vo,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!NF(e.charCodeAt(n));)n++;if(n>=e.length)return{end:e.length,value:e.slice(t),kind:"control"};let o=e.slice(t,n+1),s=/^\x1b\[[0-9:;]*m$/.test(o)?"sgr":"control";return{end:n+1,value:o,kind:s}}if(r==="]"||r==="P"||r==="X"||r==="^"||r==="_"){let n=GF(e,t+2);return{end:n,value:e.slice(t,n),kind:"control"}}return{end:Math.min(e.length,t+2),value:e.slice(t,t+2),kind:"control"}}function Ak(e){return e<=31||e>=127&&e<=159}function zo(e){let t="",r=0;for(;r<e.length;){if(e[r]===Vo){let o=zn(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!Ak(n)||e[r]===`
115
+ `||e[r]===" ")&&(t+=e[r]),r++}return t}function Qu(e){let t="",r=0;for(;r<e.length;){if(e[r]===Vo){let o=zn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!Ak(n)||e[r]===`
116
+ `||e[r]===" ")&&(t+=e[r]),r++}return t}function Ck(e){return Qu(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var Ok="\x1B",Dk=/^[\x20-\x7e]*$/,tl=new Map,WF=256;function HF(e){return Qu(e)}function be(e){if(Dk.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return Fk(t);let r=HF(e);if(Dk.test(r))return r.length;let n=0;for(let{segment:o}of Pk(r))n+=UF(o);return n}function Jn(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=Yu(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function UF(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?Fk(t[0]):t.every(o=>o<=31||o>=127&&o<=159||Ik(o))?0:t.filter(o=>o>=127462&&o<=127487).length>=2||t.includes(65039)||t.includes(8419)||new RegExp("\\p{Extended_Pictographic}","u").test(e)||t.some(Mk)?2:1}function Fk(e){let t=tl.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||Ik(e)?r=0:r=Mk(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,tl.size>=WF&&tl.clear(),tl.set(e,r),r}function Ik(e){return e>=65024&&e<=65039||e>=917760&&e<=917999||e===8203||e===8204||e===8205||e===8288||e===65279||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=65056&&e<=65071||e===173}function Mk(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=183983||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=12352&&e<=12543||e>=44032&&e<=55203||e>=127744&&e<=129535||e>=129536&&e<=129791||qF(e)}function qF(e){let t=[9986,9989,9992,9993,9994,9995,9996,9997,9999,10002,10004,10006,10024,10035,10036,10052,10055,10060,10062,10067,10068,10069,10071,10083,10084,10133,10134,10135,10145,10160],r=[9728,9729,9730,9731,9732,9742,9745,9748,9749,9752,9757,9760,9762,9763,9766,9770,9774,9775,9784,9785,9786,9792,9794,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9823,9824,9827,9829,9830,9832,9851,9854,9855,9874,9875,9876,9877,9878,9879,9881,9883,9884,9889,9898,9899,9904,9905,9917,9918,9924,9925,9934,9940,9962,9970,9971,9973,9978,9981];return t.includes(e)||r.includes(e)}function Yn(e,t,r){if(t<=0)return e.split(`
117
117
  `);let n=[];for(let o of e.split(`
118
- `)){if(r==="truncate"||r==="truncate-end"){n.push(Zr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Zr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Zr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...KF(o,t))}return n}function KF(e,t){if(be(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(be(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),be(o)<=t){n=o;continue}let i=VF(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function VF(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===Tk){let l=Yn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Qn(e,s);if(!i)break;let a=be(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Zr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(be(e)<=t)return e;if(t<be(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=be(l);return n==="start"?zF(e,t,l,d,i):n==="middle"?YF(e,t,l,d,i):JF(e,t,l,d,i)}function zF(e,t,r,n,o){let s=t-n,i=Yo(e,be(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function JF(e,t,r,n,o){let s=t-n,i=Yo(e,0,s);if(o){let a=i.lastIndexOf(" ");if(a!==-1&&i.length-a<4)return i.slice(0,a)+r}return i+r}function YF(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Yo(e,0,i),d=Yo(e,be(e)-a);if(o){let c=l.lastIndexOf(" ");c!==-1&&l.length-c<4&&(l=l.slice(0,c));let u=d.indexOf(" ");u!==-1&&u<4&&(d=d.slice(u+1))}return l+r+d}function Yo(e,t,r){let n=Number.isFinite(t)?Math.max(0,Math.trunc(t)):0,o=r===void 0?void 0:Number.isFinite(r)?Math.max(n,Math.trunc(r)):n,s="",i=0,a="",l=0,d=!1;for(;l<e.length&&(o===void 0||i<o);){if(e[l]===Tk){let f=Yn(e,l);if(f){if(l=f.end,f.kind!=="sgr")continue;a=f.value==="\x1B[0m"?"":a+f.value,i>=n&&(o===void 0||i<o)&&(s+=f.value);continue}}let c=zu(e,l);if(!c){l++;continue}let u=be(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function ii(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function Yu(e,t,r){if(t===void 0)return dt(e,117);if(t===null)return dt(e,110);switch(typeof t){case"boolean":return dt(dt(e,98),t?49:48);case"number":return ii(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return ii(dt(e,105),t.toString());case"string":return ii(dt(e,115),t);case"function":return r.ignoreFunctions===!1?dt(e,102):e;case"object":{if(Array.isArray(t)){let i=dt(e,91);for(let a of t)i=Yu(i,a,r),i=dt(i,124);return dt(i,93)}let n=dt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=ii(dt(n,107),i),n=dt(n,58),n=Yu(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return ii(dt(e,63),String(t))}}function Ft(e,t={}){return Yu(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as QF}from"node:async_hooks";var Ir=Symbol("tuiuiu.runtime-resource-dispose"),Dk=new QF,rl=new Set,XF=1,Qo={id:0,resources:new Map};function Ok(){let e={id:XF++,resources:new Map};return rl.add(e),e}function ZF(e){rl.delete(e)}function Fk(e){if(e!==null&&typeof e=="object"&&Ir in e)try{e[Ir]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function eI(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)Fk(r)}function Xo(e){ZF(e),eI(e)}function qe(e,t){return Dk.run(e,t)}function en(e,t){return(...r)=>qe(e,()=>t(...r))}function Qu(){return Dk.getStore()??null}function Ge(e){if(e)return e;let t=Qu();return t||(rl.size===1?rl.values().next().value??Qo:Qo)}function Mr(){return Qo}function Oe(e,t,r){let n=Ge(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function It(e,t){return Qo.resources.has(e)||Qo.resources.set(e,t()),Qo.resources.get(e)}function nl(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),Fk(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function Xu(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function tI(e){let t=e.props,r=typeof t.width=="number"&&t.width>0&&t.width!==1/0,n=typeof t.height=="number"&&t.height>0&&t.height!==1/0;return!(!r||!n||(t.flexGrow??0)>0||t.width==="fill"||t.height==="fill")}var Zu=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Xu();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=Xu()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&tI(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Ft({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=Xu()}},rI=Symbol("tuiuiu.dirty-registry");function Lr(e){return Oe(rI,()=>new Zu,e)}function Ik(e){Lr().beginFrame(e)}function Mk(e,t){Lr().registerNode(e,t)}function _n(e,t=Pe.CONTENT){Lr().markDirty(e,t)}function Lk(e){Lr().markLayoutClean(e)}function ai(e){Lr().noteReuse(e)}function Zn(e){Lr().noteFresh(e)}function ol(e){return Lr().canReuseSubtree(e)}function jk(){return Lr().getDiagnostics()}function li(){Lr().clearGlobalDirty()}function Zo(e){Lr().markClean(e.node);for(let r of e.children)Zo(r)}var Bk=new WeakMap;function kt(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function sl(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var Tt=e=>e==="auto"?0:kt(e,"margin"),nI=new Set(["layoutRef","__scrollQuery"]),oI=new Set(["display","position","flexDirection","flexWrap","flexGrow","flexShrink","flexBasis","flex","justifyContent","alignItems","alignSelf","alignContent","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","margin","marginX","marginY","marginTop","marginBottom","marginLeft","marginRight","gap","columnGap","rowGap","width","height","minWidth","minHeight","maxWidth","maxHeight","top","bottom","left","right","borderStyle","borderTop","borderBottom","borderLeft","borderRight","overflow","overflowX","overflowY"]),sI=new Set(["children","wrap"]);function iI(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function es(e){let t=e.props??{},r=e.type==="text"?sI:oI,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ft(n,{ignoreKeys:nI})}function aI(e,t){if(e.children.length!==t.length)return!1;for(let r=0;r<t.length;r++)if(e.children[r]!==t[r])return!1;return!0}function lI(e,t){if(!ol(e)){Zn("layout");return}let r=Bk.get(e);if(!r){Zn("layout");return}if(r.ctxKey!==t){_n(e,Pe.LAYOUT),Zn("layout");return}let n=es(e);if(r.propsKey!==n||!aI(e,r.childRefs)){_n(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Zn("layout");return}return ai("layout"),r.layout}function di(e,t,r,n){Bk.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),Lk(e)}function ht(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function $k(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Mt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function Nk(e,t=0,r=0){let n=t+e.x,o=r+e.y;Mt(e.node,{...e,x:n,y:o});let s=e.node.props,i=kt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=kt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)Nk(u,d,c)}function Gk(e,t,r=1/0){if(!Number.isFinite(t)||t<0)throw new RangeError("availableWidth must be a finite non-negative number");if(r!==1/0&&(!Number.isFinite(r)||r<0))throw new RangeError("availableHeight must be a non-negative number or Infinity");t=Math.floor(t),r!==1/0&&(r=Math.floor(r)),Ik(e);let n=jr(e,{x:0,y:0,width:t,height:r},null);return Nk(n),n}function dI(e,t){let r=e.props.__divider;if(r==="horizontal")return{x:t.x,y:t.y,width:t.width,height:Math.min(1,t.height),node:e,children:[]};if(r==="vertical")return{x:t.x,y:t.y,width:Math.min(1,t.width),height:e.props.__splitDivider?Math.min(1,t.height):t.height,node:e,children:[]};let n=Xn(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>be(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function cI(e,t){let r=typeof e.props.height=="number"?e.props.height:1;return{x:t.x,y:t.y,width:t.width,height:Math.min(r,t.height),node:e,children:[]}}function uI(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function jr(e,t,r){Mk(e,r);let n=iI(t),o=lI(e,n);if(o)return Mt(e,o),o;let s;if(e.type==="text")return s=dI(e,t),di(e,n,es(e),s),s;if(e.type==="spacer")return s=cI(e,t),di(e,n,es(e),s),s;if(e.type==="newline")return s=uI(e,t),di(e,n,es(e),s),s;let i=e.props;if(i.display==="none")return s={x:t.x,y:t.y,width:0,height:0,node:e,children:[]},Mt(e,s),di(e,n,es(e),s),s;let a=kt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=kt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=kt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=kt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Tt(i.marginTop??i.marginY??i.margin),p=Tt(i.marginBottom??i.marginY??i.margin),g=Tt(i.marginLeft??i.marginX??i.margin),f=Tt(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,h=ci(i.width,t.width),R=ci(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?h:t.width)-d-c-y*2),M=Math.max(0,($?R:t.height)-a-l-y*2),N=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:M,U=[],G=i.flexDirection??"column",F=G==="row"||G==="row-reverse",W=G==="row-reverse"||G==="column-reverse",q=kt(F?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],ae=[];if(e.children.length>0){for(let ie of e.children)ie.props.position==="absolute"?oe.push(ie):ae.push(ie);let fe=W?[...ae].reverse():ae;F?U.push(...Wk(fe,D,N,q,i,$,e)):U.push(...fI(fe,D,N,q,i,e))}let se=0,Z=0;if(F)for(let fe of U){let ie=fe.node.props,xe=Tt(ie.marginRight??ie.marginX??ie.margin),Fe=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.x+fe.width+xe),Z=Math.max(Z,fe.y+fe.height+Fe)}else for(let fe of U){let ie=fe.node.props,xe=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+xe)}let Ae=sl(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,we=T?h:Ae?t.width:Ee,J=$?R:Z+a+l+y*2,de=kt(i.minWidth,"minWidth"),_e=kt(i.minHeight,"minHeight");if(we=Math.max(we,de),J=Math.max(J,_e),i.maxWidth!==void 0&&(we=Math.min(we,kt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,kt(i.maxHeight,"maxHeight"))),F&&i.alignItems==="stretch"){let fe=Math.max(0,J-a-l-y*2);for(let ie=0;ie<U.length;ie++){let xe=U[ie],Fe=xe.node.props;Fe.height===void 0&&(U[ie]=$k(xe,Math.max(xe.height,fe),Fe),Mt(xe.node,U[ie]))}}let Ce=t.x+g,ve=t.y+u,Re=Math.max(0,Math.min(we,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let fe of oe){let ie=fe.props,xe=jr(fe,{x:0,y:0,width:D,height:N},e),Fe=Ce+d+y,at=ve+a+y;ie.left!==void 0?Fe=Ce+d+y+ie.left:ie.right!==void 0&&(Fe=Ce+Re-c-y-xe.width-ie.right),ie.top!==void 0?at=ve+a+y+ie.top:ie.bottom!==void 0&&(at=ve+Se-l-y-xe.height-ie.bottom);let Nt=ht(xe,{x:Fe,y:at});Mt(fe,Nt),U.push(Nt)}return s={x:Ce,y:ve,width:Re,height:Se,node:e,children:U},Mt(e,s),di(e,n,es(e),s),s}function Wk(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return pI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let G of e){let F=G.props,W=F.flexGrow;W===void 0?W=F.width==="fill"||G.type==="spacer"?1:0:W=sl(W,"flexGrow");let q=kt(F.minWidth,"minWidth"),oe=F.flexBasis==="content"?jr(G,{x:0,y:0,width:t,height:r},i).width:F.flexBasis===void 0||F.flexBasis==="auto"?q:ci(F.flexBasis,t),ae=F.flexShrink===void 0?1:sl(F.flexShrink,"flexShrink"),se=Tt(F.marginLeft??F.marginX??F.margin),Z=Tt(F.marginRight??F.marginX??F.margin);if(W>0)c+=W,d+=oe+se+Z,u.push({node:G,flex:W,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:Z});else{let Ae=F.width!==void 0&&F.width!=="auto"&&F.width!=="fill"?ci(F.width,t)+se+Z:t,Ee=jr(G,{x:0,y:0,width:Ae,height:r},i);d+=Ee.width+se+Z,u.push({node:G,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:Z,layout:Ee,measuredCtxWidth:Ae})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let G=u.map(()=>0),F=Math.ceil(p);for(;F>0;){let W=u.map((Z,pe)=>{let Ae=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,Ae-G[pe]);return{index:pe,capacity:Ee,maxReduction:Ae,weight:Z.shrink*Z.basis}}).filter(Z=>Z.capacity>0&&Z.weight>0),q=W.reduce((Z,pe)=>Z+pe.weight,0);if(q<=0)break;let oe=W.map(Z=>{let pe=F*Z.weight/q,Ae=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Ae,fraction:pe-Math.floor(pe)}}),ae=0;for(let Z of oe)Z.whole>0&&(G[Z.index]+=Z.whole,ae+=Z.whole);if(F-=ae,F<=0)break;oe.sort((Z,pe)=>pe.fraction-Z.fraction||pe.weight-Z.weight||pe.capacity-Z.capacity);let se=!1;for(let Z of oe){if(F<=0)break;G[Z.index]<Z.maxReduction&&(G[Z.index]+=1,F-=1,se=!0)}if(!se)break}if(G.some(W=>W>0)){for(let W=0;W<u.length;W++){let q=u[W];q.targetWidth=Math.max(q.minWidth,q.basis-G[W])}d=u.reduce((W,q)=>W+(q.targetWidth??q.basis)+q.marginLeft+q.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,y=0,h=o.justifyContent??"flex-start",R=d+(c>0?g:0),T=t-R,$=0,D=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?$=T/(u.length-1):h==="space-around"?(D=T/(u.length*2),y=D):h==="space-evenly"?($=T/(u.length+1),y=$):h==="flex-end"?y=T:h==="center"&&(y=T/2));let M=0,N=[];for(let G=0;G<u.length;G++){let F=u[G],q=(F.targetWidth??(F.flex>0?F.basis+Math.floor(f*F.flex):F.basis))+F.marginLeft+F.marginRight,oe=F.layout&&F.measuredCtxWidth===q?ht(F.layout,{x:F.layout.x+y}):jr(F.node,{x:y,y:0,width:q,height:r},i),ae=F.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),y+=F.marginLeft+oe.width+F.marginRight,h==="space-between"&&G<u.length-1?y+=$:h==="space-around"?y+=D*2:h==="space-evenly"?y+=$:y+=n}let U=s?r:M;for(let G of N){let{style:F}=G,{layout:W}=G,q=F.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(F.height===void 0&&(se=Math.max(W.height,U)),ae=0):oe==="center"?ae=Math.floor((U-W.height)/2):oe==="flex-end"?ae=U-W.height:oe==="baseline"&&(ae=0),W=$k(W,se,F),W=ht(W,{y:ae}),Mt(W.node,W),a.push(W)}return a}function pI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=Tt(M.marginLeft??M.marginX??M.margin),U=Tt(M.marginRight??M.marginX??M.margin),G=jr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:ci(M.flexBasis,t))+N+U,q=c+(d.length>0?n:0)+W;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=kt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let M=Wk(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((U,G)=>Math.max(U,G.y+G.height),0);return{layouts:M,height:N}}),g=p.reduce((D,M)=>D+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",h=0,R=0;y==="flex-end"?h=f:y==="center"?h=Math.floor(f/2):y==="space-between"&&p.length>1?R=f/(p.length-1):y==="space-around"&&p.length>0?(R=f/p.length,h=Math.floor(R/2)):y==="stretch"&&p.length>0&&(R=f/p.length);let T=[],$=h;for(let D of p){for(let M of D.layouts){let N=ht(M,{y:M.y+Math.floor($)});Mt(N.node,N),T.push(N)}$+=D.height+u+R}return T}function fI(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,y=[];for(let h of e){let R=h.props,T=Tt(R.marginTop??R.marginY??R.margin),$=Tt(R.marginBottom??R.marginY??R.margin),D=R.flexGrow;D===void 0?D=R.height==="fill"||h.type==="spacer"?1:0:D=sl(D,"flexGrow");let M=kt(R.minHeight,"minHeight"),N=R.maxHeight===void 0?void 0:kt(R.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,y.push({node:h,flex:D,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$});else{let U=jr(h,{x:0,y:0,width:t,height:r},s);g+=U.height+T+$,y.push({node:h,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$,layout:U})}}if(g+=n*Math.max(0,e.length-1),f>0){let R=Math.max(0,r-g)/f,T=0;for(let $=0;$<y.length;$++){let D=y[$],N=D.node.props.alignSelf,U=N!=="auto"&&N?N:o.alignItems??"flex-start",G=D.layout;if(D.flex>0){let q=Math.floor(R*D.flex);q=Math.max(D.minHeight,q),D.maxHeight!==void 0&&(q=Math.min(D.maxHeight,q)),G=jr(D.node,{x:0,y:T,width:t,height:q},s),G=ht(G,{height:q})}G||(G=jr(D.node,{x:0,y:T,width:t,height:r},s));let F=G.x,W=G.width;U==="center"?F=Math.floor((t-G.width)/2):U==="flex-end"?F=t-G.width:U==="stretch"&&(W=t),G=ht(G,{x:F,y:T,width:W}),Mt(G.node,G),i.push(G),T+=D.marginTop+G.height+D.marginBottom,$<y.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],y=f.props,h=Tt(y.marginTop??y.marginY??y.margin),R=Tt(y.marginBottom??y.marginY??y.margin),T=jr(f,{x:0,y:l,width:t,height:r-l},s),$=y.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",M=T.x,N=T.width;D==="center"?M=Math.floor((t-T.width)/2):D==="flex-end"?M=t-T.width:D==="stretch"&&(N=t);let U=ht(T,{x:M,width:N});Mt(U.node,U),i.push(U),l+=h+T.height+R,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*y)}),Mt(i[y].node,i[y]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),Mt(i[y].node,i[y]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(y+1))}),Mt(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),Mt(i[f].node,i[f])}return i}function ci(e,t){if(e===void 0||e==="auto")return 0;if(e==="fill")return t;if(typeof e=="number"){if(!Number.isFinite(e)||e<0)throw new RangeError("Layout size must be a finite non-negative number");return Math.floor(e)}if(e.endsWith("%")){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0)throw new RangeError("Layout percentage must be finite and non-negative");return t===1/0?0:Math.floor(n/100*t)}let r=Number(e);if(!Number.isFinite(r)||r<0)throw new RangeError(`Invalid layout size: ${e}`);return Math.floor(r)}var Hk={background:0,normal:1,modal:2,critical:3};var Uk=new Set;function Kk(e,t){process.env.NODE_ENV==="production"||Uk.has(e)||(Uk.add(e),console.warn(`[tuiuiu] ${t}`))}var gI=Symbol("tuiuiu.hook-runtime-state"),ep=new WeakMap;function hI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function Je(e){return Oe(gI,hI,e)}function tp(e){return ep.get(e)??null}function Vk(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function zk(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Kk("hook-count-changed",`Hook count changed between renders (${e.lastMaxHookIndex} \u2192 ${t}). A component with internal hooks (Select, Tabs, Menu, ChatList, ScrollList, etc.) was conditionally added or removed from the render tree. FIX: Keep hook-bearing components always rendered \u2014 use height: 0, isActive: false, or display: "none" to hide them instead of removing them with ternaries or When().`),t<e.lastMaxHookIndex)for(let r=t;r<e.lastMaxHookIndex;r++){Qk(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(ui(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function Jk(){return Je().isRendering}function Yk(){return Je().renderPhaseMode}function ur(e){let t=Je();t.isRendering||Kk("hook-outside-render","A hook (useState, useMemo, useComputed, etc.) was called outside a component render. Hooks must be called inside a component function, not at module scope or in event handlers. Move the hook call inside your component function.");let r=t.hookIndex++;return r>=t.hookState.state.length?(t.hookState.state.push(e),{value:e,isNew:!0}):{value:t.hookState.state[r],isNew:!1}}function pr(e,t){Je().hookState.state[e]=t}function Br(e){return Je().hookState.state[e]}function Xt(){return Je().hookIndex-1}function eo(e,t=Xt()){let r=Je(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function Qk(e,t){let r=t.hookCleanups.get(e);if(r){t.hookCleanups.delete(e);for(let n of[...r].reverse())try{n()}catch(o){console.error("[tuiuiu] Error during hook cleanup:",o)}}}function il(e){let t=Ge(e),r=Je(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))Qk(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function tn(e){return Je(e).appContext}function rp(e,t){let r=Ge(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&ep.delete(o),e&&ep.set(e,r)}function al(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:Hk[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function ui(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Xk(e,t,r){let o=[...Je().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function Zk(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function np(e,t){Je(t).focusManager=e}function ew(e){let t=Je(),r=bI(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function tw(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var mI=300,qk=2;function bI(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<mI&&Math.abs(t.x-n.x)<=qk&&Math.abs(t.y-n.y)<=qk?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function rw(e,t){let r=[...Je().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function nw(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var pi=[],dl=!1,op=!1,ll=0,fi=null,gi=null;function ow(){if(!op){op=!0;for(let e=pi.length-1;e>=0;e--)try{pi[e]()}catch{}op=!1}}function rn(e){return pi.push(e),()=>{let t=pi.indexOf(e);t!==-1&&pi.splice(t,1)}}function sw(){ll++,dl||(dl=!0,fi=()=>{ow()},gi=()=>{ow()},process.on("exit",fi),process.on("uncaughtExceptionMonitor",gi));let e=!1;return()=>{e||(e=!0,ll=Math.max(0,ll-1),ll===0&&yI())}}function yI(){dl&&(fi&&process.off("exit",fi),gi&&process.off("uncaughtExceptionMonitor",gi),fi=null,gi=null,dl=!1)}var iw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,aw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,lw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,dw=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function cl(e,t,r,n){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||e<0||t<1||r<1)return null;let o=e&3,s=(e&32)!==0,i=(e&64)!==0,a,l;return i?(a=e&1?"scroll-down":"scroll-up",l="click"):(o===0?a="left":o===1?a="middle":o===2?a="right":a="none",s&&o===3?l="move":n||o===3?l="release":s?l="drag":l="click"),{x:t-1,y:r-1,button:a,action:l,modifiers:{shift:(e&4)!==0,alt:(e&8)!==0,ctrl:(e&16)!==0}}}function cw(e){let t=iw.exec(e);if(t){let s=fr(t[1]),i=fr(t[2]),a=fr(t[3]),l=fr(t[4]),d=fr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=cl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=aw.exec(e);if(r){let s=fr(r[1]),i=fr(r[2]),a=fr(r[3]);if(s===null||i===null||a===null)return null;let l=cl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=lw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=cl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=dw.exec(e);if(o){let s=fr(o[1]),i=fr(o[2]),a=fr(o[3]);if(s===null||i===null||a===null)return null;let l=cl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function uw(e){return iw.test(e)||aw.test(e)||lw.test(e)||dw.test(e)}var kI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",pw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",wI=Symbol("tuiuiu.mouse-runtime-state");function hi(e){return Oe(wI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function sp(e){return tn(e)?.stdout??process.stdout}function ip(e){return"isTTY"in e&&!!e.isTTY}function mi(e){return cw(e)}function ap(e){return uw(e)}function ts(e){let t=Ge(e),r=hi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,RI(t);let n=sp(t);r.outputStream=n,ip(n)&&n.write(kI)}}function to(e){let t=Ge(e),r=hi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??sp(t);ip(n)&&n.write(pw),r.outputStream=null}}function ul(e){let t=Ge(e),r=hi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??sp(t);ip(n)&&n.write(pw),r.outputStream=null}}function RI(e){let t=hi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=rn(en(e,()=>ul(e))))}function fw(e){let t=hi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as EI}from"node:zlib";var We={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},_I={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...We,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:We}};function xI(e=process.env){let t=e.TERM_PROGRAM||"",r=e.TERM||"";return e.KITTY_WINDOW_ID?"kitty":e.ALACRITTY_WINDOW_ID||e.ALACRITTY_LOG?"alacritty":e.GHOSTTY_RESOURCES_DIR?"ghostty":e.WEZTERM_PANE||t==="WezTerm"?"wezterm":t==="rio"?"rio":e.WARP_IS_LOCAL_SHELL_SESSION?"warp":r.startsWith("foot")||r==="foot"?"foot":e.CONTOUR_TERMINAL_ID?"contour":e.VSCODE_PID||t==="vscode"?"vscode":t==="iTerm.app"?"iterm2":t==="Apple_Terminal"?"terminal-app":e.WT_SESSION?"windows-terminal":e.KONSOLE_VERSION?"konsole":e.VTE_VERSION?e.TILIX_ID?"tilix":"gnome-terminal":t==="Hyper"?"hyper":e.TERMINOLOGY?"terminology":t==="mlterm"?"mlterm":t==="blackbox"||e.BLACKBOX_THEMES_DIR?"black-box":t==="Bobcat"?"bobcat":r.includes("rxvt-unicode")||r.includes("rxvt")?"rxvt-unicode":r.includes("mlterm")?"mlterm":r==="st-256color"||r==="st"?"st":"unknown"}function gw(e=process.env){return e.TMUX?{type:"tmux",version:e.TMUX?.split(",")[1],needsPassthrough:!0}:e.STY?{type:"screen",version:void 0,needsPassthrough:!0}:e.ZELLIJ?{type:"zellij",version:(e.ZELLIJ_SESSION_NAME,void 0),needsPassthrough:!1}:null}function pl(e=process.env){let t=xI(e),r=_I[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var ww=Symbol("tuiuiu.graphics-runtime-state");function Rw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:It(ww,()=>Rw(Mr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function up(){let e=Ge();return Oe(ww,()=>Rw(e),e)}var hw={width:10,height:20};function fl(e){return{width:Math.max(1,Math.round(e?.width??hw.width)),height:Math.max(1,Math.round(e?.height??hw.height))}}function vI(){let e=process.env,t=e.TERM?.toLowerCase()||"",r=e.COLORTERM?.toLowerCase()||"",n=e.TERM_PROGRAM?.toLowerCase()||"";return e.FORCE_COLOR==="0"?!1:e.FORCE_COLOR==="2"||e.FORCE_COLOR==="3"?!0:r==="truecolor"||r==="24bit"||t.includes("256color")||t.includes("direct")||n==="iterm.app"||n==="wezterm"||n==="hyper"||!!e.WT_SESSION}function _w(){return vI()?"halfblock":"braille"}function rs(e){return e==="none"?_w():e}function xw(e){let t=rs(e);return t==="halfblock"||t==="braille"}function Ew(e){let t=rs(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function mw(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function vw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&AI(e)?e:null}function Sw(){let e=process.env.TERM_PROGRAM?.toLowerCase()||"",t=process.env.KITTY_WINDOW_ID,r=process.env.ITERM_SESSION_ID;return t||e==="kitty"?"kitty":r||e==="iterm.app"?"iterm2":null}function Tw(){return pl(process.env).knownCaps.preferredGraphics||null}function Pw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function SI(){let e=vw();if(e)return e;let t=Sw();if(t)return t;let r=Tw();return r||Pw()}function TI(e){return vw()===e||Sw()===e?"env":Tw()===e?"profile":Pw()===e?"env":"fallback"}function ns(){let e=up();if(e.manualOverride)return mw(e.manualOverride,"manual",fl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=PI();return mw(t,TI(t),fl())}function PI(){let e=up();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=SI()??_w()),e.detectedProtocol)}function AI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function Aw(){let e=up();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:fl(void 0)};let r=e.negotiatedCapabilities.cellSize;if(t.width!==r.width||t.height!==r.height)for(let n of[...e.cellSizeChangeListeners])n(r)}}function CI(e){let t=2166136261;t^=e.width,t=Math.imul(t,16777619),t^=e.height,t=Math.imul(t,16777619);for(let r=0;r<e.pixels.length;r++)t^=e.pixels[r],t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function Cw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function yi(e){return Cw(e)?e:hl(e)}function bw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function hl(e,t={}){let r=fl(t.cellSize??ns().cellSize);return{pixels:e.pixels,width:e.width,height:e.height,cellSize:r,desiredColumns:Math.max(1,Math.ceil(e.width/r.width)),desiredRows:Math.max(1,Math.ceil(e.height/r.height)),hash:CI(e)}}function ki(e,t={}){let r=Cw(e)?e:hl(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=bw(r.desiredRows,r.desiredColumns,l),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(s!==void 0&&o===void 0)d=s,l=bw(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),y=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=y*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var os={transmit(e,t={}){let r=yi(e),n=ki(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=LI(r),l=Dw(a),d=4096,c=[];for(let u=0;u<l.length;u+=d){let p=l.slice(u,u+d),f=u+d>=l.length?0:1;u===0?c.push(`\x1B_Ga=T,f=100,c=${o},r=${s}${i},m=${f};${p}\x1B\\`):c.push(`\x1B_Gm=${f};${p}\x1B\\`)}return c.join("")},display(e,t,r){return`\x1B_Ga=p,i=${e},p=1,X=${t},Y=${r}\x1B\\`},delete(e){return e!==void 0?`\x1B_Ga=d,d=i,i=${e}\x1B\\`:"\x1B_Ga=d,d=A\x1B\\"},clear(){return"\x1B_Ga=d,d=A\x1B\\"}},DI={display(e,t={}){let{pixels:r}=yi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Dw(r);return`\x1B]1337;File=inline=1;${n};${o}:${s}\x07`},displayFile(e,t={}){let r=t.width?`width=${t.width}`:"width=auto",n=t.height?`height=${t.height}`:"height=auto",o=Buffer.from(e).toString("base64");return`\x1B]1337;File=inline=1;${r};${n}:${o}\x07`}},OI={encode(e,t={}){let r=yi(e),n=ki(r,t),o=t.width!==void 0||t.height!==void 0?Ow({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=jI(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),y=Math.round(p/255*100),h=Math.round(g/255*100);d+=`#${c};2;${f};${y};${h}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let y=0;for(let h=0;h<6;h++){let R=c+h;if(R>=i)continue;let T=(R*s+f)*4,$=a[T],D=a[T+1],M=a[T+2];BI([$,D,M],l)===u&&(y|=1<<h,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function yw(e,t,r){if(t<0||t>=e.width||r<0||r>=e.height)return{r:0,g:0,b:0,a:0};let n=(r*e.width+t)*4;return{r:e.pixels[n]??0,g:e.pixels[n+1]??0,b:e.pixels[n+2]??0,a:e.pixels[n+3]??0}}function lp(e,t){let r=[];return e&&e.a>0&&r.push(`38;2;${e.r};${e.g};${e.b}`),t&&t.a>0&&r.push(`48;2;${t.r};${t.g};${t.b}`),r.length>0?`\x1B[${r.join(";")}m`:void 0}var kw={render(e,t={}){let r=yi(e),n=ki(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Ow(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=yw(i,u,l),g=yw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=lp(p,g)):p.a>0?(f="\u2580",y=lp(p)):g.a>0&&(f="\u2584",y=lp(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
119
- `)}},bi=10240,FI={render(e,t={}){let{width:r,height:n,pixels:o}=yi(e),s=t.threshold??128,i=t.dither??!1,a=Math.ceil(r/2),l=Math.ceil(n/4),d=new Float32Array(r*n);for(let u=0;u<r*n;u++){let p=o[u*4],g=o[u*4+1],f=o[u*4+2];d[u]=.299*p+.587*g+.114*f}i&&$I(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,y=[[0,0,0],[0,1,1],[0,2,2],[1,0,3],[1,1,4],[1,2,5],[0,3,6],[1,3,7]];for(let[h,R,T]of y){let $=g*2+h,D=u*4+R;if($<r&&D<n){let M=D*r+$;d[M]<s&&(f|=1<<T)}}p+=String.fromCharCode(bi+f)}c.push(p)}return c.join(`
118
+ `)){if(r==="truncate"||r==="truncate-end"){n.push(Zr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Zr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Zr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...KF(o,t))}return n}function KF(e,t){if(be(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(be(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),be(o)<=t){n=o;continue}let i=VF(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function VF(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===Ok){let l=zn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Jn(e,s);if(!i)break;let a=be(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Zr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(be(e)<=t)return e;if(t<be(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=be(l);return n==="start"?zF(e,t,l,d,i):n==="middle"?YF(e,t,l,d,i):JF(e,t,l,d,i)}function zF(e,t,r,n,o){let s=t-n,i=Jo(e,be(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function JF(e,t,r,n,o){let s=t-n,i=Jo(e,0,s);if(o){let a=i.lastIndexOf(" ");if(a!==-1&&i.length-a<4)return i.slice(0,a)+r}return i+r}function YF(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Jo(e,0,i),d=Jo(e,be(e)-a);if(o){let c=l.lastIndexOf(" ");c!==-1&&l.length-c<4&&(l=l.slice(0,c));let u=d.indexOf(" ");u!==-1&&u<4&&(d=d.slice(u+1))}return l+r+d}function Jo(e,t,r){let n=Number.isFinite(t)?Math.max(0,Math.trunc(t)):0,o=r===void 0?void 0:Number.isFinite(r)?Math.max(n,Math.trunc(r)):n,s="",i=0,a="",l=0,d=!1;for(;l<e.length&&(o===void 0||i<o);){if(e[l]===Ok){let f=zn(e,l);if(f){if(l=f.end,f.kind!=="sgr")continue;a=f.value==="\x1B[0m"?"":a+f.value,i>=n&&(o===void 0||i<o)&&(s+=f.value);continue}}let c=Yu(e,l);if(!c){l++;continue}let u=be(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function si(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function Xu(e,t,r){if(t===void 0)return dt(e,117);if(t===null)return dt(e,110);switch(typeof t){case"boolean":return dt(dt(e,98),t?49:48);case"number":return si(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return si(dt(e,105),t.toString());case"string":return si(dt(e,115),t);case"function":return r.ignoreFunctions===!1?dt(e,102):e;case"object":{if(Array.isArray(t)){let i=dt(e,91);for(let a of t)i=Xu(i,a,r),i=dt(i,124);return dt(i,93)}let n=dt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=si(dt(n,107),i),n=dt(n,58),n=Xu(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return si(dt(e,63),String(t))}}function Ft(e,t={}){return Xu(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as QF}from"node:async_hooks";var Ir=Symbol("tuiuiu.runtime-resource-dispose"),Lk=new QF,rl=new Set,XF=1,Yo={id:0,resources:new Map};function jk(){let e={id:XF++,resources:new Map};return rl.add(e),e}function ZF(e){rl.delete(e)}function Bk(e){if(e!==null&&typeof e=="object"&&Ir in e)try{e[Ir]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function eI(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)Bk(r)}function Qo(e){ZF(e),eI(e)}function qe(e,t){return Lk.run(e,t)}function en(e,t){return(...r)=>qe(e,()=>t(...r))}function Zu(){return Lk.getStore()??null}function Ge(e){if(e)return e;let t=Zu();return t||(rl.size===1?rl.values().next().value??Yo:Yo)}function Mr(){return Yo}function Oe(e,t,r){let n=Ge(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function It(e,t){return Yo.resources.has(e)||Yo.resources.set(e,t()),Yo.resources.get(e)}function nl(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),Bk(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function ep(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function tI(e){let t=e.props,r=typeof t.width=="number"&&t.width>0&&t.width!==1/0,n=typeof t.height=="number"&&t.height>0&&t.height!==1/0;return!(!r||!n||(t.flexGrow??0)>0||t.width==="fill"||t.height==="fill")}var tp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=ep();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=ep()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&tI(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Ft({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=ep()}},rI=Symbol("tuiuiu.dirty-registry");function Lr(e){return Oe(rI,()=>new tp,e)}function $k(e){Lr().beginFrame(e)}function Nk(e,t){Lr().registerNode(e,t)}function Rn(e,t=Pe.CONTENT){Lr().markDirty(e,t)}function Gk(e){Lr().markLayoutClean(e)}function ii(e){Lr().noteReuse(e)}function Qn(e){Lr().noteFresh(e)}function ol(e){return Lr().canReuseSubtree(e)}function Wk(){return Lr().getDiagnostics()}function ai(){Lr().clearGlobalDirty()}function Xo(e){Lr().markClean(e.node);for(let r of e.children)Xo(r)}var Hk=new WeakMap;function kt(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function sl(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var Tt=e=>e==="auto"?0:kt(e,"margin"),nI=new Set(["layoutRef","__scrollQuery"]),oI=new Set(["display","position","flexDirection","flexWrap","flexGrow","flexShrink","flexBasis","flex","justifyContent","alignItems","alignSelf","alignContent","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","margin","marginX","marginY","marginTop","marginBottom","marginLeft","marginRight","gap","columnGap","rowGap","width","height","minWidth","minHeight","maxWidth","maxHeight","top","bottom","left","right","borderStyle","borderTop","borderBottom","borderLeft","borderRight","overflow","overflowX","overflowY"]),sI=new Set(["children","wrap"]);function iI(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function Zo(e){let t=e.props??{},r=e.type==="text"?sI:oI,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ft(n,{ignoreKeys:nI})}function aI(e,t){if(e.children.length!==t.length)return!1;for(let r=0;r<t.length;r++)if(e.children[r]!==t[r])return!1;return!0}function lI(e,t){if(!ol(e)){Qn("layout");return}let r=Hk.get(e);if(!r){Qn("layout");return}if(r.ctxKey!==t){Rn(e,Pe.LAYOUT),Qn("layout");return}let n=Zo(e);if(r.propsKey!==n||!aI(e,r.childRefs)){Rn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Qn("layout");return}return ii("layout"),r.layout}function li(e,t,r,n){Hk.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),Gk(e)}function ht(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function Uk(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Mt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function qk(e,t=0,r=0){let n=t+e.x,o=r+e.y;Mt(e.node,{...e,x:n,y:o});let s=e.node.props,i=kt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=kt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)qk(u,d,c)}function Kk(e,t,r=1/0){if(!Number.isFinite(t)||t<0)throw new RangeError("availableWidth must be a finite non-negative number");if(r!==1/0&&(!Number.isFinite(r)||r<0))throw new RangeError("availableHeight must be a non-negative number or Infinity");t=Math.floor(t),r!==1/0&&(r=Math.floor(r)),$k(e);let n=jr(e,{x:0,y:0,width:t,height:r},null);return qk(n),n}function dI(e,t){let r=e.props.__divider;if(r==="horizontal")return{x:t.x,y:t.y,width:t.width,height:Math.min(1,t.height),node:e,children:[]};if(r==="vertical")return{x:t.x,y:t.y,width:Math.min(1,t.width),height:e.props.__splitDivider?Math.min(1,t.height):t.height,node:e,children:[]};let n=Yn(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>be(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function cI(e,t){let r=typeof e.props.height=="number"?e.props.height:1;return{x:t.x,y:t.y,width:t.width,height:Math.min(r,t.height),node:e,children:[]}}function uI(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function jr(e,t,r){Nk(e,r);let n=iI(t),o=lI(e,n);if(o)return Mt(e,o),o;let s;if(e.type==="text")return s=dI(e,t),li(e,n,Zo(e),s),s;if(e.type==="spacer")return s=cI(e,t),li(e,n,Zo(e),s),s;if(e.type==="newline")return s=uI(e,t),li(e,n,Zo(e),s),s;let i=e.props;if(i.display==="none")return s={x:t.x,y:t.y,width:0,height:0,node:e,children:[]},Mt(e,s),li(e,n,Zo(e),s),s;let a=kt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=kt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=kt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=kt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Tt(i.marginTop??i.marginY??i.margin),p=Tt(i.marginBottom??i.marginY??i.margin),g=Tt(i.marginLeft??i.marginX??i.margin),f=Tt(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,h=di(i.width,t.width),R=di(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?h:t.width)-d-c-y*2),M=Math.max(0,($?R:t.height)-a-l-y*2),N=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:M,U=[],G=i.flexDirection??"column",F=G==="row"||G==="row-reverse",W=G==="row-reverse"||G==="column-reverse",q=kt(F?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],ae=[];if(e.children.length>0){for(let ie of e.children)ie.props.position==="absolute"?oe.push(ie):ae.push(ie);let fe=W?[...ae].reverse():ae;F?U.push(...Vk(fe,D,N,q,i,$,e)):U.push(...fI(fe,D,N,q,i,e))}let se=0,Z=0;if(F)for(let fe of U){let ie=fe.node.props,xe=Tt(ie.marginRight??ie.marginX??ie.margin),Fe=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.x+fe.width+xe),Z=Math.max(Z,fe.y+fe.height+Fe)}else for(let fe of U){let ie=fe.node.props,xe=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+xe)}let Ae=sl(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,we=T?h:Ae?t.width:Ee,J=$?R:Z+a+l+y*2,de=kt(i.minWidth,"minWidth"),_e=kt(i.minHeight,"minHeight");if(we=Math.max(we,de),J=Math.max(J,_e),i.maxWidth!==void 0&&(we=Math.min(we,kt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,kt(i.maxHeight,"maxHeight"))),F&&i.alignItems==="stretch"){let fe=Math.max(0,J-a-l-y*2);for(let ie=0;ie<U.length;ie++){let xe=U[ie],Fe=xe.node.props;Fe.height===void 0&&(U[ie]=Uk(xe,Math.max(xe.height,fe),Fe),Mt(xe.node,U[ie]))}}let Ce=t.x+g,ve=t.y+u,Re=Math.max(0,Math.min(we,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let fe of oe){let ie=fe.props,xe=jr(fe,{x:0,y:0,width:D,height:N},e),Fe=Ce+d+y,at=ve+a+y;ie.left!==void 0?Fe=Ce+d+y+ie.left:ie.right!==void 0&&(Fe=Ce+Re-c-y-xe.width-ie.right),ie.top!==void 0?at=ve+a+y+ie.top:ie.bottom!==void 0&&(at=ve+Se-l-y-xe.height-ie.bottom);let Nt=ht(xe,{x:Fe,y:at});Mt(fe,Nt),U.push(Nt)}return s={x:Ce,y:ve,width:Re,height:Se,node:e,children:U},Mt(e,s),li(e,n,Zo(e),s),s}function Vk(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return pI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let G of e){let F=G.props,W=F.flexGrow;W===void 0?W=F.width==="fill"||G.type==="spacer"?1:0:W=sl(W,"flexGrow");let q=kt(F.minWidth,"minWidth"),oe=F.flexBasis==="content"?jr(G,{x:0,y:0,width:t,height:r},i).width:F.flexBasis===void 0||F.flexBasis==="auto"?q:di(F.flexBasis,t),ae=F.flexShrink===void 0?1:sl(F.flexShrink,"flexShrink"),se=Tt(F.marginLeft??F.marginX??F.margin),Z=Tt(F.marginRight??F.marginX??F.margin);if(W>0)c+=W,d+=oe+se+Z,u.push({node:G,flex:W,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:Z});else{let Ae=F.width!==void 0&&F.width!=="auto"&&F.width!=="fill"?di(F.width,t)+se+Z:t,Ee=jr(G,{x:0,y:0,width:Ae,height:r},i);d+=Ee.width+se+Z,u.push({node:G,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:Z,layout:Ee,measuredCtxWidth:Ae})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let G=u.map(()=>0),F=Math.ceil(p);for(;F>0;){let W=u.map((Z,pe)=>{let Ae=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,Ae-G[pe]);return{index:pe,capacity:Ee,maxReduction:Ae,weight:Z.shrink*Z.basis}}).filter(Z=>Z.capacity>0&&Z.weight>0),q=W.reduce((Z,pe)=>Z+pe.weight,0);if(q<=0)break;let oe=W.map(Z=>{let pe=F*Z.weight/q,Ae=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Ae,fraction:pe-Math.floor(pe)}}),ae=0;for(let Z of oe)Z.whole>0&&(G[Z.index]+=Z.whole,ae+=Z.whole);if(F-=ae,F<=0)break;oe.sort((Z,pe)=>pe.fraction-Z.fraction||pe.weight-Z.weight||pe.capacity-Z.capacity);let se=!1;for(let Z of oe){if(F<=0)break;G[Z.index]<Z.maxReduction&&(G[Z.index]+=1,F-=1,se=!0)}if(!se)break}if(G.some(W=>W>0)){for(let W=0;W<u.length;W++){let q=u[W];q.targetWidth=Math.max(q.minWidth,q.basis-G[W])}d=u.reduce((W,q)=>W+(q.targetWidth??q.basis)+q.marginLeft+q.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,y=0,h=o.justifyContent??"flex-start",R=d+(c>0?g:0),T=t-R,$=0,D=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?$=T/(u.length-1):h==="space-around"?(D=T/(u.length*2),y=D):h==="space-evenly"?($=T/(u.length+1),y=$):h==="flex-end"?y=T:h==="center"&&(y=T/2));let M=0,N=[];for(let G=0;G<u.length;G++){let F=u[G],q=(F.targetWidth??(F.flex>0?F.basis+Math.floor(f*F.flex):F.basis))+F.marginLeft+F.marginRight,oe=F.layout&&F.measuredCtxWidth===q?ht(F.layout,{x:F.layout.x+y}):jr(F.node,{x:y,y:0,width:q,height:r},i),ae=F.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),y+=F.marginLeft+oe.width+F.marginRight,h==="space-between"&&G<u.length-1?y+=$:h==="space-around"?y+=D*2:h==="space-evenly"?y+=$:y+=n}let U=s?r:M;for(let G of N){let{style:F}=G,{layout:W}=G,q=F.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(F.height===void 0&&(se=Math.max(W.height,U)),ae=0):oe==="center"?ae=Math.floor((U-W.height)/2):oe==="flex-end"?ae=U-W.height:oe==="baseline"&&(ae=0),W=Uk(W,se,F),W=ht(W,{y:ae}),Mt(W.node,W),a.push(W)}return a}function pI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=Tt(M.marginLeft??M.marginX??M.margin),U=Tt(M.marginRight??M.marginX??M.margin),G=jr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:di(M.flexBasis,t))+N+U,q=c+(d.length>0?n:0)+W;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=kt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let M=Vk(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((U,G)=>Math.max(U,G.y+G.height),0);return{layouts:M,height:N}}),g=p.reduce((D,M)=>D+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",h=0,R=0;y==="flex-end"?h=f:y==="center"?h=Math.floor(f/2):y==="space-between"&&p.length>1?R=f/(p.length-1):y==="space-around"&&p.length>0?(R=f/p.length,h=Math.floor(R/2)):y==="stretch"&&p.length>0&&(R=f/p.length);let T=[],$=h;for(let D of p){for(let M of D.layouts){let N=ht(M,{y:M.y+Math.floor($)});Mt(N.node,N),T.push(N)}$+=D.height+u+R}return T}function fI(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,y=[];for(let h of e){let R=h.props,T=Tt(R.marginTop??R.marginY??R.margin),$=Tt(R.marginBottom??R.marginY??R.margin),D=R.flexGrow;D===void 0?D=R.height==="fill"||h.type==="spacer"?1:0:D=sl(D,"flexGrow");let M=kt(R.minHeight,"minHeight"),N=R.maxHeight===void 0?void 0:kt(R.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,y.push({node:h,flex:D,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$});else{let U=jr(h,{x:0,y:0,width:t,height:r},s);g+=U.height+T+$,y.push({node:h,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$,layout:U})}}if(g+=n*Math.max(0,e.length-1),f>0){let R=Math.max(0,r-g)/f,T=0;for(let $=0;$<y.length;$++){let D=y[$],N=D.node.props.alignSelf,U=N!=="auto"&&N?N:o.alignItems??"flex-start",G=D.layout;if(D.flex>0){let q=Math.floor(R*D.flex);q=Math.max(D.minHeight,q),D.maxHeight!==void 0&&(q=Math.min(D.maxHeight,q)),G=jr(D.node,{x:0,y:T,width:t,height:q},s),G=ht(G,{height:q})}G||(G=jr(D.node,{x:0,y:T,width:t,height:r},s));let F=G.x,W=G.width;U==="center"?F=Math.floor((t-G.width)/2):U==="flex-end"?F=t-G.width:U==="stretch"&&(W=t),G=ht(G,{x:F,y:T,width:W}),Mt(G.node,G),i.push(G),T+=D.marginTop+G.height+D.marginBottom,$<y.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],y=f.props,h=Tt(y.marginTop??y.marginY??y.margin),R=Tt(y.marginBottom??y.marginY??y.margin),T=jr(f,{x:0,y:l,width:t,height:r-l},s),$=y.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",M=T.x,N=T.width;D==="center"?M=Math.floor((t-T.width)/2):D==="flex-end"?M=t-T.width:D==="stretch"&&(N=t);let U=ht(T,{x:M,width:N});Mt(U.node,U),i.push(U),l+=h+T.height+R,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*y)}),Mt(i[y].node,i[y]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),Mt(i[y].node,i[y]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(y+1))}),Mt(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),Mt(i[f].node,i[f])}return i}function di(e,t){if(e===void 0||e==="auto")return 0;if(e==="fill")return t;if(typeof e=="number"){if(!Number.isFinite(e)||e<0)throw new RangeError("Layout size must be a finite non-negative number");return Math.floor(e)}if(e.endsWith("%")){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0)throw new RangeError("Layout percentage must be finite and non-negative");return t===1/0?0:Math.floor(n/100*t)}let r=Number(e);if(!Number.isFinite(r)||r<0)throw new RangeError(`Invalid layout size: ${e}`);return Math.floor(r)}var zk={background:0,normal:1,modal:2,critical:3};var Jk=new Set;function Qk(e,t){process.env.NODE_ENV==="production"||Jk.has(e)||(Jk.add(e),console.warn(`[tuiuiu] ${t}`))}var gI=Symbol("tuiuiu.hook-runtime-state"),rp=new WeakMap;function hI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function Je(e){return Oe(gI,hI,e)}function np(e){return rp.get(e)??null}function Xk(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function Zk(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Qk("hook-count-changed",`Hook count changed between renders (${e.lastMaxHookIndex} \u2192 ${t}). A component with internal hooks (Select, Tabs, Menu, ChatList, ScrollList, etc.) was conditionally added or removed from the render tree. FIX: Keep hook-bearing components always rendered \u2014 use height: 0, isActive: false, or display: "none" to hide them instead of removing them with ternaries or When().`),t<e.lastMaxHookIndex)for(let r=t;r<e.lastMaxHookIndex;r++){rw(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(ci(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function ew(){return Je().isRendering}function tw(){return Je().renderPhaseMode}function ur(e){let t=Je();t.isRendering||Qk("hook-outside-render","A hook (useState, useMemo, useComputed, etc.) was called outside a component render. Hooks must be called inside a component function, not at module scope or in event handlers. Move the hook call inside your component function.");let r=t.hookIndex++;return r>=t.hookState.state.length?(t.hookState.state.push(e),{value:e,isNew:!0}):{value:t.hookState.state[r],isNew:!1}}function pr(e,t){Je().hookState.state[e]=t}function Br(e){return Je().hookState.state[e]}function Xt(){return Je().hookIndex-1}function Xn(e,t=Xt()){let r=Je(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function rw(e,t){let r=t.hookCleanups.get(e);if(r){t.hookCleanups.delete(e);for(let n of[...r].reverse())try{n()}catch(o){console.error("[tuiuiu] Error during hook cleanup:",o)}}}function il(e){let t=Ge(e),r=Je(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))rw(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function tn(e){return Je(e).appContext}function op(e,t){let r=Ge(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&rp.delete(o),e&&rp.set(e,r)}function al(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:zk[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function ci(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function nw(e,t,r){let o=[...Je().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function ow(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function sp(e,t){Je(t).focusManager=e}function sw(e){let t=Je(),r=bI(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function iw(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var mI=300,Yk=2;function bI(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<mI&&Math.abs(t.x-n.x)<=Yk&&Math.abs(t.y-n.y)<=Yk?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function aw(e,t){let r=[...Je().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function lw(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var ui=[],dl=!1,ip=!1,ll=0,pi=null,fi=null;function dw(){if(!ip){ip=!0;for(let e=ui.length-1;e>=0;e--)try{ui[e]()}catch{}ip=!1}}function rn(e){return ui.push(e),()=>{let t=ui.indexOf(e);t!==-1&&ui.splice(t,1)}}function cw(){ll++,dl||(dl=!0,pi=()=>{dw()},fi=()=>{dw()},process.on("exit",pi),process.on("uncaughtExceptionMonitor",fi));let e=!1;return()=>{e||(e=!0,ll=Math.max(0,ll-1),ll===0&&yI())}}function yI(){dl&&(pi&&process.off("exit",pi),fi&&process.off("uncaughtExceptionMonitor",fi),pi=null,fi=null,dl=!1)}var uw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,pw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,fw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,gw=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function cl(e,t,r,n){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||e<0||t<1||r<1)return null;let o=e&3,s=(e&32)!==0,i=(e&64)!==0,a,l;return i?(a=e&1?"scroll-down":"scroll-up",l="click"):(o===0?a="left":o===1?a="middle":o===2?a="right":a="none",s&&o===3?l="move":n||o===3?l="release":s?l="drag":l="click"),{x:t-1,y:r-1,button:a,action:l,modifiers:{shift:(e&4)!==0,alt:(e&8)!==0,ctrl:(e&16)!==0}}}function hw(e){let t=uw.exec(e);if(t){let s=fr(t[1]),i=fr(t[2]),a=fr(t[3]),l=fr(t[4]),d=fr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=cl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=pw.exec(e);if(r){let s=fr(r[1]),i=fr(r[2]),a=fr(r[3]);if(s===null||i===null||a===null)return null;let l=cl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=fw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=cl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=gw.exec(e);if(o){let s=fr(o[1]),i=fr(o[2]),a=fr(o[3]);if(s===null||i===null||a===null)return null;let l=cl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function mw(e){return uw.test(e)||pw.test(e)||fw.test(e)||gw.test(e)}var kI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",bw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",wI=Symbol("tuiuiu.mouse-runtime-state");function gi(e){return Oe(wI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function ap(e){return tn(e)?.stdout??process.stdout}function lp(e){return"isTTY"in e&&!!e.isTTY}function hi(e){return hw(e)}function dp(e){return mw(e)}function es(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,RI(t);let n=ap(t);r.outputStream=n,lp(n)&&n.write(kI)}}function Zn(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??ap(t);lp(n)&&n.write(bw),r.outputStream=null}}function ul(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??ap(t);lp(n)&&n.write(bw),r.outputStream=null}}function RI(e){let t=gi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=rn(en(e,()=>ul(e))))}function yw(e){let t=gi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as EI}from"node:zlib";var We={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},_I={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...We,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:We}};function xI(e=process.env){let t=e.TERM_PROGRAM||"",r=e.TERM||"";return e.KITTY_WINDOW_ID?"kitty":e.ALACRITTY_WINDOW_ID||e.ALACRITTY_LOG?"alacritty":e.GHOSTTY_RESOURCES_DIR?"ghostty":e.WEZTERM_PANE||t==="WezTerm"?"wezterm":t==="rio"?"rio":e.WARP_IS_LOCAL_SHELL_SESSION?"warp":r.startsWith("foot")||r==="foot"?"foot":e.CONTOUR_TERMINAL_ID?"contour":e.VSCODE_PID||t==="vscode"?"vscode":t==="iTerm.app"?"iterm2":t==="Apple_Terminal"?"terminal-app":e.WT_SESSION?"windows-terminal":e.KONSOLE_VERSION?"konsole":e.VTE_VERSION?e.TILIX_ID?"tilix":"gnome-terminal":t==="Hyper"?"hyper":e.TERMINOLOGY?"terminology":t==="mlterm"?"mlterm":t==="blackbox"||e.BLACKBOX_THEMES_DIR?"black-box":t==="Bobcat"?"bobcat":r.includes("rxvt-unicode")||r.includes("rxvt")?"rxvt-unicode":r.includes("mlterm")?"mlterm":r==="st-256color"||r==="st"?"st":"unknown"}function kw(e=process.env){return e.TMUX?{type:"tmux",version:e.TMUX?.split(",")[1],needsPassthrough:!0}:e.STY?{type:"screen",version:void 0,needsPassthrough:!0}:e.ZELLIJ?{type:"zellij",version:(e.ZELLIJ_SESSION_NAME,void 0),needsPassthrough:!1}:null}function pl(e=process.env){let t=xI(e),r=_I[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var vw=Symbol("tuiuiu.graphics-runtime-state");function Sw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:It(vw,()=>Sw(Mr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function fp(){let e=Ge();return Oe(vw,()=>Sw(e),e)}var ww={width:10,height:20};function fl(e){return{width:Math.max(1,Math.round(e?.width??ww.width)),height:Math.max(1,Math.round(e?.height??ww.height))}}function vI(){let e=process.env,t=e.TERM?.toLowerCase()||"",r=e.COLORTERM?.toLowerCase()||"",n=e.TERM_PROGRAM?.toLowerCase()||"";return e.FORCE_COLOR==="0"?!1:e.FORCE_COLOR==="2"||e.FORCE_COLOR==="3"?!0:r==="truecolor"||r==="24bit"||t.includes("256color")||t.includes("direct")||n==="iterm.app"||n==="wezterm"||n==="hyper"||!!e.WT_SESSION}function Tw(){return vI()?"halfblock":"braille"}function ts(e){return e==="none"?Tw():e}function Pw(e){let t=ts(e);return t==="halfblock"||t==="braille"}function Aw(e){let t=ts(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function Rw(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function Cw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&AI(e)?e:null}function Dw(){let e=process.env.TERM_PROGRAM?.toLowerCase()||"",t=process.env.KITTY_WINDOW_ID,r=process.env.ITERM_SESSION_ID;return t||e==="kitty"?"kitty":r||e==="iterm.app"?"iterm2":null}function Ow(){return pl(process.env).knownCaps.preferredGraphics||null}function Fw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function SI(){let e=Cw();if(e)return e;let t=Dw();if(t)return t;let r=Ow();return r||Fw()}function TI(e){return Cw()===e||Dw()===e?"env":Ow()===e?"profile":Fw()===e?"env":"fallback"}function rs(){let e=fp();if(e.manualOverride)return Rw(e.manualOverride,"manual",fl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=PI();return Rw(t,TI(t),fl())}function PI(){let e=fp();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=SI()??Tw()),e.detectedProtocol)}function AI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function Iw(){let e=fp();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:fl(void 0)};let r=e.negotiatedCapabilities.cellSize;if(t.width!==r.width||t.height!==r.height)for(let n of[...e.cellSizeChangeListeners])n(r)}}function CI(e){let t=2166136261;t^=e.width,t=Math.imul(t,16777619),t^=e.height,t=Math.imul(t,16777619);for(let r=0;r<e.pixels.length;r++)t^=e.pixels[r],t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function Mw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function bi(e){return Mw(e)?e:hl(e)}function _w(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function hl(e,t={}){let r=fl(t.cellSize??rs().cellSize);return{pixels:e.pixels,width:e.width,height:e.height,cellSize:r,desiredColumns:Math.max(1,Math.ceil(e.width/r.width)),desiredRows:Math.max(1,Math.ceil(e.height/r.height)),hash:CI(e)}}function yi(e,t={}){let r=Mw(e)?e:hl(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=_w(r.desiredRows,r.desiredColumns,l),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(s!==void 0&&o===void 0)d=s,l=_w(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),y=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=y*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var ns={transmit(e,t={}){let r=bi(e),n=yi(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=LI(r),l=Lw(a),d=4096,c=[];for(let u=0;u<l.length;u+=d){let p=l.slice(u,u+d),f=u+d>=l.length?0:1;u===0?c.push(`\x1B_Ga=T,f=100,c=${o},r=${s}${i},m=${f};${p}\x1B\\`):c.push(`\x1B_Gm=${f};${p}\x1B\\`)}return c.join("")},display(e,t,r){return`\x1B_Ga=p,i=${e},p=1,X=${t},Y=${r}\x1B\\`},delete(e){return e!==void 0?`\x1B_Ga=d,d=i,i=${e}\x1B\\`:"\x1B_Ga=d,d=A\x1B\\"},clear(){return"\x1B_Ga=d,d=A\x1B\\"}},DI={display(e,t={}){let{pixels:r}=bi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Lw(r);return`\x1B]1337;File=inline=1;${n};${o}:${s}\x07`},displayFile(e,t={}){let r=t.width?`width=${t.width}`:"width=auto",n=t.height?`height=${t.height}`:"height=auto",o=Buffer.from(e).toString("base64");return`\x1B]1337;File=inline=1;${r};${n}:${o}\x07`}},OI={encode(e,t={}){let r=bi(e),n=yi(r,t),o=t.width!==void 0||t.height!==void 0?jw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=jI(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),y=Math.round(p/255*100),h=Math.round(g/255*100);d+=`#${c};2;${f};${y};${h}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let y=0;for(let h=0;h<6;h++){let R=c+h;if(R>=i)continue;let T=(R*s+f)*4,$=a[T],D=a[T+1],M=a[T+2];BI([$,D,M],l)===u&&(y|=1<<h,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function xw(e,t,r){if(t<0||t>=e.width||r<0||r>=e.height)return{r:0,g:0,b:0,a:0};let n=(r*e.width+t)*4;return{r:e.pixels[n]??0,g:e.pixels[n+1]??0,b:e.pixels[n+2]??0,a:e.pixels[n+3]??0}}function cp(e,t){let r=[];return e&&e.a>0&&r.push(`38;2;${e.r};${e.g};${e.b}`),t&&t.a>0&&r.push(`48;2;${t.r};${t.g};${t.b}`),r.length>0?`\x1B[${r.join(";")}m`:void 0}var Ew={render(e,t={}){let r=bi(e),n=yi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=jw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=xw(i,u,l),g=xw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=cp(p,g)):p.a>0?(f="\u2580",y=cp(p)):g.a>0&&(f="\u2584",y=cp(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
119
+ `)}},mi=10240,FI={render(e,t={}){let{width:r,height:n,pixels:o}=bi(e),s=t.threshold??128,i=t.dither??!1,a=Math.ceil(r/2),l=Math.ceil(n/4),d=new Float32Array(r*n);for(let u=0;u<r*n;u++){let p=o[u*4],g=o[u*4+1],f=o[u*4+2];d[u]=.299*p+.587*g+.114*f}i&&$I(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,y=[[0,0,0],[0,1,1],[0,2,2],[1,0,3],[1,1,4],[1,2,5],[0,3,6],[1,3,7]];for(let[h,R,T]of y){let $=g*2+h,D=u*4+R;if($<r&&D<n){let M=D*r+$;d[M]<s&&(f|=1<<T)}}p+=String.fromCharCode(mi+f)}c.push(p)}return c.join(`
120
120
  `)},invert(e){let t="";for(let r of e){if(r===`
121
- `){t+=r;continue}let n=r.charCodeAt(0);if(n>=bi&&n<bi+256){let o=bi+(255-(n-bi));t+=String.fromCharCode(o)}else t+=r}return t}};function ml(e,t,r={}){switch(rs(e)){case"kitty":return os.transmit(t,r);case"iterm2":return DI.display(t,r);case"sixel":return OI.encode(t,r);case"halfblock":return kw.render(t,r);case"braille":return FI.render(t,r);default:return kw.render(t,r)}}function bl(e){switch(rs(e)){case"kitty":return os.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var dp=null;function II(){if(dp)return dp;let e=new Uint32Array(256);for(let t=0;t<256;t++){let r=t;for(let n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r>>>0}return dp=e,e}function MI(e){let t=II(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function gl(e,t,r){e[r]=t>>>24&255,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function cp(e,t){let r=new Uint8Array(8+t.length+4);gl(r,t.length,0),r[4]=e.charCodeAt(0),r[5]=e.charCodeAt(1),r[6]=e.charCodeAt(2),r[7]=e.charCodeAt(3),r.set(t,8);let n=r.subarray(4,8+t.length);return gl(r,MI(n),8+t.length),r}function LI(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);gl(s,t,0),gl(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=cp("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let y=f*a,h=f*(1+a);l[h]=1;for(let R=0;R<a;R++){let T=n[y+R],$=R>=4?n[y+R-4]:0;l[h+1+R]=T-$&255}}let d=EI(Buffer.from(l)),c=cp("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=cp("IEND",new Uint8Array(0)),p=new Uint8Array(o.length+i.length+c.length+u.length),g=0;return p.set(o,g),g+=o.length,p.set(i,g),g+=i.length,p.set(c,g),g+=c.length,p.set(u,g),p}function Dw(e){return Buffer.from(e).toString("base64")}function jI(e,t){let r=new Map;for(let o=0;o<e.length;o+=4){let s=`${e[o]},${e[o+1]},${e[o+2]}`;r.set(s,(r.get(s)||0)+1)}return Array.from(r.entries()).sort((o,s)=>s[1]-o[1]).slice(0,t).map(([o])=>{let[s,i,a]=o.split(",").map(Number);return[s,i,a]})}function BI(e,t){let r=0,n=1/0;for(let o=0;o<t.length;o++){let[s,i,a]=t[o],l=e[0]-s,d=e[1]-i,c=e[2]-a,u=l*l+d*d+c*c;u<n&&(n=u,r=o)}return r}function $I(e,t,r){for(let n=0;n<r;n++)for(let o=0;o<t;o++){let s=n*t+o,i=e[s],a=i<128?0:255;e[s]=a;let l=i-a;o+1<t&&(e[s+1]+=l*7/16),n+1<r&&(o>0&&(e[s+t-1]+=l*3/16),e[s+t]+=l*5/16,o+1<t&&(e[s+t+1]+=l*1/16))}}function Ow(e,t,r){let{width:n,height:o,pixels:s}=e,i=new Uint8Array(t*r*4);for(let a=0;a<r;a++)for(let l=0;l<t;l++){let d=Math.floor(l/t*n),u=(Math.floor(a/r*o)*n+d)*4,p=(a*t+l)*4;i[p]=s[u],i[p+1]=s[u+1],i[p+2]=s[u+2],i[p+3]=s[u+3]}return{pixels:i,width:t,height:r}}function fp(e){let t=e.props;return!!(t.onClick||t.onDoubleClick||t.onMouseDown||t.onMouseUp||t.onMouseMove||t.onMouseEnter||t.onMouseLeave||t.onContextMenu||t.onScroll)}function yl(e,t,r=0,n=0,o=null,s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=r+a,g=n+l,f=s?Math.max(p,s.x):p,y=s?Math.max(g,s.y):g,h=s?Math.min(p+d,s.x+s.width):p+d,R=s?Math.min(g+c,s.y+s.height):g+c;h>f&&R>y&&t(i,f,y,h-f,R-y,o);let T=i.props,$=T.paddingTop??T.paddingY??T.padding??0,D=T.paddingLeft??T.paddingX??T.padding??0,M=T.borderStyle&&T.borderStyle!=="none"?1:0,N=p+D+M,U=typeof T.__scrollOffsetY=="number"&&Number.isFinite(T.__scrollOffsetY)?Math.max(0,Math.floor(T.__scrollOffsetY)):0,G=g+$+M-U,F=T.overflow==="hidden"||T.overflowX==="hidden",W=T.overflow==="hidden"||T.overflowY==="hidden",q={x:F?p:s?.x??Number.MIN_SAFE_INTEGER,y:W?g:s?.y??Number.MIN_SAFE_INTEGER,width:F?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:W?c:s?.height??Number.MAX_SAFE_INTEGER*2},oe=F||W?NI(s,q):s;for(let ae of u)yl(ae,t,N,G,i,oe)}function NI(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function Fw(e){let t=[],r=0;return yl(e,(n,o,s,i,a)=>{fp(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var pp=class{elements=[];boundsByNode=new Map;parentMap=new Map;zCounter=0;hoveredElement=null;lastClickTime=0;lastClickPos={x:-1,y:-1};lastClickButton="none";mouseTrackingEnabled=!1;inputHandler=null;clear(){this.elements=[],this.boundsByNode.clear(),this.parentMap.clear(),this.zCounter=0}register(t,r,n,o,s,i){if(this.parentMap.set(t,i),fp(t)){let a={node:t,x:r,y:n,width:o,height:s,zIndex:this.zCounter++};this.elements.push(a),this.boundsByNode.set(t,a)}}registerFromLayout(t,r=0,n=0,o=null){yl(t,(s,i,a,l,d,c)=>{this.register(s,i,a,l,d,c)},r,n,o)}hitTest(t,r){for(let n=this.elements.length-1;n>=0;n--){let o=this.elements[n];if(t>=o.x&&t<o.x+o.width&&r>=o.y&&r<o.y+o.height)return{node:o.node,relativeX:t-o.x,relativeY:r-o.y,absoluteX:t,absoluteY:r}}return null}pixelHitTest(t,r,n){let o=Math.floor(t/n.width),s=Math.floor(r/n.height),i=this.hitTest(o,s);if(!i)return null;let a=this.elements.find(l=>l.node===i.node);return a&&(i.pixelRelativeX=t-a.x*n.width,i.pixelRelativeY=r-a.y*n.height),i}handleMouseEvent(t){let r;if(t.pixelX!=null&&t.pixelY!=null){let d=ns().cellSize;r=this.pixelHitTest(t.pixelX,t.pixelY,d)}else r=this.hitTest(t.x,t.y);let n=Date.now(),o=!1,s=d=>{let c=d?this.boundsByNode.get(d):void 0,u=c?t.x-c.x:r?.relativeX??0,p=c?t.y-c.y:r?.relativeY??0,g={x:u,y:p,absoluteX:t.x,absoluteY:t.y,button:t.button,modifiers:t.modifiers,target:d,stopPropagation:()=>{o=!0}};if(t.pixelX!=null&&t.pixelY!=null&&c){let f=ns().cellSize;g.pixelRelativeX=t.pixelX-c.x*f.width,g.pixelRelativeY=t.pixelY-c.y*f.height}else r?.pixelRelativeX!=null&&(g.pixelRelativeX=r.pixelRelativeX),r?.pixelRelativeY!=null&&(g.pixelRelativeY=r.pixelRelativeY);return g},i=r?.node??null;if(i!==this.hoveredElement){if(this.hoveredElement?.props.onMouseLeave){let d=s(this.hoveredElement);this.hoveredElement.props.onMouseLeave(d)}if(i?.props.onMouseEnter){let d=s(i);i.props.onMouseEnter(d)}this.hoveredElement=i}if(!r)return;let a=s(r.node),l=r.node.props;switch(t.action){case"click":let d=n-this.lastClickTime<300&&Math.abs(t.x-this.lastClickPos.x)<=2&&Math.abs(t.y-this.lastClickPos.y)<=2&&t.button===this.lastClickButton;d&&l.onDoubleClick?l.onDoubleClick(a):t.button==="left"&&l.onClick?l.onClick(a):t.button==="right"&&l.onContextMenu?l.onContextMenu(a):(t.button==="scroll-up"||t.button==="scroll-down")&&l.onScroll&&l.onScroll(a),d?this.lastClickTime=0:(this.lastClickTime=n,this.lastClickPos={x:t.x,y:t.y},this.lastClickButton=t.button),l.onMouseDown&&l.onMouseDown(a);break;case"release":l.onMouseUp&&l.onMouseUp(a);break;case"drag":case"move":l.onMouseMove&&l.onMouseMove(a);break;case"double-click":l.onDoubleClick&&l.onDoubleClick(a);break}o||this.bubbleEvent(r.node,t,a)}bubbleEvent(t,r,n){let o=!1,s=this.parentMap.get(t)??null;for(;s&&!o;){let i=this.boundsByNode.get(s);if(i){let a=i.node.props,l={x:n.absoluteX-i.x,y:n.absoluteY-i.y,absoluteX:n.absoluteX,absoluteY:n.absoluteY,button:n.button,modifiers:n.modifiers,target:i.node,stopPropagation:()=>{o=!0}};r.action==="click"&&r.button==="left"&&a.onClick&&a.onClick(l)}s=this.parentMap.get(s)??null}}enable(t){this.mouseTrackingEnabled||(this.mouseTrackingEnabled=!0,ts(),this.inputHandler=r=>{let n=mi(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,to(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},GI=Symbol("tuiuiu.hit-test-registry");function ss(e){return Oe(GI,()=>new pp,e)}function gp(e,t=0){let r=ss();if(r.clear(),t===0){r.registerFromLayout(e);return}yl(e,(n,o,s,i,a,l)=>{fp(n)&&r.register(n,o,s+t,i,a,l)})}import Zt from"node:path";import{fileURLToPath as jw}from"node:url";var WI=[{code:"signals-inside-component-render",title:"Signals Inside Component Render",anchor:"signals-inside-component-render",summary:"Do not call createSignal() inside a component render. It recreates state every rerender.",whyItBreaks:["Signals created inside the component are replaced every time render runs again.","Input handlers and effects often keep references to the old signal instance.","The UI reads a fresh signal while callbacks mutate an older one, so state appears stuck or resets."],wrongExample:`function App() {
121
+ `){t+=r;continue}let n=r.charCodeAt(0);if(n>=mi&&n<mi+256){let o=mi+(255-(n-mi));t+=String.fromCharCode(o)}else t+=r}return t}};function ml(e,t,r={}){switch(ts(e)){case"kitty":return ns.transmit(t,r);case"iterm2":return DI.display(t,r);case"sixel":return OI.encode(t,r);case"halfblock":return Ew.render(t,r);case"braille":return FI.render(t,r);default:return Ew.render(t,r)}}function bl(e){switch(ts(e)){case"kitty":return ns.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var up=null;function II(){if(up)return up;let e=new Uint32Array(256);for(let t=0;t<256;t++){let r=t;for(let n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r>>>0}return up=e,e}function MI(e){let t=II(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function gl(e,t,r){e[r]=t>>>24&255,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function pp(e,t){let r=new Uint8Array(8+t.length+4);gl(r,t.length,0),r[4]=e.charCodeAt(0),r[5]=e.charCodeAt(1),r[6]=e.charCodeAt(2),r[7]=e.charCodeAt(3),r.set(t,8);let n=r.subarray(4,8+t.length);return gl(r,MI(n),8+t.length),r}function LI(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);gl(s,t,0),gl(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=pp("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let y=f*a,h=f*(1+a);l[h]=1;for(let R=0;R<a;R++){let T=n[y+R],$=R>=4?n[y+R-4]:0;l[h+1+R]=T-$&255}}let d=EI(Buffer.from(l)),c=pp("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=pp("IEND",new Uint8Array(0)),p=new Uint8Array(o.length+i.length+c.length+u.length),g=0;return p.set(o,g),g+=o.length,p.set(i,g),g+=i.length,p.set(c,g),g+=c.length,p.set(u,g),p}function Lw(e){return Buffer.from(e).toString("base64")}function jI(e,t){let r=new Map;for(let o=0;o<e.length;o+=4){let s=`${e[o]},${e[o+1]},${e[o+2]}`;r.set(s,(r.get(s)||0)+1)}return Array.from(r.entries()).sort((o,s)=>s[1]-o[1]).slice(0,t).map(([o])=>{let[s,i,a]=o.split(",").map(Number);return[s,i,a]})}function BI(e,t){let r=0,n=1/0;for(let o=0;o<t.length;o++){let[s,i,a]=t[o],l=e[0]-s,d=e[1]-i,c=e[2]-a,u=l*l+d*d+c*c;u<n&&(n=u,r=o)}return r}function $I(e,t,r){for(let n=0;n<r;n++)for(let o=0;o<t;o++){let s=n*t+o,i=e[s],a=i<128?0:255;e[s]=a;let l=i-a;o+1<t&&(e[s+1]+=l*7/16),n+1<r&&(o>0&&(e[s+t-1]+=l*3/16),e[s+t]+=l*5/16,o+1<t&&(e[s+t+1]+=l*1/16))}}function jw(e,t,r){let{width:n,height:o,pixels:s}=e,i=new Uint8Array(t*r*4);for(let a=0;a<r;a++)for(let l=0;l<t;l++){let d=Math.floor(l/t*n),u=(Math.floor(a/r*o)*n+d)*4,p=(a*t+l)*4;i[p]=s[u],i[p+1]=s[u+1],i[p+2]=s[u+2],i[p+3]=s[u+3]}return{pixels:i,width:t,height:r}}function hp(e){let t=e.props;return!!(t.onClick||t.onDoubleClick||t.onMouseDown||t.onMouseUp||t.onMouseMove||t.onMouseEnter||t.onMouseLeave||t.onContextMenu||t.onScroll)}function yl(e,t,r=0,n=0,o=null,s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=r+a,g=n+l,f=s?Math.max(p,s.x):p,y=s?Math.max(g,s.y):g,h=s?Math.min(p+d,s.x+s.width):p+d,R=s?Math.min(g+c,s.y+s.height):g+c;h>f&&R>y&&t(i,f,y,h-f,R-y,o);let T=i.props,$=T.paddingTop??T.paddingY??T.padding??0,D=T.paddingLeft??T.paddingX??T.padding??0,M=T.borderStyle&&T.borderStyle!=="none"?1:0,N=p+D+M,U=typeof T.__scrollOffsetY=="number"&&Number.isFinite(T.__scrollOffsetY)?Math.max(0,Math.floor(T.__scrollOffsetY)):0,G=g+$+M-U,F=T.overflow==="hidden"||T.overflowX==="hidden",W=T.overflow==="hidden"||T.overflowY==="hidden",q={x:F?p:s?.x??Number.MIN_SAFE_INTEGER,y:W?g:s?.y??Number.MIN_SAFE_INTEGER,width:F?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:W?c:s?.height??Number.MAX_SAFE_INTEGER*2},oe=F||W?NI(s,q):s;for(let ae of u)yl(ae,t,N,G,i,oe)}function NI(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function Bw(e){let t=[],r=0;return yl(e,(n,o,s,i,a)=>{hp(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var gp=class{elements=[];boundsByNode=new Map;parentMap=new Map;zCounter=0;hoveredElement=null;lastClickTime=0;lastClickPos={x:-1,y:-1};lastClickButton="none";mouseTrackingEnabled=!1;inputHandler=null;clear(){this.elements=[],this.boundsByNode.clear(),this.parentMap.clear(),this.zCounter=0}register(t,r,n,o,s,i){if(this.parentMap.set(t,i),hp(t)){let a={node:t,x:r,y:n,width:o,height:s,zIndex:this.zCounter++};this.elements.push(a),this.boundsByNode.set(t,a)}}registerFromLayout(t,r=0,n=0,o=null){yl(t,(s,i,a,l,d,c)=>{this.register(s,i,a,l,d,c)},r,n,o)}hitTest(t,r){for(let n=this.elements.length-1;n>=0;n--){let o=this.elements[n];if(t>=o.x&&t<o.x+o.width&&r>=o.y&&r<o.y+o.height)return{node:o.node,relativeX:t-o.x,relativeY:r-o.y,absoluteX:t,absoluteY:r}}return null}pixelHitTest(t,r,n){let o=Math.floor(t/n.width),s=Math.floor(r/n.height),i=this.hitTest(o,s);if(!i)return null;let a=this.elements.find(l=>l.node===i.node);return a&&(i.pixelRelativeX=t-a.x*n.width,i.pixelRelativeY=r-a.y*n.height),i}handleMouseEvent(t){let r;if(t.pixelX!=null&&t.pixelY!=null){let d=rs().cellSize;r=this.pixelHitTest(t.pixelX,t.pixelY,d)}else r=this.hitTest(t.x,t.y);let n=Date.now(),o=!1,s=d=>{let c=d?this.boundsByNode.get(d):void 0,u=c?t.x-c.x:r?.relativeX??0,p=c?t.y-c.y:r?.relativeY??0,g={x:u,y:p,absoluteX:t.x,absoluteY:t.y,button:t.button,modifiers:t.modifiers,target:d,stopPropagation:()=>{o=!0}};if(t.pixelX!=null&&t.pixelY!=null&&c){let f=rs().cellSize;g.pixelRelativeX=t.pixelX-c.x*f.width,g.pixelRelativeY=t.pixelY-c.y*f.height}else r?.pixelRelativeX!=null&&(g.pixelRelativeX=r.pixelRelativeX),r?.pixelRelativeY!=null&&(g.pixelRelativeY=r.pixelRelativeY);return g},i=r?.node??null;if(i!==this.hoveredElement){if(this.hoveredElement?.props.onMouseLeave){let d=s(this.hoveredElement);this.hoveredElement.props.onMouseLeave(d)}if(i?.props.onMouseEnter){let d=s(i);i.props.onMouseEnter(d)}this.hoveredElement=i}if(!r)return;let a=s(r.node),l=r.node.props;switch(t.action){case"click":let d=n-this.lastClickTime<300&&Math.abs(t.x-this.lastClickPos.x)<=2&&Math.abs(t.y-this.lastClickPos.y)<=2&&t.button===this.lastClickButton;d&&l.onDoubleClick?l.onDoubleClick(a):t.button==="left"&&l.onClick?l.onClick(a):t.button==="right"&&l.onContextMenu?l.onContextMenu(a):(t.button==="scroll-up"||t.button==="scroll-down")&&l.onScroll&&l.onScroll(a),d?this.lastClickTime=0:(this.lastClickTime=n,this.lastClickPos={x:t.x,y:t.y},this.lastClickButton=t.button),l.onMouseDown&&l.onMouseDown(a);break;case"release":l.onMouseUp&&l.onMouseUp(a);break;case"drag":case"move":l.onMouseMove&&l.onMouseMove(a);break;case"double-click":l.onDoubleClick&&l.onDoubleClick(a);break}o||this.bubbleEvent(r.node,t,a)}bubbleEvent(t,r,n){let o=!1,s=this.parentMap.get(t)??null;for(;s&&!o;){let i=this.boundsByNode.get(s);if(i){let a=i.node.props,l={x:n.absoluteX-i.x,y:n.absoluteY-i.y,absoluteX:n.absoluteX,absoluteY:n.absoluteY,button:n.button,modifiers:n.modifiers,target:i.node,stopPropagation:()=>{o=!0}};r.action==="click"&&r.button==="left"&&a.onClick&&a.onClick(l)}s=this.parentMap.get(s)??null}}enable(t){this.mouseTrackingEnabled||(this.mouseTrackingEnabled=!0,es(),this.inputHandler=r=>{let n=hi(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,Zn(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},GI=Symbol("tuiuiu.hit-test-registry");function os(e){return Oe(GI,()=>new gp,e)}function mp(e,t=0){let r=os();if(r.clear(),t===0){r.registerFromLayout(e);return}yl(e,(n,o,s,i,a,l)=>{hp(n)&&r.register(n,o,s+t,i,a,l)})}import Zt from"node:path";import{fileURLToPath as Ww}from"node:url";var WI=[{code:"signals-inside-component-render",title:"Signals Inside Component Render",anchor:"signals-inside-component-render",summary:"Do not call createSignal() inside a component render. It recreates state every rerender.",whyItBreaks:["Signals created inside the component are replaced every time render runs again.","Input handlers and effects often keep references to the old signal instance.","The UI reads a fresh signal while callbacks mutate an older one, so state appears stuck or resets."],wrongExample:`function App() {
122
122
  const [count, setCount] = createSignal(0);
123
123
  useHotkeys('up', () => setCount(c => c + 1));
124
124
  return Text({}, \`Count: \${count()}\`);
@@ -188,47 +188,47 @@ useEffect(() => {
188
188
  return Box({},
189
189
  ComputedText(() => \`Score: \${score()}\`),
190
190
  );
191
- })`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function HI(e){let t=WI.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function UI(e){return`docs/resources/common-mistakes.md#${HI(e).anchor}`}function Iw(e){return`See ${UI(e)} or tuiuiu://guide/common-mistakes.`}var Mw=new Set,Bw=Zt.normalize(jw(import.meta.url)),qI=Zt.dirname(Zt.dirname(Bw)),KI=Zt.dirname(qI),kl=0;function $w(){return process.env.NODE_ENV!=="production"}function Lw(e){return e.startsWith("file://")?Zt.normalize(jw(e)):Zt.normalize(e)}function VI(e){let t=Zt.normalize(e);return t.startsWith(KI)?t.includes(`${Zt.sep}src${Zt.sep}`)||t.includes(`${Zt.sep}dist${Zt.sep}`):!1}function zI(e){let t=Zt.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function JI(e,t=[]){if(!e)return[];let r=new Set([Bw,...t.map(Lw)]),n=e.split(`
192
- `).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=Lw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function YI(e,t){!$w()||Mw.has(e)||(Mw.add(e),console.warn(`[tuiuiu] ${t}`))}function wi(e){kl++;try{return e()}finally{kl=Math.max(0,kl-1)}}function Nw(e,t){if(!$w()||kl>0||!Jk()||Yk()!=="component")return;let r=JI(e,[t])[0];if(!r||VI(r.filePath))return;let n=zI(r);YI(`create-signal-in-render:${n}`,`createSignal() was called during component render at ${n}. This recreates state every render. Move it to module scope or use useState(). ${Iw("signals-inside-component-render")}`)}var xn=null,_i=new Set,Ri=!1,mp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return xn&&xn._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof En){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof En){let r=this._subs;Ri?_i.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ri?_i.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof En){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},hp=null;var bp=!1,wl=new Set;function QI(e){wl.add(e),bp||(bp=!0,queueMicrotask(XI))}function XI(){bp=!1;let e=[...wl];wl.clear(),Gw(e,t=>t.run())}function Gw(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var En=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?QI(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=hp;hp=this._cleanups;let r=xn;xn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{xn=r,hp=t}let n=this.dependencies,o=this._nextDeps;if(this._nextDeps=null,!this._samesDeps(n,o)){for(let s of n)o.has(s)||s.unsubscribe(this);for(let s of o)n.has(s)||s._addSub(this);this.dependencies=o}}finally{this.running=!1}}}_samesDeps(t,r){if(t.size!==r.size)return!1;for(let n of t)if(!r.has(n))return!1;return!0}_runCleanups(){let t=[];this._returnCleanup&&(t.push(this._returnCleanup),this._returnCleanup=void 0),t.push(...this._cleanups.splice(0));let r=[];for(let n of t)try{n()}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive cleanups failed")}dispose(){if(this.disposed)return;this.disposed=!0,wl.delete(this),_i.delete(this);let t;try{this._runCleanups()}catch(r){t=r}finally{for(let r of this.dependencies)r.unsubscribe(this);this.dependencies.clear()}if(t!==void 0)throw t}};function gr(e){Nw(new Error().stack,import.meta.url);let t=new mp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function Ww(e,t={}){let r=new En(e,t);return()=>r.dispose()}function $t(e){let t=Ri;Ri=!0;try{e()}finally{if(Ri=t,!t){let r=[..._i];_i.clear(),Gw(r,n=>n.notify())}}}function is(e){let t=xn;xn=null;try{return e()}finally{xn=t}}var ZI=Symbol("tuiuiu.terminal-focus-state");function eM(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function yp(e){return Oe(ZI,eM,e)}function hr(e){return yp(e).read()}function kp(e,t){let r=yp(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Rl(e,t){let r=yp(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function wp(e){kp(!0,e)}var ro={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},Uw=Symbol("tuiuiu.motion-runtime-state");function qw(e){let t=e.id===0?null:It(Uw,()=>qw(Mr())),r={config:{...t?.config??ro},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[Ir](){Vw(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function _p(){let e=Ge();return Oe(Uw,()=>qw(e),e)}function _l(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function Rp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function tM(e){switch(e.presentationPressure){case"elevated":return e.config.frameBudgetMs*e.config.elevatedFrameBudgetFactor;case"critical":return e.config.frameBudgetMs*e.config.criticalFrameBudgetFactor;case"normal":default:return 0}}function Kw(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function rM(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Rl(en(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}xl(e)})))}function xp(e,t=hr(e.scope)){if(!t)return 1e3/e.config.unfocusedFps;switch(e.qualityTier){case"reduced":return 1e3/e.config.reducedFps;case"skip":return 0;case"full":default:return 1e3/e.config.targetFps}}function Hw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:hr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function nM(e,t){let r=hr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=xp(e,r),s=e.lastPresentationAt===0?0:t-e.lastPresentationAt;n=Math.min(n,Math.max(0,o-s))}for(let o of e.intervalSubscriptions.values()){if(!r&&o.pauseWhenUnfocused)continue;let s=t-o.lastRunAt;n=Math.min(n,Math.max(0,o.intervalMs-s))}return Number.isFinite(n)?Math.ceil(n):null}function Vw(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function zw(e){if(e.schedulerTimer||!Kw(e))return;rM(e);let t=nM(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(en(e.scope,()=>oM(e)),t))}function oM(e){if(e.schedulerTimer=null,!Kw(e))return;let t=Date.now(),r=hr(e.scope),n=xp(e,r),o=e.lastPresentationAt===0?n:t-e.lastPresentationAt;if(e.frameCallbacks.size>0&&o>=n){e.lastPresentationAt=t;let s=[...e.frameCallbacks.values()];e.frameCallbacks.clear();let i=Hw(e,t,n,n===0?0:Math.max(n,o));for(let a of s)a(i)}for(let s of e.intervalSubscriptions.values()){if(!r&&s.pauseWhenUnfocused)continue;let i=t-s.lastRunAt;i<s.intervalMs||(s.lastRunAt=t,s.callback(Hw(e,t,n,Math.max(s.intervalMs,i))))}zw(e)}function xl(e){Vw(e),zw(e)}function Jw(e){let t=_p(),r=_l(e.targetFps??t.config.targetFps,ro.targetFps),n=_l(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:_l(e.unfocusedFps??t.config.unfocusedFps,ro.unfocusedFps),frameBudgetMs:Rp(e.frameBudgetMs??t.config.frameBudgetMs,ro.frameBudgetMs),recoveryFrames:_l(e.recoveryFrames??t.config.recoveryFrames,ro.recoveryFrames),elevatedFrameBudgetFactor:Rp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,ro.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:Rp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,ro.criticalFrameBudgetFactor)},xl(t)}function El(){let e=_p();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:hr(e.scope),targetFrameMs:xp(e),recommendedPresentationIntervalMs:tM(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function sM(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function iM(e){if(e.presentationPressure==="normal"){e.pressureOnBudgetStreak=0;return}e.pressureOnBudgetStreak++,!(e.pressureOnBudgetStreak<e.config.recoveryFrames)&&(e.presentationPressure==="critical"?e.presentationPressure="elevated":e.presentationPressure="normal",e.pressureOnBudgetStreak=0)}function Yw(e){let t=_p();if(!Number.isFinite(e.totalMs)||e.totalMs<0)return t.qualityTier;let r=e.overBudget??e.totalMs>t.config.frameBudgetMs,n=(e.phaseOverrunCount??0)>0;return r?(t.onBudgetStreak=0,t.qualityTier==="full"?t.qualityTier="reduced":t.qualityTier==="reduced"&&(t.qualityTier="skip"),xl(t)):(t.onBudgetStreak++,t.onBudgetStreak>=t.config.recoveryFrames&&(t.qualityTier==="skip"?(t.qualityTier="reduced",t.onBudgetStreak=0):t.qualityTier==="reduced"&&(t.qualityTier="full",t.onBudgetStreak=0))),r||n?sM(t):iM(t),xl(t),t.qualityTier}function vn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function Qw(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function Xw(e){return e?Ft({key:e.key,transforms:e.transforms}):null}function xi(e){return e.type==="text"?{...e,style:{...e.style},compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}:{...e,compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}}function aM(e,t){let r=xi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function lM(e,t){let r=vn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=xi(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function dM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function cM(e,t,r){let n=vn(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=xi(e);return a.clip=dM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function uM(e,t,r,n){let o=e.x;return(e.type==="text"?e.x+Math.max(1,e.maxWidth):e.x+Math.max(1,e.width))>r&&o<n&&e.y>=t.y&&e.y<t.y+t.height}function pM(e,t,r){if(e.type!=="text")return e;let n=vn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*vn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!uM(e,r,o,s))return e;let i=xi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function fM(e,t,r){let n=vn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=xi(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let $=o.x,D=o.x+Math.max(1,o.maxWidth),M=Math.max($,g),N=Math.min(D,f);if(N<=M)return null;let U=Math.max(0,M-$),G=Math.max(U,N-$);return o.text=Yo(o.text,U,G),o.x=M,o.maxWidth=Math.max(0,N-M),o.maxWidth>0&&o.text.length>0?o:null}let y=o.x,h=o.x+Math.max(1,o.width),R=Math.max(y,g),T=Math.min(h,f);return T<=R?null:(o.x=R,o.width=Math.max(0,T-R),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function gM(e,t,r){let n=El().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&vn(s.opacity)<=0||s.kind==="scale"&&vn(s.scale)<=0||s.kind==="reveal"&&vn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=aM(o,s);break;case"fade":o=lM(o,s);break;case"scale":o=cM(o,s,r);break;case"shimmer":o=pM(o,s,r);break;case"reveal":o=fM(o,s,r);break}}return o}function Zw(e,t){if(e.length===0||t.size===0)return[...e];let r=[];for(let n of e){let o=n.compositorKeys;if(!o||o.length===0){r.push(n);continue}let s=n;for(let i of o){if(!s)break;let a=t.get(i);!a||a.transforms.length===0||(s=gM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var hM=1,mM=Symbol("tuiuiu.frame-runtime-state");function vp(e){return Oe(mM,()=>({committedFrameSnapshot:null}),e)}var bM=new Set(["__terminalImage","__compositor"]),yM=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),kM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Ep={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},vl=new WeakMap,Tn=new Map,rR=4096;function Sn(){return typeof performance<"u"?performance.now():Date.now()}function wM(e){return{width:e.width,height:e.height,pointer:e.pointer?{...e.pointer}:void 0,scrollDelta:e.scrollDelta?{...e.scrollDelta}:void 0,deltaTimeMs:e.deltaTimeMs}}function RM(e){return{eagerHitTargets:e?.eagerHitTargets??Ep.eagerHitTargets,eagerQueries:e?.eagerQueries??Ep.eagerQueries,eagerWarnings:e?.eagerWarnings??Ep.eagerWarnings}}function _M(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function xM(e){return!!(e&&typeof e=="object"&&typeof e.getViewport=="function"&&typeof e.getContent=="function"&&typeof e.getOffset=="function"&&typeof e.getMaxOffset=="function"&&typeof e.scrollTo=="function"&&typeof e.scrollBy=="function"&&typeof e.scrollToStart=="function"&&typeof e.scrollToEnd=="function")}function EM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0&&xM(f.__scrollQuery)){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function vM(e){let t=[];for(let[r,n]of e)n.length>1&&t.push({code:"duplicate-id",severity:"warning",id:r,message:`Duplicate explicit id "${r}" was found ${n.length} times in the committed frame.`});return t}function as(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function eR(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r;return{id:t,status:"found",found:!0,ambiguous:!1,bounds:n.bounds,nodeType:n.nodeType}}function SM(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r,o=n.metadata.getViewport(),s=n.metadata.getContent(),i=n.metadata.getOffset(),a=n.metadata.getMaxOffset();return{id:t,status:"found",found:!0,ambiguous:!1,nodeType:n.nodeType,viewport:{width:o.width??n.bounds.width,height:o.height??n.bounds.height},content:{width:s.width??o.width??n.bounds.width,height:s.height??o.height??n.bounds.height},offset:i,maxOffset:a,controls:{scrollTo:l=>n.metadata.scrollTo(l),scrollBy:l=>n.metadata.scrollBy(l),scrollToStart:()=>n.metadata.scrollToStart(),scrollToEnd:()=>n.metadata.scrollToEnd()}}}function TM(e,t,r,n,o){return{getElement:s=>{let i=eR(e,s);return i.status==="missing"?as(n,o,{code:"query-missing",severity:"warning",id:s,message:`Element query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&as(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Element query for explicit id "${s}" matched multiple committed elements in the current frame.`}),i},pointerOver:s=>{if(!r.pointer)return!1;let i=eR(e,s);return!i.found||!i.bounds?(i.status==="missing"?as(n,o,{code:"query-missing",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&as(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" matched multiple committed elements in the current frame.`}),!1):r.pointer.x>=i.bounds.x&&r.pointer.x<i.bounds.x+i.bounds.width&&r.pointer.y>=i.bounds.y&&r.pointer.y<i.bounds.y+i.bounds.height},getScrollContainer:s=>{let i=SM(t,s);return i.status==="missing"?as(n,o,{code:"scroll-target-missing",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" did not match any committed scroll target in the current frame.`}):i.status==="ambiguous"&&as(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" matched multiple committed scroll targets in the current frame.`}),i}}}function PM(e,t,r,n=[],o){let s=n.length>0?Ft(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function AM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function CM(e,t){let r=e.type==="text"?kM:yM,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Ft({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:bM})}function DM(e,t,r,n,o,s){return Ft([t,r,Xw(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function OM(e,t,r){if(!ol(e.node))return;let n=vl.get(e);if(!n)return;if(n.cacheKey!==t){_n(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){_n(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){_n(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){_n(e.node,Pe.CHILDREN);return}return n}function tR(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return vl.set(e,i),i}function FM(e){return e.map((t,r)=>({...t,order:r}))}function nR(e,t){return t?`${e}|motion:${El().qualityTier}`:e}function IM(){let e=Math.max(1,Math.ceil(rR*.1)),t=Tn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Tn.delete(n.value)}}function MM(e){return Tn.get(e)}function LM(e,t,r){let n=Tn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Tn.has(e)&&Tn.size>=rR&&IM(),Tn.set(e,o),o}function jM(e,t,r){let n=Tn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function BM(e,t){for(let r of t)e.push(r)}function $M(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function NM(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function oR(e){let t=e.props;return Qw(t?.__compositor)?t.__compositor:null}function sR(e,t=new Map){let r=oR(e.node);r&&t.set(r.key,{...r,bounds:{x:e.x,y:e.y,width:e.width,height:e.height}});for(let n of e.children)sR(n,t);return t}function GM(e,t,r,n,o,s){if(!NM(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let y=s.__terminalImage,h=ns(),R=$M(y.source)?y.source:hl(y.source,{cellSize:h.cellSize}),T=y.options?.protocol??h.protocol,$=rs(T),D=ki(R,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,D.renderColumns)),N=Math.max(0,Math.min(f,D.renderRows));return M<=0||N<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:M,height:N,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:R,fit:D.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:$,cellRender:xw($),protocolState:y.protocolState}}function WM(e){return e.flatMap(t=>t.type!=="terminal-image"||t.cellRender||t.clip&&(t.x<t.clip.x||t.y<t.clip.y||t.x+t.width>t.clip.x+t.clip.width||t.y+t.height>t.clip.y+t.clip.height)?[]:[{type:"terminal-image",id:t.id,protocol:t.protocol,x:t.x,y:t.y,width:t.width,height:t.height}])}function iR(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,y=oR(i),h=y?[...o,y.key]:[...o],R=y!==null,T=GM(e,p,g,d,c,f),$=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",D=PM(t,r,n,h,s)+$,M,N=()=>(M===void 0&&(M=CM(i,T)),M),U=OM(e,D,N);if(U)return ai("draw"),{commands:U.commands,hasCompositor:U.hasCompositor,subtreeSignature:U.subtreeSignature};let G=N(),F=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,q=[],oe=[],ae=f.paddingTop??f.paddingY??f.padding??0,se=f.paddingLeft??f.paddingX??f.padding??0,Z=f.borderStyle&&f.borderStyle!=="none"?1:0,pe=p+se+Z,Ae=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-Ae,we=W??n,J=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",_e={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:de?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:de?c:s?.height??Number.MAX_SAFE_INTEGER*2},Ce=J||de?AM(s,_e):s;for(let ie of u){let xe=iR(ie,pe,Ee,we,h,Ce);q.push(xe),R||=xe.hasCompositor,oe.push(xe.subtreeSignature)}let ve=DM(e,D,G,y,h,oe),Re=MM(ve);if(Re){ai("draw");let ie=tR(e,D,G,Re.commands,Re.hasCompositor,ve),xe=nR(ve,Re.hasCompositor);return Re.materialized&&Re.materializedSignature===xe&&(ie.materialized=Re.materialized,ie.materializedSignature=xe),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let xe=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:g,width:d,height:c,backgroundColor:W,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:xe,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ie=String(f.children??""),xe=Math.max(1,be(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
191
+ })`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function HI(e){let t=WI.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function UI(e){return`docs/resources/common-mistakes.md#${HI(e).anchor}`}function $w(e){return`See ${UI(e)} or tuiuiu://guide/common-mistakes.`}var Nw=new Set,Hw=Zt.normalize(Ww(import.meta.url)),qI=Zt.dirname(Zt.dirname(Hw)),KI=Zt.dirname(qI),kl=0;function Uw(){return process.env.NODE_ENV!=="production"}function Gw(e){return e.startsWith("file://")?Zt.normalize(Ww(e)):Zt.normalize(e)}function VI(e){let t=Zt.normalize(e);return t.startsWith(KI)?t.includes(`${Zt.sep}src${Zt.sep}`)||t.includes(`${Zt.sep}dist${Zt.sep}`):!1}function zI(e){let t=Zt.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function JI(e,t=[]){if(!e)return[];let r=new Set([Hw,...t.map(Gw)]),n=e.split(`
192
+ `).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=Gw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function YI(e,t){!Uw()||Nw.has(e)||(Nw.add(e),console.warn(`[tuiuiu] ${t}`))}function ki(e){kl++;try{return e()}finally{kl=Math.max(0,kl-1)}}function qw(e,t){if(!Uw()||kl>0||!ew()||tw()!=="component")return;let r=JI(e,[t])[0];if(!r||VI(r.filePath))return;let n=zI(r);YI(`create-signal-in-render:${n}`,`createSignal() was called during component render at ${n}. This recreates state every render. Move it to module scope or use useState(). ${$w("signals-inside-component-render")}`)}var _n=null,Ri=new Set,wi=!1,yp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return _n&&_n._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof xn){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof xn){let r=this._subs;wi?Ri.add(r):r.notify();return}let t=[...this._subs];for(let r of t)wi?Ri.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof xn){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},bp=null;var kp=!1,wl=new Set;function QI(e){wl.add(e),kp||(kp=!0,queueMicrotask(XI))}function XI(){kp=!1;let e=[...wl];wl.clear(),Kw(e,t=>t.run())}function Kw(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var xn=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?QI(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=bp;bp=this._cleanups;let r=_n;_n=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{_n=r,bp=t}let n=this.dependencies,o=this._nextDeps;if(this._nextDeps=null,!this._samesDeps(n,o)){for(let s of n)o.has(s)||s.unsubscribe(this);for(let s of o)n.has(s)||s._addSub(this);this.dependencies=o}}finally{this.running=!1}}}_samesDeps(t,r){if(t.size!==r.size)return!1;for(let n of t)if(!r.has(n))return!1;return!0}_runCleanups(){let t=[];this._returnCleanup&&(t.push(this._returnCleanup),this._returnCleanup=void 0),t.push(...this._cleanups.splice(0));let r=[];for(let n of t)try{n()}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive cleanups failed")}dispose(){if(this.disposed)return;this.disposed=!0,wl.delete(this),Ri.delete(this);let t;try{this._runCleanups()}catch(r){t=r}finally{for(let r of this.dependencies)r.unsubscribe(this);this.dependencies.clear()}if(t!==void 0)throw t}};function gr(e){qw(new Error().stack,import.meta.url);let t=new yp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function Vw(e,t={}){let r=new xn(e,t);return()=>r.dispose()}function $t(e){let t=wi;wi=!0;try{e()}finally{if(wi=t,!t){let r=[...Ri];Ri.clear(),Kw(r,n=>n.notify())}}}function ss(e){let t=_n;_n=null;try{return e()}finally{_n=t}}var ZI=Symbol("tuiuiu.terminal-focus-state");function eM(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function wp(e){return Oe(ZI,eM,e)}function hr(e){return wp(e).read()}function Rp(e,t){let r=wp(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Rl(e,t){let r=wp(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function _p(e){Rp(!0,e)}var eo={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},Jw=Symbol("tuiuiu.motion-runtime-state");function Yw(e){let t=e.id===0?null:It(Jw,()=>Yw(Mr())),r={config:{...t?.config??eo},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[Ir](){Xw(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function Ep(){let e=Ge();return Oe(Jw,()=>Yw(e),e)}function _l(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function xp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function tM(e){switch(e.presentationPressure){case"elevated":return e.config.frameBudgetMs*e.config.elevatedFrameBudgetFactor;case"critical":return e.config.frameBudgetMs*e.config.criticalFrameBudgetFactor;case"normal":default:return 0}}function Qw(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function rM(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Rl(en(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}xl(e)})))}function vp(e,t=hr(e.scope)){if(!t)return 1e3/e.config.unfocusedFps;switch(e.qualityTier){case"reduced":return 1e3/e.config.reducedFps;case"skip":return 0;case"full":default:return 1e3/e.config.targetFps}}function zw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:hr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function nM(e,t){let r=hr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=vp(e,r),s=e.lastPresentationAt===0?0:t-e.lastPresentationAt;n=Math.min(n,Math.max(0,o-s))}for(let o of e.intervalSubscriptions.values()){if(!r&&o.pauseWhenUnfocused)continue;let s=t-o.lastRunAt;n=Math.min(n,Math.max(0,o.intervalMs-s))}return Number.isFinite(n)?Math.ceil(n):null}function Xw(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function Zw(e){if(e.schedulerTimer||!Qw(e))return;rM(e);let t=nM(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(en(e.scope,()=>oM(e)),t))}function oM(e){if(e.schedulerTimer=null,!Qw(e))return;let t=Date.now(),r=hr(e.scope),n=vp(e,r),o=e.lastPresentationAt===0?n:t-e.lastPresentationAt;if(e.frameCallbacks.size>0&&o>=n){e.lastPresentationAt=t;let s=[...e.frameCallbacks.values()];e.frameCallbacks.clear();let i=zw(e,t,n,n===0?0:Math.max(n,o));for(let a of s)a(i)}for(let s of e.intervalSubscriptions.values()){if(!r&&s.pauseWhenUnfocused)continue;let i=t-s.lastRunAt;i<s.intervalMs||(s.lastRunAt=t,s.callback(zw(e,t,n,Math.max(s.intervalMs,i))))}Zw(e)}function xl(e){Xw(e),Zw(e)}function eR(e){let t=Ep(),r=_l(e.targetFps??t.config.targetFps,eo.targetFps),n=_l(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:_l(e.unfocusedFps??t.config.unfocusedFps,eo.unfocusedFps),frameBudgetMs:xp(e.frameBudgetMs??t.config.frameBudgetMs,eo.frameBudgetMs),recoveryFrames:_l(e.recoveryFrames??t.config.recoveryFrames,eo.recoveryFrames),elevatedFrameBudgetFactor:xp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,eo.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:xp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,eo.criticalFrameBudgetFactor)},xl(t)}function El(){let e=Ep();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:hr(e.scope),targetFrameMs:vp(e),recommendedPresentationIntervalMs:tM(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function sM(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function iM(e){if(e.presentationPressure==="normal"){e.pressureOnBudgetStreak=0;return}e.pressureOnBudgetStreak++,!(e.pressureOnBudgetStreak<e.config.recoveryFrames)&&(e.presentationPressure==="critical"?e.presentationPressure="elevated":e.presentationPressure="normal",e.pressureOnBudgetStreak=0)}function tR(e){let t=Ep();if(!Number.isFinite(e.totalMs)||e.totalMs<0)return t.qualityTier;let r=e.overBudget??e.totalMs>t.config.frameBudgetMs,n=(e.phaseOverrunCount??0)>0;return r?(t.onBudgetStreak=0,t.qualityTier==="full"?t.qualityTier="reduced":t.qualityTier==="reduced"&&(t.qualityTier="skip"),xl(t)):(t.onBudgetStreak++,t.onBudgetStreak>=t.config.recoveryFrames&&(t.qualityTier==="skip"?(t.qualityTier="reduced",t.onBudgetStreak=0):t.qualityTier==="reduced"&&(t.qualityTier="full",t.onBudgetStreak=0))),r||n?sM(t):iM(t),xl(t),t.qualityTier}function En(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function rR(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function nR(e){return e?Ft({key:e.key,transforms:e.transforms}):null}function _i(e){return e.type==="text"?{...e,style:{...e.style},compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}:{...e,compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}}function aM(e,t){let r=_i(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function lM(e,t){let r=En(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=_i(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function dM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function cM(e,t,r){let n=En(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=_i(e);return a.clip=dM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function uM(e,t,r,n){let o=e.x;return(e.type==="text"?e.x+Math.max(1,e.maxWidth):e.x+Math.max(1,e.width))>r&&o<n&&e.y>=t.y&&e.y<t.y+t.height}function pM(e,t,r){if(e.type!=="text")return e;let n=En(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*En(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!uM(e,r,o,s))return e;let i=_i(e);return i.style={...i.style,bold:!0,inverse:!0},i}function fM(e,t,r){let n=En(t.progress);if(n<=0)return null;if(n>=1)return e;let o=_i(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let $=o.x,D=o.x+Math.max(1,o.maxWidth),M=Math.max($,g),N=Math.min(D,f);if(N<=M)return null;let U=Math.max(0,M-$),G=Math.max(U,N-$);return o.text=Jo(o.text,U,G),o.x=M,o.maxWidth=Math.max(0,N-M),o.maxWidth>0&&o.text.length>0?o:null}let y=o.x,h=o.x+Math.max(1,o.width),R=Math.max(y,g),T=Math.min(h,f);return T<=R?null:(o.x=R,o.width=Math.max(0,T-R),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function gM(e,t,r){let n=El().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&En(s.opacity)<=0||s.kind==="scale"&&En(s.scale)<=0||s.kind==="reveal"&&En(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=aM(o,s);break;case"fade":o=lM(o,s);break;case"scale":o=cM(o,s,r);break;case"shimmer":o=pM(o,s,r);break;case"reveal":o=fM(o,s,r);break}}return o}function oR(e,t){if(e.length===0||t.size===0)return[...e];let r=[];for(let n of e){let o=n.compositorKeys;if(!o||o.length===0){r.push(n);continue}let s=n;for(let i of o){if(!s)break;let a=t.get(i);!a||a.transforms.length===0||(s=gM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var hM=1,mM=Symbol("tuiuiu.frame-runtime-state");function Tp(e){return Oe(mM,()=>({committedFrameSnapshot:null}),e)}var bM=new Set(["__terminalImage","__compositor"]),yM=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),kM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Sp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},vl=new WeakMap,Sn=new Map,aR=4096;function vn(){return typeof performance<"u"?performance.now():Date.now()}function wM(e){return{width:e.width,height:e.height,pointer:e.pointer?{...e.pointer}:void 0,scrollDelta:e.scrollDelta?{...e.scrollDelta}:void 0,deltaTimeMs:e.deltaTimeMs}}function RM(e){return{eagerHitTargets:e?.eagerHitTargets??Sp.eagerHitTargets,eagerQueries:e?.eagerQueries??Sp.eagerQueries,eagerWarnings:e?.eagerWarnings??Sp.eagerWarnings}}function _M(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function xM(e){return!!(e&&typeof e=="object"&&typeof e.getViewport=="function"&&typeof e.getContent=="function"&&typeof e.getOffset=="function"&&typeof e.getMaxOffset=="function"&&typeof e.scrollTo=="function"&&typeof e.scrollBy=="function"&&typeof e.scrollToStart=="function"&&typeof e.scrollToEnd=="function")}function EM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0&&xM(f.__scrollQuery)){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function vM(e){let t=[];for(let[r,n]of e)n.length>1&&t.push({code:"duplicate-id",severity:"warning",id:r,message:`Duplicate explicit id "${r}" was found ${n.length} times in the committed frame.`});return t}function is(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function sR(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r;return{id:t,status:"found",found:!0,ambiguous:!1,bounds:n.bounds,nodeType:n.nodeType}}function SM(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r,o=n.metadata.getViewport(),s=n.metadata.getContent(),i=n.metadata.getOffset(),a=n.metadata.getMaxOffset();return{id:t,status:"found",found:!0,ambiguous:!1,nodeType:n.nodeType,viewport:{width:o.width??n.bounds.width,height:o.height??n.bounds.height},content:{width:s.width??o.width??n.bounds.width,height:s.height??o.height??n.bounds.height},offset:i,maxOffset:a,controls:{scrollTo:l=>n.metadata.scrollTo(l),scrollBy:l=>n.metadata.scrollBy(l),scrollToStart:()=>n.metadata.scrollToStart(),scrollToEnd:()=>n.metadata.scrollToEnd()}}}function TM(e,t,r,n,o){return{getElement:s=>{let i=sR(e,s);return i.status==="missing"?is(n,o,{code:"query-missing",severity:"warning",id:s,message:`Element query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&is(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Element query for explicit id "${s}" matched multiple committed elements in the current frame.`}),i},pointerOver:s=>{if(!r.pointer)return!1;let i=sR(e,s);return!i.found||!i.bounds?(i.status==="missing"?is(n,o,{code:"query-missing",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&is(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" matched multiple committed elements in the current frame.`}),!1):r.pointer.x>=i.bounds.x&&r.pointer.x<i.bounds.x+i.bounds.width&&r.pointer.y>=i.bounds.y&&r.pointer.y<i.bounds.y+i.bounds.height},getScrollContainer:s=>{let i=SM(t,s);return i.status==="missing"?is(n,o,{code:"scroll-target-missing",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" did not match any committed scroll target in the current frame.`}):i.status==="ambiguous"&&is(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" matched multiple committed scroll targets in the current frame.`}),i}}}function PM(e,t,r,n=[],o){let s=n.length>0?Ft(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function AM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function CM(e,t){let r=e.type==="text"?kM:yM,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Ft({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:bM})}function DM(e,t,r,n,o,s){return Ft([t,r,nR(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function OM(e,t,r){if(!ol(e.node))return;let n=vl.get(e);if(!n)return;if(n.cacheKey!==t){Rn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){Rn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){Rn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){Rn(e.node,Pe.CHILDREN);return}return n}function iR(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return vl.set(e,i),i}function FM(e){return e.map((t,r)=>({...t,order:r}))}function lR(e,t){return t?`${e}|motion:${El().qualityTier}`:e}function IM(){let e=Math.max(1,Math.ceil(aR*.1)),t=Sn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Sn.delete(n.value)}}function MM(e){return Sn.get(e)}function LM(e,t,r){let n=Sn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Sn.has(e)&&Sn.size>=aR&&IM(),Sn.set(e,o),o}function jM(e,t,r){let n=Sn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function BM(e,t){for(let r of t)e.push(r)}function $M(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function NM(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function dR(e){let t=e.props;return rR(t?.__compositor)?t.__compositor:null}function cR(e,t=new Map){let r=dR(e.node);r&&t.set(r.key,{...r,bounds:{x:e.x,y:e.y,width:e.width,height:e.height}});for(let n of e.children)cR(n,t);return t}function GM(e,t,r,n,o,s){if(!NM(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let y=s.__terminalImage,h=rs(),R=$M(y.source)?y.source:hl(y.source,{cellSize:h.cellSize}),T=y.options?.protocol??h.protocol,$=ts(T),D=yi(R,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,D.renderColumns)),N=Math.max(0,Math.min(f,D.renderRows));return M<=0||N<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:M,height:N,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:R,fit:D.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:$,cellRender:Pw($),protocolState:y.protocolState}}function WM(e){return e.flatMap(t=>t.type!=="terminal-image"||t.cellRender||t.clip&&(t.x<t.clip.x||t.y<t.clip.y||t.x+t.width>t.clip.x+t.clip.width||t.y+t.height>t.clip.y+t.clip.height)?[]:[{type:"terminal-image",id:t.id,protocol:t.protocol,x:t.x,y:t.y,width:t.width,height:t.height}])}function uR(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,y=dR(i),h=y?[...o,y.key]:[...o],R=y!==null,T=GM(e,p,g,d,c,f),$=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",D=PM(t,r,n,h,s)+$,M,N=()=>(M===void 0&&(M=CM(i,T)),M),U=OM(e,D,N);if(U)return ii("draw"),{commands:U.commands,hasCompositor:U.hasCompositor,subtreeSignature:U.subtreeSignature};let G=N(),F=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,q=[],oe=[],ae=f.paddingTop??f.paddingY??f.padding??0,se=f.paddingLeft??f.paddingX??f.padding??0,Z=f.borderStyle&&f.borderStyle!=="none"?1:0,pe=p+se+Z,Ae=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-Ae,we=W??n,J=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",_e={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:de?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:de?c:s?.height??Number.MAX_SAFE_INTEGER*2},Ce=J||de?AM(s,_e):s;for(let ie of u){let xe=uR(ie,pe,Ee,we,h,Ce);q.push(xe),R||=xe.hasCompositor,oe.push(xe.subtreeSignature)}let ve=DM(e,D,G,y,h,oe),Re=MM(ve);if(Re){ii("draw");let ie=iR(e,D,G,Re.commands,Re.hasCompositor,ve),xe=lR(ve,Re.hasCompositor);return Re.materialized&&Re.materializedSignature===xe&&(ie.materialized=Re.materialized,ie.materializedSignature=xe),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let xe=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:g,width:d,height:c,backgroundColor:W,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:xe,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ie=String(f.children??""),xe=Math.max(1,be(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
193
193
  `):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/xe)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>ie).join(`
194
- `):ie;Se.push({type:"text",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:h.length>0?[...h]:void 0,clip:s});for(let ie of q)BM(Se,ie.commands);Zn("draw");let fe=tR(e,D,G,Se,R,ve);return LM(ve,fe.commands,R),{commands:fe.commands,hasCompositor:R,subtreeSignature:ve}}function HM(e){if(e.type==="text"){let s=Math.round(e.x),i=Math.round(e.y),a=Math.max(0,Math.round(e.maxWidth));return s===e.x&&i===e.y&&a===e.maxWidth?e:{...e,x:s,y:i,maxWidth:a}}let t=Math.round(e.x),r=Math.round(e.y),n=Math.max(0,Math.round(e.width)),o=Math.max(0,Math.round(e.height));return t===e.x&&r===e.y&&n===e.width&&o===e.height?e:{...e,x:t,y:r,width:n,height:o}}function UM(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=HM(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function qM(e){let t=iR(e),r=vl.get(e),n=nR(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=FM(t.commands),s=t.hasCompositor?Zw(o,sR(e)):o,i=UM(s),a=vl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),jM(t.subtreeSignature,i,n),i}function aR(e,t,r={}){let n=RM(r),o=wM(t),s=Date.now(),i=Sn(),a=Sn(),l=Gk(e,o.width,o.height),d=Sn()-a,c=Sn(),u=qM(l),p=WM(u),g=Sn()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},y=jk();f.structural.layoutReuseCount=y.layoutReuseCount,f.structural.layoutFreshCount=y.layoutFreshCount,f.structural.drawReuseCount=y.drawReuseCount,f.structural.drawFreshCount=y.drawFreshCount,f.structural.invalidationEscalationCount=y.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=y.absorbedLayoutDirtyCount;let h,R,T,$=[],D=!1,M=()=>(h||(h=_M(l)),h),N=()=>(R||(R=EM(l)),R),U=()=>{if(!T){let ae=Sn();T=Fw(l),f.phases.hitTargetRegistrationMs=Sn()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...vM(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&U();let F=TM(M,N,o,$,f),W=Date.now(),q=Sn()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:hM++,committedAt:W,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:F,metrics:f,get hitTargets(){return U()},get warnings(){return G()}}}function lR(e,t){vp(t).committedFrameSnapshot=e}function dR(e){return vp(e).committedFrameSnapshot}function cR(e){vp(e).committedFrameSnapshot=null}function it(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Pt(e,t,r){e.metrics.structural[t]=r}function uR(e,t,r=Date.now()){e.metrics.runtimeStartAt=t,e.metrics.runtimeEndAt=r,e.metrics.runtimeTotalMs=Math.max(0,r-t),e.metrics.frameEndAt=r}var fR=Symbol("tuiuiu.progressive-runtime-state");function pR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function KM(e){if(e.id===0)return pR();let t=It(fR,pR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function Sp(){let e=Ge();return Oe(fR,()=>KM(e),e)}function gR(){return Sp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function hR(){return Sp().capabilityOverrides}function Tp(){return Sp().progressiveVersion}function VM(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=pl(t),a=gw(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",y=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",h=l.strikethrough||y,R=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,$=T.columns||80,D=T.rows||24,M=gR(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:h,hyperlinks:R,terminalName:c,isCI:d,columns:$,rows:D,profile:i,synchronizedOutput:l.synchronizedOutput,styledUnderlines:l.styledUnderlines,coloredUnderlines:l.coloredUnderlines,clipboard:l.clipboard,notifications:l.notifications,multiplexer:a,cursorStyleControl:l.cursorStyleControl,windowTitle:l.windowTitle,gpuAccelerated:i.gpuAccelerated,kittyKeyboard:l.kittyKeyboard,focusEvents:l.focusEvents,nerdFonts:M},U=hR();return U&&Object.assign(N,U),N}var mR=Symbol("tuiuiu.capability-runtime-state");function bR(e){let t=e.id===0?"auto":is(It(mR,()=>bR(Mr())).renderModeSignal),[r,n]=gr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Ir](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function Ei(e){let t=Ge(e);return Oe(mR,()=>bR(t),t)}function yR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function zM(e){return VM({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Sl(e){return e.cachedCapabilities=zM(e),e.cachedProgressiveVersion=Tp(),e.cachedCapabilities}function kR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Sl(e);let r=yR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function wR(e){let t=Ei(),r=t.source.stdout??process.stdout;t.resizeListener&&(r.off("resize",t.resizeListener),t.resizeListener=null),t.source={...e},t.cachedCapabilities=null,t.cachedProgressiveVersion=-1,kR(t)}function $r(){let e=Ei(),t=Tp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Sl(e),e.cachedCapabilities??Sl(e)}function RR(){return Sl(Ei())}function _R(){return yR(Ei())}function xR(e){let t=Ei();return t.resizeHandlers.add(e),kR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var ER={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,gray:8,grey:8,blackBright:8,redBright:9,greenBright:10,yellowBright:11,blueBright:12,magentaBright:13,cyanBright:14,whiteBright:15},JM={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},YM=512,no=new Map,vR=4e6;function Nr(){return{char:" ",attrs:{}}}function Ap(e,t){if(e===t)return!0;if(e===void 0||t===void 0)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="object"&&typeof t=="object"){if("r"in e&&"r"in t)return e.r===t.r&&e.g===t.g&&e.b===t.b;if("ansi256"in e&&"ansi256"in t)return e.ansi256===t.ansi256}return!1}function QM(e,t){let r=e.underline||!1,n=t.underline||!1;return!!e.bold==!!t.bold&&!!e.dim==!!t.dim&&!!e.italic==!!t.italic&&r===n&&Ap(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function SR(e,t){return e.char===t.char&&Ap(e.fg,t.fg)&&Ap(e.bg,t.bg)&&QM(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Tl(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Gr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>vR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${vR} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push(Nr());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||be(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,be(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}if(this.cells[r][t]=n,this.invalidateRow(r),!n.isWide&&o>1&&t+o<=this.width)for(let s=1;s<o;s++)this.clearWideFootprint(t+s,r),this.cells[r][t+s]={char:"",fg:n.fg,bg:n.bg,attrs:n.attrs,isWide:!0};this.addDamage(t,r,Math.min(o,this.width-t),1)}}clearWideFootprint(t,r){if(!Number.isInteger(t)||!Number.isInteger(r)||t<0||t>=this.width||r<0||r>=this.height)return;let n=this.cells[r][t];if(n.isWide){if(this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&be(s.char)>1&&(this.cells[r][t-1]=Nr(),this.addDamage(t-1,r,1,1))}return}let o=be(n.char);if(!(o<=1)){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);for(let s=1;s<o&&t+s<this.width;s++)this.cells[r][t+s]?.isWide&&(this.cells[r][t+s]=Nr(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=be(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=Qn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
195
- `)continue;if(a>=this.width)break;let c=be(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(be(o)!==1){let c=be(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(be(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=Nr();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,Tl(p))}}addDamage(t,r,n,o){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let s=Math.max(0,t),i=Math.max(0,r),a=Math.min(this.width,t+n),l=Math.min(this.height,r+o);a>s&&l>i&&this.damageRects.push({x:s,y:i,width:a-s,height:l-i})}getDamage(){return this.damageRects}clearDamage(){this.damageRects=[]}hasDamage(){return this.damageRects.length>0}consolidateDamage(){if(this.damageRects.length<=1)return this.damageRects;let t=1/0,r=1/0,n=-1/0,o=-1/0;for(let i of this.damageRects)t=Math.min(t,i.x),r=Math.min(r,i.y),n=Math.max(n,i.x+i.width),o=Math.max(o,i.y+i.height);let s={x:t,y:r,width:n-t,height:o-r};return this.damageRects=[s],this.damageRects}diff(t){let r=[],n=Math.min(this.width,t.width),o=Math.min(this.height,t.height);for(let s=0;s<o;s++)if(this.getRowSignature(s)!==t.getRowSignature(s))for(let i=0;i<n;i++){let a=this.cells[s][i],l=t.cells[s][i];SR(a,l)||r.push({x:i,y:s,cell:Tl(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=XM(this.width,this.height,t.width,t.height,r);for(let i of s)if(!(i.x1===0&&i.x2>=o&&this.getRowSignature(i.y)===t.getRowSignature(i.y)))for(let l=i.x1;l<i.x2;l++){let d=this.cells[i.y][l],c=t.cells[i.y][l];SR(d,c)||n.push({x:l,y:i.y,cell:Tl(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Tl(r.cell))}*[Symbol.iterator](){for(let t=0;t<this.height;t++)for(let r=0;r<this.width;r++)yield{x:r,y:t,cell:this.cells[t][r]}}*rows(){for(let t=0;t<this.height;t++)yield{y:t,cells:this.cells[t]}}invalidateRow(t){t>=0&&t<this.height&&(this.rowSignatures[t]=null)}getRowSignature(t){let r=this.rowSignatures[t];if(r!=null)return r;let n=this.cells[t],o="";for(let s=0;s<n.length;s++){let i=n[s];o+=`${i.char.length}:${i.char}${i.isWide?1:0}${PR(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function XM(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||ZM(o)?TR(s,i,o):eL(s,i,o)}function ZM(e){let t=-1,r=-1;for(let n of e){let o=Math.max(0,n.x),s=Math.max(0,n.y),i=n.y+n.height-1;if(!(n.width<=0||n.height<=0||i<s)){if(s<t||s===t&&o<r)return!1;t=i,r=o}}return!0}function TR(e,t,r){let n=[];for(let o of r){let s=Math.max(0,o.x),i=Math.max(0,o.y),a=Math.min(e,o.x+o.width),l=Math.min(t,o.y+o.height);if(!(a<=s||l<=i))for(let d=i;d<l;d++){let c=n[n.length-1];if(c&&c.y===d&&s<=c.x2){c.x2=Math.max(c.x2,a);continue}n.push({y:d,x1:s,x2:a})}}return n}function eL(e,t,r){let n=new Map;for(let i of r){let a=Math.max(0,i.x),l=Math.max(0,i.y),d=Math.min(e,i.x+i.width),c=Math.min(t,i.y+i.height);if(!(d<=a||c<=l))for(let u=l;u<c;u++){let p=n.get(u);p?p.push({x1:a,x2:d}):n.set(u,[{x1:a,x2:d}])}}let o=[],s=[...n.keys()].sort((i,a)=>i-a);for(let i of s){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}o.push({y:i,x1:l.x1,x2:l.x2}),l=c}o.push({y:i,x1:l.x1,x2:l.x2})}return o}var vi=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}getBackBuffer(){return this.back}getFrontBuffer(){return this.front}swap(){let t=this.front.diff(this.back),r=this.front;return this.front=this.back,this.back=r,this.back.clearDamage(),t}swapDirty(t){let r=this.front.diffRects(this.back,t),n=this.front;return this.front=this.back,this.back=n,this.back.clearDamage(),r}resize(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}};function Cp(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(ER[e]!==void 0){let n=t?40:30,o=ER[e];return o<8?`${n+o}`:`${n+o+52}`}if(e.startsWith("#")){let n=e.slice(1),o=parseInt(n.slice(0,2),16),s=parseInt(n.slice(2,4),16),i=parseInt(n.slice(4,6),16);return`${r};2;${o};${s};${i}`}return""}return"r"in e?`${r};2;${e.r};${e.g};${e.b}`:"ansi256"in e?`${r};5;${e.ansi256}`:""}function tL(e){let t=[];if(e.bold&&t.push("1"),e.dim&&t.push("2"),e.italic&&t.push("3"),e.underline&&(typeof e.underline=="string"?t.push(JM[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=rL(e.underlineColor);r&&t.push(r)}return e.blink&&t.push("5"),e.inverse&&t.push("7"),e.hidden&&t.push("8"),e.strikethrough&&t.push("9"),t}function rL(e){let t=Cp(e,!1);if(!t)return"";if(t.startsWith("38;"))return`58;${t.slice(3)}`;let r=Number.parseInt(t,10);return Number.isNaN(r)?"":r>=30&&r<=37?`58;5;${r-30}`:r>=90&&r<=97?`58;5;${r-82}`:""}function Pp(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function PR(e,t,r){return[r.bold?"1":"0",r.dim?"1":"0",r.italic?"1":"0",r.underline===void 0||r.underline===!1?"0":String(r.underline),Pp(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",Pp(e),Pp(t)].join("|")}function AR(e,t,r){let n=PR(e,t,r),o=no.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...tL(r));let i=Cp(e,!1),a=Cp(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(no.has(n))no.delete(n);else if(no.size>=YM){let d=no.keys().next();d.done||no.delete(d.value)}return no.set(n,l),l===""?null:l}function nL(e){return e.length===1&&e.charCodeAt(0)<=127?1:be(e)}function Pl(e,t=!1){let r=[];for(let{cells:n}of e.rows()){let o=[],s="",i=null,a=()=>{s.length>0&&(o.push(s),s="")};for(let l of n){if(l.isWide)continue;let d=AR(l.fg,l.bg,l.attrs);d!==i&&(a(),i!==null&&o.push("\x1B[0m"),d!==null&&o.push(`\x1B[${d}m`),i=d),s+=l.char}a(),i!==null&&o.push("\x1B[0m"),r.push(o.join("").trimEnd())}if(!t)for(;r.length>0&&r[r.length-1]==="";)r.pop();return r.join(`
196
- `)}function Dp(e,t,r=!1){if(e.length===0)return"";r||e.sort((d,c)=>d.y!==c.y?d.y-c.y:d.x-c.x);let n=[],o=-1,s=-1,i=null,a="",l=()=>{a.length>0&&(n.push(a),a="")};for(let d of e){let{x:c,y:u,cell:p}=d;if(p.isWide||c<0||c>=t||u<0)continue;(u!==s||c!==o+1)&&(l(),n.push(`\x1B[${u+1};${c+1}H`));let g=AR(p.fg,p.bg,p.attrs);g!==i&&(l(),i!==null&&n.push("\x1B[0m"),g!==null&&n.push(`\x1B[${g}m`),i=g),a+=p.char,o=c+(nL(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Al(e,t){let r=t??$r().multiplexer;if(!r)return e;switch(r.type){case"tmux":return`\x1BPtmux;${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"screen":return`\x1BP${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"zellij":return e}}var oL="\x1B[?2026h",sL="\x1B[?2026l";function CR(e){let t=e??$r();return t.synchronizedOutput?Al(oL,t.multiplexer):""}function DR(e){let t=e??$r();return t.synchronizedOutput?Al(sL,t.multiplexer):""}var Op={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",top:"\u2550",bottom:"\u2550",left:"\u2551",right:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2558",bottomRight:"\u255B",top:"\u2550",bottom:"\u2550",left:"\u2502",right:"\u2502"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},asciiDouble:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"=",bottom:"=",left:"|",right:"|"},markdown:{topLeft:"|",topRight:"|",bottomLeft:"|",bottomRight:"|",top:"-",bottom:"-",left:"|",right:"|"},arrow:{topLeft:"\u2198",topRight:"\u2199",bottomLeft:"\u2197",bottomRight:"\u2196",top:"\u2193",bottom:"\u2191",left:"\u2192",right:"\u2190"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u254C",bottom:"\u254C",left:"\u254E",right:"\u254E"},dashedHeavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u254D",bottom:"\u254D",left:"\u254F",right:"\u254F"},heavyHead:{topLeft:"\u250E",topRight:"\u2512",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2501",bottom:"\u2500",left:"\u2502",right:"\u2502"},doubleHead:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2550",bottom:"\u2500",left:"\u2502",right:"\u2502"},heavyEdge:{topLeft:"\u250D",topRight:"\u2511",bottomLeft:"\u2515",bottomRight:"\u2519",top:"\u2500",bottom:"\u2500",left:"\u2503",right:"\u2503"},doubleEdge:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},minimal:{topLeft:"\u2500",topRight:"\u2500",bottomLeft:"\u2500",bottomRight:"\u2500",top:"\u2500",bottom:"\u2500",left:" ",right:" "},minimalHeavy:{topLeft:"\u2501",topRight:"\u2501",bottomLeft:"\u2501",bottomRight:"\u2501",top:"\u2501",bottom:"\u2501",left:" ",right:" "},minimalDouble:{topLeft:"\u2550",topRight:"\u2550",bottomLeft:"\u2550",bottomRight:"\u2550",top:"\u2550",bottom:"\u2550",left:" ",right:" "},horizontals:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:"\u2500",bottom:"\u2500",left:" ",right:" "},inner:{topLeft:"\u2597",topRight:"\u2596",bottomLeft:"\u259D",bottomRight:"\u2598",top:"\u2584",bottom:"\u2580",left:"\u2590",right:"\u258C"},outer:{topLeft:"\u259B",topRight:"\u259C",bottomLeft:"\u2599",bottomRight:"\u259F",top:"\u2580",bottom:"\u2584",left:"\u258C",right:"\u2590"},thick:{topLeft:"\u2588",topRight:"\u2588",bottomLeft:"\u2588",bottomRight:"\u2588",top:"\u2580",bottom:"\u2584",left:"\u2588",right:"\u2588"},block:{topLeft:"\u2584",topRight:"\u2584",bottomLeft:"\u2580",bottomRight:"\u2580",top:"\u2584",bottom:"\u2580",left:"\u2588",right:"\u2588"},hkey:{topLeft:"\u2594",topRight:"\u2594",bottomLeft:"\u2581",bottomRight:"\u2581",top:"\u2594",bottom:"\u2581",left:" ",right:" "},vkey:{topLeft:"\u258F",topRight:"\u2595",bottomLeft:"\u258F",bottomRight:"\u2595",top:" ",bottom:" ",left:"\u258F",right:"\u2595"},tall:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2594",bottom:"\u2581",left:"\u258A",right:"\u258E"},panel:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2588",bottom:"\u2581",left:"\u258A",right:"\u258E"},tab:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},wide:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},hidden:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},blank:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "}};var FR="\x1B[?25h",iL="\x1B[?25l",Cl=!1,OR=!1,aL=null,Fp=null;function Ip(e){return"isTTY"in e&&!!e.isTTY}function lL(){let e=Fp??process.stdout;Ip(e)&&Cl&&(e.write(FR),Cl=!1)}function dL(){OR||(OR=!0,aL=rn(lL))}function ls(e=process.stdout){Ip(e)&&(Fp=e,Cl=!1,e.write(FR))}function ds(e=process.stdout){Ip(e)&&(Fp=e,dL(),Cl=!0,e.write(iL))}var cL="#ffffff",uL="#000000",pL="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},fL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},gL={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},m={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},He={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ce={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},hL={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ge={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},mL={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},bL={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},he={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},yL={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},kL={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Ze={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},wL={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},te={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},RL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},_L={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},xL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},EL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},vL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},SL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},IR={white:cL,black:uL,transparent:pL,slate:k,gray:fL,zinc:gL,neutral:m,stone:He,red:ce,orange:hL,amber:ge,yellow:mL,lime:bL,green:he,emerald:yL,teal:kL,cyan:Ze,sky:wL,blue:te,indigo:RL,violet:_L,purple:xL,fuchsia:EL,pink:vL,rose:SL};var ee={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},Mp={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:ee,background:{lowest:k[950],base:k[900],subtle:k[800],surface:k[700],raised:k[600],elevated:k[500],popover:k[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:k[50],secondary:k[200],muted:k[400],disabled:k[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:ee.success[500],warning:ee.warning[500],critical:ee.danger[500],info:Ze[500],highlight:ee.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:ee.primary[400],ring:{color:ee.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:ee.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:ee.primary[500],danger:ee.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:ee.primary[500],fg:"#ffffff",hoverBg:ee.primary[400],activeBg:ee.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:ee.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:ee.primary[500]},ghost:{bg:"transparent",fg:k[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:k[800],headerBg:k[700],footerBg:k[700],border:k[700]},menu:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],activeBg:ee.primary[700],selectedBg:ee.primary[600],disabledFg:k[500]}},tabs:{bg:k[800],border:k[700],tab:{fg:k[400],activeFg:k[50],activeBg:k[700],hoverFg:k[200],indicator:ee.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:ee.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:ee.primary[500],invalidBorder:ee.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:ee.primary[500]},radio:{bg:k[800],dotColor:ee.primary[500],border:k[600],checkedBorder:ee.primary[500]},tooltip:{bg:k[700],fg:k[50]},modal:{bg:k[800],border:k[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:k[700],fg:k[50]},success:{bg:ee.success[500],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:ee.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:ee.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:ee.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.success[700]},warning:{bg:ee.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:ee.warning[600]},danger:{bg:ee.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:ee.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:ee.success[600],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:ee.primary[400],subtitleFg:k[400],border:ee.primary[700]},secondary:{bg:k[900],titleFg:k[200],subtitleFg:k[500],border:k[700]}},appshell:{bg:k[950],dividerFg:k[700],sidebarBg:k[900],asideBg:k[900]},collapsible:{default:{headerBg:k[800],headerFg:k[50],contentBg:k[900],border:k[700],iconFg:k[400]},primary:{headerBg:ee.primary[700],headerFg:"#ffffff",contentBg:k[900],border:ee.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:k[700],headerFg:k[50],contentBg:k[800],border:k[600],iconFg:k[400]}},commandPalette:{bg:k[800],border:k[700],inputBg:k[900],inputFg:k[50],inputPlaceholder:k[500],itemFg:k[50],itemHoverBg:k[700],itemSelectedBg:ee.primary[700],itemSelectedFg:"#ffffff",highlightFg:ee.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:ee.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:ee.success[900],fg:ee.success[100],border:ee.success[600],iconFg:ee.success[400]},error:{bg:ee.danger[900],fg:ee.danger[100],border:ee.danger[600],iconFg:ee.danger[400]},warning:{bg:ee.warning[900],fg:ee.warning[100],border:ee.warning[500],iconFg:ee.warning[400]},info:{bg:Ze[900],fg:Ze[100],border:Ze[600],iconFg:Ze[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:ee.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:ee.primary[600],titleBarFg:"#ffffff",border:ee.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:ee.success[600],titleBarFg:"#ffffff",border:ee.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:ee.warning[500],titleBarFg:k[900],border:ee.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:ee.danger[600],titleBarFg:"#ffffff",border:ee.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},MR={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:he[600],warning:ge[600],critical:ce[600],info:Ze[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:k[300],checkedBorder:Y.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Y.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:k[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:k[600],border:Y.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Y.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:Ze[50],fg:Ze[900],border:Ze[200],iconFg:Ze[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Y.warning[500],titleBarFg:k[900],border:Y.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},oo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},LR={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:oo,background:{lowest:O.backgroundDark,base:O.background,subtle:O.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:O.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:O.foreground,secondary:"#E8E8E2",muted:O.comment,disabled:"#5B5A4F",inverse:{base:O.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:O.green,warning:O.yellow,critical:O.pink,info:O.cyan,highlight:O.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:O.green,ring:{color:O.green,width:2}},disabled:{opacity:.4,bg:O.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:O.foreground}},borders:{default:"#49483E",subtle:O.backgroundLight,strong:O.comment,accent:O.green,danger:O.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:O.green,fg:O.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:O.foreground,hoverBg:"#5B5A4F",activeBg:O.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:O.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:O.green},ghost:{bg:"transparent",fg:O.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:O.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:O.backgroundLight,border:"#49483E",tab:{fg:O.comment,activeFg:O.foreground,activeBg:O.background,hoverFg:"#E8E8E2",indicator:O.green}},dropdown:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:O.backgroundLight,fg:O.foreground,placeholder:O.comment,border:"#49483E",focusBorder:O.green,invalidBorder:O.pink},checkbox:{bg:O.backgroundLight,border:"#5B5A4F",checkColor:O.background,checkedBg:O.green},radio:{bg:O.backgroundLight,dotColor:O.green,border:"#5B5A4F",checkedBorder:O.green},tooltip:{bg:"#49483E",fg:O.foreground},modal:{bg:O.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:O.foreground},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:O.backgroundLight,selectedBg:"#49483E",fg:O.foreground}},header:{default:{bg:O.backgroundLight,fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#5B5A4F"},success:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:O.yellow,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:O.orange},danger:{bg:O.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:O.backgroundLight,fg:O.comment},primary:{bg:O.green,fg:O.background},info:{bg:O.cyan,fg:O.background},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},page:{default:{bg:O.background,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.background,titleFg:O.green,subtitleFg:O.comment,border:O.green},secondary:{bg:O.background,titleFg:"#E8E8E2",subtitleFg:O.comment,border:"#49483E"}},appshell:{bg:O.backgroundDark,dividerFg:"#49483E",sidebarBg:O.background,asideBg:O.background},collapsible:{default:{headerBg:O.backgroundLight,headerFg:O.foreground,contentBg:O.background,border:"#49483E",iconFg:O.comment},primary:{headerBg:"#49483E",headerFg:O.green,contentBg:O.background,border:O.green,iconFg:O.green},secondary:{headerBg:"#49483E",headerFg:O.foreground,contentBg:O.backgroundLight,border:"#5B5A4F",iconFg:O.comment}},commandPalette:{bg:O.backgroundLight,border:"#49483E",inputBg:O.background,inputFg:O.foreground,inputPlaceholder:O.comment,itemFg:O.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:O.foreground,highlightFg:O.green,categoryFg:O.comment},splitPanel:{bg:O.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:O.green,border:"#49483E",titleFg:O.comment},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:O.green,iconFg:O.green},error:{bg:oo.danger[900],fg:oo.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:oo.warning[900],fg:oo.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},so={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},jR={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:so,background:{lowest:"#21222C",base:P.background,subtle:P.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:P.comment,popover:P.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:P.foreground,secondary:"#E8E8E2",muted:P.comment,disabled:"#565869",inverse:{base:P.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:P.purple,ring:{color:P.purple,width:2}},disabled:{opacity:.4,bg:P.currentLine,fg:"#565869"},selected:{bg:P.currentLine,fg:P.foreground}},borders:{default:P.comment,subtle:P.currentLine,strong:P.purple,accent:P.purple,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:P.purple,fg:P.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:P.currentLine,fg:P.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:P.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:P.purple},ghost:{bg:"transparent",fg:P.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:P.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:P.comment},menu:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:P.currentLine,border:P.comment,tab:{fg:P.comment,activeFg:P.foreground,activeBg:P.background,hoverFg:"#E8E8E2",indicator:P.purple}},dropdown:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:P.currentLine,fg:P.foreground,placeholder:P.comment,border:P.comment,focusBorder:P.purple,invalidBorder:P.red},checkbox:{bg:P.currentLine,border:P.comment,checkColor:P.foreground,checkedBg:P.purple},radio:{bg:P.currentLine,dotColor:P.purple,border:P.comment,checkedBorder:P.purple},tooltip:{bg:"#4D4F5F",fg:P.foreground},modal:{bg:P.currentLine,border:P.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:P.comment,fg:P.foreground},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.currentLine,selectedBg:"#4D4F5F",fg:P.foreground}},header:{default:{bg:P.currentLine,fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.purple,fg:P.foreground,titleFg:P.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:"#565869"},success:{bg:P.green,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:P.yellow,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.currentLine,fg:P.comment},primary:{bg:P.purple,fg:P.foreground},info:{bg:P.cyan,fg:P.background},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.background,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.background,titleFg:P.purple,subtitleFg:P.comment,border:P.purple},secondary:{bg:P.background,titleFg:"#E8E8E2",subtitleFg:P.comment,border:P.currentLine}},appshell:{bg:"#21222C",dividerFg:P.comment,sidebarBg:P.background,asideBg:P.background},collapsible:{default:{headerBg:P.currentLine,headerFg:P.foreground,contentBg:P.background,border:P.comment,iconFg:P.comment},primary:{headerBg:"#4D4F5F",headerFg:P.purple,contentBg:P.background,border:P.purple,iconFg:P.purple},secondary:{headerBg:"#4D4F5F",headerFg:P.foreground,contentBg:P.currentLine,border:"#565869",iconFg:P.comment}},commandPalette:{bg:P.currentLine,border:P.comment,inputBg:P.background,inputFg:P.foreground,inputPlaceholder:P.comment,itemFg:P.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:P.foreground,highlightFg:P.purple,categoryFg:P.comment},splitPanel:{bg:P.background,dividerBg:P.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:P.purple,border:P.comment,titleFg:P.comment},toast:{success:{bg:so.success[900],fg:so.success[100],border:P.green,iconFg:P.green},error:{bg:so.danger[900],fg:so.danger[100],border:P.red,iconFg:P.red},warning:{bg:so.warning[900],fg:so.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.background,fg:P.foreground,titleBarBg:P.currentLine,titleBarFg:P.foreground,border:P.comment,buttonFg:P.comment,closeFg:P.red},primary:{bg:P.background,fg:P.foreground,titleBarBg:P.purple,titleBarFg:P.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:P.foreground},success:{bg:P.background,fg:P.foreground,titleBarBg:P.green,titleBarFg:P.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},warning:{bg:P.background,fg:P.foreground,titleBarBg:P.yellow,titleBarFg:P.background,border:P.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},danger:{bg:P.background,fg:P.foreground,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={nord0:"#2E3440",nord1:"#3B4252",nord2:"#434C5E",nord3:"#4C566A",nord4:"#D8DEE9",nord5:"#E5E9F0",nord6:"#ECEFF4",nord7:"#8FBCBB",nord8:"#88C0D0",nord9:"#81A1C1",nord10:"#5E81AC",nord11:"#BF616A",nord12:"#D08770",nord13:"#EBCB8B",nord14:"#A3BE8C",nord15:"#B48EAD"},io={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:E.nord8,400:E.nord8,500:E.nord8,600:E.nord9,700:E.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:E.nord14,500:E.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:E.nord13,400:E.nord13,500:E.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:E.nord11,500:E.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:E.nord6,100:E.nord5,200:E.nord4,300:"#A3ADB8",400:"#7A8694",500:E.nord3,600:E.nord2,700:E.nord1,800:E.nord0,900:"#242933"}},BR={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:io,background:{lowest:"#242933",base:E.nord0,subtle:E.nord1,surface:E.nord2,raised:E.nord3,elevated:"#5E6779",popover:E.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:E.nord6,secondary:E.nord5,muted:E.nord4,disabled:E.nord3,inverse:{base:E.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:E.nord14,warning:E.nord13,critical:E.nord11,info:E.nord9,highlight:E.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.nord8,ring:{color:E.nord8,width:2}},disabled:{opacity:.4,bg:E.nord1,fg:E.nord3},selected:{bg:E.nord1,fg:E.nord6}},borders:{default:E.nord3,subtle:E.nord1,strong:E.nord4,accent:E.nord8,danger:E.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:E.nord8,fg:E.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:E.nord2,fg:E.nord6,hoverBg:E.nord3,activeBg:E.nord1,border:"transparent"},outline:{bg:"transparent",fg:E.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:E.nord8},ghost:{bg:"transparent",fg:E.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.nord1,headerBg:E.nord2,footerBg:E.nord2,border:E.nord3},menu:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,activeBg:E.nord3,selectedBg:E.nord2,disabledFg:E.nord3}},tabs:{bg:E.nord1,border:E.nord3,tab:{fg:E.nord4,activeFg:E.nord6,activeBg:E.nord0,hoverFg:E.nord5,indicator:E.nord8}},dropdown:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,selectedBg:E.nord3}},input:{bg:E.nord1,fg:E.nord6,placeholder:E.nord4,border:E.nord3,focusBorder:E.nord8,invalidBorder:E.nord11},checkbox:{bg:E.nord1,border:E.nord3,checkColor:E.nord0,checkedBg:E.nord8},radio:{bg:E.nord1,dotColor:E.nord8,border:E.nord3,checkedBorder:E.nord8},tooltip:{bg:E.nord2,fg:E.nord6},modal:{bg:E.nord1,border:E.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:E.nord3,fg:E.nord6},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.nord1,selectedBg:E.nord2,fg:E.nord6}},header:{default:{bg:E.nord1,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord8,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:E.nord9},secondary:{bg:E.nord2,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},success:{bg:E.nord14,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:E.nord13,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:E.nord12},danger:{bg:E.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:E.nord1,fg:E.nord4},primary:{bg:E.nord8,fg:E.nord0},info:{bg:E.nord9,fg:"#ffffff"},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},page:{default:{bg:E.nord0,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord0,titleFg:E.nord8,subtitleFg:E.nord4,border:E.nord8},secondary:{bg:E.nord0,titleFg:E.nord5,subtitleFg:E.nord4,border:E.nord1}},appshell:{bg:"#242933",dividerFg:E.nord3,sidebarBg:E.nord0,asideBg:E.nord0},collapsible:{default:{headerBg:E.nord1,headerFg:E.nord6,contentBg:E.nord0,border:E.nord3,iconFg:E.nord4},primary:{headerBg:E.nord2,headerFg:E.nord8,contentBg:E.nord0,border:E.nord8,iconFg:E.nord8},secondary:{headerBg:E.nord2,headerFg:E.nord6,contentBg:E.nord1,border:E.nord3,iconFg:E.nord4}},commandPalette:{bg:E.nord1,border:E.nord3,inputBg:E.nord0,inputFg:E.nord6,inputPlaceholder:E.nord4,itemFg:E.nord6,itemHoverBg:E.nord2,itemSelectedBg:E.nord3,itemSelectedFg:E.nord6,highlightFg:E.nord8,categoryFg:E.nord4},splitPanel:{bg:E.nord0,dividerBg:E.nord3,dividerHoverBg:E.nord2,dividerActiveBg:E.nord8,border:E.nord3,titleFg:E.nord4},toast:{success:{bg:io.success[900],fg:io.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:io.danger[900],fg:io.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:io.warning[900],fg:io.warning[100],border:E.nord13,iconFg:E.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.nord9,iconFg:E.nord9}},window:{default:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord1,titleBarFg:E.nord6,border:E.nord3,buttonFg:E.nord4,closeFg:E.nord11},primary:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord8,titleBarFg:E.nord0,border:E.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},success:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord14,titleBarFg:E.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},warning:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord13,titleBarFg:E.nord0,border:E.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},danger:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},ao={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:S.blue,500:S.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:S.green,500:S.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:S.yellow,500:S.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.red,500:S.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.base3,100:S.base2,200:S.base1,300:S.base0,400:S.base00,500:S.base01,600:"#4A5A60",700:S.base02,800:S.base03,900:"#001E26"}},$R={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:ao,background:{lowest:"#001E26",base:S.base03,subtle:S.base02,surface:"#094652",raised:"#0B5A66",elevated:S.base01,popover:S.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.base0,secondary:S.base1,muted:S.base00,disabled:S.base01,inverse:{base:S.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:S.green,warning:S.yellow,critical:S.red,info:S.cyan,highlight:S.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.blue,ring:{color:S.blue,width:2}},disabled:{opacity:.4,bg:S.base02,fg:S.base01},selected:{bg:S.base02,fg:S.base1}},borders:{default:S.base01,subtle:S.base02,strong:S.base0,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:S.base02,fg:S.base1,hoverBg:"#094652",activeBg:S.base03,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.base02,headerBg:"#094652",footerBg:"#094652",border:S.base01},menu:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:S.base01}},tabs:{bg:S.base02,border:S.base01,tab:{fg:S.base00,activeFg:S.base1,activeBg:S.base03,hoverFg:S.base0,indicator:S.blue}},dropdown:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:S.base02,fg:S.base0,placeholder:S.base00,border:S.base01,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.base02,border:S.base01,checkColor:S.base3,checkedBg:S.blue},radio:{bg:S.base02,dotColor:S.blue,border:S.base01,checkedBorder:S.blue},tooltip:{bg:"#094652",fg:S.base1},modal:{bg:S.base02,border:S.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.base01,fg:S.base1},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.base02,selectedBg:"#094652",fg:S.base0}},header:{default:{bg:S.base02,fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.blue,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:"#0B5A66"},success:{bg:S.green,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.base03,titleFg:S.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.base02,fg:S.base00},primary:{bg:S.blue,fg:S.base3},info:{bg:S.cyan,fg:S.base03},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.base03,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.base03,titleFg:S.blue,subtitleFg:S.base00,border:S.blue},secondary:{bg:S.base03,titleFg:S.base0,subtitleFg:S.base00,border:S.base02}},appshell:{bg:"#001E26",dividerFg:S.base01,sidebarBg:S.base03,asideBg:S.base03},collapsible:{default:{headerBg:S.base02,headerFg:S.base1,contentBg:S.base03,border:S.base01,iconFg:S.base00},primary:{headerBg:"#094652",headerFg:S.blue,contentBg:S.base03,border:S.blue,iconFg:S.blue},secondary:{headerBg:"#094652",headerFg:S.base1,contentBg:S.base02,border:"#0B5A66",iconFg:S.base00}},commandPalette:{bg:S.base02,border:S.base01,inputBg:S.base03,inputFg:S.base0,inputPlaceholder:S.base00,itemFg:S.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:S.base1,highlightFg:S.blue,categoryFg:S.base00},splitPanel:{bg:S.base03,dividerBg:S.base01,dividerHoverBg:"#094652",dividerActiveBg:S.blue,border:S.base01,titleFg:S.base00},toast:{success:{bg:ao.success[900],fg:ao.success[100],border:S.green,iconFg:S.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:S.red,iconFg:S.red},warning:{bg:ao.warning[900],fg:ao.warning[100],border:S.yellow,iconFg:S.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.cyan,iconFg:S.cyan}},window:{default:{bg:S.base03,fg:S.base0,titleBarBg:S.base02,titleBarFg:S.base1,border:S.base01,buttonFg:S.base00,closeFg:S.red},primary:{bg:S.base03,fg:S.base0,titleBarBg:S.blue,titleBarFg:S.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},success:{bg:S.base03,fg:S.base0,titleBarBg:S.green,titleBarFg:S.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},warning:{bg:S.base03,fg:S.base0,titleBarBg:S.yellow,titleBarFg:S.base03,border:S.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:S.base03},danger:{bg:S.base03,fg:S.base0,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},lo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:_.red,500:_.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:_.fg0,100:_.fg1,200:_.fg2,300:_.fg3,400:_.fg4,500:_.gray,600:_.bg4,700:_.bg3,800:_.bg2,900:_.bg1}},NR={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:lo,background:{lowest:_.bg0_h,base:_.bg0,subtle:_.bg1,surface:_.bg2,raised:_.bg3,elevated:_.bg4,popover:_.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.fg1,secondary:_.fg2,muted:_.gray,disabled:_.bg3,inverse:{base:_.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.blue,highlight:_.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.green,ring:{color:_.green,width:2}},disabled:{opacity:.4,bg:_.bg1,fg:_.bg3},selected:{bg:_.bg2,fg:_.fg1}},borders:{default:_.bg3,subtle:_.bg2,strong:_.gray,accent:_.green,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.green,fg:_.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:_.bg2,fg:_.fg1,hoverBg:_.bg3,activeBg:_.bg1,border:"transparent"},outline:{bg:"transparent",fg:_.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:_.green},ghost:{bg:"transparent",fg:_.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.bg1,headerBg:_.bg2,footerBg:_.bg2,border:_.bg3},menu:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,activeBg:_.bg3,selectedBg:_.bg2,disabledFg:_.bg3}},tabs:{bg:_.bg1,border:_.bg3,tab:{fg:_.gray,activeFg:_.fg1,activeBg:_.bg0,hoverFg:_.fg2,indicator:_.green}},dropdown:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,selectedBg:_.bg3}},input:{bg:_.bg1,fg:_.fg1,placeholder:_.gray,border:_.bg3,focusBorder:_.green,invalidBorder:_.red},checkbox:{bg:_.bg1,border:_.bg3,checkColor:_.bg0,checkedBg:_.green},radio:{bg:_.bg1,dotColor:_.green,border:_.bg3,checkedBorder:_.green},tooltip:{bg:_.bg2,fg:_.fg1},modal:{bg:_.bg1,border:_.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.bg3,fg:_.fg1},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.bg1,selectedBg:_.bg2,fg:_.fg1}},header:{default:{bg:_.bg1,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:_.bg2,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},success:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:_.yellow,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:_.orange},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:_.bg1,fg:_.gray},primary:{bg:_.green,fg:_.bg0},info:{bg:_.blue,fg:_.bg0},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.bg0,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.bg0,titleFg:_.green,subtitleFg:_.gray,border:_.green},secondary:{bg:_.bg0,titleFg:_.fg2,subtitleFg:_.gray,border:_.bg2}},appshell:{bg:_.bg0_h,dividerFg:_.bg3,sidebarBg:_.bg0,asideBg:_.bg0},collapsible:{default:{headerBg:_.bg1,headerFg:_.fg1,contentBg:_.bg0,border:_.bg3,iconFg:_.gray},primary:{headerBg:_.bg2,headerFg:_.green,contentBg:_.bg0,border:_.green,iconFg:_.green},secondary:{headerBg:_.bg2,headerFg:_.fg1,contentBg:_.bg1,border:_.bg3,iconFg:_.gray}},commandPalette:{bg:_.bg1,border:_.bg3,inputBg:_.bg0,inputFg:_.fg1,inputPlaceholder:_.gray,itemFg:_.fg1,itemHoverBg:_.bg2,itemSelectedBg:_.bg3,itemSelectedFg:_.fg1,highlightFg:_.green,categoryFg:_.gray},splitPanel:{bg:_.bg0,dividerBg:_.bg3,dividerHoverBg:_.bg2,dividerActiveBg:_.green,border:_.bg3,titleFg:_.gray},toast:{success:{bg:lo.success[900],fg:lo.success[100],border:_.green,iconFg:_.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:_.red,iconFg:_.red},warning:{bg:lo.warning[900],fg:lo.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.blue,iconFg:_.blue}},window:{default:{bg:_.bg0,fg:_.fg1,titleBarBg:_.bg1,titleBarFg:_.fg1,border:_.bg3,buttonFg:_.gray,closeFg:_.red},primary:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},success:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},warning:{bg:_.bg0,fg:_.fg1,titleBarBg:_.yellow,titleBarFg:_.bg0,border:_.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},danger:{bg:_.bg0,fg:_.fg1,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={bg:"#1A1B26",bgDark:"#16161E",bgHighlight:"#24283B",bgPopup:"#2F3549",fg:"#A9B1D6",fgDark:"#9AA5CE",blue:"#7AA2F7",cyan:"#7DCFFF",green:"#9ECE6A",magenta:"#BB9AF7",orange:"#FF9E64",purple:"#9D7CD8",red:"#F7768E",teal:"#73DACA",yellow:"#E0AF68",comment:"#565F89",dark3:"#414868",dark5:"#737AA2"},co={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:v.blue,500:v.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:v.green,500:v.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:v.yellow,500:v.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:v.red,500:v.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},GR={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:co,background:{lowest:v.bgDark,base:v.bg,subtle:v.bgHighlight,surface:v.bgPopup,raised:v.dark3,elevated:v.comment,popover:v.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:v.fg,secondary:v.fgDark,muted:v.comment,disabled:v.dark3,inverse:{base:v.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:v.green,warning:v.yellow,critical:v.red,info:v.cyan,highlight:v.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.blue,ring:{color:v.blue,width:2}},disabled:{opacity:.4,bg:v.bgHighlight,fg:v.dark3},selected:{bg:v.bgHighlight,fg:v.fg}},borders:{default:v.dark3,subtle:v.bgHighlight,strong:v.comment,accent:v.blue,danger:v.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:v.blue,fg:v.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:v.bgHighlight,fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,border:"transparent"},outline:{bg:"transparent",fg:v.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:v.blue},ghost:{bg:"transparent",fg:v.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.bgHighlight,headerBg:v.bgPopup,footerBg:v.bgPopup,border:v.dark3},menu:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,selectedBg:v.bgPopup,disabledFg:v.dark3}},tabs:{bg:v.bgHighlight,border:v.dark3,tab:{fg:v.comment,activeFg:v.fg,activeBg:v.bg,hoverFg:v.fgDark,indicator:v.blue}},dropdown:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,selectedBg:v.dark3}},input:{bg:v.bgHighlight,fg:v.fg,placeholder:v.comment,border:v.dark3,focusBorder:v.blue,invalidBorder:v.red},checkbox:{bg:v.bgHighlight,border:v.dark3,checkColor:v.bg,checkedBg:v.blue},radio:{bg:v.bgHighlight,dotColor:v.blue,border:v.dark3,checkedBorder:v.blue},tooltip:{bg:v.bgPopup,fg:v.fg},modal:{bg:v.bgHighlight,border:v.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:v.dark3,fg:v.fg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.bgHighlight,selectedBg:v.bgPopup,fg:v.fg}},header:{default:{bg:v.bgHighlight,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.blue,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:v.bgPopup,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},success:{bg:v.green,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:v.yellow,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:v.orange},danger:{bg:v.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:v.bgHighlight,fg:v.comment},primary:{bg:v.blue,fg:v.bg},info:{bg:v.cyan,fg:v.bg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},page:{default:{bg:v.bg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.bg,titleFg:v.blue,subtitleFg:v.comment,border:v.blue},secondary:{bg:v.bg,titleFg:v.fgDark,subtitleFg:v.comment,border:v.bgHighlight}},appshell:{bg:v.bgDark,dividerFg:v.dark3,sidebarBg:v.bg,asideBg:v.bg},collapsible:{default:{headerBg:v.bgHighlight,headerFg:v.fg,contentBg:v.bg,border:v.dark3,iconFg:v.comment},primary:{headerBg:v.bgPopup,headerFg:v.blue,contentBg:v.bg,border:v.blue,iconFg:v.blue},secondary:{headerBg:v.bgPopup,headerFg:v.fg,contentBg:v.bgHighlight,border:v.dark3,iconFg:v.comment}},commandPalette:{bg:v.bgHighlight,border:v.dark3,inputBg:v.bg,inputFg:v.fg,inputPlaceholder:v.comment,itemFg:v.fg,itemHoverBg:v.bgPopup,itemSelectedBg:v.dark3,itemSelectedFg:v.fg,highlightFg:v.blue,categoryFg:v.comment},splitPanel:{bg:v.bg,dividerBg:v.dark3,dividerHoverBg:v.bgPopup,dividerActiveBg:v.blue,border:v.dark3,titleFg:v.comment},toast:{success:{bg:co.success[900],fg:co.success[100],border:v.green,iconFg:v.green},error:{bg:co.danger[900],fg:co.danger[100],border:v.red,iconFg:v.red},warning:{bg:co.warning[900],fg:co.warning[100],border:v.yellow,iconFg:v.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.cyan,iconFg:v.cyan}},window:{default:{bg:v.bg,fg:v.fg,titleBarBg:v.bgHighlight,titleBarFg:v.fg,border:v.dark3,buttonFg:v.comment,closeFg:v.red},primary:{bg:v.bg,fg:v.fg,titleBarBg:v.blue,titleBarFg:v.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},success:{bg:v.bg,fg:v.fg,titleBarBg:v.green,titleBarFg:v.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},warning:{bg:v.bg,fg:v.fg,titleBarBg:v.yellow,titleBarFg:v.bg,border:v.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},danger:{bg:v.bg,fg:v.fg,titleBarBg:v.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},uo={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:x.mauve,500:x.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.green,500:x.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:x.yellow,500:x.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:x.red,500:x.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:x.text,100:x.subtext1,200:x.subtext0,300:x.overlay2,400:x.overlay1,500:x.overlay0,600:x.surface2,700:x.surface1,800:x.surface0,900:x.base}},WR={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:uo,background:{lowest:x.crust,base:x.base,subtle:x.surface0,surface:x.surface1,raised:x.surface2,elevated:x.overlay0,popover:x.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.text,secondary:x.subtext1,muted:x.overlay0,disabled:x.surface2,inverse:{base:x.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.sky,highlight:x.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.mauve,ring:{color:x.mauve,width:2}},disabled:{opacity:.4,bg:x.surface0,fg:x.surface2},selected:{bg:x.surface0,fg:x.text}},borders:{default:x.overlay0,subtle:x.surface1,strong:x.subtext1,accent:x.mauve,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.mauve,fg:x.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:x.surface0,fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,border:"transparent"},outline:{bg:"transparent",fg:x.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:x.mauve},ghost:{bg:"transparent",fg:x.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.surface0,headerBg:x.surface1,footerBg:x.surface1,border:x.overlay0},menu:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,selectedBg:x.surface1,disabledFg:x.surface2}},tabs:{bg:x.surface0,border:x.overlay0,tab:{fg:x.overlay0,activeFg:x.text,activeBg:x.base,hoverFg:x.subtext1,indicator:x.mauve}},dropdown:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,selectedBg:x.surface2}},input:{bg:x.surface0,fg:x.text,placeholder:x.overlay0,border:x.overlay0,focusBorder:x.mauve,invalidBorder:x.red},checkbox:{bg:x.surface0,border:x.overlay0,checkColor:x.base,checkedBg:x.mauve},radio:{bg:x.surface0,dotColor:x.mauve,border:x.overlay0,checkedBorder:x.mauve},tooltip:{bg:x.surface1,fg:x.text},modal:{bg:x.surface0,border:x.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.surface2,fg:x.text},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.surface0,selectedBg:x.surface1,fg:x.text}},header:{default:{bg:x.surface0,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.mauve,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:x.surface1,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.surface2},success:{bg:x.green,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:x.yellow,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:x.peach},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:x.surface0,fg:x.overlay0},primary:{bg:x.mauve,fg:x.base},info:{bg:x.sky,fg:x.base},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.base,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.base,titleFg:x.mauve,subtitleFg:x.overlay0,border:x.mauve},secondary:{bg:x.base,titleFg:x.subtext1,subtitleFg:x.overlay0,border:x.surface0}},appshell:{bg:x.crust,dividerFg:x.overlay0,sidebarBg:x.base,asideBg:x.base},collapsible:{default:{headerBg:x.surface0,headerFg:x.text,contentBg:x.base,border:x.overlay0,iconFg:x.overlay0},primary:{headerBg:x.surface1,headerFg:x.mauve,contentBg:x.base,border:x.mauve,iconFg:x.mauve},secondary:{headerBg:x.surface1,headerFg:x.text,contentBg:x.surface0,border:x.surface2,iconFg:x.overlay0}},commandPalette:{bg:x.surface0,border:x.overlay0,inputBg:x.base,inputFg:x.text,inputPlaceholder:x.overlay0,itemFg:x.text,itemHoverBg:x.surface1,itemSelectedBg:x.surface2,itemSelectedFg:x.text,highlightFg:x.mauve,categoryFg:x.overlay0},splitPanel:{bg:x.base,dividerBg:x.overlay0,dividerHoverBg:x.surface1,dividerActiveBg:x.mauve,border:x.overlay0,titleFg:x.overlay0},toast:{success:{bg:uo.success[900],fg:uo.success[100],border:x.green,iconFg:x.green},error:{bg:uo.danger[900],fg:uo.danger[100],border:x.red,iconFg:x.red},warning:{bg:uo.warning[900],fg:uo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.sky,iconFg:x.sky}},window:{default:{bg:x.base,fg:x.text,titleBarBg:x.surface0,titleBarFg:x.text,border:x.overlay0,buttonFg:x.overlay0,closeFg:x.red},primary:{bg:x.base,fg:x.text,titleBarBg:x.mauve,titleBarFg:x.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},success:{bg:x.base,fg:x.text,titleBarBg:x.green,titleBarFg:x.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},warning:{bg:x.base,fg:x.text,titleBarBg:x.yellow,titleBarFg:x.base,border:x.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},danger:{bg:x.base,fg:x.text,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var po={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},HR={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:po,background:{lowest:"#000000",base:"#000000",subtle:m[950],surface:m[900],raised:m[800],elevated:m[700],popover:m[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:m[100],muted:m[300],disabled:m[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:he[400],warning:ge[400],critical:ce[400],info:Ze[400],highlight:te[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:te[400],ring:{color:te[400],width:3}},disabled:{opacity:.5,bg:m[900],fg:m[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:m[500],subtle:m[700],strong:m[300],accent:te[400],danger:ce[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:te[500],fg:"#ffffff",hoverBg:te[400],activeBg:te[600],border:te[300]},secondary:{bg:m[800],fg:"#ffffff",hoverBg:m[700],activeBg:m[900],border:m[500]},outline:{bg:"transparent",fg:te[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:te[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:m[950],headerBg:m[900],footerBg:m[900],border:m[500]},menu:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],activeBg:te[800],selectedBg:te[900],disabledFg:m[500]}},tabs:{bg:m[950],border:m[500],tab:{fg:m[300],activeFg:"#ffffff",activeBg:m[800],hoverFg:m[100],indicator:te[400]}},dropdown:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:m[400],border:m[500],focusBorder:te[400],invalidBorder:ce[400]},checkbox:{bg:"#000000",border:m[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:m[400],checkedBorder:te[400]},tooltip:{bg:m[800],fg:"#ffffff"},modal:{bg:m[950],border:m[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:m[700],fg:"#ffffff"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:m[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:m[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:m[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},success:{bg:he[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:he[300]},warning:{bg:ge[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[600]},danger:{bg:ce[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ce[300]}},statusbar:{default:{bg:m[950],fg:m[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Ze[500],fg:"#000000"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:m[300],border:te[400]},secondary:{bg:"#000000",titleFg:m[100],subtitleFg:m[400],border:m[700]}},appshell:{bg:"#000000",dividerFg:m[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:m[950],headerFg:"#ffffff",contentBg:"#000000",border:m[500],iconFg:m[300]},primary:{headerBg:m[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:m[900],headerFg:"#ffffff",contentBg:m[950],border:m[500],iconFg:m[300]}},commandPalette:{bg:m[950],border:m[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:m[400],itemFg:"#ffffff",itemHoverBg:m[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:m[400]},splitPanel:{bg:"#000000",dividerBg:m[500],dividerHoverBg:m[400],dividerActiveBg:te[400],border:m[500],titleFg:m[300]},toast:{success:{bg:po.success[900],fg:po.success[100],border:he[400],iconFg:he[400]},error:{bg:po.danger[900],fg:po.danger[100],border:ce[400],iconFg:ce[400]},warning:{bg:po.warning[900],fg:po.warning[100],border:ge[400],iconFg:ge[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Ze[400],iconFg:Ze[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:m[950],titleBarFg:"#ffffff",border:m[500],buttonFg:m[300],closeFg:ce[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:te[500],titleBarFg:"#ffffff",border:te[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:he[500],titleBarFg:"#000000",border:he[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[400],titleBarFg:"#000000",border:ge[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ce[500],titleBarFg:"#ffffff",border:ce[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var TL={primary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},warning:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},danger:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},UR={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:TL,background:{lowest:m[950],base:m[900],subtle:m[800],surface:m[700],raised:m[600],elevated:m[500],popover:m[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:m[50],secondary:m[200],muted:m[400],disabled:m[500],inverse:{base:m[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:m[300],warning:m[400],critical:m[200],info:m[300],highlight:m[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:m[400],ring:{color:m[400],width:2}},disabled:{opacity:.4,bg:m[800],fg:m[500]},selected:{bg:m[700],fg:m[50]}},borders:{default:m[600],subtle:m[700],strong:m[400],accent:m[400],danger:m[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:m[300],fg:m[900],hoverBg:m[200],activeBg:m[400],border:"transparent"},secondary:{bg:m[700],fg:m[50],hoverBg:m[600],activeBg:m[800],border:"transparent"},outline:{bg:"transparent",fg:m[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:m[400]},ghost:{bg:"transparent",fg:m[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:m[800],headerBg:m[700],footerBg:m[700],border:m[600]},menu:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],activeBg:m[600],selectedBg:m[700],disabledFg:m[500]}},tabs:{bg:m[800],border:m[600],tab:{fg:m[400],activeFg:m[50],activeBg:m[700],hoverFg:m[200],indicator:m[300]}},dropdown:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],selectedBg:m[600]}},input:{bg:m[800],fg:m[50],placeholder:m[500],border:m[600],focusBorder:m[400],invalidBorder:m[300]},checkbox:{bg:m[800],border:m[500],checkColor:m[900],checkedBg:m[300]},radio:{bg:m[800],dotColor:m[300],border:m[500],checkedBorder:m[300]},tooltip:{bg:m[700],fg:m[50]},modal:{bg:m[800],border:m[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:m[700],fg:m[50]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},list:{item:{bg:"transparent",hoverBg:m[800],selectedBg:m[700],fg:m[50]}},header:{default:{bg:m[800],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]},secondary:{bg:m[700],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},success:{bg:m[400],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[500]},warning:{bg:m[500],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[600]},danger:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]}},statusbar:{default:{bg:m[800],fg:m[400]},primary:{bg:m[300],fg:m[900]},info:{bg:m[400],fg:m[900]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},page:{default:{bg:m[900],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[900],titleFg:m[200],subtitleFg:m[400],border:m[500]},secondary:{bg:m[900],titleFg:m[300],subtitleFg:m[500],border:m[700]}},appshell:{bg:m[950],dividerFg:m[600],sidebarBg:m[900],asideBg:m[900]},collapsible:{default:{headerBg:m[800],headerFg:m[50],contentBg:m[900],border:m[600],iconFg:m[400]},primary:{headerBg:m[700],headerFg:m[200],contentBg:m[900],border:m[500],iconFg:m[300]},secondary:{headerBg:m[700],headerFg:m[50],contentBg:m[800],border:m[600],iconFg:m[400]}},commandPalette:{bg:m[800],border:m[600],inputBg:m[900],inputFg:m[50],inputPlaceholder:m[500],itemFg:m[50],itemHoverBg:m[700],itemSelectedBg:m[600],itemSelectedFg:m[50],highlightFg:m[200],categoryFg:m[500]},splitPanel:{bg:m[900],dividerBg:m[600],dividerHoverBg:m[500],dividerActiveBg:m[300],border:m[600],titleFg:m[400]},toast:{success:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]},error:{bg:m[800],fg:m[100],border:m[300],iconFg:m[200]},warning:{bg:m[800],fg:m[100],border:m[500],iconFg:m[400]},info:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]}},window:{default:{bg:m[900],fg:m[50],titleBarBg:m[800],titleBarFg:m[50],border:m[600],buttonFg:m[400],closeFg:m[300]},primary:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},success:{bg:m[900],fg:m[50],titleBarBg:m[400],titleBarFg:m[900],border:m[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},warning:{bg:m[900],fg:m[50],titleBarBg:m[500],titleBarFg:m[900],border:m[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},danger:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]}}},borderRadius:"none"};var KR=Symbol("tuiuiu.theme-runtime-state");function qR(){let[e,t]=gr(Mp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function PL(e){if(e.id===0)return qR();let t=It(KR,qR),[r,n]=gr(is(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function VR(){let e=Ge();return Oe(KR,()=>PL(e),e)}function zR(){return is(VR().currentTheme)}var AL={dark:Mp,light:MR,monokai:LR,dracula:jR,nord:BR,solarizedDark:$R,gruvbox:NR,tokyoNight:GR,catppuccin:WR,highContrastDark:HR,monochrome:UR},e9=Object.keys(AL);function CL(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function wt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&CL(e)>.4?"black":"white"}function DL(e,t=500){let r=IR[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var OL={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>wt(e.palette.primary[500]),"primary-foreground":e=>wt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>wt(e.palette.secondary[500]),"secondary-foreground":e=>wt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>wt(e.accents.positive),"success-foreground":e=>wt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>wt(e.accents.warning),"warning-foreground":e=>wt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>wt(e.accents.critical),"danger-foreground":e=>wt(e.accents.critical),errorForeground:e=>wt(e.accents.critical),destructiveForeground:e=>wt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>wt(e.accents.info),"info-foreground":e=>wt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>wt(e.palette.primary[400]),"accent-foreground":e=>wt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function JR(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=is(VR().currentTheme),r=OL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return DL(o,i)}return e}var FL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},YR=Symbol("tuiuiu.perf-inspector-runtime-state");function IL(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function QR(e){let t=e.id===0?null:It(YR,()=>QR(Mr())),r=IL(t?.config??FL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function XR(){let e=Ge();return Oe(YR,()=>QR(e),e)}function ML(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function LL(e,t){let r=$L().slice(-t);e.ring=new Array(t),e.start=0,e.count=r.length;for(let n=0;n<r.length;n++)e.ring[n]=r[n]}function jL(e,t){e.ring.length!==e.config.maxFrames&&LL(e,e.config.maxFrames);let r=(e.start+e.count)%e.ring.length;if(e.ring[r]=t,e.count<e.ring.length){e.count++;return}e.start=(e.start+1)%e.ring.length}function BL(e,t){let r={};if(!t)return r;for(let[n,o]of Object.entries(t)){if(!Number.isFinite(o)||o<0)continue;let s=e[n];if(typeof s!="number")continue;let i=s-o;i>0&&(r[n]=i)}return r}function ZR(e,t={}){let r=XR(),n=ML(e),o=Math.max(0,n-r.config.budget.frameMs),s=BL(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;Yw({totalMs:n,overBudget:o>0,phaseOverrunCount:i});let l={frameId:e.info.frameId,committedAt:e.info.committedAt,renderer:t.renderer??(e.metrics.phases.deltaRenderMs!==void 0?"delta":"ansi"),totalMs:n,budgetOverrunMs:o,phaseBudgetOverruns:s,overBudgetPhaseCount:i,slow:a,phases:{...e.metrics.phases},structural:{...e.metrics.structural}};if(!r.config.enabled)return null;if(jL(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function $L(){let e=XR(),t=[];for(let r=0;r<e.count;r++){let n=e.ring[(e.start+r)%e.ring.length];n&&t.push(n)}return t}var NL={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function fo(e,t){return aR(e,t,NL)}function Lp(e){lR(e)}function Pn(e,t){uR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),ZR(e,{renderer:t.renderer})}var GL=.4,WL=64;function go(){return typeof performance<"u"?performance.now():Date.now()}var e_=new WeakMap;function HL(){let e=zR(),t=e_.get(e);return t||(t=new Map,e_.set(e,t)),t}function UL(e,t){return e.type!==t.type||e.order!==t.order||e.zIndex!==t.zIndex||e.id!==t.id||e.nodeType!==t.nodeType||e.clip?.x!==t.clip?.x||e.clip?.y!==t.clip?.y||e.clip?.width!==t.clip?.width||e.clip?.height!==t.clip?.height?!1:e.type==="box"&&t.type==="box"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.backgroundColor===t.backgroundColor&&e.fillChar===t.fillChar&&e.borderStyle===t.borderStyle&&e.borderColor===t.borderColor&&e.borderText===t.borderText&&e.borderTextAlign===t.borderTextAlign&&e.borderTextColor===t.borderTextColor&&e.borderTextBold===t.borderTextBold&&e.borderSides?.top===t.borderSides?.top&&e.borderSides?.bottom===t.borderSides?.bottom&&e.borderSides?.left===t.borderSides?.left&&e.borderSides?.right===t.borderSides?.right:e.type==="text"&&t.type==="text"?e.x===t.x&&e.y===t.y&&e.maxWidth===t.maxWidth&&e.text===t.text&&e.inheritedBackgroundColor===t.inheritedBackgroundColor&&qL(e.style,t.style):e.type==="terminal-image"&&t.type==="terminal-image"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.protocol===t.protocol&&e.fit===t.fit&&e.threshold===t.threshold&&e.dither===t.dither&&e.preserveAspectRatio===t.preserveAspectRatio&&e.cellRender===t.cellRender&&e.source.hash===t.source.hash:!1}function qL(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o of r)if(e[o]!==t[o])return!1;return!0}function n_(e,t){return!(e.x+e.width<=t.x||t.x+t.width<=e.x||e.y+e.height<=t.y||t.y+t.height<=e.y)}function o_(e,t,r){let n=Math.max(0,e.x),o=Math.max(0,e.y),s=Math.min(t,e.x+e.width),i=Math.min(r,e.y+e.height);return s<=n||i<=o?null:{x:n,y:o,width:s-n,height:i-o}}function KL(e,t,r){let n=e.map(s=>o_(s,t,r)).filter(s=>s!==null).sort((s,i)=>s.y-i.y||s.x-i.x);if(n.length<=1)return n;let o=[];for(let s of n){let i=o[o.length-1];if(!i){o.push({...s});continue}if(!(n_(i,s)||s.y<=i.y+i.height&&s.x<=i.x+i.width)){o.push({...s});continue}let l=Math.min(i.x,s.x),d=Math.min(i.y,s.y),c=Math.max(i.x+i.width,s.x+s.width),u=Math.max(i.y+i.height,s.y+s.height);i.x=l,i.y=d,i.width=c-l,i.height=u-d}return o}function VL(e,t,r){let n=new Map;for(let i of e){let a=o_(i,t,r);if(!a)continue;let l=a.x,d=a.x+a.width,c=a.y+a.height;for(let u=a.y;u<c;u++){let p=n.get(u);p?p.push({x1:l,x2:d}):n.set(u,[{x1:l,x2:d}])}}let o=[...n.keys()].sort((i,a)=>i-a),s=[];for(let i of o){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1}),l=c}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1})}return s}function s_(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new vi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function h(F){U(t.columns||80,t.rows||24);let W=fo(F,{width:s,height:i});R(W)}function R(F){U(F.info.viewport.width,F.info.viewport.height),G(F),Zo(F.layout),li(),c=F.root,u=F}function T(){l=!0,c?h(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new vi(s,i),l=!0}function D(){!r&&d&&(ls(t),d=!1)}function M(){let F=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:y,totalCells:F,updatePercentage:F>0?y/F*100:0}}function N(F,W){s=F,i=W,a.resize(s,i),l=!0}function U(F,W){!r&&!d&&(ds(t),d=!0),(F!==s||W!==i)&&N(F,W)}function G(F){let W=go(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=nj(u,F),Ae=$r(),Ee=CR(Ae),we=DR(Ae),J=_e=>{let Ce=go();t.write(_e),q+=go()-Ce,oe+=typeof _e=="string"?Buffer.byteLength(_e):_e.byteLength};if(!l&&n&&u){let{renderRects:_e,diffRects:Ce}=JL(u.drawCommands,F.drawCommands,s,i);if(Pt(F,"dirtyRectCount",_e.length),Pt(F,"diffRectCount",Ce.length),_e.length===0){pe&&J(pe),y=0,Pt(F,"patchCount",0),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,go()-W-q)),Pn(F,{renderer:"delta"});return}let ve=YL(_e);if(!(_e.length>WL||ve>Z*GL)){Ee&&J(Ee),QL(se,_e),ZL(F.drawCommands,_e,se,F.reservedRegions);let Se=ae.diffRects(se,Ce);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,Pt(F,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${_e.length}, patches: ${Se.length}, cells: ${Z}`),pe&&J(pe),Se.length>0){let fe=Dp(Se,s,!0);J(fe),g++}we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,go()-W-q)),Pn(F,{renderer:"delta"});return}}Ee&&J(Ee),se.clear(),l_(F.drawCommands,se,F.reservedRegions);let de=a.swap();if(y=de.length,Pt(F,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let _e=Pl(a.getFrontBuffer());pe&&J(pe),J("\x1B[H"),J(_e),f++,l=!1,we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,go()-W-q)),Pn(F,{renderer:"delta"});return}if(pe&&J(pe),de.length>0){let _e=Dp(de,s,!0);J(_e),g++}l=!1,we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,go()-W-q)),Pn(F,{renderer:"delta"})}return{render:h,renderFrame:R,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function zL(e){if(e.maxWidth<=0||e.text.length===0)return{x:e.x,y:e.y,width:0,height:0};let t=0,r=-1,n=Xn(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,be(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function jp(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:zL(e);if(!e.clip)return t;let r=Math.max(t.x,e.clip.x),n=Math.max(t.y,e.clip.y),o=Math.min(t.x+t.width,e.clip.x+e.clip.width),s=Math.min(t.y+t.height,e.clip.y+e.clip.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function JL(e,t,r,n){let o=[],s=Math.max(e.length,t.length);for(let i=0;i<s;i++){let a=e[i],l=t[i];a&&l&&UL(a,l)||(a&&o.push(jp(a)),l&&o.push(jp(l)))}return{renderRects:KL(o,r,n),diffRects:VL(o,r,n)}}function YL(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function QL(e,t){let r=Nr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function i_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function br(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,be(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||i_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function XL(e,t,r,n,o,s,i,a,l={},d){for(let c=0;c<o;c++)(!d||r+c>=d.x&&r+c<d.x+d.width&&n>=d.y&&n<d.y+d.height)&&!i_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function a_(e,t,r){switch(e.type){case"box":ej(e,t,r);break;case"text":f_(e,t,r);break;case"terminal-image":tj(e,t);break}}function ZL(e,t,r,n){for(let o of e){let s=jp(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(n_(s,i)){a_(o,r,n);break}}}}function l_(e,t,r){for(let n of e)a_(n,t,r)}function d_(e,t=new Gr(e.info.viewport.width,e.info.viewport.height)){return l_(e.drawCommands,t,e.reservedRegions),t}function ej(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:y,clip:h}=e,R=a?ho(a):void 0,T=c?ho(c):void 0,$=f?ho(f):T;if(R||l!==" "){let D=d&&d!=="none"?1:0,M=n+D,N=o+D,U=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let F=0;F<G;F++)XL(t,r,M,N+F,U,l,void 0,R,{},h)}if(d&&d!=="none"){let D=Op[d]??Op.single,M={},N=u?.top!==!1,U=u?.bottom!==!1,G=u?.left!==!1,F=u?.right!==!1;if(N){let W=G?D.topLeft:D.top;br(t,r,n,o,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o,D.top,T,void 0,M,h);if(s>1){let q=F?D.topRight:D.top;br(t,r,n+s-1,o,q,T,void 0,M,h)}if(p&&s>4){let q=s-4,ae=` ${Zr(vk(p),q,{truncationCharacter:""})} `,se=be(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ae=0,Ee=pe;for(;Ae<ae.length&&Ee<n+s-1;){let we=Qn(ae,Ae);if(!we)break;Ae=we.nextIndex;let J=be(we.symbol);J<=0||Ee+J>n+s-1||(br(t,r,Ee,o,we.symbol,$,void 0,y?{...M,bold:!0}:M,h),Ee+=J)}}}for(let W=1;W<i-1;W++)G&&br(t,r,n,o+W,D.left,T,void 0,M,h),F&&s>1&&br(t,r,n+s-1,o+W,D.right,T,void 0,M,h);if(U&&i>1){let W=G?D.bottomLeft:D.bottom;br(t,r,n,o+i-1,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o+i-1,D.bottom,T,void 0,M,h);if(s>1){let q=F?D.bottomRight:D.bottom;br(t,r,n+s-1,o+i-1,q,T,void 0,M,h)}}}}function tj(e,t){e.cellRender&&f_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:p_(e),style:{},clip:e.clip},t,[])}function c_(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function u_(e){let t=c_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function Si(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${u_(e)}:${e.x}:${e.y}`)}function cs(e){return[Si(e),e.x,e.y,u_(e)].join(":")}function p_(e){let t=c_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:ml(e.protocol,e.source,t)}function t_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender&&(!t.clip||t.x>=t.clip.x&&t.y>=t.clip.y&&t.x+t.width<=t.clip.x+t.clip.width&&t.y+t.height<=t.clip.y+t.clip.height)):[]}function rj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Si(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Si(s));if(!i||cs(s)!==cs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=os.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${bl("kitty")}\x1B8`}}return o}function nj(e,t){let r=t_(e),n=t_(t),o=r.map(cs).join("|"),s=n.map(cs).join("|");if(e&&o===s)return"";let i=rj(r,n),a=new Map(r.map(l=>[Si(l),l]));for(let l of n){let d=a.get(Si(l));d&&cs(d)===cs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=p_(l),i+="\x1B8")}return i}function us(e){if(e===void 0||!/^\d{1,3}$/u.test(e))return null;let t=Number(e);return t>=0&&t<=255?t:null}function oj(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=us(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(us);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function sj(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=us(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[us(e[t+2]),us(e[t+3]),us(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var r_={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function ij(e,t,r,n={}){let o=[],s=t,i=r,a={...n},l="",d=0;for(;d<e.length;){if(e[d]==="\x1B"){let c=Yn(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let y=p[g].split(":"),h=Number(y[0]||0);if(y.length>1){if(h===4){let R=Number(y[1]||0);R in r_&&(a.underline=r_[R])}else if(h===38||h===48||h===58){let R=oj(y);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R)}continue}if(h===0)s=t,i=r,a={...n};else if(h===1)a.bold=!0;else if(h===2)a.dim=!0;else if(h===3)a.italic=!0;else if(h===4)a.underline=!0;else if(h===5)a.blink=!0;else if(h===7)a.inverse=!0;else if(h===8)a.hidden=!0;else if(h===9)a.strikethrough=!0;else if(h===21)a.underline="double";else if(h===22)a.bold=!1,a.dim=!1;else if(h===23)a.italic=!1;else if(h===24)a.underline=!1;else if(h===25)a.blink=!1;else if(h===27)a.inverse=!1;else if(h===28)a.hidden=!1;else if(h===29)a.strikethrough=!1;else if(h>=30&&h<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][h-30];else if(h===39)s=t;else if(h>=40&&h<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][h-40];else if(h===49)i=r;else if(h===59)a.underlineColor=n.underlineColor;else if(h>=90&&h<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-90];else if(h>=100&&h<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-100];else if(h===38||h===48||h===58){let{color:R,consumed:T}=sj(p,g);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function f_(e,t,r){let{x:n,y:o,maxWidth:s,text:i,style:a,inheritedBackgroundColor:l}=e;if(s<=0)return;let d=e.prebuiltAnsi===!0,c=d?void 0:a.color?ho(a.color):void 0,u=d?void 0:a.backgroundColor?ho(a.backgroundColor):l?ho(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?ho(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Xn(i,s,a.wrap);if(g){let y=ij(f.join(`
197
- `),c,u,p),h=0,R=0;for(let T of y){let $=0;for(;$<T.text.length;){let D=Qn(T.text,$);if(!D)break;let M=D.symbol;if(M===`
198
- `){R++,h=0,$=D.nextIndex;continue}let N=be(M);N>0&&(br(t,r,n+h,o+R,M,T.fg,T.bg,T.attrs,e.clip),h+=N),$=D.nextIndex}}}else for(let y=0;y<f.length;y++){let h=0,R=0;for(;R<f[y].length;){let T=Qn(f[y],R);if(!T)break;let $=T.symbol;if(h>=s)break;let D=be($);D>0&&(br(t,r,n+h,o+y,$,c,u,p,e.clip),h+=D),R=T.nextIndex}}}function ho(e){let t=HL(),r=t.get(e);if(r)return r;let n=JR(e);return t.set(e,n),n}var w9=Symbol("tuiuiu.delta-renderer-state");function g_(){return typeof performance<"u"?performance.now():Date.now()}function m_(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=m_(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function aj(e,t){return typeof e=="object"?{width:e.width??process.stdout.columns??80,height:e.height??1e3,fullHeight:e.fullHeight??!1}:{width:e??process.stdout.columns??80,height:t??1e3,fullHeight:!1}}function $p(e,t={}){let r=g_(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=m_(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Gr(e.info.viewport.width,u);d_(e,p);let g=Pl(p,n),f=cj(e,o);return it(e,"ansiRenderMs",g_()-r),f+g}function b_(e,t,r){let n=aj(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=fo(e,{width:n.width,height:s});return $p(i,{fullHeight:n.fullHeight})}function y_(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function k_(e){let t=y_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function Ti(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${k_(e)}:${e.x}:${e.y}`)}function ps(e){return[Ti(e),e.x,e.y,k_(e)].join(":")}function lj(e){let t=y_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:ml(e.protocol,e.source,t)}function h_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Bp(e,t){if(!Ew(t))return e;let r=$r();return r.multiplexer?Al(e,r.multiplexer):e}function dj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ti(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ti(s));if(!i||ps(s)!==ps(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Bp(`\x1B7\x1B[H${os.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Bp(`\x1B7\x1B[H${bl("kitty")}\x1B8`,"kitty")}}return o}function cj(e,t){let r=h_(e);if(r.length===0&&!t)return"";let n=h_(t),o=n.map(ps).join("|"),s=r.map(ps).join("|");if(t&&o===s)return"";let i=dj(n,r),a=new Map(n.map(l=>[Ti(l),l]));for(let l of r){let d=a.get(Ti(l));if(d&&ps(d)===ps(l))continue;let c=lj(l);i+=Bp(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Dl(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=wi(()=>gr(e)),o=Xt();return pr(o,n),n}return t}function w_(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=wi(e);return pr(Xt(),n),n}return t}function Pi(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=Xt(),o={effect:null,fn:e,dispose:null};pr(n,o);let s=new En(()=>{let a=Br(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,eo(i,n),i}else return t.fn=e,t.dispose}var N9=Symbol("tuiuiu.keyboard-protocol-runtime-state");function R_(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,y)=>{if(f===void 0)return y??null;if(!/^\d+$/u.test(f))return null;let h=Number(f);return Number.isSafeInteger(h)?h:null},n=f=>f>=0&&f<=1114111&&!(f>=55296&&f<=57343),o=r(t[1],0),s=r(t[2]),i=r(t[3]),a=r(t[4],1),l=r(t[5],1),d=t[6];if(o===null||a===null||a<1||l===null||s!==null&&!n(s)||i!==null&&!n(i))return null;let c=a-1,u={shift:!!(c&1),alt:!!(c&2),ctrl:!!(c&4),super:!!(c&8),hyper:!!(c&16),meta:!!(c&32),capsLock:!!(c&64),numLock:!!(c&128)},p="press";l===2?p="repeat":l===3&&(p="release");let g="";if(d){let f=d.split(":").map(y=>r(y));if(f.length===0||f.some(y=>y===null||!n(y)))return null;g=f.map(y=>String.fromCodePoint(y)).join("")}else o>=32&&o<127&&(g=String.fromCharCode(o));return{keyCode:o,baseKey:i??void 0,shiftedKey:s??void 0,text:g,eventType:p,modifiers:u}}var Np="\x1B[200~",fs="\x1B[201~",uj="\x1B[I",pj="\x1B[O";function __(){return"\x1B[?2004h"}function x_(){return"\x1B[?2004l"}function E_(){return"\x1B[?1004h"}function v_(){return"\x1B[?1004l"}function S_(e){return e===uj?{focused:!0}:e===pj?{focused:!1}:null}function T_(){return"\x1B[?1049h"}function Gp(){return"\x1B[?1049l"}var fj={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},gj=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),hj=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),mj=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,bj=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,yj=/^\x1b\[27;(\d+);(\d+)~/;function kj(e,t){if(!Number.isSafeInteger(t)||t<1||t>16)return!1;let r=t-1;return e.shift=!!(r&1),e.option=!!(r&2),e.ctrl=!!(r&4),e.meta=!!(r&58),!0}function A_(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function P_(e,t,r=""){switch(t){case 9:return e.tab=!0,"";case 13:return e.return=!0,"";case 27:return e.escape=!0,"";case 127:return e.backspace=!0,""}return!A_(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function wj(e,t){switch(t){case"up":e.upArrow=!0;break;case"down":e.downArrow=!0;break;case"left":e.leftArrow=!0;break;case"right":e.rightArrow=!0;break;case"pageup":e.pageUp=!0;break;case"pagedown":e.pageDown=!0;break;case"home":e.home=!0;break;case"end":e.end=!0;break;case"insert":e.insert=!0;break;case"delete":e.delete=!0;break;case"clear":e.clear=!0;break;case"tab":e.tab=!0;break;case"f1":e.f1=!0;break;case"f2":e.f2=!0;break;case"f3":e.f3=!0;break;case"f4":e.f4=!0;break;case"f5":e.f5=!0;break;case"f6":e.f6=!0;break;case"f7":e.f7=!0;break;case"f8":e.f8=!0;break;case"f9":e.f9=!0;break;case"f10":e.f10=!0;break;case"f11":e.f11=!0;break;case"f12":e.f12=!0;break}}function Wp(e){let t=e.toString();Buffer.isBuffer(e)&&e[0]!==void 0&&e[0]>127&&e[1]===void 0&&(t="\x1B"+String.fromCharCode(e[0]-128));let r={upArrow:!1,downArrow:!1,leftArrow:!1,rightArrow:!1,pageUp:!1,pageDown:!1,home:!1,end:!1,insert:!1,return:!1,escape:!1,tab:!1,backspace:!1,delete:!1,clear:!1,ctrl:!1,shift:!1,meta:!1,option:!1,f1:!1,f2:!1,f3:!1,f4:!1,f5:!1,f6:!1,f7:!1,f8:!1,f9:!1,f10:!1,f11:!1,f12:!1},n="";if(t==="\r")return r.return=!0,{input:n,key:r,length:1};if(t===`
194
+ `):ie;Se.push({type:"text",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:h.length>0?[...h]:void 0,clip:s});for(let ie of q)BM(Se,ie.commands);Qn("draw");let fe=iR(e,D,G,Se,R,ve);return LM(ve,fe.commands,R),{commands:fe.commands,hasCompositor:R,subtreeSignature:ve}}function HM(e){if(e.type==="text"){let s=Math.round(e.x),i=Math.round(e.y),a=Math.max(0,Math.round(e.maxWidth));return s===e.x&&i===e.y&&a===e.maxWidth?e:{...e,x:s,y:i,maxWidth:a}}let t=Math.round(e.x),r=Math.round(e.y),n=Math.max(0,Math.round(e.width)),o=Math.max(0,Math.round(e.height));return t===e.x&&r===e.y&&n===e.width&&o===e.height?e:{...e,x:t,y:r,width:n,height:o}}function UM(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=HM(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function qM(e){let t=uR(e),r=vl.get(e),n=lR(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=FM(t.commands),s=t.hasCompositor?oR(o,cR(e)):o,i=UM(s),a=vl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),jM(t.subtreeSignature,i,n),i}function pR(e,t,r={}){let n=RM(r),o=wM(t),s=Date.now(),i=vn(),a=vn(),l=Kk(e,o.width,o.height),d=vn()-a,c=vn(),u=qM(l),p=WM(u),g=vn()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},y=Wk();f.structural.layoutReuseCount=y.layoutReuseCount,f.structural.layoutFreshCount=y.layoutFreshCount,f.structural.drawReuseCount=y.drawReuseCount,f.structural.drawFreshCount=y.drawFreshCount,f.structural.invalidationEscalationCount=y.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=y.absorbedLayoutDirtyCount;let h,R,T,$=[],D=!1,M=()=>(h||(h=_M(l)),h),N=()=>(R||(R=EM(l)),R),U=()=>{if(!T){let ae=vn();T=Bw(l),f.phases.hitTargetRegistrationMs=vn()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...vM(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&U();let F=TM(M,N,o,$,f),W=Date.now(),q=vn()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:hM++,committedAt:W,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:F,metrics:f,get hitTargets(){return U()},get warnings(){return G()}}}function fR(e,t){Tp(t).committedFrameSnapshot=e}function gR(e){return Tp(e).committedFrameSnapshot}function hR(e){Tp(e).committedFrameSnapshot=null}function it(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Pt(e,t,r){e.metrics.structural[t]=r}function mR(e,t,r=Date.now()){e.metrics.runtimeStartAt=t,e.metrics.runtimeEndAt=r,e.metrics.runtimeTotalMs=Math.max(0,r-t),e.metrics.frameEndAt=r}var yR=Symbol("tuiuiu.progressive-runtime-state");function bR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function KM(e){if(e.id===0)return bR();let t=It(yR,bR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function Pp(){let e=Ge();return Oe(yR,()=>KM(e),e)}function kR(){return Pp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function wR(){return Pp().capabilityOverrides}function Ap(){return Pp().progressiveVersion}function VM(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=pl(t),a=kw(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",y=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",h=l.strikethrough||y,R=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,$=T.columns||80,D=T.rows||24,M=kR(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:h,hyperlinks:R,terminalName:c,isCI:d,columns:$,rows:D,profile:i,synchronizedOutput:l.synchronizedOutput,styledUnderlines:l.styledUnderlines,coloredUnderlines:l.coloredUnderlines,clipboard:l.clipboard,notifications:l.notifications,multiplexer:a,cursorStyleControl:l.cursorStyleControl,windowTitle:l.windowTitle,gpuAccelerated:i.gpuAccelerated,kittyKeyboard:l.kittyKeyboard,focusEvents:l.focusEvents,nerdFonts:M},U=wR();return U&&Object.assign(N,U),N}var RR=Symbol("tuiuiu.capability-runtime-state");function _R(e){let t=e.id===0?"auto":ss(It(RR,()=>_R(Mr())).renderModeSignal),[r,n]=gr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Ir](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function xi(e){let t=Ge(e);return Oe(RR,()=>_R(t),t)}function xR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function zM(e){return VM({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Sl(e){return e.cachedCapabilities=zM(e),e.cachedProgressiveVersion=Ap(),e.cachedCapabilities}function ER(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Sl(e);let r=xR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function vR(e){let t=xi(),r=t.source.stdout??process.stdout;t.resizeListener&&(r.off("resize",t.resizeListener),t.resizeListener=null),t.source={...e},t.cachedCapabilities=null,t.cachedProgressiveVersion=-1,ER(t)}function $r(){let e=xi(),t=Ap();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Sl(e),e.cachedCapabilities??Sl(e)}function SR(){return Sl(xi())}function TR(){return xR(xi())}function PR(e){let t=xi();return t.resizeHandlers.add(e),ER(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var AR={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,gray:8,grey:8,blackBright:8,redBright:9,greenBright:10,yellowBright:11,blueBright:12,magentaBright:13,cyanBright:14,whiteBright:15},JM={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},YM=512,to=new Map,CR=4e6;function Nr(){return{char:" ",attrs:{}}}function Dp(e,t){if(e===t)return!0;if(e===void 0||t===void 0)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="object"&&typeof t=="object"){if("r"in e&&"r"in t)return e.r===t.r&&e.g===t.g&&e.b===t.b;if("ansi256"in e&&"ansi256"in t)return e.ansi256===t.ansi256}return!1}function QM(e,t){let r=e.underline||!1,n=t.underline||!1;return!!e.bold==!!t.bold&&!!e.dim==!!t.dim&&!!e.italic==!!t.italic&&r===n&&Dp(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function DR(e,t){return e.char===t.char&&Dp(e.fg,t.fg)&&Dp(e.bg,t.bg)&&QM(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Tl(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Gr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>CR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${CR} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push(Nr());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||be(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,be(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}if(this.cells[r][t]=n,this.invalidateRow(r),!n.isWide&&o>1&&t+o<=this.width)for(let s=1;s<o;s++)this.clearWideFootprint(t+s,r),this.cells[r][t+s]={char:"",fg:n.fg,bg:n.bg,attrs:n.attrs,isWide:!0};this.addDamage(t,r,Math.min(o,this.width-t),1)}}clearWideFootprint(t,r){if(!Number.isInteger(t)||!Number.isInteger(r)||t<0||t>=this.width||r<0||r>=this.height)return;let n=this.cells[r][t];if(n.isWide){if(this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&be(s.char)>1&&(this.cells[r][t-1]=Nr(),this.addDamage(t-1,r,1,1))}return}let o=be(n.char);if(!(o<=1)){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);for(let s=1;s<o&&t+s<this.width;s++)this.cells[r][t+s]?.isWide&&(this.cells[r][t+s]=Nr(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=be(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=Jn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
195
+ `)continue;if(a>=this.width)break;let c=be(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(be(o)!==1){let c=be(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(be(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=Nr();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,Tl(p))}}addDamage(t,r,n,o){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let s=Math.max(0,t),i=Math.max(0,r),a=Math.min(this.width,t+n),l=Math.min(this.height,r+o);a>s&&l>i&&this.damageRects.push({x:s,y:i,width:a-s,height:l-i})}getDamage(){return this.damageRects}clearDamage(){this.damageRects=[]}hasDamage(){return this.damageRects.length>0}consolidateDamage(){if(this.damageRects.length<=1)return this.damageRects;let t=1/0,r=1/0,n=-1/0,o=-1/0;for(let i of this.damageRects)t=Math.min(t,i.x),r=Math.min(r,i.y),n=Math.max(n,i.x+i.width),o=Math.max(o,i.y+i.height);let s={x:t,y:r,width:n-t,height:o-r};return this.damageRects=[s],this.damageRects}diff(t){let r=[],n=Math.min(this.width,t.width),o=Math.min(this.height,t.height);for(let s=0;s<o;s++)if(this.getRowSignature(s)!==t.getRowSignature(s))for(let i=0;i<n;i++){let a=this.cells[s][i],l=t.cells[s][i];DR(a,l)||r.push({x:i,y:s,cell:Tl(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=XM(this.width,this.height,t.width,t.height,r);for(let i of s)if(!(i.x1===0&&i.x2>=o&&this.getRowSignature(i.y)===t.getRowSignature(i.y)))for(let l=i.x1;l<i.x2;l++){let d=this.cells[i.y][l],c=t.cells[i.y][l];DR(d,c)||n.push({x:l,y:i.y,cell:Tl(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Tl(r.cell))}*[Symbol.iterator](){for(let t=0;t<this.height;t++)for(let r=0;r<this.width;r++)yield{x:r,y:t,cell:this.cells[t][r]}}*rows(){for(let t=0;t<this.height;t++)yield{y:t,cells:this.cells[t]}}invalidateRow(t){t>=0&&t<this.height&&(this.rowSignatures[t]=null)}getRowSignature(t){let r=this.rowSignatures[t];if(r!=null)return r;let n=this.cells[t],o="";for(let s=0;s<n.length;s++){let i=n[s];o+=`${i.char.length}:${i.char}${i.isWide?1:0}${FR(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function XM(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||ZM(o)?OR(s,i,o):eL(s,i,o)}function ZM(e){let t=-1,r=-1;for(let n of e){let o=Math.max(0,n.x),s=Math.max(0,n.y),i=n.y+n.height-1;if(!(n.width<=0||n.height<=0||i<s)){if(s<t||s===t&&o<r)return!1;t=i,r=o}}return!0}function OR(e,t,r){let n=[];for(let o of r){let s=Math.max(0,o.x),i=Math.max(0,o.y),a=Math.min(e,o.x+o.width),l=Math.min(t,o.y+o.height);if(!(a<=s||l<=i))for(let d=i;d<l;d++){let c=n[n.length-1];if(c&&c.y===d&&s<=c.x2){c.x2=Math.max(c.x2,a);continue}n.push({y:d,x1:s,x2:a})}}return n}function eL(e,t,r){let n=new Map;for(let i of r){let a=Math.max(0,i.x),l=Math.max(0,i.y),d=Math.min(e,i.x+i.width),c=Math.min(t,i.y+i.height);if(!(d<=a||c<=l))for(let u=l;u<c;u++){let p=n.get(u);p?p.push({x1:a,x2:d}):n.set(u,[{x1:a,x2:d}])}}let o=[],s=[...n.keys()].sort((i,a)=>i-a);for(let i of s){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}o.push({y:i,x1:l.x1,x2:l.x2}),l=c}o.push({y:i,x1:l.x1,x2:l.x2})}return o}var Ei=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}getBackBuffer(){return this.back}getFrontBuffer(){return this.front}swap(){let t=this.front.diff(this.back),r=this.front;return this.front=this.back,this.back=r,this.back.clearDamage(),t}swapDirty(t){let r=this.front.diffRects(this.back,t),n=this.front;return this.front=this.back,this.back=n,this.back.clearDamage(),r}resize(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}};function Op(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(AR[e]!==void 0){let n=t?40:30,o=AR[e];return o<8?`${n+o}`:`${n+o+52}`}if(e.startsWith("#")){let n=e.slice(1),o=parseInt(n.slice(0,2),16),s=parseInt(n.slice(2,4),16),i=parseInt(n.slice(4,6),16);return`${r};2;${o};${s};${i}`}return""}return"r"in e?`${r};2;${e.r};${e.g};${e.b}`:"ansi256"in e?`${r};5;${e.ansi256}`:""}function tL(e){let t=[];if(e.bold&&t.push("1"),e.dim&&t.push("2"),e.italic&&t.push("3"),e.underline&&(typeof e.underline=="string"?t.push(JM[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=rL(e.underlineColor);r&&t.push(r)}return e.blink&&t.push("5"),e.inverse&&t.push("7"),e.hidden&&t.push("8"),e.strikethrough&&t.push("9"),t}function rL(e){let t=Op(e,!1);if(!t)return"";if(t.startsWith("38;"))return`58;${t.slice(3)}`;let r=Number.parseInt(t,10);return Number.isNaN(r)?"":r>=30&&r<=37?`58;5;${r-30}`:r>=90&&r<=97?`58;5;${r-82}`:""}function Cp(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function FR(e,t,r){return[r.bold?"1":"0",r.dim?"1":"0",r.italic?"1":"0",r.underline===void 0||r.underline===!1?"0":String(r.underline),Cp(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",Cp(e),Cp(t)].join("|")}function IR(e,t,r){let n=FR(e,t,r),o=to.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...tL(r));let i=Op(e,!1),a=Op(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(to.has(n))to.delete(n);else if(to.size>=YM){let d=to.keys().next();d.done||to.delete(d.value)}return to.set(n,l),l===""?null:l}function nL(e){return e.length===1&&e.charCodeAt(0)<=127?1:be(e)}function Pl(e,t=!1){let r=[];for(let{cells:n}of e.rows()){let o=[],s="",i=null,a=()=>{s.length>0&&(o.push(s),s="")};for(let l of n){if(l.isWide)continue;let d=IR(l.fg,l.bg,l.attrs);d!==i&&(a(),i!==null&&o.push("\x1B[0m"),d!==null&&o.push(`\x1B[${d}m`),i=d),s+=l.char}a(),i!==null&&o.push("\x1B[0m"),r.push(o.join("").trimEnd())}if(!t)for(;r.length>0&&r[r.length-1]==="";)r.pop();return r.join(`
196
+ `)}function Fp(e,t,r=!1){if(e.length===0)return"";r||e.sort((d,c)=>d.y!==c.y?d.y-c.y:d.x-c.x);let n=[],o=-1,s=-1,i=null,a="",l=()=>{a.length>0&&(n.push(a),a="")};for(let d of e){let{x:c,y:u,cell:p}=d;if(p.isWide||c<0||c>=t||u<0)continue;(u!==s||c!==o+1)&&(l(),n.push(`\x1B[${u+1};${c+1}H`));let g=IR(p.fg,p.bg,p.attrs);g!==i&&(l(),i!==null&&n.push("\x1B[0m"),g!==null&&n.push(`\x1B[${g}m`),i=g),a+=p.char,o=c+(nL(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Al(e,t){let r=t??$r().multiplexer;if(!r)return e;switch(r.type){case"tmux":return`\x1BPtmux;${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"screen":return`\x1BP${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"zellij":return e}}var oL="\x1B[?2026h",sL="\x1B[?2026l";function MR(e){let t=e??$r();return t.synchronizedOutput?Al(oL,t.multiplexer):""}function LR(e){let t=e??$r();return t.synchronizedOutput?Al(sL,t.multiplexer):""}var Ip={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",top:"\u2550",bottom:"\u2550",left:"\u2551",right:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2558",bottomRight:"\u255B",top:"\u2550",bottom:"\u2550",left:"\u2502",right:"\u2502"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},asciiDouble:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"=",bottom:"=",left:"|",right:"|"},markdown:{topLeft:"|",topRight:"|",bottomLeft:"|",bottomRight:"|",top:"-",bottom:"-",left:"|",right:"|"},arrow:{topLeft:"\u2198",topRight:"\u2199",bottomLeft:"\u2197",bottomRight:"\u2196",top:"\u2193",bottom:"\u2191",left:"\u2192",right:"\u2190"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u254C",bottom:"\u254C",left:"\u254E",right:"\u254E"},dashedHeavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u254D",bottom:"\u254D",left:"\u254F",right:"\u254F"},heavyHead:{topLeft:"\u250E",topRight:"\u2512",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2501",bottom:"\u2500",left:"\u2502",right:"\u2502"},doubleHead:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2550",bottom:"\u2500",left:"\u2502",right:"\u2502"},heavyEdge:{topLeft:"\u250D",topRight:"\u2511",bottomLeft:"\u2515",bottomRight:"\u2519",top:"\u2500",bottom:"\u2500",left:"\u2503",right:"\u2503"},doubleEdge:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},minimal:{topLeft:"\u2500",topRight:"\u2500",bottomLeft:"\u2500",bottomRight:"\u2500",top:"\u2500",bottom:"\u2500",left:" ",right:" "},minimalHeavy:{topLeft:"\u2501",topRight:"\u2501",bottomLeft:"\u2501",bottomRight:"\u2501",top:"\u2501",bottom:"\u2501",left:" ",right:" "},minimalDouble:{topLeft:"\u2550",topRight:"\u2550",bottomLeft:"\u2550",bottomRight:"\u2550",top:"\u2550",bottom:"\u2550",left:" ",right:" "},horizontals:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:"\u2500",bottom:"\u2500",left:" ",right:" "},inner:{topLeft:"\u2597",topRight:"\u2596",bottomLeft:"\u259D",bottomRight:"\u2598",top:"\u2584",bottom:"\u2580",left:"\u2590",right:"\u258C"},outer:{topLeft:"\u259B",topRight:"\u259C",bottomLeft:"\u2599",bottomRight:"\u259F",top:"\u2580",bottom:"\u2584",left:"\u258C",right:"\u2590"},thick:{topLeft:"\u2588",topRight:"\u2588",bottomLeft:"\u2588",bottomRight:"\u2588",top:"\u2580",bottom:"\u2584",left:"\u2588",right:"\u2588"},block:{topLeft:"\u2584",topRight:"\u2584",bottomLeft:"\u2580",bottomRight:"\u2580",top:"\u2584",bottom:"\u2580",left:"\u2588",right:"\u2588"},hkey:{topLeft:"\u2594",topRight:"\u2594",bottomLeft:"\u2581",bottomRight:"\u2581",top:"\u2594",bottom:"\u2581",left:" ",right:" "},vkey:{topLeft:"\u258F",topRight:"\u2595",bottomLeft:"\u258F",bottomRight:"\u2595",top:" ",bottom:" ",left:"\u258F",right:"\u2595"},tall:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2594",bottom:"\u2581",left:"\u258A",right:"\u258E"},panel:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2588",bottom:"\u2581",left:"\u258A",right:"\u258E"},tab:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},wide:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},hidden:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},blank:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "}};var BR="\x1B[?25h",iL="\x1B[?25l",Cl=!1,jR=!1,aL=null,Mp=null;function Lp(e){return"isTTY"in e&&!!e.isTTY}function lL(){let e=Mp??process.stdout;Lp(e)&&Cl&&(e.write(BR),Cl=!1)}function dL(){jR||(jR=!0,aL=rn(lL))}function as(e=process.stdout){Lp(e)&&(Mp=e,Cl=!1,e.write(BR))}function ls(e=process.stdout){Lp(e)&&(Mp=e,dL(),Cl=!0,e.write(iL))}var cL="#ffffff",uL="#000000",pL="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},fL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},gL={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},m={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},He={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ce={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},hL={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ge={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},mL={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},bL={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},he={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},yL={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},kL={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Ze={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},wL={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},te={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},RL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},_L={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},xL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},EL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},vL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},SL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},$R={white:cL,black:uL,transparent:pL,slate:k,gray:fL,zinc:gL,neutral:m,stone:He,red:ce,orange:hL,amber:ge,yellow:mL,lime:bL,green:he,emerald:yL,teal:kL,cyan:Ze,sky:wL,blue:te,indigo:RL,violet:_L,purple:xL,fuchsia:EL,pink:vL,rose:SL};var ee={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},jp={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:ee,background:{lowest:k[950],base:k[900],subtle:k[800],surface:k[700],raised:k[600],elevated:k[500],popover:k[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:k[50],secondary:k[200],muted:k[400],disabled:k[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:ee.success[500],warning:ee.warning[500],critical:ee.danger[500],info:Ze[500],highlight:ee.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:ee.primary[400],ring:{color:ee.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:ee.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:ee.primary[500],danger:ee.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:ee.primary[500],fg:"#ffffff",hoverBg:ee.primary[400],activeBg:ee.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:ee.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:ee.primary[500]},ghost:{bg:"transparent",fg:k[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:k[800],headerBg:k[700],footerBg:k[700],border:k[700]},menu:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],activeBg:ee.primary[700],selectedBg:ee.primary[600],disabledFg:k[500]}},tabs:{bg:k[800],border:k[700],tab:{fg:k[400],activeFg:k[50],activeBg:k[700],hoverFg:k[200],indicator:ee.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:ee.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:ee.primary[500],invalidBorder:ee.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:ee.primary[500]},radio:{bg:k[800],dotColor:ee.primary[500],border:k[600],checkedBorder:ee.primary[500]},tooltip:{bg:k[700],fg:k[50]},modal:{bg:k[800],border:k[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:k[700],fg:k[50]},success:{bg:ee.success[500],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:ee.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:ee.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:ee.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.success[700]},warning:{bg:ee.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:ee.warning[600]},danger:{bg:ee.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:ee.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:ee.success[600],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:ee.primary[400],subtitleFg:k[400],border:ee.primary[700]},secondary:{bg:k[900],titleFg:k[200],subtitleFg:k[500],border:k[700]}},appshell:{bg:k[950],dividerFg:k[700],sidebarBg:k[900],asideBg:k[900]},collapsible:{default:{headerBg:k[800],headerFg:k[50],contentBg:k[900],border:k[700],iconFg:k[400]},primary:{headerBg:ee.primary[700],headerFg:"#ffffff",contentBg:k[900],border:ee.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:k[700],headerFg:k[50],contentBg:k[800],border:k[600],iconFg:k[400]}},commandPalette:{bg:k[800],border:k[700],inputBg:k[900],inputFg:k[50],inputPlaceholder:k[500],itemFg:k[50],itemHoverBg:k[700],itemSelectedBg:ee.primary[700],itemSelectedFg:"#ffffff",highlightFg:ee.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:ee.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:ee.success[900],fg:ee.success[100],border:ee.success[600],iconFg:ee.success[400]},error:{bg:ee.danger[900],fg:ee.danger[100],border:ee.danger[600],iconFg:ee.danger[400]},warning:{bg:ee.warning[900],fg:ee.warning[100],border:ee.warning[500],iconFg:ee.warning[400]},info:{bg:Ze[900],fg:Ze[100],border:Ze[600],iconFg:Ze[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:ee.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:ee.primary[600],titleBarFg:"#ffffff",border:ee.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:ee.success[600],titleBarFg:"#ffffff",border:ee.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:ee.warning[500],titleBarFg:k[900],border:ee.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:ee.danger[600],titleBarFg:"#ffffff",border:ee.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},NR={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:he[600],warning:ge[600],critical:ce[600],info:Ze[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:k[300],checkedBorder:Y.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Y.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:k[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:k[600],border:Y.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Y.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:Ze[50],fg:Ze[900],border:Ze[200],iconFg:Ze[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Y.warning[500],titleBarFg:k[900],border:Y.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},ro={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},GR={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:ro,background:{lowest:O.backgroundDark,base:O.background,subtle:O.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:O.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:O.foreground,secondary:"#E8E8E2",muted:O.comment,disabled:"#5B5A4F",inverse:{base:O.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:O.green,warning:O.yellow,critical:O.pink,info:O.cyan,highlight:O.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:O.green,ring:{color:O.green,width:2}},disabled:{opacity:.4,bg:O.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:O.foreground}},borders:{default:"#49483E",subtle:O.backgroundLight,strong:O.comment,accent:O.green,danger:O.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:O.green,fg:O.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:O.foreground,hoverBg:"#5B5A4F",activeBg:O.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:O.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:O.green},ghost:{bg:"transparent",fg:O.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:O.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:O.backgroundLight,border:"#49483E",tab:{fg:O.comment,activeFg:O.foreground,activeBg:O.background,hoverFg:"#E8E8E2",indicator:O.green}},dropdown:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:O.backgroundLight,fg:O.foreground,placeholder:O.comment,border:"#49483E",focusBorder:O.green,invalidBorder:O.pink},checkbox:{bg:O.backgroundLight,border:"#5B5A4F",checkColor:O.background,checkedBg:O.green},radio:{bg:O.backgroundLight,dotColor:O.green,border:"#5B5A4F",checkedBorder:O.green},tooltip:{bg:"#49483E",fg:O.foreground},modal:{bg:O.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:O.foreground},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:O.backgroundLight,selectedBg:"#49483E",fg:O.foreground}},header:{default:{bg:O.backgroundLight,fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#5B5A4F"},success:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:O.yellow,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:O.orange},danger:{bg:O.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:O.backgroundLight,fg:O.comment},primary:{bg:O.green,fg:O.background},info:{bg:O.cyan,fg:O.background},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},page:{default:{bg:O.background,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.background,titleFg:O.green,subtitleFg:O.comment,border:O.green},secondary:{bg:O.background,titleFg:"#E8E8E2",subtitleFg:O.comment,border:"#49483E"}},appshell:{bg:O.backgroundDark,dividerFg:"#49483E",sidebarBg:O.background,asideBg:O.background},collapsible:{default:{headerBg:O.backgroundLight,headerFg:O.foreground,contentBg:O.background,border:"#49483E",iconFg:O.comment},primary:{headerBg:"#49483E",headerFg:O.green,contentBg:O.background,border:O.green,iconFg:O.green},secondary:{headerBg:"#49483E",headerFg:O.foreground,contentBg:O.backgroundLight,border:"#5B5A4F",iconFg:O.comment}},commandPalette:{bg:O.backgroundLight,border:"#49483E",inputBg:O.background,inputFg:O.foreground,inputPlaceholder:O.comment,itemFg:O.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:O.foreground,highlightFg:O.green,categoryFg:O.comment},splitPanel:{bg:O.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:O.green,border:"#49483E",titleFg:O.comment},toast:{success:{bg:ro.success[900],fg:ro.success[100],border:O.green,iconFg:O.green},error:{bg:ro.danger[900],fg:ro.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:ro.warning[900],fg:ro.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},no={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},WR={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:no,background:{lowest:"#21222C",base:P.background,subtle:P.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:P.comment,popover:P.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:P.foreground,secondary:"#E8E8E2",muted:P.comment,disabled:"#565869",inverse:{base:P.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:P.purple,ring:{color:P.purple,width:2}},disabled:{opacity:.4,bg:P.currentLine,fg:"#565869"},selected:{bg:P.currentLine,fg:P.foreground}},borders:{default:P.comment,subtle:P.currentLine,strong:P.purple,accent:P.purple,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:P.purple,fg:P.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:P.currentLine,fg:P.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:P.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:P.purple},ghost:{bg:"transparent",fg:P.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:P.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:P.comment},menu:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:P.currentLine,border:P.comment,tab:{fg:P.comment,activeFg:P.foreground,activeBg:P.background,hoverFg:"#E8E8E2",indicator:P.purple}},dropdown:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:P.currentLine,fg:P.foreground,placeholder:P.comment,border:P.comment,focusBorder:P.purple,invalidBorder:P.red},checkbox:{bg:P.currentLine,border:P.comment,checkColor:P.foreground,checkedBg:P.purple},radio:{bg:P.currentLine,dotColor:P.purple,border:P.comment,checkedBorder:P.purple},tooltip:{bg:"#4D4F5F",fg:P.foreground},modal:{bg:P.currentLine,border:P.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:P.comment,fg:P.foreground},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.currentLine,selectedBg:"#4D4F5F",fg:P.foreground}},header:{default:{bg:P.currentLine,fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.purple,fg:P.foreground,titleFg:P.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:"#565869"},success:{bg:P.green,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:P.yellow,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.currentLine,fg:P.comment},primary:{bg:P.purple,fg:P.foreground},info:{bg:P.cyan,fg:P.background},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.background,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.background,titleFg:P.purple,subtitleFg:P.comment,border:P.purple},secondary:{bg:P.background,titleFg:"#E8E8E2",subtitleFg:P.comment,border:P.currentLine}},appshell:{bg:"#21222C",dividerFg:P.comment,sidebarBg:P.background,asideBg:P.background},collapsible:{default:{headerBg:P.currentLine,headerFg:P.foreground,contentBg:P.background,border:P.comment,iconFg:P.comment},primary:{headerBg:"#4D4F5F",headerFg:P.purple,contentBg:P.background,border:P.purple,iconFg:P.purple},secondary:{headerBg:"#4D4F5F",headerFg:P.foreground,contentBg:P.currentLine,border:"#565869",iconFg:P.comment}},commandPalette:{bg:P.currentLine,border:P.comment,inputBg:P.background,inputFg:P.foreground,inputPlaceholder:P.comment,itemFg:P.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:P.foreground,highlightFg:P.purple,categoryFg:P.comment},splitPanel:{bg:P.background,dividerBg:P.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:P.purple,border:P.comment,titleFg:P.comment},toast:{success:{bg:no.success[900],fg:no.success[100],border:P.green,iconFg:P.green},error:{bg:no.danger[900],fg:no.danger[100],border:P.red,iconFg:P.red},warning:{bg:no.warning[900],fg:no.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.background,fg:P.foreground,titleBarBg:P.currentLine,titleBarFg:P.foreground,border:P.comment,buttonFg:P.comment,closeFg:P.red},primary:{bg:P.background,fg:P.foreground,titleBarBg:P.purple,titleBarFg:P.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:P.foreground},success:{bg:P.background,fg:P.foreground,titleBarBg:P.green,titleBarFg:P.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},warning:{bg:P.background,fg:P.foreground,titleBarBg:P.yellow,titleBarFg:P.background,border:P.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},danger:{bg:P.background,fg:P.foreground,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={nord0:"#2E3440",nord1:"#3B4252",nord2:"#434C5E",nord3:"#4C566A",nord4:"#D8DEE9",nord5:"#E5E9F0",nord6:"#ECEFF4",nord7:"#8FBCBB",nord8:"#88C0D0",nord9:"#81A1C1",nord10:"#5E81AC",nord11:"#BF616A",nord12:"#D08770",nord13:"#EBCB8B",nord14:"#A3BE8C",nord15:"#B48EAD"},oo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:E.nord8,400:E.nord8,500:E.nord8,600:E.nord9,700:E.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:E.nord14,500:E.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:E.nord13,400:E.nord13,500:E.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:E.nord11,500:E.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:E.nord6,100:E.nord5,200:E.nord4,300:"#A3ADB8",400:"#7A8694",500:E.nord3,600:E.nord2,700:E.nord1,800:E.nord0,900:"#242933"}},HR={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:oo,background:{lowest:"#242933",base:E.nord0,subtle:E.nord1,surface:E.nord2,raised:E.nord3,elevated:"#5E6779",popover:E.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:E.nord6,secondary:E.nord5,muted:E.nord4,disabled:E.nord3,inverse:{base:E.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:E.nord14,warning:E.nord13,critical:E.nord11,info:E.nord9,highlight:E.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.nord8,ring:{color:E.nord8,width:2}},disabled:{opacity:.4,bg:E.nord1,fg:E.nord3},selected:{bg:E.nord1,fg:E.nord6}},borders:{default:E.nord3,subtle:E.nord1,strong:E.nord4,accent:E.nord8,danger:E.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:E.nord8,fg:E.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:E.nord2,fg:E.nord6,hoverBg:E.nord3,activeBg:E.nord1,border:"transparent"},outline:{bg:"transparent",fg:E.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:E.nord8},ghost:{bg:"transparent",fg:E.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.nord1,headerBg:E.nord2,footerBg:E.nord2,border:E.nord3},menu:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,activeBg:E.nord3,selectedBg:E.nord2,disabledFg:E.nord3}},tabs:{bg:E.nord1,border:E.nord3,tab:{fg:E.nord4,activeFg:E.nord6,activeBg:E.nord0,hoverFg:E.nord5,indicator:E.nord8}},dropdown:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,selectedBg:E.nord3}},input:{bg:E.nord1,fg:E.nord6,placeholder:E.nord4,border:E.nord3,focusBorder:E.nord8,invalidBorder:E.nord11},checkbox:{bg:E.nord1,border:E.nord3,checkColor:E.nord0,checkedBg:E.nord8},radio:{bg:E.nord1,dotColor:E.nord8,border:E.nord3,checkedBorder:E.nord8},tooltip:{bg:E.nord2,fg:E.nord6},modal:{bg:E.nord1,border:E.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:E.nord3,fg:E.nord6},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.nord1,selectedBg:E.nord2,fg:E.nord6}},header:{default:{bg:E.nord1,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord8,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:E.nord9},secondary:{bg:E.nord2,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},success:{bg:E.nord14,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:E.nord13,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:E.nord12},danger:{bg:E.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:E.nord1,fg:E.nord4},primary:{bg:E.nord8,fg:E.nord0},info:{bg:E.nord9,fg:"#ffffff"},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},page:{default:{bg:E.nord0,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord0,titleFg:E.nord8,subtitleFg:E.nord4,border:E.nord8},secondary:{bg:E.nord0,titleFg:E.nord5,subtitleFg:E.nord4,border:E.nord1}},appshell:{bg:"#242933",dividerFg:E.nord3,sidebarBg:E.nord0,asideBg:E.nord0},collapsible:{default:{headerBg:E.nord1,headerFg:E.nord6,contentBg:E.nord0,border:E.nord3,iconFg:E.nord4},primary:{headerBg:E.nord2,headerFg:E.nord8,contentBg:E.nord0,border:E.nord8,iconFg:E.nord8},secondary:{headerBg:E.nord2,headerFg:E.nord6,contentBg:E.nord1,border:E.nord3,iconFg:E.nord4}},commandPalette:{bg:E.nord1,border:E.nord3,inputBg:E.nord0,inputFg:E.nord6,inputPlaceholder:E.nord4,itemFg:E.nord6,itemHoverBg:E.nord2,itemSelectedBg:E.nord3,itemSelectedFg:E.nord6,highlightFg:E.nord8,categoryFg:E.nord4},splitPanel:{bg:E.nord0,dividerBg:E.nord3,dividerHoverBg:E.nord2,dividerActiveBg:E.nord8,border:E.nord3,titleFg:E.nord4},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:oo.danger[900],fg:oo.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:oo.warning[900],fg:oo.warning[100],border:E.nord13,iconFg:E.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.nord9,iconFg:E.nord9}},window:{default:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord1,titleBarFg:E.nord6,border:E.nord3,buttonFg:E.nord4,closeFg:E.nord11},primary:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord8,titleBarFg:E.nord0,border:E.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},success:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord14,titleBarFg:E.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},warning:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord13,titleBarFg:E.nord0,border:E.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},danger:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},so={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:S.blue,500:S.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:S.green,500:S.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:S.yellow,500:S.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.red,500:S.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.base3,100:S.base2,200:S.base1,300:S.base0,400:S.base00,500:S.base01,600:"#4A5A60",700:S.base02,800:S.base03,900:"#001E26"}},UR={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:so,background:{lowest:"#001E26",base:S.base03,subtle:S.base02,surface:"#094652",raised:"#0B5A66",elevated:S.base01,popover:S.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.base0,secondary:S.base1,muted:S.base00,disabled:S.base01,inverse:{base:S.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:S.green,warning:S.yellow,critical:S.red,info:S.cyan,highlight:S.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.blue,ring:{color:S.blue,width:2}},disabled:{opacity:.4,bg:S.base02,fg:S.base01},selected:{bg:S.base02,fg:S.base1}},borders:{default:S.base01,subtle:S.base02,strong:S.base0,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:S.base02,fg:S.base1,hoverBg:"#094652",activeBg:S.base03,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.base02,headerBg:"#094652",footerBg:"#094652",border:S.base01},menu:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:S.base01}},tabs:{bg:S.base02,border:S.base01,tab:{fg:S.base00,activeFg:S.base1,activeBg:S.base03,hoverFg:S.base0,indicator:S.blue}},dropdown:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:S.base02,fg:S.base0,placeholder:S.base00,border:S.base01,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.base02,border:S.base01,checkColor:S.base3,checkedBg:S.blue},radio:{bg:S.base02,dotColor:S.blue,border:S.base01,checkedBorder:S.blue},tooltip:{bg:"#094652",fg:S.base1},modal:{bg:S.base02,border:S.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.base01,fg:S.base1},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.base02,selectedBg:"#094652",fg:S.base0}},header:{default:{bg:S.base02,fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.blue,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:"#0B5A66"},success:{bg:S.green,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.base03,titleFg:S.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.base02,fg:S.base00},primary:{bg:S.blue,fg:S.base3},info:{bg:S.cyan,fg:S.base03},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.base03,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.base03,titleFg:S.blue,subtitleFg:S.base00,border:S.blue},secondary:{bg:S.base03,titleFg:S.base0,subtitleFg:S.base00,border:S.base02}},appshell:{bg:"#001E26",dividerFg:S.base01,sidebarBg:S.base03,asideBg:S.base03},collapsible:{default:{headerBg:S.base02,headerFg:S.base1,contentBg:S.base03,border:S.base01,iconFg:S.base00},primary:{headerBg:"#094652",headerFg:S.blue,contentBg:S.base03,border:S.blue,iconFg:S.blue},secondary:{headerBg:"#094652",headerFg:S.base1,contentBg:S.base02,border:"#0B5A66",iconFg:S.base00}},commandPalette:{bg:S.base02,border:S.base01,inputBg:S.base03,inputFg:S.base0,inputPlaceholder:S.base00,itemFg:S.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:S.base1,highlightFg:S.blue,categoryFg:S.base00},splitPanel:{bg:S.base03,dividerBg:S.base01,dividerHoverBg:"#094652",dividerActiveBg:S.blue,border:S.base01,titleFg:S.base00},toast:{success:{bg:so.success[900],fg:so.success[100],border:S.green,iconFg:S.green},error:{bg:so.danger[900],fg:so.danger[100],border:S.red,iconFg:S.red},warning:{bg:so.warning[900],fg:so.warning[100],border:S.yellow,iconFg:S.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.cyan,iconFg:S.cyan}},window:{default:{bg:S.base03,fg:S.base0,titleBarBg:S.base02,titleBarFg:S.base1,border:S.base01,buttonFg:S.base00,closeFg:S.red},primary:{bg:S.base03,fg:S.base0,titleBarBg:S.blue,titleBarFg:S.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},success:{bg:S.base03,fg:S.base0,titleBarBg:S.green,titleBarFg:S.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},warning:{bg:S.base03,fg:S.base0,titleBarBg:S.yellow,titleBarFg:S.base03,border:S.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:S.base03},danger:{bg:S.base03,fg:S.base0,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},io={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:_.red,500:_.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:_.fg0,100:_.fg1,200:_.fg2,300:_.fg3,400:_.fg4,500:_.gray,600:_.bg4,700:_.bg3,800:_.bg2,900:_.bg1}},qR={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:io,background:{lowest:_.bg0_h,base:_.bg0,subtle:_.bg1,surface:_.bg2,raised:_.bg3,elevated:_.bg4,popover:_.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.fg1,secondary:_.fg2,muted:_.gray,disabled:_.bg3,inverse:{base:_.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.blue,highlight:_.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.green,ring:{color:_.green,width:2}},disabled:{opacity:.4,bg:_.bg1,fg:_.bg3},selected:{bg:_.bg2,fg:_.fg1}},borders:{default:_.bg3,subtle:_.bg2,strong:_.gray,accent:_.green,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.green,fg:_.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:_.bg2,fg:_.fg1,hoverBg:_.bg3,activeBg:_.bg1,border:"transparent"},outline:{bg:"transparent",fg:_.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:_.green},ghost:{bg:"transparent",fg:_.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.bg1,headerBg:_.bg2,footerBg:_.bg2,border:_.bg3},menu:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,activeBg:_.bg3,selectedBg:_.bg2,disabledFg:_.bg3}},tabs:{bg:_.bg1,border:_.bg3,tab:{fg:_.gray,activeFg:_.fg1,activeBg:_.bg0,hoverFg:_.fg2,indicator:_.green}},dropdown:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,selectedBg:_.bg3}},input:{bg:_.bg1,fg:_.fg1,placeholder:_.gray,border:_.bg3,focusBorder:_.green,invalidBorder:_.red},checkbox:{bg:_.bg1,border:_.bg3,checkColor:_.bg0,checkedBg:_.green},radio:{bg:_.bg1,dotColor:_.green,border:_.bg3,checkedBorder:_.green},tooltip:{bg:_.bg2,fg:_.fg1},modal:{bg:_.bg1,border:_.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.bg3,fg:_.fg1},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.bg1,selectedBg:_.bg2,fg:_.fg1}},header:{default:{bg:_.bg1,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:_.bg2,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},success:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:_.yellow,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:_.orange},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:_.bg1,fg:_.gray},primary:{bg:_.green,fg:_.bg0},info:{bg:_.blue,fg:_.bg0},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.bg0,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.bg0,titleFg:_.green,subtitleFg:_.gray,border:_.green},secondary:{bg:_.bg0,titleFg:_.fg2,subtitleFg:_.gray,border:_.bg2}},appshell:{bg:_.bg0_h,dividerFg:_.bg3,sidebarBg:_.bg0,asideBg:_.bg0},collapsible:{default:{headerBg:_.bg1,headerFg:_.fg1,contentBg:_.bg0,border:_.bg3,iconFg:_.gray},primary:{headerBg:_.bg2,headerFg:_.green,contentBg:_.bg0,border:_.green,iconFg:_.green},secondary:{headerBg:_.bg2,headerFg:_.fg1,contentBg:_.bg1,border:_.bg3,iconFg:_.gray}},commandPalette:{bg:_.bg1,border:_.bg3,inputBg:_.bg0,inputFg:_.fg1,inputPlaceholder:_.gray,itemFg:_.fg1,itemHoverBg:_.bg2,itemSelectedBg:_.bg3,itemSelectedFg:_.fg1,highlightFg:_.green,categoryFg:_.gray},splitPanel:{bg:_.bg0,dividerBg:_.bg3,dividerHoverBg:_.bg2,dividerActiveBg:_.green,border:_.bg3,titleFg:_.gray},toast:{success:{bg:io.success[900],fg:io.success[100],border:_.green,iconFg:_.green},error:{bg:io.danger[900],fg:io.danger[100],border:_.red,iconFg:_.red},warning:{bg:io.warning[900],fg:io.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.blue,iconFg:_.blue}},window:{default:{bg:_.bg0,fg:_.fg1,titleBarBg:_.bg1,titleBarFg:_.fg1,border:_.bg3,buttonFg:_.gray,closeFg:_.red},primary:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},success:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},warning:{bg:_.bg0,fg:_.fg1,titleBarBg:_.yellow,titleBarFg:_.bg0,border:_.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},danger:{bg:_.bg0,fg:_.fg1,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={bg:"#1A1B26",bgDark:"#16161E",bgHighlight:"#24283B",bgPopup:"#2F3549",fg:"#A9B1D6",fgDark:"#9AA5CE",blue:"#7AA2F7",cyan:"#7DCFFF",green:"#9ECE6A",magenta:"#BB9AF7",orange:"#FF9E64",purple:"#9D7CD8",red:"#F7768E",teal:"#73DACA",yellow:"#E0AF68",comment:"#565F89",dark3:"#414868",dark5:"#737AA2"},ao={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:v.blue,500:v.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:v.green,500:v.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:v.yellow,500:v.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:v.red,500:v.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},KR={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:ao,background:{lowest:v.bgDark,base:v.bg,subtle:v.bgHighlight,surface:v.bgPopup,raised:v.dark3,elevated:v.comment,popover:v.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:v.fg,secondary:v.fgDark,muted:v.comment,disabled:v.dark3,inverse:{base:v.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:v.green,warning:v.yellow,critical:v.red,info:v.cyan,highlight:v.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.blue,ring:{color:v.blue,width:2}},disabled:{opacity:.4,bg:v.bgHighlight,fg:v.dark3},selected:{bg:v.bgHighlight,fg:v.fg}},borders:{default:v.dark3,subtle:v.bgHighlight,strong:v.comment,accent:v.blue,danger:v.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:v.blue,fg:v.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:v.bgHighlight,fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,border:"transparent"},outline:{bg:"transparent",fg:v.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:v.blue},ghost:{bg:"transparent",fg:v.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.bgHighlight,headerBg:v.bgPopup,footerBg:v.bgPopup,border:v.dark3},menu:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,selectedBg:v.bgPopup,disabledFg:v.dark3}},tabs:{bg:v.bgHighlight,border:v.dark3,tab:{fg:v.comment,activeFg:v.fg,activeBg:v.bg,hoverFg:v.fgDark,indicator:v.blue}},dropdown:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,selectedBg:v.dark3}},input:{bg:v.bgHighlight,fg:v.fg,placeholder:v.comment,border:v.dark3,focusBorder:v.blue,invalidBorder:v.red},checkbox:{bg:v.bgHighlight,border:v.dark3,checkColor:v.bg,checkedBg:v.blue},radio:{bg:v.bgHighlight,dotColor:v.blue,border:v.dark3,checkedBorder:v.blue},tooltip:{bg:v.bgPopup,fg:v.fg},modal:{bg:v.bgHighlight,border:v.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:v.dark3,fg:v.fg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.bgHighlight,selectedBg:v.bgPopup,fg:v.fg}},header:{default:{bg:v.bgHighlight,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.blue,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:v.bgPopup,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},success:{bg:v.green,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:v.yellow,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:v.orange},danger:{bg:v.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:v.bgHighlight,fg:v.comment},primary:{bg:v.blue,fg:v.bg},info:{bg:v.cyan,fg:v.bg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},page:{default:{bg:v.bg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.bg,titleFg:v.blue,subtitleFg:v.comment,border:v.blue},secondary:{bg:v.bg,titleFg:v.fgDark,subtitleFg:v.comment,border:v.bgHighlight}},appshell:{bg:v.bgDark,dividerFg:v.dark3,sidebarBg:v.bg,asideBg:v.bg},collapsible:{default:{headerBg:v.bgHighlight,headerFg:v.fg,contentBg:v.bg,border:v.dark3,iconFg:v.comment},primary:{headerBg:v.bgPopup,headerFg:v.blue,contentBg:v.bg,border:v.blue,iconFg:v.blue},secondary:{headerBg:v.bgPopup,headerFg:v.fg,contentBg:v.bgHighlight,border:v.dark3,iconFg:v.comment}},commandPalette:{bg:v.bgHighlight,border:v.dark3,inputBg:v.bg,inputFg:v.fg,inputPlaceholder:v.comment,itemFg:v.fg,itemHoverBg:v.bgPopup,itemSelectedBg:v.dark3,itemSelectedFg:v.fg,highlightFg:v.blue,categoryFg:v.comment},splitPanel:{bg:v.bg,dividerBg:v.dark3,dividerHoverBg:v.bgPopup,dividerActiveBg:v.blue,border:v.dark3,titleFg:v.comment},toast:{success:{bg:ao.success[900],fg:ao.success[100],border:v.green,iconFg:v.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:v.red,iconFg:v.red},warning:{bg:ao.warning[900],fg:ao.warning[100],border:v.yellow,iconFg:v.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.cyan,iconFg:v.cyan}},window:{default:{bg:v.bg,fg:v.fg,titleBarBg:v.bgHighlight,titleBarFg:v.fg,border:v.dark3,buttonFg:v.comment,closeFg:v.red},primary:{bg:v.bg,fg:v.fg,titleBarBg:v.blue,titleBarFg:v.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},success:{bg:v.bg,fg:v.fg,titleBarBg:v.green,titleBarFg:v.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},warning:{bg:v.bg,fg:v.fg,titleBarBg:v.yellow,titleBarFg:v.bg,border:v.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},danger:{bg:v.bg,fg:v.fg,titleBarBg:v.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},lo={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:x.mauve,500:x.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.green,500:x.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:x.yellow,500:x.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:x.red,500:x.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:x.text,100:x.subtext1,200:x.subtext0,300:x.overlay2,400:x.overlay1,500:x.overlay0,600:x.surface2,700:x.surface1,800:x.surface0,900:x.base}},VR={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:lo,background:{lowest:x.crust,base:x.base,subtle:x.surface0,surface:x.surface1,raised:x.surface2,elevated:x.overlay0,popover:x.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.text,secondary:x.subtext1,muted:x.overlay0,disabled:x.surface2,inverse:{base:x.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.sky,highlight:x.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.mauve,ring:{color:x.mauve,width:2}},disabled:{opacity:.4,bg:x.surface0,fg:x.surface2},selected:{bg:x.surface0,fg:x.text}},borders:{default:x.overlay0,subtle:x.surface1,strong:x.subtext1,accent:x.mauve,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.mauve,fg:x.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:x.surface0,fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,border:"transparent"},outline:{bg:"transparent",fg:x.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:x.mauve},ghost:{bg:"transparent",fg:x.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.surface0,headerBg:x.surface1,footerBg:x.surface1,border:x.overlay0},menu:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,selectedBg:x.surface1,disabledFg:x.surface2}},tabs:{bg:x.surface0,border:x.overlay0,tab:{fg:x.overlay0,activeFg:x.text,activeBg:x.base,hoverFg:x.subtext1,indicator:x.mauve}},dropdown:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,selectedBg:x.surface2}},input:{bg:x.surface0,fg:x.text,placeholder:x.overlay0,border:x.overlay0,focusBorder:x.mauve,invalidBorder:x.red},checkbox:{bg:x.surface0,border:x.overlay0,checkColor:x.base,checkedBg:x.mauve},radio:{bg:x.surface0,dotColor:x.mauve,border:x.overlay0,checkedBorder:x.mauve},tooltip:{bg:x.surface1,fg:x.text},modal:{bg:x.surface0,border:x.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.surface2,fg:x.text},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.surface0,selectedBg:x.surface1,fg:x.text}},header:{default:{bg:x.surface0,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.mauve,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:x.surface1,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.surface2},success:{bg:x.green,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:x.yellow,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:x.peach},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:x.surface0,fg:x.overlay0},primary:{bg:x.mauve,fg:x.base},info:{bg:x.sky,fg:x.base},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.base,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.base,titleFg:x.mauve,subtitleFg:x.overlay0,border:x.mauve},secondary:{bg:x.base,titleFg:x.subtext1,subtitleFg:x.overlay0,border:x.surface0}},appshell:{bg:x.crust,dividerFg:x.overlay0,sidebarBg:x.base,asideBg:x.base},collapsible:{default:{headerBg:x.surface0,headerFg:x.text,contentBg:x.base,border:x.overlay0,iconFg:x.overlay0},primary:{headerBg:x.surface1,headerFg:x.mauve,contentBg:x.base,border:x.mauve,iconFg:x.mauve},secondary:{headerBg:x.surface1,headerFg:x.text,contentBg:x.surface0,border:x.surface2,iconFg:x.overlay0}},commandPalette:{bg:x.surface0,border:x.overlay0,inputBg:x.base,inputFg:x.text,inputPlaceholder:x.overlay0,itemFg:x.text,itemHoverBg:x.surface1,itemSelectedBg:x.surface2,itemSelectedFg:x.text,highlightFg:x.mauve,categoryFg:x.overlay0},splitPanel:{bg:x.base,dividerBg:x.overlay0,dividerHoverBg:x.surface1,dividerActiveBg:x.mauve,border:x.overlay0,titleFg:x.overlay0},toast:{success:{bg:lo.success[900],fg:lo.success[100],border:x.green,iconFg:x.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:x.red,iconFg:x.red},warning:{bg:lo.warning[900],fg:lo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.sky,iconFg:x.sky}},window:{default:{bg:x.base,fg:x.text,titleBarBg:x.surface0,titleBarFg:x.text,border:x.overlay0,buttonFg:x.overlay0,closeFg:x.red},primary:{bg:x.base,fg:x.text,titleBarBg:x.mauve,titleBarFg:x.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},success:{bg:x.base,fg:x.text,titleBarBg:x.green,titleBarFg:x.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},warning:{bg:x.base,fg:x.text,titleBarBg:x.yellow,titleBarFg:x.base,border:x.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},danger:{bg:x.base,fg:x.text,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var co={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},zR={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:co,background:{lowest:"#000000",base:"#000000",subtle:m[950],surface:m[900],raised:m[800],elevated:m[700],popover:m[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:m[100],muted:m[300],disabled:m[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:he[400],warning:ge[400],critical:ce[400],info:Ze[400],highlight:te[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:te[400],ring:{color:te[400],width:3}},disabled:{opacity:.5,bg:m[900],fg:m[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:m[500],subtle:m[700],strong:m[300],accent:te[400],danger:ce[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:te[500],fg:"#ffffff",hoverBg:te[400],activeBg:te[600],border:te[300]},secondary:{bg:m[800],fg:"#ffffff",hoverBg:m[700],activeBg:m[900],border:m[500]},outline:{bg:"transparent",fg:te[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:te[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:m[950],headerBg:m[900],footerBg:m[900],border:m[500]},menu:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],activeBg:te[800],selectedBg:te[900],disabledFg:m[500]}},tabs:{bg:m[950],border:m[500],tab:{fg:m[300],activeFg:"#ffffff",activeBg:m[800],hoverFg:m[100],indicator:te[400]}},dropdown:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:m[400],border:m[500],focusBorder:te[400],invalidBorder:ce[400]},checkbox:{bg:"#000000",border:m[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:m[400],checkedBorder:te[400]},tooltip:{bg:m[800],fg:"#ffffff"},modal:{bg:m[950],border:m[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:m[700],fg:"#ffffff"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:m[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:m[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:m[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},success:{bg:he[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:he[300]},warning:{bg:ge[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[600]},danger:{bg:ce[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ce[300]}},statusbar:{default:{bg:m[950],fg:m[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Ze[500],fg:"#000000"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:m[300],border:te[400]},secondary:{bg:"#000000",titleFg:m[100],subtitleFg:m[400],border:m[700]}},appshell:{bg:"#000000",dividerFg:m[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:m[950],headerFg:"#ffffff",contentBg:"#000000",border:m[500],iconFg:m[300]},primary:{headerBg:m[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:m[900],headerFg:"#ffffff",contentBg:m[950],border:m[500],iconFg:m[300]}},commandPalette:{bg:m[950],border:m[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:m[400],itemFg:"#ffffff",itemHoverBg:m[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:m[400]},splitPanel:{bg:"#000000",dividerBg:m[500],dividerHoverBg:m[400],dividerActiveBg:te[400],border:m[500],titleFg:m[300]},toast:{success:{bg:co.success[900],fg:co.success[100],border:he[400],iconFg:he[400]},error:{bg:co.danger[900],fg:co.danger[100],border:ce[400],iconFg:ce[400]},warning:{bg:co.warning[900],fg:co.warning[100],border:ge[400],iconFg:ge[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Ze[400],iconFg:Ze[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:m[950],titleBarFg:"#ffffff",border:m[500],buttonFg:m[300],closeFg:ce[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:te[500],titleBarFg:"#ffffff",border:te[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:he[500],titleBarFg:"#000000",border:he[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[400],titleBarFg:"#000000",border:ge[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ce[500],titleBarFg:"#ffffff",border:ce[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var TL={primary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},warning:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},danger:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},JR={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:TL,background:{lowest:m[950],base:m[900],subtle:m[800],surface:m[700],raised:m[600],elevated:m[500],popover:m[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:m[50],secondary:m[200],muted:m[400],disabled:m[500],inverse:{base:m[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:m[300],warning:m[400],critical:m[200],info:m[300],highlight:m[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:m[400],ring:{color:m[400],width:2}},disabled:{opacity:.4,bg:m[800],fg:m[500]},selected:{bg:m[700],fg:m[50]}},borders:{default:m[600],subtle:m[700],strong:m[400],accent:m[400],danger:m[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:m[300],fg:m[900],hoverBg:m[200],activeBg:m[400],border:"transparent"},secondary:{bg:m[700],fg:m[50],hoverBg:m[600],activeBg:m[800],border:"transparent"},outline:{bg:"transparent",fg:m[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:m[400]},ghost:{bg:"transparent",fg:m[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:m[800],headerBg:m[700],footerBg:m[700],border:m[600]},menu:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],activeBg:m[600],selectedBg:m[700],disabledFg:m[500]}},tabs:{bg:m[800],border:m[600],tab:{fg:m[400],activeFg:m[50],activeBg:m[700],hoverFg:m[200],indicator:m[300]}},dropdown:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],selectedBg:m[600]}},input:{bg:m[800],fg:m[50],placeholder:m[500],border:m[600],focusBorder:m[400],invalidBorder:m[300]},checkbox:{bg:m[800],border:m[500],checkColor:m[900],checkedBg:m[300]},radio:{bg:m[800],dotColor:m[300],border:m[500],checkedBorder:m[300]},tooltip:{bg:m[700],fg:m[50]},modal:{bg:m[800],border:m[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:m[700],fg:m[50]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},list:{item:{bg:"transparent",hoverBg:m[800],selectedBg:m[700],fg:m[50]}},header:{default:{bg:m[800],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]},secondary:{bg:m[700],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},success:{bg:m[400],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[500]},warning:{bg:m[500],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[600]},danger:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]}},statusbar:{default:{bg:m[800],fg:m[400]},primary:{bg:m[300],fg:m[900]},info:{bg:m[400],fg:m[900]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},page:{default:{bg:m[900],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[900],titleFg:m[200],subtitleFg:m[400],border:m[500]},secondary:{bg:m[900],titleFg:m[300],subtitleFg:m[500],border:m[700]}},appshell:{bg:m[950],dividerFg:m[600],sidebarBg:m[900],asideBg:m[900]},collapsible:{default:{headerBg:m[800],headerFg:m[50],contentBg:m[900],border:m[600],iconFg:m[400]},primary:{headerBg:m[700],headerFg:m[200],contentBg:m[900],border:m[500],iconFg:m[300]},secondary:{headerBg:m[700],headerFg:m[50],contentBg:m[800],border:m[600],iconFg:m[400]}},commandPalette:{bg:m[800],border:m[600],inputBg:m[900],inputFg:m[50],inputPlaceholder:m[500],itemFg:m[50],itemHoverBg:m[700],itemSelectedBg:m[600],itemSelectedFg:m[50],highlightFg:m[200],categoryFg:m[500]},splitPanel:{bg:m[900],dividerBg:m[600],dividerHoverBg:m[500],dividerActiveBg:m[300],border:m[600],titleFg:m[400]},toast:{success:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]},error:{bg:m[800],fg:m[100],border:m[300],iconFg:m[200]},warning:{bg:m[800],fg:m[100],border:m[500],iconFg:m[400]},info:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]}},window:{default:{bg:m[900],fg:m[50],titleBarBg:m[800],titleBarFg:m[50],border:m[600],buttonFg:m[400],closeFg:m[300]},primary:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},success:{bg:m[900],fg:m[50],titleBarBg:m[400],titleBarFg:m[900],border:m[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},warning:{bg:m[900],fg:m[50],titleBarBg:m[500],titleBarFg:m[900],border:m[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},danger:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]}}},borderRadius:"none"};var QR=Symbol("tuiuiu.theme-runtime-state");function YR(){let[e,t]=gr(jp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function PL(e){if(e.id===0)return YR();let t=It(QR,YR),[r,n]=gr(ss(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function XR(){let e=Ge();return Oe(QR,()=>PL(e),e)}function ZR(){return ss(XR().currentTheme)}var AL={dark:jp,light:NR,monokai:GR,dracula:WR,nord:HR,solarizedDark:UR,gruvbox:qR,tokyoNight:KR,catppuccin:VR,highContrastDark:zR,monochrome:JR},s9=Object.keys(AL);function CL(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function wt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&CL(e)>.4?"black":"white"}function DL(e,t=500){let r=$R[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var OL={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>wt(e.palette.primary[500]),"primary-foreground":e=>wt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>wt(e.palette.secondary[500]),"secondary-foreground":e=>wt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>wt(e.accents.positive),"success-foreground":e=>wt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>wt(e.accents.warning),"warning-foreground":e=>wt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>wt(e.accents.critical),"danger-foreground":e=>wt(e.accents.critical),errorForeground:e=>wt(e.accents.critical),destructiveForeground:e=>wt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>wt(e.accents.info),"info-foreground":e=>wt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>wt(e.palette.primary[400]),"accent-foreground":e=>wt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function e_(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=ss(XR().currentTheme),r=OL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return DL(o,i)}return e}var FL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},t_=Symbol("tuiuiu.perf-inspector-runtime-state");function IL(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function r_(e){let t=e.id===0?null:It(t_,()=>r_(Mr())),r=IL(t?.config??FL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function n_(){let e=Ge();return Oe(t_,()=>r_(e),e)}function ML(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function LL(e,t){let r=$L().slice(-t);e.ring=new Array(t),e.start=0,e.count=r.length;for(let n=0;n<r.length;n++)e.ring[n]=r[n]}function jL(e,t){e.ring.length!==e.config.maxFrames&&LL(e,e.config.maxFrames);let r=(e.start+e.count)%e.ring.length;if(e.ring[r]=t,e.count<e.ring.length){e.count++;return}e.start=(e.start+1)%e.ring.length}function BL(e,t){let r={};if(!t)return r;for(let[n,o]of Object.entries(t)){if(!Number.isFinite(o)||o<0)continue;let s=e[n];if(typeof s!="number")continue;let i=s-o;i>0&&(r[n]=i)}return r}function o_(e,t={}){let r=n_(),n=ML(e),o=Math.max(0,n-r.config.budget.frameMs),s=BL(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;tR({totalMs:n,overBudget:o>0,phaseOverrunCount:i});let l={frameId:e.info.frameId,committedAt:e.info.committedAt,renderer:t.renderer??(e.metrics.phases.deltaRenderMs!==void 0?"delta":"ansi"),totalMs:n,budgetOverrunMs:o,phaseBudgetOverruns:s,overBudgetPhaseCount:i,slow:a,phases:{...e.metrics.phases},structural:{...e.metrics.structural}};if(!r.config.enabled)return null;if(jL(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function $L(){let e=n_(),t=[];for(let r=0;r<e.count;r++){let n=e.ring[(e.start+r)%e.ring.length];n&&t.push(n)}return t}var NL={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function uo(e,t){return pR(e,t,NL)}function Bp(e){fR(e)}function Tn(e,t){mR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),o_(e,{renderer:t.renderer})}var GL=.4,WL=64;function po(){return typeof performance<"u"?performance.now():Date.now()}var s_=new WeakMap;function HL(){let e=ZR(),t=s_.get(e);return t||(t=new Map,s_.set(e,t)),t}function UL(e,t){return e.type!==t.type||e.order!==t.order||e.zIndex!==t.zIndex||e.id!==t.id||e.nodeType!==t.nodeType||e.clip?.x!==t.clip?.x||e.clip?.y!==t.clip?.y||e.clip?.width!==t.clip?.width||e.clip?.height!==t.clip?.height?!1:e.type==="box"&&t.type==="box"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.backgroundColor===t.backgroundColor&&e.fillChar===t.fillChar&&e.borderStyle===t.borderStyle&&e.borderColor===t.borderColor&&e.borderText===t.borderText&&e.borderTextAlign===t.borderTextAlign&&e.borderTextColor===t.borderTextColor&&e.borderTextBold===t.borderTextBold&&e.borderSides?.top===t.borderSides?.top&&e.borderSides?.bottom===t.borderSides?.bottom&&e.borderSides?.left===t.borderSides?.left&&e.borderSides?.right===t.borderSides?.right:e.type==="text"&&t.type==="text"?e.x===t.x&&e.y===t.y&&e.maxWidth===t.maxWidth&&e.text===t.text&&e.inheritedBackgroundColor===t.inheritedBackgroundColor&&qL(e.style,t.style):e.type==="terminal-image"&&t.type==="terminal-image"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.protocol===t.protocol&&e.fit===t.fit&&e.threshold===t.threshold&&e.dither===t.dither&&e.preserveAspectRatio===t.preserveAspectRatio&&e.cellRender===t.cellRender&&e.source.hash===t.source.hash:!1}function qL(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o of r)if(e[o]!==t[o])return!1;return!0}function l_(e,t){return!(e.x+e.width<=t.x||t.x+t.width<=e.x||e.y+e.height<=t.y||t.y+t.height<=e.y)}function d_(e,t,r){let n=Math.max(0,e.x),o=Math.max(0,e.y),s=Math.min(t,e.x+e.width),i=Math.min(r,e.y+e.height);return s<=n||i<=o?null:{x:n,y:o,width:s-n,height:i-o}}function KL(e,t,r){let n=e.map(s=>d_(s,t,r)).filter(s=>s!==null).sort((s,i)=>s.y-i.y||s.x-i.x);if(n.length<=1)return n;let o=[];for(let s of n){let i=o[o.length-1];if(!i){o.push({...s});continue}if(!(l_(i,s)||s.y<=i.y+i.height&&s.x<=i.x+i.width)){o.push({...s});continue}let l=Math.min(i.x,s.x),d=Math.min(i.y,s.y),c=Math.max(i.x+i.width,s.x+s.width),u=Math.max(i.y+i.height,s.y+s.height);i.x=l,i.y=d,i.width=c-l,i.height=u-d}return o}function VL(e,t,r){let n=new Map;for(let i of e){let a=d_(i,t,r);if(!a)continue;let l=a.x,d=a.x+a.width,c=a.y+a.height;for(let u=a.y;u<c;u++){let p=n.get(u);p?p.push({x1:l,x2:d}):n.set(u,[{x1:l,x2:d}])}}let o=[...n.keys()].sort((i,a)=>i-a),s=[];for(let i of o){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1}),l=c}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1})}return s}function c_(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new Ei(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function h(F){U(t.columns||80,t.rows||24);let W=uo(F,{width:s,height:i});R(W)}function R(F){U(F.info.viewport.width,F.info.viewport.height),G(F),Xo(F.layout),ai(),c=F.root,u=F}function T(){l=!0,c?h(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Ei(s,i),l=!0}function D(){!r&&d&&(as(t),d=!1)}function M(){let F=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:y,totalCells:F,updatePercentage:F>0?y/F*100:0}}function N(F,W){s=F,i=W,a.resize(s,i),l=!0}function U(F,W){!r&&!d&&(ls(t),d=!0),(F!==s||W!==i)&&N(F,W)}function G(F){let W=po(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=nj(u,F),Ae=$r(),Ee=MR(Ae),we=LR(Ae),J=_e=>{let Ce=po();t.write(_e),q+=po()-Ce,oe+=typeof _e=="string"?Buffer.byteLength(_e):_e.byteLength};if(!l&&n&&u){let{renderRects:_e,diffRects:Ce}=JL(u.drawCommands,F.drawCommands,s,i);if(Pt(F,"dirtyRectCount",_e.length),Pt(F,"diffRectCount",Ce.length),_e.length===0){pe&&J(pe),y=0,Pt(F,"patchCount",0),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}let ve=YL(_e);if(!(_e.length>WL||ve>Z*GL)){Ee&&J(Ee),QL(se,_e),ZL(F.drawCommands,_e,se,F.reservedRegions);let Se=ae.diffRects(se,Ce);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,Pt(F,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${_e.length}, patches: ${Se.length}, cells: ${Z}`),pe&&J(pe),Se.length>0){let fe=Fp(Se,s,!0);J(fe),g++}we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}}Ee&&J(Ee),se.clear(),f_(F.drawCommands,se,F.reservedRegions);let de=a.swap();if(y=de.length,Pt(F,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let _e=Pl(a.getFrontBuffer());pe&&J(pe),J("\x1B[H"),J(_e),f++,l=!1,we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}if(pe&&J(pe),de.length>0){let _e=Fp(de,s,!0);J(_e),g++}l=!1,we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"})}return{render:h,renderFrame:R,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function zL(e){if(e.maxWidth<=0||e.text.length===0)return{x:e.x,y:e.y,width:0,height:0};let t=0,r=-1,n=Yn(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,be(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function $p(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:zL(e);if(!e.clip)return t;let r=Math.max(t.x,e.clip.x),n=Math.max(t.y,e.clip.y),o=Math.min(t.x+t.width,e.clip.x+e.clip.width),s=Math.min(t.y+t.height,e.clip.y+e.clip.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function JL(e,t,r,n){let o=[],s=Math.max(e.length,t.length);for(let i=0;i<s;i++){let a=e[i],l=t[i];a&&l&&UL(a,l)||(a&&o.push($p(a)),l&&o.push($p(l)))}return{renderRects:KL(o,r,n),diffRects:VL(o,r,n)}}function YL(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function QL(e,t){let r=Nr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function u_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function br(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,be(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||u_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function XL(e,t,r,n,o,s,i,a,l={},d){for(let c=0;c<o;c++)(!d||r+c>=d.x&&r+c<d.x+d.width&&n>=d.y&&n<d.y+d.height)&&!u_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function p_(e,t,r){switch(e.type){case"box":ej(e,t,r);break;case"text":y_(e,t,r);break;case"terminal-image":tj(e,t);break}}function ZL(e,t,r,n){for(let o of e){let s=$p(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(l_(s,i)){p_(o,r,n);break}}}}function f_(e,t,r){for(let n of e)p_(n,t,r)}function g_(e,t=new Gr(e.info.viewport.width,e.info.viewport.height)){return f_(e.drawCommands,t,e.reservedRegions),t}function ej(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:y,clip:h}=e,R=a?fo(a):void 0,T=c?fo(c):void 0,$=f?fo(f):T;if(R||l!==" "){let D=d&&d!=="none"?1:0,M=n+D,N=o+D,U=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let F=0;F<G;F++)XL(t,r,M,N+F,U,l,void 0,R,{},h)}if(d&&d!=="none"){let D=Ip[d]??Ip.single,M={},N=u?.top!==!1,U=u?.bottom!==!1,G=u?.left!==!1,F=u?.right!==!1;if(N){let W=G?D.topLeft:D.top;br(t,r,n,o,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o,D.top,T,void 0,M,h);if(s>1){let q=F?D.topRight:D.top;br(t,r,n+s-1,o,q,T,void 0,M,h)}if(p&&s>4){let q=s-4,ae=` ${Zr(Ck(p),q,{truncationCharacter:""})} `,se=be(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ae=0,Ee=pe;for(;Ae<ae.length&&Ee<n+s-1;){let we=Jn(ae,Ae);if(!we)break;Ae=we.nextIndex;let J=be(we.symbol);J<=0||Ee+J>n+s-1||(br(t,r,Ee,o,we.symbol,$,void 0,y?{...M,bold:!0}:M,h),Ee+=J)}}}for(let W=1;W<i-1;W++)G&&br(t,r,n,o+W,D.left,T,void 0,M,h),F&&s>1&&br(t,r,n+s-1,o+W,D.right,T,void 0,M,h);if(U&&i>1){let W=G?D.bottomLeft:D.bottom;br(t,r,n,o+i-1,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o+i-1,D.bottom,T,void 0,M,h);if(s>1){let q=F?D.bottomRight:D.bottom;br(t,r,n+s-1,o+i-1,q,T,void 0,M,h)}}}}function tj(e,t){e.cellRender&&y_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:b_(e),style:{},clip:e.clip},t,[])}function h_(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function m_(e){let t=h_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function vi(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${m_(e)}:${e.x}:${e.y}`)}function ds(e){return[vi(e),e.x,e.y,m_(e)].join(":")}function b_(e){let t=h_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:ml(e.protocol,e.source,t)}function i_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender&&(!t.clip||t.x>=t.clip.x&&t.y>=t.clip.y&&t.x+t.width<=t.clip.x+t.clip.width&&t.y+t.height<=t.clip.y+t.clip.height)):[]}function rj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[vi(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(vi(s));if(!i||ds(s)!==ds(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=ns.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${bl("kitty")}\x1B8`}}return o}function nj(e,t){let r=i_(e),n=i_(t),o=r.map(ds).join("|"),s=n.map(ds).join("|");if(e&&o===s)return"";let i=rj(r,n),a=new Map(r.map(l=>[vi(l),l]));for(let l of n){let d=a.get(vi(l));d&&ds(d)===ds(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=b_(l),i+="\x1B8")}return i}function cs(e){if(e===void 0||!/^\d{1,3}$/u.test(e))return null;let t=Number(e);return t>=0&&t<=255?t:null}function oj(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=cs(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(cs);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function sj(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=cs(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[cs(e[t+2]),cs(e[t+3]),cs(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var a_={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function ij(e,t,r,n={}){let o=[],s=t,i=r,a={...n},l="",d=0;for(;d<e.length;){if(e[d]==="\x1B"){let c=zn(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let y=p[g].split(":"),h=Number(y[0]||0);if(y.length>1){if(h===4){let R=Number(y[1]||0);R in a_&&(a.underline=a_[R])}else if(h===38||h===48||h===58){let R=oj(y);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R)}continue}if(h===0)s=t,i=r,a={...n};else if(h===1)a.bold=!0;else if(h===2)a.dim=!0;else if(h===3)a.italic=!0;else if(h===4)a.underline=!0;else if(h===5)a.blink=!0;else if(h===7)a.inverse=!0;else if(h===8)a.hidden=!0;else if(h===9)a.strikethrough=!0;else if(h===21)a.underline="double";else if(h===22)a.bold=!1,a.dim=!1;else if(h===23)a.italic=!1;else if(h===24)a.underline=!1;else if(h===25)a.blink=!1;else if(h===27)a.inverse=!1;else if(h===28)a.hidden=!1;else if(h===29)a.strikethrough=!1;else if(h>=30&&h<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][h-30];else if(h===39)s=t;else if(h>=40&&h<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][h-40];else if(h===49)i=r;else if(h===59)a.underlineColor=n.underlineColor;else if(h>=90&&h<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-90];else if(h>=100&&h<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-100];else if(h===38||h===48||h===58){let{color:R,consumed:T}=sj(p,g);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function y_(e,t,r){let{x:n,y:o,maxWidth:s,text:i,style:a,inheritedBackgroundColor:l}=e;if(s<=0)return;let d=e.prebuiltAnsi===!0,c=d?void 0:a.color?fo(a.color):void 0,u=d?void 0:a.backgroundColor?fo(a.backgroundColor):l?fo(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?fo(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Yn(i,s,a.wrap);if(g){let y=ij(f.join(`
197
+ `),c,u,p),h=0,R=0;for(let T of y){let $=0;for(;$<T.text.length;){let D=Jn(T.text,$);if(!D)break;let M=D.symbol;if(M===`
198
+ `){R++,h=0,$=D.nextIndex;continue}let N=be(M);N>0&&(br(t,r,n+h,o+R,M,T.fg,T.bg,T.attrs,e.clip),h+=N),$=D.nextIndex}}}else for(let y=0;y<f.length;y++){let h=0,R=0;for(;R<f[y].length;){let T=Jn(f[y],R);if(!T)break;let $=T.symbol;if(h>=s)break;let D=be($);D>0&&(br(t,r,n+h,o+y,$,c,u,p,e.clip),h+=D),R=T.nextIndex}}}function fo(e){let t=HL(),r=t.get(e);if(r)return r;let n=e_(e);return t.set(e,n),n}var v9=Symbol("tuiuiu.delta-renderer-state");function k_(){return typeof performance<"u"?performance.now():Date.now()}function R_(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=R_(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function aj(e,t){return typeof e=="object"?{width:e.width??process.stdout.columns??80,height:e.height??1e3,fullHeight:e.fullHeight??!1}:{width:e??process.stdout.columns??80,height:t??1e3,fullHeight:!1}}function Gp(e,t={}){let r=k_(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=R_(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Gr(e.info.viewport.width,u);g_(e,p);let g=Pl(p,n),f=cj(e,o);return it(e,"ansiRenderMs",k_()-r),f+g}function __(e,t,r){let n=aj(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=uo(e,{width:n.width,height:s});return Gp(i,{fullHeight:n.fullHeight})}function x_(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function E_(e){let t=x_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function Si(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${E_(e)}:${e.x}:${e.y}`)}function us(e){return[Si(e),e.x,e.y,E_(e)].join(":")}function lj(e){let t=x_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:ml(e.protocol,e.source,t)}function w_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Np(e,t){if(!Aw(t))return e;let r=$r();return r.multiplexer?Al(e,r.multiplexer):e}function dj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Si(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Si(s));if(!i||us(s)!==us(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Np(`\x1B7\x1B[H${ns.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Np(`\x1B7\x1B[H${bl("kitty")}\x1B8`,"kitty")}}return o}function cj(e,t){let r=w_(e);if(r.length===0&&!t)return"";let n=w_(t),o=n.map(us).join("|"),s=r.map(us).join("|");if(t&&o===s)return"";let i=dj(n,r),a=new Map(n.map(l=>[Si(l),l]));for(let l of r){let d=a.get(Si(l));if(d&&us(d)===us(l))continue;let c=lj(l);i+=Np(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Dl(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=ki(()=>gr(e)),o=Xt();return pr(o,n),n}return t}function v_(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=ki(e);return pr(Xt(),n),n}return t}function Ti(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=Xt(),o={effect:null,fn:e,dispose:null};pr(n,o);let s=new xn(()=>{let a=Br(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,Xn(i,n),i}else return t.fn=e,t.dispose}var q9=Symbol("tuiuiu.keyboard-protocol-runtime-state");function S_(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,y)=>{if(f===void 0)return y??null;if(!/^\d+$/u.test(f))return null;let h=Number(f);return Number.isSafeInteger(h)?h:null},n=f=>f>=0&&f<=1114111&&!(f>=55296&&f<=57343),o=r(t[1],0),s=r(t[2]),i=r(t[3]),a=r(t[4],1),l=r(t[5],1),d=t[6];if(o===null||a===null||a<1||l===null||s!==null&&!n(s)||i!==null&&!n(i))return null;let c=a-1,u={shift:!!(c&1),alt:!!(c&2),ctrl:!!(c&4),super:!!(c&8),hyper:!!(c&16),meta:!!(c&32),capsLock:!!(c&64),numLock:!!(c&128)},p="press";l===2?p="repeat":l===3&&(p="release");let g="";if(d){let f=d.split(":").map(y=>r(y));if(f.length===0||f.some(y=>y===null||!n(y)))return null;g=f.map(y=>String.fromCodePoint(y)).join("")}else o>=32&&o<127&&(g=String.fromCharCode(o));return{keyCode:o,baseKey:i??void 0,shiftedKey:s??void 0,text:g,eventType:p,modifiers:u}}var Wp="\x1B[200~",ps="\x1B[201~",uj="\x1B[I",pj="\x1B[O";function T_(){return"\x1B[?2004h"}function P_(){return"\x1B[?2004l"}function A_(){return"\x1B[?1004h"}function C_(){return"\x1B[?1004l"}function D_(e){return e===uj?{focused:!0}:e===pj?{focused:!1}:null}function O_(){return"\x1B[?1049h"}function Hp(){return"\x1B[?1049l"}var fj={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},gj=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),hj=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),mj=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,bj=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,yj=/^\x1b\[27;(\d+);(\d+)~/;function kj(e,t){if(!Number.isSafeInteger(t)||t<1||t>16)return!1;let r=t-1;return e.shift=!!(r&1),e.option=!!(r&2),e.ctrl=!!(r&4),e.meta=!!(r&58),!0}function I_(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function F_(e,t,r=""){switch(t){case 9:return e.tab=!0,"";case 13:return e.return=!0,"";case 27:return e.escape=!0,"";case 127:return e.backspace=!0,""}return!I_(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function wj(e,t){switch(t){case"up":e.upArrow=!0;break;case"down":e.downArrow=!0;break;case"left":e.leftArrow=!0;break;case"right":e.rightArrow=!0;break;case"pageup":e.pageUp=!0;break;case"pagedown":e.pageDown=!0;break;case"home":e.home=!0;break;case"end":e.end=!0;break;case"insert":e.insert=!0;break;case"delete":e.delete=!0;break;case"clear":e.clear=!0;break;case"tab":e.tab=!0;break;case"f1":e.f1=!0;break;case"f2":e.f2=!0;break;case"f3":e.f3=!0;break;case"f4":e.f4=!0;break;case"f5":e.f5=!0;break;case"f6":e.f6=!0;break;case"f7":e.f7=!0;break;case"f8":e.f8=!0;break;case"f9":e.f9=!0;break;case"f10":e.f10=!0;break;case"f11":e.f11=!0;break;case"f12":e.f12=!0;break}}function Up(e){let t=e.toString();Buffer.isBuffer(e)&&e[0]!==void 0&&e[0]>127&&e[1]===void 0&&(t="\x1B"+String.fromCharCode(e[0]-128));let r={upArrow:!1,downArrow:!1,leftArrow:!1,rightArrow:!1,pageUp:!1,pageDown:!1,home:!1,end:!1,insert:!1,return:!1,escape:!1,tab:!1,backspace:!1,delete:!1,clear:!1,ctrl:!1,shift:!1,meta:!1,option:!1,f1:!1,f2:!1,f3:!1,f4:!1,f5:!1,f6:!1,f7:!1,f8:!1,f9:!1,f10:!1,f11:!1,f12:!1},n="";if(t==="\r")return r.return=!0,{input:n,key:r,length:1};if(t===`
199
199
  `)return r.return=!0,{input:n,key:r,length:1};if(t==="\x1B\r"||t===`\x1B
200
- `)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=bj.exec(t);if(o){let d=R_(o[0]);if(d){r.shift=d.modifiers.shift,r.option=d.modifiers.alt,r.ctrl=d.modifiers.ctrl,r.meta=d.modifiers.alt||d.modifiers.super||d.modifiers.hyper||d.modifiers.meta,r.eventType=d.eventType;let c=o[0].split(";").length>=3;return n=P_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=yj.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(kj(r,d)&&A_(c))return n=P_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=mj.exec(t);if(i&&i.index===0){let d=[...t];d[0]==="\x1B"&&d[1]==="\x1B"&&(r.option=!0);let c=[i[1],i[2],i[4],i[6]].filter(Boolean).join(""),u=(i[3]||i[5]||1)-1;r.ctrl=!!(u&4),r.meta=!!(u&10),r.shift=!!(u&1);let p=fj[c];return p&&wj(r,p),gj.has(c)&&(r.shift=!0),hj.has(c)&&(r.ctrl=!0),{input:n,key:r,length:i[0].length}}let a=/^(?:)([a-zA-Z0-9])/.exec(t);if(a)return r.meta=!0,r.shift=/^[A-Z]$/.test(a[1]),n=a[1].toLowerCase(),{input:n,key:r,length:2};let l=/^[^\x00-\x1f\x7f]+/u.exec(t);if(l){let d=l[0];return d.length===1&&d>="A"&&d<="Z"?(r.shift=!0,n=d.toLowerCase(),{input:n,key:r,length:1}):(n=d,{input:n,key:r,length:d.length})}return{input:n,key:r,length:t.length}}function Hp(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=ur(null);if(i||s===null){let c=function(){return Br(d)},a=(u,p,g)=>{let f=c();if(f&&f.registered)return f.handler(u,p,g)},l={handler:e,wrapper:a,registered:r,handlerId:null,priority:n,stopPropagation:o},d=Xt();pr(d,l),r&&(l.handlerId=al(a,{priority:n,stopPropagation:o})),eo(()=>{l.handlerId!==null&&(ui(l.handlerId),l.handlerId=null),l.registered=!1},d)}else{let a=s.registered;s.handler=e,s.registered=r;let l=s.priority!==n,d=s.stopPropagation!==o;r&&!a?(s.priority=n,s.stopPropagation=o,s.handlerId=al(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(ui(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&ui(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=al(s.wrapper,{priority:n,stopPropagation:o}))}}function C_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(C_):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function yr(e,...t){return{type:"box",props:{...e},children:C_(t.length>0?t:e.children)}}function mt(e,...t){let r=t.filter(o=>o!=null),n=r.length>0?r.join(""):Array.isArray(e.children)?e.children.filter(o=>o!=null).join(""):String(e.children??"");return{type:"text",props:{...e,children:n},children:[]}}var Rj=0,D_=Symbol("tuiuiu.focus-zone-manager"),Up=class e{zones=new Map;stack=[];activeZoneId=null;rootZoneId=null;maxStackDepth=10;listeners=new Set;constructor(){this.createZone({id:"__root__"}),this.rootZoneId="__root__",this.activeZoneId="__root__"}static getInstance(){return Oe(D_,()=>new e)}static reset(){nl(D_)}[Ir](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Rj++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function O_(){return Up.getInstance()}var Ai=class{zoneManager=O_();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as _j}from"node:string_decoder";function F_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function xj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function Ej(e){let t=0;for(;t<e.length;){let r=e.indexOf("\x1B",t);if(r===-1)return-1;if(r+1>=e.length)return r;let n=e[r+1];if(n==="["){let o=r+2;for(;o<e.length;){let s=e.charCodeAt(o);if(s>=64&&s<=126)break;o++}if(o>=e.length)return r;t=o+1;continue}if(n==="]"||n==="P"||n==="^"||n==="_"){let o=r+2,s=!1;for(;o<e.length;){if(n==="]"&&e.charCodeAt(o)===7){o++,s=!0;break}if(e[o]==="\x1B"&&e[o+1]==="\\"){o+=2,s=!0;break}o++}if(!s)return r;t=o;continue}if(n==="O"&&r+2>=e.length)return r;t=Math.min(e.length,r+(n==="O"?3:2))}return-1}function vj(e){let t=Ej(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function Sj(e){let t=Math.min(e.length,fs.length-1);for(let r=t;r>0;r--)if(e.endsWith(fs.slice(0,r)))return r;return 0}var qp=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new _j("utf8");pendingInput="";pasteBuffer=null;pasteBufferBytes=0;pasteOverflowed=!1;pasteTerminatorPrefix="";disposed=!1;constructor(t={}){this.maxPasteBytes=t.maxPasteBytes??1024*1024,this.maxPendingEscapeBytes=t.maxPendingEscapeBytes??4096,this.pasteHeuristicThreshold=t.pasteHeuristicThreshold??32,F_(this.maxPasteBytes,"maxPasteBytes"),F_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),xj(this.pasteHeuristicThreshold,"pasteHeuristicThreshold")}get status(){return{pendingEscapeBytes:Buffer.byteLength(this.pendingInput,"utf8"),pasteBytes:this.pasteBufferBytes,pasteActive:this.pasteBuffer!==null,pasteOverflowed:this.pasteOverflowed}}push(t){if(this.disposed)return[];let r=typeof t=="string"?t:this.decoder.write(t);if(!r&&!this.pendingInput)return[];let n=this.pendingInput+r;this.pendingInput="";let{complete:o,pending:s}=vj(n),i=o?this.processCompleteInput(o):[];return s&&(Buffer.byteLength(s,"utf8")>this.maxPendingEscapeBytes?i.push(...this.processCompleteInput(s)):this.pendingInput=s),i}flushPendingInput(){if(this.disposed||!this.pendingInput)return[];let t=this.pendingInput;return this.pendingInput="",this.processCompleteInput(t)}abortPaste(){let t=this.pasteBuffer!==null;this.pasteBuffer=null,this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="",t&&fs.startsWith(this.pendingInput)&&(this.pendingInput="")}dispose(){this.disposed||(this.disposed=!0,this.pendingInput="",this.abortPaste(),this.decoder.end())}appendPaste(t){if(this.pasteBuffer===null||this.pasteOverflowed||!t)return;let r=Buffer.byteLength(t,"utf8");if(this.pasteBufferBytes+r>this.maxPasteBytes){this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!0;return}this.pasteBuffer+=t,this.pasteBufferBytes+=r}consumeActivePaste(t,r){let n=this.pasteTerminatorPrefix+t;this.pasteTerminatorPrefix="";let o=n.indexOf(fs);if(o===-1){let s=Sj(n),i=n.length-s;return this.appendPaste(n.slice(0,i)),this.pasteTerminatorPrefix=n.slice(i),null}return this.appendPaste(n.slice(0,o)),!this.pasteOverflowed&&this.pasteBuffer!==null&&r.push({type:"paste",text:this.pasteBuffer,bracketed:!0}),this.abortPaste(),n.slice(o+fs.length)}processCompleteInput(t){let r=[],n=t;if(this.pasteBuffer!==null){let o=this.consumeActivePaste(n,r);if(o===null||(n=o,!n))return r}for(;n.length>0;){let o=n.indexOf(Np);if(o!==-1){let s=n.slice(0,o);s&&r.push({type:"input",input:s}),this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="";let i=this.consumeActivePaste(n.slice(o+Np.length),r);if(i===null)return r;n=i;continue}return n.length>this.pasteHeuristicThreshold&&!n.includes("\x1B")?(Buffer.byteLength(n,"utf8")<=this.maxPasteBytes&&r.push({type:"paste",text:n,bracketed:!1}),r):(r.push({type:"input",input:n}),r)}return r}};function I_(e={}){return new qp(e)}function M_(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=y=>{typeof r.write=="function"&&r.write(y)},p=y=>{if(!(d||!t.isTTY||!t.setRawMode)){if(y){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(E_()),a&&o&&u(__()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let y,h=R=>{try{R()}catch(T){y??=T}};if(c=0,h(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),h(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&h(()=>u(v_())),a&&o&&h(()=>u(x_())),y)throw y}}}function Il(){let e=tn();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Ol=new WeakSet,Fl=new WeakSet;function Kp(e,t,r={}){let n=Qu();if(n&&tn(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(Ol.has(e)||Fl.has(t))throw new Error("[tuiuiu] A terminal stream cannot be shared by simultaneous apps. Use distinct stdin/stdout pairs or dispose the current owner first.");let u=Ok();Ol.add(e),Fl.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,h=!1,R=o,T,$=qe(u,()=>(wR({stdout:t}),!!(e.isTTY&&p&&$r().focusEvents))),D=M_({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(J){Ol.delete(e),Fl.delete(t);try{D.dispose()}finally{Xo(u)}throw J}wp(u);let U=qe(u,()=>new Ai);np(U,u);let G=I_({maxPasteBytes:a,maxPendingEscapeBytes:l}),F=null,W=null,q=()=>{F&&(clearTimeout(F),F=null)},oe=()=>{q(),F=setTimeout(()=>{G.abortPaste(),F=null},Math.max(0,c))},ae=J=>{let de=J;for(;de.length>0;){let _e=S_(de.slice(0,3));if(_e){$t(()=>{kp(_e.focused)}),de=de.slice(3);continue}if(ap(de)){let fe=mi(de);if(fe){$t(()=>{ss().handleMouseEvent(fe.event),ew(fe.event)}),de=de.slice(fe.length);continue}}let{input:Ce,key:ve,length:Re}=Wp(de),Se=Re>0?Re:1;if(de=de.slice(Se),s&&ve.ctrl&&Ce==="c"){we();return}if(R){if(ve.tab&&!ve.shift){$t(()=>{U.focusNext()});continue}if(ve.tab&&ve.shift){$t(()=>{U.focusPrevious()});continue}if(ve.escape&&U.getActiveId()!==void 0){$t(()=>{U.blur()});continue}}$t(()=>{Xk(Ce,ve)})}},se=J=>{for(let de of J){if(h)return;de.type==="paste"?$t(()=>{rw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{h||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!h&&(se(G.flushPendingInput()),Z())},Ae=en(u,J=>{h||(se(G.push(J)),Z())});e.on("data",Ae);let Ee=()=>{if(h)return;h=!0;let J=de=>{try{de()}catch(_e){console.error("[tuiuiu] Error while disposing app state:",_e)}};try{J(()=>e.off("data",Ae)),W&&(clearTimeout(W),W=null),q(),J(()=>G.dispose()),J(()=>D.dispose()),J(()=>il(u)),J(()=>wp(u)),J(()=>Zk(u)),J(()=>nw(u)),J(()=>tw(u)),J(()=>ul(u)),J(()=>fw(u)),J(()=>np(null,u)),J(()=>{tn(u)===T&&rp(null,u)})}finally{Ol.delete(e),Fl.delete(t),g.clear(),Xo(u)}},we=J=>{if(f)return;f=!0,y=J;let de=[...g];g.clear(),Ee();for(let _e of de)try{_e(J)}catch(Ce){console.error("[tuiuiu] Error in app exit callback:",Ce)}J&&console.error(J),i&&process.exit(J?1:0)};return T={exit:we,dispose:Ee,stdin:e,stdout:t,writeLine:J=>{let de=Jo(String(J)).replace(/\r\n?/g,`
200
+ `)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=bj.exec(t);if(o){let d=S_(o[0]);if(d){r.shift=d.modifiers.shift,r.option=d.modifiers.alt,r.ctrl=d.modifiers.ctrl,r.meta=d.modifiers.alt||d.modifiers.super||d.modifiers.hyper||d.modifiers.meta,r.eventType=d.eventType;let c=o[0].split(";").length>=3;return n=F_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=yj.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(kj(r,d)&&I_(c))return n=F_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=mj.exec(t);if(i&&i.index===0){let d=[...t];d[0]==="\x1B"&&d[1]==="\x1B"&&(r.option=!0);let c=[i[1],i[2],i[4],i[6]].filter(Boolean).join(""),u=(i[3]||i[5]||1)-1;r.ctrl=!!(u&4),r.meta=!!(u&10),r.shift=!!(u&1);let p=fj[c];return p&&wj(r,p),gj.has(c)&&(r.shift=!0),hj.has(c)&&(r.ctrl=!0),{input:n,key:r,length:i[0].length}}let a=/^(?:)([a-zA-Z0-9])/.exec(t);if(a)return r.meta=!0,r.shift=/^[A-Z]$/.test(a[1]),n=a[1].toLowerCase(),{input:n,key:r,length:2};let l=/^[^\x00-\x1f\x7f]+/u.exec(t);if(l){let d=l[0];return d.length===1&&d>="A"&&d<="Z"?(r.shift=!0,n=d.toLowerCase(),{input:n,key:r,length:1}):(n=d,{input:n,key:r,length:d.length})}return{input:n,key:r,length:t.length}}function qp(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=ur(null);if(i||s===null){let c=function(){return Br(d)},a=(u,p,g)=>{let f=c();if(f&&f.registered)return f.handler(u,p,g)},l={handler:e,wrapper:a,registered:r,handlerId:null,priority:n,stopPropagation:o},d=Xt();pr(d,l),r&&(l.handlerId=al(a,{priority:n,stopPropagation:o})),Xn(()=>{l.handlerId!==null&&(ci(l.handlerId),l.handlerId=null),l.registered=!1},d)}else{let a=s.registered;s.handler=e,s.registered=r;let l=s.priority!==n,d=s.stopPropagation!==o;r&&!a?(s.priority=n,s.stopPropagation=o,s.handlerId=al(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(ci(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&ci(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=al(s.wrapper,{priority:n,stopPropagation:o}))}}function M_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(M_):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function yr(e,...t){return{type:"box",props:{...e},children:M_(t.length>0?t:e.children)}}function mt(e,...t){let r=t.filter(o=>o!=null),n=r.length>0?r.join(""):Array.isArray(e.children)?e.children.filter(o=>o!=null).join(""):String(e.children??"");return{type:"text",props:{...e,children:n},children:[]}}var Rj=0,L_=Symbol("tuiuiu.focus-zone-manager"),Kp=class e{zones=new Map;stack=[];activeZoneId=null;rootZoneId=null;maxStackDepth=10;listeners=new Set;constructor(){this.createZone({id:"__root__"}),this.rootZoneId="__root__",this.activeZoneId="__root__"}static getInstance(){return Oe(L_,()=>new e)}static reset(){nl(L_)}[Ir](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Rj++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function j_(){return Kp.getInstance()}var Pi=class{zoneManager=j_();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as _j}from"node:string_decoder";function B_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function xj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function Ej(e){let t=0;for(;t<e.length;){let r=e.indexOf("\x1B",t);if(r===-1)return-1;if(r+1>=e.length)return r;let n=e[r+1];if(n==="["){let o=r+2;for(;o<e.length;){let s=e.charCodeAt(o);if(s>=64&&s<=126)break;o++}if(o>=e.length)return r;t=o+1;continue}if(n==="]"||n==="P"||n==="^"||n==="_"){let o=r+2,s=!1;for(;o<e.length;){if(n==="]"&&e.charCodeAt(o)===7){o++,s=!0;break}if(e[o]==="\x1B"&&e[o+1]==="\\"){o+=2,s=!0;break}o++}if(!s)return r;t=o;continue}if(n==="O"&&r+2>=e.length)return r;t=Math.min(e.length,r+(n==="O"?3:2))}return-1}function vj(e){let t=Ej(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function Sj(e){let t=Math.min(e.length,ps.length-1);for(let r=t;r>0;r--)if(e.endsWith(ps.slice(0,r)))return r;return 0}var Vp=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new _j("utf8");pendingInput="";pasteBuffer=null;pasteBufferBytes=0;pasteOverflowed=!1;pasteTerminatorPrefix="";disposed=!1;constructor(t={}){this.maxPasteBytes=t.maxPasteBytes??1024*1024,this.maxPendingEscapeBytes=t.maxPendingEscapeBytes??4096,this.pasteHeuristicThreshold=t.pasteHeuristicThreshold??32,B_(this.maxPasteBytes,"maxPasteBytes"),B_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),xj(this.pasteHeuristicThreshold,"pasteHeuristicThreshold")}get status(){return{pendingEscapeBytes:Buffer.byteLength(this.pendingInput,"utf8"),pasteBytes:this.pasteBufferBytes,pasteActive:this.pasteBuffer!==null,pasteOverflowed:this.pasteOverflowed}}push(t){if(this.disposed)return[];let r=typeof t=="string"?t:this.decoder.write(t);if(!r&&!this.pendingInput)return[];let n=this.pendingInput+r;this.pendingInput="";let{complete:o,pending:s}=vj(n),i=o?this.processCompleteInput(o):[];return s&&(Buffer.byteLength(s,"utf8")>this.maxPendingEscapeBytes?i.push(...this.processCompleteInput(s)):this.pendingInput=s),i}flushPendingInput(){if(this.disposed||!this.pendingInput)return[];let t=this.pendingInput;return this.pendingInput="",this.processCompleteInput(t)}abortPaste(){let t=this.pasteBuffer!==null;this.pasteBuffer=null,this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="",t&&ps.startsWith(this.pendingInput)&&(this.pendingInput="")}dispose(){this.disposed||(this.disposed=!0,this.pendingInput="",this.abortPaste(),this.decoder.end())}appendPaste(t){if(this.pasteBuffer===null||this.pasteOverflowed||!t)return;let r=Buffer.byteLength(t,"utf8");if(this.pasteBufferBytes+r>this.maxPasteBytes){this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!0;return}this.pasteBuffer+=t,this.pasteBufferBytes+=r}consumeActivePaste(t,r){let n=this.pasteTerminatorPrefix+t;this.pasteTerminatorPrefix="";let o=n.indexOf(ps);if(o===-1){let s=Sj(n),i=n.length-s;return this.appendPaste(n.slice(0,i)),this.pasteTerminatorPrefix=n.slice(i),null}return this.appendPaste(n.slice(0,o)),!this.pasteOverflowed&&this.pasteBuffer!==null&&r.push({type:"paste",text:this.pasteBuffer,bracketed:!0}),this.abortPaste(),n.slice(o+ps.length)}processCompleteInput(t){let r=[],n=t;if(this.pasteBuffer!==null){let o=this.consumeActivePaste(n,r);if(o===null||(n=o,!n))return r}for(;n.length>0;){let o=n.indexOf(Wp);if(o!==-1){let s=n.slice(0,o);s&&r.push({type:"input",input:s}),this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="";let i=this.consumeActivePaste(n.slice(o+Wp.length),r);if(i===null)return r;n=i;continue}return n.length>this.pasteHeuristicThreshold&&!n.includes("\x1B")?(Buffer.byteLength(n,"utf8")<=this.maxPasteBytes&&r.push({type:"paste",text:n,bracketed:!1}),r):(r.push({type:"input",input:n}),r)}return r}};function $_(e={}){return new Vp(e)}function N_(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=y=>{typeof r.write=="function"&&r.write(y)},p=y=>{if(!(d||!t.isTTY||!t.setRawMode)){if(y){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(A_()),a&&o&&u(T_()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let y,h=R=>{try{R()}catch(T){y??=T}};if(c=0,h(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),h(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&h(()=>u(C_())),a&&o&&h(()=>u(P_())),y)throw y}}}function Il(){let e=tn();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Ol=new WeakSet,Fl=new WeakSet;function zp(e,t,r={}){let n=Zu();if(n&&tn(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(Ol.has(e)||Fl.has(t))throw new Error("[tuiuiu] A terminal stream cannot be shared by simultaneous apps. Use distinct stdin/stdout pairs or dispose the current owner first.");let u=jk();Ol.add(e),Fl.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,h=!1,R=o,T,$=qe(u,()=>(vR({stdout:t}),!!(e.isTTY&&p&&$r().focusEvents))),D=N_({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(J){Ol.delete(e),Fl.delete(t);try{D.dispose()}finally{Qo(u)}throw J}_p(u);let U=qe(u,()=>new Pi);sp(U,u);let G=$_({maxPasteBytes:a,maxPendingEscapeBytes:l}),F=null,W=null,q=()=>{F&&(clearTimeout(F),F=null)},oe=()=>{q(),F=setTimeout(()=>{G.abortPaste(),F=null},Math.max(0,c))},ae=J=>{let de=J;for(;de.length>0;){let _e=D_(de.slice(0,3));if(_e){$t(()=>{Rp(_e.focused)}),de=de.slice(3);continue}if(dp(de)){let fe=hi(de);if(fe){$t(()=>{os().handleMouseEvent(fe.event),sw(fe.event)}),de=de.slice(fe.length);continue}}let{input:Ce,key:ve,length:Re}=Up(de),Se=Re>0?Re:1;if(de=de.slice(Se),s&&ve.ctrl&&Ce==="c"){we();return}if(R){if(ve.tab&&!ve.shift){$t(()=>{U.focusNext()});continue}if(ve.tab&&ve.shift){$t(()=>{U.focusPrevious()});continue}if(ve.escape&&U.getActiveId()!==void 0){$t(()=>{U.blur()});continue}}$t(()=>{nw(Ce,ve)})}},se=J=>{for(let de of J){if(h)return;de.type==="paste"?$t(()=>{aw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{h||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!h&&(se(G.flushPendingInput()),Z())},Ae=en(u,J=>{h||(se(G.push(J)),Z())});e.on("data",Ae);let Ee=()=>{if(h)return;h=!0;let J=de=>{try{de()}catch(_e){console.error("[tuiuiu] Error while disposing app state:",_e)}};try{J(()=>e.off("data",Ae)),W&&(clearTimeout(W),W=null),q(),J(()=>G.dispose()),J(()=>D.dispose()),J(()=>il(u)),J(()=>_p(u)),J(()=>ow(u)),J(()=>lw(u)),J(()=>iw(u)),J(()=>ul(u)),J(()=>yw(u)),J(()=>sp(null,u)),J(()=>{tn(u)===T&&op(null,u)})}finally{Ol.delete(e),Fl.delete(t),g.clear(),Qo(u)}},we=J=>{if(f)return;f=!0,y=J;let de=[...g];g.clear(),Ee();for(let _e of de)try{_e(J)}catch(Ce){console.error("[tuiuiu] Error in app exit callback:",Ce)}J&&console.error(J),i&&process.exit(J?1:0)};return T={exit:we,dispose:Ee,stdin:e,stdout:t,writeLine:J=>{let de=zo(String(J)).replace(/\r\n?/g,`
201
201
  `);t.write(`${de.replace(/\n+$/u,"")}
202
- `)},onExit:J=>{if(f){try{J(y)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:R,setAutoTabNavigation:J=>{R=J},setRawMode:M,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>hr(u),enqueueExternalUpdate:J=>{$t(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},rp(T,u),T}function Vp(e){let t=tn();t&&(t.clearScreen=e)}function Ml(e){let t=tn();t&&(t.writeLine=e??(r=>{let n=Jo(String(r)).replace(/\r\n?/g,`
202
+ `)},onExit:J=>{if(f){try{J(y)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:R,setAutoTabNavigation:J=>{R=J},setRawMode:M,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>hr(u),enqueueExternalUpdate:J=>{$t(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},op(T,u),T}function Jp(e){let t=tn();t&&(t.clearScreen=e)}function Ml(e){let t=tn();t&&(t.writeLine=e??(r=>{let n=zo(String(r)).replace(/\r\n?/g,`
203
203
  `);t.stdout.write(`${n.replace(/\n+$/u,"")}
204
- `)}))}function Ll(e){let t=tn();if(t){if(!e){t.enqueueExternalUpdate=r=>{$t(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function zp(){let[e,t]=w_(()=>gr(_R()));return Pi(()=>xR(n=>{t(n)})),e()}function Jp(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=ur(null);if(i||s===null){let a=Xt(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=Br(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=Br(a);c&&c.callback()},d.delay))},stop:()=>{let d=Br(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>Br(a)?.running??!1};return pr(a,l),eo(l.stop,a),n&&(o&&e(),l.start()),{start:l.start,stop:l.stop,isRunning:l.isRunning}}else return s.callback=e,s.delay=t,n!==s.enabled&&(s.enabled=n,n?s.start():s.stop()),{start:s.start,stop:s.stop,isRunning:s.isRunning}}var kr="\x1B[",Yp=`${kr}H`,Ci=`${kr}J`,jl=`${kr}K`,L_=e=>{let t="";for(let r=0;r<e;r++)t+=kr+"2K",r<e-1&&(t+=kr+"1A");return e>0&&(t+="\r"),t},j_=e=>e>0?`${kr}${e}A`:"",Tj=`${kr}1E`,Pj=`${kr}2K`;function Aj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${kr}${n+1}H`:Yp,d=c=>{!r&&!a&&(ds(e),a=!0);let u=c+`
204
+ `)}))}function Ll(e){let t=tn();if(t){if(!e){t.enqueueExternalUpdate=r=>{$t(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function Yp(){let[e,t]=v_(()=>gr(TR()));return Ti(()=>PR(n=>{t(n)})),e()}function Qp(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=ur(null);if(i||s===null){let a=Xt(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=Br(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=Br(a);c&&c.callback()},d.delay))},stop:()=>{let d=Br(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>Br(a)?.running??!1};return pr(a,l),Xn(l.stop,a),n&&(o&&e(),l.start()),{start:l.start,stop:l.stop,isRunning:l.isRunning}}else return s.callback=e,s.delay=t,n!==s.enabled&&(s.enabled=n,n?s.start():s.stop()),{start:s.start,stop:s.stop,isRunning:s.isRunning}}var kr="\x1B[",Xp=`${kr}H`,Ai=`${kr}J`,jl=`${kr}K`,G_=e=>{let t="";for(let r=0;r<e;r++)t+=kr+"2K",r<e-1&&(t+=kr+"1A");return e>0&&(t+="\r"),t},W_=e=>e>0?`${kr}${e}A`:"",Tj=`${kr}1E`,Pj=`${kr}2K`;function Aj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${kr}${n+1}H`:Xp,d=c=>{!r&&!a&&(ls(e),a=!0);let u=c+`
205
205
  `;if(u===o)return;let p=c.split(`
206
206
  `),g=p.map(T=>be(T)),f=p.length,y=[];for(let T=0;T<p.length;T++){let $=p[T],D=g[T],M=i[T]??0;D<M?y.push($+jl):y.push($)}let h=s-f,R="";if(h>0)for(let T=0;T<h;T++)R+=`
207
207
  `+jl;o=u,s=f,i=g,e.write(l+y.join(`
208
208
  `)+R+`
209
- `+Ci)};return d.clear=()=>{e.write(l+Ci),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(ls(e),a=!1)},d.sync=c=>{let u=c.split(`
209
+ `+Ai)};return d.clear=()=>{e.write(l+Ai),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(as(e),a=!1)},d.sync=c=>{let u=c.split(`
210
210
  `);o=c+`
211
- `,s=u.length,i=u.map(p=>be(p))},d}function Cj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${kr}${n+1}H`:Yp,l=d=>{!r&&!i&&(ds(e),i=!0);let c=d+`
211
+ `,s=u.length,i=u.map(p=>be(p))},d}function Cj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${kr}${n+1}H`:Xp,l=d=>{!r&&!i&&(ls(e),i=!0);let c=d+`
212
212
  `;if(c===s)return;let u=o.length,p=c.split(`
213
213
  `),g=p.length,f=g-1;if(c===`
214
- `||s.length===0){e.write(a+L_(u)+c),s=c,o=p;return}let y=[];g<u?y.push(L_(u-g+1),j_(f)):y.push(j_(u-1));for(let h=0;h<f;h++){if(p[h]===o[h]){y.push(Tj);continue}y.push(Pj+p[h]+`
215
- `)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Ci),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(ls(e),i=!1)},l.sync=d=>{let c=d+`
214
+ `||s.length===0){e.write(a+G_(u)+c),s=c,o=p;return}let y=[];g<u?y.push(G_(u-g+1),W_(f)):y.push(W_(u-1));for(let h=0;h<f;h++){if(p[h]===o[h]){y.push(Tj);continue}y.push(Pj+p[h]+`
215
+ `)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Ai),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(as(e),i=!1)},l.sync=d=>{let c=d+`
216
216
  `;s=c,o=c.split(`
217
- `)},l}function Dj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${kr}${n+1}H`:Yp,l=d=>{!r&&!i&&(ds(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
217
+ `)},l}function Dj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${kr}${n+1}H`:Xp,l=d=>{!r&&!i&&(ls(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
218
218
  `),p=u.length,g=c;if(g=u.map(y=>y+jl).join(`
219
219
  `),s>p){let y=s-p;for(let h=0;h<y;h++)g+=`
220
- `+jl}e.write(a+g+Ci),o=c,s=p};return l.clear=()=>{e.write(a+Ci),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(ls(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
221
- `).length},l}function Qp(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?Dj(e,t):r?Cj(e,t):Aj(e,t)}function B_(e,t=200){let r=!1,n=null;return{schedule:()=>{r||(r=!0,n=setTimeout(()=>{r=!1,n=null,e()},t))},flush:()=>{n&&(clearTimeout(n),n=null),r=!1,e()},cancel:()=>{n&&(clearTimeout(n),n=null),r=!1},isPending:()=>r}}var $_=Symbol("tuiuiu.overlay-runtime-state");function Oj(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function N_(e){let t=e.id===0?null:It($_,()=>N_(Mr())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Ir](){Oj(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function Fj(){let e=Ge();return Oe($_,()=>N_(e),e)}function Xp(e,t){let r=Fj();r.terminalSize={width:e,height:t}}function G_(e){return"__reactive"in e}function Ij(e){let t=e.__reactive(),r=Ft(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function W_(e){let t=0,r=n=>{G_(n)&&Ij(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function H_(e){let t=new Set,r=n=>{G_(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function Mj(e){return!!e.props.__static}function Lj(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Ft(e.children??[])}`}function jj(e){let t=[];function r(o){if(Mj(o))return t.push(o),null;if(o.children&&o.children.length>0){let s=o.children.map(i=>i&&typeof i=="object"&&"type"in i?r(i):i).filter(i=>i!==null);return{...o,children:s}}return o}let n=r(e)??{type:"fragment",props:{},children:[]};return{staticNodes:t,interactiveNode:n}}var Zp={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},Bj={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function ef(e,t={}){let r=t.screenMode?Bj[t.screenMode]:void 0,{stdout:n=process.stdout,stdin:o=process.stdin,debug:s=!1,exitOnCtrlC:i=!0,exitProcess:a=!1,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u,maxFps:p=30,showCursor:g=!1,autoTabNavigation:f=!0,useDeltaRenderer:y=!0,fixedStep:h}=t,R=t.clearOnStart??r?.clearOnStart??!0,T=t.fullHeight??r?.fullHeight??!1,$=t.alternateScreen??r?.alternateScreen??!0;if(!Number.isFinite(p)||p<0)throw new Error("[tuiuiu] maxFps must be a finite non-negative number");if(h){if(!Number.isFinite(h.updateFps)||h.updateFps<=0)throw new Error("[tuiuiu] fixedStep.updateFps must be a finite positive number");if(h.maxCatchUpUpdates!==void 0&&(!Number.isSafeInteger(h.maxCatchUpUpdates)||h.maxCatchUpUpdates<1))throw new Error("[tuiuiu] fixedStep.maxCatchUpUpdates must be a positive safe integer")}let D=Kp(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=tp(D);if(!M)throw D.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,U=()=>{},G=[];try{U=sw(),G.push(rn(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),G.push(rn(()=>{n.write("\x1B[?1004l")})),G.push(rn(()=>{n.write("\x1B[?2004l")})),$&&(n.write(T_()),G.push(rn(()=>{n.write(Gp())})))}catch(re){for(let ke of G.splice(0))try{ke()}catch{}try{U()}catch{}throw D.dispose(),Xo(N),re}let F=typeof e=="function"?e:()=>e,W=!1,q=0,oe=0,ae=0,se,Z,pe=()=>{W=!1,ye()},Ae=()=>{q++,q===1&&(oe=0,ae=0)},Ee=()=>q===0?{bytes:0,writeMs:0}:(q--,q===0?{bytes:oe,writeMs:ae}:{bytes:0,writeMs:0}),we=re=>{let ke=q>0?performance.now():0,Ie=n.write(re);return q>0&&(ae+=performance.now()-ke,oe+=typeof re=="string"?Buffer.byteLength(re):re.byteLength),!Ie&&!W&&!Re&&(W=!0,n.once("drain",pe)),Ie},J={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(re){return we(re)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},de=Qp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),_e=0,Ce=null,ve="",Re=!1,Se=[],fe,ie,xe,Fe=new Set,at=0,Nt=()=>{_e=at,de=Qp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:_e}),ve=""},nn=()=>{de.clear(),we(Zp.clearTerminal),ve="",Fe.clear(),at=0,Se=[],Nt()},on=re=>{de.clear(),we(`${re}
220
+ `+jl}e.write(a+g+Ai),o=c,s=p};return l.clear=()=>{e.write(a+Ai),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(as(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
221
+ `).length},l}function Zp(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?Dj(e,t):r?Cj(e,t):Aj(e,t)}function H_(e,t=200){let r=!1,n=null;return{schedule:()=>{r||(r=!0,n=setTimeout(()=>{r=!1,n=null,e()},t))},flush:()=>{n&&(clearTimeout(n),n=null),r=!1,e()},cancel:()=>{n&&(clearTimeout(n),n=null),r=!1},isPending:()=>r}}var U_=Symbol("tuiuiu.overlay-runtime-state");function Oj(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function q_(e){let t=e.id===0?null:It(U_,()=>q_(Mr())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Ir](){Oj(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function Fj(){let e=Ge();return Oe(U_,()=>q_(e),e)}function ef(e,t){let r=Fj();r.terminalSize={width:e,height:t}}function K_(e){return"__reactive"in e}function Ij(e){let t=e.__reactive(),r=Ft(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function V_(e){let t=0,r=n=>{K_(n)&&Ij(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function z_(e){let t=new Set,r=n=>{K_(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function Mj(e){return!!e.props.__static}function Lj(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Ft(e.children??[])}`}function jj(e){let t=[];function r(o){if(Mj(o))return t.push(o),null;if(o.children&&o.children.length>0){let s=o.children.map(i=>i&&typeof i=="object"&&"type"in i?r(i):i).filter(i=>i!==null);return{...o,children:s}}return o}let n=r(e)??{type:"fragment",props:{},children:[]};return{staticNodes:t,interactiveNode:n}}var tf={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},Bj={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function rf(e,t={}){let r=t.screenMode?Bj[t.screenMode]:void 0,{stdout:n=process.stdout,stdin:o=process.stdin,debug:s=!1,exitOnCtrlC:i=!0,exitProcess:a=!1,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u,maxFps:p=30,showCursor:g=!1,autoTabNavigation:f=!0,useDeltaRenderer:y=!0,fixedStep:h}=t,R=t.clearOnStart??r?.clearOnStart??!0,T=t.fullHeight??r?.fullHeight??!1,$=t.alternateScreen??r?.alternateScreen??!0;if(!Number.isFinite(p)||p<0)throw new Error("[tuiuiu] maxFps must be a finite non-negative number");if(h){if(!Number.isFinite(h.updateFps)||h.updateFps<=0)throw new Error("[tuiuiu] fixedStep.updateFps must be a finite positive number");if(h.maxCatchUpUpdates!==void 0&&(!Number.isSafeInteger(h.maxCatchUpUpdates)||h.maxCatchUpUpdates<1))throw new Error("[tuiuiu] fixedStep.maxCatchUpUpdates must be a positive safe integer")}let D=zp(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=np(D);if(!M)throw D.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,U=()=>{},G=[];try{U=cw(),G.push(rn(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),G.push(rn(()=>{n.write("\x1B[?1004l")})),G.push(rn(()=>{n.write("\x1B[?2004l")})),$&&(n.write(O_()),G.push(rn(()=>{n.write(Hp())})))}catch(re){for(let ke of G.splice(0))try{ke()}catch{}try{U()}catch{}throw D.dispose(),Qo(N),re}let F=typeof e=="function"?e:()=>e,W=!1,q=0,oe=0,ae=0,se,Z,pe=()=>{W=!1,ye()},Ae=()=>{q++,q===1&&(oe=0,ae=0)},Ee=()=>q===0?{bytes:0,writeMs:0}:(q--,q===0?{bytes:oe,writeMs:ae}:{bytes:0,writeMs:0}),we=re=>{let ke=q>0?performance.now():0,Ie=n.write(re);return q>0&&(ae+=performance.now()-ke,oe+=typeof re=="string"?Buffer.byteLength(re):re.byteLength),!Ie&&!W&&!Re&&(W=!0,n.once("drain",pe)),Ie},J={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(re){return we(re)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},de=Zp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),_e=0,Ce=null,ve="",Re=!1,Se=[],fe,ie,xe,Fe=new Set,at=0,Nt=()=>{_e=at,de=Zp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:_e}),ve=""},nn=()=>{de.clear(),we(tf.clearTerminal),ve="",Fe.clear(),at=0,Se=[],Nt()},on=re=>{de.clear(),we(`${re}
222
222
  `),at+=re.split(`
223
- `).length,Nt()};qe(N,()=>Vp(nn)),fe=new Promise((re,ke)=>{ie=re,xe=ke});let mo=D.dispose;D.dispose=()=>{if(Re){mo();return}At(),ie()};let ue=p>0?Math.ceil(1e3/p):0;qe(N,()=>{Jw({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:ue>0?ue:16.67}),Xp(n.columns||80,n.rows||24)});let Gt=0,ct=!1,et=null,Rt=null,lt=null,ut=0,_t=0,xt=0,Wr=0,De=null,Le=[],Q=!1,C=null;y&&(C=s_({stdout:J,showCursor:g,useDelta:!0})),R&&!s&&we(Zp.clearTerminal);let w=ue>0?ue:16,L=B_(()=>{Le.length!==0&&$t(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let ke of re)ke()}})},w);qe(N,()=>Ll({enqueue(re){Re||(Le.push(re),L.schedule())},flush(){Re||L.flush()},isPending(){return Le.length>0||L.isPending()}}));let B=()=>{let re=performance.now();Z=Date.now(),Vk("component");try{Ce=F(),W_(Ce)}finally{zk(),se=performance.now()-re}},K=()=>qe(N,()=>{B(),_r()});function X(re){Re||(Rt=re,!W&&ye())}function ye(){if(ct||Re||W||!Rt)return;let ke=Date.now()-Gt,Ie=Gt===0||ke>=ue?0:ue-ke,Wt=()=>{let Ct=Rt;if(Rt=null,ct=!1,et=null,!Re)try{Ct?.()}catch(Ht){D.exit(Ht instanceof Error?Ht:new Error(String(Ht)))}};if(ct=!0,Ie===0){queueMicrotask(Wt);return}et=setTimeout(Wt,Ie)}let je=re=>qe(N,()=>{if(Re)return;let ke=Jo(String(re)).replace(/\r\n?/g,`
224
- `).replace(/\n+$/u,"");Se.push(ke),X(_r)});qe(N,()=>Ml(je));function Be(){if(!h||Re||(h.pauseWhenUnfocused??!0)&&!hr())return;let ke=1e3/Math.max(1,h.updateFps),Ie=Math.max(0,Math.ceil(ke-ut));lt=setTimeout(er,Ie)}function er(){if(!(!h||Re))try{if((h.pauseWhenUnfocused??!0)&&!hr()){lt=null,ut=0,_t=Date.now();return}let ke=1e3/h.updateFps,Ie=h.maxCatchUpUpdates??5,Wt=Date.now();ut+=Wt-_t,_t=Wt;let Ct=0;for(;ut>=ke&&Ct<Ie;)ut-=ke,xt++,Wr+=ke,$t(()=>{h.onUpdate({deltaTimeMs:ke,step:xt,elapsedMs:Wr})}),Ct++;ut>=ke&&(ut%=ke),Be()}catch(re){lt=null,D.exit(re instanceof Error?re:new Error(String(re)))}}let Rr=en(N,()=>{Re||(RR(),Xp(n.columns||80,n.rows||24),Aw(),X(K))});n.on("resize",Rr);let Ve=()=>{};D.onExit(re=>qe(N,()=>{At(),Ve(),re?xe(re):ie()}));function _r(){if(Re||!Ce)return;Gt=Date.now();let re=Z??Date.now(),ke=n.columns||80,Ie=n.rows||24,Wt=jj(Ce),Ct=()=>{C&&(C.cleanup(),C=null,we(Zp.clearTerminal),Fe.clear(),at=0,Nt())};if(Se.length>0){Ct();let $e=Se;Se=[],on($e.join(`
225
- `))}Wt.staticNodes.length>0&&Ct();let Ht=Math.max(1,Ie-at);if(C&&!s){let $e=fo(Ce,{width:ke,height:Ht});$e.metrics.runtimeStartAt=re,se!==void 0&&it($e,"vnodeEvalMs",se);let Fn=performance.now();Lp($e),gp($e.layout,at);let Ur=ss();Ur.hasClickableElements()&&!Q?(ts(),Q=!0):!Ur.hasClickableElements()&&Q&&(to(),Q=!1),it($e,"frameCommitMs",performance.now()-Fn),Pt($e,"reservedRegionCount",$e.reservedRegions.length),C.renderFrame($e),se=void 0,Z=void 0;return}let{staticNodes:sn,interactiveNode:An}=Wt,Cn=performance.now();Ae();for(let $e=0;$e<sn.length;$e++){let Fn=sn[$e],Ur=Lj(Fn,$e);if(!Fe.has(Ur)){let qr=b_(Fn,ke);qr.trim()&&(on(qr),Fe.add(Ur))}}let Dn=dR(),Ue=fo(An,{width:ke,height:Ht});Ue.metrics.runtimeStartAt=re,se!==void 0&&it(Ue,"vnodeEvalMs",se);let On=performance.now()-Cn;it(Ue,"staticRenderMs",On);let an=performance.now();Lp(Ue),gp(Ue.layout,at);let Hr=ss();Hr.hasClickableElements()&&!Q?(ts(),Q=!0):!Hr.hasClickableElements()&&Q&&(to(),Q=!1),it(Ue,"frameCommitMs",performance.now()-an),Pt(Ue,"reservedRegionCount",Ue.reservedRegions.length);let tt=$p(Ue,{fullHeight:T,previousFrame:Dn});if(tt===ve&&!s){let $e=Ee();it(Ue,"outputWriteMs",$e.writeMs),Pt(Ue,"outputByteCount",$e.bytes),Pn(Ue,{renderer:"ansi",runtimeStartAt:re}),Zo(Ue.layout),li(),se=void 0,Z=void 0;return}s?we(tt+`
226
- `):de(tt);let bo=Ee();it(Ue,"outputWriteMs",bo.writeMs),Pt(Ue,"outputByteCount",bo.bytes),Pn(Ue,{renderer:"ansi",runtimeStartAt:re}),Zo(Ue.layout),li(),ve=tt,se=void 0,Z=void 0}function At(){return qe(N,tr)}function tr(){if(Re)return;Re=!0;let re=ke=>{try{ke()}catch(Ie){console.error("[tuiuiu] Error while cleaning up the render loop:",Ie)}};et&&(clearTimeout(et),et=null),lt&&(clearTimeout(lt),lt=null),De?.(),De=null,W=!1,re(()=>n.off("drain",pe)),Rt=null,ct=!1,L.cancel(),Le=[],Ll(null),Ml(null),Q&&(re(()=>to()),Q=!1),re(()=>n.off("resize",Rr)),re(C?()=>C?.cleanup():()=>de.done()),$&&re(()=>{n.write(Gp())}),W=!1,re(()=>n.off("drain",pe)),re(()=>il(N)),Ce&&re(()=>H_(Ce)),re(()=>D.dispose());for(let ke of G.splice(0))re(ke);re(U),re(()=>cR()),re(()=>Xo(N))}try{Ve=qe(N,()=>Ww(()=>{K()},{scheduler:X})),qe(N,()=>{h&&(_t=Date.now(),(h.pauseWhenUnfocused??!0)&&(De=Rl(re=>{if(!(Re||!h)){if(!re){lt&&(clearTimeout(lt),lt=null),ut=0,_t=Date.now();return}ut=0,_t=Date.now(),lt||Be()}})),Be())})}catch(re){try{Ve()}catch(ke){console.error("[tuiuiu] Error while rolling back the render effect:",ke)}throw At(),re}return{rerender:re=>qe(N,()=>{F=()=>re,X(K)}),unmount:()=>qe(N,()=>{At(),Ve(),s||we(`
227
- `),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(et&&(clearTimeout(et),et=null),Rt=null,ct=!1,nn(),W?X(()=>{_r()}):_r())}),writeLine:je}}var $j={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topMid:"\u2566",bottomMid:"\u2569",leftMid:"\u2560",rightMid:"\u2563",midMid:"\u256C"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topMid:"\u2533",bottomMid:"\u253B",leftMid:"\u2523",rightMid:"\u252B",midMid:"\u254B"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",topMid:"+",bottomMid:"+",leftMid:"+",rightMid:"+",midMid:"+"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",topMid:"",bottomMid:"",leftMid:"",rightMid:"",midMid:""}};function wr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function tf(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function Nj(e,t,r,n=1,o){let s=[],i=wr(n,1),a=o===void 0?void 0:wr(o,0);for(let d of e){let c=be(d.header);for(let p of t){let g=p[d.key];d.format&&(g=d.format(g,p));let f=String(g??"");c=Math.max(c,be(f))}let u=tf(d);d.width!==void 0?c=wr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):wr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,wr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,wr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:tf(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((y,h,R)=>y+(tf(e[R])>0?0:h),0),p=l.reduce((y,h)=>y+s[h.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let y=l.reduce((h,R)=>h+R.flex,0);for(let h of l){let R=Math.floor(h.flex/y*f);s[h.index]=s[h.index]+R,h.col.maxWidth!==void 0&&(s[h.index]=Math.min(s[h.index],wr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=wr(r,0),c=e.length*i*2,u=e.length+1,p=s.reduce((g,f)=>g+f,0)+c+u;if(p>d){let g=p-d,f=s.map((h,R)=>{let T=wr(e[R].minWidth,3);return Math.max(0,h-T)}),y=f.reduce((h,R)=>h+R,0);if(y>0)for(let h=0;h<s.length;h++){let R=Math.floor(f[h]/y*g);s[h]=Math.max(wr(e[h].minWidth,3),s[h]-R)}}}return s}function U_(e,t,r){let n=Zr(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=be(n);if(o>=t)return n;let s=t-o;switch(r){case"right":return" ".repeat(s)+n;case"center":let i=Math.floor(s/2),a=s-i;return" ".repeat(i)+n+" ".repeat(a);default:return n+" ".repeat(s)}}function Gj(e,t){return Zr(e,t,{truncationCharacter:"\u2026"})}function Wj(){try{return process.stdout.columns||80}catch{return 80}}function rf(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,y=g?0:wr(d,1),h=$j[n],R=n!=="none",T=p??Wj(),$=Nj(t,r,u,y,T),D=[],M=(N,U,G,F)=>{if(!R)return yr({});let W=[N];for(let q=0;q<$.length;q++)W.push(F.repeat($[q]+y*2)),q<$.length-1&&W.push(U);return W.push(G),yr({flexDirection:"row"},mt({color:o},W.join("")))};if(R&&D.push(M(h.topLeft,h.topMid,h.topRight,h.horizontal)),s){let N=[];R&&N.push(mt({color:o},h.vertical));for(let U=0;U<t.length;U++){let G=t[U],F=" ".repeat(y),W=G.headerAlign??G.align??"left",q=U_(G.header,$[U],W);N.push(mt({color:o},F),mt({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":U+1},q),mt({color:o},F)),R&&N.push(mt({color:o},h.vertical))}D.push(yr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let N=0;N<r.length;N++){let U=r[N],G=a&&N%2===1,F=t.map((oe,ae)=>{let se=U[oe.key];oe.format&&(se=oe.format(se,U));let Z=String(se??"");if(oe.wrap)return Xn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Zr(pe,$[ae],{truncationCharacter:""}):Gj(pe,$[ae])]}),W=Math.max(1,...F.map(oe=>oe.length)),q=[];for(let oe=0;oe<W;oe++){let ae=[];R&&ae.push(mt({color:o},h.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(y),Ae=U_(F[se]?.[oe]??"",$[se],Z.align??"left"),Ee=Z.color??(G?l:void 0);ae.push(mt({color:o},pe),mt({color:Ee,dim:G,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Ae),mt({color:o},pe)),R&&ae.push(mt({color:o},h.vertical))}q.push(yr({flexDirection:"row"},...ae))}D.push(yr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}return R&&D.push(M(h.bottomLeft,h.bottomMid,h.bottomRight,h.horizontal)),yr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...D)}function Bl(e,t){return mt({wrap:"truncate-end"},t?qn(e):e)}function Hj(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(d=>Bl(d,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(d=>({...d})),l=e.table.rows.map(d=>Object.fromEntries(Object.entries(d).map(([c,u])=>[c,r?qn(u):u])));return[...s.map(d=>Bl(d,r)),rf({columns:a,data:l,borderStyle:"round",availableWidth:Math.max(1,t-1),maxWidth:Math.max(1,t-1),compact:!0,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!r,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(d=>Bl(d,r))]}function Uj(e){let t=Math.max(1,Math.floor(e.columns)),r=Math.max(1,Math.floor(e.rows)),n=Math.max(0,r-1),o=`q quit \xB7 r refresh \xB7 v deaths: ${e.showDeathDetails?"details":"summary"} \xB7 live 1s`,s=e.noColor===!0,i=e.frame.dashboard==null?e.frame.lines.map(a=>Bl(a,s)):Hj(e.frame.dashboard,t,s);return yr({flexDirection:"column",width:t,height:r,overflow:"hidden"},yr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function q_(e){let t=!1;function r(){let o=Il(),s=zp(),[i,a]=Dl({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Dl(e.initialShowDeathDetails),c=()=>{t||(t=!0,e.readFrame({columns:Math.max(1,s.columns||80),rows:Math.max(1,(s.rows||24)-1),showDeathDetails:l()}).then(a).catch(u=>{a({lines:[`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`]})}).finally(()=>{t=!1}))};return Pi(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Jp(c,e.refreshMs??1e3),Hp((u,p)=>{let g=u.toLowerCase();if(g==="q"||p.escape){o.exit();return}if(g==="r"){c();return}g==="v"&&(d(f=>!f),setTimeout(c,0))}),Uj({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await ef(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as eB}from"node:child_process";import{readFileSync as tB}from"node:fs";import{dirname as Q_,join as rB}from"node:path";import{createHash as qj}from"node:crypto";var Kj="project.name";function V_(e){let t=Ko(e,Kj)?.trim();return t===void 0||t===""?void 0:t}var Vj=8,z_="project";function J_(e){let t=Xj(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:zj(e.remoteUrl)??{name:Jj(e.checkoutPath,t),source:"basename"},o=Qj(t??nf(e.checkoutPath));return{name:n.name,slug:`${Yj(n.name)}-${o}`,hash:o,source:n.source}}function Y_(e){let t=(e??"").trim();if(t==="")return;let r=t.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,""),n=/^[^/]*?:(?!\d)(.+)$/.exec(r),s=(n?n[1]:r.replace(/^[^/]*/,"")).replace(/\.git$/,"").split("/").map(i=>i.trim()).filter(i=>i!=="");if(s.length!==0)return s.slice(-2).join("/")}function zj(e){let t=Y_(e);return t===void 0?void 0:{name:t,source:"remote"}}function Jj(e,t){let r=t===void 0?"":K_(Zj(t));if(r!=="")return r;let n=K_(nf(e));return n===""?z_:n}function Yj(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?z_:r}function Qj(e){return qj("sha256").update(e).digest("hex").slice(0,Vj)}function Xj(e){let t=nf(e??"");return t===""?void 0:t}function nf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function K_(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function Zj(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var nB=2e3;function X_(e){return oB(e).name}function oB(e){let t=sf(e),r=of(e,["rev-parse","--absolute-git-dir"])??of(e,["rev-parse","--git-common-dir"]),n=of(e,["remote","get-url","origin"]);return J_({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function sf(e){let t=J0(e,rB(".red","config.yaml"));if(t==null)return{};let r;try{r=tB(t,"utf8")}catch{return{}}let n=V_(r),o=Q_(Q_(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function of(e,t){try{let r=eB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:nB}).trim();return r===""?void 0:r}catch{return}}function $l(e){let t=sf(e);return t.configText==null?{label:null}:{configText:t.configText,label:X_(e)}}async function af(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Qa(e),s=$l(t.cwd??process.cwd()),i=Xa({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
228
- `);let a=t.paths??cr(),l=t.readDashboard??q0,d=t.terminal===void 0?process.stdout.isTTY===!0:t.terminal===!0,c=(t.env??process.env).NO_COLOR!==void 0,u={...i.options.project==null?{}:{project:i.options.project},mode:i.options.mode,showDeathDetails:i.options.verbose},p=async(g,f=!0)=>{try{let y=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:y,lines:c?y.lines.map(qn):y.lines}}catch(y){let h=y instanceof Error?y.message:String(y);return f&&n(`redskilled dashboard: ${h}
223
+ `).length,Nt()};qe(N,()=>Jp(nn)),fe=new Promise((re,ke)=>{ie=re,xe=ke});let go=D.dispose;D.dispose=()=>{if(Re){go();return}At(),ie()};let ue=p>0?Math.ceil(1e3/p):0;qe(N,()=>{eR({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:ue>0?ue:16.67}),ef(n.columns||80,n.rows||24)});let Gt=0,ct=!1,et=null,Rt=null,lt=null,ut=0,_t=0,xt=0,Wr=0,De=null,Le=[],Q=!1,C=null;y&&(C=c_({stdout:J,showCursor:g,useDelta:!0})),R&&!s&&we(tf.clearTerminal);let w=ue>0?ue:16,L=H_(()=>{Le.length!==0&&$t(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let ke of re)ke()}})},w);qe(N,()=>Ll({enqueue(re){Re||(Le.push(re),L.schedule())},flush(){Re||L.flush()},isPending(){return Le.length>0||L.isPending()}}));let B=()=>{let re=performance.now();Z=Date.now(),Xk("component");try{Ce=F(),V_(Ce)}finally{Zk(),se=performance.now()-re}},K=()=>qe(N,()=>{B(),_r()});function X(re){Re||(Rt=re,!W&&ye())}function ye(){if(ct||Re||W||!Rt)return;let ke=Date.now()-Gt,Ie=Gt===0||ke>=ue?0:ue-ke,Wt=()=>{let Ct=Rt;if(Rt=null,ct=!1,et=null,!Re)try{Ct?.()}catch(Ht){D.exit(Ht instanceof Error?Ht:new Error(String(Ht)))}};if(ct=!0,Ie===0){queueMicrotask(Wt);return}et=setTimeout(Wt,Ie)}let je=re=>qe(N,()=>{if(Re)return;let ke=zo(String(re)).replace(/\r\n?/g,`
224
+ `).replace(/\n+$/u,"");Se.push(ke),X(_r)});qe(N,()=>Ml(je));function Be(){if(!h||Re||(h.pauseWhenUnfocused??!0)&&!hr())return;let ke=1e3/Math.max(1,h.updateFps),Ie=Math.max(0,Math.ceil(ke-ut));lt=setTimeout(er,Ie)}function er(){if(!(!h||Re))try{if((h.pauseWhenUnfocused??!0)&&!hr()){lt=null,ut=0,_t=Date.now();return}let ke=1e3/h.updateFps,Ie=h.maxCatchUpUpdates??5,Wt=Date.now();ut+=Wt-_t,_t=Wt;let Ct=0;for(;ut>=ke&&Ct<Ie;)ut-=ke,xt++,Wr+=ke,$t(()=>{h.onUpdate({deltaTimeMs:ke,step:xt,elapsedMs:Wr})}),Ct++;ut>=ke&&(ut%=ke),Be()}catch(re){lt=null,D.exit(re instanceof Error?re:new Error(String(re)))}}let Rr=en(N,()=>{Re||(SR(),ef(n.columns||80,n.rows||24),Iw(),X(K))});n.on("resize",Rr);let Ve=()=>{};D.onExit(re=>qe(N,()=>{At(),Ve(),re?xe(re):ie()}));function _r(){if(Re||!Ce)return;Gt=Date.now();let re=Z??Date.now(),ke=n.columns||80,Ie=n.rows||24,Wt=jj(Ce),Ct=()=>{C&&(C.cleanup(),C=null,we(tf.clearTerminal),Fe.clear(),at=0,Nt())};if(Se.length>0){Ct();let $e=Se;Se=[],on($e.join(`
225
+ `))}Wt.staticNodes.length>0&&Ct();let Ht=Math.max(1,Ie-at);if(C&&!s){let $e=uo(Ce,{width:ke,height:Ht});$e.metrics.runtimeStartAt=re,se!==void 0&&it($e,"vnodeEvalMs",se);let On=performance.now();Bp($e),mp($e.layout,at);let Ur=os();Ur.hasClickableElements()&&!Q?(es(),Q=!0):!Ur.hasClickableElements()&&Q&&(Zn(),Q=!1),it($e,"frameCommitMs",performance.now()-On),Pt($e,"reservedRegionCount",$e.reservedRegions.length),C.renderFrame($e),se=void 0,Z=void 0;return}let{staticNodes:sn,interactiveNode:Pn}=Wt,An=performance.now();Ae();for(let $e=0;$e<sn.length;$e++){let On=sn[$e],Ur=Lj(On,$e);if(!Fe.has(Ur)){let qr=__(On,ke);qr.trim()&&(on(qr),Fe.add(Ur))}}let Cn=gR(),Ue=uo(Pn,{width:ke,height:Ht});Ue.metrics.runtimeStartAt=re,se!==void 0&&it(Ue,"vnodeEvalMs",se);let Dn=performance.now()-An;it(Ue,"staticRenderMs",Dn);let an=performance.now();Bp(Ue),mp(Ue.layout,at);let Hr=os();Hr.hasClickableElements()&&!Q?(es(),Q=!0):!Hr.hasClickableElements()&&Q&&(Zn(),Q=!1),it(Ue,"frameCommitMs",performance.now()-an),Pt(Ue,"reservedRegionCount",Ue.reservedRegions.length);let tt=Gp(Ue,{fullHeight:T,previousFrame:Cn});if(tt===ve&&!s){let $e=Ee();it(Ue,"outputWriteMs",$e.writeMs),Pt(Ue,"outputByteCount",$e.bytes),Tn(Ue,{renderer:"ansi",runtimeStartAt:re}),Xo(Ue.layout),ai(),se=void 0,Z=void 0;return}s?we(tt+`
226
+ `):de(tt);let ho=Ee();it(Ue,"outputWriteMs",ho.writeMs),Pt(Ue,"outputByteCount",ho.bytes),Tn(Ue,{renderer:"ansi",runtimeStartAt:re}),Xo(Ue.layout),ai(),ve=tt,se=void 0,Z=void 0}function At(){return qe(N,tr)}function tr(){if(Re)return;Re=!0;let re=ke=>{try{ke()}catch(Ie){console.error("[tuiuiu] Error while cleaning up the render loop:",Ie)}};et&&(clearTimeout(et),et=null),lt&&(clearTimeout(lt),lt=null),De?.(),De=null,W=!1,re(()=>n.off("drain",pe)),Rt=null,ct=!1,L.cancel(),Le=[],Ll(null),Ml(null),Q&&(re(()=>Zn()),Q=!1),re(()=>n.off("resize",Rr)),re(C?()=>C?.cleanup():()=>de.done()),$&&re(()=>{n.write(Hp())}),W=!1,re(()=>n.off("drain",pe)),re(()=>il(N)),Ce&&re(()=>z_(Ce)),re(()=>D.dispose());for(let ke of G.splice(0))re(ke);re(U),re(()=>hR()),re(()=>Qo(N))}try{Ve=qe(N,()=>Vw(()=>{K()},{scheduler:X})),qe(N,()=>{h&&(_t=Date.now(),(h.pauseWhenUnfocused??!0)&&(De=Rl(re=>{if(!(Re||!h)){if(!re){lt&&(clearTimeout(lt),lt=null),ut=0,_t=Date.now();return}ut=0,_t=Date.now(),lt||Be()}})),Be())})}catch(re){try{Ve()}catch(ke){console.error("[tuiuiu] Error while rolling back the render effect:",ke)}throw At(),re}return{rerender:re=>qe(N,()=>{F=()=>re,X(K)}),unmount:()=>qe(N,()=>{At(),Ve(),s||we(`
227
+ `),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(et&&(clearTimeout(et),et=null),Rt=null,ct=!1,nn(),W?X(()=>{_r()}):_r())}),writeLine:je}}var $j={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topMid:"\u2566",bottomMid:"\u2569",leftMid:"\u2560",rightMid:"\u2563",midMid:"\u256C"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topMid:"\u2533",bottomMid:"\u253B",leftMid:"\u2523",rightMid:"\u252B",midMid:"\u254B"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",topMid:"+",bottomMid:"+",leftMid:"+",rightMid:"+",midMid:"+"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",topMid:"",bottomMid:"",leftMid:"",rightMid:"",midMid:""}};function wr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function nf(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function Nj(e,t,r,n=1,o){let s=[],i=wr(n,1),a=o===void 0?void 0:wr(o,0);for(let d of e){let c=be(d.header);for(let p of t){let g=p[d.key];d.format&&(g=d.format(g,p));let f=String(g??"");c=Math.max(c,be(f))}let u=nf(d);d.width!==void 0?c=wr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):wr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,wr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,wr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:nf(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((y,h,R)=>y+(nf(e[R])>0?0:h),0),p=l.reduce((y,h)=>y+s[h.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let y=l.reduce((h,R)=>h+R.flex,0);for(let h of l){let R=Math.floor(h.flex/y*f);s[h.index]=s[h.index]+R,h.col.maxWidth!==void 0&&(s[h.index]=Math.min(s[h.index],wr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=wr(r,0),c=e.length*i*2,u=e.length+1,p=s.reduce((g,f)=>g+f,0)+c+u;if(p>d){let g=p-d,f=s.map((h,R)=>{let T=wr(e[R].minWidth,3);return Math.max(0,h-T)}),y=f.reduce((h,R)=>h+R,0);if(y>0)for(let h=0;h<s.length;h++){let R=Math.floor(f[h]/y*g);s[h]=Math.max(wr(e[h].minWidth,3),s[h]-R)}}}return s}function J_(e,t,r){let n=Zr(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=be(n);if(o>=t)return n;let s=t-o;switch(r){case"right":return" ".repeat(s)+n;case"center":let i=Math.floor(s/2),a=s-i;return" ".repeat(i)+n+" ".repeat(a);default:return n+" ".repeat(s)}}function Gj(e,t){return Zr(e,t,{truncationCharacter:"\u2026"})}function Wj(){try{return process.stdout.columns||80}catch{return 80}}function of(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,y=g?0:wr(d,1),h=$j[n],R=n!=="none",T=p??Wj(),$=Nj(t,r,u,y,T),D=[],M=(N,U,G,F)=>{if(!R)return yr({});let W=[N];for(let q=0;q<$.length;q++)W.push(F.repeat($[q]+y*2)),q<$.length-1&&W.push(U);return W.push(G),yr({flexDirection:"row"},mt({color:o},W.join("")))};if(R&&D.push(M(h.topLeft,h.topMid,h.topRight,h.horizontal)),s){let N=[];R&&N.push(mt({color:o},h.vertical));for(let U=0;U<t.length;U++){let G=t[U],F=" ".repeat(y),W=G.headerAlign??G.align??"left",q=J_(G.header,$[U],W);N.push(mt({color:o},F),mt({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":U+1},q),mt({color:o},F)),R&&N.push(mt({color:o},h.vertical))}D.push(yr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let N=0;N<r.length;N++){let U=r[N],G=a&&N%2===1,F=t.map((oe,ae)=>{let se=U[oe.key];oe.format&&(se=oe.format(se,U));let Z=String(se??"");if(oe.wrap)return Yn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Zr(pe,$[ae],{truncationCharacter:""}):Gj(pe,$[ae])]}),W=Math.max(1,...F.map(oe=>oe.length)),q=[];for(let oe=0;oe<W;oe++){let ae=[];R&&ae.push(mt({color:o},h.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(y),Ae=J_(F[se]?.[oe]??"",$[se],Z.align??"left"),Ee=Z.color??(G?l:void 0);ae.push(mt({color:o},pe),mt({color:Ee,dim:G,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Ae),mt({color:o},pe)),R&&ae.push(mt({color:o},h.vertical))}q.push(yr({flexDirection:"row"},...ae))}D.push(yr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}return R&&D.push(M(h.bottomLeft,h.bottomMid,h.bottomRight,h.horizontal)),yr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...D)}function Bl(e,t){return mt({wrap:"truncate-end"},t?Un(e):e)}function Hj(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>Bl(c,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(c=>({...c})),l=e.table.rows.map(c=>Object.fromEntries(Object.entries(c).map(([u,p])=>[u,r?Un(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>Bl(c,r)),of({columns:a,data:l,borderStyle:"none",availableWidth:d,maxWidth:d,compact:!1,padding:1,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!0,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(c=>Bl(c,r))]}function Uj(e){let t=Math.max(1,Math.floor(e.columns)),r=Math.max(1,Math.floor(e.rows)),n=Math.max(0,r-1),o=`q quit \xB7 r refresh \xB7 v deaths: ${e.showDeathDetails?"details":"summary"} \xB7 live 1s`,s=e.noColor===!0,i=e.frame.dashboard==null?e.frame.lines.map(a=>Bl(a,s)):Hj(e.frame.dashboard,t,s);return yr({flexDirection:"column",width:t,height:r,overflow:"hidden"},yr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function Y_(e){let t=!1;function r(){let o=Il(),s=Yp(),[i,a]=Dl({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Dl(e.initialShowDeathDetails),c=()=>{t||(t=!0,e.readFrame({columns:Math.max(1,s.columns||80),rows:Math.max(1,(s.rows||24)-1),showDeathDetails:l()}).then(a).catch(u=>{a({lines:[`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`]})}).finally(()=>{t=!1}))};return Ti(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Qp(c,e.refreshMs??1e3),qp((u,p)=>{let g=u.toLowerCase();if(g==="q"||p.escape){o.exit();return}if(g==="r"){c();return}g==="v"&&(d(f=>!f),setTimeout(c,0))}),Uj({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await rf(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as eB}from"node:child_process";import{readFileSync as tB}from"node:fs";import{dirname as rx,join as rB}from"node:path";import{createHash as qj}from"node:crypto";var Kj="project.name";function X_(e){let t=qo(e,Kj)?.trim();return t===void 0||t===""?void 0:t}var Vj=8,Z_="project";function ex(e){let t=Xj(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:zj(e.remoteUrl)??{name:Jj(e.checkoutPath,t),source:"basename"},o=Qj(t??sf(e.checkoutPath));return{name:n.name,slug:`${Yj(n.name)}-${o}`,hash:o,source:n.source}}function tx(e){let t=(e??"").trim();if(t==="")return;let r=t.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,""),n=/^[^/]*?:(?!\d)(.+)$/.exec(r),s=(n?n[1]:r.replace(/^[^/]*/,"")).replace(/\.git$/,"").split("/").map(i=>i.trim()).filter(i=>i!=="");if(s.length!==0)return s.slice(-2).join("/")}function zj(e){let t=tx(e);return t===void 0?void 0:{name:t,source:"remote"}}function Jj(e,t){let r=t===void 0?"":Q_(Zj(t));if(r!=="")return r;let n=Q_(sf(e));return n===""?Z_:n}function Yj(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?Z_:r}function Qj(e){return qj("sha256").update(e).digest("hex").slice(0,Vj)}function Xj(e){let t=sf(e??"");return t===""?void 0:t}function sf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function Q_(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function Zj(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var nB=2e3;function nx(e){return oB(e).name}function oB(e){let t=lf(e),r=af(e,["rev-parse","--absolute-git-dir"])??af(e,["rev-parse","--git-common-dir"]),n=af(e,["remote","get-url","origin"]);return ex({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function lf(e){let t=ek(e,rB(".red","config.yaml"));if(t==null)return{};let r;try{r=tB(t,"utf8")}catch{return{}}let n=X_(r),o=rx(rx(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function af(e,t){try{let r=eB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:nB}).trim();return r===""?void 0:r}catch{return}}function $l(e){let t=lf(e);return t.configText==null?{label:null}:{configText:t.configText,label:nx(e)}}async function df(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Qa(e),s=$l(t.cwd??process.cwd()),i=Xa({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
228
+ `);let a=t.paths??cr(),l=t.readDashboard??Y0,d=t.terminal===void 0?process.stdout.isTTY===!0:t.terminal===!0,c=(t.env??process.env).NO_COLOR!==void 0,u={...i.options.project==null?{}:{project:i.options.project},mode:i.options.mode,showDeathDetails:i.options.verbose},p=async(g,f=!0)=>{try{let y=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:y,lines:c?y.lines.map(Un):y.lines}}catch(y){let h=y instanceof Error?y.message:String(y);return f&&n(`redskilled dashboard: ${h}
229
229
  `),{lines:[`redskilled unreachable \u2014 ${h}`]}}};if(!d){let g=await p({...u,...i.options.maxWidth==null?{}:{maxWidth:i.options.maxWidth}});return r(`${g.lines.join(`
230
230
  `)}
231
- `),0}return await(t.runTui??q_)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:y})=>{let h=Math.max(1,Math.min(i.options.maxWidth??g,g)),R=Math.max(1,f);return await p({...u,maxWidth:h,maxHeight:R,maxRows:Math.max(0,R-8),showDeathDetails:y},!1)}}),0}var iB=`Usage: redskilled <command> [options]
231
+ `),0}return await(t.runTui??Y_)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:y})=>{let h=Math.max(1,Math.min(i.options.maxWidth??g,g)),R=Math.max(1,f);return await p({...u,maxWidth:h,maxHeight:R,maxRows:Math.max(0,R-8),showDeathDetails:y},!1)}}),0}var iB=`Usage: redskilled <command> [options]
232
232
 
233
233
  Commands:
234
234
  host-state (default) print the host's state as JSON
@@ -329,23 +329,23 @@ Reports every session runtime dir it looked at and why it kept or removed it.
329
329
 
330
330
  --dry-run the same report with nothing removed
331
331
  --grace-ms <n> how long a dir must be idle before it is reclaimed
332
- `};function lB(e){return e==="--help"||e==="-h"||e==="help"}var dB={socket:{kind:"value",coerce:e=>e},lease:{kind:"value",coerce:e=>e},events:{kind:"value",coerce:e=>e},"session-key-hash":{kind:"value",coerce:e=>e},"machine-id-hash":{kind:"value",coerce:e=>e},"machine-claim":{kind:"value",coerce:e=>e},"worker-ceiling":{kind:"value",coerce:e=>e},"memory-ceiling":{kind:"value",coerce:e=>e},"idle-ms":{kind:"value",coerce:e=>Number(e)},"daemon-version":{kind:"value",coerce:e=>e},"queue-endpoint":{kind:"value",coerce:e=>e},"queue-ms":{kind:"value",coerce:e=>Number(e)},"demand-ms":{kind:"value",coerce:e=>Number(e)}},ex="REDSKILLED_HOST_TOKEN";function Oi(){try{let t=sB("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function tx(e=process.env,t=Oi){let r=(e[ex]??e.GITHUB_TOKEN??e.GH_TOKEN??"").trim();if(r!=="")return{token:r,source:"env"};let n=(t()??"").trim();return n!==""?{token:n,source:"tracker-cli"}:null}function cB(e,t=process.env,r=Oi,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...Z_(e,t,r,n),armTransport:()=>Z_(e,t,r,n)}}function uB(e,t=process.env,r=Oi){let n=tx(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:qc({token:n.token,...o?{origin:o}:{}})}}function Z_(e,t=process.env,r=Oi,n){let o=tx(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${ex}, GITHUB_TOKEN and GH_TOKEN are all unset in the daemon's environment and \`gh auth token\` returned nothing \u2014 so no queue depth is asked for, and no depth is invented either`};let s=e["queue-endpoint"]??t.GITHUB_GRAPHQL_URL;return{transport:Ub({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function pB(e){if(e[0]==="--version"||e[0]==="-v"){let o=gd("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
333
- `:`${gg(o)}
334
- `),0}if(lB(e[0]))return process.stdout.write(iB),0;let{command:t,args:r}=yg(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(aB[t]),0;if(t==="serve"){let{values:o}=dn(r,dB),s=await V0(Di()),i=z0({flags:{...o["worker-ceiling"]==null?{}:{workerCeiling:o["worker-ceiling"]},...o["memory-ceiling"]==null?{}:{memoryCeiling:o["memory-ceiling"]},...o["idle-ms"]==null?{}:{idleMs:o["idle-ms"]}},config:s}),a=Nl(sr(Di()),"state"),l=ba({path:Nl(a,"github","spend.toonl")}),d=cB(o,process.env,Oi,l),c=uB(o),u=Bg({stateRoot:a});process.stderr.write(`${$g(u)}
335
- `);let p=Fg({lanePath:_s(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g=await O0({paths:vB(o),idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??gd("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}});for(let f of["SIGTERM","SIGINT"])process.once(f,()=>void g.stop({reason:"signal",signal:f}).catch(()=>{}));return await g.closed,p.phase("closed"),0}if(t==="stop")return await bB(r);if(t==="statusline")return await kB(r);if(t==="dashboard")return await af(r);if(t==="github-spend")return await gB(r);if(t==="unit")return await yB(r);if(t==="provision")return await RB(r);if(t==="reclaim")return await xB(r);let n=await W0(cr());return process.stdout.write(`${JSON.stringify(n,null,2)}
336
- `),0}var fB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function gB(e,t={}){let{values:r}=dn(e,fB,{unknownFlags:"error"}),n=r.hours??1;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled github-spend --hours must be a positive number; received ${String(n)}`);let o=r.pool??"graphql",s=o==="all"?void 0:hB(o),i=(t.now??(()=>new Date().toISOString()))(),a=Date.parse(i);if(!Number.isFinite(a))throw new Error(`redskilled github-spend clock returned an invalid instant: ${i}`);let l=new Date(a-n*60*60*1e3).toISOString(),c=await(t.ledger??ba({path:Nl(sr(t.homeDir??Di()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${ot({version:c.version,origin:c.origin,window:{from:c.window.from,to:c.window.to},pool:c.pool,total_count:c.total_count,total_cost:c.total_cost,operations:c.operations.map(u=>({operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:u.count,cost:u.cost})),unreadable_records:c.unreadable_records})}
337
- `),0}function hB(e){if(e==="graphql"||e==="rest"||e==="search")return e;throw new Error(`redskilled github-spend --pool must be graphql, rest, search or all; received ${JSON.stringify(e)}`)}var mB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function bB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,mB),o=await G0(t.paths??cr(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${ot({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,survives:s.survives})),detail:o.detail})}
338
- `),o.running&&!o.stopped?1:0}async function yB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??cr(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(s0(t.unitIO??{}),null,2)}
339
- `),0;if(o==="install"){let s=await n0(Xy(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
340
- `),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await o0(t.unitIO??{}),null,2)}
332
+ `};function lB(e){return e==="--help"||e==="-h"||e==="help"}var dB={socket:{kind:"value",coerce:e=>e},lease:{kind:"value",coerce:e=>e},events:{kind:"value",coerce:e=>e},"session-key-hash":{kind:"value",coerce:e=>e},"machine-id-hash":{kind:"value",coerce:e=>e},"machine-claim":{kind:"value",coerce:e=>e},"worker-ceiling":{kind:"value",coerce:e=>e},"memory-ceiling":{kind:"value",coerce:e=>e},"idle-ms":{kind:"value",coerce:e=>Number(e)},"daemon-version":{kind:"value",coerce:e=>e},"queue-endpoint":{kind:"value",coerce:e=>e},"queue-ms":{kind:"value",coerce:e=>Number(e)},"demand-ms":{kind:"value",coerce:e=>Number(e)}},sx="REDSKILLED_HOST_TOKEN";function Di(){try{let t=sB("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function ix(e=process.env,t=Di){let r=(e[sx]??e.GITHUB_TOKEN??e.GH_TOKEN??"").trim();if(r!=="")return{token:r,source:"env"};let n=(t()??"").trim();return n!==""?{token:n,source:"tracker-cli"}:null}function cB(e,t=process.env,r=Di,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...ox(e,t,r,n),armTransport:()=>ox(e,t,r,n)}}function uB(e,t=process.env,r=Di){let n=ix(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:qc({token:n.token,...o?{origin:o}:{}})}}function ox(e,t=process.env,r=Di,n){let o=ix(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${sx}, GITHUB_TOKEN and GH_TOKEN are all unset in the daemon's environment and \`gh auth token\` returned nothing \u2014 so no queue depth is asked for, and no depth is invented either`};let s=e["queue-endpoint"]??t.GITHUB_GRAPHQL_URL;return{transport:Kb({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function pB(e){if(e[0]==="--version"||e[0]==="-v"){let o=gd("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
333
+ `:`${mg(o)}
334
+ `),0}if(lB(e[0]))return process.stdout.write(iB),0;let{command:t,args:r}=wg(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(aB[t]),0;if(t==="serve"){let{values:o}=dn(r,dB),s=await X0(Ci()),i=Z0({flags:{...o["worker-ceiling"]==null?{}:{workerCeiling:o["worker-ceiling"]},...o["memory-ceiling"]==null?{}:{memoryCeiling:o["memory-ceiling"]},...o["idle-ms"]==null?{}:{idleMs:o["idle-ms"]}},config:s}),a=Nl(sr(Ci()),"state"),l=ma({path:Nl(a,"github","spend.toonl")}),d=cB(o,process.env,Di,l),c=uB(o),u=Ng({stateRoot:a});process.stderr.write(`${Gg(u)}
335
+ `);let p=Mg({lanePath:Rs(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g=await j0({paths:vB(o),idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??gd("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}});for(let f of["SIGTERM","SIGINT"])process.once(f,()=>void g.stop({reason:"signal",signal:f}).catch(()=>{}));return await g.closed,p.phase("closed"),0}if(t==="stop")return await bB(r);if(t==="statusline")return await kB(r);if(t==="dashboard")return await df(r);if(t==="github-spend")return await gB(r);if(t==="unit")return await yB(r);if(t==="provision")return await RB(r);if(t==="reclaim")return await xB(r);let n=await V0(cr());return process.stdout.write(`${JSON.stringify(n,null,2)}
336
+ `),0}var fB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function gB(e,t={}){let{values:r}=dn(e,fB,{unknownFlags:"error"}),n=r.hours??1;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled github-spend --hours must be a positive number; received ${String(n)}`);let o=r.pool??"graphql",s=o==="all"?void 0:hB(o),i=(t.now??(()=>new Date().toISOString()))(),a=Date.parse(i);if(!Number.isFinite(a))throw new Error(`redskilled github-spend clock returned an invalid instant: ${i}`);let l=new Date(a-n*60*60*1e3).toISOString(),c=await(t.ledger??ma({path:Nl(sr(t.homeDir??Ci()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${ot({version:c.version,origin:c.origin,window:{from:c.window.from,to:c.window.to},pool:c.pool,total_count:c.total_count,total_cost:c.total_cost,operations:c.operations.map(u=>({operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:u.count,cost:u.cost})),unreadable_records:c.unreadable_records})}
337
+ `),0}function hB(e){if(e==="graphql"||e==="rest"||e==="search")return e;throw new Error(`redskilled github-spend --pool must be graphql, rest, search or all; received ${JSON.stringify(e)}`)}var mB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function bB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,mB),o=await K0(t.paths??cr(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${ot({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,survives:s.survives})),detail:o.detail})}
338
+ `),o.running&&!o.stopped?1:0}async function yB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??cr(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(c0(t.unitIO??{}),null,2)}
339
+ `),0;if(o==="install"){let s=await l0(n0(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
340
+ `),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await d0(t.unitIO??{}),null,2)}
341
341
  `),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function kB(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Qa(e),s=$l(t.cwd??process.cwd()),i=Xa({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let l of[...i.warnings,...o.warnings])n(`redskilled statusline: ignoring ${l.key}=${l.value} \u2014 ${l.reason}
342
- `);let a;try{a=await U0(t.paths??cr(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
343
- `),a=mu({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
342
+ `);let a;try{a=await J0(t.paths??cr(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
343
+ `),a=yu({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
344
344
  `)}
345
- `),0}var wB={"no-start":{kind:"boolean"},"install-unit":{kind:"boolean"},check:{kind:"boolean"},project:{kind:"value",coerce:e=>e},workspace:{kind:"value",coerce:e=>e}};async function RB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=dn(e,wB),o=t.paths??cr(),s=t.homeDir??Di(),i=await Uu({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await lk(s),l;if(!n.check&&!n["no-start"])try{await $u(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await uk({paths:o,homeNeed:i,...t.homeDir==null?{}:{homeDir:t.homeDir},...t.configHome==null?{}:{configHome:t.configHome},...t.client?.serverCommand==null?{}:{entryOverride:{serverCommand:t.client.serverCommand,serverArgs:t.client.serverArgs}}}),c=n["install-unit"]&&Pr(d.entry)?await gk({configHome:t.configHome??EB(),unit:fk({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=ck(d);return r(`${ot({verdict:u.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...c==null?{}:{unit:{path:c.path,status:c.status}},checks:u.rows.map(p=>({check:p.check,verdict:p.verdict,evidence:p.evidence})),fixes:u.findings.map(p=>({check:p.check,fix:p.fix}))})}
346
- `),u.verdict==="ok"?0:1}var _B={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function xB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,_B),o=await bk({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${ot({roots:[...o.roots],scanned:o.scanned,reclaimed:o.reclaimed,dry_run:o.dryRun,entries:o.entries.map(s=>({dir:s.dir,verdict:s.verdict,reason:s.reason,removed:[...s.removed]}))})}
347
- `),o.entries.some(s=>s.verdict==="failed")?1:0}function EB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:Nl(Di(),".config")}function vB(e){let t=cr();return{...t,socketPath:e.socket??t.socketPath,leasePath:e.lease??t.leasePath,eventLanePath:e.events??t.eventLanePath,sessionKeyHash:e["session-key-hash"]??t.sessionKeyHash,machineIdHash:e["machine-id-hash"]??t.machineIdHash,machineClaimPath:e["machine-claim"]??t.machineClaimPath}}var SB=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(SB){let e=process.argv.slice(2);pB(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
348
- `),process.exitCode=1})}export{ex as REDSKILLED_HOST_TOKEN_ENV,iB as REDSKILLED_USAGE,Z_ as armRedskilledQueueTransport,tx as resolveRedskilledHostToken,uB as resolveServeGithubBalance,cB as resolveServeQueueDiscovery,af as runDashboard,gB as runGithubSpend,RB as runProvision,xB as runReclaim,pB as runRedskilledCli,kB as runStatusline,bB as runStop,yB as runUnit};
345
+ `),0}var wB={"no-start":{kind:"boolean"},"install-unit":{kind:"boolean"},check:{kind:"boolean"},project:{kind:"value",coerce:e=>e},workspace:{kind:"value",coerce:e=>e}};async function RB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=dn(e,wB),o=t.paths??cr(),s=t.homeDir??Ci(),i=await Ku({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await fk(s),l;if(!n.check&&!n["no-start"])try{await Gu(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await mk({paths:o,homeNeed:i,...t.homeDir==null?{}:{homeDir:t.homeDir},...t.configHome==null?{}:{configHome:t.configHome},...t.client?.serverCommand==null?{}:{entryOverride:{serverCommand:t.client.serverCommand,serverArgs:t.client.serverArgs}}}),c=n["install-unit"]&&Pr(d.entry)?await kk({configHome:t.configHome??EB(),unit:yk({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=hk(d);return r(`${ot({verdict:u.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...c==null?{}:{unit:{path:c.path,status:c.status}},checks:u.rows.map(p=>({check:p.check,verdict:p.verdict,evidence:p.evidence})),fixes:u.findings.map(p=>({check:p.check,fix:p.fix}))})}
346
+ `),u.verdict==="ok"?0:1}var _B={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function xB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,_B),o=await _k({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${ot({roots:[...o.roots],scanned:o.scanned,reclaimed:o.reclaimed,dry_run:o.dryRun,entries:o.entries.map(s=>({dir:s.dir,verdict:s.verdict,reason:s.reason,removed:[...s.removed]}))})}
347
+ `),o.entries.some(s=>s.verdict==="failed")?1:0}function EB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:Nl(Ci(),".config")}function vB(e){let t=cr();return{...t,socketPath:e.socket??t.socketPath,leasePath:e.lease??t.leasePath,eventLanePath:e.events??t.eventLanePath,sessionKeyHash:e["session-key-hash"]??t.sessionKeyHash,machineIdHash:e["machine-id-hash"]??t.machineIdHash,machineClaimPath:e["machine-claim"]??t.machineClaimPath}}var SB=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(SB){let e=process.argv.slice(2);pB(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
348
+ `),process.exitCode=1})}export{sx as REDSKILLED_HOST_TOKEN_ENV,iB as REDSKILLED_USAGE,ox as armRedskilledQueueTransport,ix as resolveRedskilledHostToken,uB as resolveServeGithubBalance,cB as resolveServeQueueDiscovery,df as runDashboard,gB as runGithubSpend,RB as runProvision,xB as runReclaim,pB as runRedskilledCli,kB as runStatusline,bB as runStop,yB as runUnit};
349
349
  /*! Bundled license information:
350
350
 
351
351
  content-type/dist/index.js: