@reddb-io/red-skills 3.16.0 → 3.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,76 +1,76 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
3
- var zS=Object.create;var Qd=Object.defineProperty;var JS=Object.getOwnPropertyDescriptor;var YS=Object.getOwnPropertyNames;var QS=Object.getPrototypeOf,XS=Object.prototype.hasOwnProperty;var ZS=(e,t)=>()=>(e&&(t=e(e=0)),t);var bm=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),eT=(e,t)=>{for(var r in t)Qd(e,r,{get:t[r],enumerable:!0})},tT=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of YS(t))!XS.call(e,o)&&o!==r&&Qd(e,o,{get:()=>t[o],enumerable:!(n=JS(t,o))||n.enumerable});return e};var Xd=(e,t,r)=>(r=e!=null?zS(QS(e)):{},tT(t||!e||!e.__esModule?Qd(r,"default",{value:e,enumerable:!0}):r,e));var Dy={};eT(Dy,{REDSKILLED_BIN_ENV:()=>au,REDSKILLED_BUNDLE_ASSET:()=>Lr,REDSKILLED_ENTRY_UNRESOLVED:()=>Zs,RedskilledDaemonEntryError:()=>ei,isRedskilledEntryPath:()=>du,isResolvedRedskilledEntry:()=>jr,redskilledBundleCacheRoot:()=>Ua,redskilledServeArgv:()=>bn,requireRedskilledEntry:()=>qa,resolveRedskilledEntry:()=>kn});import{existsSync as NC,readdirSync as GC}from"node:fs";import{homedir as WC}from"node:os";import{basename as iu,dirname as su,join as Xt,resolve as Ha}from"node:path";function jr(e){return"command"in e}function bn(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 Ua(e=process.env){return Oy(e)}function kn(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??NC,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[au];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&du(i))return a(Ha(i),"caller-entry");let d=[];for(let[c,u]of KC(i,t.rootDir,r,t.listDir??JC))if(d.push(c),n(c))return a(c,u);return{diagnostic:Zs,searched:d,...i?{callerEntry:Ha(i)}:{}}}function qa(e={},t={}){let r=kn(e,t);if(jr(r))return r;throw new ei(r)}function du(e){let t=iu(e);return t===Lr||lu.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:qC(Ha(e))}function qC(e){let t=su(e);for(let r=0;r<4;r++){if(iu(t)==="redskilled")return!0;let n=su(t);if(n===t)return!1;t=n}return!1}function*KC(e,t,r,n){if(e){let s=su(Ha(e));yield[Xt(s,Lr),"caller-sibling-bundle"];let i=HC.exec(iu(e));i&&(yield[Xt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Xt(s,"..","dist",Lr),"caller-sibling-bundle"]}for(let s of UC){let i=r[s];i&&(yield[Xt(i,"dist",Lr),"plugin-root-bundle"],yield[Xt(i,"..","..","dist",Lr),"plugin-root-bundle"])}t&&(yield[Xt(t,"dist",Lr),"repo-bundle"],yield[Xt(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[Xt(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=Oy(r);yield[Xt(o,Lr),"bundle-cache"];for(let s of VC(o,n))yield[Xt(o,s),"bundle-cache"]}function Oy(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Xt(e.HOME||WC(),".cache");return Xt(t,"red-skills","bundles")}function VC(e,t){return t(e).filter(r=>lu.test(r)).sort((r,n)=>zC(Cy(n),Cy(r)))}function Cy(e){return lu.exec(e)?.[1]??""}function zC(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 JC(e){try{return GC(e)}catch{return[]}}var Lr,Zs,au,ei,HC,lu,UC,sn=ZS(()=>{"use strict";Lr="redskilled.bundle.min.mjs",Zs="redskilled-daemon-entry-unresolved",au="REDSKILLED_BIN";ei=class extends Error{code=Zs;searched;callerEntry;constructor(t){super(`${Zs}: no published ${Lr} found to spawn the redskilled daemon from${t.callerEntry?` (caller entry: ${t.callerEntry}, which is NOT used as a fallback)`:""}
3
+ var oT=Object.create;var tc=Object.defineProperty;var sT=Object.getOwnPropertyDescriptor;var iT=Object.getOwnPropertyNames;var aT=Object.getPrototypeOf,lT=Object.prototype.hasOwnProperty;var dT=(e,t)=>()=>(e&&(t=e(e=0)),t);var Pm=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),cT=(e,t)=>{for(var r in t)tc(e,r,{get:t[r],enumerable:!0})},uT=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of iT(t))!lT.call(e,o)&&o!==r&&tc(e,o,{get:()=>t[o],enumerable:!(n=sT(t,o))||n.enumerable});return e};var rc=(e,t,r)=>(r=e!=null?oT(aT(e)):{},uT(t||!e||!e.__esModule?tc(r,"default",{value:e,enumerable:!0}):r,e));var Wy={};cT(Wy,{REDSKILLED_BIN_ENV:()=>uu,REDSKILLED_BUNDLE_ASSET:()=>Lr,REDSKILLED_ENTRY_UNRESOLVED:()=>ni,RedskilledDaemonEntryError:()=>oi,isRedskilledEntryPath:()=>fu,isResolvedRedskilledEntry:()=>jr,redskilledBundleCacheRoot:()=>Ya,redskilledServeArgv:()=>bn,requireRedskilledEntry:()=>Qa,resolveRedskilledEntry:()=>kn});import{existsSync as YC,readdirSync as QC}from"node:fs";import{homedir as XC}from"node:os";import{basename as cu,dirname as du,join as rr,resolve as Ja}from"node:path";function jr(e){return"command"in e}function bn(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 Ya(e=process.env){return Gy(e)}function kn(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??YC,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[uu];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&fu(i))return a(Ja(i),"caller-entry");let d=[];for(let[c,u]of rO(i,t.rootDir,r,t.listDir??sO))if(d.push(c),n(c))return a(c,u);return{diagnostic:ni,searched:d,...i?{callerEntry:Ja(i)}:{}}}function Qa(e={},t={}){let r=kn(e,t);if(jr(r))return r;throw new oi(r)}function fu(e){let t=cu(e);return t===Lr||pu.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:tO(Ja(e))}function tO(e){let t=du(e);for(let r=0;r<4;r++){if(cu(t)==="redskilled")return!0;let n=du(t);if(n===t)return!1;t=n}return!1}function*rO(e,t,r,n){if(e){let s=du(Ja(e));yield[rr(s,Lr),"caller-sibling-bundle"];let i=ZC.exec(cu(e));i&&!/^mcp([.-]|$)/.test(i[2])&&(yield[rr(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[rr(s,"..","dist",Lr),"caller-sibling-bundle"]}for(let s of eO){let i=r[s];i&&(yield[rr(i,"dist",Lr),"plugin-root-bundle"],yield[rr(i,"..","..","dist",Lr),"plugin-root-bundle"])}t&&(yield[rr(t,"dist",Lr),"repo-bundle"],yield[rr(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[rr(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=Gy(r);yield[rr(o,Lr),"bundle-cache"];for(let s of nO(o,n))yield[rr(o,s),"bundle-cache"]}function Gy(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||rr(e.HOME||XC(),".cache");return rr(t,"red-skills","bundles")}function nO(e,t){return t(e).filter(r=>pu.test(r)).sort((r,n)=>oO(Ny(n),Ny(r)))}function Ny(e){return pu.exec(e)?.[1]??""}function oO(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 sO(e){try{return QC(e)}catch{return[]}}var Lr,ni,uu,oi,ZC,pu,eO,on=dT(()=>{"use strict";Lr="redskilled.bundle.min.mjs",ni="redskilled-daemon-entry-unresolved",uu="REDSKILLED_BIN";oi=class extends Error{code=ni;searched;callerEntry;constructor(t){super(`${ni}: no published ${Lr} 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)}};HC=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,lu=/^redskilled-(.+)\.bundle\.min\.mjs$/,UC=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var Gu=bm((Bu,Nu)=>{(function(e,t){typeof Bu=="object"&&typeof Nu<"u"?Nu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Bu,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,O,R={}){var I,j,G;for(I in O)G=O[I],R[I]=(j=Q[I])!=null?j:G;return R},n=function(Q,O,R={}){var I,j;for(I in Q)j=Q[I],O[I]!==void 0&&(R[I]=j);return R},o={load:r,overwrite:n},s;s=class{constructor(O,R){this.incr=O,this.decr=R,this._first=null,this._last=null,this.length=0}push(O){var R;this.length++,typeof this.incr=="function"&&this.incr(),R={value:O,prev:this._last,next:null},this._last!=null?(this._last.next=R,this._last=R):this._first=this._last=R}shift(){var O;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),O=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,O}first(){if(this._first!=null)return this._first.value}getArray(){var O,R,I;for(O=this._first,I=[];O!=null;)I.push((R=O,O=O.next,R.value));return I}forEachShift(O){var R;for(R=this.shift();R!=null;)O(R),R=this.shift()}debug(){var O,R,I,j,G;for(O=this._first,G=[];O!=null;)G.push((R=O,O=O.next,{value:R.value,prev:(I=R.prev)!=null?I.value:void 0,next:(j=R.next)!=null?j.value:void 0}));return G}};var i=s,a;a=class{constructor(O){if(this.instance=O,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=(R,I)=>this._addListener(R,"many",I),this.instance.once=(R,I)=>this._addListener(R,"once",I),this.instance.removeAllListeners=(R=null)=>R!=null?delete this._events[R]:this._events={}}_addListener(O,R,I){var j;return(j=this._events)[O]==null&&(j[O]=[]),this._events[O].push({cb:I,status:R}),this.instance}listenerCount(O){return this._events[O]!=null?this._events[O].length:0}async trigger(O,...R){var I,j;try{return O!=="debug"&&this.trigger("debug",`Event triggered: ${O}`,R),this._events[O]==null?void 0:(this._events[O]=this._events[O].filter(function(G){return G.status!=="none"}),j=this._events[O].map(async G=>{var V,Z;if(G.status!=="none"){G.status==="once"&&(G.status="none");try{return Z=typeof G.cb=="function"?G.cb(...R):void 0,typeof Z?.then=="function"?await Z:Z}catch(we){return V=we,this.trigger("error",V),null}}}),(await Promise.all(j)).find(function(G){return G!=null}))}catch(G){return I=G,this.trigger("error",I),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(O){var R;this.Events=new c(this),this._length=0,this._lists=function(){var I,j,G;for(G=[],R=I=1,j=O;1<=j?I<=j:I>=j;R=1<=j?++I:--I)G.push(new d(()=>this.incr(),()=>this.decr()));return G}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(O){return this._lists[O.options.priority].push(O)}queued(O){return O!=null?this._lists[O].length:this._length}shiftAll(O){return this._lists.forEach(function(R){return R.forEachShift(O)})}getFirst(O=this._lists){var R,I,j;for(R=0,I=O.length;R<I;R++)if(j=O[R],j.length>0)return j;return[]}shiftLastFrom(O){return this.getFirst(this._lists.slice(O).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,b,h,w,S,L;S=10,h=5,L=o,b=f,w=class{constructor(O,R,I,j,G,V,Z,we){this.task=O,this.args=R,this.rejectOnDrop=G,this.Events=V,this._states=Z,this.Promise=we,this.options=L.load(I,j),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===j.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Me)=>{this._resolve=je,this._reject=Me}),this.retryCount=0}_sanitizePriority(O){var R;return R=~~O!==O?h:O,R<0?0:R>S-1?S-1:R}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:O,message:R="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(O??new b(R)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(O){var R;if(R=this._states.jobStatus(this.options.id),!(R===O||O==="DONE"&&R===null))throw new b(`Invalid job status ${R}, expected ${O}. 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(O,R){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:O,blocked:R})}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(O,R,I,j){var G,V,Z;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),V={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",V);try{if(Z=await(O!=null?O.schedule(this.options,this.task,...this.args):this.task(...this.args)),R())return this.doDone(V),await j(this.options,V),this._assertStatus("DONE"),this._resolve(Z)}catch(we){return G=we,this._onFailure(G,V,R,I,j)}}doExpire(O,R,I){var j,G;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),G={args:this.args,options:this.options,retryCount:this.retryCount},j=new b(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(j,G,O,R,I)}async _onFailure(O,R,I,j,G){var V,Z;if(I())return V=await this.Events.trigger("failed",O,R),V!=null?(Z=~~V,this.Events.trigger("retry",`Retrying ${this.options.id} after ${Z} ms`,R),this.retryCount++,j(Z)):(this.doDone(R),await G(this.options,R),this._assertStatus("DONE"),this._reject(O))}doDone(O){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",O)}};var A=w,M,N,W;W=o,M=f,N=class{constructor(O,R,I){this.instance=O,this.storeOptions=R,this.clientId=this.instance._randomIndex(),W.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 O;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(O=this.heartbeat=setInterval(()=>{var R,I,j,G,V;if(G=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&G>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=G,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&G>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:R,reservoirIncreaseMaximum:j,reservoir:V}=this.storeOptions,this._lastReservoirIncrease=G,I=j!=null?Math.min(R,j-V):R,I>0))return this.storeOptions.reservoir+=I,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?O.unref():void 0:clearInterval(this.heartbeat)}async __publish__(O){return await this.yieldLoop(),this.instance.Events.trigger("message",O.toString())}async __disconnect__(O){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(O=0){return new this.Promise(function(R,I){return setTimeout(R,O)})}computePenalty(){var O;return(O=this.storeOptions.penalty)!=null?O:15*this.storeOptions.minTime||5e3}async __updateSettings__(O){return await this.yieldLoop(),W.overwrite(O,O,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__(O){return await this.yieldLoop(),this._nextRequest+this.timeout<O}computeCapacity(){var O,R;return{maxConcurrent:O,reservoir:R}=this.storeOptions,O!=null&&R!=null?Math.min(O-this._running,R):O!=null?O-this._running:R??null}conditionsCheck(O){var R;return R=this.computeCapacity(),R==null||O<=R}async __incrementReservoir__(O){var R;return await this.yieldLoop(),R=this.storeOptions.reservoir+=O,this.instance._drainAll(this.computeCapacity()),R}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(O){return this._unblockTime>=O}check(O,R){return this.conditionsCheck(O)&&this._nextRequest-R<=0}async __check__(O){var R;return await this.yieldLoop(),R=Date.now(),this.check(O,R)}async __register__(O,R,I){var j,G;return await this.yieldLoop(),j=Date.now(),this.conditionsCheck(R)?(this._running+=R,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=R),G=Math.max(this._nextRequest-j,0),this._nextRequest=j+G+this.storeOptions.minTime,{success:!0,wait:G,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(O,R){var I,j,G;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&R>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${R} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return j=Date.now(),G=this.storeOptions.highWater!=null&&O===this.storeOptions.highWater&&!this.check(R,j),I=this.strategyIsBlock()&&(G||this.isBlocked(j)),I&&(this._unblockTime=j+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:G,blocked:I,strategy:this.storeOptions.strategy}}async __free__(O,R){return await this.yieldLoop(),this._running-=R,this._done+=R,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var H=N,F,U;F=f,U=class{constructor(O){this.status=O,this._jobs={},this.counts=this.status.map(function(){return 0})}next(O){var R,I;if(R=this._jobs[O],I=R+1,R!=null&&I<this.status.length)return this.counts[R]--,this.counts[I]++,this._jobs[O]++;if(R!=null)return this.counts[R]--,delete this._jobs[O]}start(O){var R;return R=0,this._jobs[O]=R,this.counts[R]++}remove(O){var R;return R=this._jobs[O],R!=null&&(this.counts[R]--,delete this._jobs[O]),R!=null}jobStatus(O){var R;return(R=this.status[this._jobs[O]])!=null?R:null}statusJobs(O){var R,I,j,G,V;if(O!=null){if(I=this.status.indexOf(O),I<0)throw new F(`status must be one of ${this.status.join(", ")}`);j=this._jobs,G=[];for(R in j)V=j[R],V===I&&G.push(R);return G}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((O,R,I)=>(O[this.status[I]]=R,O),{})}};var q=U,oe,ae;oe=i,ae=class{constructor(O,R){this.schedule=this.schedule.bind(this),this.name=O,this.Promise=R,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var O,R,I,j,G,V,Z;if(this._running<1&&this._queue.length>0)return this._running++,{task:Z,args:O,resolve:G,reject:j}=this._queue.shift(),R=await async function(){try{return V=await Z(...O),function(){return G(V)}}catch(we){return I=we,function(){return j(I)}}}(),this._running--,this._tryToRun(),R()}schedule(O,...R){var I,j,G;return G=j=null,I=new this.Promise(function(V,Z){return G=V,j=Z}),this._queue.push({task:O,args:R,resolve:G,reject:j}),this._tryToRun(),I}};var se=ae,X="2.19.5",pe={version:X},Ce=Object.freeze({version:X,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ke=()=>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."),ce,_e,Oe,ve,Re,Se;Se=o,ce=l,ve=Ee,Oe=ke,Re=J,_e=function(){class Q{constructor(R={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=R,Se.load(this.limiterOptions,this.defaults,this),this.Events=new ce(this),this.instances={},this.Bottleneck=Ve,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 Oe(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(R=""){var I;return(I=this.instances[R])!=null?I:(()=>{var j;return j=this.instances[R]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${R}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",j,R),j})()}async deleteKey(R=""){var I,j;return j=this.instances[R],this.connection&&(I=await this.connection.__runCommand__(["del",...Re.allKeys(`${this.id}-${R}`)])),j!=null&&(delete this.instances[R],await j.disconnect()),j!=null||I>0}limiters(){var R,I,j,G;I=this.instances,j=[];for(R in I)G=I[R],j.push({key:R,limiter:G});return j}keys(){return Object.keys(this.instances)}async clusterKeys(){var R,I,j,G,V,Z,we,je,Me;if(this.connection==null)return this.Promise.resolve(this.keys());for(Z=[],R=null,Me=`b_${this.id}-`.length,I=9;R!==0;)for([je,j]=await this.connection.__runCommand__(["scan",R??0,"match",`b_${this.id}-*_settings`,"count",1e4]),R=~~je,G=0,we=j.length;G<we;G++)V=j[G],Z.push(V.slice(Me,-I));return Z}_startAutoCleanup(){var R;return clearInterval(this.interval),typeof(R=this.interval=setInterval(async()=>{var I,j,G,V,Z,we;Z=Date.now(),G=this.instances,V=[];for(j in G){we=G[j];try{await we._store.__groupCheck__(Z)?V.push(this.deleteKey(j)):V.push(void 0)}catch(je){I=je,V.push(we.Events.trigger("error",I))}}return V},this.timeout/2)).unref=="function"?R.unref():void 0}updateSettings(R={}){if(Se.overwrite(R,this.defaults,this),Se.overwrite(R,R,this.limiterOptions),R.timeout!=null)return this._startAutoCleanup()}disconnect(R=!0){var I;if(!this.sharedConnection)return(I=this.connection)!=null?I.disconnect(R):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var me=_e,ie,xe,Fe;Fe=o,xe=l,ie=function(){class Q{constructor(R={}){this.options=R,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((R,I)=>this._resolve=R)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(R){var I;return this._arr.push(R),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 rt=ie,zt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),mn=t(Ce),hn,Ao,le,Jt,pt,nt,Pt,ft,bt,At,xt,Te=[].splice;nt=10,Ao=5,xt=o,Pt=p,Jt=A,pt=H,ft=zt,le=l,bt=q,At=se,hn=function(){class Q{constructor(R={},...I){var j,G;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(R,I),xt.load(R,this.instanceDefaults,this),this._queues=new Pt(nt),this._scheduled={},this._states=new bt(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new le(this),this._submitLock=new At("submit",this.Promise),this._registerLock=new At("register",this.Promise),G=xt.load(R,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return j=xt.load(R,this.redisStoreDefaults,{}),new ft(this,G,j);if(this.datastore==="local")return j=xt.load(R,this.localStoreDefaults,{}),new pt(this,G,j);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var V;return(V=this._store.heartbeat)!=null&&typeof V.ref=="function"?V.ref():void 0}),this._queues.on("zero",()=>{var V;return(V=this._store.heartbeat)!=null&&typeof V.unref=="function"?V.unref():void 0})}_validateOptions(R,I){if(!(R!=null&&typeof R=="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(R){return this._store.__publish__(R)}disconnect(R=!0){return this._store.__disconnect__(R)}chain(R){return this._limiter=R,this}queued(R){return this._queues.queued(R)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(R){return this._states.jobStatus(R)}jobs(R){return this._states.statusJobs(R)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(R=1){return this._store.__check__(R)}_clearGlobalState(R){return this._scheduled[R]!=null?(clearTimeout(this._scheduled[R].expiration),delete this._scheduled[R],!0):!1}async _free(R,I,j,G){var V,Z;try{if({running:Z}=await this._store.__free__(R,j.weight),this.Events.trigger("debug",`Freed ${j.id}`,G),Z===0&&this.empty())return this.Events.trigger("idle")}catch(we){return V=we,this.Events.trigger("error",V)}}_run(R,I,j){var G,V,Z;return I.doRun(),G=this._clearGlobalState.bind(this,R),Z=this._run.bind(this,R,I),V=this._free.bind(this,R,I),this._scheduled[R]={timeout:setTimeout(()=>I.doExecute(this._limiter,G,Z,V),j),expiration:I.options.expiration!=null?setTimeout(function(){return I.doExpire(G,Z,V)},j+I.options.expiration):void 0,job:I}}_drainOne(R){return this._registerLock.schedule(()=>{var I,j,G,V,Z;return this.queued()===0?this.Promise.resolve(null):(Z=this._queues.getFirst(),{options:V,args:I}=G=Z.first(),R!=null&&V.weight>R?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${V.id}`,{args:I,options:V}),j=this._randomIndex(),this._store.__register__(j,V.weight,V.expiration).then(({success:we,wait:je,reservoir:Me})=>{var lr;return this.Events.trigger("debug",`Drained ${V.id}`,{success:we,args:I,options:V}),we?(Z.shift(),lr=this.empty(),lr&&this.Events.trigger("empty"),Me===0&&this.Events.trigger("depleted",lr),this._run(j,G,je),this.Promise.resolve(V.weight)):this.Promise.resolve(null)})))})}_drainAll(R,I=0){return this._drainOne(R).then(j=>{var G;return j!=null?(G=R!=null?R-j:R,this._drainAll(G,I+j)):this.Promise.resolve(I)}).catch(j=>this.Events.trigger("error",j))}_dropAllQueued(R){return this._queues.shiftAll(function(I){return I.doDrop({message:R})})}stop(R={}){var I,j;return R=xt.load(R,this.stopDefaults),j=G=>{var V;return V=()=>{var Z;return Z=this._states.counts,Z[0]+Z[1]+Z[2]+Z[3]===G},new this.Promise((Z,we)=>V()?Z():this.on("done",()=>{if(V())return this.removeAllListeners("done"),Z()}))},I=R.dropWaitingJobs?(this._run=function(G,V){return V.doDrop({message:R.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var G,V,Z;V=this._scheduled;for(G in V)Z=V[G],this.jobStatus(Z.job.options.id)==="RUNNING"&&(clearTimeout(Z.timeout),clearTimeout(Z.expiration),Z.job.doDrop({message:R.dropErrorMessage}));return this._dropAllQueued(R.dropErrorMessage),j(0)}))):this.schedule({priority:nt-1,weight:0},()=>j(1)),this._receive=function(G){return G._reject(new Q.prototype.BottleneckError(R.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),I}async _addToQueue(R){var I,j,G,V,Z,we,je;({args:I,options:V}=R);try{({reachedHWM:Z,blocked:j,strategy:je}=await this._store.__submit__(this.queued(),V.weight))}catch(Me){return G=Me,this.Events.trigger("debug",`Could not queue ${V.id}`,{args:I,options:V,error:G}),R.doDrop({error:G}),!1}return j?(R.doDrop(),!0):Z&&(we=je===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(V.priority):je===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(V.priority+1):je===Q.prototype.strategy.OVERFLOW?R:void 0,we?.doDrop(),we==null||je===Q.prototype.strategy.OVERFLOW)?(we==null&&R.doDrop(),Z):(R.doQueue(Z,j),this._queues.push(R),await this._drainAll(),Z)}_receive(R){return this._states.jobStatus(R.options.id)!=null?(R._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${R.options.id})`)),!1):(R.doReceive(),this._submitLock.schedule(this._addToQueue,R))}submit(...R){var I,j,G,V,Z,we,je;return typeof R[0]=="function"?(Z=R,[j,...R]=Z,[I]=Te.call(R,-1),V=xt.load({},this.jobDefaults)):(we=R,[V,j,...R]=we,[I]=Te.call(R,-1),V=xt.load(V,this.jobDefaults)),je=(...Me)=>new this.Promise(function(lr,jn){return j(...Me,function(...dr){return(dr[0]!=null?jn:lr)(dr)})}),G=new Jt(je,R,V,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),G.promise.then(function(Me){return typeof I=="function"?I(...Me):void 0}).catch(function(Me){return Array.isArray(Me)?typeof I=="function"?I(...Me):void 0:typeof I=="function"?I(Me):void 0}),this._receive(G)}schedule(...R){var I,j,G;return typeof R[0]=="function"?([G,...R]=R,j={}):[j,G,...R]=R,I=new Jt(G,R,j,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(I),I.promise}wrap(R){var I,j;return I=this.schedule.bind(this),j=function(...G){return I(R.bind(this),...G)},j.withOptions=function(G,...V){return I(G,R,...V)},j}async updateSettings(R={}){return await this._store.__updateSettings__(xt.overwrite(R,this.storeDefaults)),xt.overwrite(R,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(R=0){return this._store.__incrementReservoir__(R)}}return Q.default=Q,Q.Events=le,Q.version=Q.prototype.version=mn.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=me,Q.RedisConnection=Q.prototype.RedisConnection=Ee,Q.IORedisConnection=Q.prototype.IORedisConnection=ke,Q.Batcher=Q.prototype.Batcher=rt,Q.prototype.jobDefaults={priority:Ao,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 Ve=hn,Ct=Ve;return Ct})});var I0=bm(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});dl.format=b1;dl.parse=k1;var m1=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,A0=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,h1=/[\\"]/g,y1=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,C0=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function b1(e){let{type:t,parameters:r}=e;if(!t||!y1.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!A0.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${x1(r[o])}`}return n}function k1(e,t){let r=e.length,n=Vu(e,0,r),o=n;n=Ku(e,n,r);let s=zu(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new C0:_1(e,n,r);return{type:i,parameters:a}}var O0=32,D0=9,F0=59,R1=61,P0=34,w1=92;function _1(e,t,r){let n=new C0;e:for(;t<r;){t=Vu(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===F0)continue e;if(s===R1){let i=zu(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Vu(e,t+1,r),t<r&&e.charCodeAt(t)===P0){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===P0){t=Ku(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===w1&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Ku(e,t,r),n[a]===void 0){let d=zu(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Ku(e,t,r){for(;t<r&&e.charCodeAt(t)!==F0;)t++;return t}function Vu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==O0&&n!==D0)break;t++}return t}function zu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==O0&&n!==D0)break;r--}return r}function x1(e){if(A0.test(e))return e;if(m1.test(e))return`"${e.replace(h1,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as f5}from"node:child_process";import{homedir as oa}from"node:os";import{join as Ud}from"node:path";var Mo=class extends SyntaxError{line;source;reason;constructor(t,r={}){let n=r.line===void 0||r.line===0?"":`Line ${r.line}: `;super(n+t,r.cause===void 0?void 0:{cause:r.cause}),this.name="ToonDecodeError",this.line=r.line,this.source=r.source,this.reason=t}},en=class extends SyntaxError{line;source;reason;constructor(t,r,n={}){super(t===0?r:`line ${t}: ${r}`,n.cause===void 0?void 0:{cause:n.cause}),this.name="ToonError",this.line=t,this.source=n.source,this.reason=r}},qn=class extends Error{line;reason;constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function B(e,t,r={}){return new en(e,t,r)}function Pe(e,t){return new qn(e,t)}function Lo(e){return e instanceof qn?e:e instanceof en?new qn(e.line,e.reason):new qn(0,String(e&&e.message?e.message:e))}var rT=/(?:^\uFEFF?|\n) *#/,Zd=class{value;constructor(t){if(rT.test(t))throw new TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(t)}`);this.value=t}};function Kn(e){return e instanceof Zd}var ze=",";function ha(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 Cr(e){return B(e,"invalid quoted string")}function it(e,t){if(e==="")return"";if(e.startsWith('"'))return wm(e,t);if(e.includes('"'))throw Cr(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:nT(e)?Number(e):e}function Et(e,t){let r=e.trim();if(r.startsWith('"'))return[wm(r,t),!0];if(r.includes('"')||/\s/.test(r))throw B(t,"expected non-empty field name");return[r,!1]}var km=/["\\\u0000-\u0008\u000a-\u001f]/g;function wm(e,t){if(e.charCodeAt(0)!==34)throw Cr(t);let r="",n=1;for(;n<e.length;){km.lastIndex=n;let o=km.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw Cr(t)}if(o[0]!=="\\")throw Cr(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 Cr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Cr(t);r+=String.fromCharCode(a),n+=4;break}default:throw Cr(t)}}throw Cr(t)}function _m(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 Cr(r);t=o+2;continue}if(n===-1)throw Cr(r);return n+1}}function Yt(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=_m(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function $e(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=_m(e,o+1,r)}return-1}function nT(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function oT(e){return/^[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function sT(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw B(0,"number is not representable in TOON");return String(e)}function Or(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Je(e,t){if(Kn(e))return e.value;if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return sT(e);if(typeof e=="string")return aT(e,t);throw B(0,"not a primitive")}function iT(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function Ie(e){return iT(e)?e:ya(e)}function aT(e,t){return ec(e,t)?ya(e):e}function ec(e,t){return e===""||/^[ \t]|[ \t]$/.test(e)||e==="true"||e==="false"||e==="null"||oT(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")||e.startsWith("#")}var Rm=/["\\\u0000-\u001f]/g;function ya(e){return`"${xm(e)}"`}function xm(e){let t="",r=0;Rm.lastIndex=0;let n;for(;(n=Rm.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 pr(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Em=["type","kind","event"],Vn="|",vm=new Set(["order","discriminator","rows","common"]);function lT(e){let t=0;for(;t<e.length&&e[t]===" ";)t++;return e[t]==="#"}var ba=class{ctx;sourceByLine=new Map;number=0;blankPending=!1;firstLine=!0;constructor(t){this.ctx=t}push(t){let r=t;if(this.number++,this.sourceByLine.set(this.number,t),this.firstLine&&(r.startsWith("\uFEFF")&&(r=r.slice(1)),this.firstLine=!1),r.endsWith("\r")&&(r=r.slice(0,-1)),r=r.replace(/ +$/,""),r.trim()===""){this.blankPending=!0;return}if(lT(r))return;let n=0,o=0,s=0;for(;n<r.length&&(r[n]===" "||r[n]===" ");){if(r[n]===" "){if(this.ctx.strict)throw B(this.number,"tab used as indentation");o++}else s++;n++}let i;if(s%this.ctx.indentSize===0)i=s/this.ctx.indentSize;else{if(this.ctx.strict)throw B(this.number,"invalid indentation");i=Math.floor(s/this.ctx.indentSize)}i+=o,Mm(i,this.number,this.ctx);let a={number:this.number,depth:i,content:r.slice(n),blankBefore:this.blankPending};return this.blankPending=!1,a}};function*dT(e,t){for(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}async function*cT(e,t){for await(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}var uT=/^(0|[1-9]\d*)$/;function sc(e,t){let r=$e(e,"[",t);if(r===-1)return null;let n=$e(e,":",t);if(n!==-1&&n<r)return null;let o=e.slice(0,r);if(o!==""&&/\s$/.test(o))throw B(t,"whitespace between key and bracket segment");let s=e.indexOf("]",r);if(s===-1)return null;let i=e.slice(r+1,s),a=!1,l=",",d=i.indexOf(":");if(d!==-1){let b=i.slice(d+1);if(i=i.slice(0,d),a=!0,b===" "||b==="|")l=b;else if(b!=="")throw B(t,"malformed bracket segment")}else(i.endsWith(" ")||i.endsWith("|"))&&(l=i.slice(-1),i=i.slice(0,-1));if(!uT.test(i))throw B(t,"malformed array header length");let c=Number(i),u=e.slice(s+1),p;if(u.startsWith("{")){let b=Tm(u,t);p=Pm(u.slice(1,b),l,t),u=u.slice(b+1)}if(a&&p===void 0)throw B(t,"keyed header requires a field list");if(!u.startsWith(":"))throw B(t,"expected colon after array header");let g=Dr(u.slice(1));if((p!==void 0||a)&&g!=="")throw B(t,"unexpected content after fields-bearing header colon");return{key:o===""?void 0:Et(o,t)[0],length:c,delimiter:l,fields:p,keyed:a,inline:g===""?void 0:g}}function Tm(e,t){let r=0,n=!1;for(let o=0;o<e.length;o++){let s=e[o];if(n){s==="\\"?o++:s==='"'&&(n=!1);continue}if(s==='"')n=!0;else if(s==="{")r++;else if(s==="}"&&(r--,r===0))return o}throw B(t,"malformed tabular header fields")}function Pm(e,t,r){let n=[],o=0,s=0,i=!1,a=l=>{n.push(pT(l,t,r))};for(let l=0;l<e.length;l++){let d=e[l];if(i){d==="\\"?l++:d==='"'&&(i=!1);continue}d==='"'?i=!0:d==="{"?s++:d==="}"?s--:d===t&&s===0&&(a(e.slice(o,l)),o=l+1)}return a(e.slice(o)),n}function pT(e,t,r){let n=Dr(e);if(n==="")throw B(r,"empty field entry in header");let o=n.startsWith('"')?n.indexOf("{",fT(n,r)+1):n.indexOf("{");if(o===-1)return{name:Et(n,r)[0]};let s=Tm(n.slice(o),r)+o;if(s!==n.length-1)throw B(r,"malformed tabular header fields");let i=Pm(n.slice(o+1,s),t,r);if(i.length===0)throw B(r,"empty field entry in header");return{name:Et(n.slice(0,o),r)[0],children:i}}function fT(e,t){for(let r=1;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]==='"')return r;throw B(t,"invalid quoted string")}function ic(e){let t=0;for(let r of e)t+=r.children===void 0?1:ic(r.children);return t}function ac(e,t,r){let n=new Set;for(let o of e){if(n.has(o.name)&&r.strict)throw B(t,"duplicate field name in header");n.add(o.name),o.children!==void 0&&ac(o.children,t,r)}}function Dr(e){let t=0,r=e.length;for(;t<r&&e[t]===" ";)t++;for(;r>t&&e[r-1]===" ";)r--;return e.slice(t,r)}function lc(e,t,r){if(Dr(e)==="")return[];let n=[],o=0,s=!1;for(let i=0;i<e.length;i++){let a=e[i];if(s){a==="\\"?i++:a==='"'&&(s=!1);continue}a==='"'?s=!0:a===t&&(n.push(Dr(e.slice(o,i))),o=i+1)}return n.push(Dr(e.slice(o))),n}var dc=Symbol("need line"),Sm=2,rc=class{lines=[];ended=!1;previous;spanActive=0;*peek(t=0){if(t>=Sm)throw new Error(`decoder lookahead exceeds ${Sm} classified lines`);for(;!this.ended&&this.lines.length<=t;){let r=yield dc;r===void 0?this.ended=!0:this.lines.push(r)}return this.lines[t]}*take(t){let r=yield*this.peek();if(r===void 0)throw new Error("decoder attempted to read past end of input");if(this.lines.shift(),t.strict&&this.spanActive>0&&r.blankBefore)throw B(r.number,"blank line inside a header span");return this.previous=r,r}lastNumber(t){return this.previous===void 0?t:this.previous.number}stop(){this.lines.length=0,this.ended=!0}};function Am(e,t){return $e(e,":",t)!==-1}function Cm(e,t){try{return Et(e,t)[0]}catch(r){if(e.startsWith('"'))throw r;return e}}function Om(e){let t=e?.maxDepth??1e3;return{indentSize:e?.indentSize??e?.indent??2,strict:e?.strict??!0,maxDepth:t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t))}}function*Dm(e){let t=new rc,r=yield*t.peek();if(r===void 0){yield{type:"startObject",line:1},yield{type:"endObject",line:1};return}if(r.depth!==0)throw B(r.number,"invalid indentation");if(yield*t.peek(1),r.content==="[]"){yield*t.take(e),yield{type:"startArray",length:0,line:r.number},yield{type:"endArray",line:r.number},yield*tc(t,e);return}let n=null,o=!1;try{n=sc(r.content,r.number)}catch(s){if(e.strict)throw s;o=!0}if(n!=null&&ka(n.fields,r.number,e),n!=null&&!o&&n.key===void 0){yield*t.take(e),n.keyed?yield*Im(t,r,n,e):yield*cc(t,r,n,e),yield*tc(t,e);return}if((n===null||o)&&!Am(r.content,r.number)&&(yield*t.peek(1))===void 0){yield*t.take(e),yield{type:"primitive",value:it(Dr(r.content),r.number),line:r.number};return}yield*Fm(t,0,r.number,e),yield*tc(t,e)}function*tc(e,t){let r=yield*e.peek();if(r!==void 0&&t.strict)throw B(r.number,"expected end of document");e.stop()}function*Fm(e,t,r,n){yield{type:"startObject",line:r};let o=new Set;for(;;){let s=yield*e.peek();if(s===void 0||s.depth<t)break;if(s.depth>t)throw B(s.number,"over-indented line");yield*e.take(n),yield*nc(e,s,s.content,t,n,o)}yield{type:"endObject",line:e.lastNumber(r)}}function*nc(e,t,r,n,o,s){let i=null;try{i=sc(r,t.number)}catch(c){if(o.strict)throw c;i=null}if(i!=null)if(ka(i.fields,t.number,o),i.key===void 0){if(o.strict)throw B(t.number,"keyless header is only valid at the root or as a list item");i=null}else{oc(s,i.key,t.number,o),yield{type:"key",key:i.key,line:t.number},i.keyed?yield*Im(e,{...t,depth:n},i,o):yield*cc(e,{...t,depth:n},i,o);return}let a=$e(r,":",t.number);if(a===-1)throw B(t.number,"expected key-value line");let l=Cm(Dr(r.slice(0,a)),t.number),d=Dr(r.slice(a+1));if(oc(s,l,t.number,o),yield{type:"key",key:l,line:t.number},d===""){let c=yield*e.peek();if(c!==void 0&&c.depth>n){if(c.depth!==n+1)throw B(c.number,"over-indented line");yield*Fm(e,n+1,c.number,o)}else yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}if(d==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}yield{type:"primitive",value:it(d,t.number),line:t.number}}function oc(e,t,r,n){if(e.has(t)&&n.strict)throw B(r,"duplicate object key");e.add(t)}function*cc(e,t,r,n){if(yield{type:"startArray",length:r.length,line:t.number},r.fields!==void 0){ac(r.fields,t.number,n),yield*mT(e,t,r,n);return}if(r.inline!==void 0){let i=lc(r.inline,r.delimiter,t.number);pc(i.length,r.length,t.number,"inline-form values",n);for(let a of i)yield{type:"primitive",value:it(a,t.number),line:t.number};yield{type:"endArray",line:t.number};return}let o=0;for(;;){let i=yield*e.peek();if(i===void 0||i.depth<=t.depth)break;if(i.depth!==t.depth+1)throw B(i.number,"over-indented line");if(!i.content.startsWith("- ")&&i.content!=="-")break;yield*e.take(n),o===0&&e.spanActive++,o++,yield*gT(e,i,n)}o>0&&e.spanActive--;let s=e.lastNumber(t.number);if(n.strict&&o!==r.length)throw B(s,`expected ${r.length} list items, but got ${o}`);yield{type:"endArray",line:s}}function*gT(e,t,r){if(t.content==="-"){yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}let n=Dr(t.content.slice(2));if(n==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}let o=null;try{o=sc(n,t.number)}catch(s){if(r.strict)throw s;o=null}if(o!=null&&o.key===void 0){if(ka(o.fields,t.number,r),o.keyed||o.fields!==void 0){if(r.strict)throw B(t.number,"keyless fields-bearing header is only valid at the root");yield{type:"primitive",value:it(n,t.number),line:t.number};return}yield*cc(e,t,o,r);return}if(o!=null&&o.key!==void 0||Am(n,t.number)){yield{type:"startObject",line:t.number};let s=new Set;for(yield*nc(e,t,n,t.depth+1,r,s);;){let i=yield*e.peek();if(i===void 0||i.depth!==t.depth+1||i.content.startsWith("- ")||i.content==="-")break;yield*e.take(r),yield*nc(e,i,i.content,t.depth+1,r,s)}yield{type:"endObject",line:e.lastNumber(t.number)};return}yield{type:"primitive",value:it(n,t.number),line:t.number}}function*mT(e,t,r,n){let o=r.fields,s=ic(o),i=t.depth+1,a=0;for(;;){let d=yield*e.peek();if(d===void 0||d.depth<=t.depth)break;if(d.depth!==i)throw B(d.number,"over-indented line");if(!hT(d.content,r.delimiter,d.number))break;yield*e.take(n),a===0&&e.spanActive++,a++;let c=lc(d.content,r.delimiter,d.number);pc(c.length,s,d.number,"row cells",n),yield*uc(o,c,{next:0},d.number)}a>0&&e.spanActive--;let l=e.lastNumber(t.number);if(n.strict&&a!==r.length)throw B(l,`expected ${r.length} tabular rows, but got ${a}`);yield{type:"endArray",line:l}}function hT(e,t,r){let n=$e(e,":",r);if(n===-1)return!0;let o=$e(e,t,r);return o===-1?!1:o<n}function*uc(e,t,r,n){yield{type:"startObject",line:n};for(let o of e)if(yield{type:"key",key:o.name,line:n},o.children===void 0){let s=t[r.next++]??"";yield{type:"primitive",value:it(s,n),line:n}}else yield*uc(o.children,t,r,n);yield{type:"endObject",line:n}}function*Im(e,t,r,n){let o=r.fields;ac(o,t.number,n);let s=ic(o),i=t.depth+1;yield{type:"startObject",line:t.number};let a=new Set,l=0;for(;;){let c=yield*e.peek();if(c===void 0||c.depth<=t.depth)break;if(c.depth!==i)throw B(c.number,"over-indented line");let u=$e(c.content,":",c.number);if(u===-1){if(n.strict)throw B(c.number,"expected a keyed entry row");yield*e.take(n);continue}yield*e.take(n),l===0&&e.spanActive++,l++;let p=Cm(Dr(c.content.slice(0,u)),c.number);oc(a,p,c.number,n),yield{type:"key",key:p,line:c.number};let g=lc(c.content.slice(u+1),r.delimiter,c.number);pc(g.length,s,c.number,"entry row cells",n),yield*uc(o,g,{next:0},c.number)}l>0&&e.spanActive--;let d=e.lastNumber(t.number);if(n.strict&&l!==r.length)throw B(d,`expected ${r.length} entry rows, but got ${l}`);yield{type:"endObject",line:d}}function pc(e,t,r,n,o){if(o.strict&&e!==t)throw B(r,`expected ${t} ${n}, but got ${e}`)}function Mm(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw B(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function ka(e,t,r,n=1){if(e!==void 0){Mm(n,t,r);for(let o of e)o.children!==void 0&&ka(o.children,t,r,n+1)}}function*Lm(e,t){let r=Om(t),n=new ba(r),o=dT(e,n),s=Dm(r),i=s.next();try{for(;!i.done;)if(i.value===dc){let a=o.next();i=s.next(a.done?void 0:a.value)}else yield i.value,i=s.next()}catch(a){throw $m(a,n)}finally{s.return(),o.return(void 0)}}async function*jm(e,t){let r=Om(t),n=new ba(r),o=cT(e,n),s=Dm(r),i=s.next();try{for(;!i.done;)if(i.value===dc){let a=await o.next();i=s.next(a.done?void 0:a.value)}else yield i.value,i=s.next()}catch(a){throw $m(a,n)}finally{s.return(),await o.return(void 0)}}function $m(e,t){return!(e instanceof en)||e.source!==void 0?e:new Mo(e.reason,{line:e.line,source:t.sourceByLine.get(e.line),cause:e})}function Bm(e,t){return Symbol.asyncIterator in e?jm(e,t):Lm(e,t)}function at(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wa(e){if(!at(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=yT(n,1);if(o===void 0)return e;pr(t,r,o)}return t}function yT(e,t){if(!at(e)||!bT(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw vt(t);let s=kT(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(at))throw Wm(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!vm.has(u)){if(!Array.isArray(p)||!p.every(at))throw vt(t);l.set(u,p)}if(l.size===0)throw vt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw fc(t);let f=d.get(u)??0,b=g[f];if(b===void 0)throw fc(t);return d.set(u,f+1),RT(n,u,a[p],b,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw fc(t);return c}function bT(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function kT(e,t,r){if(!e.startsWith("cycle("))throw vt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw vt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw vt(r);let a=s.split(",").map(c=>ET(c,r));if(a.some(c=>c===""))throw vt(r);let l=xT(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw vt(r);if(d!==t)throw Wm(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function RT(e,t,r,n,o){let s={};pr(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw vt(o);pr(s,i,a)}for(let[i,a]of Object.entries(wT(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw vt(o);pr(s,i,a)}return s}function wT(e,t){let r={};for(let[n,o]of Object.entries(e))_T(r,n.split("."),o,t);return Ra(r,t)}function _T(e,t,r,n){if(t.some(s=>s===""))throw vt(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],!at(o))throw vt(n)}}function Ra(e,t){return Array.isArray(e)?e.map(r=>Ra(r,t)):at(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw vt(t);return Ra(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Ra(n,t)])):e}function xT(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw vt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw vt(t);return r}function ET(e,t){try{return decodeURIComponent(e)}catch{throw vt(t)}}function Nm(e){return encodeURIComponent(e)}function vt(e){return B(e,"invalid cyclic array wire")}function Wm(e){return B(e,"cyclic array length mismatch")}function fc(e){return B(e,"cyclic array group length mismatch")}function _a(e){if(!at(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=vT(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)AT(n,o,s);return n.join("")}function vT(e){if(!Array.isArray(e)||e.length===0||!e.every(at))return;let t=ST(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=TT(r);if(n===void 0)return;let o=PT(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)&&!gc(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=OT(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 ST(e){return Em.find(t=>e.every(r=>typeof r[t]=="string"))}function TT(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(Nm).join(","),s=`cycle(${r.map(Nm).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function PT(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(!CT(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>Or(i[s])))break;r.push(s)}return r}function AT(e,t,r){e.push(Ie(t),`:
9
- `),e.push(" order: ",Je(r.order.encoded,Vn),`
10
- `),e.push(" discriminator: ",Je(r.discriminator,Vn),`
6
+ `)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};ZC=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,pu=/^redskilled-(?!mcp[.-])(.+)\.bundle\.min\.mjs$/,eO=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var qu=Pm((Hu,Uu)=>{(function(e,t){typeof Hu=="object"&&typeof Uu<"u"?Uu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Hu,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,D,R={}){var L,j,H;for(L in D)H=D[L],R[L]=(j=Q[L])!=null?j:H;return R},n=function(Q,D,R={}){var L,j;for(L in Q)j=Q[L],D[L]!==void 0&&(R[L]=j);return R},o={load:r,overwrite:n},s;s=class{constructor(D,R){this.incr=D,this.decr=R,this._first=null,this._last=null,this.length=0}push(D){var R;this.length++,typeof this.incr=="function"&&this.incr(),R={value:D,prev:this._last,next:null},this._last!=null?(this._last.next=R,this._last=R):this._first=this._last=R}shift(){var D;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),D=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,D}first(){if(this._first!=null)return this._first.value}getArray(){var D,R,L;for(D=this._first,L=[];D!=null;)L.push((R=D,D=D.next,R.value));return L}forEachShift(D){var R;for(R=this.shift();R!=null;)D(R),R=this.shift()}debug(){var D,R,L,j,H;for(D=this._first,H=[];D!=null;)H.push((R=D,D=D.next,{value:R.value,prev:(L=R.prev)!=null?L.value:void 0,next:(j=R.next)!=null?j.value:void 0}));return H}};var i=s,a;a=class{constructor(D){if(this.instance=D,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=(R,L)=>this._addListener(R,"many",L),this.instance.once=(R,L)=>this._addListener(R,"once",L),this.instance.removeAllListeners=(R=null)=>R!=null?delete this._events[R]:this._events={}}_addListener(D,R,L){var j;return(j=this._events)[D]==null&&(j[D]=[]),this._events[D].push({cb:L,status:R}),this.instance}listenerCount(D){return this._events[D]!=null?this._events[D].length:0}async trigger(D,...R){var L,j;try{return D!=="debug"&&this.trigger("debug",`Event triggered: ${D}`,R),this._events[D]==null?void 0:(this._events[D]=this._events[D].filter(function(H){return H.status!=="none"}),j=this._events[D].map(async H=>{var V,ee;if(H.status!=="none"){H.status==="once"&&(H.status="none");try{return ee=typeof H.cb=="function"?H.cb(...R):void 0,typeof ee?.then=="function"?await ee:ee}catch(_e){return V=_e,this.trigger("error",V),null}}}),(await Promise.all(j)).find(function(H){return H!=null}))}catch(H){return L=H,this.trigger("error",L),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(D){var R;this.Events=new c(this),this._length=0,this._lists=function(){var L,j,H;for(H=[],R=L=1,j=D;1<=j?L<=j:L>=j;R=1<=j?++L:--L)H.push(new d(()=>this.incr(),()=>this.decr()));return H}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(D){return this._lists[D.options.priority].push(D)}queued(D){return D!=null?this._lists[D].length:this._length}shiftAll(D){return this._lists.forEach(function(R){return R.forEachShift(D)})}getFirst(D=this._lists){var R,L,j;for(R=0,L=D.length;R<L;R++)if(j=D[R],j.length>0)return j;return[]}shiftLastFrom(D){return this.getFirst(this._lists.slice(D).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,m,w,_,O;_=10,m=5,O=o,y=f,w=class{constructor(D,R,L,j,H,V,ee,_e){this.task=D,this.args=R,this.rejectOnDrop=H,this.Events=V,this._states=ee,this.Promise=_e,this.options=O.load(L,j),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===j.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise(($e,Me)=>{this._resolve=$e,this._reject=Me}),this.retryCount=0}_sanitizePriority(D){var R;return R=~~D!==D?m:D,R<0?0:R>_-1?_-1:R}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:D,message:R="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(D??new y(R)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(D){var R;if(R=this._states.jobStatus(this.options.id),!(R===D||D==="DONE"&&R===null))throw new y(`Invalid job status ${R}, expected ${D}. 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(D,R){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:D,blocked:R})}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(D,R,L,j){var H,V,ee;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),V={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",V);try{if(ee=await(D!=null?D.schedule(this.options,this.task,...this.args):this.task(...this.args)),R())return this.doDone(V),await j(this.options,V),this._assertStatus("DONE"),this._resolve(ee)}catch(_e){return H=_e,this._onFailure(H,V,R,L,j)}}doExpire(D,R,L){var j,H;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),H={args:this.args,options:this.options,retryCount:this.retryCount},j=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(j,H,D,R,L)}async _onFailure(D,R,L,j,H){var V,ee;if(L())return V=await this.Events.trigger("failed",D,R),V!=null?(ee=~~V,this.Events.trigger("retry",`Retrying ${this.options.id} after ${ee} ms`,R),this.retryCount++,j(ee)):(this.doDone(R),await H(this.options,R),this._assertStatus("DONE"),this._reject(D))}doDone(D){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",D)}};var T=w,F,$,G;G=o,F=f,$=class{constructor(D,R,L){this.instance=D,this.storeOptions=R,this.clientId=this.instance._randomIndex(),G.load(L,L,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 D;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(D=this.heartbeat=setInterval(()=>{var R,L,j,H,V;if(H=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&H>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=H,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&H>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:R,reservoirIncreaseMaximum:j,reservoir:V}=this.storeOptions,this._lastReservoirIncrease=H,L=j!=null?Math.min(R,j-V):R,L>0))return this.storeOptions.reservoir+=L,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?D.unref():void 0:clearInterval(this.heartbeat)}async __publish__(D){return await this.yieldLoop(),this.instance.Events.trigger("message",D.toString())}async __disconnect__(D){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(D=0){return new this.Promise(function(R,L){return setTimeout(R,D)})}computePenalty(){var D;return(D=this.storeOptions.penalty)!=null?D:15*this.storeOptions.minTime||5e3}async __updateSettings__(D){return await this.yieldLoop(),G.overwrite(D,D,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__(D){return await this.yieldLoop(),this._nextRequest+this.timeout<D}computeCapacity(){var D,R;return{maxConcurrent:D,reservoir:R}=this.storeOptions,D!=null&&R!=null?Math.min(D-this._running,R):D!=null?D-this._running:R??null}conditionsCheck(D){var R;return R=this.computeCapacity(),R==null||D<=R}async __incrementReservoir__(D){var R;return await this.yieldLoop(),R=this.storeOptions.reservoir+=D,this.instance._drainAll(this.computeCapacity()),R}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(D){return this._unblockTime>=D}check(D,R){return this.conditionsCheck(D)&&this._nextRequest-R<=0}async __check__(D){var R;return await this.yieldLoop(),R=Date.now(),this.check(D,R)}async __register__(D,R,L){var j,H;return await this.yieldLoop(),j=Date.now(),this.conditionsCheck(R)?(this._running+=R,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=R),H=Math.max(this._nextRequest-j,0),this._nextRequest=j+H+this.storeOptions.minTime,{success:!0,wait:H,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(D,R){var L,j,H;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&R>this.storeOptions.maxConcurrent)throw new F(`Impossible to add a job having a weight of ${R} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return j=Date.now(),H=this.storeOptions.highWater!=null&&D===this.storeOptions.highWater&&!this.check(R,j),L=this.strategyIsBlock()&&(H||this.isBlocked(j)),L&&(this._unblockTime=j+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:H,blocked:L,strategy:this.storeOptions.strategy}}async __free__(D,R){return await this.yieldLoop(),this._running-=R,this._done+=R,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var W=$,I,U;I=f,U=class{constructor(D){this.status=D,this._jobs={},this.counts=this.status.map(function(){return 0})}next(D){var R,L;if(R=this._jobs[D],L=R+1,R!=null&&L<this.status.length)return this.counts[R]--,this.counts[L]++,this._jobs[D]++;if(R!=null)return this.counts[R]--,delete this._jobs[D]}start(D){var R;return R=0,this._jobs[D]=R,this.counts[R]++}remove(D){var R;return R=this._jobs[D],R!=null&&(this.counts[R]--,delete this._jobs[D]),R!=null}jobStatus(D){var R;return(R=this.status[this._jobs[D]])!=null?R:null}statusJobs(D){var R,L,j,H,V;if(D!=null){if(L=this.status.indexOf(D),L<0)throw new I(`status must be one of ${this.status.join(", ")}`);j=this._jobs,H=[];for(R in j)V=j[R],V===L&&H.push(R);return H}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((D,R,L)=>(D[this.status[L]]=R,D),{})}};var q=U,oe,ae;oe=i,ae=class{constructor(D,R){this.schedule=this.schedule.bind(this),this.name=D,this.Promise=R,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var D,R,L,j,H,V,ee;if(this._running<1&&this._queue.length>0)return this._running++,{task:ee,args:D,resolve:H,reject:j}=this._queue.shift(),R=await async function(){try{return V=await ee(...D),function(){return H(V)}}catch(_e){return L=_e,function(){return j(L)}}}(),this._running--,this._tryToRun(),R()}schedule(D,...R){var L,j,H;return H=j=null,L=new this.Promise(function(V,ee){return H=V,j=ee}),this._queue.push({task:D,args:R,resolve:H,reject:j}),this._tryToRun(),L}};var se=ae,Z="2.19.5",pe={version:Z},Ce=Object.freeze({version:Z,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Re=()=>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."),ce,xe,Oe,ve,we,Se;Se=o,ce=l,ve=Ee,Oe=Re,we=J,xe=function(){class Q{constructor(R={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=R,Se.load(this.limiterOptions,this.defaults,this),this.Events=new ce(this),this.instances={},this.Bottleneck=Je,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 Oe(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(R=""){var L;return(L=this.instances[R])!=null?L:(()=>{var j;return j=this.instances[R]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${R}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",j,R),j})()}async deleteKey(R=""){var L,j;return j=this.instances[R],this.connection&&(L=await this.connection.__runCommand__(["del",...we.allKeys(`${this.id}-${R}`)])),j!=null&&(delete this.instances[R],await j.disconnect()),j!=null||L>0}limiters(){var R,L,j,H;L=this.instances,j=[];for(R in L)H=L[R],j.push({key:R,limiter:H});return j}keys(){return Object.keys(this.instances)}async clusterKeys(){var R,L,j,H,V,ee,_e,$e,Me;if(this.connection==null)return this.Promise.resolve(this.keys());for(ee=[],R=null,Me=`b_${this.id}-`.length,L=9;R!==0;)for([$e,j]=await this.connection.__runCommand__(["scan",R??0,"match",`b_${this.id}-*_settings`,"count",1e4]),R=~~$e,H=0,_e=j.length;H<_e;H++)V=j[H],ee.push(V.slice(Me,-L));return ee}_startAutoCleanup(){var R;return clearInterval(this.interval),typeof(R=this.interval=setInterval(async()=>{var L,j,H,V,ee,_e;ee=Date.now(),H=this.instances,V=[];for(j in H){_e=H[j];try{await _e._store.__groupCheck__(ee)?V.push(this.deleteKey(j)):V.push(void 0)}catch($e){L=$e,V.push(_e.Events.trigger("error",L))}}return V},this.timeout/2)).unref=="function"?R.unref():void 0}updateSettings(R={}){if(Se.overwrite(R,this.defaults,this),Se.overwrite(R,R,this.limiterOptions),R.timeout!=null)return this._startAutoCleanup()}disconnect(R=!0){var L;if(!this.sharedConnection)return(L=this.connection)!=null?L.disconnect(R):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var me=xe,ie,be,Fe;Fe=o,be=l,ie=function(){class Q{constructor(R={}){this.options=R,Fe.load(this.options,this.defaults,this),this.Events=new be(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((R,L)=>this._resolve=R)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(R){var L;return this._arr.push(R),L=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),L}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var ot=ie,Yt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),fn=t(Ce),gn,Do,le,Qt,gt,st,Tt,mt,bt,Pt,_t,Te=[].splice;st=10,Do=5,_t=o,Tt=p,Qt=T,gt=W,mt=Yt,le=l,bt=q,Pt=se,gn=function(){class Q{constructor(R={},...L){var j,H;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(R,L),_t.load(R,this.instanceDefaults,this),this._queues=new Tt(st),this._scheduled={},this._states=new bt(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new le(this),this._submitLock=new Pt("submit",this.Promise),this._registerLock=new Pt("register",this.Promise),H=_t.load(R,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return j=_t.load(R,this.redisStoreDefaults,{}),new mt(this,H,j);if(this.datastore==="local")return j=_t.load(R,this.localStoreDefaults,{}),new gt(this,H,j);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var V;return(V=this._store.heartbeat)!=null&&typeof V.ref=="function"?V.ref():void 0}),this._queues.on("zero",()=>{var V;return(V=this._store.heartbeat)!=null&&typeof V.unref=="function"?V.unref():void 0})}_validateOptions(R,L){if(!(R!=null&&typeof R=="object"&&L.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(R){return this._store.__publish__(R)}disconnect(R=!0){return this._store.__disconnect__(R)}chain(R){return this._limiter=R,this}queued(R){return this._queues.queued(R)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(R){return this._states.jobStatus(R)}jobs(R){return this._states.statusJobs(R)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(R=1){return this._store.__check__(R)}_clearGlobalState(R){return this._scheduled[R]!=null?(clearTimeout(this._scheduled[R].expiration),delete this._scheduled[R],!0):!1}async _free(R,L,j,H){var V,ee;try{if({running:ee}=await this._store.__free__(R,j.weight),this.Events.trigger("debug",`Freed ${j.id}`,H),ee===0&&this.empty())return this.Events.trigger("idle")}catch(_e){return V=_e,this.Events.trigger("error",V)}}_run(R,L,j){var H,V,ee;return L.doRun(),H=this._clearGlobalState.bind(this,R),ee=this._run.bind(this,R,L),V=this._free.bind(this,R,L),this._scheduled[R]={timeout:setTimeout(()=>L.doExecute(this._limiter,H,ee,V),j),expiration:L.options.expiration!=null?setTimeout(function(){return L.doExpire(H,ee,V)},j+L.options.expiration):void 0,job:L}}_drainOne(R){return this._registerLock.schedule(()=>{var L,j,H,V,ee;return this.queued()===0?this.Promise.resolve(null):(ee=this._queues.getFirst(),{options:V,args:L}=H=ee.first(),R!=null&&V.weight>R?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${V.id}`,{args:L,options:V}),j=this._randomIndex(),this._store.__register__(j,V.weight,V.expiration).then(({success:_e,wait:$e,reservoir:Me})=>{var pr;return this.Events.trigger("debug",`Drained ${V.id}`,{success:_e,args:L,options:V}),_e?(ee.shift(),pr=this.empty(),pr&&this.Events.trigger("empty"),Me===0&&this.Events.trigger("depleted",pr),this._run(j,H,$e),this.Promise.resolve(V.weight)):this.Promise.resolve(null)})))})}_drainAll(R,L=0){return this._drainOne(R).then(j=>{var H;return j!=null?(H=R!=null?R-j:R,this._drainAll(H,L+j)):this.Promise.resolve(L)}).catch(j=>this.Events.trigger("error",j))}_dropAllQueued(R){return this._queues.shiftAll(function(L){return L.doDrop({message:R})})}stop(R={}){var L,j;return R=_t.load(R,this.stopDefaults),j=H=>{var V;return V=()=>{var ee;return ee=this._states.counts,ee[0]+ee[1]+ee[2]+ee[3]===H},new this.Promise((ee,_e)=>V()?ee():this.on("done",()=>{if(V())return this.removeAllListeners("done"),ee()}))},L=R.dropWaitingJobs?(this._run=function(H,V){return V.doDrop({message:R.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var H,V,ee;V=this._scheduled;for(H in V)ee=V[H],this.jobStatus(ee.job.options.id)==="RUNNING"&&(clearTimeout(ee.timeout),clearTimeout(ee.expiration),ee.job.doDrop({message:R.dropErrorMessage}));return this._dropAllQueued(R.dropErrorMessage),j(0)}))):this.schedule({priority:st-1,weight:0},()=>j(1)),this._receive=function(H){return H._reject(new Q.prototype.BottleneckError(R.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),L}async _addToQueue(R){var L,j,H,V,ee,_e,$e;({args:L,options:V}=R);try{({reachedHWM:ee,blocked:j,strategy:$e}=await this._store.__submit__(this.queued(),V.weight))}catch(Me){return H=Me,this.Events.trigger("debug",`Could not queue ${V.id}`,{args:L,options:V,error:H}),R.doDrop({error:H}),!1}return j?(R.doDrop(),!0):ee&&(_e=$e===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(V.priority):$e===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(V.priority+1):$e===Q.prototype.strategy.OVERFLOW?R:void 0,_e?.doDrop(),_e==null||$e===Q.prototype.strategy.OVERFLOW)?(_e==null&&R.doDrop(),ee):(R.doQueue(ee,j),this._queues.push(R),await this._drainAll(),ee)}_receive(R){return this._states.jobStatus(R.options.id)!=null?(R._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${R.options.id})`)),!1):(R.doReceive(),this._submitLock.schedule(this._addToQueue,R))}submit(...R){var L,j,H,V,ee,_e,$e;return typeof R[0]=="function"?(ee=R,[j,...R]=ee,[L]=Te.call(R,-1),V=_t.load({},this.jobDefaults)):(_e=R,[V,j,...R]=_e,[L]=Te.call(R,-1),V=_t.load(V,this.jobDefaults)),$e=(...Me)=>new this.Promise(function(pr,$n){return j(...Me,function(...fr){return(fr[0]!=null?$n:pr)(fr)})}),H=new Qt($e,R,V,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),H.promise.then(function(Me){return typeof L=="function"?L(...Me):void 0}).catch(function(Me){return Array.isArray(Me)?typeof L=="function"?L(...Me):void 0:typeof L=="function"?L(Me):void 0}),this._receive(H)}schedule(...R){var L,j,H;return typeof R[0]=="function"?([H,...R]=R,j={}):[j,H,...R]=R,L=new Qt(H,R,j,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(L),L.promise}wrap(R){var L,j;return L=this.schedule.bind(this),j=function(...H){return L(R.bind(this),...H)},j.withOptions=function(H,...V){return L(H,R,...V)},j}async updateSettings(R={}){return await this._store.__updateSettings__(_t.overwrite(R,this.storeDefaults)),_t.overwrite(R,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(R=0){return this._store.__incrementReservoir__(R)}}return Q.default=Q,Q.Events=le,Q.version=Q.prototype.version=fn.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=me,Q.RedisConnection=Q.prototype.RedisConnection=Ee,Q.IORedisConnection=Q.prototype.IORedisConnection=Re,Q.Batcher=Q.prototype.Batcher=ot,Q.prototype.jobDefaults={priority:Do,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 Je=gn,At=Je;return At})});var q0=Pm(ml=>{"use strict";Object.defineProperty(ml,"__esModule",{value:!0});ml.format=P1;ml.parse=A1;var v1=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,N0=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,S1=/[\\"]/g,T1=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,G0=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function P1(e){let{type:t,parameters:r}=e;if(!t||!T1.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!N0.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${F1(r[o])}`}return n}function A1(e,t){let r=e.length,n=Qu(e,0,r),o=n;n=Yu(e,n,r);let s=Xu(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new G0:D1(e,n,r);return{type:i,parameters:a}}var W0=32,H0=9,U0=59,C1=61,B0=34,O1=92;function D1(e,t,r){let n=new G0;e:for(;t<r;){t=Qu(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===U0)continue e;if(s===C1){let i=Xu(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Qu(e,t+1,r),t<r&&e.charCodeAt(t)===B0){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===B0){t=Yu(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===O1&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Yu(e,t,r),n[a]===void 0){let d=Xu(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Yu(e,t,r){for(;t<r&&e.charCodeAt(t)!==U0;)t++;return t}function Qu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==W0&&n!==H0)break;t++}return t}function Xu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==W0&&n!==H0)break;r--}return r}function F1(e){if(N0.test(e))return e;if(v1.test(e))return`"${e.replace(S1,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as F5}from"node:child_process";import{homedir as ca}from"node:os";import{join as da}from"node:path";var jo=class extends SyntaxError{line;source;reason;constructor(t,r={}){let n=r.line===void 0||r.line===0?"":`Line ${r.line}: `;super(n+t,r.cause===void 0?void 0:{cause:r.cause}),this.name="ToonDecodeError",this.line=r.line,this.source=r.source,this.reason=t}},en=class extends SyntaxError{line;source;reason;constructor(t,r,n={}){super(t===0?r:`line ${t}: ${r}`,n.cause===void 0?void 0:{cause:n.cause}),this.name="ToonError",this.line=t,this.source=n.source,this.reason=r}},Kn=class extends Error{line;reason;constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function N(e,t,r={}){return new en(e,t,r)}function Pe(e,t){return new Kn(e,t)}function $o(e){return e instanceof Kn?e:e instanceof en?new Kn(e.line,e.reason):new Kn(0,String(e&&e.message?e.message:e))}var pT=/(?:^\uFEFF?|\n) *#/,nc=class{value;constructor(t){if(pT.test(t))throw new TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(t)}`);this.value=t}};function Vn(e){return e instanceof nc}var Ye=",";function _a(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 Cr(e){return N(e,"invalid quoted string")}function lt(e,t){if(e==="")return"";if(e.startsWith('"'))return Om(e,t);if(e.includes('"'))throw Cr(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:fT(e)?Number(e):e}function xt(e,t){let r=e.trim();if(r.startsWith('"'))return[Om(r,t),!0];if(r.includes('"')||/\s/.test(r))throw N(t,"expected non-empty field name");return[r,!1]}var Am=/["\\\u0000-\u0008\u000a-\u001f]/g;function Om(e,t){if(e.charCodeAt(0)!==34)throw Cr(t);let r="",n=1;for(;n<e.length;){Am.lastIndex=n;let o=Am.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw Cr(t)}if(o[0]!=="\\")throw Cr(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 Cr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Cr(t);r+=String.fromCharCode(a),n+=4;break}default:throw Cr(t)}}throw Cr(t)}function Dm(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 Cr(r);t=o+2;continue}if(n===-1)throw Cr(r);return n+1}}function Zt(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=Dm(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function Be(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=Dm(e,o+1,r)}return-1}function fT(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function gT(e){return/^[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function mT(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw N(0,"number is not representable in TOON");return String(e)}function Or(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Qe(e,t){if(Vn(e))return e.value;if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return mT(e);if(typeof e=="string")return yT(e,t);throw N(0,"not a primitive")}function hT(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function Ie(e){return hT(e)?e:xa(e)}function yT(e,t){return oc(e,t)?xa(e):e}function oc(e,t){return e===""||/^[ \t]|[ \t]$/.test(e)||e==="true"||e==="false"||e==="null"||gT(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")||e.startsWith("#")}var Cm=/["\\\u0000-\u001f]/g;function xa(e){return`"${Fm(e)}"`}function Fm(e){let t="",r=0;Cm.lastIndex=0;let n;for(;(n=Cm.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 mr(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Im=["type","kind","event"],zn="|",Mm=new Set(["order","discriminator","rows","common"]);function bT(e){let t=0;for(;t<e.length&&e[t]===" ";)t++;return e[t]==="#"}var Ea=class{ctx;sourceByLine=new Map;number=0;blankPending=!1;firstLine=!0;constructor(t){this.ctx=t}push(t){let r=t;if(this.number++,this.sourceByLine.set(this.number,t),this.firstLine&&(r.startsWith("\uFEFF")&&(r=r.slice(1)),this.firstLine=!1),r.endsWith("\r")&&(r=r.slice(0,-1)),r=r.replace(/ +$/,""),r.trim()===""){this.blankPending=!0;return}if(bT(r))return;let n=0,o=0,s=0;for(;n<r.length&&(r[n]===" "||r[n]===" ");){if(r[n]===" "){if(this.ctx.strict)throw N(this.number,"tab used as indentation");o++}else s++;n++}let i;if(s%this.ctx.indentSize===0)i=s/this.ctx.indentSize;else{if(this.ctx.strict)throw N(this.number,"invalid indentation");i=Math.floor(s/this.ctx.indentSize)}i+=o,qm(i,this.number,this.ctx);let a={number:this.number,depth:i,content:r.slice(n),blankBefore:this.blankPending};return this.blankPending=!1,a}};function*kT(e,t){for(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}async function*RT(e,t){for await(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}var wT=/^(0|[1-9]\d*)$/;function dc(e,t){let r=Be(e,"[",t);if(r===-1)return null;let n=Be(e,":",t);if(n!==-1&&n<r)return null;let o=e.slice(0,r);if(o!==""&&/\s$/.test(o))throw N(t,"whitespace between key and bracket segment");let s=e.indexOf("]",r);if(s===-1)return null;let i=e.slice(r+1,s),a=!1,l=",",d=i.indexOf(":");if(d!==-1){let y=i.slice(d+1);if(i=i.slice(0,d),a=!0,y===" "||y==="|")l=y;else if(y!=="")throw N(t,"malformed bracket segment")}else(i.endsWith(" ")||i.endsWith("|"))&&(l=i.slice(-1),i=i.slice(0,-1));if(!wT.test(i))throw N(t,"malformed array header length");let c=Number(i),u=e.slice(s+1),p;if(u.startsWith("{")){let y=jm(u,t);p=$m(u.slice(1,y),l,t),u=u.slice(y+1)}if(a&&p===void 0)throw N(t,"keyed header requires a field list");if(!u.startsWith(":"))throw N(t,"expected colon after array header");let g=Dr(u.slice(1));if((p!==void 0||a)&&g!=="")throw N(t,"unexpected content after fields-bearing header colon");return{key:o===""?void 0:xt(o,t)[0],length:c,delimiter:l,fields:p,keyed:a,inline:g===""?void 0:g}}function jm(e,t){let r=0,n=!1;for(let o=0;o<e.length;o++){let s=e[o];if(n){s==="\\"?o++:s==='"'&&(n=!1);continue}if(s==='"')n=!0;else if(s==="{")r++;else if(s==="}"&&(r--,r===0))return o}throw N(t,"malformed tabular header fields")}function $m(e,t,r){let n=[],o=0,s=0,i=!1,a=l=>{n.push(_T(l,t,r))};for(let l=0;l<e.length;l++){let d=e[l];if(i){d==="\\"?l++:d==='"'&&(i=!1);continue}d==='"'?i=!0:d==="{"?s++:d==="}"?s--:d===t&&s===0&&(a(e.slice(o,l)),o=l+1)}return a(e.slice(o)),n}function _T(e,t,r){let n=Dr(e);if(n==="")throw N(r,"empty field entry in header");let o=n.startsWith('"')?n.indexOf("{",xT(n,r)+1):n.indexOf("{");if(o===-1)return{name:xt(n,r)[0]};let s=jm(n.slice(o),r)+o;if(s!==n.length-1)throw N(r,"malformed tabular header fields");let i=$m(n.slice(o+1,s),t,r);if(i.length===0)throw N(r,"empty field entry in header");return{name:xt(n.slice(0,o),r)[0],children:i}}function xT(e,t){for(let r=1;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]==='"')return r;throw N(t,"invalid quoted string")}function cc(e){let t=0;for(let r of e)t+=r.children===void 0?1:cc(r.children);return t}function uc(e,t,r){let n=new Set;for(let o of e){if(n.has(o.name)&&r.strict)throw N(t,"duplicate field name in header");n.add(o.name),o.children!==void 0&&uc(o.children,t,r)}}function Dr(e){let t=0,r=e.length;for(;t<r&&e[t]===" ";)t++;for(;r>t&&e[r-1]===" ";)r--;return e.slice(t,r)}function pc(e,t,r){if(Dr(e)==="")return[];let n=[],o=0,s=!1;for(let i=0;i<e.length;i++){let a=e[i];if(s){a==="\\"?i++:a==='"'&&(s=!1);continue}a==='"'?s=!0:a===t&&(n.push(Dr(e.slice(o,i))),o=i+1)}return n.push(Dr(e.slice(o))),n}var fc=Symbol("need line"),Lm=2,ic=class{lines=[];ended=!1;previous;spanActive=0;*peek(t=0){if(t>=Lm)throw new Error(`decoder lookahead exceeds ${Lm} classified lines`);for(;!this.ended&&this.lines.length<=t;){let r=yield fc;r===void 0?this.ended=!0:this.lines.push(r)}return this.lines[t]}*take(t){let r=yield*this.peek();if(r===void 0)throw new Error("decoder attempted to read past end of input");if(this.lines.shift(),t.strict&&this.spanActive>0&&r.blankBefore)throw N(r.number,"blank line inside a header span");return this.previous=r,r}lastNumber(t){return this.previous===void 0?t:this.previous.number}stop(){this.lines.length=0,this.ended=!0}};function Bm(e,t){return Be(e,":",t)!==-1}function Nm(e,t){try{return xt(e,t)[0]}catch(r){if(e.startsWith('"'))throw r;return e}}function Gm(e){let t=e?.maxDepth??1e3;return{indentSize:e?.indentSize??e?.indent??2,strict:e?.strict??!0,maxDepth:t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t))}}function*Wm(e){let t=new ic,r=yield*t.peek();if(r===void 0){yield{type:"startObject",line:1},yield{type:"endObject",line:1};return}if(r.depth!==0)throw N(r.number,"invalid indentation");if(yield*t.peek(1),r.content==="[]"){yield*t.take(e),yield{type:"startArray",length:0,line:r.number},yield{type:"endArray",line:r.number},yield*sc(t,e);return}let n=null,o=!1;try{n=dc(r.content,r.number)}catch(s){if(e.strict)throw s;o=!0}if(n!=null&&va(n.fields,r.number,e),n!=null&&!o&&n.key===void 0){yield*t.take(e),n.keyed?yield*Um(t,r,n,e):yield*gc(t,r,n,e),yield*sc(t,e);return}if((n===null||o)&&!Bm(r.content,r.number)&&(yield*t.peek(1))===void 0){yield*t.take(e),yield{type:"primitive",value:lt(Dr(r.content),r.number),line:r.number};return}yield*Hm(t,0,r.number,e),yield*sc(t,e)}function*sc(e,t){let r=yield*e.peek();if(r!==void 0&&t.strict)throw N(r.number,"expected end of document");e.stop()}function*Hm(e,t,r,n){yield{type:"startObject",line:r};let o=new Set;for(;;){let s=yield*e.peek();if(s===void 0||s.depth<t)break;if(s.depth>t)throw N(s.number,"over-indented line");yield*e.take(n),yield*ac(e,s,s.content,t,n,o)}yield{type:"endObject",line:e.lastNumber(r)}}function*ac(e,t,r,n,o,s){let i=null;try{i=dc(r,t.number)}catch(c){if(o.strict)throw c;i=null}if(i!=null)if(va(i.fields,t.number,o),i.key===void 0){if(o.strict)throw N(t.number,"keyless header is only valid at the root or as a list item");i=null}else{lc(s,i.key,t.number,o),yield{type:"key",key:i.key,line:t.number},i.keyed?yield*Um(e,{...t,depth:n},i,o):yield*gc(e,{...t,depth:n},i,o);return}let a=Be(r,":",t.number);if(a===-1)throw N(t.number,"expected key-value line");let l=Nm(Dr(r.slice(0,a)),t.number),d=Dr(r.slice(a+1));if(lc(s,l,t.number,o),yield{type:"key",key:l,line:t.number},d===""){let c=yield*e.peek();if(c!==void 0&&c.depth>n){if(c.depth!==n+1)throw N(c.number,"over-indented line");yield*Hm(e,n+1,c.number,o)}else yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}if(d==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}yield{type:"primitive",value:lt(d,t.number),line:t.number}}function lc(e,t,r,n){if(e.has(t)&&n.strict)throw N(r,"duplicate object key");e.add(t)}function*gc(e,t,r,n){if(yield{type:"startArray",length:r.length,line:t.number},r.fields!==void 0){uc(r.fields,t.number,n),yield*vT(e,t,r,n);return}if(r.inline!==void 0){let i=pc(r.inline,r.delimiter,t.number);hc(i.length,r.length,t.number,"inline-form values",n);for(let a of i)yield{type:"primitive",value:lt(a,t.number),line:t.number};yield{type:"endArray",line:t.number};return}let o=0;for(;;){let i=yield*e.peek();if(i===void 0||i.depth<=t.depth)break;if(i.depth!==t.depth+1)throw N(i.number,"over-indented line");if(!i.content.startsWith("- ")&&i.content!=="-")break;yield*e.take(n),o===0&&e.spanActive++,o++,yield*ET(e,i,n)}o>0&&e.spanActive--;let s=e.lastNumber(t.number);if(n.strict&&o!==r.length)throw N(s,`expected ${r.length} list items, but got ${o}`);yield{type:"endArray",line:s}}function*ET(e,t,r){if(t.content==="-"){yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}let n=Dr(t.content.slice(2));if(n==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}let o=null;try{o=dc(n,t.number)}catch(s){if(r.strict)throw s;o=null}if(o!=null&&o.key===void 0){if(va(o.fields,t.number,r),o.keyed||o.fields!==void 0){if(r.strict)throw N(t.number,"keyless fields-bearing header is only valid at the root");yield{type:"primitive",value:lt(n,t.number),line:t.number};return}yield*gc(e,t,o,r);return}if(o!=null&&o.key!==void 0||Bm(n,t.number)){yield{type:"startObject",line:t.number};let s=new Set;for(yield*ac(e,t,n,t.depth+1,r,s);;){let i=yield*e.peek();if(i===void 0||i.depth!==t.depth+1||i.content.startsWith("- ")||i.content==="-")break;yield*e.take(r),yield*ac(e,i,i.content,t.depth+1,r,s)}yield{type:"endObject",line:e.lastNumber(t.number)};return}yield{type:"primitive",value:lt(n,t.number),line:t.number}}function*vT(e,t,r,n){let o=r.fields,s=cc(o),i=t.depth+1,a=0;for(;;){let d=yield*e.peek();if(d===void 0||d.depth<=t.depth)break;if(d.depth!==i)throw N(d.number,"over-indented line");if(!ST(d.content,r.delimiter,d.number))break;yield*e.take(n),a===0&&e.spanActive++,a++;let c=pc(d.content,r.delimiter,d.number);hc(c.length,s,d.number,"row cells",n),yield*mc(o,c,{next:0},d.number)}a>0&&e.spanActive--;let l=e.lastNumber(t.number);if(n.strict&&a!==r.length)throw N(l,`expected ${r.length} tabular rows, but got ${a}`);yield{type:"endArray",line:l}}function ST(e,t,r){let n=Be(e,":",r);if(n===-1)return!0;let o=Be(e,t,r);return o===-1?!1:o<n}function*mc(e,t,r,n){yield{type:"startObject",line:n};for(let o of e)if(yield{type:"key",key:o.name,line:n},o.children===void 0){let s=t[r.next++]??"";yield{type:"primitive",value:lt(s,n),line:n}}else yield*mc(o.children,t,r,n);yield{type:"endObject",line:n}}function*Um(e,t,r,n){let o=r.fields;uc(o,t.number,n);let s=cc(o),i=t.depth+1;yield{type:"startObject",line:t.number};let a=new Set,l=0;for(;;){let c=yield*e.peek();if(c===void 0||c.depth<=t.depth)break;if(c.depth!==i)throw N(c.number,"over-indented line");let u=Be(c.content,":",c.number);if(u===-1){if(n.strict)throw N(c.number,"expected a keyed entry row");yield*e.take(n);continue}yield*e.take(n),l===0&&e.spanActive++,l++;let p=Nm(Dr(c.content.slice(0,u)),c.number);lc(a,p,c.number,n),yield{type:"key",key:p,line:c.number};let g=pc(c.content.slice(u+1),r.delimiter,c.number);hc(g.length,s,c.number,"entry row cells",n),yield*mc(o,g,{next:0},c.number)}l>0&&e.spanActive--;let d=e.lastNumber(t.number);if(n.strict&&l!==r.length)throw N(d,`expected ${r.length} entry rows, but got ${l}`);yield{type:"endObject",line:d}}function hc(e,t,r,n,o){if(o.strict&&e!==t)throw N(r,`expected ${t} ${n}, but got ${e}`)}function qm(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw N(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function va(e,t,r,n=1){if(e!==void 0){qm(n,t,r);for(let o of e)o.children!==void 0&&va(o.children,t,r,n+1)}}function*Km(e,t){let r=Gm(t),n=new Ea(r),o=kT(e,n),s=Wm(r),i=s.next();try{for(;!i.done;)if(i.value===fc){let a=o.next();i=s.next(a.done?void 0:a.value)}else yield i.value,i=s.next()}catch(a){throw zm(a,n)}finally{s.return(),o.return(void 0)}}async function*Vm(e,t){let r=Gm(t),n=new Ea(r),o=RT(e,n),s=Wm(r),i=s.next();try{for(;!i.done;)if(i.value===fc){let a=await o.next();i=s.next(a.done?void 0:a.value)}else yield i.value,i=s.next()}catch(a){throw zm(a,n)}finally{s.return(),await o.return(void 0)}}function zm(e,t){return!(e instanceof en)||e.source!==void 0?e:new jo(e.reason,{line:e.line,source:t.sourceByLine.get(e.line),cause:e})}function Jm(e,t){return Symbol.asyncIterator in e?Vm(e,t):Km(e,t)}function dt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ta(e){if(!dt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=TT(n,1);if(o===void 0)return e;mr(t,r,o)}return t}function TT(e,t){if(!dt(e)||!PT(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw Et(t);let s=AT(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(dt))throw Xm(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Mm.has(u)){if(!Array.isArray(p)||!p.every(dt))throw Et(t);l.set(u,p)}if(l.size===0)throw Et(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw yc(t);let f=d.get(u)??0,y=g[f];if(y===void 0)throw yc(t);return d.set(u,f+1),CT(n,u,a[p],y,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw yc(t);return c}function PT(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function AT(e,t,r){if(!e.startsWith("cycle("))throw Et(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw Et(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw Et(r);let a=s.split(",").map(c=>IT(c,r));if(a.some(c=>c===""))throw Et(r);let l=FT(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw Et(r);if(d!==t)throw Xm(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function CT(e,t,r,n,o){let s={};mr(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw Et(o);mr(s,i,a)}for(let[i,a]of Object.entries(OT(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw Et(o);mr(s,i,a)}return s}function OT(e,t){let r={};for(let[n,o]of Object.entries(e))DT(r,n.split("."),o,t);return Sa(r,t)}function DT(e,t,r,n){if(t.some(s=>s===""))throw Et(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],!dt(o))throw Et(n)}}function Sa(e,t){return Array.isArray(e)?e.map(r=>Sa(r,t)):dt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw Et(t);return Sa(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Sa(n,t)])):e}function FT(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw Et(t);let r=Number(e);if(!Number.isSafeInteger(r))throw Et(t);return r}function IT(e,t){try{return decodeURIComponent(e)}catch{throw Et(t)}}function Ym(e){return encodeURIComponent(e)}function Et(e){return N(e,"invalid cyclic array wire")}function Xm(e){return N(e,"cyclic array length mismatch")}function yc(e){return N(e,"cyclic array group length mismatch")}function Pa(e){if(!dt(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=MT(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)BT(n,o,s);return n.join("")}function MT(e){if(!Array.isArray(e)||e.length===0||!e.every(dt))return;let t=LT(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=jT(r);if(n===void 0)return;let o=$T(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)&&!bc(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=GT(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 LT(e){return Im.find(t=>e.every(r=>typeof r[t]=="string"))}function jT(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(Ym).join(","),s=`cycle(${r.map(Ym).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function $T(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(!NT(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>Or(i[s])))break;r.push(s)}return r}function BT(e,t,r){e.push(Ie(t),`:
9
+ `),e.push(" order: ",Qe(r.order.encoded,zn),`
10
+ `),e.push(" discriminator: ",Qe(r.discriminator,zn),`
11
11
  `),e.push(" rows: ",String(r.rows.length),`
12
- `),r.common.length>0&&Gm(e,"common",r.common,r.commonRows);for(let n of r.groups)Gm(e,n.label,n.fields,n.rows)}function Gm(e,t,r,n){e.push(" ",Ie(t),"[",String(n.length),Vn,"]{",r.map(Ie).join(Vn),`}:
13
- `);for(let o of n)e.push(" ",r.map(s=>Je(o[s],Vn)).join(Vn),`
14
- `)}function CT(e){return e!==""&&mc(e)}function gc(e,t,r,n=new Set){if(!mc(t))return!1;if(Or(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)=>gc(s,`${t}.${i}`,r,n));return n.delete(e),o}if(at(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&gc(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function OT(e){let t=Object.keys(e[0]??{});if(e.every(r=>DT(Object.keys(r),t)))return t.every(mc)?t:void 0}function DT(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function mc(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function Hm(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 Um(e,t){let r=[],n=!1;return ha(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 B(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw B(i,"invalid indentation");let l=Math.floor(a/t.indent);Fr(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function Fr(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw B(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Ks(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,Fr(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function jo(e,t){let r=e[t]??e[e.length-1];return B(r===void 0?1:r.number,"array length mismatch")}function xa(e,t){if(t===-1)throw B(0,"array header missing colon");let r=e.slice(0,t),n=$e(r,"[",0);if(n===-1)throw B(0,"invalid array header");let o,s;try{[o,s]=Et(r.slice(0,n),0)}catch{throw B(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw B(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 B(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 B(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=IT(p.slice(1,-1),u),g=yc(f)}catch(b){throw B(0,b.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw B(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function qm(e){let t=$e(e,"{",0);if(t===-1||!e.endsWith("}"))throw B(0,"invalid keyed map header");let r,n;try{[r,n]=Et(e.slice(0,t),0)}catch{throw B(0,"invalid keyed map header")}if(r===""&&!n)throw B(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=FT(o,s,s)}catch(a){throw B(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function FT(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 B(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]=Et(e.slice(u,o),0);if(p===""&&!g)throw B(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 B(0,"invalid array header");let b=e.slice(f,o);if(!Km(b,r))throw B(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:b})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw B(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 B(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw B(0,"invalid array header")}if(c===0)throw B(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 B(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(Vm(n[l].path,n[d].path)||Vs(n[l].path,n[d].path)||Vs(n[d].path,n[l].path))throw B(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw B(0,"duplicate key");a.add(c)}return n}function IT(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return hc(e,ze,t);try{return hc(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return hc(e,ze,t);throw r}}function hc(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 B(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]=Et(e.slice(c,n),0);if(u===""&&!p)throw B(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 B(0,"invalid array header");let b=e.slice(f,n);n+=1;let h=MT(b);if(h!==void 0){if(h.delimiter!==r)throw B(0,"invalid array header");g.fixedLength=h.len,g.fixedDelimiter=h.delimiter}else if(Km(b,r))g.listDelimiter=b;else throw B(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw B(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw B(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw B(0,"invalid array header")}if(d.length===0)throw B(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 B(0,"invalid array header");let a=yc(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Vm(a[l].path,a[d].path)||Vs(a[l].path,a[d].path)||Vs(a[d].path,a[l].path))throw B(0,"duplicate key");return i}function MT(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 yc(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?yc(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Ea(e,t,r){return e.listDelimiter===void 0?it(t,r):Yt(t,e.listDelimiter,r).map(n=>it(n,r))}function Km(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Vm(e,t){return e.length===t.length&&Vs(e,t)}function Vs(e,t){return t.every((r,n)=>e[n]===r)}function va(e,t){return B(t,e.reason??String(e.message))}function Sa(e,t){let r=Hm(t),n=Um(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw B(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){Ks(o.content,o.number,r);let d;try{d=xa(o.content,$e(o.content,":",o.number))}catch(c){if(r.strict)throw va(c,o.number);d=void 0}if(d!==void 0)return $T(d,n,r)}if(s&&$e(o.content,":",o.number)===-1)return it(o.content.trim(),o.number);let i={index:0},a=kc(n,i,0,r),l=n[i.index];if(l!==void 0)throw B(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?wa(a):a}function kc(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 B(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=LT(e,t,r,n);eh(o,i,a,l,n,s.number)}return o}function LT(e,t,r,n){let o=e[t.index],s=o.content,i=$e(s,":",o.number);if(i===-1)throw B(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=$e(a,"[",o.number),c=$e(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){Ks(a,o.number,n);let f;try{f=qm(a)}catch(h){if(n.strict)throw va(h,o.number);t.index+=1;let w=bc(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:w}}if(l.trim()!=="")throw B(o.number,"expected keyed map rows");let b=jT(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:b}}if(d!==-1){Ks(a,o.number,n);let f;try{f=xa(a,i)}catch(h){if(n.strict)throw va(h,o.number);t.index+=1;let w=bc(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:w}}if(f.key===""&&!f.keyQuoted)throw B(o.number,"expected non-empty field name");let b=Rc(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:b}}let[u,p]=Et(a,o.number);if(u===""&&!p)throw B(o.number,"expected non-empty field name");t.index+=1;let g=bc(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function bc(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return it(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?kc(e,t,r+1,s):{}}function jT(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 B(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw B(i.number,"blank line inside keyed map");let a=$e(i.content,":",i.number);if(a===-1)throw B(i.number,"expected `key: value`");let[l,d]=Et(i.content.slice(0,a),i.number);if(l===""&&!d)throw B(i.number,"expected non-empty field name");let c=Yt(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw B(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{Bo(u,p.path,Ea(p,c[g],i.number),o,i.number)}),eh(s,l,d,u,o,i.number),r.index+=1}return s}function $T(e,t,r){let n=t[0],o=$e(n.content,":",n.number);if(o===-1)throw B(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=Rc(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw B(l.number,"expected end of document");return a}function Rc(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 B(i,"expected tabular rows");return BT(e,e.fields,r,n,o+1,s)}if(a!==""){let l=Yt(a,e.delimiter,i).map(d=>it(d,i));if(l.length!==e.len)throw B(i,"array length mismatch");return l}return KT(e,r,n,o+1,s)}function BT(e,t,r,n,o,s){if(e.fieldTree!==void 0&&UT(e.fieldTree))return NT(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw jo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw B(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw B(l.number,"blank line inside array");if(!$o(l.content,e.delimiter,l.number))break;let d=Yt(l.content,e.delimiter,l.number);if(d.length!==t.length)throw B(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{Bo(c,u.path,Ea(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw jo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&$o(a.content,e.delimiter,a.number))throw B(a.number,"array length mismatch");return i}function NT(e,t,r,n,o){return zm(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function zm(e,t,r,n,o,s,i,a){let l=[],d=Ym(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw jo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw B(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw B(u.number,"blank line inside array");if(!$o(u.content,r,u.number))break;let p=Yt(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Ta(t),childTableFields:d},f=Jm(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw B(u.number,"array row length mismatch");l.push(HT(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw jo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&$o(c.content,r,c.number))throw B(c.number,"array length mismatch");return l}function Jm(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=GT(d,u,t,r,n,o,s,i,a);Bo(l,[d.key],p,a,r)}),l}function GT(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw B(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>it(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Ta(e.children),u=r[s.cellIndex],p=Xm(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],b=f!==void 0&&f.depth===i,h=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(h===void 0?p!==void 0&&(b||r.length!==s.flatWidth&&g<c+qT(t)):h){if(p===void 0)throw B(n,"array row length mismatch");return s.cellIndex+=1,zm(p,e.children,a,o,{get index(){return s.nextIndex},set index(S){s.nextIndex=S}},i,l,!1)}return Jm(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw B(n,"array row length mismatch");return s.cellIndex+=1,Ea(e,d,n)}function Ym(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=Qm(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 Qm(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=Yt(p.content,n,p.number),f=WT(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 WT(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=Xm(r[l]);if(p===void 0)return;l+=1;let g=Ym(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Qm(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Ta(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function HT(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Xm(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function UT(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Ta(e){return e.reduce((t,r)=>t+Zm(r),0)}function Zm(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Ta(e.children):1}function qT(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Zm(r),0)}function $o(e,t,r){let n=$e(e,":",r);if(n===-1)return!0;let o=$e(e,t,r);return o===-1?!1:o<n}function KT(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 jo(t,r.index);if(a.depth>n)throw B(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw B(a.number,"blank line inside array");s.push(VT(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw B(i.number,"array length mismatch");return s}function VT(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw B(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=$e(s,":",o.number);Ks(s,o.number,n);let a;try{a=xa(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return Rc(a,l,e,t,r,n)}}if($e(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 kc(i,{index:0},r+1,n)}return t.index+=1,it(s,o.number)}function eh(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(zT)){Bo(e,i,n,o,s);return}}Bo(e,[t],n,o,s)}function Bo(e,t,r,n,o){Fr(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 B(o,"duplicate key");pr(e,s,r);return}if(i&&!at(e[s])){if(n.strict)throw B(o,"path expansion conflict");pr(e,s,{})}else i||pr(e,s,{});Bo(e[s],t.slice(1),r,n,o)}function zT(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var JT=/[\uD800-\uDFFF]/;function Ht(e){if(e===null)return null;if(Kn(e))return e;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return Ht(t)}if(typeof e=="string")return th(e,"string value"),e;if(typeof e=="boolean")return e;if(typeof e=="number")return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Ht);if(e instanceof Set)return Array.from(e,Ht);if(e instanceof Map){let t={};for(let[r,n]of e)No(t,String(r),Ht(n));return t}if(Lt(e)){let t={};for(let r of Object.keys(e))th(r,"object key"),No(t,r,Ht(e[r]));return t}return null}function th(e,t){if(JT.test(e))for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n<55296||n>57343)continue;let o=e.charCodeAt(r+1);if(n<=56319&&o>=56320&&o<=57343){r+=1;continue}throw new TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${n.toString(16).toUpperCase()} at index ${r}`)}}function Lt(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Ir(e){return e===null||Kn(e)||["string","number","boolean"].includes(typeof e)}function No(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function wc(e,t){let r=_c(e,t,[]),n=t("",r,[]);return n===void 0?r:Ht(n)}function _c(e,t,r){return Array.isArray(e)?QT(e,t,r):Lt(e)?YT(e,t,r):e}function YT(e,t,r){let n={};for(let[o,s]of Object.entries(e)){if(s===void 0)continue;let i=[...r,o],a=t(o,_c(s,t,i),i);a!==void 0&&No(n,o,Ht(a))}return n}function QT(e,t,r){let n=[];for(let o=0;o<e.length;o+=1){let s=[...r,o],i=t(String(o),_c(e[o],t,s),s);i!==void 0&&n.push(Ht(i))}return n}var rh=Symbol("unset");function nh(e){let t=[],r,n=rh,o=s=>{let i=t[t.length-1];i===void 0?n=s:Array.isArray(i)?i.push(s):Object.defineProperty(i,r,{value:s,enumerable:!0,writable:!0,configurable:!0})};for(let s of e)switch(s.type){case"startObject":{let i={};o(i),t.push(i);break}case"startArray":{let i=[];o(i),t.push(i);break}case"endObject":case"endArray":t.pop();break;case"key":r=s.key;break;case"primitive":o(s.value);break}return n===rh?{}:n}function oh(e,t){let r=nh(Bm(e,t));return t?.reviver?wc(r,t.reviver):r}function Pa(e,t){let{reviver:r,...n}=t??{},o;if(ZT(e)||t?.objectArrayColumns!==!1&&eP(e))o=Sa(e,{indent:t?.indentSize??t?.indent,strict:t?.strict,cyclicDiscriminatedArrays:!1,maxDepth:t?.maxDepth});else try{o=oh(XT(e),n)}catch(i){if(t?.objectArrayColumns===!1||!tP(e))throw i;o=Sa(e,{indent:t?.indentSize??t?.indent,strict:t?.strict,cyclicDiscriminatedArrays:!1,maxDepth:t?.maxDepth})}let s=t?.cyclicDiscriminatedArrays===!0?wa(o):o;return r?wc(s,r):s}function*XT(e){let t=0;for(;;){let r=e.indexOf(`
15
- `,t);if(r===-1){yield e.slice(t);return}yield e.slice(t,r),t=r+1}}function ZT(e){return sh(e).some(t=>[...t.matchAll(/\[([^\]]*)\]/g)].some(([,r])=>!/^(?:0|[1-9]\d*)(?:\t|\|)?$/.test(r)))}function eP(e){return sh(e).some(t=>/\[(?:0|[1-9]\d*)(?:\t|\|)?\]/.test(t))}function sh(e){return e.split(/\r?\n/).flatMap(t=>{let r=t.indexOf("]");if(r===-1)return[];let n=t.indexOf("{",r+1);if(n===-1)return[];let o=t.lastIndexOf("}");return o>n?[t.slice(n+1,o)]:[]})}function tP(e){return e.split(/\r?\n/).some(t=>{let r=t.indexOf("{",t.indexOf("]")+1),n=t.lastIndexOf("}");if(r===-1||n<=r)return!1;let o=t.slice(r+1,n);return o.includes("{")||/\[(?:0|[1-9]\d*)(?:\t|\|)?\]/.test(o)})}function ih(e,t){let r=t("",e,[]);return r===void 0?xc(e,t,[]):Ec(e,r,t,[])}function Ec(e,t,r,n){return Kn(t)&&(Array.isArray(e)||Lt(e))?xc(e,r,n):xc(Ht(t),r,n)}function xc(e,t,r){return Array.isArray(e)?nP(e,t,r):Lt(e)?rP(e,t,r):e}function rP(e,t,r){let n={};for(let[o,s]of Object.entries(e)){let i=[...r,o],a=t(o,s,i);a!==void 0&&No(n,o,Ec(s,a,t,i))}return n}function nP(e,t,r){let n=[];for(let o=0;o<e.length;o+=1){let s=[...r,o],i=t(String(o),e[o],s);i!==void 0&&n.push(Ec(e[o],i,t,s))}return n}function zs(e){let t=Object.keys(e[0]??{});if(t.length===0)return;for(let n of e)if(!Lt(n)||Object.keys(n).length!==t.length||t.some(o=>!Object.prototype.hasOwnProperty.call(n,o)))return;let r=[];for(let n of t){let o=e.map(i=>i[n]);if(o.every(Ir)){r.push({name:n});continue}if(!o.every(i=>Lt(i)&&Object.keys(i).length>0))return;let s=zs(o);if(s===void 0)return;r.push({name:n,children:s})}return r}function Aa(e){let t=Object.values(e);if(!(t.length<2)&&t.every(r=>Lt(r)&&Object.keys(r).length>0))return zs(t)}function Go(e,t){let r=[];for(let n of t)n.children===void 0?r.push(e[n.name]):r.push(...Go(e[n.name],n.children));return r}function Ca(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ze;if(![ze,"|"," "].includes(n))throw B(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=_a(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?Pc(s,void 0,e,0,!1,o):at(e)?ah(s,e,0,o):s.push(Je(e,n)),s.join("")}function Wo(e,t){e.push(" ".repeat(t*2))}function ah(e,t,r,n){Fr(r,0,n);for(let[o,s]of Object.entries(t))Wo(e,r),Sc(e,o,s,r,n)}function Sc(e,t,r,n,o){if(Fr(n,0,o),Array.isArray(r)){Pc(e,t,r,n,!1,o);return}if(at(r)){let s=o.keyedMapCollapse?sP(r,o,n+1):void 0;if(s!==void 0){e.push(Ie(t),"{",Ac(o.delimiter),s.fields.map(i=>Dc(i,o.delimiter)).join(o.delimiter),`}:
16
- `);for(let[i,a]of Object.entries(r)){Wo(e,n+1);let l=[];e.push(Ie(i),": ",s.paths.map(d=>Fc(Oc(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
12
+ `),r.common.length>0&&Qm(e,"common",r.common,r.commonRows);for(let n of r.groups)Qm(e,n.label,n.fields,n.rows)}function Qm(e,t,r,n){e.push(" ",Ie(t),"[",String(n.length),zn,"]{",r.map(Ie).join(zn),`}:
13
+ `);for(let o of n)e.push(" ",r.map(s=>Qe(o[s],zn)).join(zn),`
14
+ `)}function NT(e){return e!==""&&kc(e)}function bc(e,t,r,n=new Set){if(!kc(t))return!1;if(Or(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)=>bc(s,`${t}.${i}`,r,n));return n.delete(e),o}if(dt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&bc(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function GT(e){let t=Object.keys(e[0]??{});if(e.every(r=>WT(Object.keys(r),t)))return t.every(kc)?t:void 0}function WT(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function kc(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function Zm(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 eh(e,t){let r=[],n=!1;return _a(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 N(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw N(i,"invalid indentation");let l=Math.floor(a/t.indent);Fr(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function Fr(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw N(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,Fr(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function Bo(e,t){let r=e[t]??e[e.length-1];return N(r===void 0?1:r.number,"array length mismatch")}function Aa(e,t){if(t===-1)throw N(0,"array header missing colon");let r=e.slice(0,t),n=Be(r,"[",0);if(n===-1)throw N(0,"invalid array header");let o,s;try{[o,s]=xt(r.slice(0,n),0)}catch{throw N(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw N(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 N(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 N(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=UT(p.slice(1,-1),u),g=wc(f)}catch(y){throw N(0,y.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw N(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function th(e){let t=Be(e,"{",0);if(t===-1||!e.endsWith("}"))throw N(0,"invalid keyed map header");let r,n;try{[r,n]=xt(e.slice(0,t),0)}catch{throw N(0,"invalid keyed map header")}if(r===""&&!n)throw N(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=Ye;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=HT(o,s,s)}catch(a){throw N(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function HT(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 N(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]=xt(e.slice(u,o),0);if(p===""&&!g)throw N(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 N(0,"invalid array header");let y=e.slice(f,o);if(!rh(y,r))throw N(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 N(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 N(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw N(0,"invalid array header")}if(c===0)throw N(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 N(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(nh(n[l].path,n[d].path)||Qs(n[l].path,n[d].path)||Qs(n[d].path,n[l].path))throw N(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw N(0,"duplicate key");a.add(c)}return n}function UT(e,t){if(t!==Ye&&e.includes(Ye)&&(e.includes("[")||e.includes("{")))return Rc(e,Ye,t);try{return Rc(e,t,t)}catch(r){if(t!==Ye&&r.reason!=="duplicate key")return Rc(e,Ye,t);throw r}}function Rc(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 N(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]=xt(e.slice(c,n),0);if(u===""&&!p)throw N(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 N(0,"invalid array header");let y=e.slice(f,n);n+=1;let m=qT(y);if(m!==void 0){if(m.delimiter!==r)throw N(0,"invalid array header");g.fixedLength=m.len,g.fixedDelimiter=m.delimiter}else if(rh(y,r))g.listDelimiter=y;else throw N(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw N(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw N(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw N(0,"invalid array header")}if(d.length===0)throw N(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 N(0,"invalid array header");let a=wc(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(nh(a[l].path,a[d].path)||Qs(a[l].path,a[d].path)||Qs(a[d].path,a[l].path))throw N(0,"duplicate key");return i}function qT(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=Ye;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function wc(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?wc(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Ca(e,t,r){return e.listDelimiter===void 0?lt(t,r):Zt(t,e.listDelimiter,r).map(n=>lt(n,r))}function rh(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function nh(e,t){return e.length===t.length&&Qs(e,t)}function Qs(e,t){return t.every((r,n)=>e[n]===r)}function Oa(e,t){return N(t,e.reason??String(e.message))}function Da(e,t){let r=Zm(t),n=eh(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw N(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=Aa(o.content,Be(o.content,":",o.number))}catch(c){if(r.strict)throw Oa(c,o.number);d=void 0}if(d!==void 0)return zT(d,n,r)}if(s&&Be(o.content,":",o.number)===-1)return lt(o.content.trim(),o.number);let i={index:0},a=xc(n,i,0,r),l=n[i.index];if(l!==void 0)throw N(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Ta(a):a}function xc(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 N(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=KT(e,t,r,n);ch(o,i,a,l,n,s.number)}return o}function KT(e,t,r,n){let o=e[t.index],s=o.content,i=Be(s,":",o.number);if(i===-1)throw N(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=Be(a,"[",o.number),c=Be(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){Ys(a,o.number,n);let f;try{f=th(a)}catch(m){if(n.strict)throw Oa(m,o.number);t.index+=1;let w=_c(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:w}}if(l.trim()!=="")throw N(o.number,"expected keyed map rows");let y=VT(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=Aa(a,i)}catch(m){if(n.strict)throw Oa(m,o.number);t.index+=1;let w=_c(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:w}}if(f.key===""&&!f.keyQuoted)throw N(o.number,"expected non-empty field name");let y=Ec(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=xt(a,o.number);if(u===""&&!p)throw N(o.number,"expected non-empty field name");t.index+=1;let g=_c(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function _c(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return lt(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?xc(e,t,r+1,s):{}}function VT(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 N(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw N(i.number,"blank line inside keyed map");let a=Be(i.content,":",i.number);if(a===-1)throw N(i.number,"expected `key: value`");let[l,d]=xt(i.content.slice(0,a),i.number);if(l===""&&!d)throw N(i.number,"expected non-empty field name");let c=Zt(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw N(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{Go(u,p.path,Ca(p,c[g],i.number),o,i.number)}),ch(s,l,d,u,o,i.number),r.index+=1}return s}function zT(e,t,r){let n=t[0],o=Be(n.content,":",n.number);if(o===-1)throw N(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=Ec(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw N(l.number,"expected end of document");return a}function Ec(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 N(i,"expected tabular rows");return JT(e,e.fields,r,n,o+1,s)}if(a!==""){let l=Zt(a,e.delimiter,i).map(d=>lt(d,i));if(l.length!==e.len)throw N(i,"array length mismatch");return l}return rP(e,r,n,o+1,s)}function JT(e,t,r,n,o,s){if(e.fieldTree!==void 0&&eP(e.fieldTree))return YT(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw Bo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw N(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw N(l.number,"blank line inside array");if(!No(l.content,e.delimiter,l.number))break;let d=Zt(l.content,e.delimiter,l.number);if(d.length!==t.length)throw N(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{Go(c,u.path,Ca(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw Bo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&No(a.content,e.delimiter,a.number))throw N(a.number,"array length mismatch");return i}function YT(e,t,r,n,o){return oh(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function oh(e,t,r,n,o,s,i,a){let l=[],d=ih(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw Bo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw N(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw N(u.number,"blank line inside array");if(!No(u.content,r,u.number))break;let p=Zt(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Fa(t),childTableFields:d},f=sh(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw N(u.number,"array row length mismatch");l.push(ZT(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw Bo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&No(c.content,r,c.number))throw N(c.number,"array length mismatch");return l}function sh(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=QT(d,u,t,r,n,o,s,i,a);Go(l,[d.key],p,a,r)}),l}function QT(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw N(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>lt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Fa(e.children),u=r[s.cellIndex],p=lh(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],y=f!==void 0&&f.depth===i,m=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(m===void 0?p!==void 0&&(y||r.length!==s.flatWidth&&g<c+tP(t)):m){if(p===void 0)throw N(n,"array row length mismatch");return s.cellIndex+=1,oh(p,e.children,a,o,{get index(){return s.nextIndex},set index(_){s.nextIndex=_}},i,l,!1)}return sh(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw N(n,"array row length mismatch");return s.cellIndex+=1,Ca(e,d,n)}function ih(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=ah(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 ah(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||!No(p.content,n,p.number))return;let g=Zt(p.content,n,p.number),f=XT(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&&No(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function XT(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=lh(r[l]);if(p===void 0)return;l+=1;let g=ih(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=ah(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Fa(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function ZT(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function lh(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function eP(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Fa(e){return e.reduce((t,r)=>t+dh(r),0)}function dh(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Fa(e.children):1}function tP(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+dh(r),0)}function No(e,t,r){let n=Be(e,":",r);if(n===-1)return!0;let o=Be(e,t,r);return o===-1?!1:o<n}function rP(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 Bo(t,r.index);if(a.depth>n)throw N(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw N(a.number,"blank line inside array");s.push(nP(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw N(i.number,"array length mismatch");return s}function nP(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw N(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=Be(s,":",o.number);Ys(s,o.number,n);let a;try{a=Aa(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return Ec(a,l,e,t,r,n)}}if(Be(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 xc(i,{index:0},r+1,n)}return t.index+=1,lt(s,o.number)}function ch(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(oP)){Go(e,i,n,o,s);return}}Go(e,[t],n,o,s)}function Go(e,t,r,n,o){Fr(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 N(o,"duplicate key");mr(e,s,r);return}if(i&&!dt(e[s])){if(n.strict)throw N(o,"path expansion conflict");mr(e,s,{})}else i||mr(e,s,{});Go(e[s],t.slice(1),r,n,o)}function oP(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}var sP=/[\uD800-\uDFFF]/;function Ht(e){if(e===null)return null;if(Vn(e))return e;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return Ht(t)}if(typeof e=="string")return uh(e,"string value"),e;if(typeof e=="boolean")return e;if(typeof e=="number")return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Ht);if(e instanceof Set)return Array.from(e,Ht);if(e instanceof Map){let t={};for(let[r,n]of e)Wo(t,String(r),Ht(n));return t}if(Mt(e)){let t={};for(let r of Object.keys(e))uh(r,"object key"),Wo(t,r,Ht(e[r]));return t}return null}function uh(e,t){if(sP.test(e))for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n<55296||n>57343)continue;let o=e.charCodeAt(r+1);if(n<=56319&&o>=56320&&o<=57343){r+=1;continue}throw new TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${n.toString(16).toUpperCase()} at index ${r}`)}}function Mt(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Ir(e){return e===null||Vn(e)||["string","number","boolean"].includes(typeof e)}function Wo(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function vc(e,t){let r=Sc(e,t,[]),n=t("",r,[]);return n===void 0?r:Ht(n)}function Sc(e,t,r){return Array.isArray(e)?aP(e,t,r):Mt(e)?iP(e,t,r):e}function iP(e,t,r){let n={};for(let[o,s]of Object.entries(e)){if(s===void 0)continue;let i=[...r,o],a=t(o,Sc(s,t,i),i);a!==void 0&&Wo(n,o,Ht(a))}return n}function aP(e,t,r){let n=[];for(let o=0;o<e.length;o+=1){let s=[...r,o],i=t(String(o),Sc(e[o],t,s),s);i!==void 0&&n.push(Ht(i))}return n}var ph=Symbol("unset");function fh(e){let t=[],r,n=ph,o=s=>{let i=t[t.length-1];i===void 0?n=s:Array.isArray(i)?i.push(s):Object.defineProperty(i,r,{value:s,enumerable:!0,writable:!0,configurable:!0})};for(let s of e)switch(s.type){case"startObject":{let i={};o(i),t.push(i);break}case"startArray":{let i=[];o(i),t.push(i);break}case"endObject":case"endArray":t.pop();break;case"key":r=s.key;break;case"primitive":o(s.value);break}return n===ph?{}:n}function gh(e,t){let r=fh(Jm(e,t));return t?.reviver?vc(r,t.reviver):r}function Ia(e,t){let{reviver:r,...n}=t??{},o;if(dP(e)||t?.objectArrayColumns!==!1&&cP(e))o=Da(e,{indent:t?.indentSize??t?.indent,strict:t?.strict,cyclicDiscriminatedArrays:!1,maxDepth:t?.maxDepth});else try{o=gh(lP(e),n)}catch(i){if(t?.objectArrayColumns===!1||!uP(e))throw i;o=Da(e,{indent:t?.indentSize??t?.indent,strict:t?.strict,cyclicDiscriminatedArrays:!1,maxDepth:t?.maxDepth})}let s=t?.cyclicDiscriminatedArrays===!0?Ta(o):o;return r?vc(s,r):s}function*lP(e){let t=0;for(;;){let r=e.indexOf(`
15
+ `,t);if(r===-1){yield e.slice(t);return}yield e.slice(t,r),t=r+1}}function dP(e){return mh(e).some(t=>[...t.matchAll(/\[([^\]]*)\]/g)].some(([,r])=>!/^(?:0|[1-9]\d*)(?:\t|\|)?$/.test(r)))}function cP(e){return mh(e).some(t=>/\[(?:0|[1-9]\d*)(?:\t|\|)?\]/.test(t))}function mh(e){return e.split(/\r?\n/).flatMap(t=>{let r=t.indexOf("]");if(r===-1)return[];let n=t.indexOf("{",r+1);if(n===-1)return[];let o=t.lastIndexOf("}");return o>n?[t.slice(n+1,o)]:[]})}function uP(e){return e.split(/\r?\n/).some(t=>{let r=t.indexOf("{",t.indexOf("]")+1),n=t.lastIndexOf("}");if(r===-1||n<=r)return!1;let o=t.slice(r+1,n);return o.includes("{")||/\[(?:0|[1-9]\d*)(?:\t|\|)?\]/.test(o)})}function hh(e,t){let r=t("",e,[]);return r===void 0?Tc(e,t,[]):Pc(e,r,t,[])}function Pc(e,t,r,n){return Vn(t)&&(Array.isArray(e)||Mt(e))?Tc(e,r,n):Tc(Ht(t),r,n)}function Tc(e,t,r){return Array.isArray(e)?fP(e,t,r):Mt(e)?pP(e,t,r):e}function pP(e,t,r){let n={};for(let[o,s]of Object.entries(e)){let i=[...r,o],a=t(o,s,i);a!==void 0&&Wo(n,o,Pc(s,a,t,i))}return n}function fP(e,t,r){let n=[];for(let o=0;o<e.length;o+=1){let s=[...r,o],i=t(String(o),e[o],s);i!==void 0&&n.push(Pc(e[o],i,t,s))}return n}function Xs(e){let t=Object.keys(e[0]??{});if(t.length===0)return;for(let n of e)if(!Mt(n)||Object.keys(n).length!==t.length||t.some(o=>!Object.prototype.hasOwnProperty.call(n,o)))return;let r=[];for(let n of t){let o=e.map(i=>i[n]);if(o.every(Ir)){r.push({name:n});continue}if(!o.every(i=>Mt(i)&&Object.keys(i).length>0))return;let s=Xs(o);if(s===void 0)return;r.push({name:n,children:s})}return r}function Ma(e){let t=Object.values(e);if(!(t.length<2)&&t.every(r=>Mt(r)&&Object.keys(r).length>0))return Xs(t)}function Ho(e,t){let r=[];for(let n of t)n.children===void 0?r.push(e[n.name]):r.push(...Ho(e[n.name],n.children));return r}function La(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Ye;if(![Ye,"|"," "].includes(n))throw N(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=Pa(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?Dc(s,void 0,e,0,!1,o):dt(e)?yh(s,e,0,o):s.push(Qe(e,n)),s.join("")}function Uo(e,t){e.push(" ".repeat(t*2))}function yh(e,t,r,n){Fr(r,0,n);for(let[o,s]of Object.entries(t))Uo(e,r),Cc(e,o,s,r,n)}function Cc(e,t,r,n,o){if(Fr(n,0,o),Array.isArray(r)){Dc(e,t,r,n,!1,o);return}if(dt(r)){let s=o.keyedMapCollapse?mP(r,o,n+1):void 0;if(s!==void 0){e.push(Ie(t),"{",Fc(o.delimiter),s.fields.map(i=>Lc(i,o.delimiter)).join(o.delimiter),`}:
16
+ `);for(let[i,a]of Object.entries(r)){Uo(e,n+1);let l=[];e.push(Ie(i),": ",s.paths.map(d=>jc(Mc(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
17
17
  `),e.push(...l)}return}e.push(Ie(t),`:
18
- `),ah(e,r,n+1,o);return}e.push(Ie(t),": ",Je(r,o.delimiter),`
19
- `)}function Pc(e,t,r,n,o,s){if(Fr(n,0,s),r.length===0){t!==void 0?e.push(Ie(t),`: []
18
+ `),yh(e,r,n+1,o);return}e.push(Ie(t),": ",Qe(r,o.delimiter),`
19
+ `)}function Dc(e,t,r,n,o,s){if(Fr(n,0,s),r.length===0){t!==void 0?e.push(Ie(t),`: []
20
20
  `):o?e.push(`[0]:
21
21
  `):e.push(`[]
22
- `);return}if(r.every(Or)){vc(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>Je(a,s.delimiter)).join(s.delimiter)),e.push(`
23
- `);return}let i=o?void 0:lh(r,s,n+1);if(i!==void 0){vc(e,t,r.length,i.fields,s.delimiter),e.push(`
24
- `);for(let a of r){Wo(e,n+1);let l=[];e.push(i.paths.map(d=>Fc(Oc(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
25
- `),e.push(...l)}return}vc(e,t,r.length,void 0,s.delimiter),e.push(`
26
- `);for(let a of r)Wo(e,n+1),oP(e,a,n+1,s)}function oP(e,t,r,n){if(Fr(r,0,n),Array.isArray(t)){e.push("- "),Pc(e,void 0,t,r,!0,n);return}if(at(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
27
- `);return}e.push("- "),Sc(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))Wo(e,r+1),Sc(e,s,i,r+1,n);return}e.push("- ",Je(t,n.delimiter),`
28
- `)}function vc(e,t,r,n,o){t!==void 0&&e.push(Ie(t)),e.push("[",String(r),Ac(o),"]"),n!==void 0&&e.push("{",n.map(s=>Dc(s,o)).join(o),"}"),e.push(":")}function Ac(e){return e===ze?"":e}function lh(e,t,r){let n=iP(e,t);if(n!==void 0)return n;let o=Tc(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:Cc(o)}}function sP(e,t,r){let n=Object.values(e);if(!(n.length<2))return lh(n,t,r)}function Tc(e,t,r){Fr(r,0,t);let n=e[0]?.value;if(!at(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!at(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})=>Or(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(Or))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=dh(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=Tc(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=Tc(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function iP(e,t){if(!t.objectArrayColumns)return;let r=dh(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function dh(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(Or)))return{fixedLength:t}}function Cc(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}]:Cc(r.children,n)})}function Oc(e,t){let r=e;for(let n of t)r=r[n];return r}function Dc(e,t){return e.listDelimiter!==void 0?`${Ie(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${Ie(e.key)}[${e.fixedLength}${Ac(t)}]`:e.children===void 0?Ie(e.key):`${Ie(e.key)}{${e.children.map(r=>Dc(r,t)).join(t)}}`}function Fc(e,t,r,n,o,s){return t.childFields!==void 0?(aP(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>Je(i,r)).join(r):t.listDelimiter===void 0?Je(e,r):e.map(i=>lP(i,r,t.listDelimiter)).join(t.listDelimiter)}function aP(e,t,r,n,o){for(let s of t){Wo(e,o);let i=[];e.push(Cc(r).map(a=>Fc(Oc(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
29
- `),e.push(...i)}}function lP(e,t,r){return typeof e!="string"?Je(e,t):ec(e,t)||e.includes(r)?ya(e):e}function ht(e,t={}){return Array.from(ch(e,t)).join(`
30
- `)}function ch(e,t={}){let r=t.delimiter??",";if(![",","|"," "].includes(r))throw new TypeError("invalid delimiter");let n=Math.max(1,Math.floor(t.indentSize??t.indent??2)),o=t.maxDepth??1e3,s=o===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(o)),i=Ht(e),a=t.replacer?ih(i,t.replacer):i,l={delimiter:r,indentSize:n,maxDepth:s};if(t.cyclicDiscriminatedArrays===!0){let d=_a(a);if(d!==void 0)return d.trimEnd().split(`
31
- `)}if(t.primitiveArrayColumns===!0||t.objectArrayColumns===!0){let d=Ca(a,{delimiter:r,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,maxDepth:s}),c=Ca(a,{delimiter:r,maxDepth:s});if(d!==c)return d.trimEnd().split(`
32
- `)}return dP(a,l)}function dP(e,t){if(Ir(e))return[Je(e,t.delimiter)];if(Array.isArray(e))return ph(void 0,e,0,t);let r=Aa(e);return r===void 0?Oa(e,0,t):uh(void 0,e,r,0,t)}function Oa(e,t,r){return Ho(t,r),Object.entries(e).flatMap(([n,o])=>cP(n,o,t,r))}function cP(e,t,r,n){let o=Rt(r,n)+Ie(e);if(Ir(t))return[`${o}: ${Je(t,n.delimiter)}`];if(Array.isArray(t))return ph(e,t,r,n);let s=Aa(t);if(s!==void 0)return uh(e,t,s,r,n);let i=[`${o}:`];return Object.keys(t).length>0&&i.push(...Oa(t,r+1,n)),i}function uh(e,t,r,n,o){Ho(n,o);let s=Object.entries(t);Js(r,n+1,o);let i=[Rt(n,o)+fr(e,s.length,r,o.delimiter,!0)];for(let[a,l]of s)i.push(Rt(n+1,o)+Ie(a)+": "+zn(Go(l,r),o.delimiter));return i}function ph(e,t,r,n){Ho(r,n);let o=Rt(r,n);if(t.length===0)return[e===void 0?`${o}[]`:`${o}${Ie(e)}: []`];if(t.every(Ir))return[o+fr(e,t.length,void 0,n.delimiter)+" "+zn(t,n.delimiter)];if(t.every(Lt)){let i=zs(t);if(i!==void 0)return uP(e,t,i,r,n)}let s=[o+fr(e,t.length,void 0,n.delimiter)];for(let i of t)s.push(...Ic(i,r+1,n));return s}function uP(e,t,r,n,o){Js(r,n+1,o);let s=[Rt(n,o)+fr(e,t.length,r,o.delimiter)];for(let i of t)s.push(Rt(n+1,o)+zn(Go(i,r),o.delimiter));return s}function Ic(e,t,r){Ho(t,r);let n=Rt(t,r)+"-";if(Ir(e))return[`${n} ${Je(e,r.delimiter)}`];if(Array.isArray(e)){if(e.length===0)return[`${n} ${fr(void 0,0,void 0,r.delimiter)}`];if(e.every(Ir))return[`${n} ${fr(void 0,e.length,void 0,r.delimiter)} ${zn(e,r.delimiter)}`];let o=[`${n} ${fr(void 0,e.length,void 0,r.delimiter)}`];for(let s of e)o.push(...Ic(s,t+1,r));return o}return pP(e,t,r)}function pP(e,t,r){Ho(t,r);let n=Object.entries(e);if(n.length===0)return[Rt(t,r)+"-"];let[[o,s],...i]=n,a=fP(o,s,t,r),l;if(a!==void 0)l=a;else if(Ir(s))l=[Rt(t,r)+"- "+Ie(o)+": "+Je(s,r.delimiter)];else if(Array.isArray(s))if(s.length===0)l=[Rt(t,r)+"- "+Ie(o)+": []"];else{l=[Rt(t,r)+"- "+fr(o,s.length,void 0,r.delimiter)];for(let d of s)l.push(...Ic(d,t+2,r))}else l=[Rt(t,r)+"- "+Ie(o)+":"],Object.keys(s).length>0&&l.push(...Oa(s,t+2,r));return i.length>0&&l.push(...Oa(Object.fromEntries(i),t+1,r)),l}function fP(e,t,r,n){if(Array.isArray(t)&&t.length>0&&t.every(Ir))return[Rt(r,n)+"- "+fr(e,t.length,void 0,n.delimiter)+" "+zn(t,n.delimiter)];if(Array.isArray(t)&&t.every(Lt)){let o=zs(t);if(o!==void 0){Js(o,r+1,n);let s=[Rt(r,n)+"- "+fr(e,t.length,o,n.delimiter)];for(let i of t)s.push(Rt(r+2,n)+zn(Go(i,o),n.delimiter));return s}}if(Lt(t)){let o=Aa(t);if(o!==void 0){Js(o,r+1,n);let s=Object.entries(t),i=[Rt(r,n)+"- "+fr(e,s.length,o,n.delimiter,!0)];for(let[a,l]of s)i.push(Rt(r+2,n)+Ie(a)+": "+zn(Go(l,o),n.delimiter));return i}}}function fr(e,t,r,n,o=!1){let s=e===void 0?"":Ie(e),i=o?":":"",a=n===","?"":n,l=r===void 0?"":`{${fh(r,n)}}`;return`${s}[${t}${i}${a}]${l}:`}function fh(e,t){return e.map(r=>Ie(r.name)+(r.children===void 0?"":`{${fh(r.children,t)}}`)).join(t)}function zn(e,t){return e.map(r=>Je(r,t)).join(t)}function Rt(e,t){return" ".repeat(e*t.indentSize)}function Ho(e,t){if(t.maxDepth!==0&&e>t.maxDepth)throw B(0,`maximum nesting depth exceeded (maxDepth ${t.maxDepth})`)}function Js(e,t,r){Ho(t,r);for(let n of e)n.children!==void 0&&Js(n.children,t+1,r)}var gh={comma:",",tab:" ",pipe:"|"},mP=gh.comma;var _h=[ze,"|"," "];var xh=8,Eh=/^[A-Za-z0-9_-]+$/,dH=new TextEncoder,cH=new TextDecoder;function yP(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Pe(t,"invalid trailer count");return Number.parseInt(r,10)}function vh(e,t){if(!Eh.test(e))throw Pe(t,"invalid tag")}function bP(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!Eh.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Pe(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function kP(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Pe(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(!_h.includes(i)&&i!=="")throw Pe(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 Pe(t,"invalid tag");if(d=l.slice(1,p),vh(d,t),i!=="")throw Pe(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Pe(t,"invalid header");let c=l.slice(1,-2),u;try{u=Yt(c,a,t).map(p=>Et(p,t)[0])}catch(p){throw Lo(p)}if(u.length===0||u.some(p=>p===""))throw Pe(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function RP(e,t,r){if(e===null||e.delimiter===void 0)throw Pe(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Pe(r,"continuation header mismatch")}function mh(e,t,r,n){let o;try{o=Yt(e,t,n)}catch(s){throw Lo(s)}if(o.length!==r)throw Pe(n,"row arity mismatch");for(let s of o)try{it(s,n)}catch(i){throw Lo(i)}return o}function wP(e,t,r){let n={};return e.forEach((o,s)=>{try{pr(n,o,it(t[s],r))}catch(i){throw Lo(i)}}),n}function _P(e,t,r){if(e.startsWith("- "))throw Pe(t,"reserved line prefix");let n=yP(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Pe(t,"trailer without header");if(r.rowCount!==n)throw Pe(t,"trailer count mismatch");return{kind:"trailer"}}let o=kP(e,t);if(o!==null)return o.continuation?(RP(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=bP(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Pe(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:mh(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Pe(t,"row before header");return{kind:"row",cells:mh(e,r.delimiter,r.fields.length,t)}}function xP(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let b=s.at(-1);if(b!==void 0&&b.lane===g.lane&&b.delimiter===g.delimiter&&b.fieldText===g.fieldText){b.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,b){let h=n.get(g);if(h===void 0){if(n.size>=xh)throw Pe(b,"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(ha(e).forEach((g,f)=>{let b=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},w=_P(g,b,h);if(w.kind==="trailer"){c(),i=null;return}if(w.kind!=="continuation"){if(w.kind==="tag-header"){l=!0,u(w.header.tag,w.header,b);return}if(w.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:w.header.delimiter,fields:w.header.fields,fieldText:w.header.fieldText,rows:[]};return}if(w.kind==="tagged-row"){l=!0;let S=n.get(w.tag).current;S.rows.push(w.cells),d(S,w.cells);return}if(i===null)throw Pe(b,"row before header");i.rows.push(w.cells),d(i,w.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 jt(e){return xP(e).flatMap(t=>t.rows.map(r=>wP(t.fields,r,0)))}function EP(e){if(!_h.includes(e))throw Pe(0,"invalid header delimiter")}function hh(e,t,r=!1){return`[${`${r?"~":""}${e===ze?"":e}`}]{${t}}:
33
- `}function yh(e,t){return`[]<${e}>{${t}}:
34
- `}function Mc(e,t){return t.map(Ie).join(e)}function vP(e){if(!Array.isArray(e)||e.length===0)throw Pe(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=Et(String(t),0)}catch(n){throw Lo(n)}if(r==="")throw Pe(0,"TOONL header requires fields");return r})}function bh(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function kh(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Pe(0,"TOONL continuation cadence must be positive")}function SP(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function Rh(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Pe(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Pe(0,"TOONL output requires object rows");if(t.some(r=>!Or(e[r])))throw Pe(0,"TOONL rows must be flat objects");return t}function TP(e){return JSON.stringify([...e].sort())}function wh(e,t){let r=TP(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}={}){EP(e),kh(r),kh(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}]
35
- `,f=()=>SP(p,l,d)?(l=0,d=0,hh(e,s,!0)):"",b=h=>{vh(h,0);let w=c.get(h);if(w===void 0){if(c.size>=xh)throw Pe(0,"too many tagged lanes");w={fields:null,fieldsByShape:new Map},c.set(h,w)}return w};return{push(h){if(u)throw Pe(0,"TOONL encoder is closed");let w=wh(Rh(h),i),S="";(o===null||o.length!==w.length||o.some((M,N)=>M!==w[N]))&&(S+=g(),o=w,s=Mc(e,o),a=0,l=0,d=0,S+=hh(e,s));let L=o.map(M=>Je(h[M],e));S+=f();let A=`${L.join(e)}
36
- `;return S+=A,a+=1,l+=1,d+=A.length,S},declareLane(h,w){if(u)throw Pe(0,"TOONL encoder is closed");let S=vP(w),L=Mc(ze,S),A=b(h);return bh(A.fields,S)?"":(A.fields=S,yh(h,L))},pushTagged(h,w){if(u)throw Pe(0,"TOONL encoder is closed");let S=b(h),L=wh(Rh(w),S.fieldsByShape),A=Mc(ze,L),M=L.map(W=>Je(w[W],ze)),N="";return bh(S.fields,L)||(S.fields=L,N+=yh(h,A)),`${N}${h}:${M.join(ze)}
37
- `},end(){return u?"":(u=!0,g())}}}var Mr=Pa;function Da(e){let t={app:e,version:PP(Uo("__RED_BUILD_VERSION__",()=>"3.16.0")??"0.0.0-dev"),gitSha:Uo("__RED_BUILD_GIT_SHA__",()=>"a690019ccfbeb73f9cc340df8f47aceafa96cbb9")??"unknown",buildTime:Uo("__RED_BUILD_TIME__",()=>"2026-08-11T22:57:51-03:00")??"unknown",bundleAsset:Uo("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=Uo("__REDDB_SDK_VERSION__",()=>""),n=Uo("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function PP(e){return e.startsWith("v")?e.slice(1):e}function Sh(e){return`${e.app} ${e.version} ${e.gitSha}`}function Uo(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Th={"=":"data",":=":{to:"data",typed:!0},":":"meta"},AP=/^[a-z][a-z0-9+.-]*:\/\//i;function CP(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 OP(e=Th){return Object.entries(e).map(([t,r])=>CP(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function DP(e){return/^-\d+(\.\d+)?$/.test(e)}function Ys(e){return!(!e||e.startsWith("-")&&!DP(e))}function Fa(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 Ph(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=>Ph(r.trim())):e}function Jn(e,t){switch(t){case"boolean":return FP(e);case"number":return IP(e);case"array":return e.split(",").map(r=>Fa(r.trim()));case"string":default:return e}}function FP(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function IP(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 yn(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function MP(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Le(e,t){return{type:e,value:t}}function LP(e){let t=[],r=$P(e);if(t.push(Le("section-header","Usage:"),Le("text"," "),Le("usage-text",r),Le("newline",`
22
+ `);return}if(r.every(Or)){Ac(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>Qe(a,s.delimiter)).join(s.delimiter)),e.push(`
23
+ `);return}let i=o?void 0:bh(r,s,n+1);if(i!==void 0){Ac(e,t,r.length,i.fields,s.delimiter),e.push(`
24
+ `);for(let a of r){Uo(e,n+1);let l=[];e.push(i.paths.map(d=>jc(Mc(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
25
+ `),e.push(...l)}return}Ac(e,t,r.length,void 0,s.delimiter),e.push(`
26
+ `);for(let a of r)Uo(e,n+1),gP(e,a,n+1,s)}function gP(e,t,r,n){if(Fr(r,0,n),Array.isArray(t)){e.push("- "),Dc(e,void 0,t,r,!0,n);return}if(dt(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
27
+ `);return}e.push("- "),Cc(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))Uo(e,r+1),Cc(e,s,i,r+1,n);return}e.push("- ",Qe(t,n.delimiter),`
28
+ `)}function Ac(e,t,r,n,o){t!==void 0&&e.push(Ie(t)),e.push("[",String(r),Fc(o),"]"),n!==void 0&&e.push("{",n.map(s=>Lc(s,o)).join(o),"}"),e.push(":")}function Fc(e){return e===Ye?"":e}function bh(e,t,r){let n=hP(e,t);if(n!==void 0)return n;let o=Oc(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:Ic(o)}}function mP(e,t,r){let n=Object.values(e);if(!(n.length<2))return bh(n,t,r)}function Oc(e,t,r){Fr(r,0,t);let n=e[0]?.value;if(!dt(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!dt(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})=>Or(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(Or))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=kh(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=Oc(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=Oc(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function hP(e,t){if(!t.objectArrayColumns)return;let r=kh(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function kh(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(Or)))return{fixedLength:t}}function Ic(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}]:Ic(r.children,n)})}function Mc(e,t){let r=e;for(let n of t)r=r[n];return r}function Lc(e,t){return e.listDelimiter!==void 0?`${Ie(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${Ie(e.key)}[${e.fixedLength}${Fc(t)}]`:e.children===void 0?Ie(e.key):`${Ie(e.key)}{${e.children.map(r=>Lc(r,t)).join(t)}}`}function jc(e,t,r,n,o,s){return t.childFields!==void 0?(yP(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>Qe(i,r)).join(r):t.listDelimiter===void 0?Qe(e,r):e.map(i=>bP(i,r,t.listDelimiter)).join(t.listDelimiter)}function yP(e,t,r,n,o){for(let s of t){Uo(e,o);let i=[];e.push(Ic(r).map(a=>jc(Mc(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
29
+ `),e.push(...i)}}function bP(e,t,r){return typeof e!="string"?Qe(e,t):oc(e,t)||e.includes(r)?xa(e):e}function tt(e,t={}){return Array.from(Rh(e,t)).join(`
30
+ `)}function Rh(e,t={}){let r=t.delimiter??",";if(![",","|"," "].includes(r))throw new TypeError("invalid delimiter");let n=Math.max(1,Math.floor(t.indentSize??t.indent??2)),o=t.maxDepth??1e3,s=o===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(o)),i=Ht(e),a=t.replacer?hh(i,t.replacer):i,l={delimiter:r,indentSize:n,maxDepth:s};if(t.cyclicDiscriminatedArrays===!0){let d=Pa(a);if(d!==void 0)return d.trimEnd().split(`
31
+ `)}if(t.primitiveArrayColumns===!0||t.objectArrayColumns===!0){let d=La(a,{delimiter:r,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,maxDepth:s}),c=La(a,{delimiter:r,maxDepth:s});if(d!==c)return d.trimEnd().split(`
32
+ `)}return kP(a,l)}function kP(e,t){if(Ir(e))return[Qe(e,t.delimiter)];if(Array.isArray(e))return _h(void 0,e,0,t);let r=Ma(e);return r===void 0?ja(e,0,t):wh(void 0,e,r,0,t)}function ja(e,t,r){return qo(t,r),Object.entries(e).flatMap(([n,o])=>RP(n,o,t,r))}function RP(e,t,r,n){let o=kt(r,n)+Ie(e);if(Ir(t))return[`${o}: ${Qe(t,n.delimiter)}`];if(Array.isArray(t))return _h(e,t,r,n);let s=Ma(t);if(s!==void 0)return wh(e,t,s,r,n);let i=[`${o}:`];return Object.keys(t).length>0&&i.push(...ja(t,r+1,n)),i}function wh(e,t,r,n,o){qo(n,o);let s=Object.entries(t);Zs(r,n+1,o);let i=[kt(n,o)+hr(e,s.length,r,o.delimiter,!0)];for(let[a,l]of s)i.push(kt(n+1,o)+Ie(a)+": "+Jn(Ho(l,r),o.delimiter));return i}function _h(e,t,r,n){qo(r,n);let o=kt(r,n);if(t.length===0)return[e===void 0?`${o}[]`:`${o}${Ie(e)}: []`];if(t.every(Ir))return[o+hr(e,t.length,void 0,n.delimiter)+" "+Jn(t,n.delimiter)];if(t.every(Mt)){let i=Xs(t);if(i!==void 0)return wP(e,t,i,r,n)}let s=[o+hr(e,t.length,void 0,n.delimiter)];for(let i of t)s.push(...$c(i,r+1,n));return s}function wP(e,t,r,n,o){Zs(r,n+1,o);let s=[kt(n,o)+hr(e,t.length,r,o.delimiter)];for(let i of t)s.push(kt(n+1,o)+Jn(Ho(i,r),o.delimiter));return s}function $c(e,t,r){qo(t,r);let n=kt(t,r)+"-";if(Ir(e))return[`${n} ${Qe(e,r.delimiter)}`];if(Array.isArray(e)){if(e.length===0)return[`${n} ${hr(void 0,0,void 0,r.delimiter)}`];if(e.every(Ir))return[`${n} ${hr(void 0,e.length,void 0,r.delimiter)} ${Jn(e,r.delimiter)}`];let o=[`${n} ${hr(void 0,e.length,void 0,r.delimiter)}`];for(let s of e)o.push(...$c(s,t+1,r));return o}return _P(e,t,r)}function _P(e,t,r){qo(t,r);let n=Object.entries(e);if(n.length===0)return[kt(t,r)+"-"];let[[o,s],...i]=n,a=xP(o,s,t,r),l;if(a!==void 0)l=a;else if(Ir(s))l=[kt(t,r)+"- "+Ie(o)+": "+Qe(s,r.delimiter)];else if(Array.isArray(s))if(s.length===0)l=[kt(t,r)+"- "+Ie(o)+": []"];else{l=[kt(t,r)+"- "+hr(o,s.length,void 0,r.delimiter)];for(let d of s)l.push(...$c(d,t+2,r))}else l=[kt(t,r)+"- "+Ie(o)+":"],Object.keys(s).length>0&&l.push(...ja(s,t+2,r));return i.length>0&&l.push(...ja(Object.fromEntries(i),t+1,r)),l}function xP(e,t,r,n){if(Array.isArray(t)&&t.length>0&&t.every(Ir))return[kt(r,n)+"- "+hr(e,t.length,void 0,n.delimiter)+" "+Jn(t,n.delimiter)];if(Array.isArray(t)&&t.every(Mt)){let o=Xs(t);if(o!==void 0){Zs(o,r+1,n);let s=[kt(r,n)+"- "+hr(e,t.length,o,n.delimiter)];for(let i of t)s.push(kt(r+2,n)+Jn(Ho(i,o),n.delimiter));return s}}if(Mt(t)){let o=Ma(t);if(o!==void 0){Zs(o,r+1,n);let s=Object.entries(t),i=[kt(r,n)+"- "+hr(e,s.length,o,n.delimiter,!0)];for(let[a,l]of s)i.push(kt(r+2,n)+Ie(a)+": "+Jn(Ho(l,o),n.delimiter));return i}}}function hr(e,t,r,n,o=!1){let s=e===void 0?"":Ie(e),i=o?":":"",a=n===","?"":n,l=r===void 0?"":`{${xh(r,n)}}`;return`${s}[${t}${i}${a}]${l}:`}function xh(e,t){return e.map(r=>Ie(r.name)+(r.children===void 0?"":`{${xh(r.children,t)}}`)).join(t)}function Jn(e,t){return e.map(r=>Qe(r,t)).join(t)}function kt(e,t){return" ".repeat(e*t.indentSize)}function qo(e,t){if(t.maxDepth!==0&&e>t.maxDepth)throw N(0,`maximum nesting depth exceeded (maxDepth ${t.maxDepth})`)}function Zs(e,t,r){qo(t,r);for(let n of e)n.children!==void 0&&Zs(n.children,t+1,r)}var Eh={comma:",",tab:" ",pipe:"|"},vP=Eh.comma;var Dh=[Ye,"|"," "];var Fh=8,Ih=/^[A-Za-z0-9_-]+$/,AH=new TextEncoder,CH=new TextDecoder;function TP(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Pe(t,"invalid trailer count");return Number.parseInt(r,10)}function Mh(e,t){if(!Ih.test(e))throw Pe(t,"invalid tag")}function PP(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!Ih.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Pe(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function AP(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Pe(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(!Dh.includes(i)&&i!=="")throw Pe(t,"invalid header delimiter");let a=i===""?Ye:i,l=r.slice(n+1),d=null;if(!s&&l.startsWith("<")){let p=l.indexOf(">");if(p===-1)throw Pe(t,"invalid tag");if(d=l.slice(1,p),Mh(d,t),i!=="")throw Pe(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Pe(t,"invalid header");let c=l.slice(1,-2),u;try{u=Zt(c,a,t).map(p=>xt(p,t)[0])}catch(p){throw $o(p)}if(u.length===0||u.some(p=>p===""))throw Pe(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function CP(e,t,r){if(e===null||e.delimiter===void 0)throw Pe(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Pe(r,"continuation header mismatch")}function vh(e,t,r,n){let o;try{o=Zt(e,t,n)}catch(s){throw $o(s)}if(o.length!==r)throw Pe(n,"row arity mismatch");for(let s of o)try{lt(s,n)}catch(i){throw $o(i)}return o}function OP(e,t,r){let n={};return e.forEach((o,s)=>{try{mr(n,o,lt(t[s],r))}catch(i){throw $o(i)}}),n}function DP(e,t,r){if(e.startsWith("- "))throw Pe(t,"reserved line prefix");let n=TP(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Pe(t,"trailer without header");if(r.rowCount!==n)throw Pe(t,"trailer count mismatch");return{kind:"trailer"}}let o=AP(e,t);if(o!==null)return o.continuation?(CP(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=PP(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Pe(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:vh(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Pe(t,"row before header");return{kind:"row",cells:vh(e,r.delimiter,r.fields.length,t)}}function FP(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 m=n.get(g);if(m===void 0){if(n.size>=Fh)throw Pe(y,"too many tagged lanes");m={segments:[],current:null},n.set(g,m),r.push(g)}else m.current!==null&&m.segments.push(m.current);m.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},m.delimiter=f.delimiter,m.fields=f.fields,m.fieldText=f.fieldText}if(_a(e).forEach((g,f)=>{let y=f+1;if(g==="")return;let m=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},w=DP(g,y,m);if(w.kind==="trailer"){c(),i=null;return}if(w.kind!=="continuation"){if(w.kind==="tag-header"){l=!0,u(w.header.tag,w.header,y);return}if(w.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:w.header.delimiter,fields:w.header.fields,fieldText:w.header.fieldText,rows:[]};return}if(w.kind==="tagged-row"){l=!0;let _=n.get(w.tag).current;_.rows.push(w.cells),d(_,w.cells);return}if(i===null)throw Pe(y,"row before header");i.rows.push(w.cells),d(i,w.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 Lt(e){return FP(e).flatMap(t=>t.rows.map(r=>OP(t.fields,r,0)))}function IP(e){if(!Dh.includes(e))throw Pe(0,"invalid header delimiter")}function Sh(e,t,r=!1){return`[${`${r?"~":""}${e===Ye?"":e}`}]{${t}}:
33
+ `}function Th(e,t){return`[]<${e}>{${t}}:
34
+ `}function Bc(e,t){return t.map(Ie).join(e)}function MP(e){if(!Array.isArray(e)||e.length===0)throw Pe(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=xt(String(t),0)}catch(n){throw $o(n)}if(r==="")throw Pe(0,"TOONL header requires fields");return r})}function Ph(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Ah(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Pe(0,"TOONL continuation cadence must be positive")}function LP(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function Ch(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Pe(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Pe(0,"TOONL output requires object rows");if(t.some(r=>!Or(e[r])))throw Pe(0,"TOONL rows must be flat objects");return t}function jP(e){return JSON.stringify([...e].sort())}function Oh(e,t){let r=jP(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function ct({delimiter:e=Ye,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){IP(e),Ah(r),Ah(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}]
35
+ `,f=()=>LP(p,l,d)?(l=0,d=0,Sh(e,s,!0)):"",y=m=>{Mh(m,0);let w=c.get(m);if(w===void 0){if(c.size>=Fh)throw Pe(0,"too many tagged lanes");w={fields:null,fieldsByShape:new Map},c.set(m,w)}return w};return{push(m){if(u)throw Pe(0,"TOONL encoder is closed");let w=Oh(Ch(m),i),_="";(o===null||o.length!==w.length||o.some((F,$)=>F!==w[$]))&&(_+=g(),o=w,s=Bc(e,o),a=0,l=0,d=0,_+=Sh(e,s));let O=o.map(F=>Qe(m[F],e));_+=f();let T=`${O.join(e)}
36
+ `;return _+=T,a+=1,l+=1,d+=T.length,_},declareLane(m,w){if(u)throw Pe(0,"TOONL encoder is closed");let _=MP(w),O=Bc(Ye,_),T=y(m);return Ph(T.fields,_)?"":(T.fields=_,Th(m,O))},pushTagged(m,w){if(u)throw Pe(0,"TOONL encoder is closed");let _=y(m),O=Oh(Ch(w),_.fieldsByShape),T=Bc(Ye,O),F=O.map(G=>Qe(w[G],Ye)),$="";return Ph(_.fields,O)||(_.fields=O,$+=Th(m,T)),`${$}${m}:${F.join(Ye)}
37
+ `},end(){return u?"":(u=!0,g())}}}var er=Ia;function $a(e){let t={app:e,version:$P(Ko("__RED_BUILD_VERSION__",()=>"3.17.0")??"0.0.0-dev"),gitSha:Ko("__RED_BUILD_GIT_SHA__",()=>"edf32ce97c253b427bb8401f7566bc84af6170b3")??"unknown",buildTime:Ko("__RED_BUILD_TIME__",()=>"2026-08-12T01:46:36-03:00")??"unknown",bundleAsset:Ko("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=Ko("__REDDB_SDK_VERSION__",()=>""),n=Ko("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function $P(e){return e.startsWith("v")?e.slice(1):e}function Lh(e){return`${e.app} ${e.version} ${e.gitSha}`}function Ko(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var jh={"=":"data",":=":{to:"data",typed:!0},":":"meta"},BP=/^[a-z][a-z0-9+.-]*:\/\//i;function NP(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 GP(e=jh){return Object.entries(e).map(([t,r])=>NP(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function WP(e){return/^-\d+(\.\d+)?$/.test(e)}function ei(e){return!(!e||e.startsWith("-")&&!WP(e))}function Ba(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 $h(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=>$h(r.trim())):e}function Yn(e,t){switch(t){case"boolean":return HP(e);case"number":return UP(e);case"array":return e.split(",").map(r=>Ba(r.trim()));case"string":default:return e}}function HP(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function UP(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 yn(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function qP(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Le(e,t){return{type:e,value:t}}function KP(e){let t=[],r=zP(e);if(t.push(Le("section-header","Usage:"),Le("text"," "),Le("usage-text",r),Le("newline",`
38
38
  `),Le("newline",`
39
39
  `)),e.positional&&e.positional.length>0){t.push(Le("section-header","Arguments:"),Le("newline",`
40
40
  `));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Le("indent"," "),Le("positional-name",`<${o}>`)),n.required||t.push(Le("positional-optional"," (optional)")),t.push(Le("newline",`
41
41
  `),Le("indent"," "),Le("option-description",n.description),Le("newline",`
42
42
  `))}t.push(Le("newline",`
43
43
  `))}if(e.options&&Object.keys(e.options).length>0){t.push(Le("section-header","Options:"),Le("newline",`
44
- `));let n=BP(e.options);t.push(...n)}return t}function jP(e,t){let r=LP(e);return MP(r,t)}function $P(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 BP(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=b=>{u.includes(b)||u.push(b)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let b of c.aliases??[])b.length===1?p(`-${b}`):p(`--${b}`);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(Le("indent"," ")),r.push(Le(o,d.flags)),d.type&&(r.push(Le("text"," ")),r.push(Le(s,d.type))),r.push(Le("text",u)),r.push(Le(a,d.desc)),d.default!==void 0&&(r.push(Le("text"," ")),r.push(Le(i,`(default: ${d.default})`))),r.push(Le("newline",`
45
- `))}return r}function Ah(e){let t=KP(e.options??{},e.autoShort??!1),r=OP(e.separators??Th);return{schema:e,parse(n){return NP(n,e,t,r)},help(){return jP(e,e.formatter)}}}function NP(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=UP(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!QP(c)){l=qP(c,l,e,o,r,t);continue}let u=GP(c,n);if(u){let{key:p,value:g,config:f}=u,b=o,h=b[f.to]??(b[f.to]={});h[p]=f.typed?Ph(g):yn(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let b=e[l];f.push(p.type?Jn(b,p.type):b),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 zP(o,t,r),JP(o,t,a),YP(o,t,r),o}function GP(e,t){if(AP.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(WP(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(HP(o,s,r))return{key:o,value:s,config:r}}}return null}function WP(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function HP(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 UP(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 Ia(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return Ys(l)?Ia(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 qP(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=Lc(l,o);return c?Ia(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=Fa(yn(d))),t+1)}if(i.length===1){let a=Lc(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return Ys(l)?Ia(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(Ys(l))return n.options[i]=Fa(yn(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=Lc(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 Ia(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Jn(yn(t),i.type):yn(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(yn(t),i.type):yn(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]=Fa(yn(t)));return r}function KP(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=VP(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 VP(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 Lc(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function zP(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 JP(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 YP(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 QP(e){return/^-\d+(\.\d+)?$/.test(e)}var jc=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 XP(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 ZP(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&&Ys(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 rn(e,t,r={}){let o=Ah({options:XP(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=ZP(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 jc(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 $c=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 Ch(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 $c(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as FA,closeSync as IA,mkdirSync as MA,openSync as LA,readFileSync as jA,readSync as $A,statSync as BA}from"node:fs";import{dirname as Yh,join as NA}from"node:path";var Oh="RED_WORKER_SCOPE",Dh="RED_WORKER_MEMORY_CEILING",Fh="RED_WORKER_SCOPE_DEGRADATION",eA="RED_WORKER_ID",tA="RED_WORKER_BORN_AT",Nc={scope:null,memory_ceiling:null,scope_degradation:null};function Gc(e){return{scope:Bc(e[Oh]),memory_ceiling:Bc(e[Dh]),scope_degradation:Bc(e[Fh])}}function Ih(e,t){let r={};return t!=null&&(r[eA]=t.worker_id,r[tA]=t.born_at),e.scope!=null&&e.scope!==""&&(r[Oh]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(r[Dh]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(r[Fh]=e.scope_degradation),r}function Bc(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as oA,readdirSync as sA,readFileSync as $h,rmSync as iA,writeFileSync as aA}from"node:fs";import{basename as lA,join as Ko}from"node:path";import{isAbsolute as ZH,join as Ma,resolve as eU}from"node:path";function rA(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var Mh="deaths",Lh="deaths.toonl";function La(e){return Ma(rA(e),Mh)}function qo(e){return Ma(La(e),Lh)}var Qs="live",jh="attributions.toonl";function ja(e){return Ma(La(e),Qs)}function Wc(e){return Ma(La(e),jh)}var Uc=Ko("sys","kernel","random","boot_id"),Bh=1;function qc(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:Bh,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Nh(Ko(r,Uc)),cgroup:dA(r,n),last_phase:e.last_phase}}function Nh(e){try{let t=$h(e,"utf8").trim();return t===""?null:t}catch{return null}}function dA(e,t){let r=Nh(Ko(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
46
- `),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 Kc(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Vc(e,t){let r=Ko(e,Kc(t));try{return oA(e,{recursive:!0,mode:448}),aA(r,lt({trailer:!1}).push(uA(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function Yn(e,t){try{iA(Ko(e,Kc(t)),{force:!0})}catch{}}function zc(e,t){let r;try{r=sA(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Ko(e,o);try{let a=jt($h(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(cA(a))}catch(i){t?.(lA(s),i instanceof Error?i.message:String(i))}}return n}function cA(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:Hc(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:Hc(e.pid),ppid:Hc(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 Hc(e){return typeof e=="number"?e:Number(e)}function uA(e){return{...e}}import{execFile as pA}from"node:child_process";import{renameSync as fA,rmSync as gA,statSync as dU,writeFileSync as mA}from"node:fs";import{readdir as hA,readFile as yA,rename as bA,rm as Wh,stat as kA,writeFile as RA}from"node:fs/promises";import{join as wA}from"node:path";import{promisify as _A}from"node:util";var xA=_A(pA),nn=.5,EA=5e3,gU=256*1024*1024,Qn=1024*1024,Gh=14*24*60*60*1e3,gr={"process-deaths":{maxBytes:4*Qn,maxAgeMs:Gh,targetRatio:nn},"github-spend":{maxBytes:8*Qn,targetRatio:nn},"castle-singleton-events":{maxBytes:2*Qn,targetRatio:nn},"rsp-telemetry-spool":{maxBytes:8*Qn,targetRatio:nn},"rsp-telemetry-corrections":{maxBytes:Qn,targetRatio:nn},"death-attributions":{maxBytes:Qn,maxAgeMs:Gh,targetRatio:nn},"worker-log":{maxLines:5e4,targetRatio:nn},"worker-liveness":{maxBytes:Qn,targetRatio:nn},"castle-history":{maxLines:1e4,targetRatio:nn}};function Hh(e){let t=e.maxBytes;if(t!==void 0&&(!Number.isSafeInteger(t)||t<0))throw new Error("lane retention maxBytes must be a non-negative safe integer");return t}function Uh(e){return e.code==="ENOENT"}async function qh(e,t,r,n=kA){let o=Hh(r);if(o===void 0)return!1;let s=0;try{s=(await n(e)).size}catch(i){if(!Uh(i))throw i}return s+t>o}function Kh(e,t,r){let n=Hh(r);return n!==void 0&&e+t>n}async function vA(e,t,r){try{return await xA("tq",["trim","--keep-last",String(t),"--in-place",e],{timeout:r,windowsHide:!0}),!0}catch{return!1}}function SA(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("lane retention keepLast must be a non-negative safe integer")}function TA(e){if(e.length===0)return"";let t=lt({trailer:!1});return e.map(r=>t.push(r)).join("")}async function PA(e,t){let r=`${e}.retaining-${process.pid}`;try{await RA(r,t,{encoding:"utf8",mode:384}),await bA(r,e)}finally{await Wh(r,{force:!0})}}function $a(e,t){let r=`${e}.retaining-${process.pid}`;try{mA(r,t,{encoding:"utf8",mode:384}),fA(r,e)}finally{gA(r,{force:!0})}}async function Vh(e,t,r={}){SA(t);let n=r.timeoutMs??EA;if(await(r.runTq??vA)(e,t,n))return"tq";let s=await yA(e,"utf8"),i=s.endsWith(`
44
+ `));let n=JP(e.options);t.push(...n)}return t}function VP(e,t){let r=KP(e);return qP(r,t)}function zP(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 JP(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(Le("indent"," ")),r.push(Le(o,d.flags)),d.type&&(r.push(Le("text"," ")),r.push(Le(s,d.type))),r.push(Le("text",u)),r.push(Le(a,d.desc)),d.default!==void 0&&(r.push(Le("text"," ")),r.push(Le(i,`(default: ${d.default})`))),r.push(Le("newline",`
45
+ `))}return r}function Bh(e){let t=rA(e.options??{},e.autoShort??!1),r=GP(e.separators??jh);return{schema:e,parse(n){return YP(n,e,t,r)},help(){return VP(e,e.formatter)}}}function YP(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?Yn(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Yn(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=eA(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!aA(c)){l=tA(c,l,e,o,r,t);continue}let u=QP(c,n);if(u){let{key:p,value:g,config:f}=u,y=o,m=y[f.to]??(y[f.to]={});m[p]=f.typed?$h(g):yn(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?Yn(y,p.type):y),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Yn(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 oA(o,t,r),sA(o,t,a),iA(o,t,r),o}function QP(e,t){if(BP.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(XP(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(ZP(o,s,r))return{key:o,value:s,config:r}}}return null}function XP(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function ZP(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 eA(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 Na(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return ei(l)?Na(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 tA(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=Nc(l,o);return c?Na(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=Ba(yn(d))),t+1)}if(i.length===1){let a=Nc(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return ei(l)?Na(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(ei(l))return n.options[i]=Ba(yn(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=Nc(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 Na(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Yn(yn(t),i.type):yn(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Yn(yn(t),i.type):yn(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]=Ba(yn(t)));return r}function rA(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=nA(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 nA(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 Nc(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function oA(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?Yn(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 sA(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 iA(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 aA(e){return/^-\d+(\.\d+)?$/.test(e)}var Gc=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 lA(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 dA(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&&ei(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 rn(e,t,r={}){let o=Bh({options:lA(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=dA(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 Gc(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 Wc=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 Nh(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 Wc(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as HA,closeSync as UA,mkdirSync as qA,openSync as KA,readFileSync as VA,readSync as zA,statSync as JA}from"node:fs";import{dirname as iy,join as YA}from"node:path";var Gh="RED_WORKER_SCOPE",Wh="RED_WORKER_MEMORY_CEILING",Hh="RED_WORKER_SCOPE_DEGRADATION",cA="RED_WORKER_ID",uA="RED_WORKER_BORN_AT",Uc={scope:null,memory_ceiling:null,scope_degradation:null};function qc(e){return{scope:Hc(e[Gh]),memory_ceiling:Hc(e[Wh]),scope_degradation:Hc(e[Hh])}}function Uh(e,t){let r={};return t!=null&&(r[cA]=t.worker_id,r[uA]=t.born_at),e.scope!=null&&e.scope!==""&&(r[Gh]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(r[Wh]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(r[Hh]=e.scope_degradation),r}function Hc(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as gA,readdirSync as mA,readFileSync as zh,rmSync as hA,writeFileSync as yA}from"node:fs";import{basename as bA,join as zo}from"node:path";import{isAbsolute as kU,join as Ga,resolve as RU}from"node:path";function pA(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var qh="deaths",Kh="deaths.toonl";function Wa(e){return Ga(pA(e),qh)}function Vo(e){return Ga(Wa(e),Kh)}var ti="live",Vh="attributions.toonl";function Ha(e){return Ga(Wa(e),ti)}function Kc(e){return Ga(Wa(e),Vh)}var zc=zo("sys","kernel","random","boot_id"),Jh=1;function Jc(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:Jh,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Yh(zo(r,zc)),cgroup:kA(r,n),last_phase:e.last_phase}}function Yh(e){try{let t=zh(e,"utf8").trim();return t===""?null:t}catch{return null}}function kA(e,t){let r=Yh(zo(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
46
+ `),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 Yc(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Qc(e,t){let r=zo(e,Yc(t));try{return gA(e,{recursive:!0,mode:448}),yA(r,ct({trailer:!1}).push(wA(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function Qn(e,t){try{hA(zo(e,Yc(t)),{force:!0})}catch{}}function Xc(e,t){let r;try{r=mA(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=zo(e,o);try{let a=Lt(zh(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(RA(a))}catch(i){t?.(bA(s),i instanceof Error?i.message:String(i))}}return n}function RA(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:Vc(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:Vc(e.pid),ppid:Vc(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 Vc(e){return typeof e=="number"?e:Number(e)}function wA(e){return{...e}}import{execFile as _A}from"node:child_process";import{renameSync as xA,rmSync as EA,statSync as AU,writeFileSync as vA}from"node:fs";import{readdir as SA,readFile as TA,rename as PA,rm as Xh,stat as AA,writeFile as CA}from"node:fs/promises";import{join as OA}from"node:path";import{promisify as DA}from"node:util";var FA=DA(_A),Mr=.5,IA=5e3,IU=256*1024*1024,Xn=1024*1024,Qh=14*24*60*60*1e3,Ut={"process-deaths":{maxBytes:4*Xn,maxAgeMs:Qh,targetRatio:Mr},"github-spend":{maxBytes:8*Xn,targetRatio:Mr},"github-balance":{maxBytes:64*1024,targetRatio:Mr},"castle-singleton-events":{maxBytes:2*Xn,targetRatio:Mr},"rsp-telemetry-spool":{maxBytes:8*Xn,targetRatio:Mr},"rsp-telemetry-corrections":{maxBytes:Xn,targetRatio:Mr},"death-attributions":{maxBytes:Xn,maxAgeMs:Qh,targetRatio:Mr},"worker-log":{maxLines:5e4,targetRatio:Mr},"worker-liveness":{maxBytes:Xn,targetRatio:Mr},"castle-history":{maxLines:1e4,targetRatio:Mr}};function Zh(e){let t=e.maxBytes;if(t!==void 0&&(!Number.isSafeInteger(t)||t<0))throw new Error("lane retention maxBytes must be a non-negative safe integer");return t}function ey(e){return e.code==="ENOENT"}async function ty(e,t,r,n=AA){let o=Zh(r);if(o===void 0)return!1;let s=0;try{s=(await n(e)).size}catch(i){if(!ey(i))throw i}return s+t>o}function ry(e,t,r){let n=Zh(r);return n!==void 0&&e+t>n}async function MA(e,t,r){try{return await FA("tq",["trim","--keep-last",String(t),"--in-place",e],{timeout:r,windowsHide:!0}),!0}catch{return!1}}function LA(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("lane retention keepLast must be a non-negative safe integer")}function jA(e){if(e.length===0)return"";let t=ct({trailer:!1});return e.map(r=>t.push(r)).join("")}async function $A(e,t){let r=`${e}.retaining-${process.pid}`;try{await CA(r,t,{encoding:"utf8",mode:384}),await PA(r,e)}finally{await Xh(r,{force:!0})}}function Ua(e,t){let r=`${e}.retaining-${process.pid}`;try{vA(r,t,{encoding:"utf8",mode:384}),xA(r,e)}finally{EA(r,{force:!0})}}async function ny(e,t,r={}){LA(t);let n=r.timeoutMs??IA;if(await(r.runTq??MA)(e,t,n))return"tq";let s=await TA(e,"utf8"),i=s.endsWith(`
47
47
  `)?s:s.slice(0,s.lastIndexOf(`
48
- `)+1),a=i===""?[]:jt(i),l=t===0?[]:a.slice(-t);return await PA(e,TA(l)),"js"}function AA(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}var CA=/\.(?:rotate|retaining)-(\d+)(?:-|$)/,OA=/rsp-telemetry\.spool\.(?:toonl|jsonl)\.(\d+)\.\d+\.drain$/;function DA(e){let t=CA.exec(e)??OA.exec(e);return t===null?null:Number(t[1])}async function zh(e,t={}){let r=[],n=[],o=t.isPidAlive??AA,s=async i=>{let a;try{a=await hA(i,{withFileTypes:!0})}catch(l){if(Uh(l))return;throw l}for(let l of a){let d=wA(i,l.name);if(l.isDirectory()){await s(d);continue}if(!l.isFile())continue;let c=DA(l.name);if(c!==null){if(await o(c)){n.push(d);continue}await Wh(d,{force:!0}),r.push(d)}}};return await s(e),r.sort(),n.sort(),{removed:r,preserved:n}}var GA=1,WA=gr["process-deaths"].maxAgeMs,Yc=gr["process-deaths"].maxBytes,Qh=gr["process-deaths"].targetRatio,HA=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function UA(e){return typeof e=="string"&&HA.has(e)}var qA="startup";function KA(e,t){return{...e.scope??Nc,version:GA,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 VA(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 Ba={mkdir(e){MA(e,{recursive:!0,mode:448})},inspect(e){let t;try{t=BA(e).size}catch(n){if(n.code==="ENOENT")return{size:0,endsClean:!0};throw n}if(t===0)return{size:t,endsClean:!0};let r;try{r=LA(e,"r");let n=Buffer.allocUnsafe(1);return $A(r,n,0,1,t-1),{size:t,endsClean:n[0]===10}}catch{return{size:t,endsClean:!0}}finally{r!==void 0&&IA(r)}},append(e,t){FA(e,t,{encoding:"utf8",mode:384})},replace(e,t){$a(e,t)},read(e){return jA(e,"utf8")}};function Xh(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function zA(e,t,r=Ba){let n=lt({trailer:!1}).push(Xh(t)),o=Buffer.byteLength(n),s=r.inspect(e),i=s.endsClean?0:1,a=Date.parse(t.ts),l=Number.isFinite(a)?a:Date.now(),d=!1;if(Kh(s.size,i+o,gr["process-deaths"])){let c=Math.max(0,Math.floor(Yc*Qh)-o);ey(e,l,r,c),d=!0}return r.mkdir(Yh(e)),!d&&!s.endsClean&&s.size>0&&r.append(e,`
49
- `),r.append(e,n),t}function Zh(e,t=Date.now(),r=Ba){return ey(e,t,r)}function ey(e,t,r,n){let o,s;try{o=r.read(e),s=Qc(o)}catch(u){if(u.code==="ENOENT")return[];throw u}let i=t-WA,a=s.filter(u=>{let p=Date.parse(u.ts);return!Number.isFinite(p)||p>=i}),l=Buffer.byteLength(o)>Yc,d=n??(l?Math.floor(Yc*Qh):void 0),c=d===void 0?a:JA(a,d);return n===void 0&&!l&&c.length===s.length||r.replace(e,ty(c)),c}function JA(e,t){let r=new Set,n=[];e.forEach((a,l)=>{Number.isFinite(Date.parse(a.ts))?n.push(l):r.add(l)});let o=0,s=n.length;for(;o<s;){let a=Math.floor((o+s)/2),l=new Set([...r,...n.slice(a)]),d=e.filter((c,u)=>l.has(u));Buffer.byteLength(ty(d))<=t?s=a:o=a+1}let i=new Set([...r,...n.slice(o)]);return e.filter((a,l)=>i.has(l))}function ty(e){if(e.length===0)return"";let t=lt({trailer:!1});return e.map(r=>t.push(Xh(r))).join("")}function Qc(e){let t=e.endsWith(`
48
+ `)+1),a=i===""?[]:Lt(i),l=t===0?[]:a.slice(-t);return await $A(e,jA(l)),"js"}function BA(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}var NA=/\.(?:rotate|retaining)-(\d+)(?:-|$)/,GA=/rsp-telemetry\.spool\.(?:toonl|jsonl)\.(\d+)\.\d+\.drain$/;function WA(e){let t=NA.exec(e)??GA.exec(e);return t===null?null:Number(t[1])}async function oy(e,t={}){let r=[],n=[],o=t.isPidAlive??BA,s=async i=>{let a;try{a=await SA(i,{withFileTypes:!0})}catch(l){if(ey(l))return;throw l}for(let l of a){let d=OA(i,l.name);if(l.isDirectory()){await s(d);continue}if(!l.isFile())continue;let c=WA(l.name);if(c!==null){if(await o(c)){n.push(d);continue}await Xh(d,{force:!0}),r.push(d)}}};return await s(e),r.sort(),n.sort(),{removed:r,preserved:n}}var QA=1,XA=Ut["process-deaths"].maxAgeMs,eu=Ut["process-deaths"].maxBytes,ay=Ut["process-deaths"].targetRatio,ZA=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function eC(e){return typeof e=="string"&&ZA.has(e)}var tC="startup";function rC(e,t){return{...e.scope??Uc,version:QA,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 nC(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 qa={mkdir(e){qA(e,{recursive:!0,mode:448})},inspect(e){let t;try{t=JA(e).size}catch(n){if(n.code==="ENOENT")return{size:0,endsClean:!0};throw n}if(t===0)return{size:t,endsClean:!0};let r;try{r=KA(e,"r");let n=Buffer.allocUnsafe(1);return zA(r,n,0,1,t-1),{size:t,endsClean:n[0]===10}}catch{return{size:t,endsClean:!0}}finally{r!==void 0&&UA(r)}},append(e,t){HA(e,t,{encoding:"utf8",mode:384})},replace(e,t){Ua(e,t)},read(e){return VA(e,"utf8")}};function ly(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function oC(e,t,r=qa){let n=ct({trailer:!1}).push(ly(t)),o=Buffer.byteLength(n),s=r.inspect(e),i=s.endsClean?0:1,a=Date.parse(t.ts),l=Number.isFinite(a)?a:Date.now(),d=!1;if(ry(s.size,i+o,Ut["process-deaths"])){let c=Math.max(0,Math.floor(eu*ay)-o);cy(e,l,r,c),d=!0}return r.mkdir(iy(e)),!d&&!s.endsClean&&s.size>0&&r.append(e,`
49
+ `),r.append(e,n),t}function dy(e,t=Date.now(),r=qa){return cy(e,t,r)}function cy(e,t,r,n){let o,s;try{o=r.read(e),s=tu(o)}catch(u){if(u.code==="ENOENT")return[];throw u}let i=t-XA,a=s.filter(u=>{let p=Date.parse(u.ts);return!Number.isFinite(p)||p>=i}),l=Buffer.byteLength(o)>eu,d=n??(l?Math.floor(eu*ay):void 0),c=d===void 0?a:sC(a,d);return n===void 0&&!l&&c.length===s.length||r.replace(e,uy(c)),c}function sC(e,t){let r=new Set,n=[];e.forEach((a,l)=>{Number.isFinite(Date.parse(a.ts))?n.push(l):r.add(l)});let o=0,s=n.length;for(;o<s;){let a=Math.floor((o+s)/2),l=new Set([...r,...n.slice(a)]),d=e.filter((c,u)=>l.has(u));Buffer.byteLength(uy(d))<=t?s=a:o=a+1}let i=new Set([...r,...n.slice(o)]);return e.filter((a,l)=>i.has(l))}function uy(e){if(e.length===0)return"";let t=ct({trailer:!1});return e.map(r=>t.push(ly(r))).join("")}function tu(e){let t=e.endsWith(`
50
50
  `)?e:e.slice(0,e.lastIndexOf(`
51
- `)+1);return t===""?[]:jt(t).map(YA)}function YA(e){let t=e.exit_path;if(!UA(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:Qt(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:Qt(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:Qt(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:Qt(e.uptime_s),rss_kb:Qt(e.rss_kb),max_rss_kb:Qt(e.max_rss_kb),user_cpu_us:Qt(e.user_cpu_us),system_cpu_us:Qt(e.system_cpu_us),minor_page_faults:Qt(e.minor_page_faults),major_page_faults:Qt(e.major_page_faults),voluntary_ctx_switches:Qt(e.voluntary_ctx_switches),involuntary_ctx_switches:Qt(e.involuntary_ctx_switches)}}function Qt(e){return typeof e=="number"?e:Number(e)}function ry(e,t=Ba){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return Qc(r)}var QA=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],Jc=null;function ny(e){let t=e.host??process,r=e.io??Ba,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??Gc(process.env),i=e.phase??qA,a=null,l=e.presenceDir===void 0?NA(Yh(e.lanePath),Qs):e.presenceDir,d=null,c=()=>{l!==null&&(d=qc({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Vc(l,d))},u=h=>{if(!a){try{a=zA(e.lanePath,KA({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...h},VA(t)),r)}catch{}l!==null&&d!==null&&Yn(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:Jh(h)})},unhandledRejection(h){u({exit_path:"unhandled-rejection",detail:Jh(h)})}},f=[...(e.signals??QA).map(h=>{let w=()=>{if(p.signal(h),!(t.listenerCount?.(h)!==1||!t.kill)){t.off(h,w);try{t.kill(o,h)}catch{}}};return[h,w]}),["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,w]of f)t.on(h,w);let b={lanePath:e.lanePath,phase(h){i=h,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[h,w]of f)t.off(h,w);l!==null&&d!==null&&Yn(l,d),Jc===b&&(Jc=null)},handlers:p};return e.setActive!==!1&&(Jc=b),c(),b}function Jh(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as XA,readdirSync as ZA,readFileSync as Na,statSync as eC}from"node:fs";import{join as cy}from"node:path";var tC=1,rC=gr["death-attributions"].maxAgeMs,oy=gr["death-attributions"].maxBytes,nC=gr["death-attributions"].targetRatio,oC=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],sC=512*1024;function iC(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??oC,n=[],o=cy(t,Uc),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:Xc(l),detail:null})}let i=new Set;try{for(let l of ZA(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:Xc(l),detail:null})}let a=[];for(let l of r)try{let c=aC(l,e.tailBytes??sC).split(`
52
- `).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:Xc(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Xc(e){return e.code==="ENOENT"?"absent":"unreadable"}function aC(e,t){let r=eC(e).size,n=Na(e,"utf8");return r<=t?n:n.slice(n.length-t)}var lC=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,dC=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,cC=/Killed (\/\S*) due to memory pressure/,uC=/\bopid=(\d+)\b/,sy=/\bsig=(\d+)\b/,pC=/\buid=(\d+)\b/,fC=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,gC={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function mC(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:tC,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=>iy(u,e.pid,lC)||iy(u,e.pid,dC));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=cC.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(uC.exec(u)?.[1])===e.pid&&sy.test(u));if(d!==void 0){let u=Number(sy.exec(d)?.[1]),p=pC.exec(d)?.[1];return i("user-signal",o?"medium":"high",gC[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=>fC.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 iy(e,t,r){return Number(r.exec(e)?.[1])===t}var uy=" | ";function ay(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(uy)}function ly(e){return e===""?[]:e.split(uy)}function hC(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:ay(e.evidence),checked:ay(e.checked)}}function Zc(e){let t=lt({trailer:!1});return e.map(r=>t.push(hC(r))).join("")}function yC(e){let t=e.endsWith(`
51
+ `)+1);return t===""?[]:Lt(t).map(iC)}function iC(e){let t=e.exit_path;if(!eC(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:tr(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:tr(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:tr(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:tr(e.uptime_s),rss_kb:tr(e.rss_kb),max_rss_kb:tr(e.max_rss_kb),user_cpu_us:tr(e.user_cpu_us),system_cpu_us:tr(e.system_cpu_us),minor_page_faults:tr(e.minor_page_faults),major_page_faults:tr(e.major_page_faults),voluntary_ctx_switches:tr(e.voluntary_ctx_switches),involuntary_ctx_switches:tr(e.involuntary_ctx_switches)}}function tr(e){return typeof e=="number"?e:Number(e)}function py(e,t=qa){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return tu(r)}var aC=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],Zc=null;function fy(e){let t=e.host??process,r=e.io??qa,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??qc(process.env),i=e.phase??tC,a=null,l=e.presenceDir===void 0?YA(iy(e.lanePath),ti):e.presenceDir,d=null,c=()=>{l!==null&&(d=Jc({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Qc(l,d))},u=m=>{if(!a){try{a=oC(e.lanePath,rC({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...m},nC(t)),r)}catch{}l!==null&&d!==null&&Qn(l,d)}},p={signal(m){u({exit_path:"signal",signal:m})},exit(m){u({exit_path:"exit",exit_code:m})},uncaughtException(m){u({exit_path:"uncaught-exception",detail:sy(m)})},unhandledRejection(m){u({exit_path:"unhandled-rejection",detail:sy(m)})}},f=[...(e.signals??aC).map(m=>{let w=()=>{if(p.signal(m),!(t.listenerCount?.(m)!==1||!t.kill)){t.off(m,w);try{t.kill(o,m)}catch{}}};return[m,w]}),["uncaughtException",(...m)=>p.uncaughtException(m[0])],["unhandledRejection",(...m)=>p.unhandledRejection(m[0])],["exit",(...m)=>p.exit(typeof m[0]=="number"?m[0]:null)]];for(let[m,w]of f)t.on(m,w);let y={lanePath:e.lanePath,phase(m){i=m,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[m,w]of f)t.off(m,w);l!==null&&d!==null&&Qn(l,d),Zc===y&&(Zc=null)},handlers:p};return e.setActive!==!1&&(Zc=y),c(),y}function sy(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as lC,readdirSync as dC,readFileSync as Ka,statSync as cC}from"node:fs";import{join as Ry}from"node:path";var uC=1,pC=Ut["death-attributions"].maxAgeMs,gy=Ut["death-attributions"].maxBytes,fC=Ut["death-attributions"].targetRatio,gC=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],mC=512*1024;function hC(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??gC,n=[],o=Ry(t,zc),s=null;try{let l=Ka(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:ru(l),detail:null})}let i=new Set;try{for(let l of dC(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:ru(l),detail:null})}let a=[];for(let l of r)try{let c=yC(l,e.tailBytes??mC).split(`
52
+ `).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:ru(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function ru(e){return e.code==="ENOENT"?"absent":"unreadable"}function yC(e,t){let r=cC(e).size,n=Ka(e,"utf8");return r<=t?n:n.slice(n.length-t)}var bC=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,kC=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,RC=/Killed (\/\S*) due to memory pressure/,wC=/\bopid=(\d+)\b/,my=/\bsig=(\d+)\b/,_C=/\buid=(\d+)\b/,xC=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,EC={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function vC(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:uC,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=>hy(u,e.pid,bC)||hy(u,e.pid,kC));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=RC.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(wC.exec(u)?.[1])===e.pid&&my.test(u));if(d!==void 0){let u=Number(my.exec(d)?.[1]),p=_C.exec(d)?.[1];return i("user-signal",o?"medium":"high",EC[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=>xC.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 hy(e,t,r){return Number(r.exec(e)?.[1])===t}var wy=" | ";function yy(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(wy)}function by(e){return e===""?[]:e.split(wy)}function SC(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:yy(e.evidence),checked:yy(e.checked)}}function nu(e){let t=ct({trailer:!1});return e.map(r=>t.push(SC(r))).join("")}function TC(e){let t=e.endsWith(`
53
53
  `)?e:e.slice(0,e.lastIndexOf(`
54
- `)+1);return t===""?[]:jt(t).map(r=>{let n=r.kind;if(n!=="launcher"&&n!=="worker"&&n!=="daemon")throw new Error(`attribution has unknown kind ${String(n)}`);return{version:dy(r.version),ts:String(r.ts),kind:n,id:String(r.id),pid:dy(r.pid),last_seen:String(r.last_seen),last_phase:String(r.last_phase),sender_class:String(r.sender_class),confidence:String(r.confidence),signal:r.signal==null?null:String(r.signal),host_boot_changed:r.host_boot_changed===!0||r.host_boot_changed==="true",evidence:ly(String(r.evidence??"")),checked:ly(String(r.checked??""))}})}function py(e){let t=ja(e.stateRoot),r=Wc(e.stateRoot),o=(e.now??(()=>new Date().toISOString()))(),s=e.evidence??iC({procRoot:e.procRoot,journalPaths:e.journalPaths}),i=[],a=zc(t,g=>i.push(g)),l=ry(qo(e.stateRoot)),d=[],c=[],u=[];for(let g of a){if(s.live_pids.has(g.pid)){c.push(g);continue}if(l.find(b=>b.pid===g.pid&&b.id===g.id)!==void 0){u.push(g),Yn(t,g);continue}d.push(mC(g,s,l,o)),Yn(t,g)}let p=Date.parse(o);return Number.isFinite(p)&&Zh(qo(e.stateRoot),p),d.length>0&&bC(r,d,Number.isFinite(p)?p:Date.now()),{attributions:d,alive:c,self_recorded:u,skipped:i,laneText:()=>{try{return Na(r,"utf8")}catch{return""}}}}function fy(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 bC(e,t,r){try{XA(cy(e,".."),{recursive:!0,mode:448});let n=RC(e),o=[...yC(n),...t],s=kC(o,r);$a(e,Zc(s))}catch{}}function kC(e,t){let r=t-rC,n=e.filter(c=>{let u=Date.parse(c.ts);return!Number.isFinite(u)||u>=r});if(Buffer.byteLength(Zc(n))<=oy)return n;let o=Math.floor(oy*nC),s=new Set,i=[];n.forEach((c,u)=>{Number.isFinite(Date.parse(c.ts))?i.push(u):s.add(u)});let a=0,l=i.length;for(;a<l;){let c=Math.floor((a+l)/2),u=new Set([...s,...i.slice(c)]),p=n.filter((g,f)=>u.has(f));Buffer.byteLength(Zc(p))<=o?l=c:a=c+1}let d=new Set([...s,...i.slice(a)]);return n.filter((c,u)=>d.has(u))}function RC(e){try{return Na(e,"utf8")}catch{return""}}function dy(e){return typeof e=="number"?e:Number(e)}import{join as wC}from"node:path";var _C=[".red","redskilled"],on=448;function $t(e){return wC(e,..._C)}import{randomUUID as a_}from"node:crypto";import{spawn as Gj}from"node:child_process";import{mkdir as Wj}from"node:fs/promises";import{dirname as Hj}from"node:path";import{createHash as vC}from"node:crypto";import{constants as ou}from"node:fs";import{mkdir as _y,open as SC,readFile as TC,rm as xy,stat as PC}from"node:fs/promises";import{createConnection as AC}from"node:net";import{tmpdir as CC}from"node:os";import{dirname as Ey,join as Xs}from"node:path";var xC="toon";function hy(e){return e.trimStart().startsWith("{")?"json":"toon"}function tu(e){let t=0;for(;e[t]===`
55
- `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=hy(r);if(n==="json"){let s=r.indexOf(`
54
+ `)+1);return t===""?[]:Lt(t).map(r=>{let n=r.kind;if(n!=="launcher"&&n!=="worker"&&n!=="daemon")throw new Error(`attribution has unknown kind ${String(n)}`);return{version:ky(r.version),ts:String(r.ts),kind:n,id:String(r.id),pid:ky(r.pid),last_seen:String(r.last_seen),last_phase:String(r.last_phase),sender_class:String(r.sender_class),confidence:String(r.confidence),signal:r.signal==null?null:String(r.signal),host_boot_changed:r.host_boot_changed===!0||r.host_boot_changed==="true",evidence:by(String(r.evidence??"")),checked:by(String(r.checked??""))}})}function _y(e){let t=Ha(e.stateRoot),r=Kc(e.stateRoot),o=(e.now??(()=>new Date().toISOString()))(),s=e.evidence??hC({procRoot:e.procRoot,journalPaths:e.journalPaths}),i=[],a=Xc(t,g=>i.push(g)),l=py(Vo(e.stateRoot)),d=[],c=[],u=[];for(let g of a){if(s.live_pids.has(g.pid)){c.push(g);continue}if(l.find(y=>y.pid===g.pid&&y.id===g.id)!==void 0){u.push(g),Qn(t,g);continue}d.push(vC(g,s,l,o)),Qn(t,g)}let p=Date.parse(o);return Number.isFinite(p)&&dy(Vo(e.stateRoot),p),d.length>0&&PC(r,d,Number.isFinite(p)?p:Date.now()),{attributions:d,alive:c,self_recorded:u,skipped:i,laneText:()=>{try{return Ka(r,"utf8")}catch{return""}}}}function xy(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 PC(e,t,r){try{lC(Ry(e,".."),{recursive:!0,mode:448});let n=CC(e),o=[...TC(n),...t],s=AC(o,r);Ua(e,nu(s))}catch{}}function AC(e,t){let r=t-pC,n=e.filter(c=>{let u=Date.parse(c.ts);return!Number.isFinite(u)||u>=r});if(Buffer.byteLength(nu(n))<=gy)return n;let o=Math.floor(gy*fC),s=new Set,i=[];n.forEach((c,u)=>{Number.isFinite(Date.parse(c.ts))?i.push(u):s.add(u)});let a=0,l=i.length;for(;a<l;){let c=Math.floor((a+l)/2),u=new Set([...s,...i.slice(c)]),p=n.filter((g,f)=>u.has(f));Buffer.byteLength(nu(p))<=o?l=c:a=c+1}let d=new Set([...s,...i.slice(a)]);return n.filter((c,u)=>d.has(u))}function CC(e){try{return Ka(e,"utf8")}catch{return""}}function ky(e){return typeof e=="number"?e:Number(e)}import{join as OC}from"node:path";var DC=[".red","redskilled"],nn=448;function jt(e){return OC(e,...DC)}import{randomUUID as y_}from"node:crypto";import{spawn as l$}from"node:child_process";import{mkdir as d$}from"node:fs/promises";import{dirname as c$}from"node:path";import{createHash as MC}from"node:crypto";import{constants as lu}from"node:fs";import{mkdir as Dy,open as LC,readFile as jC,rm as Fy,stat as $C}from"node:fs/promises";import{createConnection as BC}from"node:net";import{tmpdir as NC}from"node:os";import{dirname as Iy,join as ri}from"node:path";var FC="toon";function Sy(e){return e.trimStart().startsWith("{")?"json":"toon"}function su(e){let t=0;for(;e[t]===`
55
+ `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Sy(r);if(n==="json"){let s=r.indexOf(`
56
56
  `);return s<0?null:{frame:r.slice(0,s),dialect:n,rest:r.slice(s+1)}}let o=r.indexOf(`
57
57
 
58
- `);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function ru(e){let t=hy(e)==="json"?eu:gy,r=t===eu?gy:eu;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function eu(e){return JSON.parse(e)}function gy(e){return Mr(e)}function nu(e,t){if(t==="toon"){let r=EC(e);if(r!==null)return r.endsWith(`
58
+ `);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function iu(e){let t=Sy(e)==="json"?ou:Ey,r=t===ou?Ey:ou;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function ou(e){return JSON.parse(e)}function Ey(e){return er(e)}function au(e,t){if(t==="toon"){let r=IC(e);if(r!==null)return r.endsWith(`
59
59
  `)?`${r}
60
60
  `:`${r}
61
61
 
62
62
  `}return`${JSON.stringify(e)}
63
- `}function EC(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=ht(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function yy(e,t){return!my(e)||!my(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function my(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var by=new Set;function ky(e){return by.has(e)?"json":xC}function Ry(e){by.add(e)}var OC=108;async function Ga(e,t,r="resident server"){let n=e.wire,o=n??ky(e.socketPath),s=await wy(e,t,r,o);return n||o==="json"||!yy(t,s)?s:(Ry(e.socketPath),await wy(e,t,r,"json"))}async function wy(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=AC(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(nu(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=tu(d);g&&(d=g.rest,u(()=>{try{s(ru(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 vy(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=tu(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(nu(a,s.dialect))}catch{}};(async()=>{let a;try{a=ru(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function DC(e){await _y(Ey(e),{recursive:!0,mode:448});try{return await SC(e,ou.O_CREAT|ou.O_EXCL|ou.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var FC=6e4,Sy="resident-spawn-lock v1",IC=3;async function Ty(e,t={}){let r=t.maxAgeMs??FC,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Ye;await _y(Ey(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await DC(e);if(l)return await l.writeFile(`${Sy} pid=${o} taken=${new Date(n()).toISOString()}
64
- `).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await LC(e),c=await $C(e,d,n());if(a>=IC||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=MC(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 xy(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function Py(e){await e.handle.close().catch(()=>{}),await xy(e.lockPath,{force:!0})}function MC(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function Ay(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 LC(e){try{return jC(await TC(e,"utf8"))}catch{return null}}function jC(e){let t=e.split(`
65
- `,1)[0]?.trim()??"";if(!t.startsWith(Sy))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 $C(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 PC(e)).mtimeMs)}catch{return null}}function Ye(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var BC="/tmp";function Wa(e){let t=e.env??process.env,r=vC("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Xs(l,e.socketFileName).length<OC,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(CC(),i);return n(a)||process.platform==="win32"?a:Xs(BC,i)}sn();import{homedir as lO}from"node:os";import{join as hu}from"node:path";import{spawnSync as dO}from"node:child_process";import{createHash as cO}from"node:crypto";import{existsSync as uO,readdirSync as pO}from"node:fs";import{mkdir as jy,readFile as fO,rename as gO,writeFile as mO}from"node:fs/promises";import{dirname as hO}from"node:path";var Zn="@reddb-io/red-skills",YC="https://registry.npmjs.org",QC="canary",Xn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},XC=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function uu(e){return typeof e=="string"&&XC.test(e.trim())}function Fy(e){return`${e}-.bundle.min.mjs`}var ZC=".unversioned";function eO(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!uu(t))throw new Xn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Fy(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 Ka(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return ti(n,eO(t,r,o))}function tO(e){return e==="dev"?["rsp","redskilled"]:[]}function rO(e){return`${e}.bundle.min.mjs`}function nO(e){return ti("dist",rO(e))}function oO(e,t="stable"){return`${Zn}@${t==="canary"?QC:e}`}function pu(e=Zn){return`${YC}/${e.replace("/","%2F")}`}async function fu(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=Ka({plugin:r,version:n,cacheDir:o,channel:s}),a=tO(r),l=a.map(p=>Ka({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await iO(e,l))return i;let d=oO(n,s),c=ti(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw Ly(p,d)}for(let p of[r,...a]){let g=nO(p),f=ti(u,g);if(!await e.exists(f))throw new Xn("bundle-missing",`npm package ${d} has no ${g}`);let b=p===r?i:Ka({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(b,await e.readFile(f))}return await sO(e,o,[r,...a]),i}async function sO(e,t,r){if(e.rename)for(let n of r){let o=ti(t,Fy(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${ZC}`)}catch{}}}async function iO(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function Iy(e,t,r=Zn){let n;try{n=await e.fetchText(pu(r))}catch(s){throw Ly(s,r)}let o=gu(n);return{sameMajor:aO(o,t),newest:mu(o)}}function gu(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 aO(e,t){let r=cu(t);if(r===null)return null;let n=null;for(let o of e)cu(o)===r&&(n===null||My(o,n)>0)&&(n=o);return n}function mu(e){let t=null;for(let r of e){let n=String(r).trim();cu(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||My(n,t)>0)&&(t=n)}return t}function cu(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function My(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 Ly(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Xn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Xn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Xn("network",`failed to resolve ${t}: ${r}`,e)}function ti(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}sn();var $y={async materialize(e,t){await jy(t,{recursive:!0});let r=dO("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 hu(t,"node_modules",...Zn.split("/"))},async readFile(e){return new Uint8Array(await fO(e))},async writeFile(e,t){await jy(hO(e),{recursive:!0}),await mO(e,t)},async exists(e){return uO(e)},sha256(e){return cO("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 gO(e,t)}},yO="redskilled";function bO(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||hu(e.HOME||lO(),".cache");return hu(t,"red-skills","bundles")}var kO=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function RO(e,t){if(uu(e.version))return e.version.trim();let r=e.listCacheDir??xO,n=wO(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??$y).fetchText(pu());return mu(gu(s))}catch{return null}}function wO(e,t){let r=null;for(let n of e){let o=kO.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||_O(s,r)>0)&&(r=s)}return r}function _O(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 xO(e){try{return pO(e)}catch{return[]}}async function EO(e={},t={},r={}){let n=kn(e,t);if(jr(n))return n;let o=r.env??t.env??process.env,s=bO(o),i=await RO(r,s);if(i===null)return n;try{await fu(r.bundleIO??$y,{plugin:yO,version:i,cacheDir:s})}catch{return n}return kn(e,t)}async function By(e={},t={},r={}){let n=await EO(e,t,r);if(jr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(sn(),Dy));throw new o(n)}var Vo=3e5,Ny=1e4,Gy=6e4,Wy=15e3,yu=3e4,Hy=yu*2,Uy=6e4,ri=16;function qy(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 bu(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var Ky="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as Zw}from"node:crypto";import{mkdir as Dj,rm as Fj}from"node:fs/promises";import{dirname as Ij}from"node:path";var vO=["worker_id","slot","workspace_path","log_path"],Va=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${vO.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},Vy=/\{\{([a-z_]+)\}\}/g;function SO(e,t){let r=(i,a)=>i.replace(Vy,(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 Va(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 zy(e,t){if(!(e==null||e.trim()===""))return e.replace(Vy,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new Va(n,"the log path")}})}function za(e,t,r){let n=SO(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 Ja(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 Ya(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 Qa(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}import{appendFile as TO,mkdir as PO,open as AO,readFile as CO,rename as OO,rm as DO,stat as eb,truncate as Qy,writeFile as FO}from"node:fs/promises";import{dirname as IO}from"node:path";var Jy="daemon:";function ku(e){return _u("daemon-stop",e,e.reason,e.signal)}function Ru(e){return _u("daemon-start",e,"started",null)}function wu(e){return _u("daemon-death",e,e.reason??"silent-death",null)}function _u(e,t,r,n){return{version:1,ts:t.ts,kind:e,event:e,worker_id:`${Jy}${t.pid}`,project_label:"",pid:t.pid,workspace_path:t.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:t.detail,exit_code:null,signal:n??null,reason:r}}function Yy(e){let t=[],r=[],n=null;for(let[o,s]of e.entries()){if(/^\[\d*\]\{.*\}:$/.test(s)){n=s;continue}if(n==null){r.push(o+1);continue}try{t.push(...jt(`${n}
63
+ `}function IC(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=tt(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function Ty(e,t){return!vy(e)||!vy(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function vy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Py=new Set;function Ay(e){return Py.has(e)?"json":FC}function Cy(e){Py.add(e)}var GC=108;async function Va(e,t,r="resident server"){let n=e.wire,o=n??Ay(e.socketPath),s=await Oy(e,t,r,o);return n||o==="json"||!Ty(t,s)?s:(Cy(e.socketPath),await Oy(e,t,r,"json"))}async function Oy(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=BC(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(au(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=su(d);g&&(d=g.rest,u(()=>{try{s(iu(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 My(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=su(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(au(a,s.dialect))}catch{}};(async()=>{let a;try{a=iu(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function WC(e){await Dy(Iy(e),{recursive:!0,mode:448});try{return await LC(e,lu.O_CREAT|lu.O_EXCL|lu.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var HC=6e4,Ly="resident-spawn-lock v1",UC=3;async function jy(e,t={}){let r=t.maxAgeMs??HC,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Ke;await Dy(Iy(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await WC(e);if(l)return await l.writeFile(`${Ly} pid=${o} taken=${new Date(n()).toISOString()}
64
+ `).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await KC(e),c=await zC(e,d,n());if(a>=UC||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=qC(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 Fy(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function $y(e){await e.handle.close().catch(()=>{}),await Fy(e.lockPath,{force:!0})}function qC(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function By(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 KC(e){try{return VC(await jC(e,"utf8"))}catch{return null}}function VC(e){let t=e.split(`
65
+ `,1)[0]?.trim()??"";if(!t.startsWith(Ly))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 zC(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 $C(e)).mtimeMs)}catch{return null}}function Ke(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var JC="/tmp";function za(e){let t=e.env??process.env,r=MC("sha256").update(e.key).digest("hex").slice(0,20),n=l=>ri(l,e.socketFileName).length<GC,o=t.XDG_RUNTIME_DIR;if(o){let l=ri(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=ri(`red-skills-${s}`,r),a=ri(NC(),i);return n(a)||process.platform==="win32"?a:ri(JC,i)}on();import{homedir as bO}from"node:os";import{join as Ru}from"node:path";import{spawnSync as kO}from"node:child_process";import{createHash as RO}from"node:crypto";import{existsSync as wO,readdirSync as _O}from"node:fs";import{mkdir as Vy,readFile as xO,rename as EO,writeFile as vO}from"node:fs/promises";import{dirname as SO}from"node:path";var eo="@reddb-io/red-skills",iO="https://registry.npmjs.org",aO="canary",Zn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},lO=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function mu(e){return typeof e=="string"&&lO.test(e.trim())}function Hy(e){return`${e}-.bundle.min.mjs`}var dO=".unversioned";function cO(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!mu(t))throw new Zn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Hy(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 Xa(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return si(n,cO(t,r,o))}function uO(e){return e==="dev"?["rsp","redskilled"]:[]}function pO(e){return`${e}.bundle.min.mjs`}function fO(e){return si("dist",pO(e))}function gO(e,t="stable"){return`${eo}@${t==="canary"?aO:e}`}function hu(e=eo){return`${iO}/${e.replace("/","%2F")}`}async function yu(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=Xa({plugin:r,version:n,cacheDir:o,channel:s}),a=uO(r),l=a.map(p=>Xa({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await hO(e,l))return i;let d=gO(n,s),c=si(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw Ky(p,d)}for(let p of[r,...a]){let g=fO(p),f=si(u,g);if(!await e.exists(f))throw new Zn("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:Xa({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await mO(e,o,[r,...a]),i}async function mO(e,t,r){if(e.rename)for(let n of r){let o=si(t,Hy(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${dO}`)}catch{}}}async function hO(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function Uy(e,t,r=eo){let n;try{n=await e.fetchText(hu(r))}catch(s){throw Ky(s,r)}let o=bu(n);return{sameMajor:yO(o,t),newest:ku(o)}}function bu(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 yO(e,t){let r=gu(t);if(r===null)return null;let n=null;for(let o of e)gu(o)===r&&(n===null||qy(o,n)>0)&&(n=o);return n}function ku(e){let t=null;for(let r of e){let n=String(r).trim();gu(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||qy(n,t)>0)&&(t=n)}return t}function gu(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function qy(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 Ky(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Zn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Zn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Zn("network",`failed to resolve ${t}: ${r}`,e)}function si(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}on();var zy={async materialize(e,t){await Vy(t,{recursive:!0});let r=kO("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 Ru(t,"node_modules",...eo.split("/"))},async readFile(e){return new Uint8Array(await xO(e))},async writeFile(e,t){await Vy(SO(e),{recursive:!0}),await vO(e,t)},async exists(e){return wO(e)},sha256(e){return RO("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 EO(e,t)}},TO="redskilled";function PO(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Ru(e.HOME||bO(),".cache");return Ru(t,"red-skills","bundles")}var AO=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function CO(e,t){if(mu(e.version))return e.version.trim();let r=e.listCacheDir??FO,n=OO(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??zy).fetchText(hu());return ku(bu(s))}catch{return null}}function OO(e,t){let r=null;for(let n of e){let o=AO.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||DO(s,r)>0)&&(r=s)}return r}function DO(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 FO(e){try{return _O(e)}catch{return[]}}async function IO(e={},t={},r={}){let n=kn(e,t);if(jr(n))return n;let o=r.env??t.env??process.env,s=PO(o),i=await CO(r,s);if(i===null)return n;try{await yu(r.bundleIO??zy,{plugin:TO,version:i,cacheDir:s})}catch{return n}return kn(e,t)}async function Jy(e={},t={},r={}){let n=await IO(e,t,r);if(jr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(on(),Wy));throw new o(n)}var Jo=3e5,Yy=1e4,Qy=6e4,Xy=15e3,wu=3e4,Zy=wu*2,eb=6e4,ii=16;function tb(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 _u(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var rb="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as l_}from"node:crypto";import{mkdir as Zj,rm as e$}from"node:fs/promises";import{dirname as t$}from"node:path";var MO=["worker_id","slot","workspace_path","log_path"],Za=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${MO.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},nb=/\{\{([a-z_]+)\}\}/g;function LO(e,t){let r=(i,a)=>i.replace(nb,(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 Za(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 ob(e,t){if(!(e==null||e.trim()===""))return e.replace(nb,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new Za(n,"the log path")}})}function el(e,t,r){let n=LO(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 tl(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 rl(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 nl(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}import{appendFile as jO,mkdir as $O,open as BO,readFile as NO,rename as GO,rm as WO,stat as cb,truncate as ab,writeFile as HO}from"node:fs/promises";import{dirname as UO}from"node:path";var sb="daemon:";function xu(e){return Su("daemon-stop",e,e.reason,e.signal)}function Eu(e){return Su("daemon-start",e,"started",null)}function vu(e){return Su("daemon-death",e,e.reason??"silent-death",null)}function Su(e,t,r,n){return{version:1,ts:t.ts,kind:e,event:e,worker_id:`${sb}${t.pid}`,project_label:"",pid:t.pid,workspace_path:t.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:t.detail,exit_code:null,signal:n??null,reason:r}}function ib(e){let t=[],r=[],n=null;for(let[o,s]of e.entries()){if(/^\[\d*\]\{.*\}:$/.test(s)){n=s;continue}if(n==null){r.push(o+1);continue}try{t.push(...Lt(`${n}
66
66
  ${s}
67
- `))}catch{r.push(o+1)}}return{records:t,malformed:r}}var MO=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],zo=["worker-birth","worker-death","worker-budget-kill"],tb=["demand-refusal","daemon-start","daemon-death","daemon-stop"],rb="redskilled.log.toonl",LO=4*1024*1024,jO=.5;function Xa(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,...e.worker.pgid==null?{}:{pgid:e.worker.pgid},...e.worker.proc_start_time==null?{}:{proc_start_time:e.worker.proc_start_time},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}}function $O(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 nb(e,t={}){let r=t.maxBytes??LO,n=lt({trailer:!1}),o=Promise.resolve();async function s(i){let a=o.then(async()=>{await PO(IO(e),{recursive:!0,mode:448}),await GO(e);let l=n.push(sb(i));await BO(e,l,r)?await TO(e,l,{encoding:"utf8",mode:384}):(await NO(e,r,i),n=lt({trailer:!1}))});return o=a.catch(()=>{}),await a,i}return{path:e,record:i=>s(Xa(i)),recordWorker:i=>s(Xa(i)),recordDemandRefusal:i=>s($O(i)),recordDaemonStart:i=>s(Ru(i)),recordDaemonDeath:i=>s(wu(i)),recordDaemonStop:i=>s(ku(i)),read:()=>ob(e),flush:async()=>{await o}}}async function BO(e,t,r){let n=0;try{n=(await eb(e)).size}catch(o){if(o.code!=="ENOENT")throw o}return n+Buffer.byteLength(t)<=r}async function NO(e,t,r){let n=[...await ob(e),r],o=new Set([n.length-1]),s=Math.floor(t*jO),i;try{i=Xy(n,s,o)}catch(l){if(!(l instanceof Error)||!l.message.startsWith("redskilled event-lane baseline exceeds"))throw l;i=Xy(n,t,o)}let a=`${e}.rotate-${process.pid}`;try{await FO(a,xu(i),{encoding:"utf8",mode:384}),await OO(a,e)}finally{await DO(a,{force:!0})}}function Xy(e,t,r=new Set){let n=new Set(Za(e).map(d=>d.worker_id)),o=new Set(r);for(let d=e.length-1;d>=0&&n.size>0;d-=1){let c=e[d];c.kind!=="worker-birth"||!n.has(c.worker_id)||(o.add(d),n.delete(c.worker_id))}let s=e.map((d,c)=>c).filter(d=>!o.has(d)),i=0,a=s.length;for(;i<a;){let d=Math.floor((i+a)/2),c=Zy(e,o,s.slice(d));Buffer.byteLength(xu(c))<=t?a=d:i=d+1}let l=Zy(e,o,s.slice(i));if(Buffer.byteLength(xu(l))>t)throw new Error(`redskilled event-lane baseline exceeds its ${t}-byte ceiling`);return l}function Zy(e,t,r){let n=new Set([...t,...r]);return e.filter((o,s)=>n.has(s))}function xu(e){if(e.length===0)return"";let t=lt({trailer:!1});return e.map(r=>t.push(sb(r))).join("")}async function GO(e){let t;try{t=(await eb(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await AO(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 Qy(e,s-i+l+1);return}}await Qy(e,0)}finally{await n.close()}}async function ob(e){let t;try{t=await CO(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return WO(t)}function WO(e){let t=e.split(`
68
- `);if(t.pop(),t.length===0)return[];let{records:r,malformed:n}=Yy(t);return n.length>0&&console.warn(`redskilled event lane skipped ${n.length} malformed row(s) at line ${n.join(", ")}`),r.filter(UO).map(qO)}function Za(e){let t=new Map;for(let r of e)tb.includes(r.kind)||(r.kind==="worker-birth"?t.set(r.worker_id,HO(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function HO(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,...e.pgid==null?{}:{pgid:e.pgid},...e.proc_start_time==null?{}:{proc_start_time:e.proc_start_time},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 sb(e){return{...e}}function UO(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...MO,...tb].includes(t)}function qO(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:dt(e.project_label)??"",pid:Number(e.pid??0),...e.pgid==null||e.pgid===""?{}:{pgid:Number(e.pgid)},...dt(e.proc_start_time)==null?{}:{proc_start_time:dt(e.proc_start_time)},workspace_path:dt(e.workspace_path)??"",fork_sha:dt(e.fork_sha),log_path:dt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:dt(e.unit),memory_high:dt(e.memory_high),memory_max:dt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:dt(e.admission_verdict),phase:dt(e.phase),step:dt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:dt(e.runner),model:dt(e.model),base_head_sha:dt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:dt(e.heal_kind),detail:dt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:dt(e.signal),reason:dt(e.reason)}}function dt(e){return e==null||e===""?null:String(e)}var KO=3e5,VO=.5,Eu=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 ib(e,t){if(t.held!=null)throw new Eu(t.held);let r=ni(e.project_label,"a project label"),n=ni(e.selector,"a selector"),o=ZO(e.queue_poll,r),s=Ja(e.argv,r),i=Qa(e.env,r),a=Ya(e.log_path,r),l=YO(e.hooks,r),d=ni(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:ni(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:ni(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 u=e.renew_within_ms??KO;if(!Number.isFinite(u)||u<=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 p=Date.parse(t.now);if(!Number.isFinite(p))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:d,...c==null?{}:{trunk:c},env:i,...a==null?{}:{log_path:a},...l==null?{}:{hooks:l},target:e.target,registered_at:new Date(p).toISOString(),renew_within_ms:u,renew_by:new Date(p+u).toISOString(),renewed_at:new Date(p).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var eo=class extends Error{constructor(r,n={kind:"never"}){super(zO(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function zO(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 ab(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:Ja(t.launch.argv,e.project_label),env:Qa(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Ya(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 vu(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 JO(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Jo(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*VO;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 lb(e,t){let r=[],n=[];for(let o of e)(JO(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function oi(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||db(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||XO(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||cb(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||QO(t.hooks))&&(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 YO(e,t){if(e==null)return;if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs project hooks to be a map keyed by public host event kind for project ${JSON.stringify(t)}`);let r={};for(let[n,o]of Object.entries(e)){if(!zo.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${zo.join(", ")}`);if(o===null||typeof o!="object"||Array.isArray(o))throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} to be a launch template`);let s=o,i=s.mode??"async";if(i!=="async"&&i!=="sync")throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} mode to be "async" or "sync", not ${JSON.stringify(i)}`);if(i==="sync"&&(typeof s.deadline_ms!="number"||!Number.isFinite(s.deadline_ms)||s.deadline_ms<=0))throw new Error(`redskilled cannot register sync ${n} hook for project ${JSON.stringify(t)} without a finite, positive deadline_ms: ${JSON.stringify(s.deadline_ms)} is not a bounded deadline`);r[n]={argv:Ja(s.argv,t),env:Qa(s.env,t),...s.log_path==null?{}:{log_path:Ya(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function QO(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!zo.includes(t)||r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return Array.isArray(n.argv)&&n.argv.length>0&&n.argv.every(o=>typeof o=="string"&&o!=="")&&(n.env===void 0||cb(n.env))&&(n.log_path===void 0||typeof n.log_path=="string"&&n.log_path!=="")&&(n.mode===void 0||n.mode==="async"||n.mode==="sync")&&(n.mode!=="sync"||typeof n.deadline_ms=="number"&&Number.isFinite(n.deadline_ms)&&n.deadline_ms>0)})}function XO(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 ZO(e,t){if(e!==void 0){if(!db(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function db(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")&&(t.counter_labels===void 0||typeof t.counter_labels=="object"&&t.counter_labels!==null&&typeof t.counter_labels.ready=="string"&&t.counter_labels.ready!==""&&typeof t.counter_labels.human=="string"&&t.counter_labels.human!=="")}function cb(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function ni(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}function ub(e,t,r){let n=Date.parse(r),o=new Set([...t].map(l=>l.project_label)),s=[],i=[],a=[];for(let l of e){let d=Date.parse(l.renew_by),c=Number.isFinite(n)?Jo(l,n):"renewing";if(!Number.isFinite(d)||c!=="running-on"||o.has(l.project_label)){s.push(l);continue}a.push(l),(!Number.isFinite(n)||n-d<=l.renew_within_ms)&&i.push(l)}return{live:s,recoverable:i,abandoned:a}}async function pb(e){let t=[...e.laneEvents].reverse().find(o=>o.kind==="daemon-start"||o.kind==="daemon-death"||o.kind==="daemon-stop"),r=t?.kind==="daemon-start"?{pid:t.pid,socketPath:t.workspace_path}:t==null&&e.heldLease!=null&&e.heldLease.pid!==e.ownerPid?{pid:e.heldLease.pid,socketPath:e.heldLease.socket_path}:null;r!=null&&await e.eventLane.recordDaemonDeath({ts:e.startedAt,pid:r.pid,socketPath:r.socketPath,detail:`redskilled recovered after daemon ${r.pid} left no stop record`,reason:"silent-death"}),(e.recovery.live.length+e.recovery.abandoned.length>0||r!=null)&&await e.eventLane.recordDaemonStart({ts:e.startedAt,pid:e.ownerPid,socketPath:e.socketPath,detail:`redskilled boot read the host registration intent store: recovered ${e.recovery.live.length} live, lapsed ${e.recovery.abandoned.length} abandoned`})}import{randomUUID as fb}from"node:crypto";import{rm as eD}from"node:fs/promises";import{connect as tD,createServer as rD}from"node:net";var Zt=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 Su(e,t=250){return await new Promise(r=>{let n=tD(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 gb(e,t){for(let r=0;r<2;r++){let n=rD();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 Su(e)!=="unowned")throw new Zt(e);if(await t?.())throw new Zt(e);await eD(e,{force:!0})}}throw new Zt(e)}async function er(e,t=250){try{return(await Ga({socketPath:e,timeoutMs:t},{id:fb(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function mb(e,t){vy(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??fb(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function xb(e){return{generated_at:e.now,hour:yb("hour",36e5,e),day:yb("day",864e5,e),history_48h:nD(e)}}function nD(e){let t=Rn(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=oD(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=>Rn(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:hb(i),tickets_per_hour:hb(l)}}function oD(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=Rn(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],b=Math.min(f+36e5,r),h=Math.max(0,Math.min(c.at,b)-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 hb(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 to(e,t,r){let n=Rn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=Rn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function yb(e,t,r){let n=Rn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:Rn(u.observed_at)})).filter(u=>u.at!=null&&Rb(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>Rn(u.ts)).filter(u=>u!=null&&Rb(u,o,n)),l=bb(i,u=>u.tokens,"tokens",s),d=bb(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:sD(a.length,t,s),runner_share:kb("runner",i,u=>u.runner,s),model_share:kb("model",i,u=>u.model,s),unavailable:c}}function bb(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 sD(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 kb(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 Rb(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function Rn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Eb(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&_b(t.hour)&&_b(t.day)&&(t.history_48h===void 0||iD(t.history_48h))}function iD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&wb(t.tokens_per_hour)&&wb(t.tickets_per_hour)}function wb(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 _b(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"&&Tu(t.tokens_per_min)&&Tu(t.tools_per_min)&&Tu(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Tu(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 vb(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:to([...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 Sb(e,t){return to(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 Ab,totalmem as lD}from"node:os";function Yo(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 Tb(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Yo(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=Qo(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:aD(e.length,n,a,l)}}function aD(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 Qo(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 Pb(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 Cb="REDSKILLED_MEMORY_CEILING",Au="REDSKILLED_WORKER_CEILING",Ib="REDSKILLED_VALIDATION_CEILING",Ob="REDSKILLED_INTERACTIVE_RESERVATION",si=1,Db=.7,dD=2*1024**3,cD=2;function Mb(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Qo(t)}function tl(e){let t=0,r=[];for(let n of e){let o=Mb(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 Lb(e){let{ceiling:t}=e,r=tl(e.workers),n=Mb(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??si),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 jb(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=tl(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 (${Au} 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 rl(e=process.env,t=lD(),r={}){let n=Pu(r.flags?.memoryCeiling,e[Cb],r.config?.memoryCeiling),o=Pu(r.flags?.workerCeiling,e[Au],r.config?.workerCeiling),s=Pu(r.flags?.validationCeiling,e[Ib],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Ob]??"").trim(),d=$b(a),c=l===""?si:fD(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!uD(a)&&(el(`redskilled: ${Cu(o)} ${Au}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=pD(i,t);if(p!==void 0)return Fb({memory_bytes:p,worker_count:d,interactive_reservation:c??si,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Ab());el(`redskilled: ${Cu(n)} ${Cb}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Db*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&el(`redskilled: ${Ob}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${si} Worker(s) instead.`),Fb({memory_bytes:Math.floor(t*Db),worker_count:d,interactive_reservation:c??si,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Ab())}function Fb(e,t,r){if(t!==void 0){let i=$b(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};el(`redskilled: ${Cu(t)} ${Ib}=${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)/cD)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/dD)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Pu(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 Cu(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function uD(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var el=e=>process.stderr.write(`${e}
69
- `);function pD(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)):Qo(e)??void 0}function $b(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 fD(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}function Bb(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-a),d));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,b=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:b,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<b;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 Nb(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Gb(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 ii={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Wb(e,t,r){if(t>=6e4)return ii;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 Hb(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function Ou(){return ii}function gD(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 Ub(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>gD(r,n,t)).filter(r=>r!=null)}function qb(e){let t=e.workers.map(mD),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:yD({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length,uncontained:t.filter(o=>o.survives&&!o.contained).length})}}function Kb(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 mD(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,contained:e.isolated,survives:!0}}function hD(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 yD(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${hD(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${Du(e.held,"Worker")} across ${Du(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 ${Du(e.uncontained,"uncontained survivor")} ${e.uncontained===1?"runs":"run"} as detached process groups outside an init-system unit`}function Du(e,t){return`${e} ${t}${e===1?"":"s"}`}function Fu(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)&&r.workers.every(n=>n!=null&&typeof n=="object"&&!Array.isArray(n)&&typeof n.contained=="boolean")&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as bD,mkdir as kD,readFile as RD,rm as wD,writeFile as _D}from"node:fs/promises";import{dirname as Vb,join as Qb}from"node:path";import{tmpdir as zb}from"node:os";var xD="redskilled.machine.claim.toon",Mu="REDSKILLED_MACHINE_DIR",ED=8,an=class extends Error{constructor(r,n,o){super(SD(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},Jb;function nl(){return Jb??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},Jb}function vD(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[Mu]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||zb():zb();return Qb(o,`redskilled-${e.machineIdHash}`)}function ol(e){return Qb(vD(e),xD)}function ai(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){let l;try{l=await RD(e,"utf8")}catch(c){if(c.code==="ENOENT"||Iu(c))return;throw c}let d=PD(l);return AD(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 wD(e,{force:!0}),!0}catch(l){if(Iu(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await kD(Vb(e),{recursive:!0,mode:1023})!=null&&await bD(Vb(e),1023).catch(()=>{});let c=!1;for(let u=0;u<ED;u+=1){let p=i(l,n());try{return await _D(e,TD(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Iu(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(Yb(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||!Yb(d,l,t.socketPath)?!1:await a()}}}function Xb(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 Zb(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 SD(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 Iu(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function Yb(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function TD(e){return`${ht(e)}
70
- `}function PD(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Mr(t)}catch{return null}}}function AD(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 CD={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 e0(e){return`worker-${e}`}function t0(e){let t=CD[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 r0(e){return e==="single-object"?"rest":"graphql"}function n0(e,t){return e==="stable-poll"?"rest":r0(t)}function tr(e){return{none:e}}function ct(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??n0(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Bt(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 o0=[ct("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ct("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),ct("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),ct("run view","single-object","stable-poll","rest",tr("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),ct("release view","single-object","stable-poll","rest",tr("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),ct("pr diff","single-object","one-shot","rest",tr("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),ct("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),ct("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),ct("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),ct("release list","multi-node","stable-poll","rest",tr("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),ct("run list","multi-node","stable-poll","rest",tr("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),ct("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),ct("issue list (search)","multi-node","stable-poll","search",tr("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),ct("pr list (search)","multi-node","stable-poll","search",tr("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),ct("search issues","multi-repository","one-shot","search",tr("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ct("search prs","multi-repository","one-shot","search",tr("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ct("search repos","multi-repository","one-shot","search",tr("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),ct("api graphql","multi-node","one-shot","graphql",tr("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),ct("api rest","single-object","one-shot","rest",tr("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Bt("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Bt("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Bt("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Bt("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Bt("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Bt("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Bt("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Bt("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Bt("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Bt("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Bt("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Bt("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Bt("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Bt("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],OD=new Map(o0.map(e=>[e.key,e]));function s0(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 Lu(e){let t=s0(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 sl=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=Lu(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 i0(e){return OD.get(Lu(e))??null}function a0(e){let t=i0(e);if(!t)throw new sl(e);return t}function ju(e){return a0(e).surface}import{appendFile as DD,mkdir as FD,readFile as l0}from"node:fs/promises";import{dirname as ID}from"node:path";function il(e){let t=e.now??(()=>new Date().toISOString()),r=gr["github-spend"],n={...r,...e.maxBytes===void 0?{}:{maxBytes:e.maxBytes}},o=Promise.resolve();return{record(s){let i=$D(s.operation,s.cost,s.observedAt??t(),s.actor),a=lt().push(ND(i));return o=o.then(async()=>{await FD(ID(e.path),{recursive:!0});let l=Buffer.byteLength(a);if(await qh(e.path,l,n)){let d=n.maxBytes;if(l>d)throw new Error(`GitHub spend observation exceeds its ${d}-byte lane ceiling`);let c=await MD(e.path),u=Math.max(Math.floor(d*r.targetRatio),l);await Vh(e.path,LD(c,l,u))}await DD(e.path,a,"utf8")}),o},async report(s){await o;let i=$u(s.from,"report window start"),a=$u(s.to,"report window end");if(a<=i)throw new Error("GitHub attribution report window end must be after its start");let l=await BD(e.path),d=new Map;for(let u of l.observations){let p=Date.parse(u.observed_at);if(p<i||p>=a||s.pool!==void 0&&u.pool!==s.pool)continue;let g=`${u.pool}\0${u.operation_key}\0${u.actor??""}`,f=d.get(g);d.set(g,{operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:(f?.count??0)+1,cost:(f?.cost??0)+u.cost})}let c=[...d.values()].sort((u,p)=>p.cost-u.cost||p.count-u.count||u.operation_key.localeCompare(p.operation_key)||u.pool.localeCompare(p.pool)||(u.actor??"").localeCompare(p.actor??""));return{version:1,origin:"process-attribution",window:{from:s.from,to:s.to},pool:s.pool??null,total_count:c.reduce((u,p)=>u+p.count,0),total_cost:c.reduce((u,p)=>u+p.cost,0),operations:c,unreadable_records:l.unreadable}}}}async function MD(e){try{let t=await l0(e,"utf8");return t.trim()===""?[]:jt(t)}catch(t){if(d0(t)&&t.code==="ENOENT")return[];throw t}}function LD(e,t,r){let n=0,o=e.length;for(;n<o;){let s=Math.ceil((n+o)/2),i=jD(e.slice(-s));Buffer.byteLength(i)+t<=r?n=s:o=s-1}return n}function jD(e){return e.map(t=>lt({trailer:!1}).push(t)).join("")}function $D(e,t,r,n){if($u(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 BD(e){let t;try{t=await l0(e,"utf8")}catch(s){if(d0(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
71
- `);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=jt(`${i}
67
+ `))}catch{r.push(o+1)}}return{records:t,malformed:r}}var qO=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],Yo=["worker-birth","worker-death","worker-budget-kill"],ub=["demand-refusal","daemon-start","daemon-death","daemon-stop"],pb="redskilled.log.toonl",KO=4*1024*1024,VO=.5;function ol(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,...e.worker.pgid==null?{}:{pgid:e.worker.pgid},...e.worker.proc_start_time==null?{}:{proc_start_time:e.worker.proc_start_time},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}}function zO(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 fb(e,t={}){let r=t.maxBytes??KO,n=ct({trailer:!1}),o=Promise.resolve();async function s(i){let a=o.then(async()=>{await $O(UO(e),{recursive:!0,mode:448}),await QO(e);let l=n.push(mb(i));await JO(e,l,r)?await jO(e,l,{encoding:"utf8",mode:384}):(await YO(e,r,i),n=ct({trailer:!1}))});return o=a.catch(()=>{}),await a,i}return{path:e,record:i=>s(ol(i)),recordWorker:i=>s(ol(i)),recordDemandRefusal:i=>s(zO(i)),recordDaemonStart:i=>s(Eu(i)),recordDaemonDeath:i=>s(vu(i)),recordDaemonStop:i=>s(xu(i)),read:()=>gb(e),flush:async()=>{await o}}}async function JO(e,t,r){let n=0;try{n=(await cb(e)).size}catch(o){if(o.code!=="ENOENT")throw o}return n+Buffer.byteLength(t)<=r}async function YO(e,t,r){let n=[...await gb(e),r],o=new Set([n.length-1]),s=Math.floor(t*VO),i;try{i=lb(n,s,o)}catch(l){if(!(l instanceof Error)||!l.message.startsWith("redskilled event-lane baseline exceeds"))throw l;i=lb(n,t,o)}let a=`${e}.rotate-${process.pid}`;try{await HO(a,Tu(i),{encoding:"utf8",mode:384}),await GO(a,e)}finally{await WO(a,{force:!0})}}function lb(e,t,r=new Set){let n=new Set(sl(e).map(d=>d.worker_id)),o=new Set(r);for(let d=e.length-1;d>=0&&n.size>0;d-=1){let c=e[d];c.kind!=="worker-birth"||!n.has(c.worker_id)||(o.add(d),n.delete(c.worker_id))}let s=e.map((d,c)=>c).filter(d=>!o.has(d)),i=0,a=s.length;for(;i<a;){let d=Math.floor((i+a)/2),c=db(e,o,s.slice(d));Buffer.byteLength(Tu(c))<=t?a=d:i=d+1}let l=db(e,o,s.slice(i));if(Buffer.byteLength(Tu(l))>t)throw new Error(`redskilled event-lane baseline exceeds its ${t}-byte ceiling`);return l}function db(e,t,r){let n=new Set([...t,...r]);return e.filter((o,s)=>n.has(s))}function Tu(e){if(e.length===0)return"";let t=ct({trailer:!1});return e.map(r=>t.push(mb(r))).join("")}async function QO(e){let t;try{t=(await cb(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await BO(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 ab(e,s-i+l+1);return}}await ab(e,0)}finally{await n.close()}}async function gb(e){let t;try{t=await NO(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return XO(t)}function XO(e){let t=e.split(`
68
+ `);if(t.pop(),t.length===0)return[];let{records:r,malformed:n}=ib(t);return n.length>0&&console.warn(`redskilled event lane skipped ${n.length} malformed row(s) at line ${n.join(", ")}`),r.filter(eD).map(tD)}function sl(e){let t=new Map;for(let r of e)ub.includes(r.kind)||(r.kind==="worker-birth"?t.set(r.worker_id,ZO(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function ZO(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,...e.pgid==null?{}:{pgid:e.pgid},...e.proc_start_time==null?{}:{proc_start_time:e.proc_start_time},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 mb(e){return{...e}}function eD(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...qO,...ub].includes(t)}function tD(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:ut(e.project_label)??"",pid:Number(e.pid??0),...e.pgid==null||e.pgid===""?{}:{pgid:Number(e.pgid)},...ut(e.proc_start_time)==null?{}:{proc_start_time:ut(e.proc_start_time)},workspace_path:ut(e.workspace_path)??"",fork_sha:ut(e.fork_sha),log_path:ut(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:ut(e.unit),memory_high:ut(e.memory_high),memory_max:ut(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:ut(e.admission_verdict),phase:ut(e.phase),step:ut(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:ut(e.runner),model:ut(e.model),base_head_sha:ut(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:ut(e.heal_kind),detail:ut(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:ut(e.signal),reason:ut(e.reason)}}function ut(e){return e==null||e===""?null:String(e)}var rD=3e5,nD=.5,Pu=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 hb(e,t){if(t.held!=null)throw new Pu(t.held);let r=ai(e.project_label,"a project label"),n=ai(e.selector,"a selector"),o=dD(e.queue_poll,r),s=tl(e.argv,r),i=nl(e.env,r),a=rl(e.log_path,r),l=iD(e.hooks,r),d=ai(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:ai(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:ai(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 u=e.renew_within_ms??rD;if(!Number.isFinite(u)||u<=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 p=Date.parse(t.now);if(!Number.isFinite(p))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:d,...c==null?{}:{trunk:c},env:i,...a==null?{}:{log_path:a},...l==null?{}:{hooks:l},target:e.target,registered_at:new Date(p).toISOString(),renew_within_ms:u,renew_by:new Date(p+u).toISOString(),renewed_at:new Date(p).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var to=class extends Error{constructor(r,n={kind:"never"}){super(oD(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function oD(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 yb(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:tl(t.launch.argv,e.project_label),env:nl(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:rl(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 Au(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 sD(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Qo(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*nD;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 bb(e,t){let r=[],n=[];for(let o of e)(sD(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function li(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||kb(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||lD(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||Rb(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||aD(t.hooks))&&(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 iD(e,t){if(e==null)return;if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs project hooks to be a map keyed by public host event kind for project ${JSON.stringify(t)}`);let r={};for(let[n,o]of Object.entries(e)){if(!Yo.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${Yo.join(", ")}`);if(o===null||typeof o!="object"||Array.isArray(o))throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} to be a launch template`);let s=o,i=s.mode??"async";if(i!=="async"&&i!=="sync")throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} mode to be "async" or "sync", not ${JSON.stringify(i)}`);if(i==="sync"&&(typeof s.deadline_ms!="number"||!Number.isFinite(s.deadline_ms)||s.deadline_ms<=0))throw new Error(`redskilled cannot register sync ${n} hook for project ${JSON.stringify(t)} without a finite, positive deadline_ms: ${JSON.stringify(s.deadline_ms)} is not a bounded deadline`);r[n]={argv:tl(s.argv,t),env:nl(s.env,t),...s.log_path==null?{}:{log_path:rl(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function aD(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!Yo.includes(t)||r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return Array.isArray(n.argv)&&n.argv.length>0&&n.argv.every(o=>typeof o=="string"&&o!=="")&&(n.env===void 0||Rb(n.env))&&(n.log_path===void 0||typeof n.log_path=="string"&&n.log_path!=="")&&(n.mode===void 0||n.mode==="async"||n.mode==="sync")&&(n.mode!=="sync"||typeof n.deadline_ms=="number"&&Number.isFinite(n.deadline_ms)&&n.deadline_ms>0)})}function lD(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 dD(e,t){if(e!==void 0){if(!kb(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function kb(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")&&(t.counter_labels===void 0||typeof t.counter_labels=="object"&&t.counter_labels!==null&&typeof t.counter_labels.ready=="string"&&t.counter_labels.ready!==""&&typeof t.counter_labels.human=="string"&&t.counter_labels.human!=="")}function Rb(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function ai(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}function wb(e,t,r){let n=Date.parse(r),o=new Set([...t].map(l=>l.project_label)),s=[],i=[],a=[];for(let l of e){let d=Date.parse(l.renew_by),c=Number.isFinite(n)?Qo(l,n):"renewing";if(!Number.isFinite(d)||c!=="running-on"||o.has(l.project_label)){s.push(l);continue}a.push(l),(!Number.isFinite(n)||n-d<=l.renew_within_ms)&&i.push(l)}return{live:s,recoverable:i,abandoned:a}}async function _b(e){let t=[...e.laneEvents].reverse().find(o=>o.kind==="daemon-start"||o.kind==="daemon-death"||o.kind==="daemon-stop"),r=t?.kind==="daemon-start"?{pid:t.pid,socketPath:t.workspace_path}:t==null&&e.heldLease!=null&&e.heldLease.pid!==e.ownerPid?{pid:e.heldLease.pid,socketPath:e.heldLease.socket_path}:null;r!=null&&await e.eventLane.recordDaemonDeath({ts:e.startedAt,pid:r.pid,socketPath:r.socketPath,detail:`redskilled recovered after daemon ${r.pid} left no stop record`,reason:"silent-death"}),(e.recovery.live.length+e.recovery.abandoned.length>0||r!=null)&&await e.eventLane.recordDaemonStart({ts:e.startedAt,pid:e.ownerPid,socketPath:e.socketPath,detail:`redskilled boot read the host registration intent store: recovered ${e.recovery.live.length} live, lapsed ${e.recovery.abandoned.length} abandoned`})}import{randomUUID as xb}from"node:crypto";import{rm as cD}from"node:fs/promises";import{connect as uD,createServer as pD}from"node:net";var nr=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 Cu(e,t=250){return await new Promise(r=>{let n=uD(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 Eb(e,t){for(let r=0;r<2;r++){let n=pD();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 Cu(e)!=="unowned")throw new nr(e);if(await t?.())throw new nr(e);await cD(e,{force:!0})}}throw new nr(e)}async function qt(e,t=250){try{return(await Va({socketPath:e,timeoutMs:t},{id:xb(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function vb(e,t){My(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??xb(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Fb(e){return{generated_at:e.now,hour:Tb("hour",36e5,e),day:Tb("day",864e5,e),history_48h:fD(e)}}function fD(e){let t=Rn(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=gD(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=>Rn(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:Sb(i),tickets_per_hour:Sb(l)}}function gD(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=Rn(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),m=Math.max(0,Math.min(c.at,y)-Math.max(d.at,f));m!==0&&(a[g].tokens+=p*(m/u),a[g].duration+=m)}}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 Sb(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 ro(e,t,r){let n=Rn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=Rn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function Tb(e,t,r){let n=Rn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:Rn(u.observed_at)})).filter(u=>u.at!=null&&Cb(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>Rn(u.ts)).filter(u=>u!=null&&Cb(u,o,n)),l=Pb(i,u=>u.tokens,"tokens",s),d=Pb(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:mD(a.length,t,s),runner_share:Ab("runner",i,u=>u.runner,s),model_share:Ab("model",i,u=>u.model,s),unavailable:c}}function Pb(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 mD(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 Ab(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 Cb(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function Rn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ib(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Db(t.hour)&&Db(t.day)&&(t.history_48h===void 0||hD(t.history_48h))}function hD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Ob(t.tokens_per_hour)&&Ob(t.tickets_per_hour)}function Ob(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 Db(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"&&Ou(t.tokens_per_min)&&Ou(t.tools_per_min)&&Ou(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Ou(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 Mb(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:ro([...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 Lb(e,t){return ro(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 Bb,totalmem as bD}from"node:os";function Xo(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 jb(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Xo(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=Zo(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:yD(e.length,n,a,l)}}function yD(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 Zo(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 $b(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 Nb="REDSKILLED_MEMORY_CEILING",Fu="REDSKILLED_WORKER_CEILING",Ub="REDSKILLED_VALIDATION_CEILING",Gb="REDSKILLED_INTERACTIVE_RESERVATION",di=1,Wb=.7,kD=2*1024**3,RD=2;function qb(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Zo(t)}function al(e){let t=0,r=[];for(let n of e){let o=qb(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 Kb(e){let{ceiling:t}=e,r=al(e.workers),n=qb(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??di),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 Vb(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=al(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 (${Fu} 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 ll(e=process.env,t=bD(),r={}){let n=Du(r.flags?.memoryCeiling,e[Nb],r.config?.memoryCeiling),o=Du(r.flags?.workerCeiling,e[Fu],r.config?.workerCeiling),s=Du(r.flags?.validationCeiling,e[Ub],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Gb]??"").trim(),d=zb(a),c=l===""?di:xD(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!wD(a)&&(il(`redskilled: ${Iu(o)} ${Fu}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=_D(i,t);if(p!==void 0)return Hb({memory_bytes:p,worker_count:d,interactive_reservation:c??di,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Bb());il(`redskilled: ${Iu(n)} ${Nb}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Wb*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&il(`redskilled: ${Gb}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${di} Worker(s) instead.`),Hb({memory_bytes:Math.floor(t*Wb),worker_count:d,interactive_reservation:c??di,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Bb())}function Hb(e,t,r){if(t!==void 0){let i=zb(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};il(`redskilled: ${Iu(t)} ${Ub}=${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)/RD)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/kD)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Du(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 Iu(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function wD(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var il=e=>process.stderr.write(`${e}
69
+ `);function _D(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)):Zo(e)??void 0}function zb(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 xD(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}function Jb(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-a),d));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 m=0;m<y;m+=1)(s[m]??(s[m]=[])).push({project_label:i.project_label,index:a+m,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Yb(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Qb(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 ci={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Xb(e,t,r){if(t>=6e4)return ci;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 Zb(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function Mu(){return ci}function ED(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 e0(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>ED(r,n,t)).filter(r=>r!=null)}function t0(e){let t=e.workers.map(vD),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:TD({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length,uncontained:t.filter(o=>o.survives&&!o.contained).length})}}function r0(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 n0(e){let t=e.stopped?"SIGTERM stopped that holder and released the socket":`SIGTERM was sent, but the holder did not finish stopping${e.pending==null||e.pending.length===0?"":`: ${e.pending.join(", ")}`}`;return{version:1,running:!0,stopped:e.stopped,reason:"unreachable",socket_path:e.socketPath,daemon_version:null,pid:e.pid,holding:{workers:[],projects:[]},surviving:[],detail:`redskilled pid ${e.pid} was alive and held ${JSON.stringify(e.socketPath)}, but it did not answer a ping, so stop signalled it directly; ${t}. Its held Workers and version could not be read`}}function vD(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,contained:e.isolated,survives:!0}}function SD(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":e==="unreachable"?"the daemon held the socket but could not be reached":"no daemon was running"}function TD(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${SD(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${Lu(e.held,"Worker")} across ${Lu(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 ${Lu(e.uncontained,"uncontained survivor")} ${e.uncontained===1?"runs":"run"} as detached process groups outside an init-system unit`}function Lu(e,t){return`${e} ${t}${e===1?"":"s"}`}function ju(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)&&r.workers.every(n=>n!=null&&typeof n=="object"&&!Array.isArray(n)&&typeof n.contained=="boolean")&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as PD,mkdir as AD,readFile as CD,rm as OD,writeFile as DD}from"node:fs/promises";import{dirname as o0,join as l0}from"node:path";import{tmpdir as s0}from"node:os";var FD="redskilled.machine.claim.toon",Bu="REDSKILLED_MACHINE_DIR",ID=8,sn=class extends Error{constructor(r,n,o){super(LD(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},i0;function dl(){return i0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},i0}function MD(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[Bu]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||s0():s0();return l0(o,`redskilled-${e.machineIdHash}`)}function cl(e){return l0(MD(e),FD)}function ui(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ke;async function s(){let l;try{l=await CD(e,"utf8")}catch(c){if(c.code==="ENOENT"||$u(c))return;throw c}let d=$D(l);return BD(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 OD(e,{force:!0}),!0}catch(l){if($u(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await AD(o0(e),{recursive:!0,mode:1023})!=null&&await PD(o0(e),1023).catch(()=>{});let c=!1;for(let u=0;u<ID;u+=1){let p=i(l,n());try{return await DD(e,jD(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if($u(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(a0(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||!a0(d,l,t.socketPath)?!1:await a()}}}function d0(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 c0(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 LD(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 $u(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function a0(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function jD(e){return`${tt(e)}
70
+ `}function $D(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return er(t)}catch{return null}}}function BD(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 ND={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 u0(e){return`worker-${e}`}function p0(e){let t=ND[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 f0(e){return e==="single-object"?"rest":"graphql"}function g0(e,t){return e==="stable-poll"?"rest":f0(t)}function or(e){return{none:e}}function pt(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??g0(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function $t(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 m0=[pt("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),pt("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),pt("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),pt("run view","single-object","stable-poll","rest",or("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),pt("release view","single-object","stable-poll","rest",or("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),pt("pr diff","single-object","one-shot","rest",or("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),pt("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),pt("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),pt("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),pt("release list","multi-node","stable-poll","rest",or("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),pt("run list","multi-node","stable-poll","rest",or("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),pt("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),pt("issue list (search)","multi-node","stable-poll","search",or("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),pt("pr list (search)","multi-node","stable-poll","search",or("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),pt("search issues","multi-repository","one-shot","search",or("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),pt("search prs","multi-repository","one-shot","search",or("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),pt("search repos","multi-repository","one-shot","search",or("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),pt("api graphql","multi-node","one-shot","graphql",or("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),pt("api rest","single-object","one-shot","rest",or("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),$t("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),$t("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),$t("issue close","graphql","graphql","gh closes with the closeIssue mutation"),$t("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),$t("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),$t("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),$t("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),$t("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),$t("pr merge","rest","rest","the default merge uses PUT `repos/{o}/{r}/pulls/{n}/merge` so a dry GraphQL pool cannot strand a finished Worker"),$t("pr close","graphql","graphql","gh closes with a GraphQL mutation"),$t("pr edit","graphql","graphql","gh edits with GraphQL mutations"),$t("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),$t("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),$t("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],GD=new Map(m0.map(e=>[e.key,e]));function h0(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 Nu(e){let t=h0(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 ul=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=Nu(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 y0(e){return GD.get(Nu(e))??null}function b0(e){let t=y0(e);if(!t)throw new ul(e);return t}function Gu(e){return b0(e).surface}import{appendFile as WD,mkdir as HD,readFile as k0}from"node:fs/promises";import{dirname as UD}from"node:path";function pl(e){let t=e.now??(()=>new Date().toISOString()),r=Ut["github-spend"],n={...r,...e.maxBytes===void 0?{}:{maxBytes:e.maxBytes}},o=Promise.resolve();return{record(s){let i=zD(s.operation,s.cost,s.observedAt??t(),s.actor),a=ct().push(YD(i));return o=o.then(async()=>{await HD(UD(e.path),{recursive:!0});let l=Buffer.byteLength(a);if(await ty(e.path,l,n)){let d=n.maxBytes;if(l>d)throw new Error(`GitHub spend observation exceeds its ${d}-byte lane ceiling`);let c=await qD(e.path),u=Math.max(Math.floor(d*r.targetRatio),l);await ny(e.path,KD(c,l,u))}await WD(e.path,a,"utf8")}),o},async report(s){await o;let i=Wu(s.from,"report window start"),a=Wu(s.to,"report window end");if(a<=i)throw new Error("GitHub attribution report window end must be after its start");let l=await JD(e.path),d=new Map;for(let u of l.observations){let p=Date.parse(u.observed_at);if(p<i||p>=a||s.pool!==void 0&&u.pool!==s.pool)continue;let g=`${u.pool}\0${u.operation_key}\0${u.actor??""}`,f=d.get(g);d.set(g,{operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:(f?.count??0)+1,cost:(f?.cost??0)+u.cost})}let c=[...d.values()].sort((u,p)=>p.cost-u.cost||p.count-u.count||u.operation_key.localeCompare(p.operation_key)||u.pool.localeCompare(p.pool)||(u.actor??"").localeCompare(p.actor??""));return{version:1,origin:"process-attribution",window:{from:s.from,to:s.to},pool:s.pool??null,total_count:c.reduce((u,p)=>u+p.count,0),total_cost:c.reduce((u,p)=>u+p.cost,0),operations:c,unreadable_records:l.unreadable}}}}async function qD(e){try{let t=await k0(e,"utf8");return t.trim()===""?[]:Lt(t)}catch(t){if(R0(t)&&t.code==="ENOENT")return[];throw t}}function KD(e,t,r){let n=0,o=e.length;for(;n<o;){let s=Math.ceil((n+o)/2),i=VD(e.slice(-s));Buffer.byteLength(i)+t<=r?n=s:o=s-1}return n}function VD(e){return e.map(t=>ct({trailer:!1}).push(t)).join("")}function zD(e,t,r,n){if(Wu(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 JD(e){let t;try{t=await k0(e,"utf8")}catch(s){if(R0(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
71
+ `);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=Lt(`${i}
72
72
  ${a}
73
- `)[0]}catch{n+=1,s+=1;continue}if(!GD(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function ND(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 GD(e){return WD(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 $u(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 WD(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function d0(e){return e instanceof Error&&"code"in e}var u0=Xd(Gu(),1);var ln=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 HD="0.0.0-development";function UD(e){return e.request!==void 0}async function c0(e,t,r,n){if(!UD(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 qD(e,t,r,n){let o=new u0.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(KD.bind(null,e,t,r),n)}async function KD(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 ln(o.data.errors[0].message,500,{request:n,response:o});return c0(e,t,s,n)}return o}function Wu(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",c0.bind(null,r,n)),e.hook.wrap("request",qD.bind(null,r,n))),n}Wu.VERSION=HD;var f0=Xd(Gu(),1),VD="0.0.0-development",Hu=()=>Promise.resolve();function zD(e,t,r){return e.retryLimiter.schedule(JD,e,t,r)}async function JD(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=YD(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,Hu),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,Hu),i&&await e.search.key(e.id).schedule(d,Hu);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 YD(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 QD=["/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 XD(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var p0=XD(QD),g0=p0.test.bind(p0),mr={},ZD=function(e,t){mr.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),mr.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),mr.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),mr.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),mr.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function al(e,t){let{enabled:r=!0,Bottleneck:n=f0.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:g0,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
73
+ `)[0]}catch{n+=1,s+=1;continue}if(!QD(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function YD(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 QD(e){return XD(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 Wu(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 XD(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function R0(e){return e instanceof Error&&"code"in e}var _0=rc(qu(),1);var an=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 ZD="0.0.0-development";function e1(e){return e.request!==void 0}async function w0(e,t,r,n){if(!e1(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 t1(e,t,r,n){let o=new _0.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(r1.bind(null,e,t,r),n)}async function r1(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 an(o.data.errors[0].message,500,{request:n,response:o});return w0(e,t,s,n)}return o}function Ku(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",w0.bind(null,r,n)),e.hook.wrap("request",t1.bind(null,r,n))),n}Ku.VERSION=ZD;var E0=rc(qu(),1),n1="0.0.0-development",Vu=()=>Promise.resolve();function o1(e,t,r){return e.retryLimiter.schedule(s1,e,t,r)}async function s1(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=i1(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,Vu),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,Vu),i&&await e.search.key(e.id).schedule(d,Vu);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 i1(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 a1=["/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 l1(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var x0=l1(a1),v0=x0.test.bind(x0),yr={},d1=function(e,t){yr.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),yr.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),yr.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),yr.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),yr.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function fl(e,t){let{enabled:r=!0,Bottleneck:n=E0.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:v0,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
74
74
  You must pass the onSecondaryRateLimit and onRateLimit error handlers.
75
75
  See https://octokit.github.io/rest.js/#throttling
76
76
 
@@ -80,37 +80,38 @@ ${a}
80
80
  onRateLimit: (retryAfter, options) => {/* ... */}
81
81
  }
82
82
  })
83
- `);let d=!1,c=()=>{if(d)return;d=!0,mr.global==null&&ZD(n,a),l.global=l.global??mr.global,l.auth=l.auth??mr.auth,l.search=l.search??mr.search,l.write=l.write??mr.write,l.notifications=l.notifications??mr.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[b,h,w]=f.args,{pathname:S}=new URL(w.url,"http://github.test");if(!(S.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let A=~~h.retryCount;h.retryCount=A,w.request.retryCount=A;let{wantRetry:M,retryAfter:N=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let W=Number(g.response.headers["retry-after"])||b.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",W,w,e,A),retryAfter:W}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(W=>W.type==="RATE_LIMITED")){let W=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),H=Math.max(Math.ceil((W-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",H,w,e,A),retryAfter:H}}return{}}();if(M)return h.retryCount++,N*b.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),zD(l,u,p))),{}}al.VERSION=VD;al.triggersNotification=g0;function wn(){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 ll(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)=>ll.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 m0(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 h0(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 y0=Function.bind,b0=y0.bind(y0);function k0(e,t,r){let n=b0(h0,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]=b0(m0,null).apply(null,s)})}function e1(){let e=Symbol("Singular"),t={registry:{}},r=ll.bind(null,t,e);return k0(r,t,e),r}function t1(){let e={registry:{}},t=ll.bind(null,e);return k0(t,e),t}var R0={Singular:e1,Collection:t1};var r1="0.0.0-development",n1=`octokit-endpoint.js/${r1} ${wn()}`,o1={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":n1},mediaType:{format:""}};function s1(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function i1(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 x0(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{i1(t[n])?n in e?r[n]=x0(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function w0(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function qu(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=s1(r.headers),w0(r),w0(r.headers);let n=x0(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 a1(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 l1=/\{[^{}}]+\}/g;function d1(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function c1(e){let t=e.match(l1);return t?t.map(d1).reduce((r,n)=>r.concat(n),[]):[]}function _0(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function E0(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 Zo(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function li(e,t,r){return t=e==="+"||e==="#"?E0(t):Zo(t),r?Zo(r)+"="+t:t}function Xo(e){return e!=null}function Uu(e){return e===";"||e==="&"||e==="?"}function u1(e,t,r,n){var o=e[r],s=[];if(Xo(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(li(t,o,Uu(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Xo).forEach(function(i){s.push(li(t,i,Uu(t)?r:""))}):Object.keys(o).forEach(function(i){Xo(o[i])&&s.push(li(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Xo).forEach(function(a){i.push(li(t,a))}):Object.keys(o).forEach(function(a){Xo(o[a])&&(i.push(Zo(a)),i.push(li(t,o[a].toString())))}),Uu(t)?s.push(Zo(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Xo(o)&&s.push(Zo(r)):o===""&&(t==="&"||t==="?")?s.push(Zo(r)+"="):o===""&&s.push("");return s}function p1(e){return{expand:f1.bind(null,e)}}function f1(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(u1(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 E0(s)}),e==="/"?e:e.replace(/\/$/,"")}function v0(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=_0(e,["method","baseUrl","url","headers","request","mediaType"]),i=c1(r);r=p1(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=_0(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=a1(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 g1(e,t,r){return v0(qu(e,t,r))}function S0(e,t){let r=qu(e,t),n=g1.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:S0.bind(null,r),merge:qu.bind(null,r),parse:v0})}var T0=S0(null,o1);var q0=Xd(I0(),1);var E1=/^-?\d+$/,ul=/^-?\d+n+$/,_n=JSON.stringify,Ju=JSON.parse,B0=/^-?\d+n$/,M0=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,L0=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Yu=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Qu=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",v1=(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,b,h)=>(h!==null&&typeof h=="object"&&typeof h.toJSON=="function"&&(h=h.toJSON(b)),typeof h=="string"&&ul.test(h)?h+"n":typeof h=="bigint"?"rawJSON"in JSON?JSON.rawJSON(h.toString()):h.toString()+"n":(o&&(h=t.call(f,b,h)),h!==null&&typeof h=="object"&&(h instanceof Number||h instanceof String||h instanceof Boolean)&&(h=h.valueOf()),h)),a=i({"":e},"",e);if(Yu(a))return;let l=a===null||typeof a!="object",d=Qu(a);if(l||d)return _n(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 b=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
84
- `+n.repeat(u));let h=f.val[f.index],w=i(f.val,String(f.index),h);if(Yu(w))c.push("null"),f.first=!1,f.index++;else{let S=w!==null&&typeof w=="object",L=Qu(w);if(S&&!L){if(g.has(w))throw new TypeError("Converting circular structure to JSON");g.add(w),p.push({parent:f.val,key:String(f.index),val:w,isArray:Array.isArray(w),keys:Array.isArray(w)?null:Object.keys(w),index:0,first:!0}),f.first=!1,f.index++}else c.push(_n(w)),f.first=!1,f.index++}}else b=!0;else{for(;f.index<f.keys.length;){let w=f.keys[f.index++];if(s&&!s.has(w))continue;let L=f.val[w],A=i(f.val,w,L);if(Yu(A))continue;f.first||c.push(","),n?c.push(`
85
- `+n.repeat(u)+_n(w)+": "):c.push(_n(w)+":");let M=A!==null&&typeof A=="object",N=Qu(A);if(M&&!N){if(g.has(A))throw new TypeError("Converting circular structure to JSON");g.add(A),p.push({parent:f.val,key:w,val:A,isArray:Array.isArray(A),keys:Array.isArray(A)?null:Object.keys(A),index:0,first:!0}),f.first=!1;break}else c.push(_n(A)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(b=!0)}b&&(u--,!f.first&&n&&c.push(`
86
- `+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},N0=(e,t,r)=>{try{return"rawJSON"in JSON?_n(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?_n(e,(a,l)=>typeof l=="string"&&ul.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(M0,"$1$2$3").replace(L0,"$1$2$3"):_n(e,t,r)}catch(n){if(n instanceof RangeError){let o=v1(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(M0,"$1$2$3").replace(L0,"$1$2$3")}throw n}},cl=new Map,S1=()=>{let e=JSON.parse.toString();if(cl.has(e))return cl.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return cl.set(e,t),t}catch{return cl.set(e,!1),!1}},T1=(e,t,r,n)=>typeof t=="string"&&B0.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&ul.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,P1=(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&&E1.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),G0=Number.MAX_SAFE_INTEGER.toString(),j0=G0.length,A1=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,C1=/^"-?\d+n+"$/,O1=(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"&&(B0.test(a)?a=BigInt(a.slice(0,-1)):ul.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[""]},$0=e=>e.replace(A1,(t,r,n,o)=>{let s=t[0]==='"';if(s&&C1.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<j0||r.length===j0&&r<=G0);return s||a||l?t:'"'+t+'n"'}),W0=(e,t)=>{if(!e)return Ju(e,t);try{if(S1())return P1(e,t);let r=$0(e);return Ju(r,(n,o,s)=>T1(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=$0(e),o=Ju(n);return O1(o,t)}throw r}};var D1="10.0.13",F1={headers:{"user-agent":`octokit-request.js/${D1} ${wn()}`}};function I1(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 H0=()=>"";async function U0(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=I1(e.body)||Array.isArray(e.body)?N0(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 ln(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 ln(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Xu(i),new ln("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Xu(i),new ln(L1(c.data),a,{response:c,request:e});return c.data=n?await Xu(i):i.body,c}async function Xu(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(H0);let r=(0,q0.parse)(t);if(M1(r)){let n="";try{return n=await e.text(),W0(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(H0):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function M1(e){return e.type==="application/json"||e.type==="application/scim+json"}function L1(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 Zu(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 U0(r.parse(i));let a=(l,d)=>U0(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:Zu.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Zu.bind(null,r)})}var di=Zu(T0,F1);var j1="0.0.0-development";function $1(e){return`Request failed due to following response errors:
83
+ `);let d=!1,c=()=>{if(d)return;d=!0,yr.global==null&&d1(n,a),l.global=l.global??yr.global,l.auth=l.auth??yr.auth,l.search=l.search??yr.search,l.write=l.write??yr.write,l.notifications=l.notifications??yr.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,m,w]=f.args,{pathname:_}=new URL(w.url,"http://github.test");if(!(_.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let T=~~m.retryCount;m.retryCount=T,w.request.retryCount=T;let{wantRetry:F,retryAfter:$=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let G=Number(g.response.headers["retry-after"])||y.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",G,w,e,T),retryAfter:G}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(G=>G.type==="RATE_LIMITED")){let G=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),W=Math.max(Math.ceil((G-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",W,w,e,T),retryAfter:W}}return{}}();if(F)return m.retryCount++,$*y.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),o1(l,u,p))),{}}fl.VERSION=n1;fl.triggersNotification=v0;function wn(){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 gl(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)=>gl.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 S0(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 T0(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 P0=Function.bind,A0=P0.bind(P0);function C0(e,t,r){let n=A0(T0,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]=A0(S0,null).apply(null,s)})}function c1(){let e=Symbol("Singular"),t={registry:{}},r=gl.bind(null,t,e);return C0(r,t,e),r}function u1(){let e={registry:{}},t=gl.bind(null,e);return C0(t,e),t}var O0={Singular:c1,Collection:u1};var p1="0.0.0-development",f1=`octokit-endpoint.js/${p1} ${wn()}`,g1={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":f1},mediaType:{format:""}};function m1(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function h1(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 I0(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{h1(t[n])?n in e?r[n]=I0(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function D0(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Ju(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=m1(r.headers),D0(r),D0(r.headers);let n=I0(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 y1(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 b1=/\{[^{}}]+\}/g;function k1(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function R1(e){let t=e.match(b1);return t?t.map(k1).reduce((r,n)=>r.concat(n),[]):[]}function F0(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function M0(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 ts(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function pi(e,t,r){return t=e==="+"||e==="#"?M0(t):ts(t),r?ts(r)+"="+t:t}function es(e){return e!=null}function zu(e){return e===";"||e==="&"||e==="?"}function w1(e,t,r,n){var o=e[r],s=[];if(es(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(pi(t,o,zu(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(es).forEach(function(i){s.push(pi(t,i,zu(t)?r:""))}):Object.keys(o).forEach(function(i){es(o[i])&&s.push(pi(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(es).forEach(function(a){i.push(pi(t,a))}):Object.keys(o).forEach(function(a){es(o[a])&&(i.push(ts(a)),i.push(pi(t,o[a].toString())))}),zu(t)?s.push(ts(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?es(o)&&s.push(ts(r)):o===""&&(t==="&"||t==="?")?s.push(ts(r)+"="):o===""&&s.push("");return s}function _1(e){return{expand:x1.bind(null,e)}}function x1(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(w1(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 M0(s)}),e==="/"?e:e.replace(/\/$/,"")}function L0(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=F0(e,["method","baseUrl","url","headers","request","mediaType"]),i=R1(r);r=_1(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=F0(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=y1(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 E1(e,t,r){return L0(Ju(e,t,r))}function j0(e,t){let r=Ju(e,t),n=E1.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:j0.bind(null,r),merge:Ju.bind(null,r),parse:L0})}var $0=j0(null,g1);var rk=rc(q0(),1);var I1=/^-?\d+$/,yl=/^-?\d+n+$/,_n=JSON.stringify,Zu=JSON.parse,Y0=/^-?\d+n$/,K0=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,V0=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,ep=e=>e===void 0||typeof e=="function"||typeof e=="symbol",tp=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",M1=(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,m)=>(m!==null&&typeof m=="object"&&typeof m.toJSON=="function"&&(m=m.toJSON(y)),typeof m=="string"&&yl.test(m)?m+"n":typeof m=="bigint"?"rawJSON"in JSON?JSON.rawJSON(m.toString()):m.toString()+"n":(o&&(m=t.call(f,y,m)),m!==null&&typeof m=="object"&&(m instanceof Number||m instanceof String||m instanceof Boolean)&&(m=m.valueOf()),m)),a=i({"":e},"",e);if(ep(a))return;let l=a===null||typeof a!="object",d=tp(a);if(l||d)return _n(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(`
84
+ `+n.repeat(u));let m=f.val[f.index],w=i(f.val,String(f.index),m);if(ep(w))c.push("null"),f.first=!1,f.index++;else{let _=w!==null&&typeof w=="object",O=tp(w);if(_&&!O){if(g.has(w))throw new TypeError("Converting circular structure to JSON");g.add(w),p.push({parent:f.val,key:String(f.index),val:w,isArray:Array.isArray(w),keys:Array.isArray(w)?null:Object.keys(w),index:0,first:!0}),f.first=!1,f.index++}else c.push(_n(w)),f.first=!1,f.index++}}else y=!0;else{for(;f.index<f.keys.length;){let w=f.keys[f.index++];if(s&&!s.has(w))continue;let O=f.val[w],T=i(f.val,w,O);if(ep(T))continue;f.first||c.push(","),n?c.push(`
85
+ `+n.repeat(u)+_n(w)+": "):c.push(_n(w)+":");let F=T!==null&&typeof T=="object",$=tp(T);if(F&&!$){if(g.has(T))throw new TypeError("Converting circular structure to JSON");g.add(T),p.push({parent:f.val,key:w,val:T,isArray:Array.isArray(T),keys:Array.isArray(T)?null:Object.keys(T),index:0,first:!0}),f.first=!1;break}else c.push(_n(T)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(y=!0)}y&&(u--,!f.first&&n&&c.push(`
86
+ `+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},Q0=(e,t,r)=>{try{return"rawJSON"in JSON?_n(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?_n(e,(a,l)=>typeof l=="string"&&yl.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(K0,"$1$2$3").replace(V0,"$1$2$3"):_n(e,t,r)}catch(n){if(n instanceof RangeError){let o=M1(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(K0,"$1$2$3").replace(V0,"$1$2$3")}throw n}},hl=new Map,L1=()=>{let e=JSON.parse.toString();if(hl.has(e))return hl.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return hl.set(e,t),t}catch{return hl.set(e,!1),!1}},j1=(e,t,r,n)=>typeof t=="string"&&Y0.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&yl.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,$1=(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&&I1.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),X0=Number.MAX_SAFE_INTEGER.toString(),z0=X0.length,B1=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,N1=/^"-?\d+n+"$/,G1=(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"&&(Y0.test(a)?a=BigInt(a.slice(0,-1)):yl.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[""]},J0=e=>e.replace(B1,(t,r,n,o)=>{let s=t[0]==='"';if(s&&N1.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<z0||r.length===z0&&r<=X0);return s||a||l?t:'"'+t+'n"'}),Z0=(e,t)=>{if(!e)return Zu(e,t);try{if(L1())return $1(e,t);let r=J0(e);return Zu(r,(n,o,s)=>j1(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=J0(e),o=Zu(n);return G1(o,t)}throw r}};var W1="10.0.13",H1={headers:{"user-agent":`octokit-request.js/${W1} ${wn()}`}};function U1(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 ek=()=>"";async function tk(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=U1(e.body)||Array.isArray(e.body)?Q0(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 an(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 an(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await rp(i),new an("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await rp(i),new an(K1(c.data),a,{response:c,request:e});return c.data=n?await rp(i):i.body,c}async function rp(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(ek);let r=(0,rk.parse)(t);if(q1(r)){let n="";try{return n=await e.text(),Z0(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(ek):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function q1(e){return e.type==="application/json"||e.type==="application/scim+json"}function K1(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 np(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 tk(r.parse(i));let a=(l,d)=>tk(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:np.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:np.bind(null,r)})}var fi=np($0,H1);var V1="0.0.0-development";function z1(e){return`Request failed due to following response errors:
87
87
  `+e.errors.map(t=>` - ${t.message}`).join(`
88
- `)}var B1=class extends Error{constructor(e,t,r){super($1(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},N1=["method","baseUrl","url","headers","request","query","mediaType","operationName"],G1=["query","method","url"],K0=/\/api\/v3\/?$/;function W1(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(G1.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)=>N1.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 K0.test(s)&&(o.url=s.replace(K0,"/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 B1(o,a,i.data)}return i.data.data})}function ep(e,t){let r=e.defaults(t);return Object.assign((o,s)=>W1(r,o,s),{defaults:ep.bind(null,r),endpoint:r.endpoint})}var B3=ep(di,{headers:{"user-agent":`octokit-graphql.js/${j1} ${wn()}`},method:"POST",url:"/graphql"});function V0(e){return ep(e,{method:"POST",url:"/graphql"})}var tp="(?:[a-zA-Z0-9_-]+)",z0="\\.",J0=new RegExp(`^${tp}${z0}${tp}${z0}${tp}$`),H1=J0.test.bind(J0);async function U1(e){let t=H1(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 q1(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function K1(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=q1(e),t(o)}var Y0=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(U1.bind(null,t),{hook:K1.bind(null,t)})};var rp="7.0.7";var Q0=()=>{},V1=console.warn.bind(console),z1=console.error.bind(console);function J1(e={}){return typeof e.debug!="function"&&(e.debug=Q0),typeof e.info!="function"&&(e.info=Q0),typeof e.warn!="function"&&(e.warn=V1),typeof e.error!="function"&&(e.error=z1),e}var X0=`octokit-core.js/${rp} ${wn()}`,pl=class{static VERSION=rp;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 R0.Collection,n={baseUrl:di.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} ${X0}`:X0,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=di.defaults(n),this.graphql=V0(this.request).defaults(n),this.log=J1(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=Y0(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 Z0="6.0.0";function np(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})})}np.VERSION=Z0;var Y1="0.0.0-development";function Q1(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 op(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=Q1(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 ek(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),tk(e,[],op(e,t,r)[Symbol.asyncIterator](),n)}function tk(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:tk(e,t,r,n)})}var r6=Object.assign(ek,{iterator:op});function sp(e){return{paginate:Object.assign(ek.bind(null,e),{iterator:op.bind(null,e)})}}sp.VERSION=Y1;var ip="17.0.0";var X1={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"]}},rk=X1;var ro=new Map;for(let[e,t]of Object.entries(rk))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);ro.has(e)||ro.set(e,new Map),ro.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var Z1={has({scope:e},t){return ro.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[...ro.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=ro.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=eF(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function ap(e){let t={};for(let r of ro.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},Z1);return t}function eF(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 tF(e){return{rest:ap(e)}}tF.VERSION=ip;function lp(e){let t=ap(e);return{...t,rest:t}}lp.VERSION=ip;var nk="22.0.1";var ok=pl.plugin(np,lp,sp).defaults({userAgent:`octokit-rest.js/${nk}`});function rF(e){return`r${e}`}function sk(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=rF(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
88
+ `)}var J1=class extends Error{constructor(e,t,r){super(z1(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},Y1=["method","baseUrl","url","headers","request","query","mediaType","operationName"],Q1=["query","method","url"],nk=/\/api\/v3\/?$/;function X1(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(Q1.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)=>Y1.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 nk.test(s)&&(o.url=s.replace(nk,"/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 J1(o,a,i.data)}return i.data.data})}function op(e,t){let r=e.defaults(t);return Object.assign((o,s)=>X1(r,o,s),{defaults:op.bind(null,r),endpoint:r.endpoint})}var s6=op(fi,{headers:{"user-agent":`octokit-graphql.js/${V1} ${wn()}`},method:"POST",url:"/graphql"});function ok(e){return op(e,{method:"POST",url:"/graphql"})}var sp="(?:[a-zA-Z0-9_-]+)",sk="\\.",ik=new RegExp(`^${sp}${sk}${sp}${sk}${sp}$`),Z1=ik.test.bind(ik);async function eF(e){let t=Z1(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 tF(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function rF(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=tF(e),t(o)}var ak=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(eF.bind(null,t),{hook:rF.bind(null,t)})};var ip="7.0.7";var lk=()=>{},nF=console.warn.bind(console),oF=console.error.bind(console);function sF(e={}){return typeof e.debug!="function"&&(e.debug=lk),typeof e.info!="function"&&(e.info=lk),typeof e.warn!="function"&&(e.warn=nF),typeof e.error!="function"&&(e.error=oF),e}var dk=`octokit-core.js/${ip} ${wn()}`,bl=class{static VERSION=ip;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 O0.Collection,n={baseUrl:fi.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} ${dk}`:dk,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=fi.defaults(n),this.graphql=ok(this.request).defaults(n),this.log=sF(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=ak(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 ck="6.0.0";function ap(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})})}ap.VERSION=ck;var iF="0.0.0-development";function aF(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 lp(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=aF(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 uk(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),pk(e,[],lp(e,t,r)[Symbol.asyncIterator](),n)}function pk(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:pk(e,t,r,n)})}var _6=Object.assign(uk,{iterator:lp});function dp(e){return{paginate:Object.assign(uk.bind(null,e),{iterator:lp.bind(null,e)})}}dp.VERSION=iF;var cp="17.0.0";var lF={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"]}},fk=lF;var no=new Map;for(let[e,t]of Object.entries(fk))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);no.has(e)||no.set(e,new Map),no.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var dF={has({scope:e},t){return no.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[...no.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=no.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=cF(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function up(e){let t={};for(let r of no.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},dF);return t}function cF(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 uF(e){return{rest:up(e)}}uF.VERSION=cp;function pp(e){let t=up(e);return{...t,rest:t}}pp.VERSION=cp;var gk="22.0.1";var mk=bl.plugin(ap,pp,dp).defaults({userAgent:`octokit-rest.js/${gk}`});function pF(e){return`r${e}`}function hk(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=pF(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
89
89
  `)})," rateLimit { cost }","}"].join(`
90
- `),aliases:r}}function ik(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 nF=ok.plugin(Wu,al);function ak(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function lk(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 es=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 dp(e){let t=e.etags??ak(),r=new nF({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=xn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),b=f.headers,h=fl(b,"etag");return h!==void 0&&t.set(c.cacheKey,{etag:h,data:f.data,headers:b}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:b,quotaFree:!1}}catch(f){if(ci(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 b=dk(f),h={...u.headers,...b},w=fl(h,"etag")??u.etag;return t.set(c.cacheKey,{etag:w,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 ci(f)===401?new es({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=sk(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=ik(u,p),f=sF(p),b=c[0].input;await e.attribution?.record({operation:{key:b.operation.key,budget:"graphql"},cost:f,actor:iF(c.map(({input:h})=>h.actor))}),g.forEach((h,w)=>{let S=c[w];h.value===null?S.reject(new Error(`GitHub returned no ${h.read.kind} #${h.read.number} from the coalesced query`)):S.resolve({data:S.input.project?S.input.project(h.value,"graphql"):h.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=ci(u)===401?new es({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=lk(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,b=1;for(;;){let h=await n({...c,cacheKey:`${c.cacheKey}:page:${b}`,parameters:{...c.parameters??{},per_page:100,page:b}});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 ${b}`);if(u.push(...h.data),p=h.headers,!oF(h.headers))break;b+=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 ci(g)===401?new es({cause:g}):g}}}}function oF(e){let t=fl(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function ui(e){let t=ci(e),r=dk(e);return t===429||t===403&&fl(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function ci(e){if(xn(e))return typeof e.status=="number"?e.status:void 0}function dk(e){return!xn(e)||!xn(e.response)||!xn(e.response.headers)?{}:e.response.headers}function fl(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function xn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function sF(e){let t=xn(e)?e:{},r=xn(t.data)?t.data:t,o=(xn(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 iF(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 uk="rate_limit",pk={rest:"core",graphql:"graphql",search:"search"},dn=["rest","graphql","search"];function yl(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:[...dn],detail:t??"no balance has been asked for yet, so none is known"}}var up=15e3,ts=.15,ml=[{at_or_below_fraction:0,every_ms:up,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:ts,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 E6=60*6e4,cp=2;function fk(e,t){let r=ck(e),n=ck(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of dn){let l=pk[a],d=n[l],c=dF(a,l,d);o[a]=c,c==null&&s.push(a)}let i=dn.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 ${dn.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function pp(e){try{let t=await e.transport();return fk(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...yl(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function fp(e){let t=null;for(let r of dn){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function bl(e,t){let r=fp(e);if(r==null)return hl(ts).every_ms;let n=hl(r.fraction);if(r.remaining>0)return n.every_ms;let o=mk(t.now,r.reset_at);return o==null?n.every_ms:Math.max(up,Math.min(n.every_ms,o))}function gp(e,t=ts){return Math.ceil(e.limit*t)}function gk(e,t,r=ts){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<gp(n,r)?"reserved":"open"}function mp(e){let t=e.reservedFraction??ts,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:hl(t).every_ms*cp,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:hl(t).every_ms,pools:[],unreported_pools:[...dn],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=bl(r,{now:e.now}),o=e.stalenessMs??n*cp,s=mk(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=dn.map(c=>r.pools[c]).filter(c=>c!=null),l=lF(r,t),d=fp(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`:aF(l,d,r,t)}}function hp(e){if(!bp(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 aF(e,t,r,n){if(t==null)return r.detail;let o=gp(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 lF(e,t){let r="unknown";for(let n of dn){if(e.pools[n]==null)continue;let o=gk(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function hl(e){for(let t of ml)if(e<=t.at_or_below_fraction)return t;return ml[ml.length-1]}function dF(e,t,r){if(!bp(r))return null;let n=gl(r.limit),o=gl(r.remaining),s=gl(r.used),i=gl(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 yp(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${uk}`,{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 mk(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 gl(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function ck(e){return bp(e)?e:{}}function bp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as cF}from"node:child_process";import{existsSync as uF,readFileSync as kl,readdirSync as pF}from"node:fs";import{dirname as fF,join as no}from"node:path";function pi(e){let t=Yo(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Qo(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function gF(e){let t=[],r=[];for(let n of e.workers){let o=pi(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Yo(n).memory_max??Yo(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(hF(n,o,s))}}return{terminations:t,unenforceable:r}}function mF(e){let t=[];for(let r of e.workers){if(r.isolated)continue;let n=Yo(r).max_processes;if(n==null||!Number.isSafeInteger(n)||n<=0)continue;let o=e.processes[r.worker_id];if(typeof o!="number"||!Number.isSafeInteger(o)||o<0||o<=n)continue;let s=`Worker ${JSON.stringify(r.worker_id)} of project ${JSON.stringify(r.project_label)}`;t.push({version:1,worker_id:r.worker_id,project_label:r.project_label,outcome:"terminated-over-process-budget",classification:"budget-exceeded",stall:!1,budget_name:"TasksMax",budget_declared:n,observed_processes:o,workspace_path:r.workspace_path,reason:`redskilled terminated ${s}: its process tree contained ${o} processes, exceeding its TasksMax budget of ${n}. This is a budget termination, not a stall, and the work in ${JSON.stringify(r.workspace_path)} is handed forward.`})}return{terminations:t,unenforceable:[]}}function hk(e){let t=gF(e),r=mF(e);return{terminations:[...t.terminations,...r.terminations],unenforceable:[...t.unenforceable,...r.unenforceable]}}function hF(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 yF=4096;function yk(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},processes:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a={},l=kF(e,r,t);for(let[p,g]of l){let f=_F(g);f!=null&&(o[p]=f.memoryBytes,f.cpuSeconds!=null&&(s[p]=f.cpuSeconds),a[p]="cgroup")}let d=e.filter(p=>a[p.worker_id]==null);if(d.length===0)return{rss:o,cpu_seconds:s,processes:i,sources:a};let c=vF(r,t);if(c.size===0)return{rss:o,cpu_seconds:s,processes:i,sources:a};let u=new Map;for(let p of c.values()){let g=u.get(p.ppid);g?g.push(p.pid):u.set(p.ppid,[p.pid])}for(let p of d){if(!c.has(p.pid))continue;let g=0,f=0,b=0,h=[p.pid],w=new Set;for(;h.length>0;){let S=h.pop();if(w.has(S))continue;w.add(S);let L=c.get(S);if(L){b+=1,g+=L.rssBytes,f+=L.cpuSeconds;for(let A of u.get(S)??[])h.push(A)}}o[p.worker_id]=g,s[p.worker_id]=f,i[p.worker_id]=b,a[p.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,processes:i,sources:a}}var bF="/sys/fs/cgroup";function kF(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??bF,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=RF(s,r);for(let l of i)for(let d of a){let c=no(d,l.unit);if(uF(no(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function RF(e,t){let r=t.selfCgroupPath??wF(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(no(e,s));let a=fF(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(no(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function wF(){try{for(let e of kl("/proc/self/cgroup","utf8").split(`
91
- `))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function _F(e){let t;try{t=kl(no(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:xF(e)}}function xF(e){let t;try{t=kl(no(e,"cpu.stat"),"utf8")}catch{return null}return EF(t)}function EF(e){for(let t of e.split(`
92
- `)){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 vF(e,t){return t.procRoot!=null||e==="linux"?OF(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?AF(SF(t.psTable)):new Map}function SF(e){try{return(e??TF)()}catch{return""}}function TF(){return cF("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var PF=1024;function AF(e){let t=new Map;for(let r of e.split(`
93
- `)){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=CF(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*PF,cpuSeconds:a})}return t}function CF(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 OF(e){let t=new Map,r;try{r=pF(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=kl(no(e,n,"stat"),"utf8")}catch{continue}let s=Rl(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*yF,cpuSeconds:s.cpuTicks/DF})}return t}var DF=100;function Rl(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[2]),i=Number(n[3]),a=Number(n[11]),l=Number(n[12]),d=n[19],c=Number(n[21]);return![r,o,s,i].every(Number.isSafeInteger)||!Number.isFinite(c)||!Number.isFinite(a)||!Number.isFinite(l)||d==null||!/^\d+$/.test(d)||!Number.isSafeInteger(Number(d))?null:{pid:r,ppid:o,pgid:s,sid:i,starttime:d,rssPages:Math.max(0,c),cpuTicks:Math.max(0,a)+Math.max(0,l)}}var wl=4*60*1e3,kp={key:"redskilled repository activity poll",budget:"rest"},FF={key:"redskilled merged-today poll",budget:"search"};async function Rk(e,t){let r=Date.parse(e.now),n=e.transport.conditionalList,o=e.transport.conditionalCount,s=new Map((e.previous?.projects??[]).map(c=>[c.project_label,c])),i=e.panoramaRefreshMs??wl,a=[],l=0,d={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let c of e.projects){let u=`${c.owner}/${c.name}`,p=s.get(c.project_label),g=Date.parse(p?.panorama_fetched_at??e.previous?.fetched_at??""),f=p?.counts==null||!Number.isFinite(r)||!Number.isFinite(g)||r-g>=i;try{let b={owner:c.owner,repo:c.name,state:"open"},h=await n({cacheKey:`activity:${u}:open-issues:${JSON.stringify(b)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:b,operation:kp});l+=h.requestCount,d=Rp(d,bk(h.headers));let w=h.data.filter(A=>!wp(A.pull_request)),S=c.queue_labels==null?{ready_queue:null,human_queue:null}:IF(w,c.queue_labels),L=p?.counts??null;if(f){let A={owner:c.owner,repo:c.name,state:"open"},M={owner:c.owner,repo:c.name,state:"closed",since:t.closed_since},N={q:`repo:${u} is:pr is:merged merged:>=${t.merged_since}`,per_page:1},W=await n({cacheKey:`activity:${u}:open-prs:${JSON.stringify(A)}`,route:"GET /repos/{owner}/{repo}/pulls",parameters:A,operation:kp}),H=await n({cacheKey:`activity:${u}:recently-closed:${JSON.stringify(M)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:M,operation:kp}),F=await o({cacheKey:`activity:${u}:merged-today:${t.merged_since}`,route:"GET /search/issues",parameters:N,operation:FF});l+=W.requestCount+H.requestCount+F.requestCount;for(let q of[W.headers,H.headers,F.headers])d=Rp(d,bk(q));let U=H.data.filter(q=>!wp(q.pull_request)).filter(q=>wk(q.closed_at)>=t.closed_since).length;if(!Number.isSafeInteger(F.data.total_count)||F.data.total_count<0)throw new Error(`GitHub returned no merged-today count for ${u}`);L={open_pull_requests:W.data.length,open_issues:w.length,recently_closed:U,merged_today:F.data.total_count,ready_queue:S.ready_queue,human_queue:S.human_queue}}if(L==null)throw new Error(`no panorama cache exists for ${u}`);a.push({project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:L.open_pull_requests,open_issues:L.open_issues,recently_closed:L.recently_closed,merged_today:L.merged_today,...S},panorama_fetched_at:f?e.now:p?.panorama_fetched_at??e.previous?.fetched_at??e.now,queue_fetched_at:e.now,detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`})}catch(b){let h=ui(b);d=Rp(d,{remaining:null,reset_at:null,exhausted:h,point_cost:null});let w=b instanceof Error?b.message:String(b);a.push(p?.counts==null?{project_label:c.project_label,repository:u,outcome:h?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${u} answered: ${w}`}:{...p,detail:`serving last-known counters after the activity fetch failed: ${w}`})}}return{version:1,fetched_at:e.now,request_count:l,project_count:a.length,rate_limit:d,projects:a}}function IF(e,t){let r=(n,o)=>Array.isArray(n.labels)&&n.labels.some(s=>MF(s)===o);return{ready_queue:e.filter(n=>r(n,t.ready)).length,human_queue:e.filter(n=>r(n,t.human)).length}}function MF(e){return typeof e=="string"?e:wp(e)?wk(e.name):""}function bk(e){let t=kk(e,"x-ratelimit-remaining"),r=kk(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Rp(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 kk(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 wp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wk(e){return typeof e=="string"?e:""}var LF=["api","graphql"],o8=ju(LF);var _k=100,ns=2e4,jF=7*24*60*60*1e3,xp=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 vp(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new xp(r.project_label,r.token_ref,t)}function xk(e,t={now:new Date(0).toISOString()}){GF(e);let r=t.closedWindowMs??jF,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=new Date(n),i=[s.getFullYear(),String(s.getMonth()+1).padStart(2,"0"),String(s.getDate()).padStart(2,"0")].join("-"),a=e.map((c,u)=>({alias:`r${u}`,search_alias:`c${u}`,merged_alias:`m${u}`,project:c}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...a.flatMap(({alias:c,search_alias:u,merged_alias:p,project:g})=>{let f=JSON.stringify(g.owner),b=JSON.stringify(g.name),h=JSON.stringify(`repo:${g.owner}/${g.name} is:closed closed:>=${o}`),w=JSON.stringify(`repo:${g.owner}/${g.name} is:pr is:merged merged:>=${i}`);return[` ${c}: repository(owner: ${f}, name: ${b}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${u}: search(query: ${h}, type: ISSUE, first: 1) { issueCount }`,` ${p}: search(query: ${w}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
94
- `),aliases:a,closed_since:o,merged_since:i}}function $F(e,t,r){let n=rs(t),o=rs(n.data),s=Array.isArray(n.errors)?n.errors.map(rs):[],i=WF(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,merged_alias:c,project:u})=>{let p=u.owner+"/"+u.name,g=o[l],f=s.find(b=>_p(b.path,l)||_p(b.path,d)||_p(b.path,c));if(Ak(g)){let b=Ek(g.open_pull_requests),h=Ek(g.open_issues),w=vk(o[d]),S=vk(o[c]);if(b!=null&&h!=null&&w!=null&&S!=null)return{project_label:u.project_label,repository:p,outcome:"counted",counts:{open_pull_requests:b,open_issues:h,merged_today:S,recently_closed:w,ready_queue:null,human_queue:null},panorama_fetched_at:r.fetchedAt,queue_fetched_at:r.fetchedAt,detail:`counted ${p} for project ${JSON.stringify(u.project_label)}`}}return i.exhausted||Pk(f)?{project_label:u.project_label,repository:p,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${p} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:u.project_label,repository:p,outcome:"unreachable",counts:null,detail:`${p} is not reachable with the host token: ${Ep(f?.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 BF(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 Sk(e){if(e.projects.length===0)return BF(e.now);if(vp(e.projects,e.hostTokenRef),e.transport.conditionalList&&e.transport.conditionalCount){let r=Date.parse(e.now),n=Number.isFinite(r)?new Date(Math.floor(r/(60*60*1e3))*60*60*1e3).toISOString():e.now,o=xk(e.projects,{now:n,closedWindowMs:e.closedWindowMs});return await Rk(e,o)}let t=xk(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return $F(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}`}))}}}function Tk(e){let t=e.endpoint==null?void 0:NF(e.endpoint),r=dp({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.conditionalCount=async o=>{let s=await r.conditionalRest({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation});return{data:s.data,headers:s.headers,requestCount:1}},n}function NF(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 GF(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>_k)throw new Error(`redskilled activity fetch spans at most ${_k} 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`);if(r.queue_labels!=null&&(r.queue_labels.ready===""||r.queue_labels.human===""))throw new Error(`project ${JSON.stringify(r.project_label)} declares an empty queue label: a label that names nothing would be counted as an empty queue, so state both label names or state neither`);t.add(r.project_label)}}function WF(e,t){let r=rs(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(Pk),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 Pk(e){if(e==null)return!1;let t=Ep(e.type),r=Ep(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function _p(e,t){return Array.isArray(e)&&e.includes(t)}function Ek(e){let t=rs(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function vk(e){let t=rs(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function rs(e){return Ak(e)?e:{}}function Ak(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ep(e){return typeof e=="string"?e:""}var Sp=2,Tp=Sp*ns;function Ok(e){let t=e.stalenessMs??Tp,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 Dk(e){if(!Ck(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)&&Ck(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Ck(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Pp=["open_pull_requests","open_issues","merged_today","ready_queue","human_queue"],Fk="this daemon polls no repository, so there are no remote counters to date";function Ik(e){let t=e.stalenessMs??Tp,r=e.panoramaStalenessMs??wl,n=e.activity;if(n==null||n.projects.length===0)return{version:1,threshold_ms:t,projects:[],reason:Fk};let o=Date.parse(e.now),s=n.projects.map(i=>HF(i,{fetchedAt:n.fetched_at,nowMs:o,threshold:t,panoramaThreshold:r}));return{version:1,threshold_ms:t,projects:s,reason:!Number.isFinite(o)||!Number.isFinite(Date.parse(n.fetched_at))?"these counters carry no readable instant, so none of them can be presented as current":`these counters carry their queue and panorama poll instants as of ${n.fetched_at}`}}function HF(e,t){let r={};for(let n of Pp){let o=n==="open_pull_requests"||n==="open_issues"||n==="merged_today",s=o?e.panorama_fetched_at??t.fetchedAt:e.queue_fetched_at??t.fetchedAt,i=Date.parse(s),a=Number.isFinite(t.nowMs)&&Number.isFinite(i)?Math.max(0,t.nowMs-i):null;r[n]=qF(n,UF(e,n),e,{fetchedAt:s,ageMs:a,threshold:o?t.panoramaThreshold:t.threshold})}return{project_label:e.project_label,repository:e.repository,outcome:e.outcome,counters:r}}function UF(e,t){let r=e.counts;if(r==null)return null;switch(t){case"open_pull_requests":return r.open_pull_requests;case"open_issues":return r.open_issues;case"merged_today":return r.merged_today??null;case"ready_queue":return r.ready_queue;case"human_queue":return r.human_queue}}function qF(e,t,r,n){let o={name:e,value:null,fetched_at:null,age_ms:null,threshold_ms:n.threshold,stale:!1};if(t==null)return{...o,reason:r.outcome==="counted"?`this poll produced no ${e}, so it is absent rather than zero`:r.detail};if(n.ageMs==null)return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:null,threshold_ms:n.threshold,stale:!0,reason:`this ${e} carries no readable instant, so it cannot be presented as current`};let s=n.ageMs>n.threshold;return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:n.ageMs,threshold_ms:n.threshold,stale:s,reason:s?`this ${e} is ${n.ageMs}ms old, past the ${n.threshold}ms window`:`counted ${n.ageMs}ms ago, within the ${n.threshold}ms window`}}function Ap(e){if(!_l(e))return!1;let t=e;return t.version===1&&typeof t.threshold_ms=="number"&&typeof t.reason=="string"&&Array.isArray(t.projects)&&t.projects.every(KF)}function KF(e){if(!_l(e))return!1;let t=e;if(typeof t.project_label!="string"||typeof t.repository!="string"||typeof t.outcome!="string"||!_l(t.counters))return!1;let r=t.counters;return Pp.every(n=>VF(r[n]))}function VF(e){if(!_l(e))return!1;let t=e;return typeof t.name=="string"&&(t.value===null||typeof t.value=="number")&&(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"&&typeof t.reason=="string"}function _l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Lk(e,t,r={}){let n=[...e].sort((p,g)=>(oo(g.ts)??0)-(oo(p.ts)??0)),o=n.slice(0,Math.max(0,Math.floor(t))).map(Mk),s=n.filter(p=>p.observed_exit===!0||p.sender_class!=="unknown"&&p.confidence!=="none"),i=s[0]==null?null:Mk(s[0]),a=r.now==null?null:oo(r.now),l=i==null?null:oo(i.ts),d=r.freshnessMs??6e5,c=zF(n,{nowMs:a,freshnessMs:d}),u=r.healthyFleet===!0||a==null||l==null||a-l>d?null:i;return{count:n.length,sender_attributed_count:s.length,recent:o,latest:o[0]??null,latest_sender_attributed:i,current_sender_attributed:u,reaped_at:o[0]?.ts??null,...c==null?{}:{boot_loop:c}}}function Mk(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 zF(e,t){let r=new Map;for(let o of e){if(o.sender_class!=="boot-refused"||o.uptime_s==null||o.uptime_s>2||o.project_label==null||o.project_label===""||oo(o.ts)==null)continue;let s=r.get(o.project_label)??[];s.push(o),r.set(o.project_label,s)}return[...r.entries()].filter(([,o])=>o.length>=3).map(([o,s])=>{let i=s[0],a=oo(i.ts);if(t.nowMs==null||t.nowMs-a>t.freshnessMs)return null;let l=Math.min(...s.map(c=>oo(c.ts))),d=i.detail?.trim()||i.evidence[0]?.trim();return d==null||d===""?null:{project_label:o,count:s.length,span_ms:Math.max(0,a-l),latest_refusal:d}}).filter(o=>o!=null).sort((o,s)=>s.count-o.count||s.span_ms-o.span_ms)[0]??null}function Cp(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 oo(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var jk=["logs","vitals","display"];function Op(e,t){if(t===void 0)return e;let r=jk.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:JF,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:YF},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var JF={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},YF={last_line:null,published_at:null,source:null};var QF=3e4;function Bk(e){let t=e.stalenessMs??QF,r=Dp(e.now),n=e.sampledAt==null?null:Dp(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=>ZF(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=tl(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:nI({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:rI(a),known_projects:tI(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:mp({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Ok({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),remote_counters:Ik({activity:e.repositoryActivity??null,now:e.now,...e.activityStalenessMs===void 0?{}:{stalenessMs:e.activityStalenessMs}}),...e.deaths===void 0?{}:{deaths:Lk(e.deaths,e.recentDeathLimit??4,{now:e.now,healthyFleet:(e.hostState.registrations??[]).length>0&&(e.hostState.registrations??[]).every(p=>e.hostState.workers.filter(g=>g.project_label===p.project_label).length>=Math.max(0,p.target))})},engine:XF(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function XF(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 ZF(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=pi(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=Dp(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:eI(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function eI(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 tI(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 rI(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 nI(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 Dp(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function xl(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(oI))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(sI))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Dk(t.repository_activity))&&(t.remote_counters===void 0||Ap(t.remote_counters))&&(t.github_balance===void 0||hp(t.github_balance))&&(t.deaths===void 0||Cp(t.deaths))&&(t.engine===void 0||iI(t.engine))&&(t.metrics===void 0||Eb(t.metrics))}function oI(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 sI(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 iI(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 Nk={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 Gk(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 El={$schema:"https://tr.designtokens.org/format/2025.10/schema.json",$description:"RedDB design tokens \u2014 the canonical, machine-readable source of truth. DTCG 2025.10 (Design Tokens Format Module, first stable version). Hand-authored; tokens.css and tailwind-preset.js are build outputs of generators/build-tokens.mjs \u2014 never hand-edit them. Locked brand values: red #ff2056, ink #07080a, paper #f4f5f7 (from the marks, issues #13/#16); type Space Grotesk + JetBrains Mono (ADR 0001).",color:{$type:"color",$description:"Primitive palette (raw scale) and semantic roles (aliases). Feedback colours (success/warning/danger) are intentionally not published yet; issue #10 locked --ok #4ade80, --warn #fbbf24, and --danger #ff5470, with the rule that the accent never signals error.",red:{$description:"The brand accent. red.500 is the locked mark colour #ff2056; the other stops are derived by mixing toward white/black for hover, active, and on-light emphasis.","400":{$value:{colorSpace:"srgb",components:[1,.3882,.5373],hex:"#ff6389"}},"500":{$value:{colorSpace:"srgb",components:[1,.1255,.3373],hex:"#ff2056"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900"],failsOn:["color.neutral.800"]},asFill:{textPasses:["color.neutral.950"],textFails:["color.neutral.0"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.8196,.102,.2745],hex:"#d11a46"}},"700":{$value:{colorSpace:"srgb",components:[.6784,.0863,.2275],hex:"#ad163a"}}},neutral:{$description:"Cool-gray ramp on the ink\u2194paper axis. neutral.50 is the locked paper #f4f5f7; neutral.950 is the locked ink #07080a; intermediate stops are hand-tuned on the same hue.","0":{$value:{colorSpace:"srgb",components:[1,1,1],hex:"#ffffff"}},"50":{$value:{colorSpace:"srgb",components:[.9569,.9608,.9686],hex:"#f4f5f7"}},"100":{$value:{colorSpace:"srgb",components:[.9059,.9137,.9333],hex:"#e7e9ee"}},"200":{$value:{colorSpace:"srgb",components:[.8275,.8392,.8706],hex:"#d3d6de"}},"300":{$value:{colorSpace:"srgb",components:[.702,.7216,.7686],hex:"#b3b8c4"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"400":{$value:{colorSpace:"srgb",components:[.5451,.5686,.6314],hex:"#8b91a1"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"500":{$value:{colorSpace:"srgb",components:[.4,.4275,.4941],hex:"#666d7e"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:[],failsOn:["color.neutral.950","color.neutral.900","color.neutral.800"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.2902,.3176,.3843],hex:"#4a5162"}},"700":{$value:{colorSpace:"srgb",components:[.2,.2235,.2863],hex:"#333949"}},"800":{$value:{colorSpace:"srgb",components:[.1176,.1333,.1765],hex:"#1e222d"}},"900":{$value:{colorSpace:"srgb",components:[.0706,.0784,.1059],hex:"#12141b"}},"950":{$value:{colorSpace:"srgb",components:[.0275,.0314,.0392],hex:"#07080a"}}},brand:{$description:"Semantic brand roles. on-primary is the black R the mark sets on the red field.",primary:{$value:"{color.red.500}"},hover:{$value:"{color.red.600}"},active:{$value:"{color.red.700}"},"on-primary":{$value:"{color.neutral.950}"}},ink:{$value:"{color.neutral.950}",$description:"The near-black foreground; the brand is dark-first."},paper:{$value:"{color.neutral.50}",$description:"The off-white ground."},surface:{muted:{$value:"{color.neutral.100}"}},border:{subtle:{$value:"{color.neutral.200}"},strong:{$value:"{color.neutral.300}"}}},fontFamily:{$type:"fontFamily",$description:"Space Grotesk for display and body, JetBrains Mono for code (ADR 0001). Space Grotesk has no italic and no weight 300; <em> maps to weight 500 and italic exists only in the mono.",sans:{$value:["Space Grotesk","system-ui","-apple-system","Segoe UI","sans-serif"]},mono:{$value:["JetBrains Mono","ui-monospace","SFMono-Regular","Menlo","monospace"]}},fontWeight:{$type:"fontWeight",$description:"Weight 300 is excluded (dark-first: thin strokes lose weight to halation).",regular:{$value:400},medium:{$value:500},bold:{$value:700}},fontSize:{$type:"dimension",$description:"Modular scale, ~1.2 (minor third) from a 1rem base.",xs:{$value:{value:.75,unit:"rem"}},sm:{$value:{value:.875,unit:"rem"}},base:{$value:{value:1,unit:"rem"}},lg:{$value:{value:1.125,unit:"rem"}},xl:{$value:{value:1.25,unit:"rem"}},"2xl":{$value:{value:1.5,unit:"rem"}},"3xl":{$value:{value:1.875,unit:"rem"}},"4xl":{$value:{value:2.25,unit:"rem"}},"5xl":{$value:{value:3,unit:"rem"}},"6xl":{$value:{value:3.75,unit:"rem"}}},lineHeight:{$type:"number",$description:"Unitless multipliers.",tight:{$value:1.1},snug:{$value:1.25},normal:{$value:1.5},relaxed:{$value:1.65}},letterSpacing:{$type:"dimension",tight:{$value:{value:-.02,unit:"em"}},normal:{$value:{value:0,unit:"em"}},wide:{$value:{value:.04,unit:"em"}}},spacing:{$type:"dimension",$description:"4px base grid; 1 unit = 0.25rem.","0":{$value:{value:0,unit:"rem"}},px:{$value:{value:1,unit:"px"}},"0.5":{$value:{value:.125,unit:"rem"}},"1":{$value:{value:.25,unit:"rem"}},"2":{$value:{value:.5,unit:"rem"}},"3":{$value:{value:.75,unit:"rem"}},"4":{$value:{value:1,unit:"rem"}},"5":{$value:{value:1.25,unit:"rem"}},"6":{$value:{value:1.5,unit:"rem"}},"8":{$value:{value:2,unit:"rem"}},"10":{$value:{value:2.5,unit:"rem"}},"12":{$value:{value:3,unit:"rem"}},"16":{$value:{value:4,unit:"rem"}},"20":{$value:{value:5,unit:"rem"}},"24":{$value:{value:6,unit:"rem"}}},radius:{$type:"dimension",$description:"The symbol's clipped corner is a hard geometric cut, so brand chrome favours restrained radii.",none:{$value:{value:0,unit:"rem"}},sm:{$value:{value:.125,unit:"rem"}},md:{$value:{value:.375,unit:"rem"}},lg:{$value:{value:.5,unit:"rem"}},xl:{$value:{value:.75,unit:"rem"}},"2xl":{$value:{value:1,unit:"rem"}},full:{$value:{value:9999,unit:"px"}}},duration:{$type:"duration",instant:{$value:{value:75,unit:"ms"}},fast:{$value:{value:150,unit:"ms"}},normal:{$value:{value:250,unit:"ms"}},slow:{$value:{value:400,unit:"ms"}}},easing:{$type:"cubicBezier",$description:"Standard for most transitions; entrance decelerates, exit accelerates, emphasized for hero motion.",standard:{$value:[.4,0,.2,1]},entrance:{$value:[0,0,.2,1]},exit:{$value:[.4,0,1,1]},emphasized:{$value:[.2,0,0,1]}},shadow:{$type:"shadow",$description:"Elevation cast in ink at low alpha; tuned for a dark-first surface.",sm:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.12,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:1,unit:"px"},blur:{value:2,unit:"px"},spread:{value:0,unit:"px"}}},md:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.16,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:2,unit:"px"},blur:{value:8,unit:"px"},spread:{value:0,unit:"px"}}},lg:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.2,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:8,unit:"px"},blur:{value:24,unit:"px"},spread:{value:0,unit:"px"}}},xl:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.24,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:16,unit:"px"},blur:{value:48,unit:"px"},spread:{value:0,unit:"px"}}}}};var os=class extends Error{name="BrandTokenError";constructor(t,r,n){super(n),this.code=t,this.tokenName=r}};function fi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}if(!fi(El)||!fi(El.color))throw new os("TOKEN_MALFORMED","color","The vendored DTCG document has no color token group.");var lI=El;function dI(e){let t=lI;for(let r of e.split(".")){if(!fi(t)||!(r in t))return;t=t[r]}return t}function Fp(e,t){return new os("TOKEN_MALFORMED",e,`Brand color token "${e}" is malformed: ${t}`)}function Wk(e,t,r){if(r.has(e))throw new os("TOKEN_ALIAS_CYCLE",t,`Brand color token "${t}" contains an alias cycle at "${e}".`);let n=dI(e);if(n===void 0)throw new os("TOKEN_NOT_FOUND",t,`Brand color token "${t}" was not found (resolved path "${e}").`);if(!fi(n)||!("$value"in n))throw Fp(t,`"${e}" is not a token with a $value`);let o=n.$value;if(typeof o=="string"){let s=/^\{([^{}]+)\}$/.exec(o);if(s?.[1]===void 0)throw Fp(t,`"${e}" has an invalid alias`);return Wk(s[1],t,new Set([...r,e]))}if(!fi(o)||typeof o.hex!="string"||!/^#[0-9a-fA-F]{6}$/.test(o.hex))throw Fp(t,`"${e}" has no six-digit hex color value`);return{name:e.startsWith("color.")?e.slice(6):e,hex:o.hex.toLowerCase()}}function cI(e){let t=e.startsWith("color.")?e:`color.${e}`;return Wk(t,e,new Set)}function uI(e){return cI(e).hex}function Hk(e,t){let r=uI(e),n=Number.parseInt(r.slice(1,3),16),o=Number.parseInt(r.slice(3,5),16),s=Number.parseInt(r.slice(5,7),16);return`\x1B[${t};2;${n};${o};${s}m`}function $r(e){return Hk(e,38)}function Ip(e){return Hk(e,48)}var Uk=Ip("brand.primary"),qk=$r("brand.on-primary"),vl=Ip("neutral.900"),Sl=$r("paper"),Tl=$r("paper"),Pl="\x1B[39m",rr=$r("neutral.400"),j8=$r("neutral.500"),Kk=$r("neutral.300"),Vk=$r("neutral.0"),zk=$r("neutral.700"),Jk=$r("red.500"),cn="\x1B[49m",Br="\x1B[0m",Mp="\x1B[1m",Lp="\x1B[22m";var pI=/\x1b\[[0-9;]*m/g,fI=/(\x1b\[[0-9;]*m)/,gI=/^\x1b\[[0-9;]*m$/;function so(e){return e.replace(pI,"")}function mI(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function nr(e){return[...so(e)].length}function et(e,t){if(t<=0)return"";if(nr(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(fI))if(i!==""){if(gI.test(i)){s+=i,o=!mI(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?Br:""}`;s+=a,n+=1}}return`${s}\u2026${o?Br:""}`}function gi(e,t){return e+" ".repeat(Math.max(0,t-nr(e)))}function jp(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 hr(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 mi(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 En(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return mi(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 Nr(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 ss(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Yk=[{name:"ready_queue",key:"rdy"},{name:"open_issues",key:"iss"},{name:"open_pull_requests",key:"pr"},{name:"merged_today",key:"mrg"}];function hi(e,t){let r=Al(e,t),n=Qk(e,t),o=[];for(let{name:s,key:i}of Yk){let a=yI(i,r?.counters[s],hI(n,s));a!=null&&o.push(a)}return o}function $p(e,t){let r=Al(e,t),n=Qk(e,t);return{open_pull_requests:r?.counters.open_pull_requests.value??n?.counts?.open_pull_requests??null,merged_today:r?.counters.merged_today.value??n?.counts?.merged_today??null,recently_closed:n?.counts?.recently_closed??null,open_issues:r?.counters.open_issues.value??n?.counts?.open_issues??null,ready_queue:r?.counters.ready_queue.value??null,human_queue:r?.counters.human_queue.value??null,stale:n?.stale===!0}}function Bp(e,t){return Al(e,t)!=null}function Al(e,t){return t==null?null:(e.remote_counters?.projects??[]).find(r=>r.project_label===t)??null}function Qk(e,t){return t==null?null:(e.repository_activity?.projects??[]).find(r=>r.project_label===t)??null}function hI(e,t){let r=e?.counts;return r==null?null:t==="open_pull_requests"?r.open_pull_requests:t==="open_issues"?r.open_issues:t==="merged_today"?r.merged_today??null:null}function yI(e,t,r){return t==null?r==null?null:`${e}=${r}`:t.value==null?null:`${e}=${t.value}${t.stale?`(${bI(t.age_ms)})`:""}`}function bI(e){return Nr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}var yi="!unregistered",Np="!lapsed",bi="\u21E1",yr="\u2020",is="\u25D0",as="\u25EF",Gp="\u21B3",Wp="redskilled unreachable \u2014 Worker state unknown";function ls(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Cl(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function ki(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 Hp(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 Ol(e,t){return e.startsWith(t)?e.slice(t.length):e}function Gr(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function Up(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:Gr(Ol(n.cells.iss,"iss="),n.cells.phase),state:Gr(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Gr(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:Gr(Ol(n.cells.iss,"iss=")),runner:Gr(Ol(n.cells.run,"run=")),phase:Gr(n.cells.phase),progress:Gr(n.cells.bar),elapsed:Gr(n.cells.elapsed),eta:Ol(Gr(n.cells.eta),"eta="),activity:Gr(n.cells.hb,t[o]?.log.last_line)}))}}var vn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Ut={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},kI=" ",Xk="\u2588",RI="\u25B6",wI="\u2717",_I="\u2591",xI=new Set(["gate","push-pr","merge","cascade"]),EI=new Set(["requeue"]),vI="repair";function Ri(e){return e.display?.origin===vI}function ds(e,t=Ut){let r=ki(e,t.project),n=ls(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(b=>Fl(b,t,e.generated_at)),i=$I(s),a=o.map((b,h)=>({worker_id:b.worker_id,project_label:b.project_label,mine:t.project!=null&&b.project_label===t.project,cells:s[h],line:et(BI(s[h],i),t.maxWidth)})),l=Up(a,o,t.maxWidth),d=TI(e,t,n,r),c=n.length-o.length,u=[d.line,...FI(e,t),...a.map(b=>b.line)];c>0&&u.push(et(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...OI(e,t)),u.push(...CI(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Ut.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),et(`\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:vn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function Fl(e,t,r){let n=e.display??Nk,o=Ri(e),s=[n.runner,n.model==null?null:jp(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&xI.has(n.phase),a=o||i||n.origin!=null&&EI.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:eR(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:Nr(Gk(e,r)),eta:n.eta==null?"":`eta=${Nr(n.eta*1e3)}`,hb:SI(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":jI(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${mi(n.tokens)}`,ctx:n.context==null?"":`ctx=${mi(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 SI(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} ${Nr(Math.max(0,n-r))}`}function eR(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 Xk.repeat(Math.floor(t));let o=e.failed?wI:RI;return`${Xk.repeat(n)}${o}${_I.repeat(Math.floor(t)-n-1)}`}function TI(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s=$p(e,t.project),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=LI(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=[PI(l??"host",c,d!=null&&d.current===!1?bi:"")];(n==="unregistered"||n==="name-only")&&g.push(yi),n==="lapsed"&&g.push(Np);let f=p?.history_48h==null?null:DI(p.history_48h);f!=null&&g.push(io(f));let b=e.workers.filter(Ri).length;if(b>0){let M=Math.max(0,e.host.worker_count-b);g.push(`${io(`workers=${M} coding +`)} ${vl}${Sl}${b} repairing${cn}${rr}`)}else g.push(io(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(io(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(io(MI(i))),a!=null&&g.push(`${vl}${Sl}${a}${cn}${rr}`);for(let M of hi(e,t.project))g.push(io(M));s.stale&&!Bp(e,t.project)&&g.push("!counts stale");let w=p==null?null:tR(p.hour),S=w==null?null:io(w);if(S!=null&&g.push(S),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=ss(M?.latest_refusal),W=Object.prototype.hasOwnProperty.call(u,"current_sender_attributed")?u.current_sender_attributed??null:u.latest;g.push(M==null?`${yr}${u.count}${W==null?"":` ${W.sender_class}`}`:`${yr}${u.count} boot-refused \xD7${M.count} in ${AI(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 L=`${g.join(" \xB7 ")}${Br}`,A=w!=null&&nr(L)>t.maxWidth?`${g.filter(M=>M!==S).join(" \xB7 ")}${Br}`:L;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:et(A,t.maxWidth)}}function PI(e,t,r){return`${Uk}${qk}\xBB ${Mp}${e}${Lp} v${t}${r}${cn}${rr}`}function io(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Tl}${n}${Pl}${o}${rr}`)}function AI(e){return Nr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function tR(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${En(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${En(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${En(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 CI(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?as:is,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[et(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function OI(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[et(`${yr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>et(`${yr} ${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(et(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function DI(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${En(t)} ${qp(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${En(r)} ${qp(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function FI(e,t){let r=e.metrics;return r==null?[et("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[et("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[Zk("tokens",r.history_48h.tokens_per_hour,t),Zk("Tickets",r.history_48h.tickets_per_hour,t)]}var Dl=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function Zk(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=${En(o)}/h ${qp(t.trend)}`.trim();if(r.maxWidth<72)return et(`${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 et(`${n} 48h ${II(t)} \xB7 ${a}${l}`,r.maxWidth)}function II(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?Dl[0]:Dl[Math.min(Dl.length-1,Math.floor(Math.max(0,n.value)/r*(Dl.length-1)))]).join("")}function qp(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function MI(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${hr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${hr(e.memory_used_bytes)}/${hr(e.memory_ceiling_bytes)}${t}`}function LI(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 jI(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 $I(e){let t=Object.fromEntries(vn.map(r=>[r,0]));for(let r of e)for(let n of vn)t[n]=Math.max(t[n],nr(r[n]));return t}function BI(e,t){let r=vn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>Il(o,gi(e[o],s===r.length-1?nr(e[o]):t[o])));return`${cn}${rr}${n.join(kI)}${Br}`}function Il(e,t){if(e==="wid")return`${Mp}${t}${Lp}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${vl}${Sl}${t.trimEnd()}${cn}${rr}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${Kk}${n}`).replace("\u25B6",`${Vk}\u25B6`).replace("\u2717",`${Jk}\u2717`).replace(/░+/g,n=>`${zk}${n}`)+rr;let r=t.indexOf("=");return r>0?`${Tl}${t.slice(0,r+1)}${Pl}${t.slice(r+1)}${rr}`:t}function Vp(e){return Object.freeze({none:!0,reason:e})}function Ml(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function Kp(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=>Kp(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=Kp(o,t);return Object.freeze(r)}finally{t.delete(e)}}function NI(e){let t=Kp(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function cs(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=NI(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 Sn(e,t=Ne){let r=ki(e,t.project),n=ls(e,t),o=Cl(e,t),s=KI(e,t.project,r),i=WI(e,t,n,r,s.prose),a=Hp({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:QI(i,GI(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||nr(f)<=t.maxWidth)break}let d=et(l.line,t.maxWidth),c=l.detail==="workers"?zI(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let b=t.verbose?JI(g,t):null;return b==null?[c.lines[f]]:[c.lines[f],b]}):[],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 Yp(e){let t=e.options??Ne,r=et(Wp,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 GI(e,t){return e==="projects"?t.map(YI):[]}function WI(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${zp(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(nR(e,t))):n==="matched"||n==="unregistered"?(s.push(zp(r,r.length)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(zp(r,r.length)),s.push(yi)):s.push(o),t.mode!=="global"&&s.push(...hi(e,t.project)),t.mode!=="global"&&(n==="matched"||n==="unregistered"||n==="name-only")&&s.push(nR(e,t)),s.push(rR(e));let a=HI(e);a!=null&&s.push(a);let l=UI(e);l!=null&&s.push(l),e.staleness.stale&&s.push(oR(e));let d=s.join(" ");return!i||nr(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,rR(e),e.staleness.stale?oR(e):null].filter(c=>c!=null).join(" ")}function zp(e,t){let r=e.filter(Ri).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function rR(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${bi}`}function HI(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${as} quota spent`:t.posture==="reserved"?`${is} quota band`:null}function UI(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 i=ss(o.latest_refusal);return`${yr}${r} boot-refused \xD7${o.count} in ${qI(o.span_ms)}`+(i==null?"":` \u2014 ${i}`)}let s=Object.prototype.hasOwnProperty.call(t,"current_sender_attributed")?t.current_sender_attributed??null:n;return s==null?`${yr}${r}`:`${yr}${r} ${s.sender_class}`}function qI(e){return Nr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function KI(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return cs({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:Vp("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 cs({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${Jp(n.at)}`}`,repair:Ml()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${Jp(n.registered_at)})`;return cs({state:`project unknown \u2014 ${t} lapsed at ${Jp(n.at)}${o}`,repair:Ml()})}return cs({state:`project unknown \u2014 ${t} lapsed`,repair:Ml()})}return r==="unresolved"?cs({state:"project unknown \u2014 this directory resolved to no project",repair:Vp("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function Jp(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function nR(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?`${hr(r)}/${hr(n)}`:hr(r)}function oR(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function VI(e,t,r,n){let o=r.map(s=>Il(s,gi(e[s],t[s])));return et(`${cn}${rr}${o.join(" ")}${Br}`,n)}function zI(e,t,r){let n=e.map(a=>Fl(a,t,r)),o=vn.filter(a=>n.some(l=>nr(l[a])>0)),s=[...o],i=sR(n,s);for(;s.length>1&&iR(i,s)>t.maxWidth;)s.pop(),i=sR(n,s);return{lines:n.map(a=>VI(a,i,s,t.maxWidth)),degraded:s.length<o.length||iR(i,s)>t.maxWidth}}function sR(e,t){let r=Object.fromEntries(vn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],nr(n[o]));return r}function iR(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function JI(e,t){let r=ss(e.log.last_line);return r==null?null:et(` ${Gp} ${aR(e,t.mode)}: ${r}`,t.maxWidth)}function aR(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function YI(e){return`${e.project_label} ${e.worker_count}w ${hr(e.observed_rss_bytes)}`}function QI(e,t,r){return[e,...t].join(r)}var Ll=1;async function us(e,t){return await Ga(e,t,"redskilled daemon")}function Tn(e){return Number.isInteger(e)&&e>=0}function dR(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.mode!=="report"&&t.mode!=="reap"||t.census===null||typeof t.census!="object"||Array.isArray(t.census)||t.actions===null||typeof t.actions!="object"||Array.isArray(t.actions))return!1;let r=t.census,n=t.actions;return r.version===1&&Tn(r.active_worker_units)&&Tn(r.daemon_held_workers)&&Tn(r.stamped_orphans)&&Tn(r.unstamped_suspects)&&Tn(r.dump_files)&&Tn(n.adopted)&&Tn(n.reaped)&&Tn(n.suspects)}function cR(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:Ll,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:tM(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:Tb(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:rM(e)}}function tM(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:Jo(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 rM(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 uR(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||aM(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Pb(t.budget_accounting)&&(t.scope===void 0||Zb(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(oi))&&(t.demand===void 0||Gb(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(oM))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(sM))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(iM))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(nM))&&(t.upgrade===void 0||lM(t.upgrade))}function nM(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 oM(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 sM(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 iM(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 aM(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 lM(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||dM(t.major_hold))}function dM(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{spawnSync as DM}from"node:child_process";import{readdir as FM,readFile as Ul,readlink as IM}from"node:fs/promises";import{join as wi,normalize as MM,sep as LM}from"node:path";var cM=e=>new Promise(t=>setTimeout(t,e));function uM(e){try{return process.kill(e,0),!0}catch{return!1}}function pM(e){try{return process.kill(-e,0),!0}catch(t){return t.code==="EPERM"?!0:uM(e)}}function fM(e,t){try{process.kill(-e,t)}catch{try{process.kill(e,t)}catch{}}}function gM(e,t){try{process.kill(-e,t)}catch{}}var mM={isAlive:pM,signal:fM,signalGroup:gM,sleep:cM};async function jl(e,t={}){let r=t.io??mM,n=t.pollMs??100,o=t.graceTries??20,s=t.killTries??10;r.signal(e,"SIGTERM");for(let i=0;i<o;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}r.signal(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}if(!r.isAlive(e))return!0;r.signalGroup?.(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}return!r.isAlive(e)}import{spawnSync as Gl}from"node:child_process";import{existsSync as rf}from"node:fs";import{delimiter as EM,join as wR}from"node:path";import{join as pR}from"node:path";import{existsSync as hM}from"node:fs";import{createRequire as yM}from"node:module";var fR="redskilled-job-object.node",ao=100;function ps(e){return{available:!1,reason:e}}function bM(e,t,r){return[pR(r,"prebuilds",`${e}-${t}`,fR),pR(r,"native","build","Release",fR)]}function gR(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return ps(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??RM(),o=e.exists??hM,s=bM(t,r,n),i=s.find(d=>o(d));if(i==null)return ps(`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??yM(import.meta.url),l;try{l=a(i)}catch(d){return ps(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return kM(l)?{available:!0,binding:l}:ps(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function kM(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function RM(){return new URL("..",import.meta.url).pathname}function mR(e){let t=e??{},r=[],n=wM(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<ao?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 ${ao}, 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 wM(e){return pi({budget:e})}var $l=5,hR=19;function Qp(e){return{available:!1,reason:e}}var _M="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 bR(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=$l;else if(r.cpu_weight<ao){let a=Math.round(hR*(ao-r.cpu_weight)/ao);o=Math.min(hR,Math.max($l,a))}else o=$l,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${ao}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${$l}`);let s=yR(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=yR(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:_M,...n.length>0?{note:n.join("; ")}:{}}}function Xp(e){let{limits:t}=e,r=["ulimit -c 0"];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 ${xM(e.nice)} -n ${t.nice} "$@"`:'exec "$@"'),["-c",r.join(`
95
- `),"--",e.command,...e.args]}function kR(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 Zp(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 yR(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function xM(e){return`'${e.replace(/'/g,"'\\''")}'`}var _R="REDSKILLED_PLACEMENT",Nl="red-worker",ef="/bin/sh";function xR(e=process.env,t=process.platform){let r=Qp(`POSIX shell placement is unavailable on platform=${t}`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:gR({platform:t}),posix:r};let n=ps(`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:RR(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&rf(wR(o,"systemd","private"));return{platform:t,systemdRun:TR("systemd-run",e),userSession:s,jobObjects:n,posix:RR(e)}}function RR(e){return rf(ef)?{available:!0,shell:ef,nice:TR("nice",e)}:Qp(`no POSIX shell was found at ${ef}, so there is nothing to apply rlimits or priority in`)}function ER(e=process.env){let t=(e[_R]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function vM(e,t,r=Nl){return vR(e,t,r).replace(/\.service$/,"")}function vR(e,t,r=Nl){return`${tf(r,"red-worker",24)}-${tf(e,"project",32)}-${tf(t,"worker",32)}.service`}function SR(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=>{let p=e.probes.posix,g=e.probes.platform==="linux"&&p.available,f=e.probes.platform==="linux"&&!p.available?`${u}; core dumps are not capped because ${p.reason}`:u;return{isolated:!1,backend:"none",command:g?p.shell:e.command,args:g?Xp({nice:null,command:e.command,args:t}):t,cwd:e.workspacePath,warning:f,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Bl(e,{scope:null,memory_ceiling:n,scope_degradation:f}),...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 ${_R}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return TM(e,t,r,n,o,i);if(e.probes.platform==="darwin")return SM(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=vR(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`,"--property=LimitCORE=0"];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}`),r.max_processes!=null&&l.push(`--property=TasksMax=${r.max_processes}`);let d=Bl(e,{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=Zp(e.budget==null?void 0:{...e.budget,max_processes:void 0});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 SM(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=bR(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=kR(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:Xp({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Bl(e,{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 TM(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=mR(r),l=vM(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:Bl(e,{scope:l,memory_ceiling:n,scope_degradation:null}),...PM(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,Zp(e.budget))}}function Bl(e,t){return Ih(t,e.bornAt==null?void 0:{worker_id:e.workerId,born_at:e.bornAt})}function PM(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function TR(e,t){for(let r of(t.PATH??"").split(EM)){if(!r)continue;let n=wR(r,e);if(rf(n))return n}return null}function tf(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function nf(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}}async function PR(e){let t=e.workers.filter(n=>{if(e.reattached_worker_ids.has(n.worker_id))return!0;let o=Date.parse(n.started_at);return!Number.isFinite(o)||e.now_ms-o>=e.grace_ms});if(t.length===0)return[];let{dead:r}=await nf(t,e.probe);for(let n of r)await e.on_dead(n);return r}var AR=3e4;function CR(e){return e.unit!=null&&e.unit!==""?OR(e.unit):Ye(e.pid)}function OR(e){let t=Gl("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var AM="REDSKILLED_UNIT_DISCOVERY",Wl="(unowned)";function DR(e){let t=Gl("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 CM(e=process.env){let t=(e[AM]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function of(e,t,r=process.env){return CM(r)&&e===t}function FR(e=Nl){let t=Gl("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(`
96
- `).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function IR(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:Wl,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 MR(e){return e.project_label.trim()!==""?e:{...e,project_label:Wl,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 LR(e,t=OM){if(e.unit!=null&&e.unit!==""){try{t.stopUnit(e.unit)}catch{}if(!t.unitActive(e.unit)&&!t.leaderAlive(e.pid))return!0}return t.killTree(e.pgid??e.pid)}var OM={stopUnit:e=>{Gl("systemctl",["--user","stop",e],{stdio:"ignore"})},unitActive:OR,leaderAlive:Ye,killTree:jl};var jM=10*6e4,$M=30*6e4,Hl;function BM(){if(Hl!==void 0)return Hl;let e=DM("getconf",["CLK_TCK"],{encoding:"utf8"}),t=Number((e.stdout??"").trim());return Hl=e.error==null&&e.status===0&&Number.isFinite(t)&&t>0?t:null,Hl}async function NM(e,t){return await t.read_starttime(e.pid)!==e.starttime?{reaped:!1,reason:"leader-starttime-changed"}:(await t.after_verified?.(),await t.kill_group(e.pgid)===!0?{reaped:!0,reason:"orphan-reaped"}:{reaped:!1,reason:"group-survived"})}var GM=5*6e4;function WM(e=process.env){let t=(e.REDSKILLED_ORPHAN_REAPER??"").trim().toLowerCase();return t==="off"?"off":t==="report"?"report":"reap"}async function HM(e,t="/proc"){try{return Rl(await Ul(wi(t,String(e),"stat"),"utf8"))?.starttime??null}catch{return null}}async function UM(e={}){let t=e.proc_root??"/proc";try{let r=e.clock_ticks_per_second??BM();if(r==null||!Number.isFinite(r)||r<=0)return[];let n=Number((await Ul(wi(t,"uptime"),"utf8")).trim().split(/\s+/)[0]);if(!Number.isFinite(n)||n<0)return[];let o=await FM(t),s=[];for(let i of o){if(!/^\d+$/.test(i))continue;let a;try{a=Rl(await Ul(wi(t,i,"stat"),"utf8"))}catch{continue}if(a==null||a.ppid!==1)continue;let l=new Map,d;try{l=qM(await Ul(wi(t,i,"environ"),"utf8"))}catch{}try{d=await IM(wi(t,i,"cwd"))}catch{}let c=jR(l.get("RED_WORKER_ID")),u=jR(l.get("RED_WORKER_BORN_AT"));s.push({pid:a.pid,ppid:a.ppid,pgid:a.pgid,sid:a.sid,starttime:a.starttime,age_ms:Math.max(0,(n-Number(a.starttime)/r)*1e3),...c==null?{}:{worker_id:c},...u==null?{}:{born_at:u},...d==null?{}:{cwd:d},under_workers_lane:d!=null&&KM(d)})}return s}catch{return[]}}function qM(e){let t=new Map;for(let r of e.split("\0")){let n=r.indexOf("=");n<=0||t.set(r.slice(0,n),r.slice(n+1))}return t}function jR(e){let t=e?.trim();return t==null||t===""?void 0:t}function KM(e){let t=MM(e).split(LM).filter(Boolean);for(let r=0;r<t.length-2;r+=1)if(!(t[r]!==".red"||t[r+1]!=="tmp"))return["workers","go-workers","scout-workers"].includes(t[r+2]??"");return!1}function VM(e){let t=zM(e);return{census:{version:1,active_worker_units:new Set(e.active_worker_units).size,daemon_held_workers:new Set(e.held_worker_ids).size,stamped_orphans:t.filter(r=>r.kind==="reap").length,unstamped_suspects:t.filter(r=>r.kind==="suspect").length,dump_files:new Set(e.dump_files).size},candidates:t}}function zM(e){let t=[];for(let r of e.processes){if(!Number.isFinite(r.age_ms)||r.age_ms<0)continue;let n=r.worker_id?.trim();if(n==null||n===""){r.ppid===1&&r.under_workers_lane&&r.age_ms>=$M&&t.push({kind:"suspect",process:r,detail:`unstamped process ${r.pid} was reparented under a workers lane and is at least 30 minutes old; it will never be signalled`});continue}if(!(r.pid!==r.pgid||e.held_worker_ids.has(n))){if(e.live_birth_ids.has(n)){t.push({kind:"adopt",process:r,detail:`stamped Worker ${n} has a live birth but no daemon holder`});continue}r.age_ms<jM||t.push({kind:"reap",process:r,detail:`stamped Worker ${n} has no live birth and is at least 10 minutes old`})}}return t}var $R={adopted:0,reaped:0,suspects:0};function NR(e){let t=e.interval_ms??GM,r=e.mode??WM(),n=e.census??UM,o=e.read_starttime??HM,s=e.kill_group??jl,i=e.report??(f=>process.stderr.write(`redskilled: ${f}
97
- `)),a,l=!1;async function d(){let f;try{f=await n()}catch{f=[]}let b=[],h=!0;if(f.length>0)try{b=await e.live_births()}catch{h=!1,i("orphan census withheld: the event lane could not prove which stamped Workers still have live births")}let w=new Map(b.map(A=>[A.worker_id,A])),[S,L]=await Promise.all([Promise.resolve(e.active_worker_units?.()??[]).catch(()=>[]),Promise.resolve(e.dump_files?.()??[]).catch(()=>[])]);return{selected:VM({processes:f,active_worker_units:S,held_worker_ids:new Set(e.held_worker_ids()),live_birth_ids:new Set(w.keys()),dump_files:L}),liveBirths:w,safeToAct:h}}async function c(){return e.authorized?(await d()).selected.census:{version:1,active_worker_units:0,daemon_held_workers:0,stamped_orphans:0,unstamped_suspects:0,dump_files:0}}async function u(){if(!e.authorized||r==="off"||l)return{...$R};l=!0;try{let{selected:f,liveBirths:b,safeToAct:h}=await d();if(!h)return{...$R};let w=f.candidates,S={adopted:0,reaped:0,suspects:0};for(let L of w){if(r==="report"){L.kind==="suspect"&&(S.suspects+=1),i(`${L.detail}; report mode withheld adoption and signalling`);continue}if(L.kind==="suspect"){S.suspects+=1,i(L.detail);continue}if(L.kind==="adopt"){await e.adopt(BR(L.process,e.clock,b.get(L.process.worker_id)),!1,L.detail),S.adopted+=1,i(L.detail);continue}let A=BR(L.process,e.clock),M=!1,N=await NM(L.process,{read_starttime:o,after_verified:async()=>{M=!0,await e.adopt(A,!0,`adopted stamped orphan before group teardown: ${L.detail}`),S.adopted+=1},kill_group:s});if(!N.reaped||!M){M&&N.reason==="group-survived"&&await e.record_reaped(A,`group-survived: process group ${L.process.pgid} survived orphan teardown; ${L.detail}`),i(`${L.detail}; ${N.reason}`);continue}await e.record_reaped(A,`orphan-reaped: ${L.detail}`),S.reaped+=1}return S}finally{l=!1}}async function p(f){let b=await c();return{version:1,mode:f?"report":"reap",census:b,actions:f?{adopted:0,reaped:0,suspects:b.unstamped_suspects}:await u()}}function g(){a!=null||t<=0||r==="off"||!e.authorized||(a=setInterval(()=>void u().catch(()=>{}),t),a.unref())}return{sweep:u,census:c,reap:p,arm:g,stop:()=>{a!=null&&clearInterval(a),a=void 0}}}function BR(e,t,r){let n=Date.parse(t()),o=Number.isFinite(n)?new Date(Math.max(0,n-e.age_ms)).toISOString():t(),{unit:s,...i}=r??{};return{...i,worker_id:e.worker_id,project_label:r?.project_label??Wl,pid:e.pid,pgid:e.pgid,proc_start_time:e.starttime,started_at:r?.started_at??e.born_at??o,workspace_path:e.cwd??r?.workspace_path??"",isolated:!1,warnings:[...r?.warnings??[],r==null?"adopted by the orphan reaper from the host process table: no daemon holder or live birth remained, so the owning project and budget are unknown":"adopted by the orphan reaper from a live event-lane birth whose daemon holder was missing; the process-table identity now anchors it"]}}import{randomUUID as JM}from"node:crypto";import{mkdir as YM,readFile as QM,rename as XM,writeFile as ZM}from"node:fs/promises";import{dirname as eL}from"node:path";function GR(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await QM(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=tL(s);return rL(i)?i.registrations:[]}async function o(s){await YM(eL(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${JM()}.tmp`,a={version:1,registrations:[...s]};await ZM(i,`${ht(a)}
98
- `,{encoding:"utf8",mode:384}),await XM(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 tL(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Mr(t)}catch{return null}}}function rL(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(oi)}import{randomInt as iL}from"node:crypto";import{spawn as aL}from"node:child_process";import{appendFileSync as lL,mkdirSync as dL,readFileSync as cL}from"node:fs";import{dirname as uL}from"node:path";import{delimiter as WR,dirname as nL}from"node:path";function oL(e,t=WR){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function sL(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=nL(t);return r===""||r==="."?null:r}function HR(e,t=process.execPath,r=WR){let n=oL(e,r),o=sL(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var fs=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},or=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},sf="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",UR=4,pL=sf.length**UR;function _i(e,t=iL){let r=new Set(e);for(let n=0;n<pL;n+=1){let o="h";for(let s=0;s<UR;s+=1)o+=sf[t(sf.length)];if(!r.has(o))return o}throw new fs("redskilled exhausted the host Worker id space")}function fL(e){if(e==null||e.trim()==="")return{ready:!1};let t=uL(e);try{return dL(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})`}: ${af(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function gL(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{lL(t,lt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
99
- `);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 mL(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 fs(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new fs("redskilled worker spec args must be an array")}function hL(e){if(e==null)throw new or("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new or(e.reason,e)}function qR(e){let{spec:t,admission:r}=e;hL(r),mL(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||_i(e.liveWorkerIds??[]),i=o(),a=e.probes??xR(n),l=zy(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),d=e.openLog===!1?{ready:!1}:fL(l),c=d.ready,u={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:HR(t.env?.PATH??n.PATH,e.execPath??process.execPath)},p=SR({workerId:s,bornAt:i,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:u,enabled:e.enabled??ER(n),probes:a,pipeOutput:c}),f=(e.spawnFn??aL)(p.command,p.args,{...p.cwd!=null?{cwd:p.cwd}:{},detached:!0,stdio:c?["ignore","pipe","pipe"]:"ignore",env:p.backend==="transient-unit"?{...n}:{...n,...u,...p.environment}});if(c&&l!=null&&gL(f,l),f.pid==null)throw f.once("error",()=>{}),new fs(`redskilled could not spawn ${JSON.stringify(p.command)} for worker ${s}`);let b=yL(f.pid),h=p.job!=null?bL(p,a,f.pid):null;f.once("error",()=>{}),f.once("exit",(A,M)=>{try{h?.job?.close()}catch{}e.onExit?.(s,A,M)}),f.unref();let w=p.job!=null?h?.job!=null:p.isolated,S=[p.warning,h?.warning,p.budgetWarning,d.warning].filter(A=>A!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:f.pid,pgid:f.pid,...b==null?{}:{proc_start_time:b},started_at:i,workspace_path:t.workspace_path,...c&&l!=null?{log_path:l}:{},isolated:w,...p.unit!=null?{unit:p.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(p.budget).length>0?{applied_budget:p.budget}:{},...p.memoryCeiling!=null?{memory_ceiling:p.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:S},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:S,plan:p,child:f,...h?.job!=null?{job:h.job}:{}}}function yL(e){try{let t=cL(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");if(r<0)return null;let n=t.slice(r+1).trim().split(/\s+/)[19];return n!=null&&/^\d+$/.test(n)?n:null}catch{return null}}function bL(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: ${af(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)}: ${af(i)}. ${o}`}}return{job:s}}function af(e){return e instanceof Error?e.message:String(e)}async function kL(e){let t=Date.now();for(;;){if(!e.waiting())return;let r=e.deadlineMs-(Date.now()-t);if(r<=0){e.expire();return}await new Promise(n=>setTimeout(n,Math.min(r,10)))}}function KR(e){let t=new Set,r=new Set;function n(o,s){let i=e.registration(s.project_label)?.hooks?.[o];if(i!=null)try{let a=za(i,{worker_id:_i(e.liveWorkerIds()),slot:0,workspace_path:s.workspace_path},{project_label:s.project_label}),l=e.admit(a);if(!l.admitted)throw new or(l.reason,l);let d=e.start(a,l);if(t.add(d.worker_id),i.mode==="sync"){let c=i.deadline_ms,u=kL({deadlineMs:c,waiting:()=>t.has(d.worker_id),expire:()=>{e.recordExpiry(s.project_label,`project ${JSON.stringify(s.project_label)} sync ${o} hook exceeded its declared ${c}ms deadline; redskilled stopped waiting and proceeded`)}});r.add(u),u.finally(()=>r.delete(u))}}catch(a){let l=a instanceof Error?a.message:String(a);e.refuse(s.project_label,`project ${JSON.stringify(s.project_label)} registered an async ${o} hook, but redskilled refused it before launch: ${l}`)}}return{track:o=>t.add(o),onEvent(o,s){let i=t.has(s.worker_id);!i&&zo.includes(o)&&n(o,s),i&&(o==="worker-death"||o==="worker-budget-kill")&&t.delete(s.worker_id)},async waitForSettled(){for(;r.size>0;)await Promise.all(r)}}}var RL=24e4;var zq=20*6e4;function zR(e,t){if(!Number.isFinite(t))return 0;let r=0;for(let n of e)Jo(n,t)==="renewing"&&(r+=1);return r}function JR(e){let t=VR(e.attendedMs,ns),r=VR(e.unattendedMs,RL);return e.attended?t:Math.max(t,r)}function YR(e){return e.pendingWindowMs==null||!Number.isFinite(e.pendingWindowMs)||!Number.isFinite(e.cadenceMs)?!1:e.cadenceMs<e.pendingWindowMs}function VR(e,t){return e!=null&&Number.isFinite(e)&&e>0?e:t}function QR(e){let t,r=null;function n(){return JR({attended:zR(e.registrations(),Date.parse(e.clock()))>0,attendedMs:e.attendedMs})}function o(s){e.stopping()||(r=s,t=setTimeout(()=>{t=void 0,r=null,e.poll().catch(()=>{}).finally(()=>{e.stopping()||o(n())})},s),t.unref())}return{arm(){e.stopping()||t!=null||!e.armed||e.attendedMs<=0||(e.poll().catch(()=>{}),o(n()))},cadenceMs:n,nudge(){if(e.stopping()||t==null)return;let s=n();YR({pendingWindowMs:r,cadenceMs:s})&&(clearTimeout(t),t=void 0,o(s))},stop(){t!=null&&clearTimeout(t),t=void 0,r=null}}}async function XR(e){let t=e.explicit?.projects??wL(e.registrations);if(t.length===0)return null;let r=e.explicit?.transport??e.resolveHostTransport();return r==null?null:await Sk({projects:t,hostTokenRef:e.explicit?.hostTokenRef??"host",transport:r,...e.explicit?.closedWindowMs==null?{}:{closedWindowMs:e.explicit.closedWindowMs},now:e.now,...e.previous===void 0?{}:{previous:e.previous}})}function wL(e){return[...e].flatMap(t=>{let r=t.queue_poll;return r==null?[]:[{project_label:t.project_label,owner:r.owner,name:r.repo,...r.counter_labels==null?{}:{queue_labels:r.counter_labels}}]}).sort((t,r)=>t.project_label.localeCompare(r.project_label))}var vi=50,df=15e3,tK=2*df;function _L(e,t=vi){if(cf(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 ew(e,t={}){let r=t.batchSize??vi;if(cf(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(`
100
- `),aliases:n}}function tw(e,t){let r=Ei(t),n=Ei(r.data),o=Array.isArray(r.errors)?r.errors.map(Ei):[],s=TL(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=AL(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=>PL(u.path,a));return s.exhausted||ow(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: ${lf(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function xL(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:vi,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function rw(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:vi,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 nw(e){if(e.projects.length===0)return xL(e.now);if(e.transport.conditionalList)return await vL(e);let t=e.batchSize??vi,r=_L(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=ew(s,{batchSize:t});try{let a=await e.transport(i.query),l=tw(i,a);n.push(...l.projects),o=xi(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=xi(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 EL={key:"redskilled queue poll",budget:"rest"};async function vL(e){cf(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=ew([s],{batchSize:1}),d=tw(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=xi(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:EL});o+=i.requestCount;let a=i.data.filter(l=>!sw(l.pull_request)).length;n=xi(n,SL(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=ui(i);n=xi(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 cf(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 xi(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 SL(e){let t=ZR(e,"x-ratelimit-remaining"),r=ZR(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function ZR(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 TL(e,t){let r=Ei(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(ow)||n===0}}function ow(e){return e==null?!1:lf(e.type)==="RATE_LIMITED"||/rate limit/i.test(lf(e.message))}function PL(e,t){return Array.isArray(e)&&e.includes(t)}function AL(e){let t=Ei(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Ei(e){return sw(e)?e:{}}function sw(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lf(e){return typeof e=="string"?e:""}function iw(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(CL,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=OL?Math.max(t,3e4):o<=DL?Math.max(t,2e4):t}var CL=1e5,OL=250,DL=1e3;var FL={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},IL=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],ML=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function aw(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...FL};for(let n of IL){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of ML){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{execFile as LL}from"node:child_process";var jL="refs/heads/red-trunk";function uf(e){return`${e.workspace_path}\0${e.trunk.remote}\0${e.trunk.branch}`}function lw(e,t,r){let n=r instanceof Error?r.message:String(r);return{...e,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(t.trunk.remote)} could not refresh branch ${JSON.stringify(t.trunk.branch)}: ${n}`}}function ql(e,t){return new Promise((r,n)=>{LL("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function dw(e){await ql(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await ql(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 ql(e.workspace_path,["update-ref",jL,t]),t}async function cw(e){let t=await ql(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 $L,stat as BL}from"node:fs/promises";var NL=16*1024;async function uw(e,t=NL){let r;try{r=(await BL(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await $L(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 GL(o)}function GL(e){let t=e.split(`
101
- `);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 cj}from"node:child_process";import{existsSync as uj,readdirSync as pj}from"node:fs";import{delimiter as fj,dirname as Dw,isAbsolute as gj,join as zl,resolve as mj}from"node:path";var WL="<version>";function Pn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():WL;return[`npx -y -p ${Zn}@${n}`,e,...t].join(" ")}import{existsSync as HL,mkdirSync as UL,readFileSync as qL,renameSync as KL,statSync as VL,writeFileSync as zL}from"node:fs";import{homedir as fw}from"node:os";import{basename as pw,join as gw,resolve as Kl}from"node:path";function qt(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 pf(e,t){let r=qt(e),n=qt(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var fK=4*60*60*1e3;function ff(e=fw()){return gw($t(e),"bundles")}function JL(e){return`redskilled-${e}.bundle.min.mjs`}var YL=/^redskilled-(.+)\.bundle\.min\.mjs$/;function lo(e,t={}){let r=e.entry;if(r==null||!/^redskilled(-.+)?\.bundle\.min\.mjs$/.test(pw(r)))return e;let n=YL.exec(pw(r))?.[1],o=t.version??n;if(o==null||qt(o)===null||/[-+]/.test(o))return e;let s="homeDir"in t?t.homeDir:fw();if(s==null)return e;let i=t.exists??HL,a=ff(s),l=gw(a,JL(o));if(Kl(r)===Kl(l))return e;try{if(!VL($t(s)).isDirectory())return e;if(!i(l)){UL(a,{recursive:!0,mode:448});let d=`${l}.${process.pid}.tmp`;zL(d,qL(r),{mode:493}),KL(d,l)}}catch{return e}return{...e,entry:l,args:e.args.map(d=>Kl(d)===Kl(r)?l:d)}}function Si(e){return e.HOME?.trim()||void 0}sn();sn();import{spawnSync as QL}from"node:child_process";import{randomUUID as mw}from"node:crypto";import{mkdir as XL,rm as ZL,writeFile as ej}from"node:fs/promises";import{existsSync as tj,mkdirSync as rj,readFileSync as nj,renameSync as hw,writeFileSync as yw}from"node:fs";import{homedir as oj}from"node:os";import{dirname as bw,isAbsolute as kw,join as Ti}from"node:path";var sr="redskilled.service",gf="REDSKILLED_SUPERVISED",sj="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function ij(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||Ti(e.HOME?.trim()||oj(),".config");return Ti(t,"systemd","user")}function gs(e=process.env){return Ti(ij(e),sr)}function Rw(e,t={}){let r=t.env??process.env,n=lo(qa(t.override??{},t.entryLookup??{}),{homeDir:Si(r)}),o=[...n.args,...bn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:sr,unitPath:gs(r),command:n.command,args:o,text:aj(n.command,o,e)}}function aj(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${sj}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple","LimitCORE=0",`ExecStart=${[e,...t].map(mf).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${gf}=1"`,`Environment="REDSKILLED_SESSION=${vw(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
102
- `)}function ww(e=process.env){return Ti(`${gs(e)}.d`,"10-current-entry.conf")}function _w(e){return Ti(`${e}.d`,"10-current-entry.conf")}function xw(e,t,r={}){if(!kw(e.command))throw new Error(`redskilled refused to write the relative command "${e.command}" into the supervisor drop-in: systemd resolves ExecStart with the manager's PATH, so a relative command dies with 203/EXEC on hosts whose node comes from a version manager (#3554)`);let n=ww(r.env??process.env),o=`${n}.${process.pid}.${mw()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...bn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(mf).join(" ")}`,""].join(`
103
- `);rj(bw(n),{recursive:!0,mode:448}),yw(o,i,{encoding:"utf8",mode:384}),hw(o,n);let a=(r.run??Pi)(["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 Ew(e={}){let t=ww(e.env??process.env),r;try{r=(e.readFile??(u=>nj(u,"utf8")))(t)}catch{return{path:t,status:"absent"}}let n=lj(r),o=n?.[0];if(n==null||o==null)return{path:t,status:"unparsed"};if(kw(o))return{path:t,status:"absolute",command:o};if(e.socketPath==null||!n.includes(e.socketPath))return{path:t,status:"foreign",command:o};let s=e.execPath??process.execPath,i=e.argv??process.argv.slice(1),a=i.length===0?void 0:lo({command:s,args:i,entry:i[0]},{homeDir:Si(e.env??process.env),...e.version==null?{}:{version:e.version}}),d=["[Service]","ExecStart=",`ExecStart=${[s,...a?.args??i].map(mf).join(" ")}`,""].join(`
104
- `),c=`${t}.${process.pid}.${mw()}.tmp`;return yw(c,d,{encoding:"utf8",mode:384}),hw(c,t),(e.run??Pi)(["systemctl","--user","daemon-reload"]),{path:t,status:"healed",command:o}}function lj(e){let t;for(let r of e.split(`
105
- `)){let n=r.trim().startsWith("ExecStart=")?r.trim().slice(10).trim():void 0;n&&(t=n.split(/\s+/).map(o=>o.startsWith('"')&&o.endsWith('"')&&o.length>1?o.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\"/g,'"'):o))}return t}function mf(e){return/[\s"'\\$%]/.test(e)?`"${vw(e)}"`:e}function vw(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function Sw(e,t={}){let r=t.writeFile??dj,n=t.removeFile??Aw,o=t.run??Pi,s=[];return await r(e.unitPath,e.text),await n(_w(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Vl("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Vl("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function Tw(e={}){let t=e.removeFile??Aw,r=e.run??Pi,n=gs(e.env??process.env),o=[Vl("disable",r,["systemctl","--user","disable","--now",sr])];return await t(n),await t(_w(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Vl("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function Pw(e={}){let t=e.exists??tj,r=e.run??Pi,n=gs(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",sr]).status===0,i=o&&r(["systemctl","--user","is-active",sr]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${sr} is installed and enabled but inactive`,fix:`systemctl --user restart ${sr}`}]:[];return{unitName:sr,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Vl(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 dj(e,t){await XL(bw(e),{recursive:!0}),await ej(e,t,{encoding:"utf8",mode:420})}async function Aw(e){await ZL(e,{force:!0})}function Pi(e){let t=QL(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 Cw=75,Fw=9e5,Ow="redskilled-replacement-entry-unresolved",hj="REDSKILLED_NO_REGISTRY_PROBE",Iw="REDSKILLED_BORN_BY_REPLACEMENT";function Mw(e=process.env){return e[Iw]==="1"}function Lw(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function jw(e){let t=e.running.trim();if(Ai(t))return null;let r=e.newest?.trim()??"",n=qt(r),o=qt(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:yj(n.major,e.supervised)}}function yj(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: ${Pn("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 $w(e){let t=e.running.trim();if(Ai(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||qt(r)===null?{act:"hold",reason:"published-unknown"}:pf(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function Ai(e){let t=e.trim();return qt(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function Yl(e=process.env){return e[gf]==="1"}var Jl=class extends Error{code=Ow;searched;constructor(t,r){super(`${Ow}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled or resolves no absolute npx
90
+ `),aliases:r}}function yk(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 fF=mk.plugin(Ku,fl);function kk(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function Rk(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 rs=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"}},xn=class extends Error{pool;resetAt;constructor(t,r,n,o){super(`${t} pool is exhausted; parked until ${r}${n?` (${n})`:""}`,o),this.name="GithubPoolUnavailableError",this.pool=t,this.resetAt=r}};function gp(e){let t=e.etags??kk(),r=e.now??(()=>new Date().toISOString()),n=new fF({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}}),o=async()=>{try{return await e.balance?.()??null}catch{return null}},s=(g,f)=>{let y=g?.pools[f]??null;if(y!==null&&y.remaining<=0)throw new xn(f,y.reset_at)},i=async g=>{let f=t.get(g.cacheKey),y=(await o())?.pools[g.operation.budget]??null;if(y!==null&&y.remaining<=0){if(f!==void 0)return bk(f,g.operation.budget,y.reset_at,r());throw new xn(g.operation.budget,y.reset_at)}let m={...g.parameters??{}},w=En(m.headers)?m.headers:{};m.headers={...w,...f?{"if-none-match":f.etag}:{}};try{let _=await n.request(g.route,m),O=_.headers,T=mi(O,"etag");return T!==void 0&&t.set(g.cacheKey,{etag:T,data:_.data,headers:O,storedAt:r()}),await e.attribution?.record({operation:g.operation,cost:1,actor:g.actor}),{data:_.data,headers:O,quotaFree:!1}}catch(_){if(gi(_)===304){if(f===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(g.cacheKey)} without a held answer to reuse`,{cause:_});let O=mp(_),T={...f.headers,...O},F=mi(T,"etag")??f.etag;return t.set(g.cacheKey,{etag:F,data:f.data,headers:T,...f.storedAt?{storedAt:f.storedAt}:{}}),await e.attribution?.record({operation:g.operation,cost:0,actor:g.actor}),{data:f.data,headers:T,quotaFree:!0}}if(gi(_)===401)throw new rs({cause:_});if(oo(_)){if(f!==void 0){let O=fp(g.operation.budget,_);return bk(f,g.operation.budget,O.resetAt,r())}throw fp(g.operation.budget,_)}throw _}},a=new Map,l=!1,d=async(g,f)=>{let y=g.input,m=y.kind==="pr";try{let w=await i({cacheKey:y.cacheKey,route:m?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:y.owner,repo:y.repo,...m?{pull_number:y.number}:{issue_number:y.number}},operation:y.operation,actor:y.actor});g.resolve({data:y.project?y.project(w.data,"rest"):w.data,surface:"rest",quotaFree:w.quotaFree,...f?{routing:f}:{}})}catch(w){g.reject(w)}},c=async(g,f)=>{try{let y=hk(g.map(({input:T})=>T)),m=await n.graphql(y.query),w=yk(y,m),_=mF(m),O=g[0].input;await e.attribution?.record({operation:{key:O.operation.key,budget:"graphql"},cost:_,actor:hF(g.map(({input:T})=>T.actor))}),w.forEach((T,F)=>{let $=g[F];T.value===null?$.reject(new Error(`GitHub returned no ${T.read.kind} #${T.read.number} from the coalesced query`)):$.resolve({data:$.input.project?$.input.project(T.value,"graphql"):T.value,surface:"graphql",quotaFree:!1,...f?{routing:f}:{}})})}catch(y){let m=gi(y)===401?new rs({cause:y}):y;g.forEach(w=>w.reject(m))}},u=async()=>{let g=await o(),f=Rk(g);l=!1;let y=[...a.values()];a.clear(),await Promise.all(y.map(async m=>{let w=m[0].input.rail,_=w??"rest",O=g?.pools[_]??null,T=_==="rest"?"graphql":"rest",F=g?.pools[T]??null,$=_==="rest"&&m.every(({input:q})=>t.get(q.cacheKey)!==void 0),G=T==="rest"&&m.every(({input:q})=>t.get(q.cacheKey)!==void 0),W=_,I;if(O!==null&&O.remaining<=0){if(F!==null&&F.remaining>0||G)W=T,I={requestedRail:_,selectedRail:W,rerouted:!0,pool:_,resetAt:O.reset_at,reason:`${_} pool is exhausted until ${O.reset_at}; used the equivalent ${W} rail`};else if(!$){let q=new xn(_,O.reset_at,"the equivalent rail has no known budget");m.forEach(oe=>oe.reject(q));return}}else w!==void 0&&(I={requestedRail:_,selectedRail:W,rerouted:!1,pool:_,resetAt:O?.reset_at??null,reason:O===null?`${_} pool balance is unknown, so the explicit rail is honored reactively`:`${_} pool has ${O.remaining} remaining, so the explicit rail is honored`});let U=m.some(({input:q})=>t.get(q.cacheKey)!==void 0);W==="graphql"||w===void 0&&!U&&m.length>f?await c(m,I):await Promise.all(m.map(q=>d(q,I)))}))};return{conditionalRest:i,singleObject:g=>new Promise((f,y)=>{let m=`${g.kind}:${g.rail??"default"}`,w=a.get(m)??[];w.push({input:g,resolve:f,reject:y}),a.set(m,w),l||(l=!0,setTimeout(()=>void u(),0))}),async conditionalPaginate(g){let f=[],y={},m=0,w=!0,_=1;for(;;){let O=await i({...g,cacheKey:`${g.cacheKey}:page:${_}`,parameters:{...g.parameters??{},per_page:100,page:_}});if(m+=1,w=w&&O.quotaFree,!Array.isArray(O.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(g.cacheKey)} page ${_}`);if(f.push(...O.data),y=O.headers,!gF(O.headers))break;_+=1}return{data:f,headers:y,requestCount:m,quotaFree:w}},async graphql(g,f={},y){try{s(await o(),y?.operation.budget??"graphql");let m=await n.graphql(g,f);return y&&await e.attribution?.record({operation:y.operation,cost:1,actor:y.actor}),m}catch(m){throw gi(m)===401?new rs({cause:m}):oo(m)?fp(y?.operation.budget??"graphql",m):m}}}}function bk(e,t,r,n){let o=Date.parse(n),s=e.storedAt===void 0?Number.NaN:Date.parse(e.storedAt);return{data:e.data,headers:e.headers,quotaFree:!0,degraded:{source:"cache",pool:t,resetAt:r,ageMs:Number.isFinite(o)&&Number.isFinite(s)?Math.max(0,o-s):null,reason:`${t} pool is exhausted until ${r}; serving the last-known answer instead of going dark`}}}function fp(e,t){let r=mp(t),n=Number(mi(r,"x-ratelimit-reset")),o=Number.isFinite(n)&&n>0?new Date(n*1e3).toISOString():"an unknown reset instant";return new xn(e,o,"GitHub refused the live request",{cause:t})}function gF(e){let t=mi(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function oo(e){if(e instanceof xn)return!0;let t=gi(e),r=mp(e);return t===429||t===403&&mi(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function gi(e){if(En(e))return typeof e.status=="number"?e.status:void 0}function mp(e){return!En(e)||!En(e.response)||!En(e.response.headers)?{}:e.response.headers}function mi(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function En(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function mF(e){let t=En(e)?e:{},r=En(t.data)?t.data:t,o=(En(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 hF(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("+")}`}import{randomUUID as RF}from"node:crypto";import{mkdir as wF,readFile as _F,rename as xF,rm as EF,writeFile as vF}from"node:fs/promises";import{dirname as SF}from"node:path";var _k="rate_limit",xk={rest:"core",graphql:"graphql",search:"search"},sr=["rest","graphql","search"];function _l(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:[...sr],detail:t??"no balance has been asked for yet, so none is known"}}var yp=15e3,ns=.15,Rl=[{at_or_below_fraction:0,every_ms:yp,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:ns,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 U6=60*6e4,hp=2;function Ek(e,t){let r=wk(e),n=wk(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of sr){let l=xk[a],d=n[l],c=kF(a,l,d);o[a]=c,c==null&&s.push(a)}let i=sr.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 ${sr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function bp(e){try{let t=await e.transport();return Ek(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{..._l(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function kp(e){let t=null;for(let r of sr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function xl(e,t){let r=kp(e);if(r==null)return wl(ns).every_ms;let n=wl(r.fraction);if(r.remaining>0)return n.every_ms;let o=Sk(t.now,r.reset_at);return o==null?n.every_ms:Math.max(yp,Math.min(n.every_ms,o))}function Rp(e,t=ns){return Math.ceil(e.limit*t)}function vk(e,t,r=ns){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Rp(n,r)?"reserved":"open"}function wp(e){let t=e.reservedFraction??ns,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:wl(t).every_ms*hp,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:wl(t).every_ms,pools:[],unreported_pools:[...sr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=xl(r,{now:e.now}),o=e.stalenessMs??n*hp,s=Sk(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=sr.map(c=>r.pools[c]).filter(c=>c!=null),l=bF(r,t),d=kp(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`:yF(l,d,r,t)}}function _p(e){if(!Ep(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 yF(e,t,r,n){if(t==null)return r.detail;let o=Rp(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 bF(e,t){let r="unknown";for(let n of sr){if(e.pools[n]==null)continue;let o=vk(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function wl(e){for(let t of Rl)if(e<=t.at_or_below_fraction)return t;return Rl[Rl.length-1]}function kF(e,t,r){if(!Ep(r))return null;let n=kl(r.limit),o=kl(r.remaining),s=kl(r.used),i=kl(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 xp(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${_k}`,{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 Sk(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 kl(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function wk(e){return Ep(e)?e:{}}function Ep(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Sp(e){let t=e.maxBytes??Ut["github-balance"].maxBytes;return{async read(){try{let r=er(await _F(e.path,"utf8"));return TF(r)?r:null}catch(r){return AF(r)&&r.code==="ENOENT",null}},async write(r){let n=`${tt(r)}
91
+ `;if(Buffer.byteLength(n)>t)throw new Error(`GitHub balance snapshot exceeds its ${t}-byte lane ceiling`);let s=SF(e.path);await wF(s,{recursive:!0});let i=`${e.path}.write-${process.pid}-${RF()}`;try{await vF(i,n,{encoding:"utf8",mode:384}),await xF(i,e.path)}finally{await EF(i,{force:!0}).catch(()=>{})}}}}function TF(e){if(!vp(e)||e.version!==1||e.origin!=="asked"||e.source!=="GET /rate_limit"||e.outcome!=="asked"&&e.outcome!=="unanswered"||typeof e.asked_at!="string"||!Number.isFinite(Date.parse(e.asked_at))||!Number.isSafeInteger(e.request_count)||e.request_count<0||!vp(e.pools)||!Array.isArray(e.unreported_pools)||typeof e.detail!="string")return!1;let t=e.pools;return sr.every(r=>{let n=t[r];return n===null||PF(n,r)})&&e.unreported_pools.every(r=>sr.includes(r))}function PF(e,t){return!vp(e)||e.pool!==t||typeof e.resource!="string"||typeof e.reset_at!="string"||!Number.isFinite(Date.parse(e.reset_at))?!1:[e.limit,e.remaining,e.used].every(r=>Number.isSafeInteger(r)&&r>=0)&&typeof e.fraction=="number"&&Number.isFinite(e.fraction)}function vp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function AF(e){return e instanceof Error&&"code"in e}import{execFileSync as CF}from"node:child_process";import{existsSync as OF,readFileSync as El,readdirSync as DF}from"node:fs";import{dirname as FF,join as so}from"node:path";function hi(e){let t=Xo(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Zo(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function IF(e){let t=[],r=[];for(let n of e.workers){let o=hi(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Xo(n).memory_max??Xo(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(LF(n,o,s))}}return{terminations:t,unenforceable:r}}function MF(e){let t=[];for(let r of e.workers){if(r.isolated)continue;let n=Xo(r).max_processes;if(n==null||!Number.isSafeInteger(n)||n<=0)continue;let o=e.processes[r.worker_id];if(typeof o!="number"||!Number.isSafeInteger(o)||o<0||o<=n)continue;let s=`Worker ${JSON.stringify(r.worker_id)} of project ${JSON.stringify(r.project_label)}`;t.push({version:1,worker_id:r.worker_id,project_label:r.project_label,outcome:"terminated-over-process-budget",classification:"budget-exceeded",stall:!1,budget_name:"TasksMax",budget_declared:n,observed_processes:o,workspace_path:r.workspace_path,reason:`redskilled terminated ${s}: its process tree contained ${o} processes, exceeding its TasksMax budget of ${n}. This is a budget termination, not a stall, and the work in ${JSON.stringify(r.workspace_path)} is handed forward.`})}return{terminations:t,unenforceable:[]}}function Tk(e){let t=IF(e),r=MF(e);return{terminations:[...t.terminations,...r.terminations],unenforceable:[...t.unenforceable,...r.unenforceable]}}function LF(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 jF=4096;function Pk(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},processes:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a={},l=BF(e,r,t);for(let[p,g]of l){let f=WF(g);f!=null&&(o[p]=f.memoryBytes,f.cpuSeconds!=null&&(s[p]=f.cpuSeconds),a[p]="cgroup")}let d=e.filter(p=>a[p.worker_id]==null);if(d.length===0)return{rss:o,cpu_seconds:s,processes:i,sources:a};let c=qF(r,t);if(c.size===0)return{rss:o,cpu_seconds:s,processes:i,sources:a};let u=new Map;for(let p of c.values()){let g=u.get(p.ppid);g?g.push(p.pid):u.set(p.ppid,[p.pid])}for(let p of d){if(!c.has(p.pid))continue;let g=0,f=0,y=0,m=[p.pid],w=new Set;for(;m.length>0;){let _=m.pop();if(w.has(_))continue;w.add(_);let O=c.get(_);if(O){y+=1,g+=O.rssBytes,f+=O.cpuSeconds;for(let T of u.get(_)??[])m.push(T)}}o[p.worker_id]=g,s[p.worker_id]=f,i[p.worker_id]=y,a[p.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,processes:i,sources:a}}var $F="/sys/fs/cgroup";function BF(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??$F,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=NF(s,r);for(let l of i)for(let d of a){let c=so(d,l.unit);if(OF(so(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function NF(e,t){let r=t.selfCgroupPath??GF(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(so(e,s));let a=FF(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(so(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function GF(){try{for(let e of El("/proc/self/cgroup","utf8").split(`
92
+ `))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function WF(e){let t;try{t=El(so(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:HF(e)}}function HF(e){let t;try{t=El(so(e,"cpu.stat"),"utf8")}catch{return null}return UF(t)}function UF(e){for(let t of e.split(`
93
+ `)){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 qF(e,t){return t.procRoot!=null||e==="linux"?QF(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?JF(KF(t.psTable)):new Map}function KF(e){try{return(e??VF)()}catch{return""}}function VF(){return CF("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var zF=1024;function JF(e){let t=new Map;for(let r of e.split(`
94
+ `)){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=YF(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*zF,cpuSeconds:a})}return t}function YF(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 QF(e){let t=new Map,r;try{r=DF(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=El(so(e,n,"stat"),"utf8")}catch{continue}let s=vl(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*jF,cpuSeconds:s.cpuTicks/XF})}return t}var XF=100;function vl(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[2]),i=Number(n[3]),a=Number(n[11]),l=Number(n[12]),d=n[19],c=Number(n[21]);return![r,o,s,i].every(Number.isSafeInteger)||!Number.isFinite(c)||!Number.isFinite(a)||!Number.isFinite(l)||d==null||!/^\d+$/.test(d)||!Number.isSafeInteger(Number(d))?null:{pid:r,ppid:o,pgid:s,sid:i,starttime:d,rssPages:Math.max(0,c),cpuTicks:Math.max(0,a)+Math.max(0,l)}}var Sl=4*60*1e3,Tp={key:"redskilled repository activity poll",budget:"rest"},ZF={key:"redskilled merged-today poll",budget:"search"};async function Ok(e,t){let r=Date.parse(e.now),n=e.transport.conditionalList,o=e.transport.conditionalCount,s=new Map((e.previous?.projects??[]).map(c=>[c.project_label,c])),i=e.panoramaRefreshMs??Sl,a=[],l=0,d={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let c of e.projects){let u=`${c.owner}/${c.name}`,p=s.get(c.project_label),g=Date.parse(p?.panorama_fetched_at??e.previous?.fetched_at??""),f=p?.counts==null||!Number.isFinite(r)||!Number.isFinite(g)||r-g>=i;try{let y={owner:c.owner,repo:c.name,state:"open"},m=await n({cacheKey:`activity:${u}:open-issues:${JSON.stringify(y)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:y,operation:Tp});l+=m.requestCount,d=Pp(d,Ak(m.headers));let w=m.data.filter(T=>!Ap(T.pull_request)),_=c.queue_labels==null?{ready_queue:null,human_queue:null}:eI(w,c.queue_labels),O=p?.counts??null;if(f){let T={owner:c.owner,repo:c.name,state:"open"},F={owner:c.owner,repo:c.name,state:"closed",since:t.closed_since},$={q:`repo:${u} is:pr is:merged merged:>=${t.merged_since}`,per_page:1},G=await n({cacheKey:`activity:${u}:open-prs:${JSON.stringify(T)}`,route:"GET /repos/{owner}/{repo}/pulls",parameters:T,operation:Tp}),W=await n({cacheKey:`activity:${u}:recently-closed:${JSON.stringify(F)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:F,operation:Tp}),I=await o({cacheKey:`activity:${u}:merged-today:${t.merged_since}`,route:"GET /search/issues",parameters:$,operation:ZF});l+=G.requestCount+W.requestCount+I.requestCount;for(let q of[G.headers,W.headers,I.headers])d=Pp(d,Ak(q));let U=W.data.filter(q=>!Ap(q.pull_request)).filter(q=>Dk(q.closed_at)>=t.closed_since).length;if(!Number.isSafeInteger(I.data.total_count)||I.data.total_count<0)throw new Error(`GitHub returned no merged-today count for ${u}`);O={open_pull_requests:G.data.length,open_issues:w.length,recently_closed:U,merged_today:I.data.total_count,ready_queue:_.ready_queue,human_queue:_.human_queue}}if(O==null)throw new Error(`no panorama cache exists for ${u}`);a.push({project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:O.open_pull_requests,open_issues:O.open_issues,recently_closed:O.recently_closed,merged_today:O.merged_today,..._},panorama_fetched_at:f?e.now:p?.panorama_fetched_at??e.previous?.fetched_at??e.now,queue_fetched_at:e.now,detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`})}catch(y){let m=oo(y);d=Pp(d,{remaining:null,reset_at:null,exhausted:m,point_cost:null});let w=y instanceof Error?y.message:String(y);a.push(p?.counts==null?{project_label:c.project_label,repository:u,outcome:m?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${u} answered: ${w}`}:{...p,detail:`serving last-known counters after the activity fetch failed: ${w}`})}}return{version:1,fetched_at:e.now,request_count:l,project_count:a.length,rate_limit:d,projects:a}}function eI(e,t){let r=(n,o)=>Array.isArray(n.labels)&&n.labels.some(s=>tI(s)===o);return{ready_queue:e.filter(n=>r(n,t.ready)).length,human_queue:e.filter(n=>r(n,t.human)).length}}function tI(e){return typeof e=="string"?e:Ap(e)?Dk(e.name):""}function Ak(e){let t=Ck(e,"x-ratelimit-remaining"),r=Ck(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Pp(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 Ck(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 Ap(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Dk(e){return typeof e=="string"?e:""}var rI=["api","graphql"],M8=Gu(rI);var Fk=100,ss=2e4,nI=7*24*60*60*1e3,Op=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 Fp(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new Op(r.project_label,r.token_ref,t)}function Ik(e,t={now:new Date(0).toISOString()}){aI(e);let r=t.closedWindowMs??nI,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=new Date(n),i=[s.getFullYear(),String(s.getMonth()+1).padStart(2,"0"),String(s.getDate()).padStart(2,"0")].join("-"),a=e.map((c,u)=>({alias:`r${u}`,search_alias:`c${u}`,merged_alias:`m${u}`,project:c}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...a.flatMap(({alias:c,search_alias:u,merged_alias:p,project:g})=>{let f=JSON.stringify(g.owner),y=JSON.stringify(g.name),m=JSON.stringify(`repo:${g.owner}/${g.name} is:closed closed:>=${o}`),w=JSON.stringify(`repo:${g.owner}/${g.name} is:pr is:merged merged:>=${i}`);return[` ${c}: repository(owner: ${f}, name: ${y}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${u}: search(query: ${m}, type: ISSUE, first: 1) { issueCount }`,` ${p}: search(query: ${w}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
95
+ `),aliases:a,closed_since:o,merged_since:i}}function oI(e,t,r){let n=os(t),o=os(n.data),s=Array.isArray(n.errors)?n.errors.map(os):[],i=lI(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,merged_alias:c,project:u})=>{let p=u.owner+"/"+u.name,g=o[l],f=s.find(y=>Cp(y.path,l)||Cp(y.path,d)||Cp(y.path,c));if(Nk(g)){let y=Mk(g.open_pull_requests),m=Mk(g.open_issues),w=Lk(o[d]),_=Lk(o[c]);if(y!=null&&m!=null&&w!=null&&_!=null)return{project_label:u.project_label,repository:p,outcome:"counted",counts:{open_pull_requests:y,open_issues:m,merged_today:_,recently_closed:w,ready_queue:null,human_queue:null},panorama_fetched_at:r.fetchedAt,queue_fetched_at:r.fetchedAt,detail:`counted ${p} for project ${JSON.stringify(u.project_label)}`}}return i.exhausted||Bk(f)?{project_label:u.project_label,repository:p,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${p} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:u.project_label,repository:p,outcome:"unreachable",counts:null,detail:`${p} is not reachable with the host token: ${Dp(f?.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 sI(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 jk(e){if(e.projects.length===0)return sI(e.now);if(Fp(e.projects,e.hostTokenRef),e.transport.conditionalList&&e.transport.conditionalCount){let r=Date.parse(e.now),n=Number.isFinite(r)?new Date(Math.floor(r/(60*60*1e3))*60*60*1e3).toISOString():e.now,o=Ik(e.projects,{now:n,closedWindowMs:e.closedWindowMs});return await Ok(e,o)}let t=Ik(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return oI(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}`}))}}}function $k(e){let t=e.endpoint==null?void 0:iI(e.endpoint),r=gp({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.conditionalCount=async o=>{let s=await r.conditionalRest({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation});return{data:s.data,headers:s.headers,requestCount:1}},n}function iI(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 aI(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Fk)throw new Error(`redskilled activity fetch spans at most ${Fk} 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`);if(r.queue_labels!=null&&(r.queue_labels.ready===""||r.queue_labels.human===""))throw new Error(`project ${JSON.stringify(r.project_label)} declares an empty queue label: a label that names nothing would be counted as an empty queue, so state both label names or state neither`);t.add(r.project_label)}}function lI(e,t){let r=os(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(Bk),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 Bk(e){if(e==null)return!1;let t=Dp(e.type),r=Dp(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Cp(e,t){return Array.isArray(e)&&e.includes(t)}function Mk(e){let t=os(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function Lk(e){let t=os(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function os(e){return Nk(e)?e:{}}function Nk(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Dp(e){return typeof e=="string"?e:""}var Ip=2,Mp=Ip*ss;function Wk(e){let t=e.stalenessMs??Mp,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 Hk(e){if(!Gk(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)&&Gk(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Gk(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Lp=["open_pull_requests","open_issues","merged_today","ready_queue","human_queue"],Uk="this daemon polls no repository, so there are no remote counters to date";function qk(e){let t=e.stalenessMs??Mp,r=e.panoramaStalenessMs??Sl,n=e.activity;if(n==null||n.projects.length===0)return{version:1,threshold_ms:t,projects:[],reason:Uk};let o=Date.parse(e.now),s=n.projects.map(i=>dI(i,{fetchedAt:n.fetched_at,nowMs:o,threshold:t,panoramaThreshold:r}));return{version:1,threshold_ms:t,projects:s,reason:!Number.isFinite(o)||!Number.isFinite(Date.parse(n.fetched_at))?"these counters carry no readable instant, so none of them can be presented as current":`these counters carry their queue and panorama poll instants as of ${n.fetched_at}`}}function dI(e,t){let r={};for(let n of Lp){let o=n==="open_pull_requests"||n==="open_issues"||n==="merged_today",s=o?e.panorama_fetched_at??t.fetchedAt:e.queue_fetched_at??t.fetchedAt,i=Date.parse(s),a=Number.isFinite(t.nowMs)&&Number.isFinite(i)?Math.max(0,t.nowMs-i):null;r[n]=uI(n,cI(e,n),e,{fetchedAt:s,ageMs:a,threshold:o?t.panoramaThreshold:t.threshold})}return{project_label:e.project_label,repository:e.repository,outcome:e.outcome,counters:r}}function cI(e,t){let r=e.counts;if(r==null)return null;switch(t){case"open_pull_requests":return r.open_pull_requests;case"open_issues":return r.open_issues;case"merged_today":return r.merged_today??null;case"ready_queue":return r.ready_queue;case"human_queue":return r.human_queue}}function uI(e,t,r,n){let o={name:e,value:null,fetched_at:null,age_ms:null,threshold_ms:n.threshold,stale:!1};if(t==null)return{...o,reason:r.outcome==="counted"?`this poll produced no ${e}, so it is absent rather than zero`:r.detail};if(n.ageMs==null)return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:null,threshold_ms:n.threshold,stale:!0,reason:`this ${e} carries no readable instant, so it cannot be presented as current`};let s=n.ageMs>n.threshold;return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:n.ageMs,threshold_ms:n.threshold,stale:s,reason:s?`this ${e} is ${n.ageMs}ms old, past the ${n.threshold}ms window`:`counted ${n.ageMs}ms ago, within the ${n.threshold}ms window`}}function jp(e){if(!Tl(e))return!1;let t=e;return t.version===1&&typeof t.threshold_ms=="number"&&typeof t.reason=="string"&&Array.isArray(t.projects)&&t.projects.every(pI)}function pI(e){if(!Tl(e))return!1;let t=e;if(typeof t.project_label!="string"||typeof t.repository!="string"||typeof t.outcome!="string"||!Tl(t.counters))return!1;let r=t.counters;return Lp.every(n=>fI(r[n]))}function fI(e){if(!Tl(e))return!1;let t=e;return typeof t.name=="string"&&(t.value===null||typeof t.value=="number")&&(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"&&typeof t.reason=="string"}function Tl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Vk(e,t,r={}){let n=[...e].sort((p,g)=>(io(g.ts)??0)-(io(p.ts)??0)),o=n.slice(0,Math.max(0,Math.floor(t))).map(Kk),s=n.filter(p=>p.observed_exit===!0||p.sender_class!=="unknown"&&p.confidence!=="none"),i=s[0]==null?null:Kk(s[0]),a=r.now==null?null:io(r.now),l=i==null?null:io(i.ts),d=r.freshnessMs??6e5,c=gI(n,{nowMs:a,freshnessMs:d}),u=r.healthyFleet===!0||a==null||l==null||a-l>d?null:i;return{count:n.length,sender_attributed_count:s.length,recent:o,latest:o[0]??null,latest_sender_attributed:i,current_sender_attributed:u,reaped_at:o[0]?.ts??null,...c==null?{}:{boot_loop:c}}}function Kk(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 gI(e,t){let r=new Map;for(let o of e){if(o.sender_class!=="boot-refused"||o.uptime_s==null||o.uptime_s>2||o.project_label==null||o.project_label===""||io(o.ts)==null)continue;let s=r.get(o.project_label)??[];s.push(o),r.set(o.project_label,s)}return[...r.entries()].filter(([,o])=>o.length>=3).map(([o,s])=>{let i=s[0],a=io(i.ts);if(t.nowMs==null||t.nowMs-a>t.freshnessMs)return null;let l=Math.min(...s.map(c=>io(c.ts))),d=i.detail?.trim()||i.evidence[0]?.trim();return d==null||d===""?null:{project_label:o,count:s.length,span_ms:Math.max(0,a-l),latest_refusal:d}}).filter(o=>o!=null).sort((o,s)=>s.count-o.count||s.span_ms-o.span_ms)[0]??null}function $p(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 io(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var zk=["logs","vitals","display"];function Bp(e,t){if(t===void 0)return e;let r=zk.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:mI,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:hI},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var mI={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},hI={last_line:null,published_at:null,source:null};var yI=3e4;function Yk(e){let t=e.stalenessMs??yI,r=Np(e.now),n=e.sampledAt==null?null:Np(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=>kI(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=al(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:xI({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:_I(a),known_projects:wI(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:wp({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Wk({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),remote_counters:qk({activity:e.repositoryActivity??null,now:e.now,...e.activityStalenessMs===void 0?{}:{stalenessMs:e.activityStalenessMs}}),...e.deaths===void 0?{}:{deaths:Vk(e.deaths,e.recentDeathLimit??4,{now:e.now,healthyFleet:(e.hostState.registrations??[]).length>0&&(e.hostState.registrations??[]).every(p=>e.hostState.workers.filter(g=>g.project_label===p.project_label).length>=Math.max(0,p.target))})},engine:bI(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function bI(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 kI(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=hi(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=Np(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:RI(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function RI(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 wI(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 _I(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 xI(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 Np(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Pl(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(EI))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(vI))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Hk(t.repository_activity))&&(t.remote_counters===void 0||jp(t.remote_counters))&&(t.github_balance===void 0||_p(t.github_balance))&&(t.deaths===void 0||$p(t.deaths))&&(t.engine===void 0||SI(t.engine))&&(t.metrics===void 0||Ib(t.metrics))}function EI(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 vI(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 SI(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 Qk={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 Xk(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 Al={$schema:"https://tr.designtokens.org/format/2025.10/schema.json",$description:"RedDB design tokens \u2014 the canonical, machine-readable source of truth. DTCG 2025.10 (Design Tokens Format Module, first stable version). Hand-authored; tokens.css and tailwind-preset.js are build outputs of generators/build-tokens.mjs \u2014 never hand-edit them. Locked brand values: red #ff2056, ink #07080a, paper #f4f5f7 (from the marks, issues #13/#16); type Space Grotesk + JetBrains Mono (ADR 0001).",color:{$type:"color",$description:"Primitive palette (raw scale) and semantic roles (aliases). Feedback colours (success/warning/danger) are intentionally not published yet; issue #10 locked --ok #4ade80, --warn #fbbf24, and --danger #ff5470, with the rule that the accent never signals error.",red:{$description:"The brand accent. red.500 is the locked mark colour #ff2056; the other stops are derived by mixing toward white/black for hover, active, and on-light emphasis.","400":{$value:{colorSpace:"srgb",components:[1,.3882,.5373],hex:"#ff6389"}},"500":{$value:{colorSpace:"srgb",components:[1,.1255,.3373],hex:"#ff2056"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900"],failsOn:["color.neutral.800"]},asFill:{textPasses:["color.neutral.950"],textFails:["color.neutral.0"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.8196,.102,.2745],hex:"#d11a46"}},"700":{$value:{colorSpace:"srgb",components:[.6784,.0863,.2275],hex:"#ad163a"}}},neutral:{$description:"Cool-gray ramp on the ink\u2194paper axis. neutral.50 is the locked paper #f4f5f7; neutral.950 is the locked ink #07080a; intermediate stops are hand-tuned on the same hue.","0":{$value:{colorSpace:"srgb",components:[1,1,1],hex:"#ffffff"}},"50":{$value:{colorSpace:"srgb",components:[.9569,.9608,.9686],hex:"#f4f5f7"}},"100":{$value:{colorSpace:"srgb",components:[.9059,.9137,.9333],hex:"#e7e9ee"}},"200":{$value:{colorSpace:"srgb",components:[.8275,.8392,.8706],hex:"#d3d6de"}},"300":{$value:{colorSpace:"srgb",components:[.702,.7216,.7686],hex:"#b3b8c4"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"400":{$value:{colorSpace:"srgb",components:[.5451,.5686,.6314],hex:"#8b91a1"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"500":{$value:{colorSpace:"srgb",components:[.4,.4275,.4941],hex:"#666d7e"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:[],failsOn:["color.neutral.950","color.neutral.900","color.neutral.800"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.2902,.3176,.3843],hex:"#4a5162"}},"700":{$value:{colorSpace:"srgb",components:[.2,.2235,.2863],hex:"#333949"}},"800":{$value:{colorSpace:"srgb",components:[.1176,.1333,.1765],hex:"#1e222d"}},"900":{$value:{colorSpace:"srgb",components:[.0706,.0784,.1059],hex:"#12141b"}},"950":{$value:{colorSpace:"srgb",components:[.0275,.0314,.0392],hex:"#07080a"}}},brand:{$description:"Semantic brand roles. on-primary is the black R the mark sets on the red field.",primary:{$value:"{color.red.500}"},hover:{$value:"{color.red.600}"},active:{$value:"{color.red.700}"},"on-primary":{$value:"{color.neutral.950}"}},ink:{$value:"{color.neutral.950}",$description:"The near-black foreground; the brand is dark-first."},paper:{$value:"{color.neutral.50}",$description:"The off-white ground."},surface:{muted:{$value:"{color.neutral.100}"}},border:{subtle:{$value:"{color.neutral.200}"},strong:{$value:"{color.neutral.300}"}}},fontFamily:{$type:"fontFamily",$description:"Space Grotesk for display and body, JetBrains Mono for code (ADR 0001). Space Grotesk has no italic and no weight 300; <em> maps to weight 500 and italic exists only in the mono.",sans:{$value:["Space Grotesk","system-ui","-apple-system","Segoe UI","sans-serif"]},mono:{$value:["JetBrains Mono","ui-monospace","SFMono-Regular","Menlo","monospace"]}},fontWeight:{$type:"fontWeight",$description:"Weight 300 is excluded (dark-first: thin strokes lose weight to halation).",regular:{$value:400},medium:{$value:500},bold:{$value:700}},fontSize:{$type:"dimension",$description:"Modular scale, ~1.2 (minor third) from a 1rem base.",xs:{$value:{value:.75,unit:"rem"}},sm:{$value:{value:.875,unit:"rem"}},base:{$value:{value:1,unit:"rem"}},lg:{$value:{value:1.125,unit:"rem"}},xl:{$value:{value:1.25,unit:"rem"}},"2xl":{$value:{value:1.5,unit:"rem"}},"3xl":{$value:{value:1.875,unit:"rem"}},"4xl":{$value:{value:2.25,unit:"rem"}},"5xl":{$value:{value:3,unit:"rem"}},"6xl":{$value:{value:3.75,unit:"rem"}}},lineHeight:{$type:"number",$description:"Unitless multipliers.",tight:{$value:1.1},snug:{$value:1.25},normal:{$value:1.5},relaxed:{$value:1.65}},letterSpacing:{$type:"dimension",tight:{$value:{value:-.02,unit:"em"}},normal:{$value:{value:0,unit:"em"}},wide:{$value:{value:.04,unit:"em"}}},spacing:{$type:"dimension",$description:"4px base grid; 1 unit = 0.25rem.","0":{$value:{value:0,unit:"rem"}},px:{$value:{value:1,unit:"px"}},"0.5":{$value:{value:.125,unit:"rem"}},"1":{$value:{value:.25,unit:"rem"}},"2":{$value:{value:.5,unit:"rem"}},"3":{$value:{value:.75,unit:"rem"}},"4":{$value:{value:1,unit:"rem"}},"5":{$value:{value:1.25,unit:"rem"}},"6":{$value:{value:1.5,unit:"rem"}},"8":{$value:{value:2,unit:"rem"}},"10":{$value:{value:2.5,unit:"rem"}},"12":{$value:{value:3,unit:"rem"}},"16":{$value:{value:4,unit:"rem"}},"20":{$value:{value:5,unit:"rem"}},"24":{$value:{value:6,unit:"rem"}}},radius:{$type:"dimension",$description:"The symbol's clipped corner is a hard geometric cut, so brand chrome favours restrained radii.",none:{$value:{value:0,unit:"rem"}},sm:{$value:{value:.125,unit:"rem"}},md:{$value:{value:.375,unit:"rem"}},lg:{$value:{value:.5,unit:"rem"}},xl:{$value:{value:.75,unit:"rem"}},"2xl":{$value:{value:1,unit:"rem"}},full:{$value:{value:9999,unit:"px"}}},duration:{$type:"duration",instant:{$value:{value:75,unit:"ms"}},fast:{$value:{value:150,unit:"ms"}},normal:{$value:{value:250,unit:"ms"}},slow:{$value:{value:400,unit:"ms"}}},easing:{$type:"cubicBezier",$description:"Standard for most transitions; entrance decelerates, exit accelerates, emphasized for hero motion.",standard:{$value:[.4,0,.2,1]},entrance:{$value:[0,0,.2,1]},exit:{$value:[.4,0,1,1]},emphasized:{$value:[.2,0,0,1]}},shadow:{$type:"shadow",$description:"Elevation cast in ink at low alpha; tuned for a dark-first surface.",sm:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.12,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:1,unit:"px"},blur:{value:2,unit:"px"},spread:{value:0,unit:"px"}}},md:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.16,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:2,unit:"px"},blur:{value:8,unit:"px"},spread:{value:0,unit:"px"}}},lg:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.2,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:8,unit:"px"},blur:{value:24,unit:"px"},spread:{value:0,unit:"px"}}},xl:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.24,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:16,unit:"px"},blur:{value:48,unit:"px"},spread:{value:0,unit:"px"}}}}};var is=class extends Error{name="BrandTokenError";constructor(t,r,n){super(n),this.code=t,this.tokenName=r}};function yi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}if(!yi(Al)||!yi(Al.color))throw new is("TOKEN_MALFORMED","color","The vendored DTCG document has no color token group.");var PI=Al;function AI(e){let t=PI;for(let r of e.split(".")){if(!yi(t)||!(r in t))return;t=t[r]}return t}function Gp(e,t){return new is("TOKEN_MALFORMED",e,`Brand color token "${e}" is malformed: ${t}`)}function Zk(e,t,r){if(r.has(e))throw new is("TOKEN_ALIAS_CYCLE",t,`Brand color token "${t}" contains an alias cycle at "${e}".`);let n=AI(e);if(n===void 0)throw new is("TOKEN_NOT_FOUND",t,`Brand color token "${t}" was not found (resolved path "${e}").`);if(!yi(n)||!("$value"in n))throw Gp(t,`"${e}" is not a token with a $value`);let o=n.$value;if(typeof o=="string"){let s=/^\{([^{}]+)\}$/.exec(o);if(s?.[1]===void 0)throw Gp(t,`"${e}" has an invalid alias`);return Zk(s[1],t,new Set([...r,e]))}if(!yi(o)||typeof o.hex!="string"||!/^#[0-9a-fA-F]{6}$/.test(o.hex))throw Gp(t,`"${e}" has no six-digit hex color value`);return{name:e.startsWith("color.")?e.slice(6):e,hex:o.hex.toLowerCase()}}function CI(e){let t=e.startsWith("color.")?e:`color.${e}`;return Zk(t,e,new Set)}function OI(e){return CI(e).hex}function eR(e,t){let r=OI(e),n=Number.parseInt(r.slice(1,3),16),o=Number.parseInt(r.slice(3,5),16),s=Number.parseInt(r.slice(5,7),16);return`\x1B[${t};2;${n};${o};${s}m`}function $r(e){return eR(e,38)}function Wp(e){return eR(e,48)}var tR=Wp("brand.primary"),rR=$r("brand.on-primary"),Cl=Wp("neutral.900"),Ol=$r("paper"),Dl=$r("paper"),Fl="\x1B[39m",ir=$r("neutral.400"),g9=$r("neutral.500"),nR=$r("neutral.300"),oR=$r("neutral.0"),sR=$r("neutral.700"),iR=$r("red.500"),ln="\x1B[49m",Br="\x1B[0m",Hp="\x1B[1m",Up="\x1B[22m";var DI=/\x1b\[[0-9;]*m/g,FI=/(\x1b\[[0-9;]*m)/,II=/^\x1b\[[0-9;]*m$/;function ao(e){return e.replace(DI,"")}function MI(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function ar(e){return[...ao(e)].length}function rt(e,t){if(t<=0)return"";if(ar(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(FI))if(i!==""){if(II.test(i)){s+=i,o=!MI(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?Br:""}`;s+=a,n+=1}}return`${s}\u2026${o?Br:""}`}function bi(e,t){return e+" ".repeat(Math.max(0,t-ar(e)))}function qp(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 br(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 ki(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 vn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return ki(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 Nr(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 as(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var aR=[{name:"ready_queue",key:"rdy"},{name:"open_issues",key:"iss"},{name:"open_pull_requests",key:"pr"},{name:"merged_today",key:"mrg"}];function Ri(e,t){let r=Il(e,t),n=lR(e,t),o=[];for(let{name:s,key:i}of aR){let a=jI(i,r?.counters[s],LI(n,s));a!=null&&o.push(a)}return o}function Kp(e,t){let r=Il(e,t),n=lR(e,t);return{open_pull_requests:r?.counters.open_pull_requests.value??n?.counts?.open_pull_requests??null,merged_today:r?.counters.merged_today.value??n?.counts?.merged_today??null,recently_closed:n?.counts?.recently_closed??null,open_issues:r?.counters.open_issues.value??n?.counts?.open_issues??null,ready_queue:r?.counters.ready_queue.value??null,human_queue:r?.counters.human_queue.value??null,stale:n?.stale===!0}}function Vp(e,t){return Il(e,t)!=null}function Il(e,t){return t==null?null:(e.remote_counters?.projects??[]).find(r=>r.project_label===t)??null}function lR(e,t){return t==null?null:(e.repository_activity?.projects??[]).find(r=>r.project_label===t)??null}function LI(e,t){let r=e?.counts;return r==null?null:t==="open_pull_requests"?r.open_pull_requests:t==="open_issues"?r.open_issues:t==="merged_today"?r.merged_today??null:null}function jI(e,t,r){return t==null?r==null?null:`${e}=${r}`:t.value==null?null:`${e}=${t.value}${t.stale?`(${$I(t.age_ms)})`:""}`}function $I(e){return Nr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}var wi="!unregistered",zp="!lapsed",_i="\u21E1",kr="\u2020",ls="\u25D0",ds="\u25EF",Jp="\u21B3",Yp="redskilled unreachable \u2014 Worker state unknown";function cs(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Ml(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function xi(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 Qp(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 Ll(e,t){return e.startsWith(t)?e.slice(t.length):e}function Gr(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function Xp(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:Gr(Ll(n.cells.iss,"iss="),n.cells.phase),state:Gr(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Gr(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:Gr(Ll(n.cells.iss,"iss=")),runner:Gr(Ll(n.cells.run,"run=")),phase:Gr(n.cells.phase),progress:Gr(n.cells.bar),elapsed:Gr(n.cells.elapsed),eta:Ll(Gr(n.cells.eta),"eta="),activity:Gr(n.cells.hb,t[o]?.log.last_line)}))}}var Sn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Kt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},BI=" ",dR="\u2588",NI="\u25B6",GI="\u2717",WI="\u2591",HI=new Set(["gate","push-pr","merge","cascade"]),UI=new Set(["requeue"]),qI="repair";function Ei(e){return e.display?.origin===qI}function us(e,t=Kt){let r=xi(e,t.project),n=cs(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>$l(y,t,e.generated_at)),i=oM(s),a=o.map((y,m)=>({worker_id:y.worker_id,project_label:y.project_label,mine:t.project!=null&&y.project_label===t.project,cells:s[m],line:rt(sM(s[m],i),t.maxWidth)})),l=Xp(a,o,t.maxWidth),d=VI(e,t,n,r),c=n.length-o.length,u=[d.line,...ZI(e,t),...a.map(y=>y.line)];c>0&&u.push(rt(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...QI(e,t)),u.push(...YI(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Kt.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),rt(`\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:Sn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function $l(e,t,r){let n=e.display??Qk,o=Ei(e),s=[n.runner,n.model==null?null:qp(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&HI.has(n.phase),a=o||i||n.origin!=null&&UI.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:uR(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:Nr(Xk(e,r)),eta:n.eta==null?"":`eta=${Nr(n.eta*1e3)}`,hb:KI(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":nM(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${ki(n.tokens)}`,ctx:n.context==null?"":`ctx=${ki(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 KI(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} ${Nr(Math.max(0,n-r))}`}function uR(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 dR.repeat(Math.floor(t));let o=e.failed?GI:NI;return`${dR.repeat(n)}${o}${WI.repeat(Math.floor(t)-n-1)}`}function VI(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(F=>F.project_label===t.project),s=Kp(e,t.project),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=rM(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=[zI(l??"host",c,d!=null&&d.current===!1?_i:"")];(n==="unregistered"||n==="name-only")&&g.push(wi),n==="lapsed"&&g.push(zp);let f=p?.history_48h==null?null:XI(p.history_48h);f!=null&&g.push(lo(f));let y=e.workers.filter(Ei).length;if(y>0){let F=Math.max(0,e.host.worker_count-y);g.push(`${lo(`workers=${F} coding +`)} ${Cl}${Ol}${y} repairing${ln}${ir}`)}else g.push(lo(`wrk=${r.length}/${e.host.worker_count}`));let m=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(lo(`${m} reserve=${i.interactive_reservation} interactive`)),g.push(lo(tM(i))),a!=null&&g.push(`${Cl}${Ol}${a}${ln}${ir}`);for(let F of Ri(e,t.project))g.push(lo(F));s.stale&&!Vp(e,t.project)&&g.push("!counts stale");let w=p==null?null:pR(p.hour),_=w==null?null:lo(w);if(_!=null&&g.push(_),u!=null&&u.count>0&&u.latest!=null){let F=u.boot_loop,$=as(F?.latest_refusal),G=Object.prototype.hasOwnProperty.call(u,"current_sender_attributed")?u.current_sender_attributed??null:u.latest;g.push(F==null?`${kr}${u.count}${G==null?"":` ${G.sender_class}`}`:`${kr}${u.count} boot-refused \xD7${F.count} in ${JI(F.span_ms)}`+($==null?"":` \u2014 ${$}`))}if(e.staleness.stale){let F=e.staleness.age_ms;g.push(F==null?"!unmeasured":`!stale ${Math.round(F/1e3)}s`)}let O=`${g.join(" \xB7 ")}${Br}`,T=w!=null&&ar(O)>t.maxWidth?`${g.filter(F=>F!==_).join(" \xB7 ")}${Br}`:O;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:rt(T,t.maxWidth)}}function zI(e,t,r){return`${tR}${rR}\xBB ${Hp}${e}${Up} v${t}${r}${ln}${ir}`}function lo(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Dl}${n}${Fl}${o}${ir}`)}function JI(e){return Nr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function pR(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${vn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${vn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${vn(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 YI(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?ds:ls,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[rt(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function QI(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[rt(`${kr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>rt(`${kr} ${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(rt(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function XI(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${vn(t)} ${Zp(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${vn(r)} ${Zp(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function ZI(e,t){let r=e.metrics;return r==null?[rt("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[rt("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[cR("tokens",r.history_48h.tokens_per_hour,t),cR("Tickets",r.history_48h.tickets_per_hour,t)]}var jl=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function cR(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=${vn(o)}/h ${Zp(t.trend)}`.trim();if(r.maxWidth<72)return rt(`${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 rt(`${n} 48h ${eM(t)} \xB7 ${a}${l}`,r.maxWidth)}function eM(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?jl[0]:jl[Math.min(jl.length-1,Math.floor(Math.max(0,n.value)/r*(jl.length-1)))]).join("")}function Zp(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function tM(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${br(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${br(e.memory_used_bytes)}/${br(e.memory_ceiling_bytes)}${t}`}function rM(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 nM(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 oM(e){let t=Object.fromEntries(Sn.map(r=>[r,0]));for(let r of e)for(let n of Sn)t[n]=Math.max(t[n],ar(r[n]));return t}function sM(e,t){let r=Sn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>Bl(o,bi(e[o],s===r.length-1?ar(e[o]):t[o])));return`${ln}${ir}${n.join(BI)}${Br}`}function Bl(e,t){if(e==="wid")return`${Hp}${t}${Up}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Cl}${Ol}${t.trimEnd()}${ln}${ir}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${nR}${n}`).replace("\u25B6",`${oR}\u25B6`).replace("\u2717",`${iR}\u2717`).replace(/░+/g,n=>`${sR}${n}`)+ir;let r=t.indexOf("=");return r>0?`${Dl}${t.slice(0,r+1)}${Fl}${t.slice(r+1)}${ir}`:t}function tf(e){return Object.freeze({none:!0,reason:e})}function Nl(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function ef(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=>ef(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=ef(o,t);return Object.freeze(r)}finally{t.delete(e)}}function iM(e){let t=ef(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function ps(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=iM(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var We={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function Tn(e,t=We){let r=xi(e,t.project),n=cs(e,t),o=Ml(e,t),s=pM(e,t.project,r),i=lM(e,t,n,r,s.prose),a=Qp({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:yM(i,aM(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||ar(f)<=t.maxWidth)break}let d=rt(l.line,t.maxWidth),c=l.detail==="workers"?gM(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?mM(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 of(e){let t=e.options??We,r=rt(Yp,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 aM(e,t){return e==="projects"?t.map(hM):[]}function lM(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${rf(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(gR(e,t))):n==="matched"||n==="unregistered"?(s.push(rf(r,r.length)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(rf(r,r.length)),s.push(wi)):s.push(o),t.mode!=="global"&&s.push(...Ri(e,t.project)),t.mode!=="global"&&(n==="matched"||n==="unregistered"||n==="name-only")&&s.push(gR(e,t)),s.push(fR(e));let a=dM(e);a!=null&&s.push(a);let l=cM(e);l!=null&&s.push(l),e.staleness.stale&&s.push(mR(e));let d=s.join(" ");return!i||ar(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,fR(e),e.staleness.stale?mR(e):null].filter(c=>c!=null).join(" ")}function rf(e,t){let r=e.filter(Ei).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function fR(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${_i}`}function dM(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${ds} quota spent`:t.posture==="reserved"?`${ls} quota band`:null}function cM(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 i=as(o.latest_refusal);return`${kr}${r} boot-refused \xD7${o.count} in ${uM(o.span_ms)}`+(i==null?"":` \u2014 ${i}`)}let s=Object.prototype.hasOwnProperty.call(t,"current_sender_attributed")?t.current_sender_attributed??null:n;return s==null?`${kr}${r}`:`${kr}${r} ${s.sender_class}`}function uM(e){return Nr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function pM(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return ps({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:tf("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 ps({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${nf(n.at)}`}`,repair:Nl()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${nf(n.registered_at)})`;return ps({state:`project unknown \u2014 ${t} lapsed at ${nf(n.at)}${o}`,repair:Nl()})}return ps({state:`project unknown \u2014 ${t} lapsed`,repair:Nl()})}return r==="unresolved"?ps({state:"project unknown \u2014 this directory resolved to no project",repair:tf("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function nf(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function gR(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?`${br(r)}/${br(n)}`:br(r)}function mR(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function fM(e,t,r,n){let o=r.map(s=>Bl(s,bi(e[s],t[s])));return rt(`${ln}${ir}${o.join(" ")}${Br}`,n)}function gM(e,t,r){let n=e.map(a=>$l(a,t,r)),o=Sn.filter(a=>n.some(l=>ar(l[a])>0)),s=[...o],i=hR(n,s);for(;s.length>1&&yR(i,s)>t.maxWidth;)s.pop(),i=hR(n,s);return{lines:n.map(a=>fM(a,i,s,t.maxWidth)),degraded:s.length<o.length||yR(i,s)>t.maxWidth}}function hR(e,t){let r=Object.fromEntries(Sn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],ar(n[o]));return r}function yR(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function mM(e,t){let r=as(e.log.last_line);return r==null?null:rt(` ${Jp} ${bR(e,t.mode)}: ${r}`,t.maxWidth)}function bR(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function hM(e){return`${e.project_label} ${e.worker_count}w ${br(e.observed_rss_bytes)}`}function yM(e,t,r){return[e,...t].join(r)}var Gl=1;async function fs(e,t){return await Va(e,t,"redskilled daemon")}function Pn(e){return Number.isInteger(e)&&e>=0}function RR(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.mode!=="report"&&t.mode!=="reap"||t.census===null||typeof t.census!="object"||Array.isArray(t.census)||t.actions===null||typeof t.actions!="object"||Array.isArray(t.actions))return!1;let r=t.census,n=t.actions;return r.version===1&&Pn(r.active_worker_units)&&Pn(r.daemon_held_workers)&&Pn(r.stamped_orphans)&&Pn(r.unstamped_suspects)&&Pn(r.dump_files)&&Pn(n.adopted)&&Pn(n.reaped)&&Pn(n.suspects)}function wR(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:Gl,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:wM(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:jb(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:_M(e)}}function wM(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:Qo(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 _M(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 _R(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||TM(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&$b(t.budget_accounting)&&(t.scope===void 0||c0(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(li))&&(t.demand===void 0||Qb(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(EM))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(vM))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(SM))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(xM))&&(t.upgrade===void 0||PM(t.upgrade))}function xM(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 EM(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 vM(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 SM(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 TM(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 PM(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||AM(t.major_hold))}function AM(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{spawnSync as XM}from"node:child_process";import{readdir as ZM,readFile as Jl,readlink as eL}from"node:fs/promises";import{join as vi,normalize as tL,sep as rL}from"node:path";var CM=e=>new Promise(t=>setTimeout(t,e));function OM(e){try{return process.kill(e,0),!0}catch{return!1}}function DM(e){try{return process.kill(-e,0),!0}catch(t){return t.code==="EPERM"?!0:OM(e)}}function FM(e,t){try{process.kill(-e,t)}catch{try{process.kill(e,t)}catch{}}}function IM(e,t){try{process.kill(-e,t)}catch{}}var MM={isAlive:DM,signal:FM,signalGroup:IM,sleep:CM};async function Wl(e,t={}){let r=t.io??MM,n=t.pollMs??100,o=t.graceTries??20,s=t.killTries??10;r.signal(e,"SIGTERM");for(let i=0;i<o;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}r.signal(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}if(!r.isAlive(e))return!0;r.signalGroup?.(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}return!r.isAlive(e)}import{spawnSync as Kl}from"node:child_process";import{existsSync as uf}from"node:fs";import{delimiter as UM,join as DR}from"node:path";import{join as xR}from"node:path";import{existsSync as LM}from"node:fs";import{createRequire as jM}from"node:module";var ER="redskilled-job-object.node",co=100;function gs(e){return{available:!1,reason:e}}function $M(e,t,r){return[xR(r,"prebuilds",`${e}-${t}`,ER),xR(r,"native","build","Release",ER)]}function vR(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return gs(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??NM(),o=e.exists??LM,s=$M(t,r,n),i=s.find(d=>o(d));if(i==null)return gs(`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??jM(import.meta.url),l;try{l=a(i)}catch(d){return gs(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return BM(l)?{available:!0,binding:l}:gs(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function BM(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function NM(){return new URL("..",import.meta.url).pathname}function SR(e){let t=e??{},r=[],n=GM(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<co?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 ${co}, 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 GM(e){return hi({budget:e})}var Hl=5,TR=19;function sf(e){return{available:!1,reason:e}}var WM="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 AR(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=Hl;else if(r.cpu_weight<co){let a=Math.round(TR*(co-r.cpu_weight)/co);o=Math.min(TR,Math.max(Hl,a))}else o=Hl,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${co}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${Hl}`);let s=PR(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=PR(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:WM,...n.length>0?{note:n.join("; ")}:{}}}function af(e){let{limits:t}=e,r=["ulimit -c 0"];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 ${HM(e.nice)} -n ${t.nice} "$@"`:'exec "$@"'),["-c",r.join(`
96
+ `),"--",e.command,...e.args]}function CR(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 lf(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 PR(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function HM(e){return`'${e.replace(/'/g,"'\\''")}'`}var FR="REDSKILLED_PLACEMENT",ql="red-worker",df="/bin/sh";function IR(e=process.env,t=process.platform){let r=sf(`POSIX shell placement is unavailable on platform=${t}`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:vR({platform:t}),posix:r};let n=gs(`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:OR(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&uf(DR(o,"systemd","private"));return{platform:t,systemdRun:$R("systemd-run",e),userSession:s,jobObjects:n,posix:OR(e)}}function OR(e){return uf(df)?{available:!0,shell:df,nice:$R("nice",e)}:sf(`no POSIX shell was found at ${df}, so there is nothing to apply rlimits or priority in`)}function MR(e=process.env){let t=(e[FR]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function qM(e,t,r=ql){return LR(e,t,r).replace(/\.service$/,"")}function LR(e,t,r=ql){return`${cf(r,"red-worker",24)}-${cf(e,"project",32)}-${cf(t,"worker",32)}.service`}function jR(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=>{let p=e.probes.posix,g=e.probes.platform==="linux"&&p.available,f=e.probes.platform==="linux"&&!p.available?`${u}; core dumps are not capped because ${p.reason}`:u;return{isolated:!1,backend:"none",command:g?p.shell:e.command,args:g?af({nice:null,command:e.command,args:t}):t,cwd:e.workspacePath,warning:f,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Ul(e,{scope:null,memory_ceiling:n,scope_degradation:f}),...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 ${FR}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return VM(e,t,r,n,o,i);if(e.probes.platform==="darwin")return KM(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=LR(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`,"--property=LimitCORE=0"];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}`),r.max_processes!=null&&l.push(`--property=TasksMax=${r.max_processes}`);let d=Ul(e,{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=lf(e.budget==null?void 0:{...e.budget,max_processes:void 0});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 KM(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=AR(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=CR(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:af({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Ul(e,{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 VM(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=SR(r),l=qM(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:Ul(e,{scope:l,memory_ceiling:n,scope_degradation:null}),...zM(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,lf(e.budget))}}function Ul(e,t){return Uh(t,e.bornAt==null?void 0:{worker_id:e.workerId,born_at:e.bornAt})}function zM(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function $R(e,t){for(let r of(t.PATH??"").split(UM)){if(!r)continue;let n=DR(r,e);if(uf(n))return n}return null}function cf(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function pf(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}}async function BR(e){let t=e.workers.filter(n=>{if(e.reattached_worker_ids.has(n.worker_id))return!0;let o=Date.parse(n.started_at);return!Number.isFinite(o)||e.now_ms-o>=e.grace_ms});if(t.length===0)return[];let{dead:r}=await pf(t,e.probe);for(let n of r)await e.on_dead(n);return r}var NR=3e4;function GR(e){return e.unit!=null&&e.unit!==""?WR(e.unit):Ke(e.pid)}function WR(e){let t=Kl("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var JM="REDSKILLED_UNIT_DISCOVERY",Vl="(unowned)";function HR(e){let t=Kl("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 YM(e=process.env){let t=(e[JM]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function ff(e,t,r=process.env){return YM(r)&&e===t}function UR(e=ql){let t=Kl("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(`
97
+ `).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function qR(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:Vl,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 KR(e){return e.project_label.trim()!==""?e:{...e,project_label:Vl,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 VR(e,t=QM){if(e.unit!=null&&e.unit!==""){try{t.stopUnit(e.unit)}catch{}if(!t.unitActive(e.unit)&&!t.leaderAlive(e.pid))return!0}return t.killTree(e.pgid??e.pid)}var QM={stopUnit:e=>{Kl("systemctl",["--user","stop",e],{stdio:"ignore"})},unitActive:WR,leaderAlive:Ke,killTree:Wl};var nL=10*6e4,oL=30*6e4,zl;function sL(){if(zl!==void 0)return zl;let e=XM("getconf",["CLK_TCK"],{encoding:"utf8"}),t=Number((e.stdout??"").trim());return zl=e.error==null&&e.status===0&&Number.isFinite(t)&&t>0?t:null,zl}async function iL(e,t){return await t.read_starttime(e.pid)!==e.starttime?{reaped:!1,reason:"leader-starttime-changed"}:(await t.after_verified?.(),await t.kill_group(e.pgid)===!0?{reaped:!0,reason:"orphan-reaped"}:{reaped:!1,reason:"group-survived"})}var aL=5*6e4;function lL(e=process.env){let t=(e.REDSKILLED_ORPHAN_REAPER??"").trim().toLowerCase();return t==="off"?"off":t==="report"?"report":"reap"}async function dL(e,t="/proc"){try{return vl(await Jl(vi(t,String(e),"stat"),"utf8"))?.starttime??null}catch{return null}}async function cL(e={}){let t=e.proc_root??"/proc";try{let r=new Set(e.active_worker_units??[]),n=e.clock_ticks_per_second??sL();if(n==null||!Number.isFinite(n)||n<=0)return[];let o=Number((await Jl(vi(t,"uptime"),"utf8")).trim().split(/\s+/)[0]);if(!Number.isFinite(o)||o<0)return[];let s=await ZM(t),i=[];for(let a of s){if(!/^\d+$/.test(a))continue;let l;try{l=vl(await Jl(vi(t,a,"stat"),"utf8"))}catch{continue}if(l==null||l.ppid!==1&&r.size===0)continue;let d=new Map,c;try{d=uL(await Jl(vi(t,a,"environ"),"utf8"))}catch{}let u=ms(d.get("RED_WORKER_SCOPE")),p=u!=null&&r.has(u);if(l.ppid!==1&&!p)continue;try{c=await eL(vi(t,a,"cwd"))}catch{}let g=ms(d.get("RED_WORKER_ID")),f=ms(d.get("RED_WORKER_BORN_AT"));i.push({pid:l.pid,ppid:l.ppid,pgid:l.pgid,sid:l.sid,starttime:l.starttime,age_ms:Math.max(0,(o-Number(l.starttime)/n)*1e3),...g==null?{}:{worker_id:g},...f==null?{}:{born_at:f},...p?{unit:u}:{},...c==null?{}:{cwd:c},under_workers_lane:c!=null&&pL(c)})}return i}catch{return[]}}function uL(e){let t=new Map;for(let r of e.split("\0")){let n=r.indexOf("=");n<=0||t.set(r.slice(0,n),r.slice(n+1))}return t}function ms(e){let t=e?.trim();return t==null||t===""?void 0:t}function pL(e){let t=tL(e).split(rL).filter(Boolean);for(let r=0;r<t.length-2;r+=1)if(!(t[r]!==".red"||t[r+1]!=="tmp"))return["workers","go-workers","scout-workers"].includes(t[r+2]??"");return!1}function fL(e){let t=gL(e);return{census:{version:1,active_worker_units:new Set(e.active_worker_units).size,daemon_held_workers:new Set(e.held_worker_ids).size,stamped_orphans:t.filter(r=>r.kind==="reap").length,unstamped_suspects:t.filter(r=>r.kind==="suspect").length,dump_files:new Set(e.dump_files).size},candidates:t}}function gL(e){let t=[];for(let r of e.processes){if(!Number.isFinite(r.age_ms)||r.age_ms<0)continue;let n=r.worker_id?.trim();if(n==null||n===""){r.ppid===1&&r.under_workers_lane&&r.age_ms>=oL&&t.push({kind:"suspect",process:r,detail:`unstamped process ${r.pid} was reparented under a workers lane and is at least 30 minutes old; it will never be signalled`});continue}if(!(r.pid!==r.pgid||e.held_worker_ids.has(n))){if(e.live_birth_ids.has(n)){t.push({kind:"adopt",process:r,detail:`stamped Worker ${n} has a live birth but no daemon holder`});continue}r.age_ms<nL||t.push({kind:"reap",process:r,detail:`stamped Worker ${n} has no live birth and is at least 10 minutes old`})}}return t}var zR={adopted:0,reaped:0,suspects:0};function mL(e,t){let r=new Set(t),n=new Map,o=new Map,s=!1;for(let i of e){let a=ms(i.worker_id),l=ms(i.born_at),d=ms(i.unit);if(a==null||l==null||d==null||i.pid!==i.pgid||!r.has(d))continue;let c=n.get(d),u=o.get(a);if(c!=null&&(c.worker_id!==a||c.born_at!==l)||u!=null&&u!==d){s=!0;continue}n.set(d,i),o.set(a,d)}return{births:[...n.values()],complete:!s&&n.size===r.size}}function JR(e){let t=e.interval_ms??aL,r=e.mode??lL(),n=e.read_starttime??dL,o=e.kill_group??Wl,s=e.report??(g=>process.stderr.write(`redskilled: ${g}
98
+ `)),i,a=!1;async function l(){let g=[],f=!0;try{g=await Promise.resolve(e.active_worker_units?.()??[])}catch{f=!1}let y;try{y=e.census==null?await cL({active_worker_units:g}):await e.census()}catch{y=[]}let m=[],w=new Set,_=!0;if(y.length>0)try{m=await e.live_births()}catch{let F=mL(y,g);if(_=f&&F.complete,_){m=F.births.map($=>gf($,e.clock));for(let $ of m)w.add($.worker_id);s(`orphan birth proof re-derived from ${m.length} active stamped Worker unit(s); the event lane can be reseeded before orphan teardown`)}else s("orphan census withheld: the event lane and active unit census could not prove which stamped Workers still have live births")}let O=new Map(m.map(F=>[F.worker_id,F])),T=await Promise.resolve(e.dump_files?.()??[]).catch(()=>[]);return{selected:fL({processes:y,active_worker_units:g,held_worker_ids:new Set(e.held_worker_ids()),live_birth_ids:new Set(O.keys()),dump_files:T}),liveBirths:O,recoveredBirthIds:w,safeToAct:_}}async function d(){return e.authorized?(await l()).selected.census:{version:1,active_worker_units:0,daemon_held_workers:0,stamped_orphans:0,unstamped_suspects:0,dump_files:0}}async function c(){if(!e.authorized||r==="off"||a)return{...zR};a=!0;try{let{selected:g,liveBirths:f,recoveredBirthIds:y,safeToAct:m}=await l();if(!m)return{...zR};let w=g.candidates,_={adopted:0,reaped:0,suspects:0};for(let O of w){if(r==="report"){O.kind==="suspect"&&(_.suspects+=1),s(`${O.detail}; report mode withheld adoption and signalling`);continue}if(O.kind==="suspect"){_.suspects+=1,s(O.detail);continue}if(O.kind==="adopt"){let G=y.has(O.process.worker_id);await e.adopt(gf(O.process,e.clock,G?void 0:f.get(O.process.worker_id)),G,G?`adopted from an active unit after event-lane birth proof was unavailable: ${O.detail}`:O.detail),_.adopted+=1,s(O.detail);continue}let T=gf(O.process,e.clock),F=!1,$=await iL(O.process,{read_starttime:n,after_verified:async()=>{F=!0,await e.adopt(T,!0,`adopted stamped orphan before group teardown: ${O.detail}`),_.adopted+=1},kill_group:o});if(!$.reaped||!F){F&&$.reason==="group-survived"&&await e.record_reaped(T,`group-survived: process group ${O.process.pgid} survived orphan teardown; ${O.detail}`),s(`${O.detail}; ${$.reason}`);continue}await e.record_reaped(T,`orphan-reaped: ${O.detail}`),_.reaped+=1}return _}finally{a=!1}}async function u(g){let f=await d();return{version:1,mode:g?"report":"reap",census:f,actions:g?{adopted:0,reaped:0,suspects:f.unstamped_suspects}:await c()}}function p(){i!=null||t<=0||r==="off"||!e.authorized||(i=setInterval(()=>void c().catch(()=>{}),t),i.unref())}return{sweep:c,census:d,reap:u,arm:p,stop:()=>{i!=null&&clearInterval(i),i=void 0}}}function gf(e,t,r){let n=Date.parse(t()),o=Number.isFinite(n)?new Date(Math.max(0,n-e.age_ms)).toISOString():t(),{unit:s,...i}=r??{};return{...i,worker_id:e.worker_id,project_label:r?.project_label??Vl,pid:e.pid,pgid:e.pgid,proc_start_time:e.starttime,started_at:r?.started_at??e.born_at??o,workspace_path:e.cwd??r?.workspace_path??"",isolated:e.unit!=null,...e.unit==null?{}:{unit:e.unit},warnings:[...r?.warnings??[],r==null?"adopted by the orphan reaper from the host process table: no daemon holder or live birth remained, so the owning project and budget are unknown":"adopted by the orphan reaper from a live event-lane birth whose daemon holder was missing; the process-table identity now anchors it"]}}import{randomUUID as hL}from"node:crypto";import{mkdir as yL,readFile as bL,rename as kL,writeFile as RL}from"node:fs/promises";import{dirname as wL}from"node:path";function YR(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await bL(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=_L(s);return xL(i)?i.registrations:[]}async function o(s){await yL(wL(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${hL()}.tmp`,a={version:1,registrations:[...s]};await RL(i,`${tt(a)}
99
+ `,{encoding:"utf8",mode:384}),await kL(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 _L(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return er(t)}catch{return null}}}function xL(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(li)}import{randomInt as TL}from"node:crypto";import{spawn as PL}from"node:child_process";import{appendFileSync as AL,mkdirSync as CL,readFileSync as OL}from"node:fs";import{dirname as DL}from"node:path";import{delimiter as QR,dirname as EL}from"node:path";function vL(e,t=QR){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function SL(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=EL(t);return r===""||r==="."?null:r}function XR(e,t=process.execPath,r=QR){let n=vL(e,r),o=SL(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var hs=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},lr=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},mf="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",ZR=4,FL=mf.length**ZR;function Si(e,t=TL){let r=new Set(e);for(let n=0;n<FL;n+=1){let o="h";for(let s=0;s<ZR;s+=1)o+=mf[t(mf.length)];if(!r.has(o))return o}throw new hs("redskilled exhausted the host Worker id space")}function IL(e){if(e==null||e.trim()==="")return{ready:!1};let t=DL(e);try{return CL(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})`}: ${hf(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function ML(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{AL(t,ct().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
100
+ `);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 LL(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 hs(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new hs("redskilled worker spec args must be an array")}function jL(e){if(e==null)throw new lr("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new lr(e.reason,e)}function ew(e){let{spec:t,admission:r}=e;jL(r),LL(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||Si(e.liveWorkerIds??[]),i=o(),a=e.probes??IR(n),l=ob(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),d=e.openLog===!1?{ready:!1}:IL(l),c=d.ready,u={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:XR(t.env?.PATH??n.PATH,e.execPath??process.execPath)},p=jR({workerId:s,bornAt:i,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:u,enabled:e.enabled??MR(n),probes:a,pipeOutput:c}),f=(e.spawnFn??PL)(p.command,p.args,{...p.cwd!=null?{cwd:p.cwd}:{},detached:!0,stdio:c?["ignore","pipe","pipe"]:"ignore",env:p.backend==="transient-unit"?{...n}:{...n,...u,...p.environment}});if(c&&l!=null&&ML(f,l),f.pid==null)throw f.once("error",()=>{}),new hs(`redskilled could not spawn ${JSON.stringify(p.command)} for worker ${s}`);let y=$L(f.pid),m=p.job!=null?BL(p,a,f.pid):null;f.once("error",()=>{}),f.once("exit",(T,F)=>{try{m?.job?.close()}catch{}e.onExit?.(s,T,F)}),f.unref();let w=p.job!=null?m?.job!=null:p.isolated,_=[p.warning,m?.warning,p.budgetWarning,d.warning].filter(T=>T!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:f.pid,pgid:f.pid,...y==null?{}:{proc_start_time:y},started_at:i,workspace_path:t.workspace_path,...c&&l!=null?{log_path:l}:{},isolated:w,...p.unit!=null?{unit:p.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(p.budget).length>0?{applied_budget:p.budget}:{},...p.memoryCeiling!=null?{memory_ceiling:p.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:_},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:_,plan:p,child:f,...m?.job!=null?{job:m.job}:{}}}function $L(e){try{let t=OL(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");if(r<0)return null;let n=t.slice(r+1).trim().split(/\s+/)[19];return n!=null&&/^\d+$/.test(n)?n:null}catch{return null}}function BL(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: ${hf(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)}: ${hf(i)}. ${o}`}}return{job:s}}function hf(e){return e instanceof Error?e.message:String(e)}async function NL(e){let t=Date.now();for(;;){if(!e.waiting())return;let r=e.deadlineMs-(Date.now()-t);if(r<=0){e.expire();return}await new Promise(n=>setTimeout(n,Math.min(r,10)))}}function tw(e){let t=new Set,r=new Set;function n(o,s){let i=e.registration(s.project_label)?.hooks?.[o];if(i!=null)try{let a=el(i,{worker_id:Si(e.liveWorkerIds()),slot:0,workspace_path:s.workspace_path},{project_label:s.project_label}),l=e.admit(a);if(!l.admitted)throw new lr(l.reason,l);let d=e.start(a,l);if(t.add(d.worker_id),i.mode==="sync"){let c=i.deadline_ms,u=NL({deadlineMs:c,waiting:()=>t.has(d.worker_id),expire:()=>{e.recordExpiry(s.project_label,`project ${JSON.stringify(s.project_label)} sync ${o} hook exceeded its declared ${c}ms deadline; redskilled stopped waiting and proceeded`)}});r.add(u),u.finally(()=>r.delete(u))}}catch(a){let l=a instanceof Error?a.message:String(a);e.refuse(s.project_label,`project ${JSON.stringify(s.project_label)} registered an async ${o} hook, but redskilled refused it before launch: ${l}`)}}return{track:o=>t.add(o),onEvent(o,s){let i=t.has(s.worker_id);!i&&Yo.includes(o)&&n(o,s),i&&(o==="worker-death"||o==="worker-budget-kill")&&t.delete(s.worker_id)},async waitForSettled(){for(;r.size>0;)await Promise.all(r)}}}var GL=24e4;var vK=20*6e4;function nw(e,t){if(!Number.isFinite(t))return 0;let r=0;for(let n of e)Qo(n,t)==="renewing"&&(r+=1);return r}function ow(e){let t=rw(e.attendedMs,ss),r=rw(e.unattendedMs,GL);return e.attended?t:Math.max(t,r)}function sw(e){return e.pendingWindowMs==null||!Number.isFinite(e.pendingWindowMs)||!Number.isFinite(e.cadenceMs)?!1:e.cadenceMs<e.pendingWindowMs}function rw(e,t){return e!=null&&Number.isFinite(e)&&e>0?e:t}function iw(e){let t,r=null;function n(){return ow({attended:nw(e.registrations(),Date.parse(e.clock()))>0,attendedMs:e.attendedMs})}function o(s){e.stopping()||(r=s,t=setTimeout(()=>{t=void 0,r=null,e.poll().catch(()=>{}).finally(()=>{e.stopping()||o(n())})},s),t.unref())}return{arm(){e.stopping()||t!=null||!e.armed||e.attendedMs<=0||(e.poll().catch(()=>{}),o(n()))},cadenceMs:n,nudge(){if(e.stopping()||t==null)return;let s=n();sw({pendingWindowMs:r,cadenceMs:s})&&(clearTimeout(t),t=void 0,o(s))},stop(){t!=null&&clearTimeout(t),t=void 0,r=null}}}async function aw(e){let t=e.explicit?.projects??WL(e.registrations);if(t.length===0)return null;let r=e.explicit?.transport??e.resolveHostTransport();return r==null?null:await jk({projects:t,hostTokenRef:e.explicit?.hostTokenRef??"host",transport:r,...e.explicit?.closedWindowMs==null?{}:{closedWindowMs:e.explicit.closedWindowMs},now:e.now,...e.previous===void 0?{}:{previous:e.previous}})}function WL(e){return[...e].flatMap(t=>{let r=t.queue_poll;return r==null?[]:[{project_label:t.project_label,owner:r.owner,name:r.repo,...r.counter_labels==null?{}:{queue_labels:r.counter_labels}}]}).sort((t,r)=>t.project_label.localeCompare(r.project_label))}var Ai=50,bf=15e3,DK=2*bf;function HL(e,t=Ai){if(kf(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 dw(e,t={}){let r=t.batchSize??Ai;if(kf(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(`
101
+ `),aliases:n}}function cw(e,t){let r=Pi(t),n=Pi(r.data),o=Array.isArray(r.errors)?r.errors.map(Pi):[],s=zL(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=YL(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=>JL(u.path,a));return s.exhausted||fw(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: ${yf(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function UL(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:Ai,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function uw(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:Ai,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 pw(e){if(e.projects.length===0)return UL(e.now);if(e.transport.conditionalList)return await KL(e);let t=e.batchSize??Ai,r=HL(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=dw(s,{batchSize:t});try{let a=await e.transport(i.query),l=cw(i,a);n.push(...l.projects),o=Ti(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=Ti(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 qL={key:"redskilled queue poll",budget:"rest"};async function KL(e){kf(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=dw([s],{batchSize:1}),d=cw(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=Ti(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:qL});o+=i.requestCount;let a=i.data.filter(l=>!gw(l.pull_request)).length;n=Ti(n,VL(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=oo(i);n=Ti(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 kf(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 Ti(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 VL(e){let t=lw(e,"x-ratelimit-remaining"),r=lw(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function lw(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 zL(e,t){let r=Pi(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(fw)||n===0}}function fw(e){return e==null?!1:yf(e.type)==="RATE_LIMITED"||/rate limit/i.test(yf(e.message))}function JL(e,t){return Array.isArray(e)&&e.includes(t)}function YL(e){let t=Pi(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Pi(e){return gw(e)?e:{}}function gw(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yf(e){return typeof e=="string"?e:""}function mw(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(QL,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=XL?Math.max(t,3e4):o<=ZL?Math.max(t,2e4):t}var QL=1e5,XL=250,ZL=1e3;var ej={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},tj=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],rj=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function hw(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...ej};for(let n of tj){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of rj){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{execFile as nj}from"node:child_process";var oj="refs/heads/red-trunk";function Rf(e){return`${e.workspace_path}\0${e.trunk.remote}\0${e.trunk.branch}`}function yw(e,t,r){let n=r instanceof Error?r.message:String(r);return{...e,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(t.trunk.remote)} could not refresh branch ${JSON.stringify(t.trunk.branch)}: ${n}`}}function Yl(e,t){return new Promise((r,n)=>{nj("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function bw(e){await Yl(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Yl(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 Yl(e.workspace_path,["update-ref",oj,t]),t}async function kw(e){let t=await Yl(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 sj,stat as ij}from"node:fs/promises";var aj=16*1024;async function Rw(e,t=aj){let r;try{r=(await ij(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await sj(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 lj(o)}function lj(e){let t=e.split(`
102
+ `);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 Oj}from"node:child_process";import{existsSync as Dj,readdirSync as Fj}from"node:fs";import{delimiter as Ij,dirname as Gw,isAbsolute as Mj,join as Zl,resolve as Lj}from"node:path";var dj="<version>";function An(e,t=[],r){let n=r&&r.trim().length>0?r.trim():dj;return[`npx -y -p ${eo}@${n}`,e,...t].join(" ")}import{existsSync as cj,mkdirSync as uj,readFileSync as pj,renameSync as fj,statSync as gj,writeFileSync as mj}from"node:fs";import{homedir as _w}from"node:os";import{basename as ww,join as xw,resolve as Ql}from"node:path";function Vt(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 wf(e,t){let r=Vt(e),n=Vt(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var UK=4*60*60*1e3;function _f(e=_w()){return xw(jt(e),"bundles")}function hj(e){return`redskilled-${e}.bundle.min.mjs`}var yj=/^redskilled-(.+)\.bundle\.min\.mjs$/;function uo(e,t={}){let r=e.entry;if(r==null||!/^redskilled(-.+)?\.bundle\.min\.mjs$/.test(ww(r)))return e;let n=yj.exec(ww(r))?.[1],o=t.version??n;if(o==null||Vt(o)===null||/[-+]/.test(o))return e;let s="homeDir"in t?t.homeDir:_w();if(s==null)return e;let i=t.exists??cj,a=_f(s),l=xw(a,hj(o));if(Ql(r)===Ql(l))return e;try{if(!gj(jt(s)).isDirectory())return e;if(!i(l)){uj(a,{recursive:!0,mode:448});let d=`${l}.${process.pid}.tmp`;mj(d,pj(r),{mode:493}),fj(d,l)}}catch{return e}return{...e,entry:l,args:e.args.map(d=>Ql(d)===Ql(r)?l:d)}}function Ci(e){return e.HOME?.trim()||void 0}on();on();import{spawnSync as bj}from"node:child_process";import{randomUUID as Ew}from"node:crypto";import{mkdir as kj,rm as Rj,writeFile as wj}from"node:fs/promises";import{existsSync as _j,mkdirSync as xj,readFileSync as Ej,renameSync as vw,writeFileSync as Sw}from"node:fs";import{homedir as vj}from"node:os";import{dirname as Tw,isAbsolute as Pw,join as Oi}from"node:path";var dr="redskilled.service",xf="REDSKILLED_SUPERVISED",Sj="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function Tj(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||Oi(e.HOME?.trim()||vj(),".config");return Oi(t,"systemd","user")}function ys(e=process.env){return Oi(Tj(e),dr)}function Aw(e,t={}){let r=t.env??process.env,n=uo(Qa(t.override??{},t.entryLookup??{}),{homeDir:Ci(r)}),o=[...n.args,...bn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:dr,unitPath:ys(r),command:n.command,args:o,text:Pj(n.command,o,e)}}function Pj(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${Sj}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple","LimitCORE=0",`ExecStart=${[e,...t].map(Ef).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${xf}=1"`,`Environment="REDSKILLED_SESSION=${Iw(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
103
+ `)}function Cw(e=process.env){return Oi(`${ys(e)}.d`,"10-current-entry.conf")}function Ow(e){return Oi(`${e}.d`,"10-current-entry.conf")}function Dw(e,t,r={}){if(!Pw(e.command))throw new Error(`redskilled refused to write the relative command "${e.command}" into the supervisor drop-in: systemd resolves ExecStart with the manager's PATH, so a relative command dies with 203/EXEC on hosts whose node comes from a version manager (#3554)`);let n=Cw(r.env??process.env),o=`${n}.${process.pid}.${Ew()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...bn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(Ef).join(" ")}`,""].join(`
104
+ `);xj(Tw(n),{recursive:!0,mode:448}),Sw(o,i,{encoding:"utf8",mode:384}),vw(o,n);let a=(r.run??Di)(["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 Fw(e={}){let t=Cw(e.env??process.env),r;try{r=(e.readFile??(u=>Ej(u,"utf8")))(t)}catch{return{path:t,status:"absent"}}let n=Aj(r),o=n?.[0];if(n==null||o==null)return{path:t,status:"unparsed"};if(Pw(o))return{path:t,status:"absolute",command:o};if(e.socketPath==null||!n.includes(e.socketPath))return{path:t,status:"foreign",command:o};let s=e.execPath??process.execPath,i=e.argv??process.argv.slice(1),a=i.length===0?void 0:uo({command:s,args:i,entry:i[0]},{homeDir:Ci(e.env??process.env),...e.version==null?{}:{version:e.version}}),d=["[Service]","ExecStart=",`ExecStart=${[s,...a?.args??i].map(Ef).join(" ")}`,""].join(`
105
+ `),c=`${t}.${process.pid}.${Ew()}.tmp`;return Sw(c,d,{encoding:"utf8",mode:384}),vw(c,t),(e.run??Di)(["systemctl","--user","daemon-reload"]),{path:t,status:"healed",command:o}}function Aj(e){let t;for(let r of e.split(`
106
+ `)){let n=r.trim().startsWith("ExecStart=")?r.trim().slice(10).trim():void 0;n&&(t=n.split(/\s+/).map(o=>o.startsWith('"')&&o.endsWith('"')&&o.length>1?o.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\"/g,'"'):o))}return t}function Ef(e){return/[\s"'\\$%]/.test(e)?`"${Iw(e)}"`:e}function Iw(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function Mw(e,t={}){let r=t.writeFile??Cj,n=t.removeFile??$w,o=t.run??Di,s=[];return await r(e.unitPath,e.text),await n(Ow(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Xl("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Xl("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function Lw(e={}){let t=e.removeFile??$w,r=e.run??Di,n=ys(e.env??process.env),o=[Xl("disable",r,["systemctl","--user","disable","--now",dr])];return await t(n),await t(Ow(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Xl("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function jw(e={}){let t=e.exists??_j,r=e.run??Di,n=ys(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",dr]).status===0,i=o&&r(["systemctl","--user","is-active",dr]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${dr} is installed and enabled but inactive`,fix:`systemctl --user restart ${dr}`}]:[];return{unitName:dr,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Xl(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 Cj(e,t){await kj(Tw(e),{recursive:!0}),await wj(e,t,{encoding:"utf8",mode:420})}async function $w(e){await Rj(e,{force:!0})}function Di(e){let t=bj(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 Bw=75,Ww=9e5,Nw="redskilled-replacement-entry-unresolved",jj="REDSKILLED_NO_REGISTRY_PROBE",Hw="REDSKILLED_BORN_BY_REPLACEMENT";function Uw(e=process.env){return e[Hw]==="1"}function qw(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function Kw(e){let t=e.running.trim();if(Fi(t))return null;let r=e.newest?.trim()??"",n=Vt(r),o=Vt(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:$j(n.major,e.supervised)}}function $j(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: ${An("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 Vw(e){let t=e.running.trim();if(Fi(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||Vt(r)===null?{act:"hold",reason:"published-unknown"}:wf(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function Fi(e){let t=e.trim();return Vt(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function td(e=process.env){return e[xf]==="1"}var ed=class extends Error{code=Nw;searched;constructor(t,r){super(`${Nw}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled or resolves no absolute npx
106
107
  searched:
107
108
  ${r.map(n=>` ${n}`).join(`
108
- `)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function bj(e,t={}){let r=t.env??process.env,n=t.exists??uj,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=Si(r),d=[];l!=null&&d.push([zl(ff(l),i),"stable-home"]),d.push([zl(Ua(r),i),"bundle-cache"]),s&&d.push([zl(Dw(mj(s)),i),"caller-sibling-bundle"]);for(let[u,p]of d)if(a.push(u),n(u))return{...lo({command:o,args:[u],entry:u},{version:e,homeDir:l,exists:n}),version:e,source:p,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new Jl(e,a);let c=kj(r,n,o,a);if(c==null)throw new Jl(e,a);return{command:c,args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function kj(e,t,r,n){let o=e.RED_SKILLS_NPX?.trim();if(o&&gj(o))return o;let s=process.platform==="win32"?[o||"npx.cmd","npx.cmd","npx.exe","npx"]:[o||"npx"],i=[Dw(r),...(e.PATH??"").split(fj).filter(a=>a.length>0)];for(let a of new Set(s))for(let l of i){let d=zl(l,a);if(n.push(d),t(d))return d}return null}function Bw(e,t={},r,n){let s=(t.resolveEntry??(i=>bj(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>xw(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 Nw(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??wj)(Cw),{...e,exitCode:Cw};let o=[...e.entry.args,...bn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??Rj(n.env))(e.entry,o),e}function Rj(e){return(t,r)=>{let n=cj(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[Iw]:"1"}});n.on("error",()=>{}),n.unref()}}function wj(e){process.exitCode=e,process.exit(e)}async function Gw(e,t=process.env,r=_j){let n=Hw(t),o=Uw(e,t);if(t[hj]==="1")return{version:o,newest:n};let s=qt(e)===null?"0.0.0":e;try{let i=await Iy({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function Ww(e,t=process.env,r){let n=r??hf;return{version:Uw(e,t,n),newest:Hw(t,n)}}function Hw(e=process.env,t=hf){return Kw(qw(e,t))}function Uw(e,t=process.env,r=hf){let n=qt(e.trim())?.major;return n===void 0?null:Kw(qw(t,r).filter(o=>qt(o)?.major===n))}function qw(e,t){let r=[];for(let n of t(Ua(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||qt(o)===null||r.push(o)}return r}function Kw(e){let t=null;for(let r of e)(t===null||pf(r,t)>0)&&(t=r);return t}function hf(e){try{return pj(e)}catch{return[]}}async function _j(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 xj,readFile as Ej,rename as vj,rm as yf,writeFile as Vw}from"node:fs/promises";import{randomUUID as Sj}from"node:crypto";import{dirname as Tj}from"node:path";var Ql=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function ms(e){let t;try{t=await Ej(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=Pj(t);return Aj(r)?r:void 0}var zw;function Yw(){return zw??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},zw}function Qw(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){return await ms(e)}async function i(l){let d=`${e}.${l.pid}.${Sj()}.tmp`;await Vw(d,Jw(l),{encoding:"utf8",mode:384}),await vj(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 xj(Tj(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await Vw(e,Jw(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 yf(e,{force:!0}),d=!0;continue}if(bf(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await yf(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!bf(d,l))throw new Ql(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!bf(d,l))throw new Ql(e);return await yf(e,{force:!0}),!0}}}function bf(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function Jw(e){return`${ht(e)}
109
- `}function Pj(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Mr(t)}catch{return null}}}function Aj(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 e_(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Vo,o=e.clock??(()=>new Date().toISOString()),s=e.launch??qR,i=e.refreshTrunk??dw,a=e.countBaseMovement??cw,l=e.ceiling??rl();e.repositoryActivity!=null&&vp(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??Yw(),c=e.leaseStore??Qw(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??nl(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??ai(t.machineClaimPath,p,{clock:o});await Dj(Ij(t.socketPath),{recursive:!0,mode:448});let[f,b]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),h=Date.parse(o()),w=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&b!=null&&f.pid===b.pid&&f.start_time===b.start_time&&f.socket_path===t.socketPath&&b.socket_path===t.socketPath&&Number.isFinite(h)&&Number.isFinite(w)&&h-w>=Hy&&await Su(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:b.pid,startTime:b.start_time,uid:b.uid}).catch(()=>!1);let L=await g.claim(u);if(!L.claimed)throw L.claim?.socket_path===t.socketPath?new Zt(t.socketPath):new an(g.claimPath,L.reason,L.claim);let A=await c.acquire(d);if(!A.acquired)throw await g.release(u).catch(()=>{}),new Zt(t.socketPath,A.lease);let M;try{M=await gb(t.socketPath,async()=>{let[m,P]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return m!=null&&m.pid!==d.pid&&Ye(m.pid)?!0:P!=null&&P.socket_path===t.socketPath&&P.pid!==u.pid&&Ye(P.pid)})}catch(m){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),m}let N=o(),W=e.eventLane??nb(t.eventLanePath),H=e.registrationIntentStore??GR(t.registrationIntentPath),F=e.liveness??CR,U=e.livenessGraceMs??AR,q=e.stopWorker??LR,oe=e.unitInventory??(()=>of(t.machineClaimPath,t.machineClaimPathOfThisHost)?FR():[]),ae=e.unitMainPid??DR,se=e.treeSampler??yk,X=e.readLogTail??uw,pe=e.sampleMs??Wy,Ce=e.leaseRenewMs??yu,Ee=e.registrationSustainMs??Uy,ke=e.publishedVersion??(m=>Gw(m)),J=e.replaceCheckMs??Fw,ce=e.publishedProbeTimeoutMs??Ny,_e=e.localPublishedEvidence??(m=>Ww(m,e.replacementIO?.env??process.env)),Oe=e.bornByReplacement??Mw(),ve=e.replaceBootCheckMs??Gy,Re=e.supervised??Yl(),Se=e.replacementIO??{},me=e.repositoryActivity,ie=me?.intervalMs??ns,xe=e.githubBalance,Fe=e.queueDiscovery,rt=Fe?.transport??me?.transport,zt=Fe?.unconfiguredReason??Ky,mn=Fe?.intervalMs??df,hn=e.demandMs??15e3,Ao=e.demandBackoffMs??3e4,le=new Map,Jt=new Map,pt=new Set,nt=new Map,Pt=new Map,ft=[],bt=[],At=e.deaths===void 0?void 0:[...e.deaths],xt=await H.read().catch(()=>[]),Te=new Map,Ve=new Map,Ct=KR({registration:m=>Te.get(m),liveWorkerIds:()=>le.keys(),admit:Do,start:(m,P)=>Gs(m,{admission:P,hook:!0}).worker,refuse:(m,P)=>void W.recordDemandRefusal({ts:o(),projectLabel:m,detail:P}).catch(()=>{}),recordExpiry:(m,P)=>void W.recordDemandRefusal({ts:o(),projectLabel:m,detail:P}).catch(()=>{})}),Q=Promise.resolve();function O(m){let P=Q.then(async()=>{await Ct.waitForSettled();let $=await m();return await Ct.waitForSettled(),$});return Q=P.then(()=>{},()=>{}),P}let R=new Set,I={},j=null,G=null,V=null,Z=!1,we=0,je=null,Me="none",lr=null,jn=null,dr=null,Pr=null,gt=null,$n=null,ee=[],he=[],kt=new Map((e.orphanedRegistrations??[]).map(m=>[m.project_label,m])),It=null,Xe={},Ar=!1,Yr,Bn,Nn,Gn,Be,Wn,Co,Qr,cr,mt=!1,Ue=!1,Xr=null,ur=QR({poll:()=>Yg(),registrations:()=>Te.values(),clock:o,attendedMs:ie,armed:Fe!=null||me!=null&&me.projects.length>0,stopping:()=>mt}),Bs,qd=new Promise(m=>{Bs=m});function Oo(m){zg(m);let P=Date.parse(m),$=lb(Te.values(),P);for(let K of $.lapsed){Te.delete(K.project_label);let z=gt?.projects.find(de=>de.project_label===K.project_label),ne=[...le.values()].some(de=>de.project_label===K.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Ve.set(K.project_label,K),Vg(K,P)}return $.lapsed.length>0&&Hn(),$.lapsed}function Hn(){let m=new Map(Ve);for(let[P,$]of Te)m.set(P,$);H.replace([...m.values()]).catch(()=>{})}function Vg(m,P,$){let K=Number.isFinite(P)?new Date(P).toISOString():m.renew_by;ee.push({project_label:m.project_label,registered_at:m.registered_at,at:K,renew_by:m.renew_by,renewals:m.renewals,sustains:m.sustains??0,detail:$??`redskilled dropped the registration for project ${JSON.stringify(m.project_label)}: it stood until ${m.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`}),ee.length>ri&&ee.splice(0,ee.length-ri)}function zg(m){if(Te.size===0)return;let P=Date.parse(m);if(!Number.isFinite(P))return;let $={};for(let de of le.values())$[de.project_label]=($[de.project_label]??0)+1;let K=gt==null?Number.NaN:Date.parse(gt.fetched_at),z=new Map((gt?.projects??[]).map(de=>[de.project_label,de])),ne=!1;for(let de of[...Te.values()]){let Ze=Number.isFinite(K)&&P-K<=de.renew_within_ms?z.get(de.project_label):void 0,Fo=vu(de,{now:m,...Ze==null?{}:{queue:{outcome:Ze.outcome,depth:Ze.depth}},liveWorkers:$[de.project_label]??0});Fo.registration!==de&&(Te.set(de.project_label,Fo.registration),ne=!0)}ne&&Hn()}function Jg(m){if(Ve.size===0)return;let P=Date.parse(m);if(!Number.isFinite(P))return;let $=new Map((gt?.projects??[]).map(z=>[z.project_label,z])),K=!1;for(let[z,ne]of[...Ve]){if(P-Date.parse(ne.renew_by)>ne.renew_within_ms){Ve.delete(z),K=!0;continue}let de=$.get(z),st=vu(ne,{now:m,...de==null?{}:{queue:{outcome:de.outcome,depth:de.depth}},liveWorkers:[...le.values()].filter(Ze=>Ze.project_label===z).length});st.verdict==="open-work"||st.verdict==="live-worker"?(Te.set(z,st.registration),Ve.delete(z),K=!0):st.verdict==="drained"&&(Ve.delete(z),K=!0)}K&&Hn()}function ia(){let m=o();return Oo(m),cR({now:m,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:Xb(g.claimPath,p,u),workers:[...le.values()],registrations:[...Te.values()],demand:$n,lapses:ee,stops:he,orphanedRegistrations:[...kt.values()],birthLatches:Ub(Xe,Date.parse(m)),queue:gt,published:{version:G,checkedAt:V,newer:Z,replacement:Me,newest:lr,majorHold:jn,checks:we,holdReason:je}})}function aa(){return Bk({hostState:ia(),ceiling:l,rss:I,sampledAt:j,logLines:Object.fromEntries(nt),displays:Object.fromEntries(Pt),now:o(),reattachedWorkerIds:[...pt],repositoryActivity:dr,activityStalenessMs:Sp*ur.cadenceMs(),githubBalance:Pr,...At===void 0?{}:{deaths:At},metrics:xb({observations:ft,outcomes:bt,now:o()})})}function ES(m,P){let $=vb(ft,m,P,o());ft=$.observations,W.recordWorker($.record).catch(()=>{})}function vS(m){bt=to([...bt,m],P=>P.ts,{now:o()})}async function Yg(){return dr=await XR({...me==null?{}:{explicit:me},registrations:Te.values(),resolveHostTransport:()=>(Xg(),rt),now:o(),previous:dr})}async function Qg(){return xe==null?null:(Pr=await pp({transport:xe.transport,now:o()}),Pr)}function SS(){if(mt||Qr!=null||xe==null)return;let m=()=>{Qr=void 0,Qg().catch(()=>{}).then(()=>{if(mt)return;let P=xe.intervalMsOverride??bl(Pr??TS(),{now:o()});Qr=setTimeout(m,P),Qr.unref()})};m()}function TS(){return yl(o())}function Xg(){if(!(rt!=null||Fe?.armTransport==null))try{let m=Fe.armTransport();if(m.transport!=null){rt=m.transport;return}m.unconfiguredReason!=null&&(zt=m.unconfiguredReason)}catch(m){zt=`this host could not resolve a tracker credential: ${m instanceof Error?m.message:String(m)}`}}async function Zg(){let m=o();Oo(m);let P=Date.parse(m);for(let[ne,de]of[...Ve])Number.isFinite(P)&&P-Date.parse(de.renew_by)>de.renew_within_ms&&Ve.delete(ne);let K=[...new Map([...Ve,...Te]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,de)=>ne.project_label.localeCompare(de.project_label));if(K.length===0)return null;if(Xg(),rt==null)return gt=rw(K,m,zt),gt;gt=await nw({projects:K,transport:rt,now:m,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return Jg(z),zg(z),gt}async function em(){let m=o();if(Ar)return $n??Nb(m);Ar=!0;try{await Vd().catch(()=>{});let P={};for(let ye of le.values())P[ye.project_label]=(P[ye.project_label]??0)+1;let $={};for(let ye of gt?.projects??[])$[ye.project_label]=ye.depth;let K=Date.parse(m),z=Number.isFinite(K)?K:0;for(let[ye,Ot]of Object.entries(Xe)){if(Ot.probeWorkerId==null)continue;let fa=le.get(Ot.probeWorkerId);fa!=null&&z-Date.parse(fa.started_at)>=6e4&&(Xe[ye]=Ou())}let ne=Bb({projects:[...Te.values()].map(ye=>({project_label:ye.project_label,selector:ye.selector,argv:ye.argv,workspace_path:ye.workspace_path,target:ye.target})),queue:$,live:P,nowMs:z,backoffUntilMs:It,birthHealth:Xe}),de=[],st=new Map,Ze=null;for(let ye of ne.births){let Ot,fa=_i(le.keys()),Io=Te.get(ye.project_label),ga=za({argv:ye.argv,...Io?.env==null?{}:{env:Io.env},...Io?.log_path==null?{}:{log_path:Io.log_path}},{worker_id:fa,slot:ye.index,workspace_path:ye.workspace_path},{project_label:ye.project_label});try{if(Io?.trunk==null)Ot=await O(()=>Gs(ga));else{let Zr={workspace_path:ye.workspace_path,trunk:Io.trunk},Us=Do(ga);if(!Us.admitted)throw new or(Us.reason,Us);let ym=uf(Zr),ma=st.get(ym);ma==null&&(ma=Kd(Zr),st.set(ym,ma)),Ot=await O(()=>am(ga,Zr,ma,Us))}}catch(Zr){Ze=Zr instanceof Error?Zr.message:String(Zr),Zr instanceof or&&Zr.admission?.verdict==="refused-unreachable-trunk-remote"||(It=(Number.isFinite(K)?K:Date.now())+Ao);break}de.push({project_label:ye.project_label,worker_id:Ot.worker.worker_id,pid:Ot.worker.pid,...Ot.fork_sha==null?{}:{fork_sha:Ot.fork_sha},warnings:ga.log_path==null?[...Ot.warnings,`project ${JSON.stringify(ye.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(Ot.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:Ot.warnings});let Yd=Xe[ye.project_label];Yd?.haltUntilMs!=null&&z>=Yd.haltUntilMs&&(Xe[ye.project_label]=Hb(Yd,Ot.worker.worker_id))}Ze==null&&ne.births.length>0&&(It=null);let Fo=new Set(de.map(ye=>ye.project_label));for(let ye of ne.intents){if(ye.queue_depth==null||ye.queue_depth<=0||ye.live>=ye.target||Fo.has(ye.project_label))continue;let Ot=Ze!=null&&(ye.outcome==="asking"||ye.outcome==="half-open-probe")?`project ${JSON.stringify(ye.project_label)} was birth-eligible but the host refused it: ${Ze}`:ye.detail;await W.recordDemandRefusal({ts:m,projectLabel:ye.project_label,detail:Ot}).catch(()=>{})}return $n={version:1,at:m,requested:ne.births.length,granted:de,shortfall:ne.births.length-de.length,refusal:Ze,retry_after:It==null?null:new Date(It).toISOString(),projects:ne.intents},$n}finally{Ar=!1}}function PS(m){return Sn(aa(),{...Ne,mode:m?.mode??Ne.mode,project:m?.project??Ne.project,maxWorkers:m?.max_workers??Ne.maxWorkers,maxProjects:m?.max_projects??Ne.maxProjects,maxWidth:m?.max_width??Ne.maxWidth,verbose:m?.verbose??Ne.verbose})}function AS(m){return ds(aa(),{mode:m?.mode??Ut.mode,project:m?.project??Ut.project,maxWidth:m?.max_width??Ut.maxWidth,maxRows:m?.max_rows??Ut.maxRows,maxHeight:m?.max_height??Ut.maxHeight,showDeathDetails:m?.show_death_details??Ut.showDeathDetails})}function Un(m,P,$){return t0({op:m,sessionProject:P??null,targetProject:$})}async function CS(m){let P=le.get(m.worker_id),$=Un(e0(m.command),m.session_project,P?.project_label??null);if(!$.permitted)throw new Error($.reason);if(m.command!=="stop")throw new Error(`redskilled does not implement ${m.command}: it owns birth, death and limits, and ${m.command} is a work decision the project's own bundle makes on top of them`);let K=P!=null&&await MS(P,m.detail??"stopped by its own project");return{version:1,command:m.command,worker_id:m.worker_id,applied:K,reach:$,detail:K?`redskilled stopped Worker ${JSON.stringify(m.worker_id)} of project ${JSON.stringify(P.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to stop`}}function Ns(m){le.delete(m),pt.delete(m),nt.delete(m),Pt.delete(m)}function tm(m){let P=le.get(m.worker_id),$=Un("worker-heartbeat",m.session_project,P?.project_label??null);if(!$.permitted)throw new Error($.reason);if(typeof m.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(P==null)return{version:1,worker_id:m.worker_id,accepted:!1,reach:$,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to publish a line for`};let K=o();nt.set(m.worker_id,{line:m.last_log_line,published_at:K,source:"heartbeat"});let z=m.display===void 0?null:aw(m.display);if(z!=null){let ne=Pt.get(m.worker_id)?.display,de={display:z,published_at:K};Pt.set(m.worker_id,de),ES(de,P),(z.phase!==ne?.phase||z.step!==ne?.step)&&Mt("worker-activity",P,null,{phase:z.phase,step:z.step})}return m.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Mt("worker-heal",P,`${m.mechanical_heal.cause}; cycle ${m.mechanical_heal.cycle}/${m.mechanical_heal.cap}; free=${m.mechanical_heal.free}`,{healKind:m.mechanical_heal.heal_kind}),{version:1,worker_id:m.worker_id,accepted:!0,reach:$,published_at:K,detail:`redskilled stored a line for Worker ${JSON.stringify(m.worker_id)} without reading it`}}async function OS(m,P,$){let K=`exit code=${P??"null"} signal=${$??"null"}`;if(m.unit!=null&&m.unit!==""&&await FS(m)){IS(m,`its launch client ended (${K}) while unit ${JSON.stringify(m.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=m.log_path==null?null:bu(await X(m.log_path).catch(()=>null));Ns(m.worker_id),Mt("worker-death",m,z==null?K:`session-error: ${z}`,{exitCode:P,signal:$,refusal:z}),ot()}function DS(m,P){if(!Number.isFinite(P)||P<0){Xe[m]=ii;return}let $=Xe[m]??ii,K=Wb($,P,Date.parse(o()));Xe[m]=K,K.haltUntilMs!=null&&$.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(m)} lost ${K.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(K.haltUntilMs).toISOString()}
110
- `)}function rm(m,P){let $=Un("project-reset",P,m);if(!$.permitted)throw new Error($.reason);let K=Xe[m]?.haltUntilMs!=null||Xe[m]?.probeWorkerId!=null;return Xe[m]=Ou(),{version:1,project_label:m,latch:"project-birth-breaker",reset:K,reach:$,detail:K?`redskilled cleared project ${JSON.stringify(m)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(m)}; nothing changed`}}async function FS(m){try{return await F(m)===!0}catch{return!1}}function IS(m,P){let $=m.unit==null?null:ae(m.unit);le.set(m.worker_id,{...m,...$!=null&&$>0?{pid:$}:{},warnings:[...m.warnings,P]}),pt.add(m.worker_id),ot()}function nm(m,P){let $=Un("project-register",P,m.project_label);if(!$.permitted)throw new Error($.reason);let K=o();Oo(K);let z=ib(m,{now:K,held:Te.get(m.project_label)});return Te.set(z.project_label,z),Hn(),ur.nudge(),im(z.project_label),ot(),{version:1,registration:z,reach:$,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 om(m,P={}){let $=Un("project-renew",P.sessionProject,m);if(!$.permitted)throw new Error($.reason);let K=o();Oo(K);let z=Te.get(m);if(z==null){if(kt.has(m))throw new eo(m,{kind:"orphaned"});let de=[...he].reverse().find(Ze=>Ze.project_label===m);if(de!=null)throw new eo(m,{kind:"stopped",at:de.at});let st=[...ee].reverse().find(Ze=>Ze.project_label===m);throw st!=null?new eo(m,{kind:"lapsed",at:st.at,...st.registered_at==null?{}:{registered_at:st.registered_at}}):new eo(m)}let ne=ab(z,{now:K,...P.renewWithinMs==null?{}:{renew_within_ms:P.renewWithinMs},...P.launch==null?{}:{launch:P.launch}});return Te.set(ne.project_label,ne),Hn(),ur.nudge(),ot(),{version:1,registration:ne,reach:$,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(P.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function sm(m,P){let $=Un("project-deregister",P,m);if(!$.permitted)throw new Error($.reason);let K=Te.get(m)??Ve.get(m),z=Te.delete(m),ne=Ve.delete(m),de=z||ne;if(K!=null){let st=`redskilled released the registration for project ${JSON.stringify(m)}`;im(m),he.push({project_label:m,registered_at:K.registered_at,at:o(),detail:st}),he.length>ri&&he.splice(0,he.length-ri)}return de&&Hn(),{version:1,project_label:m,released:de,reach:$,detail:de?`redskilled released the registration for project ${JSON.stringify(m)}`:`redskilled held no registration for project ${JSON.stringify(m)}, so there was nothing to release`}}function im(m){Ve.delete(m);for(let P=ee.length-1;P>=0;P-=1)ee[P].project_label===m&&ee.splice(P,1);for(let P=he.length-1;P>=0;P-=1)he[P].project_label===m&&he.splice(P,1);kt.delete(m)}async function MS(m,P){let $=!1;try{$=await q(m)===!0}catch{}Ns(m.worker_id);let K=m.pgid??m.pid;return Mt("worker-death",m,$?P:`${P}; unconfirmed-stop: the host did not confirm process group ${K} stopped, so process group ${K} may still be alive`),ot(),!0}function Do(m){return Lb({ceiling:l,workers:[...le.values()],budget:m.budget,projectLabel:m.project_label,...m.reservation==null?{}:{reservation:m.reservation}})}function Kd(m){let P=uf(m),$=Jt.get(P);if($!=null)return $;let K=i(m).finally(()=>{Jt.get(P)===K&&Jt.delete(P)});return Jt.set(P,K),K}async function am(m,P,$,K){let z=K??Do(m);if(!z.admitted)throw new or(z.reason,z);let ne;try{ne=await($??Kd(P))}catch(st){let Ze=lw(z,P,st);throw new or(Ze.reason,Ze)}let de=Do(m);if(!de.admitted)throw new or(de.reason,de);return Gs(m,{admission:de,forkSha:ne})}function Gs(m,P={}){let $=jb({ceiling:l,workers:[...le.values()],budget:m.budget}),K=s({spec:m,admission:P.admission??Do(m),...P.forkSha==null?{}:{forkSha:P.forkSha},memoryCeiling:$,liveWorkerIds:le.keys(),clock:o,onExit:(st,Ze,Fo)=>{let ye=le.get(st);if(ye==null){ot();return}OS(ye,Ze,Fo).catch(()=>{})}}),z=P.forkSha??K.fork_sha??K.worker.fork_sha,ne=z==null||z===""?K.worker:{...K.worker,fork_sha:z},de={...K,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return le.set(ne.worker_id,ne),P.hook===!0&&Ct.track(ne.worker_id),Mt("worker-birth",ne,null,{admissionVerdict:P.admission?.verdict??K.admission.verdict}),ot(),de}function Mt(m,P,$,K={}){if(mt)return;let z=o(),ne={kind:m,worker:P,ts:z,detail:$,...K};(m==="worker-death"||m==="worker-budget-kill")&&(vS({worker_id:P.worker_id,ts:z,outcome:m}),lm(Xa(ne),{startedAt:P.started_at,...K.refusal==null?{}:{refusal:K.refusal}}),DS(P.project_label,Date.parse(z)-Date.parse(P.started_at))),W.recordWorker(ne).catch(()=>{}),Ct.onEvent(m,P)}function lm(m,P={}){let $=qy(m,P);if($==null)return;let K=[$,...(At??[]).filter(z=>z.kind!==$.kind||z.id!==$.id||z.ts!==$.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));At=to(K,z=>z.ts,{now:o()})}async function Vd(){let m=await PR({workers:[...le.values()],reattached_worker_ids:pt,now_ms:Date.parse(o()),grace_ms:U,probe:F,on_dead:P=>{Ns(P.worker_id),Mt("worker-death",P,"the host no longer confirms this Worker")}});return m.length>0&&ot(),m}let Ws=NR({authorized:of(t.machineClaimPath,t.machineClaimPathOfThisHost),interval_ms:e.orphanReaperMs,mode:e.orphanReaperMode,census:e.orphanCensus,active_worker_units:oe,dump_files:e.orphanDumpFiles,read_starttime:e.orphanStarttime,kill_group:e.orphanKillGroup,report:e.orphanReport,clock:o,held_worker_ids:()=>le.keys(),live_births:async()=>Za(await W.read()),adopt:async(m,P,$)=>{le.set(m.worker_id,m),pt.add(m.worker_id),P&&(Mt("worker-birth",m,$),await W.flush()),ot()},record_reaped:async(m,P)=>{Ns(m.worker_id),Mt("worker-death",m,P),await W.flush(),ot()}});async function dm(m,P){let $=le.get(m);if(!$)return!1;try{await q($)}catch{}return Ns(m),Mt("worker-budget-kill",$,P),ot(),!0}async function cm(){let m=[...le.values()];if(m.length===0)return[];let P;try{P=await se(m)}catch{return[]}let $=P.rss;I=$,j=o(),LS(P.cpu_seconds,j);let{terminations:K}=hk({workers:m,rss:$,processes:P.processes??{}}),z=[];for(let ne of K)await dm(ne.worker_id,ne.reason)&&z.push(ne);return z}function LS(m,P){for(let[$,K]of Object.entries(m)){if(typeof K!="number"||!Number.isFinite(K))continue;let z=le.get($);z&&le.set($,{...z,cpu:{cpu_seconds:K,sampled_at:P}})}}async function jS(){try{return ce<=0?await ke(r):await new Promise(m=>{let P=setTimeout(()=>m(zd()),ce);P.unref(),ke(r).then($=>{clearTimeout(P),m($)},()=>{clearTimeout(P),m(zd())})})}catch{return zd()}}function zd(){try{return _e(r)}catch{return null}}async function um(){if(Ai(r))return we+=1,V=o(),je="local-build",{act:"hold",reason:"local-build"};let m=Lw(await jS()),P=m.version;G=P,lr=m.newest??null,V=o(),jn=jw({running:r,newest:lr,supervised:Re});let $=$w({running:r,published:P,supervised:Re});return Z=$.act==="replace",we+=1,je=$.act==="hold"?$.reason:null,Me!=="in-progress"&&(Me=$.act==="replace"?"pending":"none"),$}async function la(){let m=await um();if(m.act!=="replace"||Me==="in-progress")return m;let P=Bw(m,Se,t,n);return Me="in-progress",await W.flush().catch(()=>{}),await H.flush().catch(()=>{}),await ca({reason:"replaced"}),Nw(P,t,{...n==null?{}:{idleMs:n},io:Se}),m}function $S(){mt||Wn!=null||J<=0||(!Oe&&ve>0&&(Co=setTimeout(()=>{la().catch(()=>{})},ve),Co.unref()),Wn=setInterval(()=>{la().catch(()=>{})},J),Wn.unref())}async function pm(){return await c.renew(d).catch(()=>null)}function BS(){mt||Nn!=null||Ce<=0||(Nn=setInterval(()=>{pm()},Ce),Nn.unref())}function NS(){mt||Gn!=null||Ee<=0||(Gn=setInterval(()=>{Oo(o())},Ee),Gn.unref())}function GS(){mt||Bn!=null||pe<=0||(Bn=setInterval(()=>{cm().catch(()=>{})},pe),Bn.unref())}function WS(){if(mt||cr!=null||mn<=0)return;let m=P=>{cr=setTimeout(()=>{cr=void 0,fm().then(()=>Zg()).catch(()=>{}).finally(()=>{if(mt)return;let $=Date.parse(o());m(iw(gt,mn,Number.isFinite($)?$:Date.now()))})},P),cr.unref()};m(mn)}async function fm(){await Promise.allSettled([...Te.values()].filter(m=>m.trunk!=null).map(async m=>{let P=await Kd({workspace_path:m.workspace_path,trunk:m.trunk}),$=[...le.values()].filter(K=>K.project_label===m.project_label&&K.fork_sha!=null&&K.fork_sha!=="");await Promise.allSettled($.map(async K=>{let z=await a({workspace_path:m.workspace_path,fork_sha:K.fork_sha,head_sha:P}),ne=le.get(K.worker_id);if(ne==null||ne.fork_sha!==K.fork_sha)return;let de={...ne,base_head_sha:P,base_commits_ahead:z};le.set(K.worker_id,de),(ne.base_head_sha!==P||ne.base_commits_ahead!==z)&&Mt("worker-drift",de,null,{baseHeadSha:P,baseCommitsAhead:z})}))}))}function HS(){mt||Be!=null||hn<=0||(Be=setInterval(()=>{em().catch(()=>{})},hn),Be.unref())}function ot(){mt||(Yr&&clearTimeout(Yr),Yr=setTimeout(()=>{Vd().catch(()=>{}).then(()=>gm())},n),Yr.unref())}function gm(){return le.size>0?(ot(),"held-by-workers"):(Oo(o()),Te.size>0?(ot(),"held-by-registrations"):(US(),"exited"))}async function US(){if(!Ai(r)){if((await la().catch(()=>null))?.act==="replace"||Ue||mt)return;if(le.size>0||Te.size>0){ot();return}}await ca({reason:"idle"})}function da(m){return qb({reason:m,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...le.values()],projects:[...Te.keys()]})}function mm(m){if(Xr!=null)return Xr;let P=m.reason??"requested",$=m.note?.trim();return Xr=W.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:P,detail:$==null||$===""?da(P).detail:`${da(P).detail} \u2014 ${$}`,...m.signal==null?{}:{signal:m.signal}}).catch(()=>{}),Xr}async function ca(m={}){if(Ue)return await qd;Ue=!0,await mm(m),mt=!0,Yr&&clearTimeout(Yr),Bn&&clearInterval(Bn),Nn&&clearInterval(Nn),Gn&&clearInterval(Gn),Ws.stop(),Wn&&clearInterval(Wn),Co&&clearTimeout(Co),ur.stop(),Qr&&clearTimeout(Qr),cr&&clearTimeout(cr),Be&&clearInterval(Be),await W.flush().catch(()=>{}),await H.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let P of R)P.destroy();return await new Promise(P=>M.once("close",()=>P())),await Fj(t.socketPath,{force:!0}),Bs(),await qd}let Hs=await W.read().catch(()=>[]),ua=new Map;for(let m of Hs){if(m.event==="worker-birth"){ua.set(m.worker_id,m.ts);continue}let P=bu(m.detail);lm(m,{...ua.get(m.worker_id)==null?{}:{startedAt:ua.get(m.worker_id)},...P==null?{}:{refusal:P}}),(m.event==="worker-death"||m.event==="worker-budget-kill")&&ua.delete(m.worker_id)}bt=to(Hs.filter(m=>m.event==="worker-death"||m.event==="worker-budget-kill").map(m=>({worker_id:m.worker_id,ts:m.ts,outcome:m.event})),m=>m.ts,{now:o()}),ft=Sb(Hs,o());let qS=Za(Hs),hm=new Set(await Promise.resolve(oe()).catch(()=>[])),Jd=await nf(qS,m=>m.unit!=null&&hm.has(m.unit)?!0:F(m));for(let m of Jd.alive){let P=MR(m),$=P.unit==null||Ye(P.pid)?null:ae(P.unit);le.set(P.worker_id,$!=null&&$>0?{...P,pid:$}:P),pt.add(P.worker_id)}for(let m of Jd.dead)Mt("worker-death",m,"the Worker ended while no daemon was watching");let KS=IR({units:[...hm],held:[...le.values()],mainPid:ae,now:N});for(let m of KS)le.set(m.worker_id,m),pt.add(m.worker_id),Mt("worker-birth",m,"adopted from an active unit with no birth on this lane");let pa=ub(xt,le.values(),N);for(let m of pa.live)Te.set(m.project_label,m);for(let m of pa.recoverable)Ve.set(m.project_label,m);for(let m of pa.abandoned)Vg(m,Date.parse(N),`redskilled lapsed the recovered registration for project ${JSON.stringify(m.project_label)}: no session renewed it on cadence and no attributed Worker is alive`);xt.length>0&&Hn(),Jg(o()),await pb({eventLane:W,laneEvents:Hs,heldLease:f,ownerPid:d.pid,startedAt:N,socketPath:t.socketPath,recovery:pa});for(let m of Jd.alive){if(m.log_path==null||nt.has(m.worker_id))continue;let P=await X(m.log_path).catch(()=>null);P==null||P.trim()===""||nt.set(m.worker_id,{line:P,published_at:o(),source:"rehydrated"})}M.on("connection",m=>{R.add(m),m.once("close",()=>R.delete(m)),ot(),mb(m,async(P,$)=>{ot();let K=await VS(P);$(K),P.op==="shutdown"&&setImmediate(()=>void ca({reason:"requested"}).catch(()=>{}))})});async function VS(m){try{if(m.op==="ping")return{id:m.id,ok:!0,value:{pong:!0,protocol_version:Ll,daemon_version:r,pid:d.pid}};if(m.op==="host-state")return{id:m.id,ok:!0,value:ia()};if(m.op==="reap")return{id:m.id,ok:!0,value:await Ws.reap(m.report===!0)};if(m.op==="statusline-payload")return{id:m.id,ok:!0,value:Op(aa(),m.extras)};if(m.op==="statusline-string")return{id:m.id,ok:!0,value:PS(m.render)};if(m.op==="statusline-dashboard")return{id:m.id,ok:!0,value:AS(m.dashboard)};if(m.op==="worker-heartbeat")return{id:m.id,ok:!0,value:tm(m.heartbeat)};if(m.op==="project-register"){let $=nm(m.registration,m.session_project);return await H.flush(),{id:m.id,ok:!0,value:$}}if(m.op==="project-renew"){let $=om(m.project_label,{...m.session_project==null?{}:{sessionProject:m.session_project},...m.renew_within_ms==null?{}:{renewWithinMs:m.renew_within_ms},...m.launch==null?{}:{launch:m.launch}});return await H.flush(),{id:m.id,ok:!0,value:$}}if(m.op==="project-deregister"){let $=sm(m.project_label,m.session_project);return await H.flush(),{id:m.id,ok:!0,value:$}}if(m.op==="project-reset")return{id:m.id,ok:!0,value:rm(m.project_label,m.session_project)};if(m.op==="worker-command")return{id:m.id,ok:!0,value:await CS(m.command)};if(m.op==="worker-start"){let $=Un("worker-start",m.session_project,m.spec.project_label);if(!$.permitted)return{id:m.id,ok:!1,error:$.reason};let K=await O(()=>m.spec.trunk==null?Gs(m.spec):am(m.spec,{workspace_path:m.spec.workspace_path,trunk:m.spec.trunk}));return await W.flush().catch(()=>{}),{id:m.id,ok:!0,value:{worker:K.worker,admission:K.admission,fork_sha:K.fork_sha,warnings:K.warnings}}}if(m.op==="shutdown"){let $=da("requested");return await mm({reason:"requested",...m.detail==null?{}:{note:m.detail}}),{id:m.id,ok:!0,value:$}}let P=m;return{id:P.id??Zw(),ok:!1,error:`unsupported redskilled op: ${P.op??"unknown"}`}}catch(P){return{id:m.id??Zw(),ok:!1,error:P instanceof Error?P.message:String(P)}}}return ot(),GS(),BS(),NS(),Ws.arm(),$S(),ur.arm(),SS(),WS(),HS(),{socketPath:t.socketPath,lease:A.lease,startedAt:N,closed:qd,startWorker:Gs,admit:Do,ceiling:()=>l,killWorkerOverBudget:dm,sampleMemoryBudgets:cm,renewLease:pm,pollRepositoryActivity:Yg,pollGithubBalance:Qg,githubBalance:()=>Pr,pollQueueDiscovery:Zg,queueDiscovery:()=>gt,driveDemand:em,demand:()=>$n,sweepWorkerLiveness:Vd,sweepOrphanProcesses:()=>mt?Promise.resolve({adopted:0,reaped:0,suspects:0}):Ws.sweep(),censusOrphanProcesses:()=>Ws.census(),publishWorkerHeartbeat:tm,reattached:()=>[...pt].map(m=>le.get(m)).filter(m=>m!=null),flushEvents:async()=>{await Q,await Ct.waitForSettled(),await W.flush()},trackWorker(m){le.set(m.worker_id,m),Mt("worker-birth",m,null),ot()},releaseWorker(m){let P=le.get(m),$=le.delete(m);return pt.delete(m),nt.delete(m),Pt.delete(m),P&&Mt("worker-death",P,"released by the daemon"),ot(),$},workerCount:()=>le.size,registerProject:nm,renewProject:om,resetProjectBirthBreaker:rm,deregisterProject:sm,registrations:()=>ia().registrations??[],hostState:ia,refreshRegisteredTrunks:fm,statuslinePayload:aa,evaluateIdle:gm,observePublishedVersion:um,checkForReplacement:la,stopReport:da,stop:ca}}function kf(e){let t=e.socketPath,r=Mj(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 ${t_(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 \`${Pn("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 \`${Pn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Rf(e){return`${e.reason} ${e.repair}`}function Mj(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:Lj(t.acquired_at,e.now??new Date().toISOString())}}function Lj(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 t_(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 jj}from"node:child_process";import{existsSync as $j}from"node:fs";import{basename as r_,dirname as Bj,join as n_}from"node:path";async function hs(e){let r=await ai(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==nl().uid||!Ye(r.pid))return{paths:e,joined:!1};let n=Bj(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:n_(n,r_(e.lockPath)),leasePath:n_(n,r_(e.leasePath))}}}async function o_(e){let r=await ai(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Ye(r.pid)))throw new an(e.machineClaimPath,"held",r)}async function s_(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[Mu]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==ol({env:n,machineIdHash:e.machineIdHash}))||!(o??$j(gs(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=jj("systemctl",["--user","start",sr],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${sr}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await Nj(e,t,r),!0}async function Nj(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await hs(e);if(await er(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${sr} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}sn();var _f=1e4,An=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"?`. ${Rf(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},wf=class extends An{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Ci=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function Xl(e,t={}){let r=t.answers??await er(e.socketPath),n=await ms(e.leasePath).catch(()=>{});return kf({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Ye(n.pid)})}async function xf(e,t={}){let r=await hs(e);try{let n=await Uj(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof an||n instanceof An)throw n;let o=await Xl(r.paths).catch(()=>{});throw new An(r.paths.socketPath,n,o)}}async function Uj(e,t){if(await Wj(Hj(e.socketPath),{recursive:!0,mode:448}),await er(e.socketPath))return"already-running";await o_(e);let r=await Kj(e,t);if(r!=null)return r;if(await s_(e,t,_f))return"joined";let n=await Ty(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??qj});if(!n.acquired)return await i_(e,t,void 0,n),"joined";try{if(await er(e.socketPath))return"already-running";let o=await zj(e,t);return await i_(e,t,o),"spawned"}finally{await Py(n)}}function qj(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
111
- `)}async function Kj(e,t){let r=await Xl(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??_f,o=Date.now()+n;for(;;){if(await er(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await Xl(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new wf(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 Ef(e,t,r={}){await xf(e,r);let n=(await hs(e)).paths,o;try{o=await us({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:a_()})}catch(s){throw new An(n.socketPath,s,await Xl(n).catch(()=>{}))}if(!o.ok)throw new Ci(o.error);return o.value}async function l_(e,t={},r={}){let n=(await hs(e)).paths;if(!await er(n.socketPath))return Kb(n.socketPath);let o;try{o=await us({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:a_(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new An(n.socketPath,a)}if(!o.ok)throw new Ci(o.error);if(!Fu(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await Vj(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 Vj(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await er(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await ms(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Ye(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 d_(e,t={}){let r=await Ef(e,{op:"host-state"},t);if(!uR(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function c_(e,t={},r={}){let n=await Ef(e,{op:"reap",report:t.report===!0},r);if(!dR(n))throw new Error("redskilled daemon returned a malformed reap report");return n}async function u_(e,t={},r){let n=await Ef(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!xl(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function p_(e,t=Ne,r={}){let n=await u_(e,r,{vitals:!0,logs:t.verbose,display:!0});return Sn(n,t)}async function f_(e,t={},r={}){let n=await u_(e,r,{vitals:!0,logs:!0,display:!0});return ds(n,{...Ut,...t})}async function i_(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??_f);for(;;){if(await er(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 ${Ay(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 zj(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await By({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...bn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=Gj(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}sn();import{readFile as Jj}from"node:fs/promises";import{homedir as Yj,totalmem as Qj}from"node:os";import{join as Xj}from"node:path";var Zj="REDSKILLED_IDLE_MS",e$=".red/config.yaml";async function m_(e=Yj()){let t=Xj(e,e$),r;try{r=await Jj(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(vf(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${g_(n)}`),{})}try{let n=r$(r);return{...Zl(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...Zl(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...Zl(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...Zl(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return vf(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${g_(n)}`),{}}}function h_(e={}){let t=e.env??process.env,r=e.config??{},n=rl(t,e.totalMemoryBytes??Qj(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=t$(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[Zj],r.idleMs);if(o==null)return{ceiling:n,idleMs:Vo,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(vf(`redskilled: ${s$(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Vo}ms instead.`),{ceiling:n,idleMs:Vo,idleMsSource:"derived-default"})}function t$(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 Zl(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function r$(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=n$(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(".")]=o$(c.trim())}return t}function n$(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 o$(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function s$(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function g_(e){return e instanceof Error?e.message:String(e)}function vf(e){process.stderr.write(`${e}
112
- `)}import{chmod as E_,mkdir as S_,readFile as T_,stat as R$,writeFile as P_}from"node:fs/promises";import{homedir as Pf}from"node:os";import{dirname as A_,join as ed}from"node:path";import{join as c$}from"node:path";import{existsSync as i$,readFileSync as WV}from"node:fs";import{dirname as a$,join as l$}from"node:path";function y_(e,t){let r=e;for(let n=0;n<16;n++){let o=l$(r,t);if(i$(o))return o;let s=a$(r);if(s===r)break;r=s}return null}function d$(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function ys(e,t){let r=[];for(let n of e.split(`
113
- `)){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 d$(d)}}var b_=["local","tmp","host"],u$="local",Oi="plugins.dev.workspace.target";var Sf=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function R_(e){let t=ys(e,Oi),r=g$(t??"").trim();return r===""?void 0:r}function w_(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:u$};let r=b_.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 Sf(`${Oi}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${b_.join(", ")}) or an absolute parent directory for Workers.`)}function __(e,t){return e.kind==="preset"?e.preset==="host":f$(p$(e.parentDir,t),$t(t))}function p$(e,t){return e==="~"?k_(t):e.startsWith("~/")?c$(t,e.slice(2)):k_(e)}function f$(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function k_(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function g$(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}sn();import{createHash as m$}from"node:crypto";import{hostname as h$}from"node:os";import{join as Di}from"node:path";var bs="redskilled.sock",y$="REDSKILLED_SESSION";function b$(e={}){let t=e.env??process.env,r=t[y$]?.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 k$(e={}){return x_(e.host??h$())}function Kt(e={}){let t=b$(e),r=e.runtimeDir??Wa({key:`redskilled:${t}`,socketFileName:bs,env:e.env,uid:e.uid}),n=k$(e),o=ol({env:e.env,machineIdHash:n,platform:e.platform}),s=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:x_(t),machineIdHash:n,runtimeDir:r,socketPath:Di(r,bs),lockPath:Di(r,"redskilled.spawn.lock"),leasePath:Di(r,"redskilled.lease.toon"),eventLanePath:Di($t(s),rb),registrationIntentPath:Di($t(s),"redskilled.registrations.toon"),machineClaimPathOfThisHost:o,machineClaimPath:e.machineClaimPath??o}}function x_(e){return m$("sha256").update(e).digest("hex").slice(0,12)}var Tf=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${Pn("red-skills-redskilled",["provision"])}\` directly`,w$=`# Host-scoped redskilled policy. This file is never read from a repository.
109
+ `)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function Bj(e,t={}){let r=t.env??process.env,n=t.exists??Dj,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=Ci(r),d=[];l!=null&&d.push([Zl(_f(l),i),"stable-home"]),d.push([Zl(Ya(r),i),"bundle-cache"]),s&&d.push([Zl(Gw(Lj(s)),i),"caller-sibling-bundle"]);for(let[u,p]of d)if(a.push(u),n(u))return{...uo({command:o,args:[u],entry:u},{version:e,homeDir:l,exists:n}),version:e,source:p,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new ed(e,a);let c=Nj(r,n,o,a);if(c==null)throw new ed(e,a);return{command:c,args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function Nj(e,t,r,n){let o=e.RED_SKILLS_NPX?.trim();if(o&&Mj(o))return o;let s=process.platform==="win32"?[o||"npx.cmd","npx.cmd","npx.exe","npx"]:[o||"npx"],i=[Gw(r),...(e.PATH??"").split(Ij).filter(a=>a.length>0)];for(let a of new Set(s))for(let l of i){let d=Zl(l,a);if(n.push(d),t(d))return d}return null}function zw(e,t={},r,n){let s=(t.resolveEntry??(i=>Bj(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>Dw(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 Jw(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??Wj)(Bw),{...e,exitCode:Bw};let o=[...e.entry.args,...bn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??Gj(n.env))(e.entry,o),e}function Gj(e){return(t,r)=>{let n=Oj(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[Hw]:"1"}});n.on("error",()=>{}),n.unref()}}function Wj(e){process.exitCode=e,process.exit(e)}async function Yw(e,t=process.env,r=Hj){let n=Xw(t),o=Zw(e,t);if(t[jj]==="1")return{version:o,newest:n};let s=Vt(e)===null?"0.0.0":e;try{let i=await Uy({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function Qw(e,t=process.env,r){let n=r??vf;return{version:Zw(e,t,n),newest:Xw(t,n)}}function Xw(e=process.env,t=vf){return t_(e_(e,t))}function Zw(e,t=process.env,r=vf){let n=Vt(e.trim())?.major;return n===void 0?null:t_(e_(t,r).filter(o=>Vt(o)?.major===n))}function e_(e,t){let r=[];for(let n of t(Ya(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||Vt(o)===null||r.push(o)}return r}function t_(e){let t=null;for(let r of e)(t===null||wf(r,t)>0)&&(t=r);return t}function vf(e){try{return Fj(e)}catch{return[]}}async function Hj(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 Uj,readFile as qj,rename as Kj,rm as Sf,writeFile as r_}from"node:fs/promises";import{randomUUID as Vj}from"node:crypto";import{dirname as zj}from"node:path";var rd=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function po(e){let t;try{t=await qj(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=Jj(t);return Yj(r)?r:void 0}var n_;function s_(){return n_??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},n_}function i_(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ke;async function s(){return await po(e)}async function i(l){let d=`${e}.${l.pid}.${Vj()}.tmp`;await r_(d,o_(l),{encoding:"utf8",mode:384}),await Kj(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 Uj(zj(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await r_(e,o_(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 Sf(e,{force:!0}),d=!0;continue}if(Tf(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await Sf(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!Tf(d,l))throw new rd(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!Tf(d,l))throw new rd(e);return await Sf(e,{force:!0}),!0}}}function Tf(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function o_(e){return`${tt(e)}
110
+ `}function Jj(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return er(t)}catch{return null}}}function Yj(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 d_(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Jo,o=e.clock??(()=>new Date().toISOString()),s=e.launch??ew,i=e.refreshTrunk??bw,a=e.countBaseMovement??kw,l=e.ceiling??ll();e.repositoryActivity!=null&&Fp(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??s_(),c=e.leaseStore??i_(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??dl(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??ui(t.machineClaimPath,p,{clock:o});await Zj(t$(t.socketPath),{recursive:!0,mode:448});let[f,y]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),m=Date.parse(o()),w=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(m)&&Number.isFinite(w)&&m-w>=Zy&&await Cu(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 O=await g.claim(u);if(!O.claimed)throw O.claim?.socket_path===t.socketPath?new nr(t.socketPath):new sn(g.claimPath,O.reason,O.claim);let T=await c.acquire(d);if(!T.acquired)throw await g.release(u).catch(()=>{}),new nr(t.socketPath,T.lease);let F;try{F=await Eb(t.socketPath,async()=>{let[h,A]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return h!=null&&h.pid!==d.pid&&Ke(h.pid)?!0:A!=null&&A.socket_path===t.socketPath&&A.pid!==u.pid&&Ke(A.pid)})}catch(h){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),h}let $=o(),G=e.eventLane??fb(t.eventLanePath),W=e.registrationIntentStore??YR(t.registrationIntentPath),I=e.liveness??GR,U=e.livenessGraceMs??NR,q=e.stopWorker??VR,oe=e.unitInventory??(()=>ff(t.machineClaimPath,t.machineClaimPathOfThisHost)?UR():[]),ae=e.unitMainPid??HR,se=e.treeSampler??Pk,Z=e.readLogTail??Rw,pe=e.sampleMs??Xy,Ce=e.leaseRenewMs??wu,Ee=e.registrationSustainMs??eb,Re=e.publishedVersion??(h=>Yw(h)),J=e.replaceCheckMs??Ww,ce=e.publishedProbeTimeoutMs??Yy,xe=e.localPublishedEvidence??(h=>Qw(h,e.replacementIO?.env??process.env)),Oe=e.bornByReplacement??Uw(),ve=e.replaceBootCheckMs??Qy,we=e.supervised??td(),Se=e.replacementIO??{},me=e.repositoryActivity,ie=me?.intervalMs??ss,be=e.githubBalance,Fe=e.queueDiscovery,ot=Fe?.transport??me?.transport,Yt=Fe?.unconfiguredReason??rb,fn=Fe?.intervalMs??bf,gn=e.demandMs??15e3,Do=e.demandBackoffMs??3e4,le=new Map,Qt=new Map,gt=new Set,st=new Map,Tt=new Map,mt=[],bt=[],Pt=e.deaths===void 0?void 0:[...e.deaths],_t=await W.read().catch(()=>[]),Te=new Map,Je=new Map,At=tw({registration:h=>Te.get(h),liveWorkerIds:()=>le.keys(),admit:Io,start:(h,A)=>qs(h,{admission:A,hook:!0}).worker,refuse:(h,A)=>void G.recordDemandRefusal({ts:o(),projectLabel:h,detail:A}).catch(()=>{}),recordExpiry:(h,A)=>void G.recordDemandRefusal({ts:o(),projectLabel:h,detail:A}).catch(()=>{})}),Q=Promise.resolve();function D(h){let A=Q.then(async()=>{await At.waitForSettled();let B=await h();return await At.waitForSettled(),B});return Q=A.then(()=>{},()=>{}),A}let R=new Set,L={},j=null,H=null,V=null,ee=!1,_e=0,$e=null,Me="none",pr=null,$n=null,fr=null,Wt=null,Bn=!1,Gs=null,X=null,ke=null,Ne=[],ht=[],gr=new Map((e.orphanedRegistrations??[]).map(h=>[h.project_label,h])),Xt=null,Ct={},Ws=!1,mn,Nn,Ge,Gn,Wn,hn,Yr,Qr,je,Ze=!1,Xr=!1,Hn=null,Hs=iw({poll:()=>am(),registrations:()=>Te.values(),clock:o,attendedMs:ie,armed:Fe!=null||me!=null&&me.projects.length>0,stopping:()=>Ze}),nm,zd=new Promise(h=>{nm=h});function Fo(h){sm(h);let A=Date.parse(h),B=bb(Te.values(),A);for(let K of B.lapsed){Te.delete(K.project_label);let z=X?.projects.find(de=>de.project_label===K.project_label),ne=[...le.values()].some(de=>de.project_label===K.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Je.set(K.project_label,K),om(K,A)}return B.lapsed.length>0&&Un(),B.lapsed}function Un(){let h=new Map(Je);for(let[A,B]of Te)h.set(A,B);W.replace([...h.values()]).catch(()=>{})}function om(h,A,B){let K=Number.isFinite(A)?new Date(A).toISOString():h.renew_by;Ne.push({project_label:h.project_label,registered_at:h.registered_at,at:K,renew_by:h.renew_by,renewals:h.renewals,sustains:h.sustains??0,detail:B??`redskilled dropped the registration for project ${JSON.stringify(h.project_label)}: it stood until ${h.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`}),Ne.length>ii&&Ne.splice(0,Ne.length-ii)}function sm(h){if(Te.size===0)return;let A=Date.parse(h);if(!Number.isFinite(A))return;let B={};for(let de of le.values())B[de.project_label]=(B[de.project_label]??0)+1;let K=X==null?Number.NaN:Date.parse(X.fetched_at),z=new Map((X?.projects??[]).map(de=>[de.project_label,de])),ne=!1;for(let de of[...Te.values()]){let et=Number.isFinite(K)&&A-K<=de.renew_within_ms?z.get(de.project_label):void 0,Mo=Au(de,{now:h,...et==null?{}:{queue:{outcome:et.outcome,depth:et.depth}},liveWorkers:B[de.project_label]??0});Mo.registration!==de&&(Te.set(de.project_label,Mo.registration),ne=!0)}ne&&Un()}function im(h){if(Je.size===0)return;let A=Date.parse(h);if(!Number.isFinite(A))return;let B=new Map((X?.projects??[]).map(z=>[z.project_label,z])),K=!1;for(let[z,ne]of[...Je]){if(A-Date.parse(ne.renew_by)>ne.renew_within_ms){Je.delete(z),K=!0;continue}let de=B.get(z),at=Au(ne,{now:h,...de==null?{}:{queue:{outcome:de.outcome,depth:de.depth}},liveWorkers:[...le.values()].filter(et=>et.project_label===z).length});at.verdict==="open-work"||at.verdict==="live-worker"?(Te.set(z,at.registration),Je.delete(z),K=!0):at.verdict==="drained"&&(Je.delete(z),K=!0)}K&&Un()}function pa(){let h=o();return Fo(h),wR({now:h,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:$,ceiling:l,scope:d0(g.claimPath,p,u),workers:[...le.values()],registrations:[...Te.values()],demand:ke,lapses:Ne,stops:ht,orphanedRegistrations:[...gr.values()],birthLatches:e0(Ct,Date.parse(h)),queue:X,published:{version:H,checkedAt:V,newer:ee,replacement:Me,newest:pr,majorHold:$n,checks:_e,holdReason:$e}})}function fa(){return Yk({hostState:pa(),ceiling:l,rss:L,sampledAt:j,logLines:Object.fromEntries(st),displays:Object.fromEntries(Tt),now:o(),reattachedWorkerIds:[...gt],repositoryActivity:fr,activityStalenessMs:Ip*Hs.cadenceMs(),githubBalance:Wt,...Pt===void 0?{}:{deaths:Pt},metrics:Fb({observations:mt,outcomes:bt,now:o()})})}function IS(h,A){let B=Mb(mt,h,A,o());mt=B.observations,G.recordWorker(B.record).catch(()=>{})}function MS(h){bt=ro([...bt,h],A=>A.ts,{now:o()})}async function am(){return fr=await aw({...me==null?{}:{explicit:me},registrations:Te.values(),resolveHostTransport:()=>(dm(),ot),now:o(),previous:fr})}async function lm(){return be==null?null:(!Bn&&be.store&&(Gs??=be.store.read().then(h=>(Bn=!0,h!==null&&(Wt=h),h)).finally(()=>{Gs=null}),await Gs!==null)||(Wt=await bp({transport:be.transport,now:o()}),await be.store?.write(Wt).catch(()=>{})),Wt)}function LS(){if(Ze||Qr!=null||be==null)return;let h=()=>{Qr=void 0,lm().catch(()=>{}).then(()=>{if(Ze)return;let A=be.intervalMsOverride??xl(Wt??jS(),{now:o()});Qr=setTimeout(h,A),Qr.unref()})};h()}function jS(){return _l(o())}function dm(){if(!(ot!=null||Fe?.armTransport==null))try{let h=Fe.armTransport();if(h.transport!=null){ot=h.transport;return}h.unconfiguredReason!=null&&(Yt=h.unconfiguredReason)}catch(h){Yt=`this host could not resolve a tracker credential: ${h instanceof Error?h.message:String(h)}`}}async function Jd(){let h=o();Fo(h);let A=Date.parse(h);for(let[ne,de]of[...Je])Number.isFinite(A)&&A-Date.parse(de.renew_by)>de.renew_within_ms&&Je.delete(ne);let K=[...new Map([...Je,...Te]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,de)=>ne.project_label.localeCompare(de.project_label));if(K.length===0)return null;if(dm(),ot==null)return X=uw(K,h,Yt),X;X=await pw({projects:K,transport:ot,now:h,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return im(z),sm(z),X}async function cm(){let h=o();if(Ws)return ke??Yb(h);Ws=!0;try{await Qd().catch(()=>{});let A={};for(let he of le.values())A[he.project_label]=(A[he.project_label]??0)+1;let B=Date.parse(h),K=Number.isFinite(B)?B:0;for(let[he,Ot]of Object.entries(Ct)){if(Ot.probeWorkerId==null)continue;let ka=le.get(Ot.probeWorkerId);ka!=null&&K-Date.parse(ka.started_at)>=6e4&&(Ct[he]=Mu())}let z=()=>Jb({projects:[...Te.values()].map(he=>({project_label:he.project_label,selector:he.selector,argv:he.argv,workspace_path:he.workspace_path,target:he.target})),queue:Object.fromEntries((X?.projects??[]).map(he=>[he.project_label,he.depth])),live:A,nowMs:K,backoffUntilMs:Xt,birthHealth:Ct}),ne=z();ne.births.length>0&&(await Jd(),ne=z());let de=[],at=new Map,et=null;for(let he of ne.births){let Ot,ka=Si(le.keys()),Lo=Te.get(he.project_label),Ra=el({argv:he.argv,...Lo?.env==null?{}:{env:Lo.env},...Lo?.log_path==null?{}:{log_path:Lo.log_path}},{worker_id:ka,slot:he.index,workspace_path:he.workspace_path},{project_label:he.project_label});try{if(Lo?.trunk==null)Ot=await D(()=>qs(Ra));else{let Zr={workspace_path:he.workspace_path,trunk:Lo.trunk},zs=Io(Ra);if(!zs.admitted)throw new lr(zs.reason,zs);let Tm=Rf(Zr),wa=at.get(Tm);wa==null&&(wa=Yd(Zr),at.set(Tm,wa)),Ot=await D(()=>ym(Ra,Zr,wa,zs))}}catch(Zr){et=Zr instanceof Error?Zr.message:String(Zr),Zr instanceof lr&&Zr.admission?.verdict==="refused-unreachable-trunk-remote"||(Xt=(Number.isFinite(B)?B:Date.now())+Do);break}de.push({project_label:he.project_label,worker_id:Ot.worker.worker_id,pid:Ot.worker.pid,...Ot.fork_sha==null?{}:{fork_sha:Ot.fork_sha},warnings:Ra.log_path==null?[...Ot.warnings,`project ${JSON.stringify(he.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(Ot.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:Ot.warnings});let ec=Ct[he.project_label];ec?.haltUntilMs!=null&&K>=ec.haltUntilMs&&(Ct[he.project_label]=Zb(ec,Ot.worker.worker_id))}et==null&&ne.births.length>0&&(Xt=null);let Mo=new Set(de.map(he=>he.project_label));for(let he of ne.intents){if(he.queue_depth==null||he.queue_depth<=0||he.live>=he.target||Mo.has(he.project_label))continue;let Ot=et!=null&&(he.outcome==="asking"||he.outcome==="half-open-probe")?`project ${JSON.stringify(he.project_label)} was birth-eligible but the host refused it: ${et}`:he.detail;await G.recordDemandRefusal({ts:h,projectLabel:he.project_label,detail:Ot}).catch(()=>{})}return ke={version:1,at:h,requested:ne.births.length,granted:de,shortfall:ne.births.length-de.length,refusal:et,retry_after:Xt==null?null:new Date(Xt).toISOString(),projects:ne.intents},ke}finally{Ws=!1}}function $S(h){return Tn(fa(),{...We,mode:h?.mode??We.mode,project:h?.project??We.project,maxWorkers:h?.max_workers??We.maxWorkers,maxProjects:h?.max_projects??We.maxProjects,maxWidth:h?.max_width??We.maxWidth,verbose:h?.verbose??We.verbose})}function BS(h){return us(fa(),{mode:h?.mode??Kt.mode,project:h?.project??Kt.project,maxWidth:h?.max_width??Kt.maxWidth,maxRows:h?.max_rows??Kt.maxRows,maxHeight:h?.max_height??Kt.maxHeight,showDeathDetails:h?.show_death_details??Kt.showDeathDetails})}function qn(h,A,B){return p0({op:h,sessionProject:A??null,targetProject:B})}async function NS(h){let A=le.get(h.worker_id),B=qn(u0(h.command),h.session_project,A?.project_label??null);if(!B.permitted)throw new Error(B.reason);if(h.command!=="stop")throw new Error(`redskilled does not implement ${h.command}: it owns birth, death and limits, and ${h.command} is a work decision the project's own bundle makes on top of them`);let K=A!=null&&await qS(A,h.detail??"stopped by its own project");return{version:1,command:h.command,worker_id:h.worker_id,applied:K,reach:B,detail:K?`redskilled stopped Worker ${JSON.stringify(h.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(h.worker_id)} to stop`}}function Us(h){le.delete(h),gt.delete(h),st.delete(h),Tt.delete(h)}function um(h){let A=le.get(h.worker_id),B=qn("worker-heartbeat",h.session_project,A?.project_label??null);if(!B.permitted)throw new Error(B.reason);if(typeof h.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:h.worker_id,accepted:!1,reach:B,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(h.worker_id)} to publish a line for`};let K=o();st.set(h.worker_id,{line:h.last_log_line,published_at:K,source:"heartbeat"});let z=h.display===void 0?null:hw(h.display);if(z!=null){let ne=Tt.get(h.worker_id)?.display,de={display:z,published_at:K};Tt.set(h.worker_id,de),IS(de,A),(z.phase!==ne?.phase||z.step!==ne?.step)&&It("worker-activity",A,null,{phase:z.phase,step:z.step})}return h.mechanical_heal?.heal_kind==="mechanical-regeneration"&&It("worker-heal",A,`${h.mechanical_heal.cause}; cycle ${h.mechanical_heal.cycle}/${h.mechanical_heal.cap}; free=${h.mechanical_heal.free}`,{healKind:h.mechanical_heal.heal_kind}),{version:1,worker_id:h.worker_id,accepted:!0,reach:B,published_at:K,detail:`redskilled stored a line for Worker ${JSON.stringify(h.worker_id)} without reading it`}}async function GS(h,A,B){let K=`exit code=${A??"null"} signal=${B??"null"}`;if(h.unit!=null&&h.unit!==""&&await HS(h)){US(h,`its launch client ended (${K}) while unit ${JSON.stringify(h.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=h.log_path==null?null:_u(await Z(h.log_path).catch(()=>null));Us(h.worker_id),It("worker-death",h,z==null?K:`session-error: ${z}`,{exitCode:A,signal:B,refusal:z}),it()}function WS(h,A){if(!Number.isFinite(A)||A<0){Ct[h]=ci;return}let B=Ct[h]??ci,K=Xb(B,A,Date.parse(o()));Ct[h]=K,K.haltUntilMs!=null&&B.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(h)} lost ${K.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(K.haltUntilMs).toISOString()}
111
+ `)}function pm(h,A){let B=qn("project-reset",A,h);if(!B.permitted)throw new Error(B.reason);let K=Ct[h]?.haltUntilMs!=null||Ct[h]?.probeWorkerId!=null;return Ct[h]=Mu(),{version:1,project_label:h,latch:"project-birth-breaker",reset:K,reach:B,detail:K?`redskilled cleared project ${JSON.stringify(h)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(h)}; nothing changed`}}async function HS(h){try{return await I(h)===!0}catch{return!1}}function US(h,A){let B=h.unit==null?null:ae(h.unit);le.set(h.worker_id,{...h,...B!=null&&B>0?{pid:B}:{},warnings:[...h.warnings,A]}),gt.add(h.worker_id),it()}function fm(h,A){let B=qn("project-register",A,h.project_label);if(!B.permitted)throw new Error(B.reason);let K=o();Fo(K);let z=hb(h,{now:K,held:Te.get(h.project_label)});return Te.set(z.project_label,z),Un(),Hs.nudge(),hm(z.project_label),it(),{version:1,registration:z,reach:B,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 gm(h,A={}){let B=qn("project-renew",A.sessionProject,h);if(!B.permitted)throw new Error(B.reason);let K=o();Fo(K);let z=Te.get(h);if(z==null){if(gr.has(h))throw new to(h,{kind:"orphaned"});let de=[...ht].reverse().find(et=>et.project_label===h);if(de!=null)throw new to(h,{kind:"stopped",at:de.at});let at=[...Ne].reverse().find(et=>et.project_label===h);throw at!=null?new to(h,{kind:"lapsed",at:at.at,...at.registered_at==null?{}:{registered_at:at.registered_at}}):new to(h)}let ne=yb(z,{now:K,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return Te.set(ne.project_label,ne),Un(),Hs.nudge(),it(),{version:1,registration:ne,reach:B,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 mm(h,A){let B=qn("project-deregister",A,h);if(!B.permitted)throw new Error(B.reason);let K=Te.get(h)??Je.get(h),z=Te.delete(h),ne=Je.delete(h),de=z||ne;if(K!=null){let at=`redskilled released the registration for project ${JSON.stringify(h)}`;hm(h),ht.push({project_label:h,registered_at:K.registered_at,at:o(),detail:at}),ht.length>ii&&ht.splice(0,ht.length-ii)}return de&&Un(),{version:1,project_label:h,released:de,reach:B,detail:de?`redskilled released the registration for project ${JSON.stringify(h)}`:`redskilled held no registration for project ${JSON.stringify(h)}, so there was nothing to release`}}function hm(h){Je.delete(h);for(let A=Ne.length-1;A>=0;A-=1)Ne[A].project_label===h&&Ne.splice(A,1);for(let A=ht.length-1;A>=0;A-=1)ht[A].project_label===h&&ht.splice(A,1);gr.delete(h)}async function qS(h,A){let B=!1;try{B=await q(h)===!0}catch{}Us(h.worker_id);let K=h.pgid??h.pid;return It("worker-death",h,B?A:`${A}; unconfirmed-stop: the host did not confirm process group ${K} stopped, so process group ${K} may still be alive`),it(),!0}function Io(h){return Kb({ceiling:l,workers:[...le.values()],budget:h.budget,projectLabel:h.project_label,...h.reservation==null?{}:{reservation:h.reservation}})}function Yd(h){let A=Rf(h),B=Qt.get(A);if(B!=null)return B;let K=i(h).finally(()=>{Qt.get(A)===K&&Qt.delete(A)});return Qt.set(A,K),K}async function ym(h,A,B,K){let z=K??Io(h);if(!z.admitted)throw new lr(z.reason,z);let ne;try{ne=await(B??Yd(A))}catch(at){let et=yw(z,A,at);throw new lr(et.reason,et)}let de=Io(h);if(!de.admitted)throw new lr(de.reason,de);return qs(h,{admission:de,forkSha:ne})}function qs(h,A={}){let B=Vb({ceiling:l,workers:[...le.values()],budget:h.budget}),K=s({spec:h,admission:A.admission??Io(h),...A.forkSha==null?{}:{forkSha:A.forkSha},memoryCeiling:B,liveWorkerIds:le.keys(),clock:o,onExit:(at,et,Mo)=>{let he=le.get(at);if(he==null){it();return}GS(he,et,Mo).catch(()=>{})}}),z=A.forkSha??K.fork_sha??K.worker.fork_sha,ne=z==null||z===""?K.worker:{...K.worker,fork_sha:z},de={...K,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return le.set(ne.worker_id,ne),A.hook===!0&&At.track(ne.worker_id),It("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??K.admission.verdict}),it(),de}function It(h,A,B,K={}){if(Ze)return;let z=o(),ne={kind:h,worker:A,ts:z,detail:B,...K};(h==="worker-death"||h==="worker-budget-kill")&&(MS({worker_id:A.worker_id,ts:z,outcome:h}),bm(ol(ne),{startedAt:A.started_at,...K.refusal==null?{}:{refusal:K.refusal}}),WS(A.project_label,Date.parse(z)-Date.parse(A.started_at))),G.recordWorker(ne).catch(()=>{}),At.onEvent(h,A)}function bm(h,A={}){let B=tb(h,A);if(B==null)return;let K=[B,...(Pt??[]).filter(z=>z.kind!==B.kind||z.id!==B.id||z.ts!==B.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));Pt=ro(K,z=>z.ts,{now:o()})}async function Qd(){let h=await BR({workers:[...le.values()],reattached_worker_ids:gt,now_ms:Date.parse(o()),grace_ms:U,probe:I,on_dead:A=>{Us(A.worker_id),It("worker-death",A,"the host no longer confirms this Worker")}});return h.length>0&&it(),h}let Ks=JR({authorized:ff(t.machineClaimPath,t.machineClaimPathOfThisHost),interval_ms:e.orphanReaperMs,mode:e.orphanReaperMode,census:e.orphanCensus,active_worker_units:oe,dump_files:e.orphanDumpFiles,read_starttime:e.orphanStarttime,kill_group:e.orphanKillGroup,report:e.orphanReport,clock:o,held_worker_ids:()=>le.keys(),live_births:async()=>sl(await G.read()),adopt:async(h,A,B)=>{le.set(h.worker_id,h),gt.add(h.worker_id),A&&(It("worker-birth",h,B),await G.flush()),it()},record_reaped:async(h,A)=>{Us(h.worker_id),It("worker-death",h,A),await G.flush(),it()}});async function km(h,A){let B=le.get(h);if(!B)return!1;try{await q(B)}catch{}return Us(h),It("worker-budget-kill",B,A),it(),!0}async function Rm(){let h=[...le.values()];if(h.length===0)return[];let A;try{A=await se(h)}catch{return[]}let B=A.rss;L=B,j=o(),KS(A.cpu_seconds,j);let{terminations:K}=Tk({workers:h,rss:B,processes:A.processes??{}}),z=[];for(let ne of K)await km(ne.worker_id,ne.reason)&&z.push(ne);return z}function KS(h,A){for(let[B,K]of Object.entries(h)){if(typeof K!="number"||!Number.isFinite(K))continue;let z=le.get(B);z&&le.set(B,{...z,cpu:{cpu_seconds:K,sampled_at:A}})}}async function VS(){try{return ce<=0?await Re(r):await new Promise(h=>{let A=setTimeout(()=>h(Xd()),ce);A.unref(),Re(r).then(B=>{clearTimeout(A),h(B)},()=>{clearTimeout(A),h(Xd())})})}catch{return Xd()}}function Xd(){try{return xe(r)}catch{return null}}async function wm(){if(Fi(r))return _e+=1,V=o(),$e="local-build",{act:"hold",reason:"local-build"};let h=qw(await VS()),A=h.version;H=A,pr=h.newest??null,V=o(),$n=Kw({running:r,newest:pr,supervised:we});let B=Vw({running:r,published:A,supervised:we});return ee=B.act==="replace",_e+=1,$e=B.act==="hold"?B.reason:null,Me!=="in-progress"&&(Me=B.act==="replace"?"pending":"none"),B}async function ga(){let h=await wm();if(h.act!=="replace"||Me==="in-progress")return h;let A=zw(h,Se,t,n);return Me="in-progress",await G.flush().catch(()=>{}),await W.flush().catch(()=>{}),await ha({reason:"replaced"}),Jw(A,t,{...n==null?{}:{idleMs:n},io:Se}),h}function zS(){Ze||hn!=null||J<=0||(!Oe&&ve>0&&(Yr=setTimeout(()=>{ga().catch(()=>{})},ve),Yr.unref()),hn=setInterval(()=>{ga().catch(()=>{})},J),hn.unref())}async function _m(){return await c.renew(d).catch(()=>null)}function JS(){Ze||Ge!=null||Ce<=0||(Ge=setInterval(()=>{_m()},Ce),Ge.unref())}function YS(){Ze||Gn!=null||Ee<=0||(Gn=setInterval(()=>{Fo(o())},Ee),Gn.unref())}function QS(){Ze||Nn!=null||pe<=0||(Nn=setInterval(()=>{Rm().catch(()=>{})},pe),Nn.unref())}function XS(){if(Ze||je!=null||fn<=0)return;let h=A=>{je=setTimeout(()=>{je=void 0,xm().then(()=>Jd()).catch(()=>{}).finally(()=>{if(Ze)return;let B=Date.parse(o());h(mw(X,fn,Number.isFinite(B)?B:Date.now()))})},A),je.unref()};h(fn)}async function xm(){await Promise.allSettled([...Te.values()].filter(h=>h.trunk!=null).map(async h=>{let A=await Yd({workspace_path:h.workspace_path,trunk:h.trunk}),B=[...le.values()].filter(K=>K.project_label===h.project_label&&K.fork_sha!=null&&K.fork_sha!=="");await Promise.allSettled(B.map(async K=>{let z=await a({workspace_path:h.workspace_path,fork_sha:K.fork_sha,head_sha:A}),ne=le.get(K.worker_id);if(ne==null||ne.fork_sha!==K.fork_sha)return;let de={...ne,base_head_sha:A,base_commits_ahead:z};le.set(K.worker_id,de),(ne.base_head_sha!==A||ne.base_commits_ahead!==z)&&It("worker-drift",de,null,{baseHeadSha:A,baseCommitsAhead:z})}))}))}function ZS(){Ze||Wn!=null||gn<=0||(Wn=setInterval(()=>{cm().catch(()=>{})},gn),Wn.unref())}function it(){Ze||(mn&&clearTimeout(mn),mn=setTimeout(()=>{Qd().catch(()=>{}).then(()=>Em())},n),mn.unref())}function Em(){return le.size>0?(it(),"held-by-workers"):(Fo(o()),Te.size>0?(it(),"held-by-registrations"):(eT(),"exited"))}async function eT(){if(!Fi(r)){if((await ga().catch(()=>null))?.act==="replace"||Xr||Ze)return;if(le.size>0||Te.size>0){it();return}}await ha({reason:"idle"})}function ma(h){return t0({reason:h,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...le.values()],projects:[...Te.keys()]})}function vm(h){if(Hn!=null)return Hn;let A=h.reason??"requested",B=h.note?.trim();return Hn=G.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:B==null||B===""?ma(A).detail:`${ma(A).detail} \u2014 ${B}`,...h.signal==null?{}:{signal:h.signal}}).catch(()=>{}),Hn}async function ha(h={}){if(Xr)return await zd;Xr=!0,await vm(h),Ze=!0,mn&&clearTimeout(mn),Nn&&clearInterval(Nn),Ge&&clearInterval(Ge),Gn&&clearInterval(Gn),Ks.stop(),hn&&clearInterval(hn),Yr&&clearTimeout(Yr),Hs.stop(),Qr&&clearTimeout(Qr),je&&clearTimeout(je),Wn&&clearInterval(Wn),await G.flush().catch(()=>{}),await W.flush().catch(()=>{}),await c.release(d),await g.release(u),F.close();for(let A of R)A.destroy();return await new Promise(A=>F.once("close",()=>A())),await e$(t.socketPath,{force:!0}),nm(),await zd}let Vs=await G.read().catch(()=>[]),ya=new Map;for(let h of Vs){if(h.event==="worker-birth"){ya.set(h.worker_id,h.ts);continue}let A=_u(h.detail);bm(h,{...ya.get(h.worker_id)==null?{}:{startedAt:ya.get(h.worker_id)},...A==null?{}:{refusal:A}}),(h.event==="worker-death"||h.event==="worker-budget-kill")&&ya.delete(h.worker_id)}bt=ro(Vs.filter(h=>h.event==="worker-death"||h.event==="worker-budget-kill").map(h=>({worker_id:h.worker_id,ts:h.ts,outcome:h.event})),h=>h.ts,{now:o()}),mt=Lb(Vs,o());let tT=sl(Vs),Sm=new Set(await Promise.resolve(oe()).catch(()=>[])),Zd=await pf(tT,h=>h.unit!=null&&Sm.has(h.unit)?!0:I(h));for(let h of Zd.alive){let A=KR(h),B=A.unit==null||Ke(A.pid)?null:ae(A.unit);le.set(A.worker_id,B!=null&&B>0?{...A,pid:B}:A),gt.add(A.worker_id)}for(let h of Zd.dead)It("worker-death",h,"the Worker ended while no daemon was watching");let rT=qR({units:[...Sm],held:[...le.values()],mainPid:ae,now:$});for(let h of rT)le.set(h.worker_id,h),gt.add(h.worker_id),It("worker-birth",h,"adopted from an active unit with no birth on this lane");let ba=wb(_t,le.values(),$);for(let h of ba.live)Te.set(h.project_label,h);for(let h of ba.recoverable)Je.set(h.project_label,h);for(let h of ba.abandoned)om(h,Date.parse($),`redskilled lapsed the recovered registration for project ${JSON.stringify(h.project_label)}: no session renewed it on cadence and no attributed Worker is alive`);_t.length>0&&Un(),im(o()),await _b({eventLane:G,laneEvents:Vs,heldLease:f,ownerPid:d.pid,startedAt:$,socketPath:t.socketPath,recovery:ba});for(let h of Zd.alive){if(h.log_path==null||st.has(h.worker_id))continue;let A=await Z(h.log_path).catch(()=>null);A==null||A.trim()===""||st.set(h.worker_id,{line:A,published_at:o(),source:"rehydrated"})}F.on("connection",h=>{R.add(h),h.once("close",()=>R.delete(h)),it(),vb(h,async(A,B)=>{it();let K=await nT(A);B(K),A.op==="shutdown"&&setImmediate(()=>void ha({reason:"requested"}).catch(()=>{}))})});async function nT(h){try{if(h.op==="ping")return{id:h.id,ok:!0,value:{pong:!0,protocol_version:Gl,daemon_version:r,pid:d.pid}};if(h.op==="host-state")return{id:h.id,ok:!0,value:pa()};if(h.op==="reap")return{id:h.id,ok:!0,value:await Ks.reap(h.report===!0)};if(h.op==="statusline-payload")return{id:h.id,ok:!0,value:Bp(fa(),h.extras)};if(h.op==="statusline-string")return{id:h.id,ok:!0,value:$S(h.render)};if(h.op==="statusline-dashboard")return{id:h.id,ok:!0,value:BS(h.dashboard)};if(h.op==="worker-heartbeat")return{id:h.id,ok:!0,value:um(h.heartbeat)};if(h.op==="project-register"){let B=fm(h.registration,h.session_project);return await W.flush(),{id:h.id,ok:!0,value:B}}if(h.op==="project-renew"){let B=gm(h.project_label,{...h.session_project==null?{}:{sessionProject:h.session_project},...h.renew_within_ms==null?{}:{renewWithinMs:h.renew_within_ms},...h.launch==null?{}:{launch:h.launch}});return await W.flush(),{id:h.id,ok:!0,value:B}}if(h.op==="project-deregister"){let B=mm(h.project_label,h.session_project);return await W.flush(),{id:h.id,ok:!0,value:B}}if(h.op==="project-reset")return{id:h.id,ok:!0,value:pm(h.project_label,h.session_project)};if(h.op==="worker-command")return{id:h.id,ok:!0,value:await NS(h.command)};if(h.op==="worker-start"){let B=qn("worker-start",h.session_project,h.spec.project_label);if(!B.permitted)return{id:h.id,ok:!1,error:B.reason};let K=await D(()=>h.spec.trunk==null?qs(h.spec):ym(h.spec,{workspace_path:h.spec.workspace_path,trunk:h.spec.trunk}));return await G.flush().catch(()=>{}),{id:h.id,ok:!0,value:{worker:K.worker,admission:K.admission,fork_sha:K.fork_sha,warnings:K.warnings}}}if(h.op==="shutdown"){let B=ma("requested");return await vm({reason:"requested",...h.detail==null?{}:{note:h.detail}}),{id:h.id,ok:!0,value:B}}let A=h;return{id:A.id??l_(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:h.id??l_(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return it(),QS(),JS(),YS(),Ks.arm(),zS(),Hs.arm(),LS(),XS(),ZS(),{socketPath:t.socketPath,lease:T.lease,startedAt:$,closed:zd,startWorker:qs,admit:Io,ceiling:()=>l,killWorkerOverBudget:km,sampleMemoryBudgets:Rm,renewLease:_m,pollRepositoryActivity:am,pollGithubBalance:lm,githubBalance:()=>Wt,pollQueueDiscovery:Jd,queueDiscovery:()=>X,driveDemand:cm,demand:()=>ke,sweepWorkerLiveness:Qd,sweepOrphanProcesses:()=>Ze?Promise.resolve({adopted:0,reaped:0,suspects:0}):Ks.sweep(),censusOrphanProcesses:()=>Ks.census(),publishWorkerHeartbeat:um,reattached:()=>[...gt].map(h=>le.get(h)).filter(h=>h!=null),flushEvents:async()=>{await Q,await At.waitForSettled(),await G.flush()},trackWorker(h){le.set(h.worker_id,h),It("worker-birth",h,null),it()},releaseWorker(h){let A=le.get(h),B=le.delete(h);return gt.delete(h),st.delete(h),Tt.delete(h),A&&It("worker-death",A,"released by the daemon"),it(),B},workerCount:()=>le.size,registerProject:fm,renewProject:gm,resetProjectBirthBreaker:pm,deregisterProject:mm,registrations:()=>pa().registrations??[],hostState:pa,refreshRegisteredTrunks:xm,statuslinePayload:fa,evaluateIdle:Em,observePublishedVersion:wm,checkForReplacement:ga,stopReport:ma,stop:ha}}function Pf(e){let t=e.socketPath,r=r$(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 ${c_(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 \`${An("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 \`${An("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Af(e){return`${e.reason} ${e.repair}`}function r$(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:n$(t.acquired_at,e.now??new Date().toISOString())}}function n$(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 c_(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`}async function u_(e,t,r){let n;try{process.kill(t,"SIGTERM")}catch(s){n=`SIGTERM could not be sent: ${s instanceof Error?s.message:String(s)}`}let o=await Cf(e,t,r);return n0({socketPath:e.socketPath,pid:t,stopped:o.complete,pending:n==null?o.pending:[n,...o.pending]})}async function Cf(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await qt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await po(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Ke(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))}}import{spawnSync as o$}from"node:child_process";import{existsSync as s$}from"node:fs";import{basename as p_,dirname as i$,join as f_}from"node:path";async function bs(e){let r=await ui(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==dl().uid||!Ke(r.pid))return{paths:e,joined:!1};let n=i$(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:f_(n,p_(e.lockPath)),leasePath:f_(n,p_(e.leasePath))}}}async function g_(e){let r=await ui(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Ke(r.pid)))throw new sn(e.machineClaimPath,"held",r)}async function m_(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[Bu]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==cl({env:n,machineIdHash:e.machineIdHash}))||!(o??s$(ys(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=o$("systemctl",["--user","start",dr],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${dr}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await a$(e,t,r),!0}async function a$(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await bs(e);if(await qt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${dr} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}on();var Df=1e4,Cn=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"?`. ${Af(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},Of=class extends Cn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Ii=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function Mi(e,t={}){let r=t.answers??await qt(e.socketPath),n=await po(e.leasePath).catch(()=>{});return Pf({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Ke(n.pid)})}async function Ff(e,t={}){let r=await bs(e);try{let n=await u$(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof sn||n instanceof Cn)throw n;let o=await Mi(r.paths).catch(()=>{});throw new Cn(r.paths.socketPath,n,o)}}async function u$(e,t){if(await d$(c$(e.socketPath),{recursive:!0,mode:448}),await qt(e.socketPath))return"already-running";await g_(e);let r=await f$(e,t);if(r!=null)return r;if(await m_(e,t,Df))return"joined";let n=await jy(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??p$});if(!n.acquired)return await h_(e,t,void 0,n),"joined";try{if(await qt(e.socketPath))return"already-running";let o=await g$(e,t);return await h_(e,t,o),"spawned"}finally{await $y(n)}}function p$(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
112
+ `)}async function f$(e,t){let r=await Mi(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Df,o=Date.now()+n;for(;;){if(await qt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await Mi(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new Of(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 If(e,t,r={}){await Ff(e,r);let n=(await bs(e)).paths,o;try{o=await fs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:y_()})}catch(s){throw new Cn(n.socketPath,s,await Mi(n).catch(()=>{}))}if(!o.ok)throw new Ii(o.error);return o.value}async function b_(e,t={},r={}){let n=(await bs(e)).paths;if(!await qt(n.socketPath)){let a=await Mi(n,{answers:!1}).catch(()=>{});return a?.kind!=="held-unresponsive"||a.holder==null?r0(n.socketPath):await u_(n,a.holder.pid,t.settleTimeoutMs??5e3)}let o;try{o=await fs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:y_(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Cn(n.socketPath,a)}if(!o.ok)throw new Ii(o.error);if(!ju(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await Cf(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 k_(e,t={}){let r=await If(e,{op:"host-state"},t);if(!_R(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function R_(e,t={},r={}){let n=await If(e,{op:"reap",report:t.report===!0},r);if(!RR(n))throw new Error("redskilled daemon returned a malformed reap report");return n}async function w_(e,t={},r){let n=await If(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!Pl(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function __(e,t=We,r={}){let n=await w_(e,r,{vitals:!0,logs:t.verbose,display:!0});return Tn(n,t)}async function x_(e,t={},r={}){let n=await w_(e,r,{vitals:!0,logs:!0,display:!0});return us(n,{...Kt,...t})}async function h_(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Df);for(;;){if(await qt(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 ${By(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 g$(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await Jy({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...bn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=l$(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}on();import{readFile as m$}from"node:fs/promises";import{homedir as h$,totalmem as y$}from"node:os";import{join as b$}from"node:path";var k$="REDSKILLED_IDLE_MS",R$=".red/config.yaml";async function v_(e=h$()){let t=b$(e,R$),r;try{r=await m$(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Mf(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${E_(n)}`),{})}try{let n=_$(r);return{...nd(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...nd(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...nd(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...nd(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Mf(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${E_(n)}`),{}}}function S_(e={}){let t=e.env??process.env,r=e.config??{},n=ll(t,e.totalMemoryBytes??y$(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=w$(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[k$],r.idleMs);if(o==null)return{ceiling:n,idleMs:Jo,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Mf(`redskilled: ${v$(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Jo}ms instead.`),{ceiling:n,idleMs:Jo,idleMsSource:"derived-default"})}function w$(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 nd(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function _$(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=x$(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(".")]=E$(c.trim())}return t}function x$(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 E$(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function v$(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function E_(e){return e instanceof Error?e.message:String(e)}function Mf(e){process.stderr.write(`${e}
113
+ `)}import{chmod as I_,mkdir as L_,readFile as j_,stat as N$,writeFile as $_}from"node:fs/promises";import{homedir as $f}from"node:os";import{dirname as B_,join as od}from"node:path";import{join as C$}from"node:path";import{existsSync as S$,readFileSync as vz}from"node:fs";import{dirname as T$,join as P$}from"node:path";function T_(e,t){let r=e;for(let n=0;n<16;n++){let o=P$(r,t);if(S$(o))return o;let s=T$(r);if(s===r)break;r=s}return null}function A$(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function ks(e,t){let r=[];for(let n of e.split(`
114
+ `)){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 A$(d)}}var P_=["local","tmp","host"],O$="local",Li="plugins.dev.workspace.target";var Lf=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function C_(e){let t=ks(e,Li),r=I$(t??"").trim();return r===""?void 0:r}function O_(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:O$};let r=P_.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 Lf(`${Li}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${P_.join(", ")}) or an absolute parent directory for Workers.`)}function D_(e,t){return e.kind==="preset"?e.preset==="host":F$(D$(e.parentDir,t),jt(t))}function D$(e,t){return e==="~"?A_(t):e.startsWith("~/")?C$(t,e.slice(2)):A_(e)}function F$(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function A_(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function I$(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}on();import{createHash as M$}from"node:crypto";import{hostname as L$}from"node:os";import{join as ji}from"node:path";var Rs="redskilled.sock",j$="REDSKILLED_SESSION";function $$(e={}){let t=e.env??process.env,r=t[j$]?.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 B$(e={}){return F_(e.host??L$())}function zt(e={}){let t=$$(e),r=e.runtimeDir??za({key:`redskilled:${t}`,socketFileName:Rs,env:e.env,uid:e.uid}),n=B$(e),o=cl({env:e.env,machineIdHash:n,platform:e.platform}),s=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:F_(t),machineIdHash:n,runtimeDir:r,socketPath:ji(r,Rs),lockPath:ji(r,"redskilled.spawn.lock"),leasePath:ji(r,"redskilled.lease.toon"),eventLanePath:ji(jt(s),pb),registrationIntentPath:ji(jt(s),"redskilled.registrations.toon"),machineClaimPathOfThisHost:o,machineClaimPath:e.machineClaimPath??o}}function F_(e){return M$("sha256").update(e).digest("hex").slice(0,12)}var jf=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${An("red-skills-redskilled",["provision"])}\` directly`,G$=`# Host-scoped redskilled policy. This file is never read from a repository.
114
115
  plugins:
115
116
  dev:
116
117
  redskilled:
@@ -118,15 +119,15 @@ plugins:
118
119
  # memory_ceiling: 8G
119
120
  # validation_ceiling: 2
120
121
  # idle_ms: 300000
121
- `;async function C_(e=Pf()){let t=$t(e),r=ed(A_(t),"config.yaml"),n=await Cf(t),o=!1,s=!1;n===void 0?(await S_(t,{recursive:!0,mode:on}),await E_(t,on),o=!0):n!==on&&(await E_(t,on),s=!0);let i=!1;try{await P_(r,w$,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:on,configPath:r,configCreated:i}}var O_={needed:!1,declaredBy:`no ${Oi} in view`};async function Af(e={}){let t=e.homeDir??Pf(),r=e.declaredTarget?.trim();if(r)return v_(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return O_;let o=ed(n,".red","config.yaml"),s=await T_(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=R_(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:v_(i,t,o)}function v_(e,t,r){let n=`${Oi}: ${e} (${r})`;try{return{needed:__(w_(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function D_(e){let t=[_$(e),x$(e),E$(e),v$(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 _$(e){let t=e.homeNeed??O_;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Tf}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??on;return r!==on?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${on.toString(8)}`,fix:`${Tf} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function x$(e){return jr(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 \`${Pn("red-skills-redskilled",["provision"])}\``}}function E$(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:`${Tf} \u2014 it starts the daemon and waits for the socket`}}function v$(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 F_(e={}){let t=e.env??process.env,r=e.homeDir??Pf(),n=e.paths??Kt({env:t}),o=$t(r),[s,i,a]=await Promise.all([Cf(o),er(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Af({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:kn(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await T$(P$(e,t,r),t)}}var S$="redskilled.service";function I_(e){return ed(e,"systemd","user",S$)}function M_(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","LimitCORE=0",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
122
- `)}async function L_(e){let t=I_(e.configHome);return await Cf(t)!==void 0?{path:t,status:"already-present"}:(await S_(A_(t),{recursive:!0}),await P_(t,e.unit,"utf8"),{path:t,status:"installed"})}async function T$(e,t){if(process.platform!=="linux")return"unsupported";try{return await T_(I_(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function P$(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??ed(r,".config")}async function Cf(e){try{return(await R$(e)).mode&511}catch{return}}import{readdir as $_,rm as A$,stat as C$}from"node:fs/promises";import{dirname as O$,join as Of}from"node:path";var D$=5*6e4,F$="redskilled.";function I$(e={}){let t=e.env??process.env,r=i=>O$(Wa({key:"redskilled:reclaim-probe",socketFileName:bs,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 B_(e={}){let t=e.roots??I$(e),r=e.graceMs??D$,n=e.now??Date.now,o=e.isPidAlive??Ye,s=e.answers??$$,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await $_(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await M$(Of(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 M$(e,t){let r;try{r=(await $_(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:N_(i),removed:[]}}let n=r.filter(i=>i.startsWith(F$));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await L$(Of(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 j_(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(bs)&&await t.answers(Of(e,bs)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await j$(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 j_(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function j_(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await A$(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:N_(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function L$(e){try{return await ms(e)}catch{return}}async function j$(e,t){try{return Math.max(0,t()-(await C$(e)).mtimeMs)}catch{return}}async function $$(e){try{return(await us({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function N_(e){return e instanceof Error?e.message:String(e)}var td,rd=new Map,B$=256;function U_(){if(td!==void 0)return td;let e=Intl.Segmenter;return td=e?new e(void 0,{granularity:"grapheme"}):null,td}function Df(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 G_(e){let t=rd.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return rd.size>=B$&&rd.clear(),rd.set(e,r),r}function W_(e){return e>=127462&&e<=127487}function H_(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function N$(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function G$(e,t,r){if(G_(t)||N$(t)||H_(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Df(n)||G_(n)||H_(n)||W_(t)&&W_(n)||t===13&&n===10)}function W$(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&&!Df(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function q_(e){let t=U_();if(!t)return W$(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 Ff(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(G$(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=U_();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&&!Df(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var ks="\x1B",H$="\x07",xz=`${ks}\\`;function U$(e){return e>=64&&e<=126}function q$(e,t){for(let r=t;r<e.length;r++){if(e[r]===H$)return r+1;if(e[r]===ks&&e[r+1]==="\\")return r+2}return e.length}function co(e,t){if(e[t]!==ks)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:ks,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!U$(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=q$(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 K_(e){return e<=31||e>=127&&e<=159}function Rs(e){let t="",r=0;for(;r<e.length;){if(e[r]===ks){let o=co(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!K_(n)||e[r]===`
123
- `||e[r]===" ")&&(t+=e[r]),r++}return t}function If(e){let t="",r=0;for(;r<e.length;){if(e[r]===ks){let o=co(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!K_(n)||e[r]===`
124
- `||e[r]===" ")&&(t+=e[r]),r++}return t}function V_(e){return If(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var J_="\x1B",z_=/^[\x20-\x7e]*$/,nd=new Map,K$=256;function V$(e){return If(e)}function be(e){if(z_.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return Y_(t);let r=V$(e);if(z_.test(r))return r.length;let n=0;for(let{segment:o}of q_(r))n+=z$(o);return n}function uo(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=Ff(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function z$(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?Y_(t[0]):t.every(o=>o<=31||o>=127&&o<=159||Q_(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(X_)?2:1}function Y_(e){let t=nd.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||Q_(e)?r=0:r=X_(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,nd.size>=K$&&nd.clear(),nd.set(e,r),r}function Q_(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 X_(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||J$(e)}function J$(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 po(e,t,r){if(t<=0)return e.split(`
122
+ `;async function N_(e=$f()){let t=jt(e),r=od(B_(t),"config.yaml"),n=await Nf(t),o=!1,s=!1;n===void 0?(await L_(t,{recursive:!0,mode:nn}),await I_(t,nn),o=!0):n!==nn&&(await I_(t,nn),s=!0);let i=!1;try{await $_(r,G$,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:nn,configPath:r,configCreated:i}}var G_={needed:!1,declaredBy:`no ${Li} in view`};async function Bf(e={}){let t=e.homeDir??$f(),r=e.declaredTarget?.trim();if(r)return M_(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return G_;let o=od(n,".red","config.yaml"),s=await j_(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=C_(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:M_(i,t,o)}function M_(e,t,r){let n=`${Li}: ${e} (${r})`;try{return{needed:D_(O_(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function W_(e){let t=[W$(e),H$(e),U$(e),q$(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 W$(e){let t=e.homeNeed??G_;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:jf}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??nn;return r!==nn?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${nn.toString(8)}`,fix:`${jf} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function H$(e){return jr(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 \`${An("red-skills-redskilled",["provision"])}\``}}function U$(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:`${jf} \u2014 it starts the daemon and waits for the socket`}}function q$(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 H_(e={}){let t=e.env??process.env,r=e.homeDir??$f(),n=e.paths??zt({env:t}),o=jt(r),[s,i,a]=await Promise.all([Nf(o),qt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Bf({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:kn(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await V$(z$(e,t,r),t)}}var K$="redskilled.service";function U_(e){return od(e,"systemd","user",K$)}function q_(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","LimitCORE=0",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
123
+ `)}async function K_(e){let t=U_(e.configHome);return await Nf(t)!==void 0?{path:t,status:"already-present"}:(await L_(B_(t),{recursive:!0}),await $_(t,e.unit,"utf8"),{path:t,status:"installed"})}async function V$(e,t){if(process.platform!=="linux")return"unsupported";try{return await j_(U_(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function z$(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??od(r,".config")}async function Nf(e){try{return(await N$(e)).mode&511}catch{return}}import{readdir as z_,rm as J$,stat as Y$}from"node:fs/promises";import{dirname as Q$,join as Gf}from"node:path";var X$=5*6e4,Z$="redskilled.";function eB(e={}){let t=e.env??process.env,r=i=>Q$(za({key:"redskilled:reclaim-probe",socketFileName:Rs,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 J_(e={}){let t=e.roots??eB(e),r=e.graceMs??X$,n=e.now??Date.now,o=e.isPidAlive??Ke,s=e.answers??oB,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await z_(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await tB(Gf(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 tB(e,t){let r;try{r=(await z_(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:Y_(i),removed:[]}}let n=r.filter(i=>i.startsWith(Z$));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await rB(Gf(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 V_(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(Rs)&&await t.answers(Gf(e,Rs)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await nB(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 V_(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function V_(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await J$(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:Y_(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function rB(e){try{return await po(e)}catch{return}}async function nB(e,t){try{return Math.max(0,t()-(await Y$(e)).mtimeMs)}catch{return}}async function oB(e){try{return(await fs({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function Y_(e){return e instanceof Error?e.message:String(e)}var sd,id=new Map,sB=256;function ex(){if(sd!==void 0)return sd;let e=Intl.Segmenter;return sd=e?new e(void 0,{granularity:"grapheme"}):null,sd}function Wf(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 Q_(e){let t=id.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return id.size>=sB&&id.clear(),id.set(e,r),r}function X_(e){return e>=127462&&e<=127487}function Z_(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function iB(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function aB(e,t,r){if(Q_(t)||iB(t)||Z_(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Wf(n)||Q_(n)||Z_(n)||X_(t)&&X_(n)||t===13&&n===10)}function lB(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&&!Wf(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function tx(e){let t=ex();if(!t)return lB(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 Hf(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(aB(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=ex();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&&!Wf(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var ws="\x1B",dB="\x07",iJ=`${ws}\\`;function cB(e){return e>=64&&e<=126}function uB(e,t){for(let r=t;r<e.length;r++){if(e[r]===dB)return r+1;if(e[r]===ws&&e[r+1]==="\\")return r+2}return e.length}function fo(e,t){if(e[t]!==ws)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:ws,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!cB(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=uB(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 rx(e){return e<=31||e>=127&&e<=159}function _s(e){let t="",r=0;for(;r<e.length;){if(e[r]===ws){let o=fo(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!rx(n)||e[r]===`
124
+ `||e[r]===" ")&&(t+=e[r]),r++}return t}function Uf(e){let t="",r=0;for(;r<e.length;){if(e[r]===ws){let o=fo(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!rx(n)||e[r]===`
125
+ `||e[r]===" ")&&(t+=e[r]),r++}return t}function nx(e){return Uf(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var sx="\x1B",ox=/^[\x20-\x7e]*$/,ad=new Map,pB=256;function fB(e){return Uf(e)}function ye(e){if(ox.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return ix(t);let r=fB(e);if(ox.test(r))return r.length;let n=0;for(let{segment:o}of tx(r))n+=gB(o);return n}function go(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=Hf(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function gB(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?ix(t[0]):t.every(o=>o<=31||o>=127&&o<=159||ax(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(lx)?2:1}function ix(e){let t=ad.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||ax(e)?r=0:r=lx(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,ad.size>=pB&&ad.clear(),ad.set(e,r),r}function ax(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 lx(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||mB(e)}function mB(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 mo(e,t,r){if(t<=0)return e.split(`
125
126
  `);let n=[];for(let o of e.split(`
126
- `)){if(r==="truncate"||r==="truncate-end"){n.push(un(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(un(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(un(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...Y$(o,t))}return n}function Y$(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=Q$(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function Q$(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===J_){let l=co(e,s);if(l){n+=l.value,s=l.end;continue}}let i=uo(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 un(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"?X$(e,t,l,d,i):n==="middle"?eB(e,t,l,d,i):Z$(e,t,l,d,i)}function X$(e,t,r,n,o){let s=t-n,i=ws(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 Z$(e,t,r,n,o){let s=t-n,i=ws(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 eB(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=ws(e,0,i),d=ws(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 ws(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]===J_){let f=co(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=Ff(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 yt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function Fi(e,t){let r=e;for(let n=0;n<t.length;n++)r=yt(r,t.charCodeAt(n));return r}function Mf(e,t,r){if(t===void 0)return yt(e,117);if(t===null)return yt(e,110);switch(typeof t){case"boolean":return yt(yt(e,98),t?49:48);case"number":return Fi(yt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return Fi(yt(e,105),t.toString());case"string":return Fi(yt(e,115),t);case"function":return r.ignoreFunctions===!1?yt(e,102):e;case"object":{if(Array.isArray(t)){let i=yt(e,91);for(let a of t)i=Mf(i,a,r),i=yt(i,124);return yt(i,93)}let n=yt(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=Fi(yt(n,107),i),n=yt(n,58),n=Mf(n,a,r),n=yt(n,59)))}return yt(n,125)}default:return Fi(yt(e,63),String(t))}}function Nt(e,t={}){return Mf(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as tB}from"node:async_hooks";var Wr=Symbol("tuiuiu.runtime-resource-dispose"),Z_=new tB,od=new Set,rB=1,_s={id:0,resources:new Map};function ex(){let e={id:rB++,resources:new Map};return od.add(e),e}function nB(e){od.delete(e)}function tx(e){if(e!==null&&typeof e=="object"&&Wr in e)try{e[Wr]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function oB(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)tx(r)}function xs(e){nB(e),oB(e)}function qe(e,t){return Z_.run(e,t)}function pn(e,t){return(...r)=>qe(e,()=>t(...r))}function Lf(){return Z_.getStore()??null}function Ge(e){if(e)return e;let t=Lf();return t||(od.size===1?od.values().next().value??_s:_s)}function Hr(){return _s}function De(e,t,r){let n=Ge(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function Gt(e,t){return _s.resources.has(e)||_s.resources.set(e,t()),_s.resources.get(e)}function sd(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),tx(n)}var Ae;(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"})(Ae||(Ae={}));function jf(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function sB(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 $f=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=jf();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Ae.NONE,subtreeFlags:Ae.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=jf()}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&Ae.LAYOUT&&sB(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=Ae.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Ae.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=Ae.NONE,r.subtreeFlags=Ae.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Ae.LAYOUT|Ae.CHILDREN|Ae.FORCE_FULL),r.subtreeFlags&=~(Ae.LAYOUT|Ae.CHILDREN|Ae.FORCE_FULL)}markChildrenDirty(t,r=Ae.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!==Ae.NONE||r.subtreeFlags!==Ae.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Ae.NONE&&r.subtreeFlags===Ae.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 Nt({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=jf()}},iB=Symbol("tuiuiu.dirty-registry");function Ur(e){return De(iB,()=>new $f,e)}function rx(e){Ur().beginFrame(e)}function nx(e,t){Ur().registerNode(e,t)}function Cn(e,t=Ae.CONTENT){Ur().markDirty(e,t)}function ox(e){Ur().markLayoutClean(e)}function Ii(e){Ur().noteReuse(e)}function fo(e){Ur().noteFresh(e)}function id(e){return Ur().canReuseSubtree(e)}function sx(){return Ur().getDiagnostics()}function Mi(){Ur().clearGlobalDirty()}function Es(e){Ur().markClean(e.node);for(let r of e.children)Es(r)}var ix=new WeakMap;function St(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 ad(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 Dt=e=>e==="auto"?0:St(e,"margin"),aB=new Set(["layoutRef","__scrollQuery"]),lB=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"]),dB=new Set(["children","wrap"]);function cB(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function vs(e){let t=e.props??{},r=e.type==="text"?dB:lB,n={};for(let o of r)o in t&&(n[o]=t[o]);return Nt(n,{ignoreKeys:aB})}function uB(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 pB(e,t){if(!id(e)){fo("layout");return}let r=ix.get(e);if(!r){fo("layout");return}if(r.ctxKey!==t){Cn(e,Ae.LAYOUT),fo("layout");return}let n=vs(e);if(r.propsKey!==n||!uB(e,r.childRefs)){Cn(e,r.propsKey!==n?Ae.LAYOUT:Ae.CHILDREN),fo("layout");return}return Ii("layout"),r.layout}function Li(e,t,r,n){ix.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),ox(e)}function wt(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 ax(e,t,r){if(t<=e.height)return wt(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return wt(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=>wt(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>wt(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)=>wt(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)=>wt(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Wt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function lx(e,t=0,r=0){let n=t+e.x,o=r+e.y;Wt(e.node,{...e,x:n,y:o});let s=e.node.props,i=St(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=St(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)lx(u,d,c)}function dx(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)),rx(e);let n=qr(e,{x:0,y:0,width:t,height:r},null);return lx(n),n}function fB(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=po(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 gB(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 mB(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 qr(e,t,r){nx(e,r);let n=cB(t),o=pB(e,n);if(o)return Wt(e,o),o;let s;if(e.type==="text")return s=fB(e,t),Li(e,n,vs(e),s),s;if(e.type==="spacer")return s=gB(e,t),Li(e,n,vs(e),s),s;if(e.type==="newline")return s=mB(e,t),Li(e,n,vs(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:[]},Wt(e,s),Li(e,n,vs(e),s),s;let a=St(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=St(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=St(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=St(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Dt(i.marginTop??i.marginY??i.margin),p=Dt(i.marginBottom??i.marginY??i.margin),g=Dt(i.marginLeft??i.marginX??i.margin),f=Dt(i.marginRight??i.marginX??i.margin),b=i.borderStyle&&i.borderStyle!=="none"?1:0,h=ji(i.width,t.width),w=ji(i.height,t.height),S=i.width!==void 0&&i.width!=="auto",L=i.height!==void 0&&i.height!=="auto",A=Math.max(0,(S?h:t.width)-d-c-b*2),M=Math.max(0,(L?w:t.height)-a-l-b*2),N=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:M,W=[],H=i.flexDirection??"column",F=H==="row"||H==="row-reverse",U=H==="row-reverse"||H==="column-reverse",q=St(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 me=U?[...ae].reverse():ae;F?W.push(...cx(me,A,N,q,i,L,e)):W.push(...yB(me,A,N,q,i,e))}let se=0,X=0;if(F)for(let me of W){let ie=me.node.props,xe=Dt(ie.marginRight??ie.marginX??ie.margin),Fe=Dt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,me.x+me.width+xe),X=Math.max(X,me.y+me.height+Fe)}else for(let me of W){let ie=me.node.props,xe=Dt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,me.width),X=Math.max(X,me.y+me.height+xe)}let Ce=ad(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+b*2,ke=S?h:Ce?t.width:Ee,J=L?w:X+a+l+b*2,ce=St(i.minWidth,"minWidth"),_e=St(i.minHeight,"minHeight");if(ke=Math.max(ke,ce),J=Math.max(J,_e),i.maxWidth!==void 0&&(ke=Math.min(ke,St(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,St(i.maxHeight,"maxHeight"))),F&&i.alignItems==="stretch"){let me=Math.max(0,J-a-l-b*2);for(let ie=0;ie<W.length;ie++){let xe=W[ie],Fe=xe.node.props;Fe.height===void 0&&(W[ie]=ax(xe,Math.max(xe.height,me),Fe),Wt(xe.node,W[ie]))}}let Oe=t.x+g,ve=t.y+u,Re=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let me of oe){let ie=me.props,xe=qr(me,{x:0,y:0,width:A,height:N},e),Fe=Oe+d+b,rt=ve+a+b;ie.left!==void 0?Fe=Oe+d+b+ie.left:ie.right!==void 0&&(Fe=Oe+Re-c-b-xe.width-ie.right),ie.top!==void 0?rt=ve+a+b+ie.top:ie.bottom!==void 0&&(rt=ve+Se-l-b-xe.height-ie.bottom);let zt=wt(xe,{x:Fe,y:rt});Wt(me,zt),W.push(zt)}return s={x:Oe,y:ve,width:Re,height:Se,node:e,children:W},Wt(e,s),Li(e,n,vs(e),s),s}function cx(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return hB(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let H of e){let F=H.props,U=F.flexGrow;U===void 0?U=F.width==="fill"||H.type==="spacer"?1:0:U=ad(U,"flexGrow");let q=St(F.minWidth,"minWidth"),oe=F.flexBasis==="content"?qr(H,{x:0,y:0,width:t,height:r},i).width:F.flexBasis===void 0||F.flexBasis==="auto"?q:ji(F.flexBasis,t),ae=F.flexShrink===void 0?1:ad(F.flexShrink,"flexShrink"),se=Dt(F.marginLeft??F.marginX??F.margin),X=Dt(F.marginRight??F.marginX??F.margin);if(U>0)c+=U,d+=oe+se+X,u.push({node:H,flex:U,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:X});else{let Ce=F.width!==void 0&&F.width!=="auto"&&F.width!=="fill"?ji(F.width,t)+se+X:t,Ee=qr(H,{x:0,y:0,width:Ce,height:r},i);d+=Ee.width+se+X,u.push({node:H,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:X,layout:Ee,measuredCtxWidth:Ce})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let H=u.map(()=>0),F=Math.ceil(p);for(;F>0;){let U=u.map((X,pe)=>{let Ce=Math.max(0,Math.floor(X.basis-X.minWidth)),Ee=Math.max(0,Ce-H[pe]);return{index:pe,capacity:Ee,maxReduction:Ce,weight:X.shrink*X.basis}}).filter(X=>X.capacity>0&&X.weight>0),q=U.reduce((X,pe)=>X+pe.weight,0);if(q<=0)break;let oe=U.map(X=>{let pe=F*X.weight/q,Ce=Math.min(X.capacity,Math.floor(pe));return{...X,exact:pe,whole:Ce,fraction:pe-Math.floor(pe)}}),ae=0;for(let X of oe)X.whole>0&&(H[X.index]+=X.whole,ae+=X.whole);if(F-=ae,F<=0)break;oe.sort((X,pe)=>pe.fraction-X.fraction||pe.weight-X.weight||pe.capacity-X.capacity);let se=!1;for(let X of oe){if(F<=0)break;H[X.index]<X.maxReduction&&(H[X.index]+=1,F-=1,se=!0)}if(!se)break}if(H.some(U=>U>0)){for(let U=0;U<u.length;U++){let q=u[U];q.targetWidth=Math.max(q.minWidth,q.basis-H[U])}d=u.reduce((U,q)=>U+(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,b=0,h=o.justifyContent??"flex-start",w=d+(c>0?g:0),S=t-w,L=0,A=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?L=S/(u.length-1):h==="space-around"?(A=S/(u.length*2),b=A):h==="space-evenly"?(L=S/(u.length+1),b=L):h==="flex-end"?b=S:h==="center"&&(b=S/2));let M=0,N=[];for(let H=0;H<u.length;H++){let F=u[H],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?wt(F.layout,{x:F.layout.x+b}):qr(F.node,{x:b,y:0,width:q,height:r},i),ae=F.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),b+=F.marginLeft+oe.width+F.marginRight,h==="space-between"&&H<u.length-1?b+=L:h==="space-around"?b+=A*2:h==="space-evenly"?b+=L:b+=n}let W=s?r:M;for(let H of N){let{style:F}=H,{layout:U}=H,q=F.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=U.y,se=U.height;oe==="stretch"?(F.height===void 0&&(se=Math.max(U.height,W)),ae=0):oe==="center"?ae=Math.floor((W-U.height)/2):oe==="flex-end"?ae=W-U.height:oe==="baseline"&&(ae=0),U=ax(U,se,F),U=wt(U,{y:ae}),Wt(U.node,U),a.push(U)}return a}function hB(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let A of e){let M=A.props,N=Dt(M.marginLeft??M.marginX??M.margin),W=Dt(M.marginRight??M.marginX??M.margin),H=qr(A,{x:0,y:0,width:t,height:r},i),U=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?H.width:ji(M.flexBasis,t))+N+W,q=c+(d.length>0?n:0)+U;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(A),c+=(d.length>1?n:0)+U}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=St(o.rowGap??o.gap,"rowGap"),p=l.map(A=>{let M=cx(A,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((W,H)=>Math.max(W,H.y+H.height),0);return{layouts:M,height:N}}),g=p.reduce((A,M)=>A+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,b=o.alignContent??"flex-start",h=0,w=0;b==="flex-end"?h=f:b==="center"?h=Math.floor(f/2):b==="space-between"&&p.length>1?w=f/(p.length-1):b==="space-around"&&p.length>0?(w=f/p.length,h=Math.floor(w/2)):b==="stretch"&&p.length>0&&(w=f/p.length);let S=[],L=h;for(let A of p){for(let M of A.layouts){let N=wt(M,{y:M.y+Math.floor(L)});Wt(N.node,N),S.push(N)}L+=A.height+u+w}return S}function yB(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,b=[];for(let h of e){let w=h.props,S=Dt(w.marginTop??w.marginY??w.margin),L=Dt(w.marginBottom??w.marginY??w.margin),A=w.flexGrow;A===void 0?A=w.height==="fill"||h.type==="spacer"?1:0:A=ad(A,"flexGrow");let M=St(w.minHeight,"minHeight"),N=w.maxHeight===void 0?void 0:St(w.maxHeight,"maxHeight");if(A>0)f+=A,g+=S+L,b.push({node:h,flex:A,minHeight:M,maxHeight:N,marginTop:S,marginBottom:L});else{let W=qr(h,{x:0,y:0,width:t,height:r},s);g+=W.height+S+L,b.push({node:h,flex:0,minHeight:M,maxHeight:N,marginTop:S,marginBottom:L,layout:W})}}if(g+=n*Math.max(0,e.length-1),f>0){let w=Math.max(0,r-g)/f,S=0;for(let L=0;L<b.length;L++){let A=b[L],N=A.node.props.alignSelf,W=N!=="auto"&&N?N:o.alignItems??"flex-start",H=A.layout;if(A.flex>0){let q=Math.floor(w*A.flex);q=Math.max(A.minHeight,q),A.maxHeight!==void 0&&(q=Math.min(A.maxHeight,q)),H=qr(A.node,{x:0,y:S,width:t,height:q},s),H=wt(H,{height:q})}H||(H=qr(A.node,{x:0,y:S,width:t,height:r},s));let F=H.x,U=H.width;W==="center"?F=Math.floor((t-H.width)/2):W==="flex-end"?F=t-H.width:W==="stretch"&&(U=t),H=wt(H,{x:F,y:S,width:U}),Wt(H.node,H),i.push(H),S+=A.marginTop+H.height+A.marginBottom,L<b.length-1&&(S+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],b=f.props,h=Dt(b.marginTop??b.marginY??b.margin),w=Dt(b.marginBottom??b.marginY??b.margin),S=qr(f,{x:0,y:l,width:t,height:r-l},s),L=b.alignSelf,A=L!=="auto"&&L?L:o.alignItems??"flex-start",M=S.x,N=S.width;A==="center"?M=Math.floor((t-S.width)/2):A==="flex-end"?M=t-S.width:A==="stretch"&&(N=t);let W=wt(S,{x:M,width:N});Wt(W.node,W),i.push(W),l+=h+S.height+w,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 b=0;b<i.length;b++)i[b]=wt(i[b],{y:i[b].y+Math.floor(f*b)}),Wt(i[b].node,i[b]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let b=0;b<i.length;b++)i[b]=wt(i[b],{y:i[b].y+Math.floor(f*(2*b+1))}),Wt(i[b].node,i[b]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let b=0;b<i.length;b++)i[b]=wt(i[b],{y:i[b].y+Math.floor(f*(b+1))}),Wt(i[b].node,i[b]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=wt(i[f],{y:i[f].y+g}),Wt(i[f].node,i[f])}return i}function ji(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 ux={background:0,normal:1,modal:2,critical:3};var px=new Set;function gx(e,t){process.env.NODE_ENV==="production"||px.has(e)||(px.add(e),console.warn(`[tuiuiu] ${t}`))}var bB=Symbol("tuiuiu.hook-runtime-state"),Bf=new WeakMap;function kB(){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 Qe(e){return De(bB,kB,e)}function Nf(e){return Bf.get(e)??null}function mx(e="hooks"){let t=Qe();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function hx(){let e=Qe();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&gx("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++){kx(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&($i(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function yx(){return Qe().isRendering}function bx(){return Qe().renderPhaseMode}function br(e){let t=Qe();t.isRendering||gx("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 kr(e,t){Qe().hookState.state[e]=t}function Kr(e){return Qe().hookState.state[e]}function ir(){return Qe().hookIndex-1}function go(e,t=ir()){let r=Qe(),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 kx(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 ld(e){let t=Ge(e),r=Qe(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))kx(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 fn(e){return Qe(e).appContext}function Gf(e,t){let r=Ge(t),n=Qe(r),o=n.appContext;n.appContext=e,o&&o!==e&&Bf.delete(o),e&&Bf.set(e,r)}function dd(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Qe(),s=o.handlerIdCounter++,i={handler:e,priorityValue:ux[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 $i(e){let t=Qe(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Rx(e,t,r){let o=[...Qe().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 wx(e){let t=Qe(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Wf(e,t){Qe(t).focusManager=e}function _x(e){let t=Qe(),r=wB(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function xx(e){let t=Qe(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var RB=300,fx=2;function wB(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<RB&&Math.abs(t.x-n.x)<=fx&&Math.abs(t.y-n.y)<=fx?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function Ex(e,t){let r=[...Qe().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 vx(e){let t=Qe(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var Bi=[],ud=!1,Hf=!1,cd=0,Ni=null,Gi=null;function Sx(){if(!Hf){Hf=!0;for(let e=Bi.length-1;e>=0;e--)try{Bi[e]()}catch{}Hf=!1}}function gn(e){return Bi.push(e),()=>{let t=Bi.indexOf(e);t!==-1&&Bi.splice(t,1)}}function Tx(){cd++,ud||(ud=!0,Ni=()=>{Sx()},Gi=()=>{Sx()},process.on("exit",Ni),process.on("uncaughtExceptionMonitor",Gi));let e=!1;return()=>{e||(e=!0,cd=Math.max(0,cd-1),cd===0&&_B())}}function _B(){ud&&(Ni&&process.off("exit",Ni),Gi&&process.off("uncaughtExceptionMonitor",Gi),Ni=null,Gi=null,ud=!1)}var Px=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Ax=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,Cx=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Ox=/^\x1b\[(\d+);(\d+);(\d+)M/;function Rr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function pd(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 Dx(e){let t=Px.exec(e);if(t){let s=Rr(t[1]),i=Rr(t[2]),a=Rr(t[3]),l=Rr(t[4]),d=Rr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=pd(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Ax.exec(e);if(r){let s=Rr(r[1]),i=Rr(r[2]),a=Rr(r[3]);if(s===null||i===null||a===null)return null;let l=pd(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=Cx.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=pd(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Ox.exec(e);if(o){let s=Rr(o[1]),i=Rr(o[2]),a=Rr(o[3]);if(s===null||i===null||a===null)return null;let l=pd(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function Fx(e){return Px.test(e)||Ax.test(e)||Cx.test(e)||Ox.test(e)}var xB="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Ix="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",EB=Symbol("tuiuiu.mouse-runtime-state");function Wi(e){return De(EB,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function Uf(e){return fn(e)?.stdout??process.stdout}function qf(e){return"isTTY"in e&&!!e.isTTY}function Hi(e){return Dx(e)}function Kf(e){return Fx(e)}function Ss(e){let t=Ge(e),r=Wi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,vB(t);let n=Uf(t);r.outputStream=n,qf(n)&&n.write(xB)}}function mo(e){let t=Ge(e),r=Wi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Uf(t);qf(n)&&n.write(Ix),r.outputStream=null}}function fd(e){let t=Ge(e),r=Wi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Uf(t);qf(n)&&n.write(Ix),r.outputStream=null}}function vB(e){let t=Wi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=gn(pn(e,()=>fd(e))))}function Mx(e){let t=Wi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as PB}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},SB={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 TB(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 Lx(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 gd(e=process.env){let t=TB(e),r=SB[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 Wx=Symbol("tuiuiu.graphics-runtime-state");function Hx(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Gt(Wx,()=>Hx(Hr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function Yf(){let e=Ge();return De(Wx,()=>Hx(e),e)}var jx={width:10,height:20};function md(e){return{width:Math.max(1,Math.round(e?.width??jx.width)),height:Math.max(1,Math.round(e?.height??jx.height))}}function AB(){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 Ux(){return AB()?"halfblock":"braille"}function Ts(e){return e==="none"?Ux():e}function qx(e){let t=Ts(e);return t==="halfblock"||t==="braille"}function Kx(e){let t=Ts(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function $x(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 Vx(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&FB(e)?e:null}function zx(){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 Jx(){return gd(process.env).knownCaps.preferredGraphics||null}function Yx(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function CB(){let e=Vx();if(e)return e;let t=zx();if(t)return t;let r=Jx();return r||Yx()}function OB(e){return Vx()===e||zx()===e?"env":Jx()===e?"profile":Yx()===e?"env":"fallback"}function Ps(){let e=Yf();if(e.manualOverride)return $x(e.manualOverride,"manual",md(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=DB();return $x(t,OB(t),md())}function DB(){let e=Yf();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=CB()??Ux()),e.detectedProtocol)}function FB(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function Qx(){let e=Yf();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:md(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 IB(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 Xx(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function qi(e){return Xx(e)?e:yd(e)}function Bx(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function yd(e,t={}){let r=md(t.cellSize??Ps().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:IB(e)}}function Ki(e,t={}){let r=Xx(e)?e:yd(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=Bx(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=Bx(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)),b=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=b*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 As={transmit(e,t={}){let r=qi(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=NB(r),l=Zx(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\\"}},MB={display(e,t={}){let{pixels:r}=qi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Zx(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`}},LB={encode(e,t={}){let r=qi(e),n=Ki(r,t),o=t.width!==void 0||t.height!==void 0?eE({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=GB(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),b=Math.round(p/255*100),h=Math.round(g/255*100);d+=`#${c};2;${f};${b};${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 b=0;for(let h=0;h<6;h++){let w=c+h;if(w>=i)continue;let S=(w*s+f)*4,L=a[S],A=a[S+1],M=a[S+2];WB([L,A,M],l)===u&&(b|=1<<h,p=!0)}g+=String.fromCharCode(63+b)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function Nx(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 Vf(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 Gx={render(e,t={}){let r=qi(e),n=Ki(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=eE(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=Nx(i,u,l),g=Nx(i,u,l+1),f=" ",b;p.a>0&&g.a>0?(f="\u2580",b=Vf(p,g)):p.a>0?(f="\u2580",b=Vf(p)):g.a>0&&(f="\u2584",b=Vf(g)),b!==c&&(c&&(d+="\x1B[0m"),b&&(d+=b),c=b),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
127
- `)}},Ui=10240,jB={render(e,t={}){let{width:r,height:n,pixels:o}=qi(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&&HB(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,b=[[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,w,S]of b){let L=g*2+h,A=u*4+w;if(L<r&&A<n){let M=A*r+L;d[M]<s&&(f|=1<<S)}}p+=String.fromCharCode(Ui+f)}c.push(p)}return c.join(`
127
+ `)){if(r==="truncate"||r==="truncate-end"){n.push(dn(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(dn(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(dn(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...hB(o,t))}return n}function hB(e,t){if(ye(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(ye(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),ye(o)<=t){n=o;continue}let i=yB(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function yB(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===sx){let l=fo(e,s);if(l){n+=l.value,s=l.end;continue}}let i=go(e,s);if(!i)break;let a=ye(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 dn(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(ye(e)<=t)return e;if(t<ye(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=ye(l);return n==="start"?bB(e,t,l,d,i):n==="middle"?RB(e,t,l,d,i):kB(e,t,l,d,i)}function bB(e,t,r,n,o){let s=t-n,i=xs(e,ye(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function kB(e,t,r,n,o){let s=t-n,i=xs(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 RB(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=xs(e,0,i),d=xs(e,ye(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 xs(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]===sx){let f=fo(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=Hf(e,l);if(!c){l++;continue}let u=ye(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 yt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function $i(e,t){let r=e;for(let n=0;n<t.length;n++)r=yt(r,t.charCodeAt(n));return r}function qf(e,t,r){if(t===void 0)return yt(e,117);if(t===null)return yt(e,110);switch(typeof t){case"boolean":return yt(yt(e,98),t?49:48);case"number":return $i(yt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return $i(yt(e,105),t.toString());case"string":return $i(yt(e,115),t);case"function":return r.ignoreFunctions===!1?yt(e,102):e;case"object":{if(Array.isArray(t)){let i=yt(e,91);for(let a of t)i=qf(i,a,r),i=yt(i,124);return yt(i,93)}let n=yt(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=$i(yt(n,107),i),n=yt(n,58),n=qf(n,a,r),n=yt(n,59)))}return yt(n,125)}default:return $i(yt(e,63),String(t))}}function Bt(e,t={}){return qf(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as wB}from"node:async_hooks";var Wr=Symbol("tuiuiu.runtime-resource-dispose"),dx=new wB,ld=new Set,_B=1,Es={id:0,resources:new Map};function cx(){let e={id:_B++,resources:new Map};return ld.add(e),e}function xB(e){ld.delete(e)}function ux(e){if(e!==null&&typeof e=="object"&&Wr in e)try{e[Wr]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function EB(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)ux(r)}function vs(e){xB(e),EB(e)}function Ve(e,t){return dx.run(e,t)}function cn(e,t){return(...r)=>Ve(e,()=>t(...r))}function Kf(){return dx.getStore()??null}function He(e){if(e)return e;let t=Kf();return t||(ld.size===1?ld.values().next().value??Es:Es)}function Hr(){return Es}function De(e,t,r){let n=He(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function Nt(e,t){return Es.resources.has(e)||Es.resources.set(e,t()),Es.resources.get(e)}function dd(e,t){let r=He(t),n=r.resources.get(e);r.resources.delete(e),ux(n)}var Ae;(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"})(Ae||(Ae={}));function Vf(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function vB(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 zf=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Vf();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Ae.NONE,subtreeFlags:Ae.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=Vf()}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&Ae.LAYOUT&&vB(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=Ae.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Ae.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=Ae.NONE,r.subtreeFlags=Ae.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Ae.LAYOUT|Ae.CHILDREN|Ae.FORCE_FULL),r.subtreeFlags&=~(Ae.LAYOUT|Ae.CHILDREN|Ae.FORCE_FULL)}markChildrenDirty(t,r=Ae.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!==Ae.NONE||r.subtreeFlags!==Ae.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Ae.NONE&&r.subtreeFlags===Ae.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 Bt({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=Vf()}},SB=Symbol("tuiuiu.dirty-registry");function Ur(e){return De(SB,()=>new zf,e)}function px(e){Ur().beginFrame(e)}function fx(e,t){Ur().registerNode(e,t)}function On(e,t=Ae.CONTENT){Ur().markDirty(e,t)}function gx(e){Ur().markLayoutClean(e)}function Bi(e){Ur().noteReuse(e)}function ho(e){Ur().noteFresh(e)}function cd(e){return Ur().canReuseSubtree(e)}function mx(){return Ur().getDiagnostics()}function Ni(){Ur().clearGlobalDirty()}function Ss(e){Ur().markClean(e.node);for(let r of e.children)Ss(r)}var hx=new WeakMap;function vt(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 ud(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 Dt=e=>e==="auto"?0:vt(e,"margin"),TB=new Set(["layoutRef","__scrollQuery"]),PB=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"]),AB=new Set(["children","wrap"]);function CB(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function Ts(e){let t=e.props??{},r=e.type==="text"?AB:PB,n={};for(let o of r)o in t&&(n[o]=t[o]);return Bt(n,{ignoreKeys:TB})}function OB(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 DB(e,t){if(!cd(e)){ho("layout");return}let r=hx.get(e);if(!r){ho("layout");return}if(r.ctxKey!==t){On(e,Ae.LAYOUT),ho("layout");return}let n=Ts(e);if(r.propsKey!==n||!OB(e,r.childRefs)){On(e,r.propsKey!==n?Ae.LAYOUT:Ae.CHILDREN),ho("layout");return}return Bi("layout"),r.layout}function Gi(e,t,r,n){hx.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),gx(e)}function Rt(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 yx(e,t,r){if(t<=e.height)return Rt(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return Rt(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=>Rt(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>Rt(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)=>Rt(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)=>Rt(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Gt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function bx(e,t=0,r=0){let n=t+e.x,o=r+e.y;Gt(e.node,{...e,x:n,y:o});let s=e.node.props,i=vt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=vt(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)bx(u,d,c)}function kx(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)),px(e);let n=qr(e,{x:0,y:0,width:t,height:r},null);return bx(n),n}function FB(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=mo(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>ye(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 IB(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 MB(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 qr(e,t,r){fx(e,r);let n=CB(t),o=DB(e,n);if(o)return Gt(e,o),o;let s;if(e.type==="text")return s=FB(e,t),Gi(e,n,Ts(e),s),s;if(e.type==="spacer")return s=IB(e,t),Gi(e,n,Ts(e),s),s;if(e.type==="newline")return s=MB(e,t),Gi(e,n,Ts(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:[]},Gt(e,s),Gi(e,n,Ts(e),s),s;let a=vt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=vt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=vt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=vt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Dt(i.marginTop??i.marginY??i.margin),p=Dt(i.marginBottom??i.marginY??i.margin),g=Dt(i.marginLeft??i.marginX??i.margin),f=Dt(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,m=Wi(i.width,t.width),w=Wi(i.height,t.height),_=i.width!==void 0&&i.width!=="auto",O=i.height!==void 0&&i.height!=="auto",T=Math.max(0,(_?m:t.width)-d-c-y*2),F=Math.max(0,(O?w:t.height)-a-l-y*2),$=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:F,G=[],W=i.flexDirection??"column",I=W==="row"||W==="row-reverse",U=W==="row-reverse"||W==="column-reverse",q=vt(I?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 me=U?[...ae].reverse():ae;I?G.push(...Rx(me,T,$,q,i,O,e)):G.push(...jB(me,T,$,q,i,e))}let se=0,Z=0;if(I)for(let me of G){let ie=me.node.props,be=Dt(ie.marginRight??ie.marginX??ie.margin),Fe=Dt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,me.x+me.width+be),Z=Math.max(Z,me.y+me.height+Fe)}else for(let me of G){let ie=me.node.props,be=Dt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,me.width),Z=Math.max(Z,me.y+me.height+be)}let Ce=ud(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,Re=_?m:Ce?t.width:Ee,J=O?w:Z+a+l+y*2,ce=vt(i.minWidth,"minWidth"),xe=vt(i.minHeight,"minHeight");if(Re=Math.max(Re,ce),J=Math.max(J,xe),i.maxWidth!==void 0&&(Re=Math.min(Re,vt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,vt(i.maxHeight,"maxHeight"))),I&&i.alignItems==="stretch"){let me=Math.max(0,J-a-l-y*2);for(let ie=0;ie<G.length;ie++){let be=G[ie],Fe=be.node.props;Fe.height===void 0&&(G[ie]=yx(be,Math.max(be.height,me),Fe),Gt(be.node,G[ie]))}}let Oe=t.x+g,ve=t.y+u,we=Math.max(0,Math.min(Re,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let me of oe){let ie=me.props,be=qr(me,{x:0,y:0,width:T,height:$},e),Fe=Oe+d+y,ot=ve+a+y;ie.left!==void 0?Fe=Oe+d+y+ie.left:ie.right!==void 0&&(Fe=Oe+we-c-y-be.width-ie.right),ie.top!==void 0?ot=ve+a+y+ie.top:ie.bottom!==void 0&&(ot=ve+Se-l-y-be.height-ie.bottom);let Yt=Rt(be,{x:Fe,y:ot});Gt(me,Yt),G.push(Yt)}return s={x:Oe,y:ve,width:we,height:Se,node:e,children:G},Gt(e,s),Gi(e,n,Ts(e),s),s}function Rx(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return LB(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let W of e){let I=W.props,U=I.flexGrow;U===void 0?U=I.width==="fill"||W.type==="spacer"?1:0:U=ud(U,"flexGrow");let q=vt(I.minWidth,"minWidth"),oe=I.flexBasis==="content"?qr(W,{x:0,y:0,width:t,height:r},i).width:I.flexBasis===void 0||I.flexBasis==="auto"?q:Wi(I.flexBasis,t),ae=I.flexShrink===void 0?1:ud(I.flexShrink,"flexShrink"),se=Dt(I.marginLeft??I.marginX??I.margin),Z=Dt(I.marginRight??I.marginX??I.margin);if(U>0)c+=U,d+=oe+se+Z,u.push({node:W,flex:U,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:Z});else{let Ce=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?Wi(I.width,t)+se+Z:t,Ee=qr(W,{x:0,y:0,width:Ce,height:r},i);d+=Ee.width+se+Z,u.push({node:W,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:Z,layout:Ee,measuredCtxWidth:Ce})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let W=u.map(()=>0),I=Math.ceil(p);for(;I>0;){let U=u.map((Z,pe)=>{let Ce=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,Ce-W[pe]);return{index:pe,capacity:Ee,maxReduction:Ce,weight:Z.shrink*Z.basis}}).filter(Z=>Z.capacity>0&&Z.weight>0),q=U.reduce((Z,pe)=>Z+pe.weight,0);if(q<=0)break;let oe=U.map(Z=>{let pe=I*Z.weight/q,Ce=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Ce,fraction:pe-Math.floor(pe)}}),ae=0;for(let Z of oe)Z.whole>0&&(W[Z.index]+=Z.whole,ae+=Z.whole);if(I-=ae,I<=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(I<=0)break;W[Z.index]<Z.maxReduction&&(W[Z.index]+=1,I-=1,se=!0)}if(!se)break}if(W.some(U=>U>0)){for(let U=0;U<u.length;U++){let q=u[U];q.targetWidth=Math.max(q.minWidth,q.basis-W[U])}d=u.reduce((U,q)=>U+(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,m=o.justifyContent??"flex-start",w=d+(c>0?g:0),_=t-w,O=0,T=0;c===0&&u.length>0&&(m==="space-between"&&u.length>1?O=_/(u.length-1):m==="space-around"?(T=_/(u.length*2),y=T):m==="space-evenly"?(O=_/(u.length+1),y=O):m==="flex-end"?y=_:m==="center"&&(y=_/2));let F=0,$=[];for(let W=0;W<u.length;W++){let I=u[W],q=(I.targetWidth??(I.flex>0?I.basis+Math.floor(f*I.flex):I.basis))+I.marginLeft+I.marginRight,oe=I.layout&&I.measuredCtxWidth===q?Rt(I.layout,{x:I.layout.x+y}):qr(I.node,{x:y,y:0,width:q,height:r},i),ae=I.node.props;F=Math.max(F,oe.height),$.push({layout:oe,style:ae}),y+=I.marginLeft+oe.width+I.marginRight,m==="space-between"&&W<u.length-1?y+=O:m==="space-around"?y+=T*2:m==="space-evenly"?y+=O:y+=n}let G=s?r:F;for(let W of $){let{style:I}=W,{layout:U}=W,q=I.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=U.y,se=U.height;oe==="stretch"?(I.height===void 0&&(se=Math.max(U.height,G)),ae=0):oe==="center"?ae=Math.floor((G-U.height)/2):oe==="flex-end"?ae=G-U.height:oe==="baseline"&&(ae=0),U=yx(U,se,I),U=Rt(U,{y:ae}),Gt(U.node,U),a.push(U)}return a}function LB(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let T of e){let F=T.props,$=Dt(F.marginLeft??F.marginX??F.margin),G=Dt(F.marginRight??F.marginX??F.margin),W=qr(T,{x:0,y:0,width:t,height:r},i),U=(F.flexBasis===void 0||F.flexBasis==="auto"||F.flexBasis==="content"?W.width:Wi(F.flexBasis,t))+$+G,q=c+(d.length>0?n:0)+U;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(T),c+=(d.length>1?n:0)+U}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=vt(o.rowGap??o.gap,"rowGap"),p=l.map(T=>{let F=Rx(T,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),$=F.reduce((G,W)=>Math.max(G,W.y+W.height),0);return{layouts:F,height:$}}),g=p.reduce((T,F)=>T+F.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",m=0,w=0;y==="flex-end"?m=f:y==="center"?m=Math.floor(f/2):y==="space-between"&&p.length>1?w=f/(p.length-1):y==="space-around"&&p.length>0?(w=f/p.length,m=Math.floor(w/2)):y==="stretch"&&p.length>0&&(w=f/p.length);let _=[],O=m;for(let T of p){for(let F of T.layouts){let $=Rt(F,{y:F.y+Math.floor(O)});Gt($.node,$),_.push($)}O+=T.height+u+w}return _}function jB(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,y=[];for(let m of e){let w=m.props,_=Dt(w.marginTop??w.marginY??w.margin),O=Dt(w.marginBottom??w.marginY??w.margin),T=w.flexGrow;T===void 0?T=w.height==="fill"||m.type==="spacer"?1:0:T=ud(T,"flexGrow");let F=vt(w.minHeight,"minHeight"),$=w.maxHeight===void 0?void 0:vt(w.maxHeight,"maxHeight");if(T>0)f+=T,g+=_+O,y.push({node:m,flex:T,minHeight:F,maxHeight:$,marginTop:_,marginBottom:O});else{let G=qr(m,{x:0,y:0,width:t,height:r},s);g+=G.height+_+O,y.push({node:m,flex:0,minHeight:F,maxHeight:$,marginTop:_,marginBottom:O,layout:G})}}if(g+=n*Math.max(0,e.length-1),f>0){let w=Math.max(0,r-g)/f,_=0;for(let O=0;O<y.length;O++){let T=y[O],$=T.node.props.alignSelf,G=$!=="auto"&&$?$:o.alignItems??"flex-start",W=T.layout;if(T.flex>0){let q=Math.floor(w*T.flex);q=Math.max(T.minHeight,q),T.maxHeight!==void 0&&(q=Math.min(T.maxHeight,q)),W=qr(T.node,{x:0,y:_,width:t,height:q},s),W=Rt(W,{height:q})}W||(W=qr(T.node,{x:0,y:_,width:t,height:r},s));let I=W.x,U=W.width;G==="center"?I=Math.floor((t-W.width)/2):G==="flex-end"?I=t-W.width:G==="stretch"&&(U=t),W=Rt(W,{x:I,y:_,width:U}),Gt(W.node,W),i.push(W),_+=T.marginTop+W.height+T.marginBottom,O<y.length-1&&(_+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],y=f.props,m=Dt(y.marginTop??y.marginY??y.margin),w=Dt(y.marginBottom??y.marginY??y.margin),_=qr(f,{x:0,y:l,width:t,height:r-l},s),O=y.alignSelf,T=O!=="auto"&&O?O:o.alignItems??"flex-start",F=_.x,$=_.width;T==="center"?F=Math.floor((t-_.width)/2):T==="flex-end"?F=t-_.width:T==="stretch"&&($=t);let G=Rt(_,{x:F,width:$});Gt(G.node,G),i.push(G),l+=m+_.height+w,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]=Rt(i[y],{y:i[y].y+Math.floor(f*y)}),Gt(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]=Rt(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),Gt(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]=Rt(i[y],{y:i[y].y+Math.floor(f*(y+1))}),Gt(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=Rt(i[f],{y:i[f].y+g}),Gt(i[f].node,i[f])}return i}function Wi(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 wx={background:0,normal:1,modal:2,critical:3};var _x=new Set;function Ex(e,t){process.env.NODE_ENV==="production"||_x.has(e)||(_x.add(e),console.warn(`[tuiuiu] ${t}`))}var $B=Symbol("tuiuiu.hook-runtime-state"),Jf=new WeakMap;function BB(){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 Xe(e){return De($B,BB,e)}function Yf(e){return Jf.get(e)??null}function vx(e="hooks"){let t=Xe();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function Sx(){let e=Xe();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Ex("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++){Ax(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(Hi(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function Tx(){return Xe().isRendering}function Px(){return Xe().renderPhaseMode}function Rr(e){let t=Xe();t.isRendering||Ex("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 wr(e,t){Xe().hookState.state[e]=t}function Kr(e){return Xe().hookState.state[e]}function cr(){return Xe().hookIndex-1}function yo(e,t=cr()){let r=Xe(),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 Ax(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 pd(e){let t=He(e),r=Xe(t);Ve(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))Ax(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 un(e){return Xe(e).appContext}function Qf(e,t){let r=He(t),n=Xe(r),o=n.appContext;n.appContext=e,o&&o!==e&&Jf.delete(o),e&&Jf.set(e,r)}function fd(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Xe(),s=o.handlerIdCounter++,i={handler:e,priorityValue:wx[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 Hi(e){let t=Xe(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Cx(e,t,r){let o=[...Xe().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 Ox(e){let t=Xe(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Xf(e,t){Xe(t).focusManager=e}function Dx(e){let t=Xe(),r=GB(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function Fx(e){let t=Xe(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var NB=300,xx=2;function GB(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<NB&&Math.abs(t.x-n.x)<=xx&&Math.abs(t.y-n.y)<=xx?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function Ix(e,t){let r=[...Xe().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 Mx(e){let t=Xe(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var Ui=[],md=!1,Zf=!1,gd=0,qi=null,Ki=null;function Lx(){if(!Zf){Zf=!0;for(let e=Ui.length-1;e>=0;e--)try{Ui[e]()}catch{}Zf=!1}}function pn(e){return Ui.push(e),()=>{let t=Ui.indexOf(e);t!==-1&&Ui.splice(t,1)}}function jx(){gd++,md||(md=!0,qi=()=>{Lx()},Ki=()=>{Lx()},process.on("exit",qi),process.on("uncaughtExceptionMonitor",Ki));let e=!1;return()=>{e||(e=!0,gd=Math.max(0,gd-1),gd===0&&WB())}}function WB(){md&&(qi&&process.off("exit",qi),Ki&&process.off("uncaughtExceptionMonitor",Ki),qi=null,Ki=null,md=!1)}var $x=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Bx=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,Nx=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Gx=/^\x1b\[(\d+);(\d+);(\d+)M/;function _r(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function hd(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 Wx(e){let t=$x.exec(e);if(t){let s=_r(t[1]),i=_r(t[2]),a=_r(t[3]),l=_r(t[4]),d=_r(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=hd(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Bx.exec(e);if(r){let s=_r(r[1]),i=_r(r[2]),a=_r(r[3]);if(s===null||i===null||a===null)return null;let l=hd(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=Nx.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=hd(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Gx.exec(e);if(o){let s=_r(o[1]),i=_r(o[2]),a=_r(o[3]);if(s===null||i===null||a===null)return null;let l=hd(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function Hx(e){return $x.test(e)||Bx.test(e)||Nx.test(e)||Gx.test(e)}var HB="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Ux="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",UB=Symbol("tuiuiu.mouse-runtime-state");function Vi(e){return De(UB,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function eg(e){return un(e)?.stdout??process.stdout}function tg(e){return"isTTY"in e&&!!e.isTTY}function zi(e){return Wx(e)}function rg(e){return Hx(e)}function Ps(e){let t=He(e),r=Vi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,qB(t);let n=eg(t);r.outputStream=n,tg(n)&&n.write(HB)}}function bo(e){let t=He(e),r=Vi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??eg(t);tg(n)&&n.write(Ux),r.outputStream=null}}function yd(e){let t=He(e),r=Vi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??eg(t);tg(n)&&n.write(Ux),r.outputStream=null}}function qB(e){let t=Vi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=pn(cn(e,()=>yd(e))))}function qx(e){let t=Vi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as zB}from"node:zlib";var Ue={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},ze={mouse:!0,italic:!0,strikethrough:!0},KB={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...Ue,...ze,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:{...Ue,...ze,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:{...Ue,...ze,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:{...Ue,...ze,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:{...Ue,...ze,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:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...Ue,...ze,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:{...Ue,...ze,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:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...Ue,...ze,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:{...Ue,...ze,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:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...Ue,...ze,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:{...Ue,...ze,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:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...Ue,...ze,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...Ue,...ze,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...Ue,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:Ue}};function VB(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 Kx(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 bd(e=process.env){let t=VB(e),r=KB[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 Xx=Symbol("tuiuiu.graphics-runtime-state");function Zx(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Nt(Xx,()=>Zx(Hr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function ig(){let e=He();return De(Xx,()=>Zx(e),e)}var Vx={width:10,height:20};function kd(e){return{width:Math.max(1,Math.round(e?.width??Vx.width)),height:Math.max(1,Math.round(e?.height??Vx.height))}}function JB(){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 eE(){return JB()?"halfblock":"braille"}function As(e){return e==="none"?eE():e}function tE(e){let t=As(e);return t==="halfblock"||t==="braille"}function rE(e){let t=As(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function zx(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 nE(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&ZB(e)?e:null}function oE(){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 sE(){return bd(process.env).knownCaps.preferredGraphics||null}function iE(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function YB(){let e=nE();if(e)return e;let t=oE();if(t)return t;let r=sE();return r||iE()}function QB(e){return nE()===e||oE()===e?"env":sE()===e?"profile":iE()===e?"env":"fallback"}function Cs(){let e=ig();if(e.manualOverride)return zx(e.manualOverride,"manual",kd(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=XB();return zx(t,QB(t),kd())}function XB(){let e=ig();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=YB()??eE()),e.detectedProtocol)}function ZB(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function aE(){let e=ig();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:kd(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 eN(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 lE(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function Yi(e){return lE(e)?e:wd(e)}function Jx(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function wd(e,t={}){let r=kd(t.cellSize??Cs().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:eN(e)}}function Qi(e,t={}){let r=lE(e)?e:wd(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=Jx(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=Jx(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=Qi(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=iN(r),l=dE(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\\"}},tN={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=dE(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`}},rN={encode(e,t={}){let r=Yi(e),n=Qi(r,t),o=t.width!==void 0||t.height!==void 0?cE({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=aN(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),m=Math.round(g/255*100);d+=`#${c};2;${f};${y};${m}`}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 m=0;m<6;m++){let w=c+m;if(w>=i)continue;let _=(w*s+f)*4,O=a[_],T=a[_+1],F=a[_+2];lN([O,T,F],l)===u&&(y|=1<<m,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function Yx(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 ng(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 Qx={render(e,t={}){let r=Yi(e),n=Qi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=cE(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=Yx(i,u,l),g=Yx(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=ng(p,g)):p.a>0?(f="\u2580",y=ng(p)):g.a>0&&(f="\u2584",y=ng(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
128
+ `)}},Ji=10240,nN={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&&dN(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[m,w,_]of y){let O=g*2+m,T=u*4+w;if(O<r&&T<n){let F=T*r+O;d[F]<s&&(f|=1<<_)}}p+=String.fromCharCode(Ji+f)}c.push(p)}return c.join(`
128
129
  `)},invert(e){let t="";for(let r of e){if(r===`
129
- `){t+=r;continue}let n=r.charCodeAt(0);if(n>=Ui&&n<Ui+256){let o=Ui+(255-(n-Ui));t+=String.fromCharCode(o)}else t+=r}return t}};function bd(e,t,r={}){switch(Ts(e)){case"kitty":return As.transmit(t,r);case"iterm2":return MB.display(t,r);case"sixel":return LB.encode(t,r);case"halfblock":return Gx.render(t,r);case"braille":return jB.render(t,r);default:return Gx.render(t,r)}}function kd(e){switch(Ts(e)){case"kitty":return As.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var zf=null;function $B(){if(zf)return zf;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 zf=e,e}function BB(e){let t=$B(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function hd(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 Jf(e,t){let r=new Uint8Array(8+t.length+4);hd(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 hd(r,BB(n),8+t.length),r}function NB(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);hd(s,t,0),hd(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=Jf("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let b=f*a,h=f*(1+a);l[h]=1;for(let w=0;w<a;w++){let S=n[b+w],L=w>=4?n[b+w-4]:0;l[h+1+w]=S-L&255}}let d=PB(Buffer.from(l)),c=Jf("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=Jf("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 Zx(e){return Buffer.from(e).toString("base64")}function GB(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 WB(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 HB(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 eE(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 Xf(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 Rd(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,b=s?Math.max(g,s.y):g,h=s?Math.min(p+d,s.x+s.width):p+d,w=s?Math.min(g+c,s.y+s.height):g+c;h>f&&w>b&&t(i,f,b,h-f,w-b,o);let S=i.props,L=S.paddingTop??S.paddingY??S.padding??0,A=S.paddingLeft??S.paddingX??S.padding??0,M=S.borderStyle&&S.borderStyle!=="none"?1:0,N=p+A+M,W=typeof S.__scrollOffsetY=="number"&&Number.isFinite(S.__scrollOffsetY)?Math.max(0,Math.floor(S.__scrollOffsetY)):0,H=g+L+M-W,F=S.overflow==="hidden"||S.overflowX==="hidden",U=S.overflow==="hidden"||S.overflowY==="hidden",q={x:F?p:s?.x??Number.MIN_SAFE_INTEGER,y:U?g:s?.y??Number.MIN_SAFE_INTEGER,width:F?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:U?c:s?.height??Number.MAX_SAFE_INTEGER*2},oe=F||U?UB(s,q):s;for(let ae of u)Rd(ae,t,N,H,i,oe)}function UB(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 tE(e){let t=[],r=0;return Rd(e,(n,o,s,i,a)=>{Xf(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var Qf=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),Xf(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){Rd(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=Ps().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=Ps().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,Ss(),this.inputHandler=r=>{let n=Hi(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,mo(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},qB=Symbol("tuiuiu.hit-test-registry");function Cs(e){return De(qB,()=>new Qf,e)}function Zf(e,t=0){let r=Cs();if(r.clear(),t===0){r.registerFromLayout(e);return}Rd(e,(n,o,s,i,a,l)=>{Xf(n)&&r.register(n,o,s+t,i,a,l)})}import ar from"node:path";import{fileURLToPath as sE}from"node:url";var KB=[{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() {
130
+ `){t+=r;continue}let n=r.charCodeAt(0);if(n>=Ji&&n<Ji+256){let o=Ji+(255-(n-Ji));t+=String.fromCharCode(o)}else t+=r}return t}};function _d(e,t,r={}){switch(As(e)){case"kitty":return Os.transmit(t,r);case"iterm2":return tN.display(t,r);case"sixel":return rN.encode(t,r);case"halfblock":return Qx.render(t,r);case"braille":return nN.render(t,r);default:return Qx.render(t,r)}}function xd(e){switch(As(e)){case"kitty":return Os.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var og=null;function oN(){if(og)return og;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 og=e,e}function sN(e){let t=oN(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function Rd(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 sg(e,t){let r=new Uint8Array(8+t.length+4);Rd(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 Rd(r,sN(n),8+t.length),r}function iN(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);Rd(s,t,0),Rd(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=sg("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let y=f*a,m=f*(1+a);l[m]=1;for(let w=0;w<a;w++){let _=n[y+w],O=w>=4?n[y+w-4]:0;l[m+1+w]=_-O&255}}let d=zB(Buffer.from(l)),c=sg("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=sg("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 dE(e){return Buffer.from(e).toString("base64")}function aN(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 lN(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 dN(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 cE(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 lg(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 Ed(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,m=s?Math.min(p+d,s.x+s.width):p+d,w=s?Math.min(g+c,s.y+s.height):g+c;m>f&&w>y&&t(i,f,y,m-f,w-y,o);let _=i.props,O=_.paddingTop??_.paddingY??_.padding??0,T=_.paddingLeft??_.paddingX??_.padding??0,F=_.borderStyle&&_.borderStyle!=="none"?1:0,$=p+T+F,G=typeof _.__scrollOffsetY=="number"&&Number.isFinite(_.__scrollOffsetY)?Math.max(0,Math.floor(_.__scrollOffsetY)):0,W=g+O+F-G,I=_.overflow==="hidden"||_.overflowX==="hidden",U=_.overflow==="hidden"||_.overflowY==="hidden",q={x:I?p:s?.x??Number.MIN_SAFE_INTEGER,y:U?g:s?.y??Number.MIN_SAFE_INTEGER,width:I?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:U?c:s?.height??Number.MAX_SAFE_INTEGER*2},oe=I||U?cN(s,q):s;for(let ae of u)Ed(ae,t,$,W,i,oe)}function cN(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 uE(e){let t=[],r=0;return Ed(e,(n,o,s,i,a)=>{lg(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var ag=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),lg(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){Ed(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=Cs().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=Cs().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,Ps(),this.inputHandler=r=>{let n=zi(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,bo(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},uN=Symbol("tuiuiu.hit-test-registry");function Ds(e){return De(uN,()=>new ag,e)}function dg(e,t=0){let r=Ds();if(r.clear(),t===0){r.registerFromLayout(e);return}Ed(e,(n,o,s,i,a,l)=>{lg(n)&&r.register(n,o,s+t,i,a,l)})}import ur from"node:path";import{fileURLToPath as mE}from"node:url";var pN=[{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() {
130
131
  const [count, setCount] = createSignal(0);
131
132
  useHotkeys('up', () => setCount(c => c + 1));
132
133
  return Text({}, \`Count: \${count()}\`);
@@ -196,51 +197,51 @@ useEffect(() => {
196
197
  return Box({},
197
198
  ComputedText(() => \`Score: \${score()}\`),
198
199
  );
199
- })`,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 VB(e){let t=KB.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function zB(e){return`docs/resources/common-mistakes.md#${VB(e).anchor}`}function rE(e){return`See ${zB(e)} or tuiuiu://guide/common-mistakes.`}var nE=new Set,iE=ar.normalize(sE(import.meta.url)),JB=ar.dirname(ar.dirname(iE)),YB=ar.dirname(JB),wd=0;function aE(){return process.env.NODE_ENV!=="production"}function oE(e){return e.startsWith("file://")?ar.normalize(sE(e)):ar.normalize(e)}function QB(e){let t=ar.normalize(e);return t.startsWith(YB)?t.includes(`${ar.sep}src${ar.sep}`)||t.includes(`${ar.sep}dist${ar.sep}`):!1}function XB(e){let t=ar.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function ZB(e,t=[]){if(!e)return[];let r=new Set([iE,...t.map(oE)]),n=e.split(`
200
- `).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=oE(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function eN(e,t){!aE()||nE.has(e)||(nE.add(e),console.warn(`[tuiuiu] ${t}`))}function Vi(e){wd++;try{return e()}finally{wd=Math.max(0,wd-1)}}function lE(e,t){if(!aE()||wd>0||!yx()||bx()!=="component")return;let r=ZB(e,[t])[0];if(!r||QB(r.filePath))return;let n=XB(r);eN(`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(). ${rE("signals-inside-component-render")}`)}var On=null,Ji=new Set,zi=!1,tg=class{_value;_subs=null;constructor(t){this._value=t}get value(){return On&&On._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 Dn){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 Dn){let r=this._subs;zi?Ji.add(r):r.notify();return}let t=[...this._subs];for(let r of t)zi?Ji.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof Dn){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)}}},eg=null;var rg=!1,_d=new Set;function tN(e){_d.add(e),rg||(rg=!0,queueMicrotask(rN))}function rN(){rg=!1;let e=[..._d];_d.clear(),dE(e,t=>t.run())}function dE(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 Dn=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?tN(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=eg;eg=this._cleanups;let r=On;On=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{On=r,eg=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,_d.delete(this),Ji.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 wr(e){lE(new Error().stack,import.meta.url);let t=new tg(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function cE(e,t={}){let r=new Dn(e,t);return()=>r.dispose()}function Vt(e){let t=zi;zi=!0;try{e()}finally{if(zi=t,!t){let r=[...Ji];Ji.clear(),dE(r,n=>n.notify())}}}function Os(e){let t=On;On=null;try{return e()}finally{On=t}}var nN=Symbol("tuiuiu.terminal-focus-state");function oN(){let[e,t]=wr(!0);return{read:e,write:t,listeners:new Set}}function ng(e){return De(nN,oN,e)}function _r(e){return ng(e).read()}function og(e,t){let r=ng(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function xd(e,t){let r=ng(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function sg(e){og(!0,e)}var ho={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},pE=Symbol("tuiuiu.motion-runtime-state");function fE(e){let t=e.id===0?null:Gt(pE,()=>fE(Hr())),r={config:{...t?.config??ho},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,[Wr](){mE(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function ag(){let e=Ge();return De(pE,()=>fE(e),e)}function Ed(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function ig(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function sN(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 gE(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function iN(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=xd(pn(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}vd(e)})))}function lg(e,t=_r(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 uE(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:_r(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function aN(e,t){let r=_r(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=lg(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 mE(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function hE(e){if(e.schedulerTimer||!gE(e))return;iN(e);let t=aN(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(pn(e.scope,()=>lN(e)),t))}function lN(e){if(e.schedulerTimer=null,!gE(e))return;let t=Date.now(),r=_r(e.scope),n=lg(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=uE(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(uE(e,t,n,Math.max(s.intervalMs,i))))}hE(e)}function vd(e){mE(e),hE(e)}function yE(e){let t=ag(),r=Ed(e.targetFps??t.config.targetFps,ho.targetFps),n=Ed(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Ed(e.unfocusedFps??t.config.unfocusedFps,ho.unfocusedFps),frameBudgetMs:ig(e.frameBudgetMs??t.config.frameBudgetMs,ho.frameBudgetMs),recoveryFrames:Ed(e.recoveryFrames??t.config.recoveryFrames,ho.recoveryFrames),elevatedFrameBudgetFactor:ig(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,ho.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:ig(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,ho.criticalFrameBudgetFactor)},vd(t)}function Sd(){let e=ag();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:_r(e.scope),targetFrameMs:lg(e),recommendedPresentationIntervalMs:sN(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function dN(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function cN(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 bE(e){let t=ag();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"),vd(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?dN(t):cN(t),vd(t),t.qualityTier}function Fn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function kE(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function RE(e){return e?Nt({key:e.key,transforms:e.transforms}):null}function Yi(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 uN(e,t){let r=Yi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function pN(e,t){let r=Fn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Yi(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function fN(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 gN(e,t,r){let n=Fn(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=Yi(e);return a.clip=fN(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function mN(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 hN(e,t,r){if(e.type!=="text")return e;let n=Fn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*Fn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!mN(e,r,o,s))return e;let i=Yi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function yN(e,t,r){let n=Fn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Yi(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 L=o.x,A=o.x+Math.max(1,o.maxWidth),M=Math.max(L,g),N=Math.min(A,f);if(N<=M)return null;let W=Math.max(0,M-L),H=Math.max(W,N-L);return o.text=ws(o.text,W,H),o.x=M,o.maxWidth=Math.max(0,N-M),o.maxWidth>0&&o.text.length>0?o:null}let b=o.x,h=o.x+Math.max(1,o.width),w=Math.max(b,g),S=Math.min(h,f);return S<=w?null:(o.x=w,o.width=Math.max(0,S-w),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 bN(e,t,r){let n=Sd().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&Fn(s.opacity)<=0||s.kind==="scale"&&Fn(s.scale)<=0||s.kind==="reveal"&&Fn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=uN(o,s);break;case"fade":o=pN(o,s);break;case"scale":o=gN(o,s,r);break;case"shimmer":o=hN(o,s,r);break;case"reveal":o=yN(o,s,r);break}}return o}function wE(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=bN(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var kN=1,RN=Symbol("tuiuiu.frame-runtime-state");function cg(e){return De(RN,()=>({committedFrameSnapshot:null}),e)}var wN=new Set(["__terminalImage","__compositor"]),_N=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),xN=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),dg={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Td=new WeakMap,Mn=new Map,EE=4096;function In(){return typeof performance<"u"?performance.now():Date.now()}function EN(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 vN(e){return{eagerHitTargets:e?.eagerHitTargets??dg.eagerHitTargets,eagerQueries:e?.eagerQueries??dg.eagerQueries,eagerWarnings:e?.eagerWarnings??dg.eagerWarnings}}function SN(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,b=typeof f.id=="string"?f.id:void 0;if(b&&b.length>0){let M=t.get(b)??[];M.push({id:b,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(b,M)}let h=f.paddingTop??f.paddingY??f.padding??0,w=f.paddingLeft??f.paddingX??f.padding??0,S=f.borderStyle&&f.borderStyle!=="none"?1:0,L=p+w+S,A=g+h+S;for(let M of u)r(M,L,A)};return r(e),t}function TN(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 PN(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,b=typeof f.id=="string"?f.id:void 0;if(b&&b.length>0&&TN(f.__scrollQuery)){let M=t.get(b)??[];M.push({id:b,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(b,M)}let h=f.paddingTop??f.paddingY??f.padding??0,w=f.paddingLeft??f.paddingX??f.padding??0,S=f.borderStyle&&f.borderStyle!=="none"?1:0,L=p+w+S,A=g+h+S;for(let M of u)r(M,L,A)};return r(e),t}function AN(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 Ds(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function _E(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 CN(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 ON(e,t,r,n,o){return{getElement:s=>{let i=_E(e,s);return i.status==="missing"?Ds(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"&&Ds(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=_E(e,s);return!i.found||!i.bounds?(i.status==="missing"?Ds(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"&&Ds(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=CN(t,s);return i.status==="missing"?Ds(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"&&Ds(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 DN(e,t,r,n=[],o){let s=n.length>0?Nt(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function FN(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 IN(e,t){let r=e.type==="text"?xN:_N,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Nt({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:wN})}function MN(e,t,r,n,o,s){return Nt([t,r,RE(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function LN(e,t,r){if(!id(e.node))return;let n=Td.get(e);if(!n)return;if(n.cacheKey!==t){Cn(e.node,Ae.LAYOUT);return}let o=r();if(n.fingerprint!==o){Cn(e.node,Ae.CONTENT|Ae.STYLE);return}if(n.childRefs.length!==e.node.children.length){Cn(e.node,Ae.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){Cn(e.node,Ae.CHILDREN);return}return n}function xE(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Td.set(e,i),i}function jN(e){return e.map((t,r)=>({...t,order:r}))}function vE(e,t){return t?`${e}|motion:${Sd().qualityTier}`:e}function $N(){let e=Math.max(1,Math.ceil(EE*.1)),t=Mn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Mn.delete(n.value)}}function BN(e){return Mn.get(e)}function NN(e,t,r){let n=Mn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Mn.has(e)&&Mn.size>=EE&&$N(),Mn.set(e,o),o}function GN(e,t,r){let n=Mn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function WN(e,t){for(let r of t)e.push(r)}function HN(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function UN(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function SE(e){let t=e.props;return kE(t?.__compositor)?t.__compositor:null}function TE(e,t=new Map){let r=SE(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)TE(n,t);return t}function qN(e,t,r,n,o,s){if(!UN(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 b=s.__terminalImage,h=Ps(),w=HN(b.source)?b.source:yd(b.source,{cellSize:h.cellSize}),S=b.options?.protocol??h.protocol,L=Ts(S),A=Ki(w,{...b.options,width:b.options?.width??g,height:b.options?.height??f}),M=Math.max(0,Math.min(g,A.renderColumns)),N=Math.max(0,Math.min(f,A.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:b.protocolState?.instanceKey,kittyImageId:b.protocolState?.kittyImageId,source:w,fit:A.fit,threshold:b.options?.threshold,dither:b.options?.dither,preserveAspectRatio:b.options?.preserveAspectRatio,protocol:L,cellRender:qx(L),protocolState:b.protocolState}}function KN(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 PE(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,b=SE(i),h=b?[...o,b.key]:[...o],w=b!==null,S=qN(e,p,g,d,c,f),L=S?`:${S.protocol}:${S.source.hash}:${S.width}x${S.height}:${S.fit}:${S.threshold??""}:${S.dither?1:0}:${S.preserveAspectRatio?1:0}`:"",A=DN(t,r,n,h,s)+L,M,N=()=>(M===void 0&&(M=IN(i,S)),M),W=LN(e,A,N);if(W)return Ii("draw"),{commands:W.commands,hasCompositor:W.hasCompositor,subtreeSignature:W.subtreeSignature};let H=N(),F=typeof f.id=="string"?f.id:void 0,U=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,X=f.borderStyle&&f.borderStyle!=="none"?1:0,pe=p+se+X,Ce=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+X-Ce,ke=U??n,J=f.overflow==="hidden"||f.overflowX==="hidden",ce=f.overflow==="hidden"||f.overflowY==="hidden",_e={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:ce?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:ce?c:s?.height??Number.MAX_SAFE_INTEGER*2},Oe=J||ce?FN(s,_e):s;for(let ie of u){let xe=PE(ie,pe,Ee,ke,h,Oe);q.push(xe),w||=xe.hasCompositor,oe.push(xe.subtreeSignature)}let ve=MN(e,A,H,b,h,oe),Re=BN(ve);if(Re){Ii("draw");let ie=xE(e,A,H,Re.commands,Re.hasCompositor,ve),xe=vE(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"&&(U||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:U,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(`
201
- `):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/xe)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>ie).join(`
202
- `):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})}S&&Se.push({...S,compositorKeys:h.length>0?[...h]:void 0,clip:s});for(let ie of q)WN(Se,ie.commands);fo("draw");let me=xE(e,A,H,Se,w,ve);return NN(ve,me.commands,w),{commands:me.commands,hasCompositor:w,subtreeSignature:ve}}function VN(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 zN(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=VN(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function JN(e){let t=PE(e),r=Td.get(e),n=vE(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=jN(t.commands),s=t.hasCompositor?wE(o,TE(e)):o,i=zN(s),a=Td.get(e);return a&&(a.materialized=i,a.materializedSignature=n),GN(t.subtreeSignature,i,n),i}function AE(e,t,r={}){let n=vN(r),o=EN(t),s=Date.now(),i=In(),a=In(),l=dx(e,o.width,o.height),d=In()-a,c=In(),u=JN(l),p=KN(u),g=In()-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}},b=sx();f.structural.layoutReuseCount=b.layoutReuseCount,f.structural.layoutFreshCount=b.layoutFreshCount,f.structural.drawReuseCount=b.drawReuseCount,f.structural.drawFreshCount=b.drawFreshCount,f.structural.invalidationEscalationCount=b.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=b.absorbedLayoutDirtyCount;let h,w,S,L=[],A=!1,M=()=>(h||(h=SN(l)),h),N=()=>(w||(w=PN(l)),w),W=()=>{if(!S){let ae=In();S=tE(l),f.phases.hitTargetRegistrationMs=In()-ae,f.structural.hitTargetCount=S.length}return S},H=()=>(A||(L.push(...AN(M())),A=!0,f.structural.warningCount=L.length),L);n.eagerQueries&&(M(),N()),n.eagerWarnings&&H(),n.eagerHitTargets&&W();let F=ON(M,N,o,L,f),U=Date.now(),q=In()-i;return f.frameEndAt=U,f.totalFrameMs=q,{info:{frameId:kN++,committedAt:U,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:F,metrics:f,get hitTargets(){return W()},get warnings(){return H()}}}function CE(e,t){cg(t).committedFrameSnapshot=e}function OE(e){return cg(e).committedFrameSnapshot}function DE(e){cg(e).committedFrameSnapshot=null}function ut(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 Ft(e,t,r){e.metrics.structural[t]=r}function FE(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 ME=Symbol("tuiuiu.progressive-runtime-state");function IE(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function YN(e){if(e.id===0)return IE();let t=Gt(ME,IE);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function ug(){let e=Ge();return De(ME,()=>YN(e),e)}function LE(){return ug().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function jE(){return ug().capabilityOverrides}function pg(){return ug().progressiveVersion}function QN(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=gd(t),a=Lx(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",b=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",h=l.strikethrough||b,w=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,S=e.stdout??process.stdout,L=S.columns||80,A=S.rows||24,M=LE(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:b,strikethrough:h,hyperlinks:w,terminalName:c,isCI:d,columns:L,rows:A,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},W=jE();return W&&Object.assign(N,W),N}var $E=Symbol("tuiuiu.capability-runtime-state");function BE(e){let t=e.id===0?"auto":Os(Gt($E,()=>BE(Hr())).renderModeSignal),[r,n]=wr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Wr](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function Qi(e){let t=Ge(e);return De($E,()=>BE(t),t)}function NE(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function XN(e){return QN({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Pd(e){return e.cachedCapabilities=XN(e),e.cachedProgressiveVersion=pg(),e.cachedCapabilities}function GE(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Pd(e);let r=NE(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function WE(e){let t=Qi(),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,GE(t)}function Vr(){let e=Qi(),t=pg();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Pd(e),e.cachedCapabilities??Pd(e)}function HE(){return Pd(Qi())}function UE(){return NE(Qi())}function qE(e){let t=Qi();return t.resizeHandlers.add(e),GE(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var KE={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},ZN={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},e2=512,yo=new Map,VE=4e6;function zr(){return{char:" ",attrs:{}}}function gg(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 t2(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&&gg(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function zE(e,t){return e.char===t.char&&gg(e.fg,t.fg)&&gg(e.bg,t.bg)&&t2(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Ad(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Jr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>VE)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${VE} 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(zr());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]=zr(),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]=zr(),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]=zr(),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]=zr(),this.addDamage(t-1,r,1,1))}return}let o=be(n.char);if(!(o<=1)){this.cells[r][t]=zr(),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]=zr(),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=uo(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
203
- `)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]=zr();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,Ad(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];zE(a,l)||r.push({x:i,y:s,cell:Ad(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=r2(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];zE(d,c)||n.push({x:l,y:i.y,cell:Ad(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Ad(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}${YE(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function r2(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||n2(o)?JE(s,i,o):o2(s,i,o)}function n2(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 JE(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 o2(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 Xi=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Jr(t,r),this.back=new Jr(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 Jr(t,r),this.back=new Jr(t,r)}};function mg(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(KE[e]!==void 0){let n=t?40:30,o=KE[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 s2(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(ZN[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=i2(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 i2(e){let t=mg(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 fg(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function YE(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),fg(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",fg(e),fg(t)].join("|")}function QE(e,t,r){let n=YE(e,t,r),o=yo.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...s2(r));let i=mg(e,!1),a=mg(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(yo.has(n))yo.delete(n);else if(yo.size>=e2){let d=yo.keys().next();d.done||yo.delete(d.value)}return yo.set(n,l),l===""?null:l}function a2(e){return e.length===1&&e.charCodeAt(0)<=127?1:be(e)}function Cd(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=QE(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(`
204
- `)}function hg(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=QE(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+(a2(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Od(e,t){let r=t??Vr().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 l2="\x1B[?2026h",d2="\x1B[?2026l";function XE(e){let t=e??Vr();return t.synchronizedOutput?Od(l2,t.multiplexer):""}function ZE(e){let t=e??Vr();return t.synchronizedOutput?Od(d2,t.multiplexer):""}var yg={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 tv="\x1B[?25h",c2="\x1B[?25l",Dd=!1,ev=!1,u2=null,bg=null;function kg(e){return"isTTY"in e&&!!e.isTTY}function p2(){let e=bg??process.stdout;kg(e)&&Dd&&(e.write(tv),Dd=!1)}function f2(){ev||(ev=!0,u2=gn(p2))}function Fs(e=process.stdout){kg(e)&&(bg=e,Dd=!1,e.write(tv))}function Is(e=process.stdout){kg(e)&&(bg=e,f2(),Dd=!0,e.write(c2))}var g2="#ffffff",m2="#000000",h2="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},y2={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},b2={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},y={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"},ue={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},k2={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},fe={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},R2={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},w2={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},ge={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},_2={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},x2={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},tt={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},E2={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},re={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},v2={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},S2={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},T2={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},P2={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},A2={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},C2={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},rv={white:g2,black:m2,transparent:h2,slate:k,gray:y2,zinc:b2,neutral:y,stone:He,red:ue,orange:k2,amber:fe,yellow:R2,lime:w2,green:ge,emerald:_2,teal:x2,cyan:tt,sky:E2,blue:re,indigo:v2,violet:S2,purple:T2,fuchsia:P2,pink:A2,rose:C2};var te={primary:{50:re[50],100:re[100],200:re[200],300:re[300],400:re[400],500:re[500],600:re[600],700:re[700],800:re[800],900:re[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: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]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[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]}},Rg={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:te,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:te.success[500],warning:te.warning[500],critical:te.danger[500],info:tt[500],highlight:te.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:te.primary[400],ring:{color:te.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:te.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:te.primary[500],danger:te.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:te.primary[500],fg:"#ffffff",hoverBg:te.primary[400],activeBg:te.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:te.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:te.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:te.primary[700],selectedBg:te.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:te.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:te.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:te.primary[500],invalidBorder:te.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:te.primary[500]},radio:{bg:k[800],dotColor:te.primary[500],border:k[600],checkedBorder:te.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:te.success[500],fg:"#ffffff"},warning:{bg:te.warning[500],fg:k[900]},danger:{bg:te.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:te.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:te.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:te.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te.success[700]},warning:{bg:te.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:te.warning[600]},danger:{bg:te.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:te.primary[600],fg:"#ffffff"},info:{bg:tt[600],fg:"#ffffff"},success:{bg:te.success[600],fg:"#ffffff"},warning:{bg:te.warning[500],fg:k[900]},danger:{bg:te.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:te.primary[400],subtitleFg:k[400],border:te.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:te.primary[700],headerFg:"#ffffff",contentBg:k[900],border:te.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:te.primary[700],itemSelectedFg:"#ffffff",highlightFg:te.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:te.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:te.success[900],fg:te.success[100],border:te.success[600],iconFg:te.success[400]},error:{bg:te.danger[900],fg:te.danger[100],border:te.danger[600],iconFg:te.danger[400]},warning:{bg:te.warning[900],fg:te.warning[100],border:te.warning[500],iconFg:te.warning[400]},info:{bg:tt[900],fg:tt[100],border:tt[600],iconFg:tt[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:te.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:te.primary[600],titleBarFg:"#ffffff",border:te.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:te.success[600],titleBarFg:"#ffffff",border:te.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:te.warning[500],titleBarFg:k[900],border:te.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:te.danger[600],titleBarFg:"#ffffff",border:te.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:re[50],100:re[100],200:re[200],300:re[300],400:re[400],500:re[500],600:re[600],700:re[700],800:re[800],900:re[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: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]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[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]}},nv={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:ge[600],warning:fe[600],critical:ue[600],info:tt[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:tt[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:tt[50],fg:tt[900],border:tt[200],iconFg:tt[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 D={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},bo={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"}},ov={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:bo,background:{lowest:D.backgroundDark,base:D.background,subtle:D.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:D.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:D.foreground,secondary:"#E8E8E2",muted:D.comment,disabled:"#5B5A4F",inverse:{base:D.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:D.green,warning:D.yellow,critical:D.pink,info:D.cyan,highlight:D.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:D.green,ring:{color:D.green,width:2}},disabled:{opacity:.4,bg:D.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:D.foreground}},borders:{default:"#49483E",subtle:D.backgroundLight,strong:D.comment,accent:D.green,danger:D.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:D.green,fg:D.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:D.foreground,hoverBg:"#5B5A4F",activeBg:D.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:D.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:D.green},ghost:{bg:"transparent",fg:D.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:D.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:D.backgroundLight,border:"#49483E",item:{fg:D.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:D.backgroundLight,border:"#49483E",tab:{fg:D.comment,activeFg:D.foreground,activeBg:D.background,hoverFg:"#E8E8E2",indicator:D.green}},dropdown:{bg:D.backgroundLight,border:"#49483E",item:{fg:D.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:D.backgroundLight,fg:D.foreground,placeholder:D.comment,border:"#49483E",focusBorder:D.green,invalidBorder:D.pink},checkbox:{bg:D.backgroundLight,border:"#5B5A4F",checkColor:D.background,checkedBg:D.green},radio:{bg:D.backgroundLight,dotColor:D.green,border:"#5B5A4F",checkedBorder:D.green},tooltip:{bg:"#49483E",fg:D.foreground},modal:{bg:D.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:D.foreground},success:{bg:D.green,fg:D.background},warning:{bg:D.yellow,fg:D.background},danger:{bg:D.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:D.backgroundLight,selectedBg:"#49483E",fg:D.foreground}},header:{default:{bg:D.backgroundLight,fg:D.foreground,titleFg:D.foreground,subtitleFg:D.comment,border:"#49483E"},primary:{bg:D.green,fg:D.background,titleFg:D.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:D.foreground,titleFg:D.foreground,subtitleFg:D.comment,border:"#5B5A4F"},success:{bg:D.green,fg:D.background,titleFg:D.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:D.yellow,fg:D.background,titleFg:D.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:D.orange},danger:{bg:D.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:D.backgroundLight,fg:D.comment},primary:{bg:D.green,fg:D.background},info:{bg:D.cyan,fg:D.background},success:{bg:D.green,fg:D.background},warning:{bg:D.yellow,fg:D.background},danger:{bg:D.pink,fg:"#ffffff"}},page:{default:{bg:D.background,titleFg:D.foreground,subtitleFg:D.comment,border:"#49483E"},primary:{bg:D.background,titleFg:D.green,subtitleFg:D.comment,border:D.green},secondary:{bg:D.background,titleFg:"#E8E8E2",subtitleFg:D.comment,border:"#49483E"}},appshell:{bg:D.backgroundDark,dividerFg:"#49483E",sidebarBg:D.background,asideBg:D.background},collapsible:{default:{headerBg:D.backgroundLight,headerFg:D.foreground,contentBg:D.background,border:"#49483E",iconFg:D.comment},primary:{headerBg:"#49483E",headerFg:D.green,contentBg:D.background,border:D.green,iconFg:D.green},secondary:{headerBg:"#49483E",headerFg:D.foreground,contentBg:D.backgroundLight,border:"#5B5A4F",iconFg:D.comment}},commandPalette:{bg:D.backgroundLight,border:"#49483E",inputBg:D.background,inputFg:D.foreground,inputPlaceholder:D.comment,itemFg:D.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:D.foreground,highlightFg:D.green,categoryFg:D.comment},splitPanel:{bg:D.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:D.green,border:"#49483E",titleFg:D.comment},toast:{success:{bg:bo.success[900],fg:bo.success[100],border:D.green,iconFg:D.green},error:{bg:bo.danger[900],fg:bo.danger[100],border:D.pink,iconFg:D.pink},warning:{bg:bo.warning[900],fg:bo.warning[100],border:D.yellow,iconFg:D.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:D.cyan,iconFg:D.cyan}},window:{default:{bg:D.background,fg:D.foreground,titleBarBg:D.backgroundLight,titleBarFg:D.foreground,border:"#49483E",buttonFg:D.comment,closeFg:D.pink},primary:{bg:D.background,fg:D.foreground,titleBarBg:D.green,titleBarFg:D.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:D.background},success:{bg:D.background,fg:D.foreground,titleBarBg:D.green,titleBarFg:D.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:D.background},warning:{bg:D.background,fg:D.foreground,titleBarBg:D.yellow,titleBarFg:D.background,border:D.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:D.background},danger:{bg:D.background,fg:D.foreground,titleBarBg:D.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var C={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},ko={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"}},sv={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:ko,background:{lowest:"#21222C",base:C.background,subtle:C.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:C.comment,popover:C.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:C.foreground,secondary:"#E8E8E2",muted:C.comment,disabled:"#565869",inverse:{base:C.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:C.green,warning:C.yellow,critical:C.red,info:C.cyan,highlight:C.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:C.purple,ring:{color:C.purple,width:2}},disabled:{opacity:.4,bg:C.currentLine,fg:"#565869"},selected:{bg:C.currentLine,fg:C.foreground}},borders:{default:C.comment,subtle:C.currentLine,strong:C.purple,accent:C.purple,danger:C.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:C.purple,fg:C.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:C.currentLine,fg:C.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:C.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:C.purple},ghost:{bg:"transparent",fg:C.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:C.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:C.comment},menu:{bg:C.currentLine,border:C.comment,item:{fg:C.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:C.currentLine,border:C.comment,tab:{fg:C.comment,activeFg:C.foreground,activeBg:C.background,hoverFg:"#E8E8E2",indicator:C.purple}},dropdown:{bg:C.currentLine,border:C.comment,item:{fg:C.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:C.currentLine,fg:C.foreground,placeholder:C.comment,border:C.comment,focusBorder:C.purple,invalidBorder:C.red},checkbox:{bg:C.currentLine,border:C.comment,checkColor:C.foreground,checkedBg:C.purple},radio:{bg:C.currentLine,dotColor:C.purple,border:C.comment,checkedBorder:C.purple},tooltip:{bg:"#4D4F5F",fg:C.foreground},modal:{bg:C.currentLine,border:C.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:C.comment,fg:C.foreground},success:{bg:C.green,fg:C.background},warning:{bg:C.yellow,fg:C.background},danger:{bg:C.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:C.currentLine,selectedBg:"#4D4F5F",fg:C.foreground}},header:{default:{bg:C.currentLine,fg:C.foreground,titleFg:C.foreground,subtitleFg:C.comment,border:C.comment},primary:{bg:C.purple,fg:C.foreground,titleFg:C.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:C.foreground,titleFg:C.foreground,subtitleFg:C.comment,border:"#565869"},success:{bg:C.green,fg:C.background,titleFg:C.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:C.yellow,fg:C.background,titleFg:C.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:C.orange},danger:{bg:C.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:C.currentLine,fg:C.comment},primary:{bg:C.purple,fg:C.foreground},info:{bg:C.cyan,fg:C.background},success:{bg:C.green,fg:C.background},warning:{bg:C.yellow,fg:C.background},danger:{bg:C.red,fg:"#ffffff"}},page:{default:{bg:C.background,titleFg:C.foreground,subtitleFg:C.comment,border:C.comment},primary:{bg:C.background,titleFg:C.purple,subtitleFg:C.comment,border:C.purple},secondary:{bg:C.background,titleFg:"#E8E8E2",subtitleFg:C.comment,border:C.currentLine}},appshell:{bg:"#21222C",dividerFg:C.comment,sidebarBg:C.background,asideBg:C.background},collapsible:{default:{headerBg:C.currentLine,headerFg:C.foreground,contentBg:C.background,border:C.comment,iconFg:C.comment},primary:{headerBg:"#4D4F5F",headerFg:C.purple,contentBg:C.background,border:C.purple,iconFg:C.purple},secondary:{headerBg:"#4D4F5F",headerFg:C.foreground,contentBg:C.currentLine,border:"#565869",iconFg:C.comment}},commandPalette:{bg:C.currentLine,border:C.comment,inputBg:C.background,inputFg:C.foreground,inputPlaceholder:C.comment,itemFg:C.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:C.foreground,highlightFg:C.purple,categoryFg:C.comment},splitPanel:{bg:C.background,dividerBg:C.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:C.purple,border:C.comment,titleFg:C.comment},toast:{success:{bg:ko.success[900],fg:ko.success[100],border:C.green,iconFg:C.green},error:{bg:ko.danger[900],fg:ko.danger[100],border:C.red,iconFg:C.red},warning:{bg:ko.warning[900],fg:ko.warning[100],border:C.yellow,iconFg:C.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:C.cyan,iconFg:C.cyan}},window:{default:{bg:C.background,fg:C.foreground,titleBarBg:C.currentLine,titleBarFg:C.foreground,border:C.comment,buttonFg:C.comment,closeFg:C.red},primary:{bg:C.background,fg:C.foreground,titleBarBg:C.purple,titleBarFg:C.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:C.foreground},success:{bg:C.background,fg:C.foreground,titleBarBg:C.green,titleBarFg:C.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:C.background},warning:{bg:C.background,fg:C.foreground,titleBarBg:C.yellow,titleBarFg:C.background,border:C.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:C.background},danger:{bg:C.background,fg:C.foreground,titleBarBg:C.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"},Ro={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"}},iv={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:Ro,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:Ro.success[900],fg:Ro.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:Ro.danger[900],fg:Ro.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:Ro.warning[900],fg:Ro.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 T={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"},wo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:T.blue,500:T.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:T.green,500:T.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:T.yellow,500:T.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:T.red,500:T.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:T.base3,100:T.base2,200:T.base1,300:T.base0,400:T.base00,500:T.base01,600:"#4A5A60",700:T.base02,800:T.base03,900:"#001E26"}},av={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:wo,background:{lowest:"#001E26",base:T.base03,subtle:T.base02,surface:"#094652",raised:"#0B5A66",elevated:T.base01,popover:T.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:T.base0,secondary:T.base1,muted:T.base00,disabled:T.base01,inverse:{base:T.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:T.green,warning:T.yellow,critical:T.red,info:T.cyan,highlight:T.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:T.blue,ring:{color:T.blue,width:2}},disabled:{opacity:.4,bg:T.base02,fg:T.base01},selected:{bg:T.base02,fg:T.base1}},borders:{default:T.base01,subtle:T.base02,strong:T.base0,accent:T.blue,danger:T.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:T.blue,fg:T.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:T.base02,fg:T.base1,hoverBg:"#094652",activeBg:T.base03,border:"transparent"},outline:{bg:"transparent",fg:T.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:T.blue},ghost:{bg:"transparent",fg:T.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:T.base02,headerBg:"#094652",footerBg:"#094652",border:T.base01},menu:{bg:T.base02,border:T.base01,item:{fg:T.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:T.base01}},tabs:{bg:T.base02,border:T.base01,tab:{fg:T.base00,activeFg:T.base1,activeBg:T.base03,hoverFg:T.base0,indicator:T.blue}},dropdown:{bg:T.base02,border:T.base01,item:{fg:T.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:T.base02,fg:T.base0,placeholder:T.base00,border:T.base01,focusBorder:T.blue,invalidBorder:T.red},checkbox:{bg:T.base02,border:T.base01,checkColor:T.base3,checkedBg:T.blue},radio:{bg:T.base02,dotColor:T.blue,border:T.base01,checkedBorder:T.blue},tooltip:{bg:"#094652",fg:T.base1},modal:{bg:T.base02,border:T.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:T.base01,fg:T.base1},success:{bg:T.green,fg:T.base3},warning:{bg:T.yellow,fg:T.base03},danger:{bg:T.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:T.base02,selectedBg:"#094652",fg:T.base0}},header:{default:{bg:T.base02,fg:T.base0,titleFg:T.base1,subtitleFg:T.base00,border:T.base01},primary:{bg:T.blue,fg:T.base3,titleFg:T.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:T.base0,titleFg:T.base1,subtitleFg:T.base00,border:"#0B5A66"},success:{bg:T.green,fg:T.base3,titleFg:T.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:T.yellow,fg:T.base03,titleFg:T.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:T.orange},danger:{bg:T.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:T.base02,fg:T.base00},primary:{bg:T.blue,fg:T.base3},info:{bg:T.cyan,fg:T.base03},success:{bg:T.green,fg:T.base3},warning:{bg:T.yellow,fg:T.base03},danger:{bg:T.red,fg:"#ffffff"}},page:{default:{bg:T.base03,titleFg:T.base1,subtitleFg:T.base00,border:T.base01},primary:{bg:T.base03,titleFg:T.blue,subtitleFg:T.base00,border:T.blue},secondary:{bg:T.base03,titleFg:T.base0,subtitleFg:T.base00,border:T.base02}},appshell:{bg:"#001E26",dividerFg:T.base01,sidebarBg:T.base03,asideBg:T.base03},collapsible:{default:{headerBg:T.base02,headerFg:T.base1,contentBg:T.base03,border:T.base01,iconFg:T.base00},primary:{headerBg:"#094652",headerFg:T.blue,contentBg:T.base03,border:T.blue,iconFg:T.blue},secondary:{headerBg:"#094652",headerFg:T.base1,contentBg:T.base02,border:"#0B5A66",iconFg:T.base00}},commandPalette:{bg:T.base02,border:T.base01,inputBg:T.base03,inputFg:T.base0,inputPlaceholder:T.base00,itemFg:T.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:T.base1,highlightFg:T.blue,categoryFg:T.base00},splitPanel:{bg:T.base03,dividerBg:T.base01,dividerHoverBg:"#094652",dividerActiveBg:T.blue,border:T.base01,titleFg:T.base00},toast:{success:{bg:wo.success[900],fg:wo.success[100],border:T.green,iconFg:T.green},error:{bg:wo.danger[900],fg:wo.danger[100],border:T.red,iconFg:T.red},warning:{bg:wo.warning[900],fg:wo.warning[100],border:T.yellow,iconFg:T.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:T.cyan,iconFg:T.cyan}},window:{default:{bg:T.base03,fg:T.base0,titleBarBg:T.base02,titleBarFg:T.base1,border:T.base01,buttonFg:T.base00,closeFg:T.red},primary:{bg:T.base03,fg:T.base0,titleBarBg:T.blue,titleBarFg:T.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:T.base3},success:{bg:T.base03,fg:T.base0,titleBarBg:T.green,titleBarFg:T.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:T.base3},warning:{bg:T.base03,fg:T.base0,titleBarBg:T.yellow,titleBarFg:T.base03,border:T.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:T.base03},danger:{bg:T.base03,fg:T.base0,titleBarBg:T.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"},_o={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}},lv={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:_o,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:_o.success[900],fg:_o.success[100],border:_.green,iconFg:_.green},error:{bg:_o.danger[900],fg:_o.danger[100],border:_.red,iconFg:_.red},warning:{bg:_o.warning[900],fg:_o.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"},xo={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"}},dv={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:xo,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:xo.success[900],fg:xo.success[100],border:v.green,iconFg:v.green},error:{bg:xo.danger[900],fg:xo.danger[100],border:v.red,iconFg:v.red},warning:{bg:xo.warning[900],fg:xo.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"},Eo={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}},cv={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:Eo,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:Eo.success[900],fg:Eo.success[100],border:x.green,iconFg:x.green},error:{bg:Eo.danger[900],fg:Eo.danger[100],border:x.red,iconFg:x.red},warning:{bg:Eo.warning[900],fg:Eo.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 vo={primary:{50:re[50],100:re[100],200:re[200],300:re[300],400:re[400],500:re[500],600:re[600],700:re[700],800:re[800],900:re[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{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]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},uv={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:vo,background:{lowest:"#000000",base:"#000000",subtle:y[950],surface:y[900],raised:y[800],elevated:y[700],popover:y[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:y[100],muted:y[300],disabled:y[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:ge[400],warning:fe[400],critical:ue[400],info:tt[400],highlight:re[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:re[400],ring:{color:re[400],width:3}},disabled:{opacity:.5,bg:y[900],fg:y[500]},selected:{bg:re[800],fg:"#ffffff"}},borders:{default:y[500],subtle:y[700],strong:y[300],accent:re[400],danger:ue[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:re[500],fg:"#ffffff",hoverBg:re[400],activeBg:re[600],border:re[300]},secondary:{bg:y[800],fg:"#ffffff",hoverBg:y[700],activeBg:y[900],border:y[500]},outline:{bg:"transparent",fg:re[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:re[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:y[950],headerBg:y[900],footerBg:y[900],border:y[500]},menu:{bg:y[950],border:y[500],item:{fg:"#ffffff",hoverBg:y[800],activeBg:re[800],selectedBg:re[900],disabledFg:y[500]}},tabs:{bg:y[950],border:y[500],tab:{fg:y[300],activeFg:"#ffffff",activeBg:y[800],hoverFg:y[100],indicator:re[400]}},dropdown:{bg:y[950],border:y[500],item:{fg:"#ffffff",hoverBg:y[800],selectedBg:re[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:y[400],border:y[500],focusBorder:re[400],invalidBorder:ue[400]},checkbox:{bg:"#000000",border:y[400],checkColor:"#000000",checkedBg:re[400]},radio:{bg:"#000000",dotColor:re[400],border:y[400],checkedBorder:re[400]},tooltip:{bg:y[800],fg:"#ffffff"},modal:{bg:y[950],border:y[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:y[700],fg:"#ffffff"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:y[900],selectedBg:re[800],fg:"#ffffff"}},header:{default:{bg:y[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},primary:{bg:re[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:re[300]},secondary:{bg:y[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},success:{bg:ge[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[300]},warning:{bg:fe[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:fe[600]},danger:{bg:ue[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ue[300]}},statusbar:{default:{bg:y[950],fg:y[300]},primary:{bg:re[500],fg:"#ffffff"},info:{bg:tt[500],fg:"#000000"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},primary:{bg:"#000000",titleFg:re[400],subtitleFg:y[300],border:re[400]},secondary:{bg:"#000000",titleFg:y[100],subtitleFg:y[400],border:y[700]}},appshell:{bg:"#000000",dividerFg:y[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:y[950],headerFg:"#ffffff",contentBg:"#000000",border:y[500],iconFg:y[300]},primary:{headerBg:y[900],headerFg:re[400],contentBg:"#000000",border:re[400],iconFg:re[400]},secondary:{headerBg:y[900],headerFg:"#ffffff",contentBg:y[950],border:y[500],iconFg:y[300]}},commandPalette:{bg:y[950],border:y[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:y[400],itemFg:"#ffffff",itemHoverBg:y[800],itemSelectedBg:re[800],itemSelectedFg:"#ffffff",highlightFg:re[400],categoryFg:y[400]},splitPanel:{bg:"#000000",dividerBg:y[500],dividerHoverBg:y[400],dividerActiveBg:re[400],border:y[500],titleFg:y[300]},toast:{success:{bg:vo.success[900],fg:vo.success[100],border:ge[400],iconFg:ge[400]},error:{bg:vo.danger[900],fg:vo.danger[100],border:ue[400],iconFg:ue[400]},warning:{bg:vo.warning[900],fg:vo.warning[100],border:fe[400],iconFg:fe[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:tt[400],iconFg:tt[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:y[950],titleBarFg:"#ffffff",border:y[500],buttonFg:y[300],closeFg:ue[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:re[500],titleBarFg:"#ffffff",border:re[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[500],titleBarFg:"#000000",border:ge[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:fe[400],titleBarFg:"#000000",border:fe[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ue[500],titleBarFg:"#ffffff",border:ue[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var O2={primary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},warning:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},danger:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},pv={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:O2,background:{lowest:y[950],base:y[900],subtle:y[800],surface:y[700],raised:y[600],elevated:y[500],popover:y[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:y[50],secondary:y[200],muted:y[400],disabled:y[500],inverse:{base:y[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:y[300],warning:y[400],critical:y[200],info:y[300],highlight:y[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:y[400],ring:{color:y[400],width:2}},disabled:{opacity:.4,bg:y[800],fg:y[500]},selected:{bg:y[700],fg:y[50]}},borders:{default:y[600],subtle:y[700],strong:y[400],accent:y[400],danger:y[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:y[300],fg:y[900],hoverBg:y[200],activeBg:y[400],border:"transparent"},secondary:{bg:y[700],fg:y[50],hoverBg:y[600],activeBg:y[800],border:"transparent"},outline:{bg:"transparent",fg:y[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:y[400]},ghost:{bg:"transparent",fg:y[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:y[800],headerBg:y[700],footerBg:y[700],border:y[600]},menu:{bg:y[800],border:y[600],item:{fg:y[50],hoverBg:y[700],activeBg:y[600],selectedBg:y[700],disabledFg:y[500]}},tabs:{bg:y[800],border:y[600],tab:{fg:y[400],activeFg:y[50],activeBg:y[700],hoverFg:y[200],indicator:y[300]}},dropdown:{bg:y[800],border:y[600],item:{fg:y[50],hoverBg:y[700],selectedBg:y[600]}},input:{bg:y[800],fg:y[50],placeholder:y[500],border:y[600],focusBorder:y[400],invalidBorder:y[300]},checkbox:{bg:y[800],border:y[500],checkColor:y[900],checkedBg:y[300]},radio:{bg:y[800],dotColor:y[300],border:y[500],checkedBorder:y[300]},tooltip:{bg:y[700],fg:y[50]},modal:{bg:y[800],border:y[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:y[700],fg:y[50]},success:{bg:y[400],fg:y[900]},warning:{bg:y[500],fg:y[900]},danger:{bg:y[300],fg:y[900]}},list:{item:{bg:"transparent",hoverBg:y[800],selectedBg:y[700],fg:y[50]}},header:{default:{bg:y[800],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},primary:{bg:y[300],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[400]},secondary:{bg:y[700],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},success:{bg:y[400],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[500]},warning:{bg:y[500],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[600]},danger:{bg:y[300],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[400]}},statusbar:{default:{bg:y[800],fg:y[400]},primary:{bg:y[300],fg:y[900]},info:{bg:y[400],fg:y[900]},success:{bg:y[400],fg:y[900]},warning:{bg:y[500],fg:y[900]},danger:{bg:y[300],fg:y[900]}},page:{default:{bg:y[900],titleFg:y[50],subtitleFg:y[400],border:y[600]},primary:{bg:y[900],titleFg:y[200],subtitleFg:y[400],border:y[500]},secondary:{bg:y[900],titleFg:y[300],subtitleFg:y[500],border:y[700]}},appshell:{bg:y[950],dividerFg:y[600],sidebarBg:y[900],asideBg:y[900]},collapsible:{default:{headerBg:y[800],headerFg:y[50],contentBg:y[900],border:y[600],iconFg:y[400]},primary:{headerBg:y[700],headerFg:y[200],contentBg:y[900],border:y[500],iconFg:y[300]},secondary:{headerBg:y[700],headerFg:y[50],contentBg:y[800],border:y[600],iconFg:y[400]}},commandPalette:{bg:y[800],border:y[600],inputBg:y[900],inputFg:y[50],inputPlaceholder:y[500],itemFg:y[50],itemHoverBg:y[700],itemSelectedBg:y[600],itemSelectedFg:y[50],highlightFg:y[200],categoryFg:y[500]},splitPanel:{bg:y[900],dividerBg:y[600],dividerHoverBg:y[500],dividerActiveBg:y[300],border:y[600],titleFg:y[400]},toast:{success:{bg:y[800],fg:y[100],border:y[400],iconFg:y[300]},error:{bg:y[800],fg:y[100],border:y[300],iconFg:y[200]},warning:{bg:y[800],fg:y[100],border:y[500],iconFg:y[400]},info:{bg:y[800],fg:y[100],border:y[400],iconFg:y[300]}},window:{default:{bg:y[900],fg:y[50],titleBarBg:y[800],titleBarFg:y[50],border:y[600],buttonFg:y[400],closeFg:y[300]},primary:{bg:y[900],fg:y[50],titleBarBg:y[300],titleBarFg:y[900],border:y[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},success:{bg:y[900],fg:y[50],titleBarBg:y[400],titleBarFg:y[900],border:y[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},warning:{bg:y[900],fg:y[50],titleBarBg:y[500],titleBarFg:y[900],border:y[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},danger:{bg:y[900],fg:y[50],titleBarBg:y[300],titleBarFg:y[900],border:y[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]}}},borderRadius:"none"};var gv=Symbol("tuiuiu.theme-runtime-state");function fv(){let[e,t]=wr(Rg);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function D2(e){if(e.id===0)return fv();let t=Gt(gv,fv),[r,n]=wr(Os(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function mv(){let e=Ge();return De(gv,()=>D2(e),e)}function hv(){return Os(mv().currentTheme)}var F2={dark:Rg,light:nv,monokai:ov,dracula:sv,nord:iv,solarizedDark:av,gruvbox:lv,tokyoNight:dv,catppuccin:cv,highContrastDark:uv,monochrome:pv},EY=Object.keys(F2);function I2(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 Tt(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("#")&&I2(e)>.4?"black":"white"}function M2(e,t=500){let r=rv[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var L2={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=>Tt(e.palette.primary[500]),"primary-foreground":e=>Tt(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=>Tt(e.palette.secondary[500]),"secondary-foreground":e=>Tt(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=>Tt(e.accents.positive),"success-foreground":e=>Tt(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=>Tt(e.accents.warning),"warning-foreground":e=>Tt(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=>Tt(e.accents.critical),"danger-foreground":e=>Tt(e.accents.critical),errorForeground:e=>Tt(e.accents.critical),destructiveForeground:e=>Tt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>Tt(e.accents.info),"info-foreground":e=>Tt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>Tt(e.palette.primary[400]),"accent-foreground":e=>Tt(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 yv(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=Os(mv().currentTheme),r=L2[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return M2(o,i)}return e}var j2={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},bv=Symbol("tuiuiu.perf-inspector-runtime-state");function $2(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function kv(e){let t=e.id===0?null:Gt(bv,()=>kv(Hr())),r=$2(t?.config??j2);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function Rv(){let e=Ge();return De(bv,()=>kv(e),e)}function B2(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function N2(e,t){let r=H2().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 G2(e,t){e.ring.length!==e.config.maxFrames&&N2(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 W2(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 wv(e,t={}){let r=Rv(),n=B2(e),o=Math.max(0,n-r.config.budget.frameMs),s=W2(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;bE({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(G2(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function H2(){let e=Rv(),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 U2={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function So(e,t){return AE(e,t,U2)}function wg(e){CE(e)}function Ln(e,t){FE(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),wv(e,{renderer:t.renderer})}var q2=.4,K2=64;function To(){return typeof performance<"u"?performance.now():Date.now()}var _v=new WeakMap;function V2(){let e=hv(),t=_v.get(e);return t||(t=new Map,_v.set(e,t)),t}function z2(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&&J2(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 J2(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 vv(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 Sv(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 Y2(e,t,r){let n=e.map(s=>Sv(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(!(vv(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 Q2(e,t,r){let n=new Map;for(let i of e){let a=Sv(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 Tv(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 Xi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,b=0;function h(F){W(t.columns||80,t.rows||24);let U=So(F,{width:s,height:i});w(U)}function w(F){W(F.info.viewport.width,F.info.viewport.height),H(F),Es(F.layout),Mi(),c=F.root,u=F}function S(){l=!0,c?h(c):u&&H(u)}function L(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Xi(s,i),l=!0}function A(){!r&&d&&(Fs(t),d=!1)}function M(){let F=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:b,totalCells:F,updatePercentage:F>0?b/F*100:0}}function N(F,U){s=F,i=U,a.resize(s,i),l=!0}function W(F,U){!r&&!d&&(Is(t),d=!0),(F!==s||U!==i)&&N(F,U)}function H(F){let U=To(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let X=s*i,pe=aG(u,F),Ce=Vr(),Ee=XE(Ce),ke=ZE(Ce),J=_e=>{let Oe=To();t.write(_e),q+=To()-Oe,oe+=typeof _e=="string"?Buffer.byteLength(_e):_e.byteLength};if(!l&&n&&u){let{renderRects:_e,diffRects:Oe}=Z2(u.drawCommands,F.drawCommands,s,i);if(Ft(F,"dirtyRectCount",_e.length),Ft(F,"diffRectCount",Oe.length),_e.length===0){pe&&J(pe),b=0,Ft(F,"patchCount",0),Ft(F,"outputByteCount",oe),ut(F,"outputWriteMs",q),ut(F,"deltaRenderMs",Math.max(0,To()-U-q)),Ln(F,{renderer:"delta"});return}let ve=eG(_e);if(!(_e.length>K2||ve>X*q2)){Ee&&J(Ee),tG(se,_e),nG(F.drawCommands,_e,se,F.reservedRegions);let Se=ae.diffRects(se,Oe);if(ae.applyPatches(Se),se.clearDamage(),b=Se.length,Ft(F,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${_e.length}, patches: ${Se.length}, cells: ${X}`),pe&&J(pe),Se.length>0){let me=hg(Se,s,!0);J(me),g++}ke&&J(ke),Ft(F,"outputByteCount",oe),ut(F,"outputWriteMs",q),ut(F,"deltaRenderMs",Math.max(0,To()-U-q)),Ln(F,{renderer:"delta"});return}}Ee&&J(Ee),se.clear(),Cv(F.drawCommands,se,F.reservedRegions);let ce=a.swap();if(b=ce.length,Ft(F,"patchCount",ce.length),o&&console.error(`[delta-render] patches: ${ce.length}, cells: ${X}`),l||!n||ce.length>X*.5){let _e=Cd(a.getFrontBuffer());pe&&J(pe),J("\x1B[H"),J(_e),f++,l=!1,ke&&J(ke),Ft(F,"outputByteCount",oe),ut(F,"outputWriteMs",q),ut(F,"deltaRenderMs",Math.max(0,To()-U-q)),Ln(F,{renderer:"delta"});return}if(pe&&J(pe),ce.length>0){let _e=hg(ce,s,!0);J(_e),g++}l=!1,ke&&J(ke),Ft(F,"outputByteCount",oe),ut(F,"outputWriteMs",q),ut(F,"deltaRenderMs",Math.max(0,To()-U-q)),Ln(F,{renderer:"delta"})}return{render:h,renderFrame:w,fullRedraw:S,clear:L,cleanup:A,stats:M,resize:N}}function X2(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=po(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 _g(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:X2(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 Z2(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&&z2(a,l)||(a&&o.push(_g(a)),l&&o.push(_g(l)))}return{renderRects:Y2(o,r,n),diffRects:Q2(o,r,n)}}function eG(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function tG(e,t){let r=zr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function Pv(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function Er(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)||Pv(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function rG(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)&&!Pv(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function Av(e,t,r){switch(e.type){case"box":oG(e,t,r);break;case"text":Mv(e,t,r);break;case"terminal-image":sG(e,t);break}}function nG(e,t,r,n){for(let o of e){let s=_g(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(vv(s,i)){Av(o,r,n);break}}}}function Cv(e,t,r){for(let n of e)Av(n,t,r)}function Ov(e,t=new Jr(e.info.viewport.width,e.info.viewport.height)){return Cv(e.drawCommands,t,e.reservedRegions),t}function oG(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:b,clip:h}=e,w=a?Po(a):void 0,S=c?Po(c):void 0,L=f?Po(f):S;if(w||l!==" "){let A=d&&d!=="none"?1:0,M=n+A,N=o+A,W=Math.max(0,s-A*2),H=Math.max(0,i-A*2);for(let F=0;F<H;F++)rG(t,r,M,N+F,W,l,void 0,w,{},h)}if(d&&d!=="none"){let A=yg[d]??yg.single,M={},N=u?.top!==!1,W=u?.bottom!==!1,H=u?.left!==!1,F=u?.right!==!1;if(N){let U=H?A.topLeft:A.top;Er(t,r,n,o,U,S,void 0,M,h);for(let q=1;q<s-1;q++)Er(t,r,n+q,o,A.top,S,void 0,M,h);if(s>1){let q=F?A.topRight:A.top;Er(t,r,n+s-1,o,q,S,void 0,M,h)}if(p&&s>4){let q=s-4,ae=` ${un(V_(p),q,{truncationCharacter:""})} `,se=be(ae),X=g??"center",pe=X==="left"?n+1:X==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ce=0,Ee=pe;for(;Ce<ae.length&&Ee<n+s-1;){let ke=uo(ae,Ce);if(!ke)break;Ce=ke.nextIndex;let J=be(ke.symbol);J<=0||Ee+J>n+s-1||(Er(t,r,Ee,o,ke.symbol,L,void 0,b?{...M,bold:!0}:M,h),Ee+=J)}}}for(let U=1;U<i-1;U++)H&&Er(t,r,n,o+U,A.left,S,void 0,M,h),F&&s>1&&Er(t,r,n+s-1,o+U,A.right,S,void 0,M,h);if(W&&i>1){let U=H?A.bottomLeft:A.bottom;Er(t,r,n,o+i-1,U,S,void 0,M,h);for(let q=1;q<s-1;q++)Er(t,r,n+q,o+i-1,A.bottom,S,void 0,M,h);if(s>1){let q=F?A.bottomRight:A.bottom;Er(t,r,n+s-1,o+i-1,q,S,void 0,M,h)}}}}function sG(e,t){e.cellRender&&Mv({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:Iv(e),style:{},clip:e.clip},t,[])}function Dv(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 Fv(e){let t=Dv(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 Zi(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${Fv(e)}:${e.x}:${e.y}`)}function Ms(e){return[Zi(e),e.x,e.y,Fv(e)].join(":")}function Iv(e){let t=Dv(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:bd(e.protocol,e.source,t)}function xv(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 iG(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Zi(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Zi(s));if(!i||Ms(s)!==Ms(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=As.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${kd("kitty")}\x1B8`}}return o}function aG(e,t){let r=xv(e),n=xv(t),o=r.map(Ms).join("|"),s=n.map(Ms).join("|");if(e&&o===s)return"";let i=iG(r,n),a=new Map(r.map(l=>[Zi(l),l]));for(let l of n){let d=a.get(Zi(l));d&&Ms(d)===Ms(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=Iv(l),i+="\x1B8")}return i}function Ls(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 lG(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=Ls(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(Ls);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function dG(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=Ls(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[Ls(e[t+2]),Ls(e[t+3]),Ls(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 Ev={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function cG(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=co(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 b=p[g].split(":"),h=Number(b[0]||0);if(b.length>1){if(h===4){let w=Number(b[1]||0);w in Ev&&(a.underline=Ev[w])}else if(h===38||h===48||h===58){let w=lG(b);w&&(h===38?s=w:h===48?i=w:a.underlineColor=w)}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:w,consumed:S}=dG(p,g);w&&(h===38?s=w:h===48?i=w:a.underlineColor=w),g+=S}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function Mv(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?Po(a.color):void 0,u=d?void 0:a.backgroundColor?Po(a.backgroundColor):l?Po(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?Po(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=po(i,s,a.wrap);if(g){let b=cG(f.join(`
205
- `),c,u,p),h=0,w=0;for(let S of b){let L=0;for(;L<S.text.length;){let A=uo(S.text,L);if(!A)break;let M=A.symbol;if(M===`
206
- `){w++,h=0,L=A.nextIndex;continue}let N=be(M);N>0&&(Er(t,r,n+h,o+w,M,S.fg,S.bg,S.attrs,e.clip),h+=N),L=A.nextIndex}}}else for(let b=0;b<f.length;b++){let h=0,w=0;for(;w<f[b].length;){let S=uo(f[b],w);if(!S)break;let L=S.symbol;if(h>=s)break;let A=be(L);A>0&&(Er(t,r,n+h,o+b,L,c,u,p,e.clip),h+=A),w=S.nextIndex}}}function Po(e){let t=V2(),r=t.get(e);if(r)return r;let n=yv(e);return t.set(e,n),n}var UY=Symbol("tuiuiu.delta-renderer-state");function Lv(){return typeof performance<"u"?performance.now():Date.now()}function $v(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=$v(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function uG(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 Eg(e,t={}){let r=Lv(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=$v(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Jr(e.info.viewport.width,u);Ov(e,p);let g=Cd(p,n),f=gG(e,o);return ut(e,"ansiRenderMs",Lv()-r),f+g}function Bv(e,t,r){let n=uG(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=So(e,{width:n.width,height:s});return Eg(i,{fullHeight:n.fullHeight})}function Nv(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 Gv(e){let t=Nv(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 ea(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${Gv(e)}:${e.x}:${e.y}`)}function js(e){return[ea(e),e.x,e.y,Gv(e)].join(":")}function pG(e){let t=Nv(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:bd(e.protocol,e.source,t)}function jv(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function xg(e,t){if(!Kx(t))return e;let r=Vr();return r.multiplexer?Od(e,r.multiplexer):e}function fG(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[ea(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(ea(s));if(!i||js(s)!==js(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=xg(`\x1B7\x1B[H${As.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return xg(`\x1B7\x1B[H${kd("kitty")}\x1B8`,"kitty")}}return o}function gG(e,t){let r=jv(e);if(r.length===0&&!t)return"";let n=jv(t),o=n.map(js).join("|"),s=r.map(js).join("|");if(t&&o===s)return"";let i=fG(n,r),a=new Map(n.map(l=>[ea(l),l]));for(let l of r){let d=a.get(ea(l));if(d&&js(d)===js(l))continue;let c=pG(l);i+=xg(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Fd(e){let{value:t,isNew:r}=br(null);if(r||t===null){let n=Vi(()=>wr(e)),o=ir();return kr(o,n),n}return t}function Wv(e){let{value:t,isNew:r}=br(null);if(r||t===null){let n=Vi(e);return kr(ir(),n),n}return t}function ta(e){let{value:t,isNew:r}=br(null);if(r||t===null){let n=ir(),o={effect:null,fn:e,dispose:null};kr(n,o);let s=new Dn(()=>{let a=Kr(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,go(i,n),i}else return t.fn=e,t.dispose}var cQ=Symbol("tuiuiu.keyboard-protocol-runtime-state");function Hv(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,b)=>{if(f===void 0)return b??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(b=>r(b));if(f.length===0||f.some(b=>b===null||!n(b)))return null;g=f.map(b=>String.fromCodePoint(b)).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 vg="\x1B[200~",$s="\x1B[201~",mG="\x1B[I",hG="\x1B[O";function Uv(){return"\x1B[?2004h"}function qv(){return"\x1B[?2004l"}function Kv(){return"\x1B[?1004h"}function Vv(){return"\x1B[?1004l"}function zv(e){return e===mG?{focused:!0}:e===hG?{focused:!1}:null}function Jv(){return"\x1B[?1049h"}function Sg(){return"\x1B[?1049l"}var yG={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"},bG=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),kG=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),RG=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,wG=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,_G=/^\x1b\[27;(\d+);(\d+)~/;function xG(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 Qv(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function Yv(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!Qv(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function EG(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 Tg(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===`
200
+ })`,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 fN(e){let t=pN.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function gN(e){return`docs/resources/common-mistakes.md#${fN(e).anchor}`}function pE(e){return`See ${gN(e)} or tuiuiu://guide/common-mistakes.`}var fE=new Set,hE=ur.normalize(mE(import.meta.url)),mN=ur.dirname(ur.dirname(hE)),hN=ur.dirname(mN),vd=0;function yE(){return process.env.NODE_ENV!=="production"}function gE(e){return e.startsWith("file://")?ur.normalize(mE(e)):ur.normalize(e)}function yN(e){let t=ur.normalize(e);return t.startsWith(hN)?t.includes(`${ur.sep}src${ur.sep}`)||t.includes(`${ur.sep}dist${ur.sep}`):!1}function bN(e){let t=ur.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function kN(e,t=[]){if(!e)return[];let r=new Set([hE,...t.map(gE)]),n=e.split(`
201
+ `).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=gE(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function RN(e,t){!yE()||fE.has(e)||(fE.add(e),console.warn(`[tuiuiu] ${t}`))}function Xi(e){vd++;try{return e()}finally{vd=Math.max(0,vd-1)}}function bE(e,t){if(!yE()||vd>0||!Tx()||Px()!=="component")return;let r=kN(e,[t])[0];if(!r||yN(r.filePath))return;let n=bN(r);RN(`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(). ${pE("signals-inside-component-render")}`)}var Dn=null,ea=new Set,Zi=!1,ug=class{_value;_subs=null;constructor(t){this._value=t}get value(){return Dn&&Dn._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 Fn){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 Fn){let r=this._subs;Zi?ea.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Zi?ea.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof Fn){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)}}},cg=null;var pg=!1,Sd=new Set;function wN(e){Sd.add(e),pg||(pg=!0,queueMicrotask(_N))}function _N(){pg=!1;let e=[...Sd];Sd.clear(),kE(e,t=>t.run())}function kE(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 Fn=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?wN(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=cg;cg=this._cleanups;let r=Dn;Dn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{Dn=r,cg=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,Sd.delete(this),ea.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 xr(e){bE(new Error().stack,import.meta.url);let t=new ug(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function RE(e,t={}){let r=new Fn(e,t);return()=>r.dispose()}function Jt(e){let t=Zi;Zi=!0;try{e()}finally{if(Zi=t,!t){let r=[...ea];ea.clear(),kE(r,n=>n.notify())}}}function Fs(e){let t=Dn;Dn=null;try{return e()}finally{Dn=t}}var xN=Symbol("tuiuiu.terminal-focus-state");function EN(){let[e,t]=xr(!0);return{read:e,write:t,listeners:new Set}}function fg(e){return De(xN,EN,e)}function Er(e){return fg(e).read()}function gg(e,t){let r=fg(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Td(e,t){let r=fg(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function mg(e){gg(!0,e)}var ko={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},_E=Symbol("tuiuiu.motion-runtime-state");function xE(e){let t=e.id===0?null:Nt(_E,()=>xE(Hr())),r={config:{...t?.config??ko},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,[Wr](){vE(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function yg(){let e=He();return De(_E,()=>xE(e),e)}function Pd(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function hg(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function vN(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 EE(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function SN(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Td(cn(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}Ad(e)})))}function bg(e,t=Er(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 wE(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:Er(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function TN(e,t){let r=Er(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=bg(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 vE(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function SE(e){if(e.schedulerTimer||!EE(e))return;SN(e);let t=TN(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(cn(e.scope,()=>PN(e)),t))}function PN(e){if(e.schedulerTimer=null,!EE(e))return;let t=Date.now(),r=Er(e.scope),n=bg(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=wE(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(wE(e,t,n,Math.max(s.intervalMs,i))))}SE(e)}function Ad(e){vE(e),SE(e)}function TE(e){let t=yg(),r=Pd(e.targetFps??t.config.targetFps,ko.targetFps),n=Pd(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Pd(e.unfocusedFps??t.config.unfocusedFps,ko.unfocusedFps),frameBudgetMs:hg(e.frameBudgetMs??t.config.frameBudgetMs,ko.frameBudgetMs),recoveryFrames:Pd(e.recoveryFrames??t.config.recoveryFrames,ko.recoveryFrames),elevatedFrameBudgetFactor:hg(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,ko.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:hg(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,ko.criticalFrameBudgetFactor)},Ad(t)}function Cd(){let e=yg();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:Er(e.scope),targetFrameMs:bg(e),recommendedPresentationIntervalMs:vN(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function AN(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function CN(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 PE(e){let t=yg();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"),Ad(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?AN(t):CN(t),Ad(t),t.qualityTier}function In(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function AE(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function CE(e){return e?Bt({key:e.key,transforms:e.transforms}):null}function ta(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 ON(e,t){let r=ta(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function DN(e,t){let r=In(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=ta(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function FN(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 IN(e,t,r){let n=In(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=ta(e);return a.clip=FN(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function MN(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 LN(e,t,r){if(e.type!=="text")return e;let n=In(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*In(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!MN(e,r,o,s))return e;let i=ta(e);return i.style={...i.style,bold:!0,inverse:!0},i}function jN(e,t,r){let n=In(t.progress);if(n<=0)return null;if(n>=1)return e;let o=ta(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=o.x,T=o.x+Math.max(1,o.maxWidth),F=Math.max(O,g),$=Math.min(T,f);if($<=F)return null;let G=Math.max(0,F-O),W=Math.max(G,$-O);return o.text=xs(o.text,G,W),o.x=F,o.maxWidth=Math.max(0,$-F),o.maxWidth>0&&o.text.length>0?o:null}let y=o.x,m=o.x+Math.max(1,o.width),w=Math.max(y,g),_=Math.min(m,f);return _<=w?null:(o.x=w,o.width=Math.max(0,_-w),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 $N(e,t,r){let n=Cd().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&In(s.opacity)<=0||s.kind==="scale"&&In(s.scale)<=0||s.kind==="reveal"&&In(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=ON(o,s);break;case"fade":o=DN(o,s);break;case"scale":o=IN(o,s,r);break;case"shimmer":o=LN(o,s,r);break;case"reveal":o=jN(o,s,r);break}}return o}function OE(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=$N(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var BN=1,NN=Symbol("tuiuiu.frame-runtime-state");function Rg(e){return De(NN,()=>({committedFrameSnapshot:null}),e)}var GN=new Set(["__terminalImage","__compositor"]),WN=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),HN=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),kg={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Od=new WeakMap,Ln=new Map,IE=4096;function Mn(){return typeof performance<"u"?performance.now():Date.now()}function UN(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 qN(e){return{eagerHitTargets:e?.eagerHitTargets??kg.eagerHitTargets,eagerQueries:e?.eagerQueries??kg.eagerQueries,eagerWarnings:e?.eagerWarnings??kg.eagerWarnings}}function KN(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 F=t.get(y)??[];F.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(y,F)}let m=f.paddingTop??f.paddingY??f.padding??0,w=f.paddingLeft??f.paddingX??f.padding??0,_=f.borderStyle&&f.borderStyle!=="none"?1:0,O=p+w+_,T=g+m+_;for(let F of u)r(F,O,T)};return r(e),t}function VN(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 zN(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&&VN(f.__scrollQuery)){let F=t.get(y)??[];F.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(y,F)}let m=f.paddingTop??f.paddingY??f.padding??0,w=f.paddingLeft??f.paddingX??f.padding??0,_=f.borderStyle&&f.borderStyle!=="none"?1:0,O=p+w+_,T=g+m+_;for(let F of u)r(F,O,T)};return r(e),t}function JN(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 DE(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 YN(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 QN(e,t,r,n,o){return{getElement:s=>{let i=DE(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=DE(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=YN(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 XN(e,t,r,n=[],o){let s=n.length>0?Bt(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function ZN(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 e2(e,t){let r=e.type==="text"?HN:WN,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Bt({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:GN})}function t2(e,t,r,n,o,s){return Bt([t,r,CE(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function r2(e,t,r){if(!cd(e.node))return;let n=Od.get(e);if(!n)return;if(n.cacheKey!==t){On(e.node,Ae.LAYOUT);return}let o=r();if(n.fingerprint!==o){On(e.node,Ae.CONTENT|Ae.STYLE);return}if(n.childRefs.length!==e.node.children.length){On(e.node,Ae.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){On(e.node,Ae.CHILDREN);return}return n}function FE(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Od.set(e,i),i}function n2(e){return e.map((t,r)=>({...t,order:r}))}function ME(e,t){return t?`${e}|motion:${Cd().qualityTier}`:e}function o2(){let e=Math.max(1,Math.ceil(IE*.1)),t=Ln.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Ln.delete(n.value)}}function s2(e){return Ln.get(e)}function i2(e,t,r){let n=Ln.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Ln.has(e)&&Ln.size>=IE&&o2(),Ln.set(e,o),o}function a2(e,t,r){let n=Ln.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function l2(e,t){for(let r of t)e.push(r)}function d2(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function c2(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function LE(e){let t=e.props;return AE(t?.__compositor)?t.__compositor:null}function jE(e,t=new Map){let r=LE(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)jE(n,t);return t}function u2(e,t,r,n,o,s){if(!c2(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,m=Cs(),w=d2(y.source)?y.source:wd(y.source,{cellSize:m.cellSize}),_=y.options?.protocol??m.protocol,O=As(_),T=Qi(w,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),F=Math.max(0,Math.min(g,T.renderColumns)),$=Math.max(0,Math.min(f,T.renderRows));return F<=0||$<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:F,height:$,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:w,fit:T.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:O,cellRender:tE(O),protocolState:y.protocolState}}function p2(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 $E(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=LE(i),m=y?[...o,y.key]:[...o],w=y!==null,_=u2(e,p,g,d,c,f),O=_?`:${_.protocol}:${_.source.hash}:${_.width}x${_.height}:${_.fit}:${_.threshold??""}:${_.dither?1:0}:${_.preserveAspectRatio?1:0}`:"",T=XN(t,r,n,m,s)+O,F,$=()=>(F===void 0&&(F=e2(i,_)),F),G=r2(e,T,$);if(G)return Bi("draw"),{commands:G.commands,hasCompositor:G.hasCompositor,subtreeSignature:G.subtreeSignature};let W=$(),I=typeof f.id=="string"?f.id:void 0,U=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,Ce=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-Ce,Re=U??n,J=f.overflow==="hidden"||f.overflowX==="hidden",ce=f.overflow==="hidden"||f.overflowY==="hidden",xe={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:ce?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:ce?c:s?.height??Number.MAX_SAFE_INTEGER*2},Oe=J||ce?ZN(s,xe):s;for(let ie of u){let be=$E(ie,pe,Ee,Re,m,Oe);q.push(be),w||=be.hasCompositor,oe.push(be.subtreeSignature)}let ve=t2(e,T,W,y,m,oe),we=s2(ve);if(we){Bi("draw");let ie=FE(e,T,W,we.commands,we.hasCompositor,ve),be=ME(ve,we.hasCompositor);return we.materialized&&we.materializedSignature===be&&(ie.materialized=we.materialized,ie.materializedSignature=be),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(U||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let be=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:I,nodeType:i.type,compositorKeys:m.length>0?[...m]:void 0,x:p,y:g,width:d,height:c,backgroundColor:U,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:be,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??""),be=Math.max(1,ye(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
202
+ `):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/be)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>ie).join(`
203
+ `):ie;Se.push({type:"text",id:I,nodeType:i.type,compositorKeys:m.length>0?[...m]: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})}_&&Se.push({..._,compositorKeys:m.length>0?[...m]:void 0,clip:s});for(let ie of q)l2(Se,ie.commands);ho("draw");let me=FE(e,T,W,Se,w,ve);return i2(ve,me.commands,w),{commands:me.commands,hasCompositor:w,subtreeSignature:ve}}function f2(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 g2(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=f2(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function m2(e){let t=$E(e),r=Od.get(e),n=ME(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=n2(t.commands),s=t.hasCompositor?OE(o,jE(e)):o,i=g2(s),a=Od.get(e);return a&&(a.materialized=i,a.materializedSignature=n),a2(t.subtreeSignature,i,n),i}function BE(e,t,r={}){let n=qN(r),o=UN(t),s=Date.now(),i=Mn(),a=Mn(),l=kx(e,o.width,o.height),d=Mn()-a,c=Mn(),u=m2(l),p=p2(u),g=Mn()-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=mx();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 m,w,_,O=[],T=!1,F=()=>(m||(m=KN(l)),m),$=()=>(w||(w=zN(l)),w),G=()=>{if(!_){let ae=Mn();_=uE(l),f.phases.hitTargetRegistrationMs=Mn()-ae,f.structural.hitTargetCount=_.length}return _},W=()=>(T||(O.push(...JN(F())),T=!0,f.structural.warningCount=O.length),O);n.eagerQueries&&(F(),$()),n.eagerWarnings&&W(),n.eagerHitTargets&&G();let I=QN(F,$,o,O,f),U=Date.now(),q=Mn()-i;return f.frameEndAt=U,f.totalFrameMs=q,{info:{frameId:BN++,committedAt:U,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:I,metrics:f,get hitTargets(){return G()},get warnings(){return W()}}}function NE(e,t){Rg(t).committedFrameSnapshot=e}function GE(e){return Rg(e).committedFrameSnapshot}function WE(e){Rg(e).committedFrameSnapshot=null}function ft(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 Ft(e,t,r){e.metrics.structural[t]=r}function HE(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 qE=Symbol("tuiuiu.progressive-runtime-state");function UE(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function h2(e){if(e.id===0)return UE();let t=Nt(qE,UE);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function wg(){let e=He();return De(qE,()=>h2(e),e)}function KE(){return wg().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function VE(){return wg().capabilityOverrides}function _g(){return wg().progressiveVersion}function y2(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=bd(t),a=Kx(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",m=l.strikethrough||y,w=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,_=e.stdout??process.stdout,O=_.columns||80,T=_.rows||24,F=KE(),$={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:m,hyperlinks:w,terminalName:c,isCI:d,columns:O,rows:T,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:F},G=VE();return G&&Object.assign($,G),$}var zE=Symbol("tuiuiu.capability-runtime-state");function JE(e){let t=e.id===0?"auto":Fs(Nt(zE,()=>JE(Hr())).renderModeSignal),[r,n]=xr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Wr](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function ra(e){let t=He(e);return De(zE,()=>JE(t),t)}function YE(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function b2(e){return y2({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Dd(e){return e.cachedCapabilities=b2(e),e.cachedProgressiveVersion=_g(),e.cachedCapabilities}function QE(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>Ve(e.scope,()=>{Dd(e);let r=YE(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function XE(e){let t=ra(),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,QE(t)}function Vr(){let e=ra(),t=_g();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Dd(e),e.cachedCapabilities??Dd(e)}function ZE(){return Dd(ra())}function ev(){return YE(ra())}function tv(e){let t=ra();return t.resizeHandlers.add(e),QE(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var rv={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},k2={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},R2=512,Ro=new Map,nv=4e6;function zr(){return{char:" ",attrs:{}}}function Eg(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 w2(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&&Eg(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function ov(e,t){return e.char===t.char&&Eg(e.fg,t.fg)&&Eg(e.bg,t.bg)&&w2(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Fd(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Jr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>nv)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${nv} 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(zr());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||ye(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=zr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,ye(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=zr(),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]=zr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&ye(s.char)>1&&(this.cells[r][t-1]=zr(),this.addDamage(t-1,r,1,1))}return}let o=ye(n.char);if(!(o<=1)){this.cells[r][t]=zr(),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]=zr(),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=ye(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=go(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
204
+ `)continue;if(a>=this.width)break;let c=ye(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(ye(o)!==1){let c=ye(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(ye(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]=zr();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,Fd(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];ov(a,l)||r.push({x:i,y:s,cell:Fd(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=_2(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];ov(d,c)||n.push({x:l,y:i.y,cell:Fd(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Fd(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}${iv(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function _2(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||x2(o)?sv(s,i,o):E2(s,i,o)}function x2(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 sv(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 E2(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 na=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Jr(t,r),this.back=new Jr(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 Jr(t,r),this.back=new Jr(t,r)}};function vg(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(rv[e]!==void 0){let n=t?40:30,o=rv[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 v2(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(k2[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=S2(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 S2(e){let t=vg(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 xg(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function iv(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),xg(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",xg(e),xg(t)].join("|")}function av(e,t,r){let n=iv(e,t,r),o=Ro.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...v2(r));let i=vg(e,!1),a=vg(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(Ro.has(n))Ro.delete(n);else if(Ro.size>=R2){let d=Ro.keys().next();d.done||Ro.delete(d.value)}return Ro.set(n,l),l===""?null:l}function T2(e){return e.length===1&&e.charCodeAt(0)<=127?1:ye(e)}function Id(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=av(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(`
205
+ `)}function Sg(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=av(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+(T2(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Md(e,t){let r=t??Vr().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 P2="\x1B[?2026h",A2="\x1B[?2026l";function lv(e){let t=e??Vr();return t.synchronizedOutput?Md(P2,t.multiplexer):""}function dv(e){let t=e??Vr();return t.synchronizedOutput?Md(A2,t.multiplexer):""}var Tg={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 uv="\x1B[?25h",C2="\x1B[?25l",Ld=!1,cv=!1,O2=null,Pg=null;function Ag(e){return"isTTY"in e&&!!e.isTTY}function D2(){let e=Pg??process.stdout;Ag(e)&&Ld&&(e.write(uv),Ld=!1)}function F2(){cv||(cv=!0,O2=pn(D2))}function Ms(e=process.stdout){Ag(e)&&(Pg=e,Ld=!1,e.write(uv))}function Ls(e=process.stdout){Ag(e)&&(Pg=e,F2(),Ld=!0,e.write(C2))}var I2="#ffffff",M2="#000000",L2="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},j2={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},$2={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},b={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},qe={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ue={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},B2={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},fe={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},N2={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},G2={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},ge={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},W2={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},H2={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},nt={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},U2={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},re={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},q2={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},K2={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},V2={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},z2={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},J2={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},Y2={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},pv={white:I2,black:M2,transparent:L2,slate:k,gray:j2,zinc:$2,neutral:b,stone:qe,red:ue,orange:B2,amber:fe,yellow:N2,lime:G2,green:ge,emerald:W2,teal:H2,cyan:nt,sky:U2,blue:re,indigo:q2,violet:K2,purple:V2,fuchsia:z2,pink:J2,rose:Y2};var te={primary:{50:re[50],100:re[100],200:re[200],300:re[300],400:re[400],500:re[500],600:re[600],700:re[700],800:re[800],900:re[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: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]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[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]}},Cg={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:te,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:te.success[500],warning:te.warning[500],critical:te.danger[500],info:nt[500],highlight:te.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:te.primary[400],ring:{color:te.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:te.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:te.primary[500],danger:te.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:te.primary[500],fg:"#ffffff",hoverBg:te.primary[400],activeBg:te.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:te.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:te.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:te.primary[700],selectedBg:te.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:te.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:te.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:te.primary[500],invalidBorder:te.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:te.primary[500]},radio:{bg:k[800],dotColor:te.primary[500],border:k[600],checkedBorder:te.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:te.success[500],fg:"#ffffff"},warning:{bg:te.warning[500],fg:k[900]},danger:{bg:te.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:te.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:te.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:te.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te.success[700]},warning:{bg:te.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:te.warning[600]},danger:{bg:te.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:te.primary[600],fg:"#ffffff"},info:{bg:nt[600],fg:"#ffffff"},success:{bg:te.success[600],fg:"#ffffff"},warning:{bg:te.warning[500],fg:k[900]},danger:{bg:te.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:te.primary[400],subtitleFg:k[400],border:te.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:te.primary[700],headerFg:"#ffffff",contentBg:k[900],border:te.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:te.primary[700],itemSelectedFg:"#ffffff",highlightFg:te.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:te.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:te.success[900],fg:te.success[100],border:te.success[600],iconFg:te.success[400]},error:{bg:te.danger[900],fg:te.danger[100],border:te.danger[600],iconFg:te.danger[400]},warning:{bg:te.warning[900],fg:te.warning[100],border:te.warning[500],iconFg:te.warning[400]},info:{bg:nt[900],fg:nt[100],border:nt[600],iconFg:nt[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:te.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:te.primary[600],titleBarFg:"#ffffff",border:te.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:te.success[600],titleBarFg:"#ffffff",border:te.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:te.warning[500],titleBarFg:k[900],border:te.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:te.danger[600],titleBarFg:"#ffffff",border:te.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:re[50],100:re[100],200:re[200],300:re[300],400:re[400],500:re[500],600:re[600],700:re[700],800:re[800],900:re[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: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]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[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]}},fv={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:ge[600],warning:fe[600],critical:ue[600],info:nt[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:nt[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:nt[50],fg:nt[900],border:nt[200],iconFg:nt[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 M={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},wo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:qe[50],100:qe[100],200:qe[200],300:qe[300],400:qe[400],500:qe[500],600:qe[600],700:qe[700],800:qe[800],900:qe[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"}},gv={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:wo,background:{lowest:M.backgroundDark,base:M.background,subtle:M.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:M.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:M.foreground,secondary:"#E8E8E2",muted:M.comment,disabled:"#5B5A4F",inverse:{base:M.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:M.green,warning:M.yellow,critical:M.pink,info:M.cyan,highlight:M.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:M.green,ring:{color:M.green,width:2}},disabled:{opacity:.4,bg:M.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:M.foreground}},borders:{default:"#49483E",subtle:M.backgroundLight,strong:M.comment,accent:M.green,danger:M.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:M.green,fg:M.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:M.foreground,hoverBg:"#5B5A4F",activeBg:M.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:M.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:M.green},ghost:{bg:"transparent",fg:M.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:M.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:M.backgroundLight,border:"#49483E",item:{fg:M.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:M.backgroundLight,border:"#49483E",tab:{fg:M.comment,activeFg:M.foreground,activeBg:M.background,hoverFg:"#E8E8E2",indicator:M.green}},dropdown:{bg:M.backgroundLight,border:"#49483E",item:{fg:M.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:M.backgroundLight,fg:M.foreground,placeholder:M.comment,border:"#49483E",focusBorder:M.green,invalidBorder:M.pink},checkbox:{bg:M.backgroundLight,border:"#5B5A4F",checkColor:M.background,checkedBg:M.green},radio:{bg:M.backgroundLight,dotColor:M.green,border:"#5B5A4F",checkedBorder:M.green},tooltip:{bg:"#49483E",fg:M.foreground},modal:{bg:M.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:M.foreground},success:{bg:M.green,fg:M.background},warning:{bg:M.yellow,fg:M.background},danger:{bg:M.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:M.backgroundLight,selectedBg:"#49483E",fg:M.foreground}},header:{default:{bg:M.backgroundLight,fg:M.foreground,titleFg:M.foreground,subtitleFg:M.comment,border:"#49483E"},primary:{bg:M.green,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:M.foreground,titleFg:M.foreground,subtitleFg:M.comment,border:"#5B5A4F"},success:{bg:M.green,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:M.yellow,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:M.orange},danger:{bg:M.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:M.backgroundLight,fg:M.comment},primary:{bg:M.green,fg:M.background},info:{bg:M.cyan,fg:M.background},success:{bg:M.green,fg:M.background},warning:{bg:M.yellow,fg:M.background},danger:{bg:M.pink,fg:"#ffffff"}},page:{default:{bg:M.background,titleFg:M.foreground,subtitleFg:M.comment,border:"#49483E"},primary:{bg:M.background,titleFg:M.green,subtitleFg:M.comment,border:M.green},secondary:{bg:M.background,titleFg:"#E8E8E2",subtitleFg:M.comment,border:"#49483E"}},appshell:{bg:M.backgroundDark,dividerFg:"#49483E",sidebarBg:M.background,asideBg:M.background},collapsible:{default:{headerBg:M.backgroundLight,headerFg:M.foreground,contentBg:M.background,border:"#49483E",iconFg:M.comment},primary:{headerBg:"#49483E",headerFg:M.green,contentBg:M.background,border:M.green,iconFg:M.green},secondary:{headerBg:"#49483E",headerFg:M.foreground,contentBg:M.backgroundLight,border:"#5B5A4F",iconFg:M.comment}},commandPalette:{bg:M.backgroundLight,border:"#49483E",inputBg:M.background,inputFg:M.foreground,inputPlaceholder:M.comment,itemFg:M.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:M.foreground,highlightFg:M.green,categoryFg:M.comment},splitPanel:{bg:M.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:M.green,border:"#49483E",titleFg:M.comment},toast:{success:{bg:wo.success[900],fg:wo.success[100],border:M.green,iconFg:M.green},error:{bg:wo.danger[900],fg:wo.danger[100],border:M.pink,iconFg:M.pink},warning:{bg:wo.warning[900],fg:wo.warning[100],border:M.yellow,iconFg:M.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:M.cyan,iconFg:M.cyan}},window:{default:{bg:M.background,fg:M.foreground,titleBarBg:M.backgroundLight,titleBarFg:M.foreground,border:"#49483E",buttonFg:M.comment,closeFg:M.pink},primary:{bg:M.background,fg:M.foreground,titleBarBg:M.green,titleBarFg:M.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},success:{bg:M.background,fg:M.foreground,titleBarBg:M.green,titleBarFg:M.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},warning:{bg:M.background,fg:M.foreground,titleBarBg:M.yellow,titleBarFg:M.background,border:M.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},danger:{bg:M.background,fg:M.foreground,titleBarBg:M.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var C={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},_o={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"}},mv={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:_o,background:{lowest:"#21222C",base:C.background,subtle:C.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:C.comment,popover:C.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:C.foreground,secondary:"#E8E8E2",muted:C.comment,disabled:"#565869",inverse:{base:C.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:C.green,warning:C.yellow,critical:C.red,info:C.cyan,highlight:C.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:C.purple,ring:{color:C.purple,width:2}},disabled:{opacity:.4,bg:C.currentLine,fg:"#565869"},selected:{bg:C.currentLine,fg:C.foreground}},borders:{default:C.comment,subtle:C.currentLine,strong:C.purple,accent:C.purple,danger:C.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:C.purple,fg:C.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:C.currentLine,fg:C.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:C.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:C.purple},ghost:{bg:"transparent",fg:C.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:C.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:C.comment},menu:{bg:C.currentLine,border:C.comment,item:{fg:C.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:C.currentLine,border:C.comment,tab:{fg:C.comment,activeFg:C.foreground,activeBg:C.background,hoverFg:"#E8E8E2",indicator:C.purple}},dropdown:{bg:C.currentLine,border:C.comment,item:{fg:C.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:C.currentLine,fg:C.foreground,placeholder:C.comment,border:C.comment,focusBorder:C.purple,invalidBorder:C.red},checkbox:{bg:C.currentLine,border:C.comment,checkColor:C.foreground,checkedBg:C.purple},radio:{bg:C.currentLine,dotColor:C.purple,border:C.comment,checkedBorder:C.purple},tooltip:{bg:"#4D4F5F",fg:C.foreground},modal:{bg:C.currentLine,border:C.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:C.comment,fg:C.foreground},success:{bg:C.green,fg:C.background},warning:{bg:C.yellow,fg:C.background},danger:{bg:C.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:C.currentLine,selectedBg:"#4D4F5F",fg:C.foreground}},header:{default:{bg:C.currentLine,fg:C.foreground,titleFg:C.foreground,subtitleFg:C.comment,border:C.comment},primary:{bg:C.purple,fg:C.foreground,titleFg:C.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:C.foreground,titleFg:C.foreground,subtitleFg:C.comment,border:"#565869"},success:{bg:C.green,fg:C.background,titleFg:C.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:C.yellow,fg:C.background,titleFg:C.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:C.orange},danger:{bg:C.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:C.currentLine,fg:C.comment},primary:{bg:C.purple,fg:C.foreground},info:{bg:C.cyan,fg:C.background},success:{bg:C.green,fg:C.background},warning:{bg:C.yellow,fg:C.background},danger:{bg:C.red,fg:"#ffffff"}},page:{default:{bg:C.background,titleFg:C.foreground,subtitleFg:C.comment,border:C.comment},primary:{bg:C.background,titleFg:C.purple,subtitleFg:C.comment,border:C.purple},secondary:{bg:C.background,titleFg:"#E8E8E2",subtitleFg:C.comment,border:C.currentLine}},appshell:{bg:"#21222C",dividerFg:C.comment,sidebarBg:C.background,asideBg:C.background},collapsible:{default:{headerBg:C.currentLine,headerFg:C.foreground,contentBg:C.background,border:C.comment,iconFg:C.comment},primary:{headerBg:"#4D4F5F",headerFg:C.purple,contentBg:C.background,border:C.purple,iconFg:C.purple},secondary:{headerBg:"#4D4F5F",headerFg:C.foreground,contentBg:C.currentLine,border:"#565869",iconFg:C.comment}},commandPalette:{bg:C.currentLine,border:C.comment,inputBg:C.background,inputFg:C.foreground,inputPlaceholder:C.comment,itemFg:C.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:C.foreground,highlightFg:C.purple,categoryFg:C.comment},splitPanel:{bg:C.background,dividerBg:C.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:C.purple,border:C.comment,titleFg:C.comment},toast:{success:{bg:_o.success[900],fg:_o.success[100],border:C.green,iconFg:C.green},error:{bg:_o.danger[900],fg:_o.danger[100],border:C.red,iconFg:C.red},warning:{bg:_o.warning[900],fg:_o.warning[100],border:C.yellow,iconFg:C.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:C.cyan,iconFg:C.cyan}},window:{default:{bg:C.background,fg:C.foreground,titleBarBg:C.currentLine,titleBarFg:C.foreground,border:C.comment,buttonFg:C.comment,closeFg:C.red},primary:{bg:C.background,fg:C.foreground,titleBarBg:C.purple,titleBarFg:C.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:C.foreground},success:{bg:C.background,fg:C.foreground,titleBarBg:C.green,titleBarFg:C.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:C.background},warning:{bg:C.background,fg:C.foreground,titleBarBg:C.yellow,titleBarFg:C.background,border:C.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:C.background},danger:{bg:C.background,fg:C.foreground,titleBarBg:C.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={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"},xo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:v.nord8,400:v.nord8,500:v.nord8,600:v.nord9,700:v.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:v.nord14,500:v.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:v.nord13,400:v.nord13,500:v.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:v.nord11,500:v.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:v.nord6,100:v.nord5,200:v.nord4,300:"#A3ADB8",400:"#7A8694",500:v.nord3,600:v.nord2,700:v.nord1,800:v.nord0,900:"#242933"}},hv={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:xo,background:{lowest:"#242933",base:v.nord0,subtle:v.nord1,surface:v.nord2,raised:v.nord3,elevated:"#5E6779",popover:v.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:v.nord6,secondary:v.nord5,muted:v.nord4,disabled:v.nord3,inverse:{base:v.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:v.nord14,warning:v.nord13,critical:v.nord11,info:v.nord9,highlight:v.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.nord8,ring:{color:v.nord8,width:2}},disabled:{opacity:.4,bg:v.nord1,fg:v.nord3},selected:{bg:v.nord1,fg:v.nord6}},borders:{default:v.nord3,subtle:v.nord1,strong:v.nord4,accent:v.nord8,danger:v.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:v.nord8,fg:v.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:v.nord2,fg:v.nord6,hoverBg:v.nord3,activeBg:v.nord1,border:"transparent"},outline:{bg:"transparent",fg:v.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:v.nord8},ghost:{bg:"transparent",fg:v.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.nord1,headerBg:v.nord2,footerBg:v.nord2,border:v.nord3},menu:{bg:v.nord1,border:v.nord3,item:{fg:v.nord6,hoverBg:v.nord2,activeBg:v.nord3,selectedBg:v.nord2,disabledFg:v.nord3}},tabs:{bg:v.nord1,border:v.nord3,tab:{fg:v.nord4,activeFg:v.nord6,activeBg:v.nord0,hoverFg:v.nord5,indicator:v.nord8}},dropdown:{bg:v.nord1,border:v.nord3,item:{fg:v.nord6,hoverBg:v.nord2,selectedBg:v.nord3}},input:{bg:v.nord1,fg:v.nord6,placeholder:v.nord4,border:v.nord3,focusBorder:v.nord8,invalidBorder:v.nord11},checkbox:{bg:v.nord1,border:v.nord3,checkColor:v.nord0,checkedBg:v.nord8},radio:{bg:v.nord1,dotColor:v.nord8,border:v.nord3,checkedBorder:v.nord8},tooltip:{bg:v.nord2,fg:v.nord6},modal:{bg:v.nord1,border:v.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:v.nord3,fg:v.nord6},success:{bg:v.nord14,fg:v.nord0},warning:{bg:v.nord13,fg:v.nord0},danger:{bg:v.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.nord1,selectedBg:v.nord2,fg:v.nord6}},header:{default:{bg:v.nord1,fg:v.nord6,titleFg:v.nord6,subtitleFg:v.nord4,border:v.nord3},primary:{bg:v.nord8,fg:v.nord0,titleFg:v.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:v.nord9},secondary:{bg:v.nord2,fg:v.nord6,titleFg:v.nord6,subtitleFg:v.nord4,border:v.nord3},success:{bg:v.nord14,fg:v.nord0,titleFg:v.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:v.nord13,fg:v.nord0,titleFg:v.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:v.nord12},danger:{bg:v.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:v.nord1,fg:v.nord4},primary:{bg:v.nord8,fg:v.nord0},info:{bg:v.nord9,fg:"#ffffff"},success:{bg:v.nord14,fg:v.nord0},warning:{bg:v.nord13,fg:v.nord0},danger:{bg:v.nord11,fg:"#ffffff"}},page:{default:{bg:v.nord0,titleFg:v.nord6,subtitleFg:v.nord4,border:v.nord3},primary:{bg:v.nord0,titleFg:v.nord8,subtitleFg:v.nord4,border:v.nord8},secondary:{bg:v.nord0,titleFg:v.nord5,subtitleFg:v.nord4,border:v.nord1}},appshell:{bg:"#242933",dividerFg:v.nord3,sidebarBg:v.nord0,asideBg:v.nord0},collapsible:{default:{headerBg:v.nord1,headerFg:v.nord6,contentBg:v.nord0,border:v.nord3,iconFg:v.nord4},primary:{headerBg:v.nord2,headerFg:v.nord8,contentBg:v.nord0,border:v.nord8,iconFg:v.nord8},secondary:{headerBg:v.nord2,headerFg:v.nord6,contentBg:v.nord1,border:v.nord3,iconFg:v.nord4}},commandPalette:{bg:v.nord1,border:v.nord3,inputBg:v.nord0,inputFg:v.nord6,inputPlaceholder:v.nord4,itemFg:v.nord6,itemHoverBg:v.nord2,itemSelectedBg:v.nord3,itemSelectedFg:v.nord6,highlightFg:v.nord8,categoryFg:v.nord4},splitPanel:{bg:v.nord0,dividerBg:v.nord3,dividerHoverBg:v.nord2,dividerActiveBg:v.nord8,border:v.nord3,titleFg:v.nord4},toast:{success:{bg:xo.success[900],fg:xo.success[100],border:v.nord14,iconFg:v.nord14},error:{bg:xo.danger[900],fg:xo.danger[100],border:v.nord11,iconFg:v.nord11},warning:{bg:xo.warning[900],fg:xo.warning[100],border:v.nord13,iconFg:v.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.nord9,iconFg:v.nord9}},window:{default:{bg:v.nord0,fg:v.nord6,titleBarBg:v.nord1,titleBarFg:v.nord6,border:v.nord3,buttonFg:v.nord4,closeFg:v.nord11},primary:{bg:v.nord0,fg:v.nord6,titleBarBg:v.nord8,titleBarFg:v.nord0,border:v.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:v.nord0},success:{bg:v.nord0,fg:v.nord6,titleBarBg:v.nord14,titleBarFg:v.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:v.nord0},warning:{bg:v.nord0,fg:v.nord6,titleBarBg:v.nord13,titleBarFg:v.nord0,border:v.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:v.nord0},danger:{bg:v.nord0,fg:v.nord6,titleBarBg:v.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={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"},Eo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:P.blue,500:P.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:P.green,500:P.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:P.yellow,500:P.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:P.red,500:P.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:P.base3,100:P.base2,200:P.base1,300:P.base0,400:P.base00,500:P.base01,600:"#4A5A60",700:P.base02,800:P.base03,900:"#001E26"}},yv={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:Eo,background:{lowest:"#001E26",base:P.base03,subtle:P.base02,surface:"#094652",raised:"#0B5A66",elevated:P.base01,popover:P.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:P.base0,secondary:P.base1,muted:P.base00,disabled:P.base01,inverse:{base:P.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:P.blue,ring:{color:P.blue,width:2}},disabled:{opacity:.4,bg:P.base02,fg:P.base01},selected:{bg:P.base02,fg:P.base1}},borders:{default:P.base01,subtle:P.base02,strong:P.base0,accent:P.blue,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:P.blue,fg:P.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:P.base02,fg:P.base1,hoverBg:"#094652",activeBg:P.base03,border:"transparent"},outline:{bg:"transparent",fg:P.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:P.blue},ghost:{bg:"transparent",fg:P.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:P.base02,headerBg:"#094652",footerBg:"#094652",border:P.base01},menu:{bg:P.base02,border:P.base01,item:{fg:P.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:P.base01}},tabs:{bg:P.base02,border:P.base01,tab:{fg:P.base00,activeFg:P.base1,activeBg:P.base03,hoverFg:P.base0,indicator:P.blue}},dropdown:{bg:P.base02,border:P.base01,item:{fg:P.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:P.base02,fg:P.base0,placeholder:P.base00,border:P.base01,focusBorder:P.blue,invalidBorder:P.red},checkbox:{bg:P.base02,border:P.base01,checkColor:P.base3,checkedBg:P.blue},radio:{bg:P.base02,dotColor:P.blue,border:P.base01,checkedBorder:P.blue},tooltip:{bg:"#094652",fg:P.base1},modal:{bg:P.base02,border:P.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:P.base01,fg:P.base1},success:{bg:P.green,fg:P.base3},warning:{bg:P.yellow,fg:P.base03},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.base02,selectedBg:"#094652",fg:P.base0}},header:{default:{bg:P.base02,fg:P.base0,titleFg:P.base1,subtitleFg:P.base00,border:P.base01},primary:{bg:P.blue,fg:P.base3,titleFg:P.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:P.base0,titleFg:P.base1,subtitleFg:P.base00,border:"#0B5A66"},success:{bg:P.green,fg:P.base3,titleFg:P.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:P.yellow,fg:P.base03,titleFg:P.base03,subtitleFg:"rgba(0, 43, 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.base02,fg:P.base00},primary:{bg:P.blue,fg:P.base3},info:{bg:P.cyan,fg:P.base03},success:{bg:P.green,fg:P.base3},warning:{bg:P.yellow,fg:P.base03},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.base03,titleFg:P.base1,subtitleFg:P.base00,border:P.base01},primary:{bg:P.base03,titleFg:P.blue,subtitleFg:P.base00,border:P.blue},secondary:{bg:P.base03,titleFg:P.base0,subtitleFg:P.base00,border:P.base02}},appshell:{bg:"#001E26",dividerFg:P.base01,sidebarBg:P.base03,asideBg:P.base03},collapsible:{default:{headerBg:P.base02,headerFg:P.base1,contentBg:P.base03,border:P.base01,iconFg:P.base00},primary:{headerBg:"#094652",headerFg:P.blue,contentBg:P.base03,border:P.blue,iconFg:P.blue},secondary:{headerBg:"#094652",headerFg:P.base1,contentBg:P.base02,border:"#0B5A66",iconFg:P.base00}},commandPalette:{bg:P.base02,border:P.base01,inputBg:P.base03,inputFg:P.base0,inputPlaceholder:P.base00,itemFg:P.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:P.base1,highlightFg:P.blue,categoryFg:P.base00},splitPanel:{bg:P.base03,dividerBg:P.base01,dividerHoverBg:"#094652",dividerActiveBg:P.blue,border:P.base01,titleFg:P.base00},toast:{success:{bg:Eo.success[900],fg:Eo.success[100],border:P.green,iconFg:P.green},error:{bg:Eo.danger[900],fg:Eo.danger[100],border:P.red,iconFg:P.red},warning:{bg:Eo.warning[900],fg:Eo.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.base03,fg:P.base0,titleBarBg:P.base02,titleBarFg:P.base1,border:P.base01,buttonFg:P.base00,closeFg:P.red},primary:{bg:P.base03,fg:P.base0,titleBarBg:P.blue,titleBarFg:P.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:P.base3},success:{bg:P.base03,fg:P.base0,titleBarBg:P.green,titleBarFg:P.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:P.base3},warning:{bg:P.base03,fg:P.base0,titleBarBg:P.yellow,titleBarFg:P.base03,border:P.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:P.base03},danger:{bg:P.base03,fg:P.base0,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={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"},vo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:x.green,500:x.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:qe[50],100:qe[100],200:qe[200],300:qe[300],400:qe[400],500:qe[500],600:qe[600],700:qe[700],800:qe[800],900:qe[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:x.green,500:x.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},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:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:x.red,500:x.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:x.fg0,100:x.fg1,200:x.fg2,300:x.fg3,400:x.fg4,500:x.gray,600:x.bg4,700:x.bg3,800:x.bg2,900:x.bg1}},bv={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:vo,background:{lowest:x.bg0_h,base:x.bg0,subtle:x.bg1,surface:x.bg2,raised:x.bg3,elevated:x.bg4,popover:x.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.fg1,secondary:x.fg2,muted:x.gray,disabled:x.bg3,inverse:{base:x.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.blue,highlight:x.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.green,ring:{color:x.green,width:2}},disabled:{opacity:.4,bg:x.bg1,fg:x.bg3},selected:{bg:x.bg2,fg:x.fg1}},borders:{default:x.bg3,subtle:x.bg2,strong:x.gray,accent:x.green,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.green,fg:x.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:x.bg2,fg:x.fg1,hoverBg:x.bg3,activeBg:x.bg1,border:"transparent"},outline:{bg:"transparent",fg:x.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:x.green},ghost:{bg:"transparent",fg:x.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.bg1,headerBg:x.bg2,footerBg:x.bg2,border:x.bg3},menu:{bg:x.bg1,border:x.bg3,item:{fg:x.fg1,hoverBg:x.bg2,activeBg:x.bg3,selectedBg:x.bg2,disabledFg:x.bg3}},tabs:{bg:x.bg1,border:x.bg3,tab:{fg:x.gray,activeFg:x.fg1,activeBg:x.bg0,hoverFg:x.fg2,indicator:x.green}},dropdown:{bg:x.bg1,border:x.bg3,item:{fg:x.fg1,hoverBg:x.bg2,selectedBg:x.bg3}},input:{bg:x.bg1,fg:x.fg1,placeholder:x.gray,border:x.bg3,focusBorder:x.green,invalidBorder:x.red},checkbox:{bg:x.bg1,border:x.bg3,checkColor:x.bg0,checkedBg:x.green},radio:{bg:x.bg1,dotColor:x.green,border:x.bg3,checkedBorder:x.green},tooltip:{bg:x.bg2,fg:x.fg1},modal:{bg:x.bg1,border:x.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.bg3,fg:x.fg1},success:{bg:x.green,fg:x.bg0},warning:{bg:x.yellow,fg:x.bg0},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.bg1,selectedBg:x.bg2,fg:x.fg1}},header:{default:{bg:x.bg1,fg:x.fg1,titleFg:x.fg1,subtitleFg:x.gray,border:x.bg3},primary:{bg:x.green,fg:x.bg0,titleFg:x.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:x.bg2,fg:x.fg1,titleFg:x.fg1,subtitleFg:x.gray,border:x.bg3},success:{bg:x.green,fg:x.bg0,titleFg:x.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:x.yellow,fg:x.bg0,titleFg:x.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:x.orange},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:x.bg1,fg:x.gray},primary:{bg:x.green,fg:x.bg0},info:{bg:x.blue,fg:x.bg0},success:{bg:x.green,fg:x.bg0},warning:{bg:x.yellow,fg:x.bg0},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.bg0,titleFg:x.fg1,subtitleFg:x.gray,border:x.bg3},primary:{bg:x.bg0,titleFg:x.green,subtitleFg:x.gray,border:x.green},secondary:{bg:x.bg0,titleFg:x.fg2,subtitleFg:x.gray,border:x.bg2}},appshell:{bg:x.bg0_h,dividerFg:x.bg3,sidebarBg:x.bg0,asideBg:x.bg0},collapsible:{default:{headerBg:x.bg1,headerFg:x.fg1,contentBg:x.bg0,border:x.bg3,iconFg:x.gray},primary:{headerBg:x.bg2,headerFg:x.green,contentBg:x.bg0,border:x.green,iconFg:x.green},secondary:{headerBg:x.bg2,headerFg:x.fg1,contentBg:x.bg1,border:x.bg3,iconFg:x.gray}},commandPalette:{bg:x.bg1,border:x.bg3,inputBg:x.bg0,inputFg:x.fg1,inputPlaceholder:x.gray,itemFg:x.fg1,itemHoverBg:x.bg2,itemSelectedBg:x.bg3,itemSelectedFg:x.fg1,highlightFg:x.green,categoryFg:x.gray},splitPanel:{bg:x.bg0,dividerBg:x.bg3,dividerHoverBg:x.bg2,dividerActiveBg:x.green,border:x.bg3,titleFg:x.gray},toast:{success:{bg:vo.success[900],fg:vo.success[100],border:x.green,iconFg:x.green},error:{bg:vo.danger[900],fg:vo.danger[100],border:x.red,iconFg:x.red},warning:{bg:vo.warning[900],fg:vo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.blue,iconFg:x.blue}},window:{default:{bg:x.bg0,fg:x.fg1,titleBarBg:x.bg1,titleBarFg:x.fg1,border:x.bg3,buttonFg:x.gray,closeFg:x.red},primary:{bg:x.bg0,fg:x.fg1,titleBarBg:x.green,titleBarFg:x.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:x.bg0},success:{bg:x.bg0,fg:x.fg1,titleBarBg:x.green,titleBarFg:x.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:x.bg0},warning:{bg:x.bg0,fg:x.fg1,titleBarBg:x.yellow,titleBarFg:x.bg0,border:x.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:x.bg0},danger:{bg:x.bg0,fg:x.fg1,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={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"},So={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:S.blue,500:S.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: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:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:S.red,500:S.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"}},kv={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:So,background:{lowest:S.bgDark,base:S.bg,subtle:S.bgHighlight,surface:S.bgPopup,raised:S.dark3,elevated:S.comment,popover:S.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:S.fg,secondary:S.fgDark,muted:S.comment,disabled:S.dark3,inverse:{base:S.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 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.bgHighlight,fg:S.dark3},selected:{bg:S.bgHighlight,fg:S.fg}},borders:{default:S.dark3,subtle:S.bgHighlight,strong:S.comment,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:S.bgHighlight,fg:S.fg,hoverBg:S.bgPopup,activeBg:S.dark3,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.bgHighlight,headerBg:S.bgPopup,footerBg:S.bgPopup,border:S.dark3},menu:{bg:S.bgHighlight,border:S.dark3,item:{fg:S.fg,hoverBg:S.bgPopup,activeBg:S.dark3,selectedBg:S.bgPopup,disabledFg:S.dark3}},tabs:{bg:S.bgHighlight,border:S.dark3,tab:{fg:S.comment,activeFg:S.fg,activeBg:S.bg,hoverFg:S.fgDark,indicator:S.blue}},dropdown:{bg:S.bgHighlight,border:S.dark3,item:{fg:S.fg,hoverBg:S.bgPopup,selectedBg:S.dark3}},input:{bg:S.bgHighlight,fg:S.fg,placeholder:S.comment,border:S.dark3,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.bgHighlight,border:S.dark3,checkColor:S.bg,checkedBg:S.blue},radio:{bg:S.bgHighlight,dotColor:S.blue,border:S.dark3,checkedBorder:S.blue},tooltip:{bg:S.bgPopup,fg:S.fg},modal:{bg:S.bgHighlight,border:S.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:S.dark3,fg:S.fg},success:{bg:S.green,fg:S.bg},warning:{bg:S.yellow,fg:S.bg},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.bgHighlight,selectedBg:S.bgPopup,fg:S.fg}},header:{default:{bg:S.bgHighlight,fg:S.fg,titleFg:S.fg,subtitleFg:S.comment,border:S.dark3},primary:{bg:S.blue,fg:S.bg,titleFg:S.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:S.bgPopup,fg:S.fg,titleFg:S.fg,subtitleFg:S.comment,border:S.dark3},success:{bg:S.green,fg:S.bg,titleFg:S.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.bg,titleFg:S.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:S.bgHighlight,fg:S.comment},primary:{bg:S.blue,fg:S.bg},info:{bg:S.cyan,fg:S.bg},success:{bg:S.green,fg:S.bg},warning:{bg:S.yellow,fg:S.bg},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.bg,titleFg:S.fg,subtitleFg:S.comment,border:S.dark3},primary:{bg:S.bg,titleFg:S.blue,subtitleFg:S.comment,border:S.blue},secondary:{bg:S.bg,titleFg:S.fgDark,subtitleFg:S.comment,border:S.bgHighlight}},appshell:{bg:S.bgDark,dividerFg:S.dark3,sidebarBg:S.bg,asideBg:S.bg},collapsible:{default:{headerBg:S.bgHighlight,headerFg:S.fg,contentBg:S.bg,border:S.dark3,iconFg:S.comment},primary:{headerBg:S.bgPopup,headerFg:S.blue,contentBg:S.bg,border:S.blue,iconFg:S.blue},secondary:{headerBg:S.bgPopup,headerFg:S.fg,contentBg:S.bgHighlight,border:S.dark3,iconFg:S.comment}},commandPalette:{bg:S.bgHighlight,border:S.dark3,inputBg:S.bg,inputFg:S.fg,inputPlaceholder:S.comment,itemFg:S.fg,itemHoverBg:S.bgPopup,itemSelectedBg:S.dark3,itemSelectedFg:S.fg,highlightFg:S.blue,categoryFg:S.comment},splitPanel:{bg:S.bg,dividerBg:S.dark3,dividerHoverBg:S.bgPopup,dividerActiveBg:S.blue,border:S.dark3,titleFg:S.comment},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.bg,fg:S.fg,titleBarBg:S.bgHighlight,titleBarFg:S.fg,border:S.dark3,buttonFg:S.comment,closeFg:S.red},primary:{bg:S.bg,fg:S.fg,titleBarBg:S.blue,titleBarFg:S.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:S.bg},success:{bg:S.bg,fg:S.fg,titleBarBg:S.green,titleBarFg:S.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:S.bg},warning:{bg:S.bg,fg:S.fg,titleBarBg:S.yellow,titleBarFg:S.bg,border:S.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:S.bg},danger:{bg:S.bg,fg:S.fg,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={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"},To={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:E.mauve,500:E.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:E.green,500:E.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:E.yellow,500:E.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:E.red,500:E.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:E.text,100:E.subtext1,200:E.subtext0,300:E.overlay2,400:E.overlay1,500:E.overlay0,600:E.surface2,700:E.surface1,800:E.surface0,900:E.base}},Rv={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:To,background:{lowest:E.crust,base:E.base,subtle:E.surface0,surface:E.surface1,raised:E.surface2,elevated:E.overlay0,popover:E.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:E.text,secondary:E.subtext1,muted:E.overlay0,disabled:E.surface2,inverse:{base:E.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:E.green,warning:E.yellow,critical:E.red,info:E.sky,highlight:E.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.mauve,ring:{color:E.mauve,width:2}},disabled:{opacity:.4,bg:E.surface0,fg:E.surface2},selected:{bg:E.surface0,fg:E.text}},borders:{default:E.overlay0,subtle:E.surface1,strong:E.subtext1,accent:E.mauve,danger:E.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:E.mauve,fg:E.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:E.surface0,fg:E.text,hoverBg:E.surface1,activeBg:E.surface2,border:"transparent"},outline:{bg:"transparent",fg:E.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:E.mauve},ghost:{bg:"transparent",fg:E.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.surface0,headerBg:E.surface1,footerBg:E.surface1,border:E.overlay0},menu:{bg:E.surface0,border:E.overlay0,item:{fg:E.text,hoverBg:E.surface1,activeBg:E.surface2,selectedBg:E.surface1,disabledFg:E.surface2}},tabs:{bg:E.surface0,border:E.overlay0,tab:{fg:E.overlay0,activeFg:E.text,activeBg:E.base,hoverFg:E.subtext1,indicator:E.mauve}},dropdown:{bg:E.surface0,border:E.overlay0,item:{fg:E.text,hoverBg:E.surface1,selectedBg:E.surface2}},input:{bg:E.surface0,fg:E.text,placeholder:E.overlay0,border:E.overlay0,focusBorder:E.mauve,invalidBorder:E.red},checkbox:{bg:E.surface0,border:E.overlay0,checkColor:E.base,checkedBg:E.mauve},radio:{bg:E.surface0,dotColor:E.mauve,border:E.overlay0,checkedBorder:E.mauve},tooltip:{bg:E.surface1,fg:E.text},modal:{bg:E.surface0,border:E.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:E.surface2,fg:E.text},success:{bg:E.green,fg:E.base},warning:{bg:E.yellow,fg:E.base},danger:{bg:E.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.surface0,selectedBg:E.surface1,fg:E.text}},header:{default:{bg:E.surface0,fg:E.text,titleFg:E.text,subtitleFg:E.overlay0,border:E.overlay0},primary:{bg:E.mauve,fg:E.base,titleFg:E.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:E.surface1,fg:E.text,titleFg:E.text,subtitleFg:E.overlay0,border:E.surface2},success:{bg:E.green,fg:E.base,titleFg:E.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:E.yellow,fg:E.base,titleFg:E.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:E.peach},danger:{bg:E.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:E.surface0,fg:E.overlay0},primary:{bg:E.mauve,fg:E.base},info:{bg:E.sky,fg:E.base},success:{bg:E.green,fg:E.base},warning:{bg:E.yellow,fg:E.base},danger:{bg:E.red,fg:"#ffffff"}},page:{default:{bg:E.base,titleFg:E.text,subtitleFg:E.overlay0,border:E.overlay0},primary:{bg:E.base,titleFg:E.mauve,subtitleFg:E.overlay0,border:E.mauve},secondary:{bg:E.base,titleFg:E.subtext1,subtitleFg:E.overlay0,border:E.surface0}},appshell:{bg:E.crust,dividerFg:E.overlay0,sidebarBg:E.base,asideBg:E.base},collapsible:{default:{headerBg:E.surface0,headerFg:E.text,contentBg:E.base,border:E.overlay0,iconFg:E.overlay0},primary:{headerBg:E.surface1,headerFg:E.mauve,contentBg:E.base,border:E.mauve,iconFg:E.mauve},secondary:{headerBg:E.surface1,headerFg:E.text,contentBg:E.surface0,border:E.surface2,iconFg:E.overlay0}},commandPalette:{bg:E.surface0,border:E.overlay0,inputBg:E.base,inputFg:E.text,inputPlaceholder:E.overlay0,itemFg:E.text,itemHoverBg:E.surface1,itemSelectedBg:E.surface2,itemSelectedFg:E.text,highlightFg:E.mauve,categoryFg:E.overlay0},splitPanel:{bg:E.base,dividerBg:E.overlay0,dividerHoverBg:E.surface1,dividerActiveBg:E.mauve,border:E.overlay0,titleFg:E.overlay0},toast:{success:{bg:To.success[900],fg:To.success[100],border:E.green,iconFg:E.green},error:{bg:To.danger[900],fg:To.danger[100],border:E.red,iconFg:E.red},warning:{bg:To.warning[900],fg:To.warning[100],border:E.yellow,iconFg:E.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.sky,iconFg:E.sky}},window:{default:{bg:E.base,fg:E.text,titleBarBg:E.surface0,titleBarFg:E.text,border:E.overlay0,buttonFg:E.overlay0,closeFg:E.red},primary:{bg:E.base,fg:E.text,titleBarBg:E.mauve,titleBarFg:E.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:E.base},success:{bg:E.base,fg:E.text,titleBarBg:E.green,titleBarFg:E.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:E.base},warning:{bg:E.base,fg:E.text,titleBarBg:E.yellow,titleBarFg:E.base,border:E.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:E.base},danger:{bg:E.base,fg:E.text,titleBarBg:E.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Po={primary:{50:re[50],100:re[100],200:re[200],300:re[300],400:re[400],500:re[500],600:re[600],700:re[700],800:re[800],900:re[900]},secondary:{50:b[50],100:b[100],200:b[200],300:b[300],400:b[400],500:b[500],600:b[600],700:b[700],800:b[800],900:b[900]},success:{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]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:b[50],100:b[100],200:b[200],300:b[300],400:b[400],500:b[500],600:b[600],700:b[700],800:b[800],900:b[900]}},wv={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:b[950],surface:b[900],raised:b[800],elevated:b[700],popover:b[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:b[100],muted:b[300],disabled:b[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:ge[400],warning:fe[400],critical:ue[400],info:nt[400],highlight:re[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:re[400],ring:{color:re[400],width:3}},disabled:{opacity:.5,bg:b[900],fg:b[500]},selected:{bg:re[800],fg:"#ffffff"}},borders:{default:b[500],subtle:b[700],strong:b[300],accent:re[400],danger:ue[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:re[500],fg:"#ffffff",hoverBg:re[400],activeBg:re[600],border:re[300]},secondary:{bg:b[800],fg:"#ffffff",hoverBg:b[700],activeBg:b[900],border:b[500]},outline:{bg:"transparent",fg:re[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:re[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:b[950],headerBg:b[900],footerBg:b[900],border:b[500]},menu:{bg:b[950],border:b[500],item:{fg:"#ffffff",hoverBg:b[800],activeBg:re[800],selectedBg:re[900],disabledFg:b[500]}},tabs:{bg:b[950],border:b[500],tab:{fg:b[300],activeFg:"#ffffff",activeBg:b[800],hoverFg:b[100],indicator:re[400]}},dropdown:{bg:b[950],border:b[500],item:{fg:"#ffffff",hoverBg:b[800],selectedBg:re[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:b[400],border:b[500],focusBorder:re[400],invalidBorder:ue[400]},checkbox:{bg:"#000000",border:b[400],checkColor:"#000000",checkedBg:re[400]},radio:{bg:"#000000",dotColor:re[400],border:b[400],checkedBorder:re[400]},tooltip:{bg:b[800],fg:"#ffffff"},modal:{bg:b[950],border:b[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:b[700],fg:"#ffffff"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:b[900],selectedBg:re[800],fg:"#ffffff"}},header:{default:{bg:b[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:b[300],border:b[500]},primary:{bg:re[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:re[300]},secondary:{bg:b[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:b[300],border:b[500]},success:{bg:ge[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[300]},warning:{bg:fe[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:fe[600]},danger:{bg:ue[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ue[300]}},statusbar:{default:{bg:b[950],fg:b[300]},primary:{bg:re[500],fg:"#ffffff"},info:{bg:nt[500],fg:"#000000"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:b[300],border:b[500]},primary:{bg:"#000000",titleFg:re[400],subtitleFg:b[300],border:re[400]},secondary:{bg:"#000000",titleFg:b[100],subtitleFg:b[400],border:b[700]}},appshell:{bg:"#000000",dividerFg:b[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:b[950],headerFg:"#ffffff",contentBg:"#000000",border:b[500],iconFg:b[300]},primary:{headerBg:b[900],headerFg:re[400],contentBg:"#000000",border:re[400],iconFg:re[400]},secondary:{headerBg:b[900],headerFg:"#ffffff",contentBg:b[950],border:b[500],iconFg:b[300]}},commandPalette:{bg:b[950],border:b[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:b[400],itemFg:"#ffffff",itemHoverBg:b[800],itemSelectedBg:re[800],itemSelectedFg:"#ffffff",highlightFg:re[400],categoryFg:b[400]},splitPanel:{bg:"#000000",dividerBg:b[500],dividerHoverBg:b[400],dividerActiveBg:re[400],border:b[500],titleFg:b[300]},toast:{success:{bg:Po.success[900],fg:Po.success[100],border:ge[400],iconFg:ge[400]},error:{bg:Po.danger[900],fg:Po.danger[100],border:ue[400],iconFg:ue[400]},warning:{bg:Po.warning[900],fg:Po.warning[100],border:fe[400],iconFg:fe[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:nt[400],iconFg:nt[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:b[950],titleBarFg:"#ffffff",border:b[500],buttonFg:b[300],closeFg:ue[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:re[500],titleBarFg:"#ffffff",border:re[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[500],titleBarFg:"#000000",border:ge[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:fe[400],titleBarFg:"#000000",border:fe[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ue[500],titleBarFg:"#ffffff",border:ue[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var Q2={primary:{50:b[50],100:b[100],200:b[200],300:b[300],400:b[400],500:b[500],600:b[600],700:b[700],800:b[800],900:b[900]},secondary:{50:b[50],100:b[100],200:b[200],300:b[300],400:b[400],500:b[500],600:b[600],700:b[700],800:b[800],900:b[900]},success:{50:b[50],100:b[100],200:b[200],300:b[300],400:b[400],500:b[500],600:b[600],700:b[700],800:b[800],900:b[900]},warning:{50:b[50],100:b[100],200:b[200],300:b[300],400:b[400],500:b[500],600:b[600],700:b[700],800:b[800],900:b[900]},danger:{50:b[50],100:b[100],200:b[200],300:b[300],400:b[400],500:b[500],600:b[600],700:b[700],800:b[800],900:b[900]},neutral:{50:b[50],100:b[100],200:b[200],300:b[300],400:b[400],500:b[500],600:b[600],700:b[700],800:b[800],900:b[900]}},_v={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:Q2,background:{lowest:b[950],base:b[900],subtle:b[800],surface:b[700],raised:b[600],elevated:b[500],popover:b[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:b[50],secondary:b[200],muted:b[400],disabled:b[500],inverse:{base:b[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:b[300],warning:b[400],critical:b[200],info:b[300],highlight:b[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:b[400],ring:{color:b[400],width:2}},disabled:{opacity:.4,bg:b[800],fg:b[500]},selected:{bg:b[700],fg:b[50]}},borders:{default:b[600],subtle:b[700],strong:b[400],accent:b[400],danger:b[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:b[300],fg:b[900],hoverBg:b[200],activeBg:b[400],border:"transparent"},secondary:{bg:b[700],fg:b[50],hoverBg:b[600],activeBg:b[800],border:"transparent"},outline:{bg:"transparent",fg:b[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:b[400]},ghost:{bg:"transparent",fg:b[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:b[800],headerBg:b[700],footerBg:b[700],border:b[600]},menu:{bg:b[800],border:b[600],item:{fg:b[50],hoverBg:b[700],activeBg:b[600],selectedBg:b[700],disabledFg:b[500]}},tabs:{bg:b[800],border:b[600],tab:{fg:b[400],activeFg:b[50],activeBg:b[700],hoverFg:b[200],indicator:b[300]}},dropdown:{bg:b[800],border:b[600],item:{fg:b[50],hoverBg:b[700],selectedBg:b[600]}},input:{bg:b[800],fg:b[50],placeholder:b[500],border:b[600],focusBorder:b[400],invalidBorder:b[300]},checkbox:{bg:b[800],border:b[500],checkColor:b[900],checkedBg:b[300]},radio:{bg:b[800],dotColor:b[300],border:b[500],checkedBorder:b[300]},tooltip:{bg:b[700],fg:b[50]},modal:{bg:b[800],border:b[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:b[700],fg:b[50]},success:{bg:b[400],fg:b[900]},warning:{bg:b[500],fg:b[900]},danger:{bg:b[300],fg:b[900]}},list:{item:{bg:"transparent",hoverBg:b[800],selectedBg:b[700],fg:b[50]}},header:{default:{bg:b[800],fg:b[50],titleFg:b[50],subtitleFg:b[400],border:b[600]},primary:{bg:b[300],fg:b[900],titleFg:b[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:b[400]},secondary:{bg:b[700],fg:b[50],titleFg:b[50],subtitleFg:b[400],border:b[600]},success:{bg:b[400],fg:b[900],titleFg:b[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:b[500]},warning:{bg:b[500],fg:b[900],titleFg:b[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:b[600]},danger:{bg:b[300],fg:b[900],titleFg:b[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:b[400]}},statusbar:{default:{bg:b[800],fg:b[400]},primary:{bg:b[300],fg:b[900]},info:{bg:b[400],fg:b[900]},success:{bg:b[400],fg:b[900]},warning:{bg:b[500],fg:b[900]},danger:{bg:b[300],fg:b[900]}},page:{default:{bg:b[900],titleFg:b[50],subtitleFg:b[400],border:b[600]},primary:{bg:b[900],titleFg:b[200],subtitleFg:b[400],border:b[500]},secondary:{bg:b[900],titleFg:b[300],subtitleFg:b[500],border:b[700]}},appshell:{bg:b[950],dividerFg:b[600],sidebarBg:b[900],asideBg:b[900]},collapsible:{default:{headerBg:b[800],headerFg:b[50],contentBg:b[900],border:b[600],iconFg:b[400]},primary:{headerBg:b[700],headerFg:b[200],contentBg:b[900],border:b[500],iconFg:b[300]},secondary:{headerBg:b[700],headerFg:b[50],contentBg:b[800],border:b[600],iconFg:b[400]}},commandPalette:{bg:b[800],border:b[600],inputBg:b[900],inputFg:b[50],inputPlaceholder:b[500],itemFg:b[50],itemHoverBg:b[700],itemSelectedBg:b[600],itemSelectedFg:b[50],highlightFg:b[200],categoryFg:b[500]},splitPanel:{bg:b[900],dividerBg:b[600],dividerHoverBg:b[500],dividerActiveBg:b[300],border:b[600],titleFg:b[400]},toast:{success:{bg:b[800],fg:b[100],border:b[400],iconFg:b[300]},error:{bg:b[800],fg:b[100],border:b[300],iconFg:b[200]},warning:{bg:b[800],fg:b[100],border:b[500],iconFg:b[400]},info:{bg:b[800],fg:b[100],border:b[400],iconFg:b[300]}},window:{default:{bg:b[900],fg:b[50],titleBarBg:b[800],titleBarFg:b[50],border:b[600],buttonFg:b[400],closeFg:b[300]},primary:{bg:b[900],fg:b[50],titleBarBg:b[300],titleBarFg:b[900],border:b[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:b[900]},success:{bg:b[900],fg:b[50],titleBarBg:b[400],titleBarFg:b[900],border:b[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:b[900]},warning:{bg:b[900],fg:b[50],titleBarBg:b[500],titleBarFg:b[900],border:b[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:b[900]},danger:{bg:b[900],fg:b[50],titleBarBg:b[300],titleBarFg:b[900],border:b[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:b[900]}}},borderRadius:"none"};var Ev=Symbol("tuiuiu.theme-runtime-state");function xv(){let[e,t]=xr(Cg);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function X2(e){if(e.id===0)return xv();let t=Nt(Ev,xv),[r,n]=xr(Fs(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function vv(){let e=He();return De(Ev,()=>X2(e),e)}function Sv(){return Fs(vv().currentTheme)}var Z2={dark:Cg,light:fv,monokai:gv,dracula:mv,nord:hv,solarizedDark:yv,gruvbox:bv,tokyoNight:kv,catppuccin:Rv,highContrastDark:wv,monochrome:_v},aQ=Object.keys(Z2);function eG(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 St(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("#")&&eG(e)>.4?"black":"white"}function tG(e,t=500){let r=pv[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var rG={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=>St(e.palette.primary[500]),"primary-foreground":e=>St(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=>St(e.palette.secondary[500]),"secondary-foreground":e=>St(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=>St(e.accents.positive),"success-foreground":e=>St(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=>St(e.accents.warning),"warning-foreground":e=>St(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=>St(e.accents.critical),"danger-foreground":e=>St(e.accents.critical),errorForeground:e=>St(e.accents.critical),destructiveForeground:e=>St(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>St(e.accents.info),"info-foreground":e=>St(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>St(e.palette.primary[400]),"accent-foreground":e=>St(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 Tv(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=Fs(vv().currentTheme),r=rG[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return tG(o,i)}return e}var nG={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},Pv=Symbol("tuiuiu.perf-inspector-runtime-state");function oG(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function Av(e){let t=e.id===0?null:Nt(Pv,()=>Av(Hr())),r=oG(t?.config??nG);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function Cv(){let e=He();return De(Pv,()=>Av(e),e)}function sG(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function iG(e,t){let r=dG().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 aG(e,t){e.ring.length!==e.config.maxFrames&&iG(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 lG(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 Ov(e,t={}){let r=Cv(),n=sG(e),o=Math.max(0,n-r.config.budget.frameMs),s=lG(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;PE({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(aG(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function dG(){let e=Cv(),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 cG={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function Ao(e,t){return BE(e,t,cG)}function Og(e){NE(e)}function jn(e,t){HE(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),Ov(e,{renderer:t.renderer})}var uG=.4,pG=64;function Co(){return typeof performance<"u"?performance.now():Date.now()}var Dv=new WeakMap;function fG(){let e=Sv(),t=Dv.get(e);return t||(t=new Map,Dv.set(e,t)),t}function gG(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&&mG(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 mG(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 Mv(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 Lv(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 hG(e,t,r){let n=e.map(s=>Lv(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(!(Mv(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 yG(e,t,r){let n=new Map;for(let i of e){let a=Lv(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 jv(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 na(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function m(I){G(t.columns||80,t.rows||24);let U=Ao(I,{width:s,height:i});w(U)}function w(I){G(I.info.viewport.width,I.info.viewport.height),W(I),Ss(I.layout),Ni(),c=I.root,u=I}function _(){l=!0,c?m(c):u&&W(u)}function O(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new na(s,i),l=!0}function T(){!r&&d&&(Ms(t),d=!1)}function F(){let I=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:y,totalCells:I,updatePercentage:I>0?y/I*100:0}}function $(I,U){s=I,i=U,a.resize(s,i),l=!0}function G(I,U){!r&&!d&&(Ls(t),d=!0),(I!==s||U!==i)&&$(I,U)}function W(I){let U=Co(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=TG(u,I),Ce=Vr(),Ee=lv(Ce),Re=dv(Ce),J=xe=>{let Oe=Co();t.write(xe),q+=Co()-Oe,oe+=typeof xe=="string"?Buffer.byteLength(xe):xe.byteLength};if(!l&&n&&u){let{renderRects:xe,diffRects:Oe}=kG(u.drawCommands,I.drawCommands,s,i);if(Ft(I,"dirtyRectCount",xe.length),Ft(I,"diffRectCount",Oe.length),xe.length===0){pe&&J(pe),y=0,Ft(I,"patchCount",0),Ft(I,"outputByteCount",oe),ft(I,"outputWriteMs",q),ft(I,"deltaRenderMs",Math.max(0,Co()-U-q)),jn(I,{renderer:"delta"});return}let ve=RG(xe);if(!(xe.length>pG||ve>Z*uG)){Ee&&J(Ee),wG(se,xe),xG(I.drawCommands,xe,se,I.reservedRegions);let Se=ae.diffRects(se,Oe);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,Ft(I,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${xe.length}, patches: ${Se.length}, cells: ${Z}`),pe&&J(pe),Se.length>0){let me=Sg(Se,s,!0);J(me),g++}Re&&J(Re),Ft(I,"outputByteCount",oe),ft(I,"outputWriteMs",q),ft(I,"deltaRenderMs",Math.max(0,Co()-U-q)),jn(I,{renderer:"delta"});return}}Ee&&J(Ee),se.clear(),Nv(I.drawCommands,se,I.reservedRegions);let ce=a.swap();if(y=ce.length,Ft(I,"patchCount",ce.length),o&&console.error(`[delta-render] patches: ${ce.length}, cells: ${Z}`),l||!n||ce.length>Z*.5){let xe=Id(a.getFrontBuffer());pe&&J(pe),J("\x1B[H"),J(xe),f++,l=!1,Re&&J(Re),Ft(I,"outputByteCount",oe),ft(I,"outputWriteMs",q),ft(I,"deltaRenderMs",Math.max(0,Co()-U-q)),jn(I,{renderer:"delta"});return}if(pe&&J(pe),ce.length>0){let xe=Sg(ce,s,!0);J(xe),g++}l=!1,Re&&J(Re),Ft(I,"outputByteCount",oe),ft(I,"outputWriteMs",q),ft(I,"deltaRenderMs",Math.max(0,Co()-U-q)),jn(I,{renderer:"delta"})}return{render:m,renderFrame:w,fullRedraw:_,clear:O,cleanup:T,stats:F,resize:$}}function bG(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=mo(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,ye(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 Dg(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:bG(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 kG(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&&gG(a,l)||(a&&o.push(Dg(a)),l&&o.push(Dg(l)))}return{renderRects:hG(o,r,n),diffRects:yG(o,r,n)}}function RG(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function wG(e,t){let r=zr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function $v(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function Sr(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,ye(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)||$v(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function _G(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)&&!$v(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function Bv(e,t,r){switch(e.type){case"box":EG(e,t,r);break;case"text":qv(e,t,r);break;case"terminal-image":vG(e,t);break}}function xG(e,t,r,n){for(let o of e){let s=Dg(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(Mv(s,i)){Bv(o,r,n);break}}}}function Nv(e,t,r){for(let n of e)Bv(n,t,r)}function Gv(e,t=new Jr(e.info.viewport.width,e.info.viewport.height)){return Nv(e.drawCommands,t,e.reservedRegions),t}function EG(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:m}=e,w=a?Oo(a):void 0,_=c?Oo(c):void 0,O=f?Oo(f):_;if(w||l!==" "){let T=d&&d!=="none"?1:0,F=n+T,$=o+T,G=Math.max(0,s-T*2),W=Math.max(0,i-T*2);for(let I=0;I<W;I++)_G(t,r,F,$+I,G,l,void 0,w,{},m)}if(d&&d!=="none"){let T=Tg[d]??Tg.single,F={},$=u?.top!==!1,G=u?.bottom!==!1,W=u?.left!==!1,I=u?.right!==!1;if($){let U=W?T.topLeft:T.top;Sr(t,r,n,o,U,_,void 0,F,m);for(let q=1;q<s-1;q++)Sr(t,r,n+q,o,T.top,_,void 0,F,m);if(s>1){let q=I?T.topRight:T.top;Sr(t,r,n+s-1,o,q,_,void 0,F,m)}if(p&&s>4){let q=s-4,ae=` ${dn(nx(p),q,{truncationCharacter:""})} `,se=ye(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)),Ce=0,Ee=pe;for(;Ce<ae.length&&Ee<n+s-1;){let Re=go(ae,Ce);if(!Re)break;Ce=Re.nextIndex;let J=ye(Re.symbol);J<=0||Ee+J>n+s-1||(Sr(t,r,Ee,o,Re.symbol,O,void 0,y?{...F,bold:!0}:F,m),Ee+=J)}}}for(let U=1;U<i-1;U++)W&&Sr(t,r,n,o+U,T.left,_,void 0,F,m),I&&s>1&&Sr(t,r,n+s-1,o+U,T.right,_,void 0,F,m);if(G&&i>1){let U=W?T.bottomLeft:T.bottom;Sr(t,r,n,o+i-1,U,_,void 0,F,m);for(let q=1;q<s-1;q++)Sr(t,r,n+q,o+i-1,T.bottom,_,void 0,F,m);if(s>1){let q=I?T.bottomRight:T.bottom;Sr(t,r,n+s-1,o+i-1,q,_,void 0,F,m)}}}}function vG(e,t){e.cellRender&&qv({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:Uv(e),style:{},clip:e.clip},t,[])}function Wv(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 Hv(e){let t=Wv(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 oa(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${Hv(e)}:${e.x}:${e.y}`)}function js(e){return[oa(e),e.x,e.y,Hv(e)].join(":")}function Uv(e){let t=Wv(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:_d(e.protocol,e.source,t)}function Fv(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 SG(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[oa(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(oa(s));if(!i||js(s)!==js(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${xd("kitty")}\x1B8`}}return o}function TG(e,t){let r=Fv(e),n=Fv(t),o=r.map(js).join("|"),s=n.map(js).join("|");if(e&&o===s)return"";let i=SG(r,n),a=new Map(r.map(l=>[oa(l),l]));for(let l of n){let d=a.get(oa(l));d&&js(d)===js(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=Uv(l),i+="\x1B8")}return i}function $s(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 PG(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=$s(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map($s);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function AG(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=$s(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[$s(e[t+2]),$s(e[t+3]),$s(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 Iv={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function CG(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=fo(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(":"),m=Number(y[0]||0);if(y.length>1){if(m===4){let w=Number(y[1]||0);w in Iv&&(a.underline=Iv[w])}else if(m===38||m===48||m===58){let w=PG(y);w&&(m===38?s=w:m===48?i=w:a.underlineColor=w)}continue}if(m===0)s=t,i=r,a={...n};else if(m===1)a.bold=!0;else if(m===2)a.dim=!0;else if(m===3)a.italic=!0;else if(m===4)a.underline=!0;else if(m===5)a.blink=!0;else if(m===7)a.inverse=!0;else if(m===8)a.hidden=!0;else if(m===9)a.strikethrough=!0;else if(m===21)a.underline="double";else if(m===22)a.bold=!1,a.dim=!1;else if(m===23)a.italic=!1;else if(m===24)a.underline=!1;else if(m===25)a.blink=!1;else if(m===27)a.inverse=!1;else if(m===28)a.hidden=!1;else if(m===29)a.strikethrough=!1;else if(m>=30&&m<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][m-30];else if(m===39)s=t;else if(m>=40&&m<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][m-40];else if(m===49)i=r;else if(m===59)a.underlineColor=n.underlineColor;else if(m>=90&&m<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][m-90];else if(m>=100&&m<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][m-100];else if(m===38||m===48||m===58){let{color:w,consumed:_}=AG(p,g);w&&(m===38?s=w:m===48?i=w:a.underlineColor=w),g+=_}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function qv(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?Oo(a.color):void 0,u=d?void 0:a.backgroundColor?Oo(a.backgroundColor):l?Oo(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?Oo(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=mo(i,s,a.wrap);if(g){let y=CG(f.join(`
206
+ `),c,u,p),m=0,w=0;for(let _ of y){let O=0;for(;O<_.text.length;){let T=go(_.text,O);if(!T)break;let F=T.symbol;if(F===`
207
+ `){w++,m=0,O=T.nextIndex;continue}let $=ye(F);$>0&&(Sr(t,r,n+m,o+w,F,_.fg,_.bg,_.attrs,e.clip),m+=$),O=T.nextIndex}}}else for(let y=0;y<f.length;y++){let m=0,w=0;for(;w<f[y].length;){let _=go(f[y],w);if(!_)break;let O=_.symbol;if(m>=s)break;let T=ye(O);T>0&&(Sr(t,r,n+m,o+y,O,c,u,p,e.clip),m+=T),w=_.nextIndex}}}function Oo(e){let t=fG(),r=t.get(e);if(r)return r;let n=Tv(e);return t.set(e,n),n}var TQ=Symbol("tuiuiu.delta-renderer-state");function Kv(){return typeof performance<"u"?performance.now():Date.now()}function zv(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=zv(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function OG(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 Ig(e,t={}){let r=Kv(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=zv(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Jr(e.info.viewport.width,u);Gv(e,p);let g=Id(p,n),f=IG(e,o);return ft(e,"ansiRenderMs",Kv()-r),f+g}function Jv(e,t,r){let n=OG(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=Ao(e,{width:n.width,height:s});return Ig(i,{fullHeight:n.fullHeight})}function Yv(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 Qv(e){let t=Yv(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 sa(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${Qv(e)}:${e.x}:${e.y}`)}function Bs(e){return[sa(e),e.x,e.y,Qv(e)].join(":")}function DG(e){let t=Yv(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:_d(e.protocol,e.source,t)}function Vv(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Fg(e,t){if(!rE(t))return e;let r=Vr();return r.multiplexer?Md(e,r.multiplexer):e}function FG(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[sa(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(sa(s));if(!i||Bs(s)!==Bs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Fg(`\x1B7\x1B[H${Os.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Fg(`\x1B7\x1B[H${xd("kitty")}\x1B8`,"kitty")}}return o}function IG(e,t){let r=Vv(e);if(r.length===0&&!t)return"";let n=Vv(t),o=n.map(Bs).join("|"),s=r.map(Bs).join("|");if(t&&o===s)return"";let i=FG(n,r),a=new Map(n.map(l=>[sa(l),l]));for(let l of r){let d=a.get(sa(l));if(d&&Bs(d)===Bs(l))continue;let c=DG(l);i+=Fg(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function jd(e){let{value:t,isNew:r}=Rr(null);if(r||t===null){let n=Xi(()=>xr(e)),o=cr();return wr(o,n),n}return t}function Xv(e){let{value:t,isNew:r}=Rr(null);if(r||t===null){let n=Xi(e);return wr(cr(),n),n}return t}function ia(e){let{value:t,isNew:r}=Rr(null);if(r||t===null){let n=cr(),o={effect:null,fn:e,dispose:null};wr(n,o);let s=new Fn(()=>{let a=Kr(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,yo(i,n),i}else return t.fn=e,t.dispose}var VQ=Symbol("tuiuiu.keyboard-protocol-runtime-state");function Zv(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 m=Number(f);return Number.isSafeInteger(m)?m: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 Mg="\x1B[200~",Ns="\x1B[201~",MG="\x1B[I",LG="\x1B[O";function eS(){return"\x1B[?2004h"}function tS(){return"\x1B[?2004l"}function rS(){return"\x1B[?1004h"}function nS(){return"\x1B[?1004l"}function oS(e){return e===MG?{focused:!0}:e===LG?{focused:!1}:null}function sS(){return"\x1B[?1049h"}function Lg(){return"\x1B[?1049l"}var jG={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"},$G=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),BG=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),NG=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,GG=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,WG=/^\x1b\[27;(\d+);(\d+)~/;function HG(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 aS(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function iS(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!aS(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function UG(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 jg(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===`
207
208
  `)return r.return=!0,{input:n,key:r,length:1};if(t==="\x1B\r"||t===`\x1B
208
- `)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=wG.exec(t);if(o){let d=Hv(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=Yv(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=_G.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(xG(r,d)&&Qv(c))return n=Yv(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=RG.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=yG[c];return p&&EG(r,p),bG.has(c)&&(r.shift=!0),kG.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 Pg(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=br(null);if(i||s===null){let c=function(){return Kr(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=ir();kr(d,l),r&&(l.handlerId=dd(a,{priority:n,stopPropagation:o})),go(()=>{l.handlerId!==null&&($i(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=dd(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&($i(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&$i(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=dd(s.wrapper,{priority:n,stopPropagation:o}))}}function Xv(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(Xv):typeof e=="string"||typeof e=="number"?[_t({children:String(e)})]:[e]}function vr(e,...t){return{type:"box",props:{...e},children:Xv(t.length>0?t:e.children)}}function _t(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 vG=0,Zv=Symbol("tuiuiu.focus-zone-manager"),Ag=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 De(Zv,()=>new e)}static reset(){sd(Zv)}[Wr](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${vG++}`,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 eS(){return Ag.getInstance()}var ra=class{zoneManager=eS();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 SG}from"node:string_decoder";function tS(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function TG(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function PG(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 AG(e){let t=PG(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function CG(e){let t=Math.min(e.length,$s.length-1);for(let r=t;r>0;r--)if(e.endsWith($s.slice(0,r)))return r;return 0}var Cg=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new SG("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,tS(this.maxPasteBytes,"maxPasteBytes"),tS(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),TG(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}=AG(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&&$s.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($s);if(o===-1){let s=CG(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+$s.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(vg);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+vg.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 rS(e={}){return new Cg(e)}function nS(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=b=>{typeof r.write=="function"&&r.write(b)},p=b=>{if(!(d||!t.isTTY||!t.setRawMode)){if(b){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(Kv()),a&&o&&u(Uv()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let b,h=w=>{try{w()}catch(S){b??=S}};if(c=0,h(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),h(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&h(()=>u(Vv())),a&&o&&h(()=>u(qv())),b)throw b}}}function Ld(){let e=fn();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Id=new WeakSet,Md=new WeakSet;function Og(e,t,r={}){let n=Lf();if(n&&fn(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(Id.has(e)||Md.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=ex();Id.add(e),Md.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,b,h=!1,w=o,S,L=qe(u,()=>(WE({stdout:t}),!!(e.isTTY&&p&&Vr().focusEvents))),A=nS({stdin:e,stdout:t,focusEvents:L,bracketedPaste:!0}),M=A.setRawMode,N=A.isRawModeEnabled;try{A.start()}catch(J){Id.delete(e),Md.delete(t);try{A.dispose()}finally{xs(u)}throw J}sg(u);let W=qe(u,()=>new ra);Wf(W,u);let H=rS({maxPasteBytes:a,maxPendingEscapeBytes:l}),F=null,U=null,q=()=>{F&&(clearTimeout(F),F=null)},oe=()=>{q(),F=setTimeout(()=>{H.abortPaste(),F=null},Math.max(0,c))},ae=J=>{let ce=J;for(;ce.length>0;){let _e=zv(ce.slice(0,3));if(_e){Vt(()=>{og(_e.focused)}),ce=ce.slice(3);continue}if(Kf(ce)){let me=Hi(ce);if(me){Vt(()=>{Cs().handleMouseEvent(me.event),_x(me.event)}),ce=ce.slice(me.length);continue}}let{input:Oe,key:ve,length:Re}=Tg(ce),Se=Re>0?Re:1;if(ce=ce.slice(Se),s&&ve.ctrl&&Oe==="c"){ke();return}if(w){if(ve.tab&&!ve.shift){Vt(()=>{W.focusNext()});continue}if(ve.tab&&ve.shift){Vt(()=>{W.focusPrevious()});continue}if(ve.escape&&W.getActiveId()!==void 0){Vt(()=>{W.blur()});continue}}Vt(()=>{Rx(Oe,ve)})}},se=J=>{for(let ce of J){if(h)return;ce.type==="paste"?Vt(()=>{Ex(ce.text,ce.bracketed)}):ae(ce.input)}},X=()=>{h||(U&&(clearTimeout(U),U=null),H.status.pendingEscapeBytes>0&&(U=setTimeout(pe,Math.max(0,d))),H.status.pasteActive?oe():q())},pe=()=>{U=null,!h&&(se(H.flushPendingInput()),X())},Ce=pn(u,J=>{h||(se(H.push(J)),X())});e.on("data",Ce);let Ee=()=>{if(h)return;h=!0;let J=ce=>{try{ce()}catch(_e){console.error("[tuiuiu] Error while disposing app state:",_e)}};try{J(()=>e.off("data",Ce)),U&&(clearTimeout(U),U=null),q(),J(()=>H.dispose()),J(()=>A.dispose()),J(()=>ld(u)),J(()=>sg(u)),J(()=>wx(u)),J(()=>vx(u)),J(()=>xx(u)),J(()=>fd(u)),J(()=>Mx(u)),J(()=>Wf(null,u)),J(()=>{fn(u)===S&&Gf(null,u)})}finally{Id.delete(e),Md.delete(t),g.clear(),xs(u)}},ke=J=>{if(f)return;f=!0,b=J;let ce=[...g];g.clear(),Ee();for(let _e of ce)try{_e(J)}catch(Oe){console.error("[tuiuiu] Error in app exit callback:",Oe)}J&&console.error(J),i&&process.exit(J?1:0)};return S={exit:ke,dispose:Ee,stdin:e,stdout:t,writeLine:J=>{let ce=Rs(String(J)).replace(/\r\n?/g,`
209
+ `)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=GG.exec(t);if(o){let d=Zv(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=iS(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=WG.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(HG(r,d)&&aS(c))return n=iS(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=NG.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=jG[c];return p&&UG(r,p),$G.has(c)&&(r.shift=!0),BG.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 $g(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=Rr(null);if(i||s===null){let c=function(){return Kr(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=cr();wr(d,l),r&&(l.handlerId=fd(a,{priority:n,stopPropagation:o})),yo(()=>{l.handlerId!==null&&(Hi(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=fd(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(Hi(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&Hi(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=fd(s.wrapper,{priority:n,stopPropagation:o}))}}function lS(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(lS):typeof e=="string"||typeof e=="number"?[wt({children:String(e)})]:[e]}function Tr(e,...t){return{type:"box",props:{...e},children:lS(t.length>0?t:e.children)}}function wt(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 qG=0,dS=Symbol("tuiuiu.focus-zone-manager"),Bg=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 De(dS,()=>new e)}static reset(){dd(dS)}[Wr](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${qG++}`,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 cS(){return Bg.getInstance()}var aa=class{zoneManager=cS();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 KG}from"node:string_decoder";function uS(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function VG(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function zG(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 JG(e){let t=zG(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function YG(e){let t=Math.min(e.length,Ns.length-1);for(let r=t;r>0;r--)if(e.endsWith(Ns.slice(0,r)))return r;return 0}var Ng=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new KG("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,uS(this.maxPasteBytes,"maxPasteBytes"),uS(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),VG(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}=JG(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&&Ns.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(Ns);if(o===-1){let s=YG(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+Ns.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(Mg);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+Mg.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 pS(e={}){return new Ng(e)}function fS(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(rS()),a&&o&&u(eS()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let y,m=w=>{try{w()}catch(_){y??=_}};if(c=0,m(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),m(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&m(()=>u(nS())),a&&o&&m(()=>u(tS())),y)throw y}}}function Nd(){let e=un();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var $d=new WeakSet,Bd=new WeakSet;function Gg(e,t,r={}){let n=Kf();if(n&&un(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($d.has(e)||Bd.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=cx();$d.add(e),Bd.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,m=!1,w=o,_,O=Ve(u,()=>(XE({stdout:t}),!!(e.isTTY&&p&&Vr().focusEvents))),T=fS({stdin:e,stdout:t,focusEvents:O,bracketedPaste:!0}),F=T.setRawMode,$=T.isRawModeEnabled;try{T.start()}catch(J){$d.delete(e),Bd.delete(t);try{T.dispose()}finally{vs(u)}throw J}mg(u);let G=Ve(u,()=>new aa);Xf(G,u);let W=pS({maxPasteBytes:a,maxPendingEscapeBytes:l}),I=null,U=null,q=()=>{I&&(clearTimeout(I),I=null)},oe=()=>{q(),I=setTimeout(()=>{W.abortPaste(),I=null},Math.max(0,c))},ae=J=>{let ce=J;for(;ce.length>0;){let xe=oS(ce.slice(0,3));if(xe){Jt(()=>{gg(xe.focused)}),ce=ce.slice(3);continue}if(rg(ce)){let me=zi(ce);if(me){Jt(()=>{Ds().handleMouseEvent(me.event),Dx(me.event)}),ce=ce.slice(me.length);continue}}let{input:Oe,key:ve,length:we}=jg(ce),Se=we>0?we:1;if(ce=ce.slice(Se),s&&ve.ctrl&&Oe==="c"){Re();return}if(w){if(ve.tab&&!ve.shift){Jt(()=>{G.focusNext()});continue}if(ve.tab&&ve.shift){Jt(()=>{G.focusPrevious()});continue}if(ve.escape&&G.getActiveId()!==void 0){Jt(()=>{G.blur()});continue}}Jt(()=>{Cx(Oe,ve)})}},se=J=>{for(let ce of J){if(m)return;ce.type==="paste"?Jt(()=>{Ix(ce.text,ce.bracketed)}):ae(ce.input)}},Z=()=>{m||(U&&(clearTimeout(U),U=null),W.status.pendingEscapeBytes>0&&(U=setTimeout(pe,Math.max(0,d))),W.status.pasteActive?oe():q())},pe=()=>{U=null,!m&&(se(W.flushPendingInput()),Z())},Ce=cn(u,J=>{m||(se(W.push(J)),Z())});e.on("data",Ce);let Ee=()=>{if(m)return;m=!0;let J=ce=>{try{ce()}catch(xe){console.error("[tuiuiu] Error while disposing app state:",xe)}};try{J(()=>e.off("data",Ce)),U&&(clearTimeout(U),U=null),q(),J(()=>W.dispose()),J(()=>T.dispose()),J(()=>pd(u)),J(()=>mg(u)),J(()=>Ox(u)),J(()=>Mx(u)),J(()=>Fx(u)),J(()=>yd(u)),J(()=>qx(u)),J(()=>Xf(null,u)),J(()=>{un(u)===_&&Qf(null,u)})}finally{$d.delete(e),Bd.delete(t),g.clear(),vs(u)}},Re=J=>{if(f)return;f=!0,y=J;let ce=[...g];g.clear(),Ee();for(let xe of ce)try{xe(J)}catch(Oe){console.error("[tuiuiu] Error in app exit callback:",Oe)}J&&console.error(J),i&&process.exit(J?1:0)};return _={exit:Re,dispose:Ee,stdin:e,stdout:t,writeLine:J=>{let ce=_s(String(J)).replace(/\r\n?/g,`
209
210
  `);t.write(`${ce.replace(/\n+$/u,"")}
210
- `)},onExit:J=>{if(f){try{J(b)}catch(ce){console.error("[tuiuiu] Error in app exit callback:",ce)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:w,setAutoTabNavigation:J=>{w=J},setRawMode:M,get rawModeEnabledCount(){return A.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>_r(u),enqueueExternalUpdate:J=>{Vt(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},Gf(S,u),S}function Dg(e){let t=fn();t&&(t.clearScreen=e)}function jd(e){let t=fn();t&&(t.writeLine=e??(r=>{let n=Rs(String(r)).replace(/\r\n?/g,`
211
+ `)},onExit:J=>{if(f){try{J(y)}catch(ce){console.error("[tuiuiu] Error in app exit callback:",ce)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:w,setAutoTabNavigation:J=>{w=J},setRawMode:F,get rawModeEnabledCount(){return T.rawModeEnabledCount},isRawModeEnabled:$,isTerminalFocused:()=>Er(u),enqueueExternalUpdate:J=>{Jt(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},Qf(_,u),_}function Wg(e){let t=un();t&&(t.clearScreen=e)}function Gd(e){let t=un();t&&(t.writeLine=e??(r=>{let n=_s(String(r)).replace(/\r\n?/g,`
211
212
  `);t.stdout.write(`${n.replace(/\n+$/u,"")}
212
- `)}))}function $d(e){let t=fn();if(t){if(!e){t.enqueueExternalUpdate=r=>{Vt(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function Fg(){let[e,t]=Wv(()=>wr(UE()));return ta(()=>qE(n=>{t(n)})),e()}function Ig(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=br(null);if(i||s===null){let a=ir(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=Kr(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=Kr(a);c&&c.callback()},d.delay))},stop:()=>{let d=Kr(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>Kr(a)?.running??!1};return kr(a,l),go(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 Sr="\x1B[",Mg=`${Sr}H`,na=`${Sr}J`,Bd=`${Sr}K`,oS=e=>{let t="";for(let r=0;r<e;r++)t+=Sr+"2K",r<e-1&&(t+=Sr+"1A");return e>0&&(t+="\r"),t},sS=e=>e>0?`${Sr}${e}A`:"",OG=`${Sr}1E`,DG=`${Sr}2K`;function FG(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${Sr}${n+1}H`:Mg,d=c=>{!r&&!a&&(Is(e),a=!0);let u=c+`
213
+ `)}))}function Wd(e){let t=un();if(t){if(!e){t.enqueueExternalUpdate=r=>{Jt(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function Hg(){let[e,t]=Xv(()=>xr(ev()));return ia(()=>tv(n=>{t(n)})),e()}function Ug(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=Rr(null);if(i||s===null){let a=cr(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=Kr(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=Kr(a);c&&c.callback()},d.delay))},stop:()=>{let d=Kr(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>Kr(a)?.running??!1};return wr(a,l),yo(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 Pr="\x1B[",qg=`${Pr}H`,la=`${Pr}J`,Hd=`${Pr}K`,gS=e=>{let t="";for(let r=0;r<e;r++)t+=Pr+"2K",r<e-1&&(t+=Pr+"1A");return e>0&&(t+="\r"),t},mS=e=>e>0?`${Pr}${e}A`:"",QG=`${Pr}1E`,XG=`${Pr}2K`;function ZG(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${Pr}${n+1}H`:qg,d=c=>{!r&&!a&&(Ls(e),a=!0);let u=c+`
213
214
  `;if(u===o)return;let p=c.split(`
214
- `),g=p.map(S=>be(S)),f=p.length,b=[];for(let S=0;S<p.length;S++){let L=p[S],A=g[S],M=i[S]??0;A<M?b.push(L+Bd):b.push(L)}let h=s-f,w="";if(h>0)for(let S=0;S<h;S++)w+=`
215
- `+Bd;o=u,s=f,i=g,e.write(l+b.join(`
215
+ `),g=p.map(_=>ye(_)),f=p.length,y=[];for(let _=0;_<p.length;_++){let O=p[_],T=g[_],F=i[_]??0;T<F?y.push(O+Hd):y.push(O)}let m=s-f,w="";if(m>0)for(let _=0;_<m;_++)w+=`
216
+ `+Hd;o=u,s=f,i=g,e.write(l+y.join(`
216
217
  `)+w+`
217
- `+na)};return d.clear=()=>{e.write(l+na),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(Fs(e),a=!1)},d.sync=c=>{let u=c.split(`
218
+ `+la)};return d.clear=()=>{e.write(l+la),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(Ms(e),a=!1)},d.sync=c=>{let u=c.split(`
218
219
  `);o=c+`
219
- `,s=u.length,i=u.map(p=>be(p))},d}function IG(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${Sr}${n+1}H`:Mg,l=d=>{!r&&!i&&(Is(e),i=!0);let c=d+`
220
+ `,s=u.length,i=u.map(p=>ye(p))},d}function e5(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${Pr}${n+1}H`:qg,l=d=>{!r&&!i&&(Ls(e),i=!0);let c=d+`
220
221
  `;if(c===s)return;let u=o.length,p=c.split(`
221
222
  `),g=p.length,f=g-1;if(c===`
222
- `||s.length===0){e.write(a+oS(u)+c),s=c,o=p;return}let b=[];g<u?b.push(oS(u-g+1),sS(f)):b.push(sS(u-1));for(let h=0;h<f;h++){if(p[h]===o[h]){b.push(OG);continue}b.push(DG+p[h]+`
223
- `)}e.write(b.join("")),s=c,o=p};return l.clear=()=>{e.write(a+na),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(Fs(e),i=!1)},l.sync=d=>{let c=d+`
223
+ `||s.length===0){e.write(a+gS(u)+c),s=c,o=p;return}let y=[];g<u?y.push(gS(u-g+1),mS(f)):y.push(mS(u-1));for(let m=0;m<f;m++){if(p[m]===o[m]){y.push(QG);continue}y.push(XG+p[m]+`
224
+ `)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+la),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(Ms(e),i=!1)},l.sync=d=>{let c=d+`
224
225
  `;s=c,o=c.split(`
225
- `)},l}function MG(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${Sr}${n+1}H`:Mg,l=d=>{!r&&!i&&(Is(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
226
- `),p=u.length,g=c;if(g=u.map(b=>b+Bd).join(`
227
- `),s>p){let b=s-p;for(let h=0;h<b;h++)g+=`
228
- `+Bd}e.write(a+g+na),o=c,s=p};return l.clear=()=>{e.write(a+na),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(Fs(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
229
- `).length},l}function Lg(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?MG(e,t):r?IG(e,t):FG(e,t)}function iS(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 aS=Symbol("tuiuiu.overlay-runtime-state");function LG(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function lS(e){let t=e.id===0?null:Gt(aS,()=>lS(Hr())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Wr](){LG(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function jG(){let e=Ge();return De(aS,()=>lS(e),e)}function jg(e,t){let r=jG();r.terminalSize={width:e,height:t}}function dS(e){return"__reactive"in e}function $G(e){let t=e.__reactive(),r=Nt(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function cS(e){let t=0,r=n=>{dS(n)&&$G(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function uS(e){let t=new Set,r=n=>{dS(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function BG(e){return!!e.props.__static}function NG(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Nt(e.children??[])}`}function GG(e){let t=[];function r(o){if(BG(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 $g={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},WG={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function Bg(e,t={}){let r=t.screenMode?WG[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:b=!0,fixedStep:h}=t,w=t.clearOnStart??r?.clearOnStart??!0,S=t.fullHeight??r?.fullHeight??!1,L=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 A=Og(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=Nf(A);if(!M)throw A.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,W=()=>{},H=[];try{W=Tx(),H.push(gn(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),H.push(gn(()=>{n.write("\x1B[?1004l")})),H.push(gn(()=>{n.write("\x1B[?2004l")})),L&&(n.write(Jv()),H.push(gn(()=>{n.write(Sg())})))}catch(ee){for(let he of H.splice(0))try{he()}catch{}try{W()}catch{}throw A.dispose(),xs(N),ee}let F=typeof e=="function"?e:()=>e,U=!1,q=0,oe=0,ae=0,se,X,pe=()=>{U=!1,we()},Ce=()=>{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}),ke=ee=>{let he=q>0?performance.now():0,kt=n.write(ee);return q>0&&(ae+=performance.now()-he,oe+=typeof ee=="string"?Buffer.byteLength(ee):ee.byteLength),!kt&&!U&&!Re&&(U=!0,n.once("drain",pe)),kt},J={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(ee){return ke(ee)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},ce=Lg(J,{showCursor:g,incremental:!1,fullScreen:S,topOffset:0}),_e=0,Oe=null,ve="",Re=!1,Se=[],me,ie,xe,Fe=new Set,rt=0,zt=()=>{_e=rt,ce=Lg(J,{showCursor:g,incremental:!1,fullScreen:S,topOffset:_e}),ve=""},mn=()=>{ce.clear(),ke($g.clearTerminal),ve="",Fe.clear(),rt=0,Se=[],zt()},hn=ee=>{ce.clear(),ke(`${ee}
230
- `),rt+=ee.split(`
231
- `).length,zt()};qe(N,()=>Dg(mn)),me=new Promise((ee,he)=>{ie=ee,xe=he});let Ao=A.dispose;A.dispose=()=>{if(Re){Ao();return}gt(),ie()};let le=p>0?Math.ceil(1e3/p):0;qe(N,()=>{yE({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:le>0?le:16.67}),jg(n.columns||80,n.rows||24)});let Jt=0,pt=!1,nt=null,Pt=null,ft=null,bt=0,At=0,xt=0,Te=0,Ve=null,Ct=[],Q=!1,O=null;b&&(O=Tv({stdout:J,showCursor:g,useDelta:!0})),w&&!s&&ke($g.clearTerminal);let R=le>0?le:16,j=iS(()=>{Ct.length!==0&&Vt(()=>{for(;Ct.length>0;){let ee=Ct;Ct=[];for(let he of ee)he()}})},R);qe(N,()=>$d({enqueue(ee){Re||(Ct.push(ee),j.schedule())},flush(){Re||j.flush()},isPending(){return Ct.length>0||j.isPending()}}));let G=()=>{let ee=performance.now();X=Date.now(),mx("component");try{Oe=F(),cS(Oe)}finally{hx(),se=performance.now()-ee}},V=()=>qe(N,()=>{G(),Pr()});function Z(ee){Re||(Pt=ee,!U&&we())}function we(){if(pt||Re||U||!Pt)return;let he=Date.now()-Jt,kt=Jt===0||he>=le?0:le-he,It=()=>{let Xe=Pt;if(Pt=null,pt=!1,nt=null,!Re)try{Xe?.()}catch(Ar){A.exit(Ar instanceof Error?Ar:new Error(String(Ar)))}};if(pt=!0,kt===0){queueMicrotask(It);return}nt=setTimeout(It,kt)}let je=ee=>qe(N,()=>{if(Re)return;let he=Rs(String(ee)).replace(/\r\n?/g,`
232
- `).replace(/\n+$/u,"");Se.push(he),Z(Pr)});qe(N,()=>jd(je));function Me(){if(!h||Re||(h.pauseWhenUnfocused??!0)&&!_r())return;let he=1e3/Math.max(1,h.updateFps),kt=Math.max(0,Math.ceil(he-bt));ft=setTimeout(lr,kt)}function lr(){if(!(!h||Re))try{if((h.pauseWhenUnfocused??!0)&&!_r()){ft=null,bt=0,At=Date.now();return}let he=1e3/h.updateFps,kt=h.maxCatchUpUpdates??5,It=Date.now();bt+=It-At,At=It;let Xe=0;for(;bt>=he&&Xe<kt;)bt-=he,xt++,Te+=he,Vt(()=>{h.onUpdate({deltaTimeMs:he,step:xt,elapsedMs:Te})}),Xe++;bt>=he&&(bt%=he),Me()}catch(ee){ft=null,A.exit(ee instanceof Error?ee:new Error(String(ee)))}}let jn=pn(N,()=>{Re||(HE(),jg(n.columns||80,n.rows||24),Qx(),Z(V))});n.on("resize",jn);let dr=()=>{};A.onExit(ee=>qe(N,()=>{gt(),dr(),ee?xe(ee):ie()}));function Pr(){if(Re||!Oe)return;Jt=Date.now();let ee=X??Date.now(),he=n.columns||80,kt=n.rows||24,It=GG(Oe),Xe=()=>{O&&(O.cleanup(),O=null,ke($g.clearTerminal),Fe.clear(),rt=0,zt())};if(Se.length>0){Xe();let Ue=Se;Se=[],hn(Ue.join(`
233
- `))}It.staticNodes.length>0&&Xe();let Ar=Math.max(1,kt-rt);if(O&&!s){let Ue=So(Oe,{width:he,height:Ar});Ue.metrics.runtimeStartAt=ee,se!==void 0&&ut(Ue,"vnodeEvalMs",se);let Xr=performance.now();wg(Ue),Zf(Ue.layout,rt);let ur=Cs();ur.hasClickableElements()&&!Q?(Ss(),Q=!0):!ur.hasClickableElements()&&Q&&(mo(),Q=!1),ut(Ue,"frameCommitMs",performance.now()-Xr),Ft(Ue,"reservedRegionCount",Ue.reservedRegions.length),O.renderFrame(Ue),se=void 0,X=void 0;return}let{staticNodes:Yr,interactiveNode:Bn}=It,Nn=performance.now();Ce();for(let Ue=0;Ue<Yr.length;Ue++){let Xr=Yr[Ue],ur=NG(Xr,Ue);if(!Fe.has(ur)){let Bs=Bv(Xr,he);Bs.trim()&&(hn(Bs),Fe.add(ur))}}let Gn=OE(),Be=So(Bn,{width:he,height:Ar});Be.metrics.runtimeStartAt=ee,se!==void 0&&ut(Be,"vnodeEvalMs",se);let Wn=performance.now()-Nn;ut(Be,"staticRenderMs",Wn);let Co=performance.now();wg(Be),Zf(Be.layout,rt);let Qr=Cs();Qr.hasClickableElements()&&!Q?(Ss(),Q=!0):!Qr.hasClickableElements()&&Q&&(mo(),Q=!1),ut(Be,"frameCommitMs",performance.now()-Co),Ft(Be,"reservedRegionCount",Be.reservedRegions.length);let cr=Eg(Be,{fullHeight:S,previousFrame:Gn});if(cr===ve&&!s){let Ue=Ee();ut(Be,"outputWriteMs",Ue.writeMs),Ft(Be,"outputByteCount",Ue.bytes),Ln(Be,{renderer:"ansi",runtimeStartAt:ee}),Es(Be.layout),Mi(),se=void 0,X=void 0;return}s?ke(cr+`
234
- `):ce(cr);let mt=Ee();ut(Be,"outputWriteMs",mt.writeMs),Ft(Be,"outputByteCount",mt.bytes),Ln(Be,{renderer:"ansi",runtimeStartAt:ee}),Es(Be.layout),Mi(),ve=cr,se=void 0,X=void 0}function gt(){return qe(N,$n)}function $n(){if(Re)return;Re=!0;let ee=he=>{try{he()}catch(kt){console.error("[tuiuiu] Error while cleaning up the render loop:",kt)}};nt&&(clearTimeout(nt),nt=null),ft&&(clearTimeout(ft),ft=null),Ve?.(),Ve=null,U=!1,ee(()=>n.off("drain",pe)),Pt=null,pt=!1,j.cancel(),Ct=[],$d(null),jd(null),Q&&(ee(()=>mo()),Q=!1),ee(()=>n.off("resize",jn)),ee(O?()=>O?.cleanup():()=>ce.done()),L&&ee(()=>{n.write(Sg())}),U=!1,ee(()=>n.off("drain",pe)),ee(()=>ld(N)),Oe&&ee(()=>uS(Oe)),ee(()=>A.dispose());for(let he of H.splice(0))ee(he);ee(W),ee(()=>DE()),ee(()=>xs(N))}try{dr=qe(N,()=>cE(()=>{V()},{scheduler:Z})),qe(N,()=>{h&&(At=Date.now(),(h.pauseWhenUnfocused??!0)&&(Ve=xd(ee=>{if(!(Re||!h)){if(!ee){ft&&(clearTimeout(ft),ft=null),bt=0,At=Date.now();return}bt=0,At=Date.now(),ft||Me()}})),Me())})}catch(ee){try{dr()}catch(he){console.error("[tuiuiu] Error while rolling back the render effect:",he)}throw gt(),ee}return{rerender:ee=>qe(N,()=>{F=()=>ee,Z(V)}),unmount:()=>qe(N,()=>{gt(),dr(),s||ke(`
235
- `),ie()}),waitUntilExit:()=>me,clear:()=>qe(N,()=>{s||(nt&&(clearTimeout(nt),nt=null),Pt=null,pt=!1,mn(),U?Z(()=>{Pr()}):Pr())}),writeLine:je}}var HG={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 Tr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function Ng(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function UG(e,t,r,n=1,o){let s=[],i=Tr(n,1),a=o===void 0?void 0:Tr(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=Ng(d);d.width!==void 0?c=Tr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):Tr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,Tr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,Tr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:Ng(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((b,h,w)=>b+(Ng(e[w])>0?0:h),0),p=l.reduce((b,h)=>b+s[h.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let b=l.reduce((h,w)=>h+w.flex,0);for(let h of l){let w=Math.floor(h.flex/b*f);s[h.index]=s[h.index]+w,h.col.maxWidth!==void 0&&(s[h.index]=Math.min(s[h.index],Tr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=Tr(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,w)=>{let S=Tr(e[w].minWidth,3);return Math.max(0,h-S)}),b=f.reduce((h,w)=>h+w,0);if(b>0)for(let h=0;h<s.length;h++){let w=Math.floor(f[h]/b*g);s[h]=Math.max(Tr(e[h].minWidth,3),s[h]-w)}}}return s}function pS(e,t,r){let n=un(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 qG(e,t){return un(e,t,{truncationCharacter:"\u2026"})}function KG(){try{return process.stdout.columns||80}catch{return 80}}function Gg(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,b=g?0:Tr(d,1),h=HG[n],w=n!=="none",S=p??KG(),L=UG(t,r,u,b,S),A=[],M=(N,W,H,F)=>{if(!w)return vr({});let U=[N];for(let q=0;q<L.length;q++)U.push(F.repeat(L[q]+b*2)),q<L.length-1&&U.push(W);return U.push(H),vr({flexDirection:"row"},_t({color:o},U.join("")))};if(w&&A.push(M(h.topLeft,h.topMid,h.topRight,h.horizontal)),s){let N=[];w&&N.push(_t({color:o},h.vertical));for(let W=0;W<t.length;W++){let H=t[W],F=" ".repeat(b),U=H.headerAlign??H.align??"left",q=pS(H.header,L[W],U);N.push(_t({color:o},F),_t({color:i.color??H.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":W+1},q),_t({color:o},F)),w&&N.push(_t({color:o},h.vertical))}A.push(vr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),w&&A.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let N=0;N<r.length;N++){let W=r[N],H=a&&N%2===1,F=t.map((oe,ae)=>{let se=W[oe.key];oe.format&&(se=oe.format(se,W));let X=String(se??"");if(oe.wrap)return po(X,L[ae],"wrap");let pe=X.replace(/\r?\n/g," ");return[oe.truncate===!1?un(pe,L[ae],{truncationCharacter:""}):qG(pe,L[ae])]}),U=Math.max(1,...F.map(oe=>oe.length)),q=[];for(let oe=0;oe<U;oe++){let ae=[];w&&ae.push(_t({color:o},h.vertical));for(let se=0;se<t.length;se++){let X=t[se],pe=" ".repeat(b),Ce=pS(F[se]?.[oe]??"",L[se],X.align??"left"),Ee=X.color??(H?l:void 0);ae.push(_t({color:o},pe),_t({color:Ee,dim:H,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Ce),_t({color:o},pe)),w&&ae.push(_t({color:o},h.vertical))}q.push(vr({flexDirection:"row"},...ae))}A.push(vr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&w&&A.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}return w&&A.push(M(h.bottomLeft,h.bottomMid,h.bottomRight,h.horizontal)),vr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...A)}function Nd(e,t){return _t({wrap:"truncate-end"},t?so(e):e)}function VG(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>Nd(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?so(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>Nd(c,r)),Gg({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=>Nd(c,r))]}function zG(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=>Nd(a,s)):VG(e.frame.dashboard,t,s);return vr({flexDirection:"column",width:t,height:r,overflow:"hidden"},vr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),_t({dim:!s,wrap:"truncate-end"},o))}async function fS(e){let t=!1;function r(){let o=Ld(),s=Fg(),[i,a]=Fd({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Fd(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 ta(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Ig(c,e.refreshMs??1e3),Pg((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))}),zG({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Bg(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as o5}from"node:child_process";import{readFileSync as s5}from"node:fs";import{dirname as kS,join as i5}from"node:path";import{createHash as JG}from"node:crypto";var YG="project.name";function mS(e){let t=ys(e,YG)?.trim();return t===void 0||t===""?void 0:t}var QG=8,hS="project";function yS(e){let t=r5(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:XG(e.remoteUrl)??{name:ZG(e.checkoutPath,t),source:"basename"},o=t5(t??Wg(e.checkoutPath));return{name:n.name,slug:`${e5(n.name)}-${o}`,hash:o,source:n.source}}function bS(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 XG(e){let t=bS(e);return t===void 0?void 0:{name:t,source:"remote"}}function ZG(e,t){let r=t===void 0?"":gS(n5(t));if(r!=="")return r;let n=gS(Wg(e));return n===""?hS:n}function e5(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?hS:r}function t5(e){return JG("sha256").update(e).digest("hex").slice(0,QG)}function r5(e){let t=Wg(e??"");return t===""?void 0:t}function Wg(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function gS(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function n5(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var a5=2e3;function RS(e){return l5(e).name}function l5(e){let t=Ug(e),r=Hg(e,["rev-parse","--absolute-git-dir"])??Hg(e,["rev-parse","--git-common-dir"]),n=Hg(e,["remote","get-url","origin"]);return yS({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function Ug(e){let t=y_(e,i5(".red","config.yaml"));if(t==null)return{};let r;try{r=s5(t,"utf8")}catch{return{}}let n=mS(r),o=kS(kS(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function Hg(e,t){try{let r=o5("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:a5}).trim();return r===""?void 0:r}catch{return}}function Gd(e){let t=Ug(e);return t.configText==null?{label:null}:{configText:t.configText,label:RS(e)}}var d5="plugins.dev.statusline",c5="dev.statusline";function u5(e){let t=[],r=a=>{for(let l of[d5,c5]){let d=`${l}.${a}`,c=ys(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 p5={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 Wd(e){let{values:t,positionals:r}=rn(e,p5),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 Hd(e={}){let t=e.configText==null?{config:{},warnings:[]}:u5(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}}async function qg(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Wd(e),s=Gd(t.cwd??process.cwd()),i=Hd({...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}
236
- `);let a=t.paths??Kt(),l=t.readDashboard??f_,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 b=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:b,lines:c?b.lines.map(so):b.lines}}catch(b){let h=b instanceof Error?b.message:String(b);return f&&n(`redskilled dashboard: ${h}
237
- `),{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(`
226
+ `)},l}function t5(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${Pr}${n+1}H`:qg,l=d=>{!r&&!i&&(Ls(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
227
+ `),p=u.length,g=c;if(g=u.map(y=>y+Hd).join(`
228
+ `),s>p){let y=s-p;for(let m=0;m<y;m++)g+=`
229
+ `+Hd}e.write(a+g+la),o=c,s=p};return l.clear=()=>{e.write(a+la),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(Ms(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
230
+ `).length},l}function Kg(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?t5(e,t):r?e5(e,t):ZG(e,t)}function hS(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 yS=Symbol("tuiuiu.overlay-runtime-state");function r5(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function bS(e){let t=e.id===0?null:Nt(yS,()=>bS(Hr())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Wr](){r5(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function n5(){let e=He();return De(yS,()=>bS(e),e)}function Vg(e,t){let r=n5();r.terminalSize={width:e,height:t}}function kS(e){return"__reactive"in e}function o5(e){let t=e.__reactive(),r=Bt(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function RS(e){let t=0,r=n=>{kS(n)&&o5(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function wS(e){let t=new Set,r=n=>{kS(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function s5(e){return!!e.props.__static}function i5(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Bt(e.children??[])}`}function a5(e){let t=[];function r(o){if(s5(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 zg={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},l5={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function Jg(e,t={}){let r=t.screenMode?l5[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:m}=t,w=t.clearOnStart??r?.clearOnStart??!0,_=t.fullHeight??r?.fullHeight??!1,O=t.alternateScreen??r?.alternateScreen??!0;if(!Number.isFinite(p)||p<0)throw new Error("[tuiuiu] maxFps must be a finite non-negative number");if(m){if(!Number.isFinite(m.updateFps)||m.updateFps<=0)throw new Error("[tuiuiu] fixedStep.updateFps must be a finite positive number");if(m.maxCatchUpUpdates!==void 0&&(!Number.isSafeInteger(m.maxCatchUpUpdates)||m.maxCatchUpUpdates<1))throw new Error("[tuiuiu] fixedStep.maxCatchUpUpdates must be a positive safe integer")}let T=Gg(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),F=Yf(T);if(!F)throw T.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let $=F,G=()=>{},W=[];try{G=jx(),W.push(pn(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),W.push(pn(()=>{n.write("\x1B[?1004l")})),W.push(pn(()=>{n.write("\x1B[?2004l")})),O&&(n.write(sS()),W.push(pn(()=>{n.write(Lg())})))}catch(X){for(let ke of W.splice(0))try{ke()}catch{}try{G()}catch{}throw T.dispose(),vs($),X}let I=typeof e=="function"?e:()=>e,U=!1,q=0,oe=0,ae=0,se,Z,pe=()=>{U=!1,_e()},Ce=()=>{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}),Re=X=>{let ke=q>0?performance.now():0,Ne=n.write(X);return q>0&&(ae+=performance.now()-ke,oe+=typeof X=="string"?Buffer.byteLength(X):X.byteLength),!Ne&&!U&&!we&&(U=!0,n.once("drain",pe)),Ne},J={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(X){return Re(X)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},ce=Kg(J,{showCursor:g,incremental:!1,fullScreen:_,topOffset:0}),xe=0,Oe=null,ve="",we=!1,Se=[],me,ie,be,Fe=new Set,ot=0,Yt=()=>{xe=ot,ce=Kg(J,{showCursor:g,incremental:!1,fullScreen:_,topOffset:xe}),ve=""},fn=()=>{ce.clear(),Re(zg.clearTerminal),ve="",Fe.clear(),ot=0,Se=[],Yt()},gn=X=>{ce.clear(),Re(`${X}
231
+ `),ot+=X.split(`
232
+ `).length,Yt()};Ve($,()=>Wg(fn)),me=new Promise((X,ke)=>{ie=X,be=ke});let Do=T.dispose;T.dispose=()=>{if(we){Do();return}Bn(),ie()};let le=p>0?Math.ceil(1e3/p):0;Ve($,()=>{TE({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:le>0?le:16.67}),Vg(n.columns||80,n.rows||24)});let Qt=0,gt=!1,st=null,Tt=null,mt=null,bt=0,Pt=0,_t=0,Te=0,Je=null,At=[],Q=!1,D=null;y&&(D=jv({stdout:J,showCursor:g,useDelta:!0})),w&&!s&&Re(zg.clearTerminal);let R=le>0?le:16,j=hS(()=>{At.length!==0&&Jt(()=>{for(;At.length>0;){let X=At;At=[];for(let ke of X)ke()}})},R);Ve($,()=>Wd({enqueue(X){we||(At.push(X),j.schedule())},flush(){we||j.flush()},isPending(){return At.length>0||j.isPending()}}));let H=()=>{let X=performance.now();Z=Date.now(),vx("component");try{Oe=I(),RS(Oe)}finally{Sx(),se=performance.now()-X}},V=()=>Ve($,()=>{H(),Wt()});function ee(X){we||(Tt=X,!U&&_e())}function _e(){if(gt||we||U||!Tt)return;let ke=Date.now()-Qt,Ne=Qt===0||ke>=le?0:le-ke,ht=()=>{let gr=Tt;if(Tt=null,gt=!1,st=null,!we)try{gr?.()}catch(Xt){T.exit(Xt instanceof Error?Xt:new Error(String(Xt)))}};if(gt=!0,Ne===0){queueMicrotask(ht);return}st=setTimeout(ht,Ne)}let $e=X=>Ve($,()=>{if(we)return;let ke=_s(String(X)).replace(/\r\n?/g,`
233
+ `).replace(/\n+$/u,"");Se.push(ke),ee(Wt)});Ve($,()=>Gd($e));function Me(){if(!m||we||(m.pauseWhenUnfocused??!0)&&!Er())return;let ke=1e3/Math.max(1,m.updateFps),Ne=Math.max(0,Math.ceil(ke-bt));mt=setTimeout(pr,Ne)}function pr(){if(!(!m||we))try{if((m.pauseWhenUnfocused??!0)&&!Er()){mt=null,bt=0,Pt=Date.now();return}let ke=1e3/m.updateFps,Ne=m.maxCatchUpUpdates??5,ht=Date.now();bt+=ht-Pt,Pt=ht;let gr=0;for(;bt>=ke&&gr<Ne;)bt-=ke,_t++,Te+=ke,Jt(()=>{m.onUpdate({deltaTimeMs:ke,step:_t,elapsedMs:Te})}),gr++;bt>=ke&&(bt%=ke),Me()}catch(X){mt=null,T.exit(X instanceof Error?X:new Error(String(X)))}}let $n=cn($,()=>{we||(ZE(),Vg(n.columns||80,n.rows||24),aE(),ee(V))});n.on("resize",$n);let fr=()=>{};T.onExit(X=>Ve($,()=>{Bn(),fr(),X?be(X):ie()}));function Wt(){if(we||!Oe)return;Qt=Date.now();let X=Z??Date.now(),ke=n.columns||80,Ne=n.rows||24,ht=a5(Oe),gr=()=>{D&&(D.cleanup(),D=null,Re(zg.clearTerminal),Fe.clear(),ot=0,Yt())};if(Se.length>0){gr();let je=Se;Se=[],gn(je.join(`
234
+ `))}ht.staticNodes.length>0&&gr();let Xt=Math.max(1,Ne-ot);if(D&&!s){let je=Ao(Oe,{width:ke,height:Xt});je.metrics.runtimeStartAt=X,se!==void 0&&ft(je,"vnodeEvalMs",se);let Ze=performance.now();Og(je),dg(je.layout,ot);let Xr=Ds();Xr.hasClickableElements()&&!Q?(Ps(),Q=!0):!Xr.hasClickableElements()&&Q&&(bo(),Q=!1),ft(je,"frameCommitMs",performance.now()-Ze),Ft(je,"reservedRegionCount",je.reservedRegions.length),D.renderFrame(je),se=void 0,Z=void 0;return}let{staticNodes:Ct,interactiveNode:Ws}=ht,mn=performance.now();Ce();for(let je=0;je<Ct.length;je++){let Ze=Ct[je],Xr=i5(Ze,je);if(!Fe.has(Xr)){let Hn=Jv(Ze,ke);Hn.trim()&&(gn(Hn),Fe.add(Xr))}}let Nn=GE(),Ge=Ao(Ws,{width:ke,height:Xt});Ge.metrics.runtimeStartAt=X,se!==void 0&&ft(Ge,"vnodeEvalMs",se);let Gn=performance.now()-mn;ft(Ge,"staticRenderMs",Gn);let Wn=performance.now();Og(Ge),dg(Ge.layout,ot);let hn=Ds();hn.hasClickableElements()&&!Q?(Ps(),Q=!0):!hn.hasClickableElements()&&Q&&(bo(),Q=!1),ft(Ge,"frameCommitMs",performance.now()-Wn),Ft(Ge,"reservedRegionCount",Ge.reservedRegions.length);let Yr=Ig(Ge,{fullHeight:_,previousFrame:Nn});if(Yr===ve&&!s){let je=Ee();ft(Ge,"outputWriteMs",je.writeMs),Ft(Ge,"outputByteCount",je.bytes),jn(Ge,{renderer:"ansi",runtimeStartAt:X}),Ss(Ge.layout),Ni(),se=void 0,Z=void 0;return}s?Re(Yr+`
235
+ `):ce(Yr);let Qr=Ee();ft(Ge,"outputWriteMs",Qr.writeMs),Ft(Ge,"outputByteCount",Qr.bytes),jn(Ge,{renderer:"ansi",runtimeStartAt:X}),Ss(Ge.layout),Ni(),ve=Yr,se=void 0,Z=void 0}function Bn(){return Ve($,Gs)}function Gs(){if(we)return;we=!0;let X=ke=>{try{ke()}catch(Ne){console.error("[tuiuiu] Error while cleaning up the render loop:",Ne)}};st&&(clearTimeout(st),st=null),mt&&(clearTimeout(mt),mt=null),Je?.(),Je=null,U=!1,X(()=>n.off("drain",pe)),Tt=null,gt=!1,j.cancel(),At=[],Wd(null),Gd(null),Q&&(X(()=>bo()),Q=!1),X(()=>n.off("resize",$n)),X(D?()=>D?.cleanup():()=>ce.done()),O&&X(()=>{n.write(Lg())}),U=!1,X(()=>n.off("drain",pe)),X(()=>pd($)),Oe&&X(()=>wS(Oe)),X(()=>T.dispose());for(let ke of W.splice(0))X(ke);X(G),X(()=>WE()),X(()=>vs($))}try{fr=Ve($,()=>RE(()=>{V()},{scheduler:ee})),Ve($,()=>{m&&(Pt=Date.now(),(m.pauseWhenUnfocused??!0)&&(Je=Td(X=>{if(!(we||!m)){if(!X){mt&&(clearTimeout(mt),mt=null),bt=0,Pt=Date.now();return}bt=0,Pt=Date.now(),mt||Me()}})),Me())})}catch(X){try{fr()}catch(ke){console.error("[tuiuiu] Error while rolling back the render effect:",ke)}throw Bn(),X}return{rerender:X=>Ve($,()=>{I=()=>X,ee(V)}),unmount:()=>Ve($,()=>{Bn(),fr(),s||Re(`
236
+ `),ie()}),waitUntilExit:()=>me,clear:()=>Ve($,()=>{s||(st&&(clearTimeout(st),st=null),Tt=null,gt=!1,fn(),U?ee(()=>{Wt()}):Wt())}),writeLine:$e}}var d5={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 Ar(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function Yg(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function c5(e,t,r,n=1,o){let s=[],i=Ar(n,1),a=o===void 0?void 0:Ar(o,0);for(let d of e){let c=ye(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,ye(f))}let u=Yg(d);d.width!==void 0?c=Ar(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):Ar(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,Ar(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,Ar(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:Yg(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,m,w)=>y+(Yg(e[w])>0?0:m),0),p=l.reduce((y,m)=>y+s[m.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let y=l.reduce((m,w)=>m+w.flex,0);for(let m of l){let w=Math.floor(m.flex/y*f);s[m.index]=s[m.index]+w,m.col.maxWidth!==void 0&&(s[m.index]=Math.min(s[m.index],Ar(m.col.maxWidth,s[m.index])))}}}if(r!==void 0){let d=Ar(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((m,w)=>{let _=Ar(e[w].minWidth,3);return Math.max(0,m-_)}),y=f.reduce((m,w)=>m+w,0);if(y>0)for(let m=0;m<s.length;m++){let w=Math.floor(f[m]/y*g);s[m]=Math.max(Ar(e[m].minWidth,3),s[m]-w)}}}return s}function _S(e,t,r){let n=dn(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=ye(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 u5(e,t){return dn(e,t,{truncationCharacter:"\u2026"})}function p5(){try{return process.stdout.columns||80}catch{return 80}}function Qg(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:Ar(d,1),m=d5[n],w=n!=="none",_=p??p5(),O=c5(t,r,u,y,_),T=[],F=($,G,W,I)=>{if(!w)return Tr({});let U=[$];for(let q=0;q<O.length;q++)U.push(I.repeat(O[q]+y*2)),q<O.length-1&&U.push(G);return U.push(W),Tr({flexDirection:"row"},wt({color:o},U.join("")))};if(w&&T.push(F(m.topLeft,m.topMid,m.topRight,m.horizontal)),s){let $=[];w&&$.push(wt({color:o},m.vertical));for(let G=0;G<t.length;G++){let W=t[G],I=" ".repeat(y),U=W.headerAlign??W.align??"left",q=_S(W.header,O[G],U);$.push(wt({color:o},I),wt({color:i.color??W.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":G+1},q),wt({color:o},I)),w&&$.push(wt({color:o},m.vertical))}T.push(Tr({flexDirection:"row",role:"row","aria-rowindex":1},...$)),w&&T.push(F(m.leftMid,m.midMid,m.rightMid,m.horizontal))}for(let $=0;$<r.length;$++){let G=r[$],W=a&&$%2===1,I=t.map((oe,ae)=>{let se=G[oe.key];oe.format&&(se=oe.format(se,G));let Z=String(se??"");if(oe.wrap)return mo(Z,O[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?dn(pe,O[ae],{truncationCharacter:""}):u5(pe,O[ae])]}),U=Math.max(1,...I.map(oe=>oe.length)),q=[];for(let oe=0;oe<U;oe++){let ae=[];w&&ae.push(wt({color:o},m.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(y),Ce=_S(I[se]?.[oe]??"",O[se],Z.align??"left"),Ee=Z.color??(W?l:void 0);ae.push(wt({color:o},pe),wt({color:Ee,dim:W,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Ce),wt({color:o},pe)),w&&ae.push(wt({color:o},m.vertical))}q.push(Tr({flexDirection:"row"},...ae))}T.push(Tr({flexDirection:"column",role:"row","aria-rowindex":$+(s?2:1)},...q)),c&&$<r.length-1&&w&&T.push(F(m.leftMid,m.midMid,m.rightMid,m.horizontal))}return w&&T.push(F(m.bottomLeft,m.bottomMid,m.bottomRight,m.horizontal)),Tr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...T)}function Ud(e,t){return wt({wrap:"truncate-end"},t?ao(e):e)}function f5(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>Ud(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?ao(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>Ud(c,r)),Qg({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=>Ud(c,r))]}function g5(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=>Ud(a,s)):f5(e.frame.dashboard,t,s);return Tr({flexDirection:"column",width:t,height:r,overflow:"hidden"},Tr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),wt({dim:!s,wrap:"truncate-end"},o))}async function xS(e){let t=!1;function r(){let o=Nd(),s=Hg(),[i,a]=jd({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=jd(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 ia(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Ug(c,e.refreshMs??1e3),$g((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))}),g5({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Jg(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as E5}from"node:child_process";import{readFileSync as v5}from"node:fs";import{dirname as AS,join as S5}from"node:path";import{createHash as m5}from"node:crypto";var h5="project.name";function vS(e){let t=ks(e,h5)?.trim();return t===void 0||t===""?void 0:t}var y5=8,SS="project";function TS(e){let t=_5(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:b5(e.remoteUrl)??{name:k5(e.checkoutPath,t),source:"basename"},o=w5(t??Xg(e.checkoutPath));return{name:n.name,slug:`${R5(n.name)}-${o}`,hash:o,source:n.source}}function PS(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 b5(e){let t=PS(e);return t===void 0?void 0:{name:t,source:"remote"}}function k5(e,t){let r=t===void 0?"":ES(x5(t));if(r!=="")return r;let n=ES(Xg(e));return n===""?SS:n}function R5(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?SS:r}function w5(e){return m5("sha256").update(e).digest("hex").slice(0,y5)}function _5(e){let t=Xg(e??"");return t===""?void 0:t}function Xg(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function ES(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function x5(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var T5=2e3;function CS(e){return P5(e).name}function P5(e){let t=em(e),r=Zg(e,["rev-parse","--absolute-git-dir"])??Zg(e,["rev-parse","--git-common-dir"]),n=Zg(e,["remote","get-url","origin"]);return TS({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function em(e){let t=T_(e,S5(".red","config.yaml"));if(t==null)return{};let r;try{r=v5(t,"utf8")}catch{return{}}let n=vS(r),o=AS(AS(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function Zg(e,t){try{let r=E5("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:T5}).trim();return r===""?void 0:r}catch{return}}function qd(e){let t=em(e);return t.configText==null?{label:null}:{configText:t.configText,label:CS(e)}}var A5="plugins.dev.statusline",C5="dev.statusline";function O5(e){let t=[],r=a=>{for(let l of[A5,C5]){let d=`${l}.${a}`,c=ks(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 D5={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 Kd(e){let{values:t,positionals:r}=rn(e,D5),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 Vd(e={}){let t=e.configText==null?{config:{},warnings:[]}:O5(e.configText),r=e.flags??{};return{options:{...We,mode:r.mode??t.config.mode??We.mode,project:r.project!==void 0?r.project:e.project??We.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??We.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??We.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??We.maxWidth,verbose:r.verbose??t.config.verbose??We.verbose},warnings:t.warnings}}async function tm(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Kd(e),s=qd(t.cwd??process.cwd()),i=Vd({...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}
237
+ `);let a=t.paths??zt(),l=t.readDashboard??x_,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(ao):y.lines}}catch(y){let m=y instanceof Error?y.message:String(y);return f&&n(`redskilled dashboard: ${m}
238
+ `),{lines:[`redskilled unreachable \u2014 ${m}`]}}};if(!d){let g=await p({...u,...i.options.maxWidth==null?{}:{maxWidth:i.options.maxWidth}});return r(`${g.lines.join(`
238
239
  `)}
239
- `),0}return await(t.runTui??fS)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:b})=>{let h=Math.max(1,Math.min(i.options.maxWidth??g,g)),w=Math.max(1,f);return await p({...u,maxWidth:h,maxHeight:w,maxRows:Math.max(0,w-8),showDeathDetails:b},!1)}}),0}async function Kg(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Wd(e),s=Gd(t.cwd??process.cwd()),i=Hd({...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}
240
- `);let a;try{a=await p_(t.paths??Kt(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
241
- `),a=Yp({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
240
+ `),0}return await(t.runTui??xS)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:y})=>{let m=Math.max(1,Math.min(i.options.maxWidth??g,g)),w=Math.max(1,f);return await p({...u,maxWidth:m,maxHeight:w,maxRows:Math.max(0,w-8),showDeathDetails:y},!1)}}),0}async function rm(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Kd(e),s=qd(t.cwd??process.cwd()),i=Vd({...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}
241
+ `);let a;try{a=await __(t.paths??zt(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
242
+ `),a=of({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
242
243
  `)}
243
- `),0}var g5=`Usage: redskilled <command> [options]
244
+ `),0}var I5=`Usage: redskilled <command> [options]
244
245
 
245
246
  Commands:
246
247
  host-state (default) print the host's state as JSON
@@ -255,7 +256,7 @@ Commands:
255
256
 
256
257
  Run \`redskilled <command> --help\` for a command's own usage.
257
258
  \`--version\` (\`-v\`) prints the build stamp; both answer offline.
258
- `,m5={serve:`Usage: redskilled serve [options]
259
+ `,M5={serve:`Usage: redskilled serve [options]
259
260
 
260
261
  Runs the daemon in this process. Every path is a flag and none is derived
261
262
  (ADR 0130 rule 3); what is absent falls back to the session derivation.
@@ -349,20 +350,20 @@ same stamped-orphan reaper the daemon runs periodically; --report is the
349
350
  detection-only incident view and performs no adoption, signalling, or deletion.
350
351
 
351
352
  --report return counts only; signal and delete nothing
352
- `};function h5(e){return e==="--help"||e==="-h"||e==="help"}var y5={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)}},_S="REDSKILLED_HOST_TOKEN";function sa(){try{let t=f5("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function xS(e=process.env,t=sa){let r=(e[_S]??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 b5(e,t=process.env,r=sa,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...wS(e,t,r,n),armTransport:()=>wS(e,t,r,n)}}function k5(e,t=process.env,r=sa){let n=xS(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:yp({token:n.token,...o?{origin:o}:{}})}}function wS(e,t=process.env,r=sa,n){let o=xS(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${_S}, 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:Tk({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function R5(e){if(e[0]==="--version"||e[0]==="-v"){let o=Da("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
353
- `:`${Sh(o)}
354
- `),0}if(h5(e[0]))return process.stdout.write(g5),0;let{command:t,args:r}=Ch(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{},reap:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(m5[t]),0;if(t==="serve"){let{values:o}=rn(r,y5),s=await m_(oa()),i=h_({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=Ud($t(oa()),"state"),l=il({path:Ud(a,"github","spend.toonl")}),d=b5(o,process.env,sa,l),c=k5(o);await zh(a).catch(()=>{});let u=py({stateRoot:a});process.stderr.write(`${fy(u)}
355
- `);let p=ny({lanePath:qo(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g=I5(o),f;try{f=await e_({paths:g,idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??Da("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}})}catch(b){if(!(b instanceof Zt))throw b;return p.uninstall(),0}if(Yl())try{Ew({socketPath:g.socketPath,version:o["daemon-version"]??Da("redskilled").version})}catch{}for(let b of["SIGTERM","SIGINT"])process.once(b,()=>void f.stop({reason:"signal",signal:b}).catch(()=>{}));return await f.closed,p.phase("closed"),0}if(t==="stop")return await v5(r);if(t==="statusline")return await Kg(r);if(t==="dashboard")return await qg(r);if(t==="github-spend")return await _5(r);if(t==="unit")return await S5(r);if(t==="provision")return await P5(r);if(t==="reclaim")return await D5(r);if(t==="reap")return await O5(r);let n=await d_(Kt());return process.stdout.write(`${JSON.stringify(n,null,2)}
356
- `),0}var w5={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function _5(e,t={}){let{values:r}=rn(e,w5,{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:x5(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??il({path:Ud($t(t.homeDir??oa()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${ht({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})}
357
- `),0}function x5(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 E5={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function v5(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=rn(e,E5),o=await l_(t.paths??Kt(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${ht({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,contained:s.contained,survives:s.survives})),detail:o.detail})}
358
- `),o.running&&!o.stopped?1:0}async function S5(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??Kt(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(Pw(t.unitIO??{}),null,2)}
359
- `),0;if(o==="install"){let s=await Sw(Rw(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
360
- `),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await Tw(t.unitIO??{}),null,2)}
361
- `),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}var T5={"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 P5(e,t={}){let r=t.write??(g=>process.stdout.write(g)),{values:n}=rn(e,T5),o=t.paths??Kt(),s=t.homeDir??oa(),i=await Af({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await C_(s),l;if(!n.check&&!n["no-start"])try{await xf(o,t.client??{})}catch(g){l=g instanceof Error?g.message:String(g)}let d=await F_({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=jr(d.entry)?lo(d.entry,{homeDir:s}):void 0,u=n["install-unit"]&&c!=null?await L_({configHome:t.configHome??F5(),unit:M_({command:[c.command,...c.args].join(" "),socketPath:o.socketPath})}):void 0,p=D_(d);return r(`${ht({verdict:p.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},...u==null?{}:{unit:{path:u.path,status:u.status}},checks:p.rows.map(g=>({check:g.check,verdict:g.verdict,evidence:g.evidence})),fixes:p.findings.map(g=>({check:g.check,fix:g.fix}))})}
362
- `),p.verdict==="ok"?0:1}var A5={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}},C5={report:{kind:"boolean"}};async function O5(e,t={}){let{values:r}=rn(e,C5),n=await c_(t.paths??Kt(),{report:r.report===!0});return(t.write??(o=>process.stdout.write(o)))(`${ht({version:n.version,mode:n.mode,census:{...n.census},actions:{...n.actions}})}
363
- `),0}async function D5(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=rn(e,A5),o=await B_({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${ht({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]}))})}
364
- `),o.entries.some(s=>s.verdict==="failed")?1:0}function F5(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:Ud(oa(),".config")}function I5(e){let t=Kt();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 M5=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(M5){let e=process.argv.slice(2);R5(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
365
- `),process.exitCode=1})}export{_S as REDSKILLED_HOST_TOKEN_ENV,g5 as REDSKILLED_USAGE,wS as armRedskilledQueueTransport,xS as resolveRedskilledHostToken,k5 as resolveServeGithubBalance,b5 as resolveServeQueueDiscovery,qg as runDashboard,_5 as runGithubSpend,P5 as runProvision,O5 as runReap,D5 as runReclaim,R5 as runRedskilledCli,Kg as runStatusline,v5 as runStop,S5 as runUnit};
353
+ `};function L5(e){return e==="--help"||e==="-h"||e==="help"}var j5={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)}},DS="REDSKILLED_HOST_TOKEN";function ua(){try{let t=F5("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function FS(e=process.env,t=ua){let r=(e[DS]??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 $5(e,t=process.env,r=ua,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...OS(e,t,r,n),armTransport:()=>OS(e,t,r,n)}}function B5(e,t=process.env,r=ua){let n=FS(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:xp({token:n.token,...o?{origin:o}:{}})}}function OS(e,t=process.env,r=ua,n){let o=FS(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${DS}, 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:$k({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function N5(e){if(e[0]==="--version"||e[0]==="-v"){let o=$a("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
354
+ `:`${Lh(o)}
355
+ `),0}if(L5(e[0]))return process.stdout.write(I5),0;let{command:t,args:r}=Nh(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{},reap:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(M5[t]),0;if(t==="serve"){let{values:o}=rn(r,j5),s=await v_(ca()),i=S_({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=da(jt(ca()),"state"),l=pl({path:da(a,"github","spend.toonl")}),d=$5(o,process.env,ua,l),c=B5(o),u=c==null?null:{...c,store:Sp({path:da(a,"github","balance.toon")})};await oy(a).catch(()=>{});let p=_y({stateRoot:a});process.stderr.write(`${xy(p)}
356
+ `);let g=fy({lanePath:Vo(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),f=eW(o),y;try{y=await d_({paths:f,idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??$a("redskilled").version,deaths:p.attributions,queueDiscovery:d,...u==null?{}:{githubBalance:u},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}})}catch(m){if(!(m instanceof nr))throw m;return g.uninstall(),0}if(td())try{Fw({socketPath:f.socketPath,version:o["daemon-version"]??$a("redskilled").version})}catch{}for(let m of["SIGTERM","SIGINT"])process.once(m,()=>void y.stop({reason:"signal",signal:m}).catch(()=>{}));return await y.closed,g.phase("closed"),0}if(t==="stop")return await q5(r);if(t==="statusline")return await rm(r);if(t==="dashboard")return await tm(r);if(t==="github-spend")return await W5(r);if(t==="unit")return await K5(r);if(t==="provision")return await z5(r);if(t==="reclaim")return await X5(r);if(t==="reap")return await Q5(r);let n=await k_(zt());return process.stdout.write(`${JSON.stringify(n,null,2)}
357
+ `),0}var G5={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function W5(e,t={}){let{values:r}=rn(e,G5,{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:H5(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??pl({path:da(jt(t.homeDir??ca()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${tt({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})}
358
+ `),0}function H5(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 U5={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function q5(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=rn(e,U5),o=await b_(t.paths??zt(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${tt({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,contained:s.contained,survives:s.survives})),detail:o.detail})}
359
+ `),o.running&&!o.stopped?1:0}async function K5(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??zt(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(jw(t.unitIO??{}),null,2)}
360
+ `),0;if(o==="install"){let s=await Mw(Aw(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
361
+ `),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await Lw(t.unitIO??{}),null,2)}
362
+ `),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}var V5={"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 z5(e,t={}){let r=t.write??(g=>process.stdout.write(g)),{values:n}=rn(e,V5),o=t.paths??zt(),s=t.homeDir??ca(),i=await Bf({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await N_(s),l;if(!n.check&&!n["no-start"])try{await Ff(o,t.client??{})}catch(g){l=g instanceof Error?g.message:String(g)}let d=await H_({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=jr(d.entry)?uo(d.entry,{homeDir:s}):void 0,u=n["install-unit"]&&c!=null?await K_({configHome:t.configHome??Z5(),unit:q_({command:[c.command,...c.args].join(" "),socketPath:o.socketPath})}):void 0,p=W_(d);return r(`${tt({verdict:p.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},...u==null?{}:{unit:{path:u.path,status:u.status}},checks:p.rows.map(g=>({check:g.check,verdict:g.verdict,evidence:g.evidence})),fixes:p.findings.map(g=>({check:g.check,fix:g.fix}))})}
363
+ `),p.verdict==="ok"?0:1}var J5={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}},Y5={report:{kind:"boolean"}};async function Q5(e,t={}){let{values:r}=rn(e,Y5),n=await R_(t.paths??zt(),{report:r.report===!0});return(t.write??(o=>process.stdout.write(o)))(`${tt({version:n.version,mode:n.mode,census:{...n.census},actions:{...n.actions}})}
364
+ `),0}async function X5(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=rn(e,J5),o=await J_({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${tt({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]}))})}
365
+ `),o.entries.some(s=>s.verdict==="failed")?1:0}function Z5(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:da(ca(),".config")}function eW(e){let t=zt();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 tW=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(tW){let e=process.argv.slice(2);N5(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
366
+ `),process.exitCode=1})}export{DS as REDSKILLED_HOST_TOKEN_ENV,I5 as REDSKILLED_USAGE,OS as armRedskilledQueueTransport,FS as resolveRedskilledHostToken,B5 as resolveServeGithubBalance,$5 as resolveServeQueueDiscovery,tm as runDashboard,W5 as runGithubSpend,z5 as runProvision,Q5 as runReap,X5 as runReclaim,N5 as runRedskilledCli,rm as runStatusline,q5 as runStop,K5 as runUnit};
366
367
  /*! Bundled license information:
367
368
 
368
369
  content-type/dist/index.js: