@reddb-io/red-skills 3.12.3 → 3.12.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,71 +1,71 @@
1
1
  #!/usr/bin/env node
2
2
  import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
3
- var xx=Object.create;var Wl=Object.defineProperty;var Ex=Object.getOwnPropertyDescriptor;var vx=Object.getOwnPropertyNames;var Sx=Object.getPrototypeOf,Tx=Object.prototype.hasOwnProperty;var Px=(e,t)=>()=>(e&&(t=e(e=0)),t);var Ef=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ax=(e,t)=>{for(var r in t)Wl(e,r,{get:t[r],enumerable:!0})},Cx=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of vx(t))!Tx.call(e,o)&&o!==r&&Wl(e,o,{get:()=>t[o],enumerable:!(n=Ex(t,o))||n.enumerable});return e};var Hl=(e,t,r)=>(r=e!=null?xx(Sx(e)):{},Cx(t||!e||!e.__esModule?Wl(r,"default",{value:e,enumerable:!0}):r,e));var Xg={};Ax(Xg,{REDSKILLED_BIN_ENV:()=>Fd,REDSKILLED_BUNDLE_ASSET:()=>Er,REDSKILLED_ENTRY_UNRESOLVED:()=>ys,RedskilledDaemonEntryError:()=>ks,isRedskilledEntryPath:()=>Md,isResolvedRedskilledEntry:()=>vr,redskilledBundleCacheRoot:()=>na,redskilledServeArgv:()=>on,requireRedskilledEntry:()=>oa,resolveRedskilledEntry:()=>sn});import{existsSync as mS,readdirSync as bS}from"node:fs";import{homedir as yS}from"node:os";import{basename as Dd,dirname as Od,join as Kt,resolve as ra}from"node:path";function vr(e){return"command"in e}function on(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 na(e=process.env){return Qg(e)}function sn(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??mS,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[Fd];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Md(i))return a(ra(i),"caller-entry");let d=[];for(let[c,u]of _S(i,t.rootDir,r,t.listDir??vS))if(d.push(c),n(c))return a(c,u);return{diagnostic:ys,searched:d,...i?{callerEntry:ra(i)}:{}}}function oa(e={},t={}){let r=sn(e,t);if(vr(r))return r;throw new ks(r)}function Md(e){let t=Dd(e);return t===Er||Id.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:RS(ra(e))}function RS(e){let t=Od(e);for(let r=0;r<4;r++){if(Dd(t)==="redskilled")return!0;let n=Od(t);if(n===t)return!1;t=n}return!1}function*_S(e,t,r,n){if(e){let s=Od(ra(e));yield[Kt(s,Er),"caller-sibling-bundle"];let i=kS.exec(Dd(e));i&&(yield[Kt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Kt(s,"..","dist",Er),"caller-sibling-bundle"]}for(let s of wS){let i=r[s];i&&(yield[Kt(i,"dist",Er),"plugin-root-bundle"],yield[Kt(i,"..","..","dist",Er),"plugin-root-bundle"])}t&&(yield[Kt(t,"dist",Er),"repo-bundle"],yield[Kt(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[Kt(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=Qg(r);yield[Kt(o,Er),"bundle-cache"];for(let s of xS(o,n))yield[Kt(o,s),"bundle-cache"]}function Qg(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Kt(e.HOME||yS(),".cache");return Kt(t,"red-skills","bundles")}function xS(e,t){return t(e).filter(r=>Id.test(r)).sort((r,n)=>ES(Yg(n),Yg(r)))}function Yg(e){return Id.exec(e)?.[1]??""}function ES(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 vS(e){try{return bS(e)}catch{return[]}}var Er,ys,Fd,ks,kS,Id,wS,Ur=Px(()=>{"use strict";Er="redskilled.bundle.min.mjs",ys="redskilled-daemon-entry-unresolved",Fd="REDSKILLED_BIN";ks=class extends Error{code=ys;searched;callerEntry;constructor(t){super(`${ys}: no published ${Er} found to spawn the redskilled daemon from${t.callerEntry?` (caller entry: ${t.callerEntry}, which is NOT used as a fallback)`:""}
3
+ var Cx=Object.create;var Vl=Object.defineProperty;var Dx=Object.getOwnPropertyDescriptor;var Ox=Object.getOwnPropertyNames;var Fx=Object.getPrototypeOf,Ix=Object.prototype.hasOwnProperty;var Mx=(e,t)=>()=>(e&&(t=e(e=0)),t);var Cf=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Lx=(e,t)=>{for(var r in t)Vl(e,r,{get:t[r],enumerable:!0})},jx=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ox(t))!Ix.call(e,o)&&o!==r&&Vl(e,o,{get:()=>t[o],enumerable:!(n=Dx(t,o))||n.enumerable});return e};var zl=(e,t,r)=>(r=e!=null?Cx(Fx(e)):{},jx(t||!e||!e.__esModule?Vl(r,"default",{value:e,enumerable:!0}):r,e));var oh={};Lx(oh,{REDSKILLED_BIN_ENV:()=>Bd,REDSKILLED_BUNDLE_ASSET:()=>Tr,REDSKILLED_ENTRY_UNRESOLVED:()=>vs,RedskilledDaemonEntryError:()=>Ss,isRedskilledEntryPath:()=>Nd,isResolvedRedskilledEntry:()=>Pr,redskilledBundleCacheRoot:()=>aa,redskilledServeArgv:()=>cn,requireRedskilledEntry:()=>la,resolveRedskilledEntry:()=>un});import{existsSync as xS,readdirSync as ES}from"node:fs";import{homedir as vS}from"node:os";import{basename as jd,dirname as Ld,join as Vt,resolve as ia}from"node:path";function Pr(e){return"command"in e}function cn(e,t={}){let r=["serve","--socket",e.socketPath,"--lease",e.leasePath,"--events",e.eventLanePath,"--session-key-hash",e.sessionKeyHash,"--machine-id-hash",e.machineIdHash,"--machine-claim",e.machineClaimPath];return t.idleMs!=null&&r.push("--idle-ms",String(t.idleMs)),t.daemonVersion!=null&&r.push("--daemon-version",t.daemonVersion),r}function aa(e=process.env){return nh(e)}function un(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??xS,o=t.execPath??process.execPath,s=t.execArgv??[],i=t.callerEntry===void 0?process.argv[1]:t.callerEntry,a=(c,u)=>({command:o,args:[...s,c],source:u,entry:c}),l=r[Bd];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Nd(i))return a(ia(i),"caller-entry");let d=[];for(let[c,u]of AS(i,t.rootDir,r,t.listDir??OS))if(d.push(c),n(c))return a(c,u);return{diagnostic:vs,searched:d,...i?{callerEntry:ia(i)}:{}}}function la(e={},t={}){let r=un(e,t);if(Pr(r))return r;throw new Ss(r)}function Nd(e){let t=jd(e);return t===Tr||$d.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:PS(ia(e))}function PS(e){let t=Ld(e);for(let r=0;r<4;r++){if(jd(t)==="redskilled")return!0;let n=Ld(t);if(n===t)return!1;t=n}return!1}function*AS(e,t,r,n){if(e){let s=Ld(ia(e));yield[Vt(s,Tr),"caller-sibling-bundle"];let i=SS.exec(jd(e));i&&(yield[Vt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Vt(s,"..","dist",Tr),"caller-sibling-bundle"]}for(let s of TS){let i=r[s];i&&(yield[Vt(i,"dist",Tr),"plugin-root-bundle"],yield[Vt(i,"..","..","dist",Tr),"plugin-root-bundle"])}t&&(yield[Vt(t,"dist",Tr),"repo-bundle"],yield[Vt(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[Vt(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=nh(r);yield[Vt(o,Tr),"bundle-cache"];for(let s of CS(o,n))yield[Vt(o,s),"bundle-cache"]}function nh(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vt(e.HOME||vS(),".cache");return Vt(t,"red-skills","bundles")}function CS(e,t){return t(e).filter(r=>$d.test(r)).sort((r,n)=>DS(rh(n),rh(r)))}function rh(e){return $d.exec(e)?.[1]??""}function DS(e,t){let r=s=>s.split(".").map(i=>Number.parseInt(i,10)),[n,o]=[r(e),r(t)];for(let s=0;s<Math.max(n.length,o.length);s++){let[i,a]=[n[s],o[s]];if(Number.isNaN(i)||i===void 0)return Number.isNaN(a)||a===void 0?e.localeCompare(t):-1;if(Number.isNaN(a)||a===void 0)return 1;if(i!==a)return i-a}return 0}function OS(e){try{return ES(e)}catch{return[]}}var Tr,vs,Bd,Ss,SS,$d,TS,zr=Mx(()=>{"use strict";Tr="redskilled.bundle.min.mjs",vs="redskilled-daemon-entry-unresolved",Bd="REDSKILLED_BIN";Ss=class extends Error{code=vs;searched;callerEntry;constructor(t){super(`${vs}: no published ${Tr} found to spawn the redskilled daemon from${t.callerEntry?` (caller entry: ${t.callerEntry}, which is NOT used as a fallback)`:""}
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)}};kS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Id=/^redskilled-(.+)\.bundle\.min\.mjs$/,wS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var cc=Ef((lc,dc)=>{(function(e,t){typeof lc=="object"&&typeof dc<"u"?dc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(lc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(Q){return Q&&Q.default||Q}var r=function(Q,C,w={}){var F,M,B;for(F in C)B=C[F],w[F]=(M=Q[F])!=null?M:B;return w},n=function(Q,C,w={}){var F,M;for(F in Q)M=Q[F],C[F]!==void 0&&(w[F]=M);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,F;for(C=this._first,F=[];C!=null;)F.push((w=C,C=C.next,w.value));return F}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,F,M,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(F=w.prev)!=null?F.value:void 0,next:(M=w.next)!=null?M.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,F)=>this._addListener(w,"many",F),this.instance.once=(w,F)=>this._addListener(w,"once",F),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,F){var M;return(M=this._events)[C]==null&&(M[C]=[]),this._events[C].push({cb:F,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var F,M;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),M=this._events[C].map(async B=>{var U,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(be){return U=be,this.trigger("error",U),null}}}),(await Promise.all(M)).find(function(B){return B!=null}))}catch(B){return F=B,this.trigger("error",F),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var F,M,B;for(B=[],w=F=1,M=C;1<=M?F<=M:F>=M;w=1<=M?++F:--F)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,F,M;for(w=0,F=C.length;w<F;w++)if(M=C[w],M.length>0)return M;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,k,b,v,T,$;T=10,b=5,$=o,k=f,v=class{constructor(C,w,F,M,B,U,X,be){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=U,this._states=X,this.Promise=be,this.options=$.load(F,M),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===M.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?b:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new k(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new k(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,F,M){var B,U,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),U={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",U);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(U),await M(this.options,U),this._assertStatus("DONE"),this._resolve(X)}catch(be){return B=be,this._onFailure(B,U,w,F,M)}}doExpire(C,w,F){var M,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},M=new k(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(M,B,C,w,F)}async _onFailure(C,w,F,M,B){var U,X;if(F())return U=await this.Events.trigger("failed",C,w),U!=null?(X=~~U,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,M(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=v,L,W,K;K=o,L=f,W=class{constructor(C,w,F){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),K.load(F,F,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,F,M,B,U;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:M,reservoir:U}=this.storeOptions,this._lastReservoirIncrease=B,F=M!=null?Math.min(w,M-U):w,F>0))return this.storeOptions.reservoir+=F,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,F){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),K.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,F){var M,B;return await this.yieldLoop(),M=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-M,0),this._nextRequest=M+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var F,M,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new L(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return M=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,M),F=this.strategyIsBlock()&&(B||this.isBlocked(M)),F&&(this._unblockTime=M+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:F,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var H=W,I,G;I=f,G=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,F;if(w=this._jobs[C],F=w+1,w!=null&&F<this.status.length)return this.counts[w]--,this.counts[F]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,F,M,B,U;if(C!=null){if(F=this.status.indexOf(C),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);M=this._jobs,B=[];for(w in M)U=M[w],U===F&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,F)=>(C[this.status[F]]=w,C),{})}};var V=G,ge,fe;ge=i,fe=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new ge}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,F,M,B,U,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:M}=this._queue.shift(),w=await async function(){try{return U=await X(...C),function(){return B(U)}}catch(be){return F=be,function(){return M(F)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var F,M,B;return B=M=null,F=new this.Promise(function(U,X){return B=U,M=X}),this._queue.push({task:C,args:w,resolve:B,reject:M}),this._tryToRun(),F}};var de=fe,te="2.19.5",me={version:te},Oe=Object.freeze({version:te,default:me}),ve=()=>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."),ie,Re,Ae,Ee,we,Se;Se=o,ie=l,Ee=ve,Ae=ke,we=J,Re=function(){class Q{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new ie(this),this.instances={},this.Bottleneck=Ce,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Ee(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ae(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var F;return(F=this.instances[w])!=null?F:(()=>{var M;return M=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",M,w),M})()}async deleteKey(w=""){var F,M;return M=this.instances[w],this.connection&&(F=await this.connection.__runCommand__(["del",...we.allKeys(`${this.id}-${w}`)])),M!=null&&(delete this.instances[w],await M.disconnect()),M!=null||F>0}limiters(){var w,F,M,B;F=this.instances,M=[];for(w in F)B=F[w],M.push({key:w,limiter:B});return M}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,F,M,B,U,X,be,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,F=9;w!==0;)for([je,M]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,be=M.length;B<be;B++)U=M[B],X.push(U.slice(Be,-F));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var F,M,B,U,X,be;X=Date.now(),B=this.instances,U=[];for(M in B){be=B[M];try{await be._store.__groupCheck__(X)?U.push(this.deleteKey(M)):U.push(void 0)}catch(je){F=je,U.push(be.Events.trigger("error",F))}}return U},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var F;if(!this.sharedConnection)return(F=this.connection)!=null?F.disconnect(w):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var ce=Re,oe,_e,Fe;Fe=o,_e=l,oe=function(){class Q{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new _e(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,F)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var F;return this._arr.push(w),F=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),F}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var at=oe,$t=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Xr=t(Oe),Zr,lo,le,Nt,ct,et,wt,lt,ut,Rt,_t,Br=[].splice;et=10,lo=5,_t=o,wt=p,Nt=D,ct=H,lt=$t,le=l,ut=V,Rt=de,Zr=function(){class Q{constructor(w={},...F){var M,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,F),_t.load(w,this.instanceDefaults,this),this._queues=new wt(et),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new le(this),this._submitLock=new Rt("submit",this.Promise),this._registerLock=new Rt("register",this.Promise),B=_t.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return M=_t.load(w,this.redisStoreDefaults,{}),new lt(this,B,M);if(this.datastore==="local")return M=_t.load(w,this.localStoreDefaults,{}),new ct(this,B,M);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var U;return(U=this._store.heartbeat)!=null&&typeof U.ref=="function"?U.ref():void 0}),this._queues.on("zero",()=>{var U;return(U=this._store.heartbeat)!=null&&typeof U.unref=="function"?U.unref():void 0})}_validateOptions(w,F){if(!(w!=null&&typeof w=="object"&&F.length===0))throw new Q.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,F,M,B){var U,X;try{if({running:X}=await this._store.__free__(w,M.weight),this.Events.trigger("debug",`Freed ${M.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(be){return U=be,this.Events.trigger("error",U)}}_run(w,F,M){var B,U,X;return F.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,F),U=this._free.bind(this,w,F),this._scheduled[w]={timeout:setTimeout(()=>F.doExecute(this._limiter,B,X,U),M),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire(B,X,U)},M+F.options.expiration):void 0,job:F}}_drainOne(w){return this._registerLock.schedule(()=>{var F,M,B,U,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:U,args:F}=B=X.first(),w!=null&&U.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${U.id}`,{args:F,options:U}),M=this._randomIndex(),this._store.__register__(M,U.weight,U.expiration).then(({success:be,wait:je,reservoir:Be})=>{var Zt;return this.Events.trigger("debug",`Drained ${U.id}`,{success:be,args:F,options:U}),be?(X.shift(),Zt=this.empty(),Zt&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",Zt),this._run(M,B,je),this.Promise.resolve(U.weight)):this.Promise.resolve(null)})))})}_drainAll(w,F=0){return this._drainOne(w).then(M=>{var B;return M!=null?(B=w!=null?w-M:w,this._drainAll(B,F+M)):this.Promise.resolve(F)}).catch(M=>this.Events.trigger("error",M))}_dropAllQueued(w){return this._queues.shiftAll(function(F){return F.doDrop({message:w})})}stop(w={}){var F,M;return w=_t.load(w,this.stopDefaults),M=B=>{var U;return U=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,be)=>U()?X():this.on("done",()=>{if(U())return this.removeAllListeners("done"),X()}))},F=w.dropWaitingJobs?(this._run=function(B,U){return U.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,U,X;U=this._scheduled;for(B in U)X=U[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),M(0)}))):this.schedule({priority:et-1,weight:0},()=>M(1)),this._receive=function(B){return B._reject(new Q.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),F}async _addToQueue(w){var F,M,B,U,X,be,je;({args:F,options:U}=w);try{({reachedHWM:X,blocked:M,strategy:je}=await this._store.__submit__(this.queued(),U.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${U.id}`,{args:F,options:U,error:B}),w.doDrop({error:B}),!1}return M?(w.doDrop(),!0):X&&(be=je===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(U.priority):je===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(U.priority+1):je===Q.prototype.strategy.OVERFLOW?w:void 0,be?.doDrop(),be==null||je===Q.prototype.strategy.OVERFLOW)?(be==null&&w.doDrop(),X):(w.doQueue(X,M),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var F,M,B,U,X,be,je;return typeof w[0]=="function"?(X=w,[M,...w]=X,[F]=Br.call(w,-1),U=_t.load({},this.jobDefaults)):(be=w,[U,M,...w]=be,[F]=Br.call(w,-1),U=_t.load(U,this.jobDefaults)),je=(...Be)=>new this.Promise(function(Zt,yr){return M(...Be,function(...Ve){return(Ve[0]!=null?yr:Zt)(Ve)})}),B=new Nt(je,w,U,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof F=="function"?F(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof F=="function"?F(...Be):void 0:typeof F=="function"?F(Be):void 0}),this._receive(B)}schedule(...w){var F,M,B;return typeof w[0]=="function"?([B,...w]=w,M={}):[M,B,...w]=w,F=new Nt(B,w,M,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(F),F.promise}wrap(w){var F,M;return F=this.schedule.bind(this),M=function(...B){return F(w.bind(this),...B)},M.withOptions=function(B,...U){return F(B,w,...U)},M}async updateSettings(w={}){return await this._store.__updateSettings__(_t.overwrite(w,this.storeDefaults)),_t.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return Q.default=Q,Q.Events=le,Q.version=Q.prototype.version=Xr.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=ce,Q.RedisConnection=Q.prototype.RedisConnection=ve,Q.IORedisConnection=Q.prototype.IORedisConnection=ke,Q.Batcher=Q.prototype.Batcher=at,Q.prototype.jobDefaults={priority:lo,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 Ce=Zr,Le=Ce;return Le})});var qm=Ef(ma=>{"use strict";Object.defineProperty(ma,"__esModule",{value:!0});ma.format=qP;ma.parse=KP;var WP=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Nm=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,HP=/[\\"]/g,UP=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Gm=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function qP(e){let{type:t,parameters:r}=e;if(!t||!UP.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!Nm.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${YP(r[o])}`}return n}function KP(e,t){let r=e.length,n=mc(e,0,r),o=n;n=hc(e,n,r);let s=bc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new Gm:JP(e,n,r);return{type:i,parameters:a}}var Wm=32,Hm=9,Um=59,VP=61,$m=34,zP=92;function JP(e,t,r){let n=new Gm;e:for(;t<r;){t=mc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Um)continue e;if(s===VP){let i=bc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=mc(e,t+1,r),t<r&&e.charCodeAt(t)===$m){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===$m){t=hc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===zP&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=hc(e,t,r),n[a]===void 0){let d=bc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function hc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Um;)t++;return t}function mc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Wm&&n!==Hm)break;t++}return t}function bc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Wm&&n!==Hm)break;r--}return r}function YP(e){if(Nm.test(e))return e;if(WP.test(e))return`"${e.replace(HP,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as Vj}from"node:child_process";import{homedir as Ti}from"node:os";import{join as Ml}from"node:path";var go=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},Cn=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function q(e,t){return new go(e,t)}function Te(e,t){return new Cn(e,t)}function ho(e){return e instanceof Cn?e:e instanceof go?new Cn(e.line,e.reason):new Cn(0,String(e&&e.message?e.message:e))}var vf=["type","kind","event"],On="|",Sf=new Set(["order","discriminator","rows","common"]);var ze=",";function Gi(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 wr(e){return q(e,"invalid quoted string")}function Ut(e,t){if(e==="")return"";if(e.startsWith('"'))return Af(e,t);if(e.includes('"'))throw wr(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:Ox(e)?Number(e):e}function tr(e,t){let r=e.trim();if(r.startsWith('"'))return[Af(r,t),!0];if(r.includes('"')||/\s/.test(r))throw q(t,"expected non-empty field name");return[r,!1]}var Tf=/["\\\u0000-\u0008\u000a-\u001f]/g;function Af(e,t){if(e.charCodeAt(0)!==34)throw wr(t);let r="",n=1;for(;n<e.length;){Tf.lastIndex=n;let o=Tf.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw wr(t)}if(o[0]!=="\\")throw wr(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 wr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw wr(t);r+=String.fromCharCode(a),n+=4;break}default:throw wr(t)}}throw wr(t)}function Cf(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 wr(r);t=o+2;continue}if(n===-1)throw wr(r);return n+1}}function rr(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=Cf(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function Et(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=Cf(e,o+1,r)}return-1}function Ox(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Dx(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Fx(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw q(0,"number is not representable in TOON");return String(e)}function Rr(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function vt(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Fx(e);if(typeof e=="string")return Mx(e,t);throw q(0,"not a primitive")}function Ix(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return Ix(e)?e:Wi(e)}function Mx(e,t){return Ul(e,t)?Wi(e):e}function Ul(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||Dx(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var Pf=/["\\\u0000-\u001f]/g;function Wi(e){let t='"',r=0;Pf.lastIndex=0;let n;for(;(n=Pf.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 nr(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Of(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 Df(e,t){let r=[],n=!1;return Gi(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 q(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw q(i,"invalid indentation");let l=Math.floor(a/t.indent);_r(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function _r(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw q(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function us(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,_r(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function Mf(e){if(!nt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=Lx(n,1);if(o===void 0)return e;nr(t,r,o)}return t}function Lx(e,t){if(!nt(e)||!jx(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw mt(t);let s=Bx(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(nt))throw Lf(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Sf.has(u)){if(!Array.isArray(p)||!p.every(nt))throw mt(t);l.set(u,p)}if(l.size===0)throw mt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw ql(t);let f=d.get(u)??0,k=g[f];if(k===void 0)throw ql(t);return d.set(u,f+1),$x(n,u,a[p],k,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw ql(t);return c}function jx(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function Bx(e,t,r){if(!e.startsWith("cycle("))throw mt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw mt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw mt(r);let a=s.split(",").map(c=>Hx(c,r));if(a.some(c=>c===""))throw mt(r);let l=Wx(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw mt(r);if(d!==t)throw Lf(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function $x(e,t,r,n,o){let s={};nr(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw mt(o);nr(s,i,a)}for(let[i,a]of Object.entries(Nx(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw mt(o);nr(s,i,a)}return s}function Nx(e,t){let r={};for(let[n,o]of Object.entries(e))Gx(r,n.split("."),o,t);return Hi(r,t)}function Gx(e,t,r,n){if(t.some(s=>s===""))throw mt(n);let o=e;for(let s=0;s<t.length;s+=1){let i=t[s];if(s===t.length-1){o[i]=r;return}if(o[i]??={},o=o[i],!nt(o))throw mt(n)}}function Hi(e,t){return Array.isArray(e)?e.map(r=>Hi(r,t)):nt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw mt(t);return Hi(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Hi(n,t)])):e}function Wx(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw mt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw mt(t);return r}function Hx(e,t){try{return decodeURIComponent(e)}catch{throw mt(t)}}function Ff(e){return encodeURIComponent(e)}function mt(e){return q(e,"invalid cyclic array wire")}function Lf(e){return q(e,"cyclic array length mismatch")}function ql(e){return q(e,"cyclic array group length mismatch")}function jf(e){if(!nt(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=Ux(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)zx(n,o,s);return n.join("")}function Ux(e){if(!Array.isArray(e)||e.length===0||!e.every(nt))return;let t=qx(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=Kx(r);if(n===void 0)return;let o=Vx(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)&&!Kl(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=Yx(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 qx(e){return vf.find(t=>e.every(r=>typeof r[t]=="string"))}function Kx(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(Ff).join(","),s=`cycle(${r.map(Ff).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function Vx(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(!Jx(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>Rr(i[s])))break;r.push(s)}return r}function zx(e,t,r){e.push(ft(t),`:
9
- `),e.push(" order: ",vt(r.order.encoded,On),`
10
- `),e.push(" discriminator: ",vt(r.discriminator,On),`
6
+ `)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};SS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,$d=/^redskilled-(.+)\.bundle\.min\.mjs$/,TS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var hc=Cf((fc,gc)=>{(function(e,t){typeof fc=="object"&&typeof gc<"u"?gc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(fc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(Q){return Q&&Q.default||Q}var r=function(Q,C,w={}){var I,L,B;for(I in C)B=C[I],w[I]=(L=Q[I])!=null?L:B;return w},n=function(Q,C,w={}){var I,L;for(I in Q)L=Q[I],C[I]!==void 0&&(w[I]=L);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,I;for(C=this._first,I=[];C!=null;)I.push((w=C,C=C.next,w.value));return I}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,I,L,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(I=w.prev)!=null?I.value:void 0,next:(L=w.next)!=null?L.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,I)=>this._addListener(w,"many",I),this.instance.once=(w,I)=>this._addListener(w,"once",I),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,I){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:I,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var I,L;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),L=this._events[C].map(async B=>{var K,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(ye){return K=ye,this.trigger("error",K),null}}}),(await Promise.all(L)).find(function(B){return B!=null}))}catch(B){return I=B,this.trigger("error",I),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var I,L,B;for(B=[],w=I=1,L=C;1<=L?I<=L:I>=L;w=1<=L?++I:--I)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,I,L;for(w=0,I=C.length;w<I;w++)if(L=C[w],L.length>0)return L;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,h,R,T,$;T=10,h=5,$=o,y=f,R=class{constructor(C,w,I,L,B,K,X,ye){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=ye,this.options=$.load(I,L),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===L.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?h:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new y(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new y(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,I,L){var B,K,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),K={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",K);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(ye){return B=ye,this._onFailure(B,K,w,I,L)}}doExpire(C,w,I){var L,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,B,C,w,I)}async _onFailure(C,w,I,L,B){var K,X;if(I())return K=await this.Events.trigger("failed",C,w),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,L(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=R,M,N,U;U=o,M=f,N=class{constructor(C,w,I){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),U.load(I,I,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,I,L,B,K;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,I=L!=null?Math.min(w,L-K):w,I>0))return this.storeOptions.reservoir+=I,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,I){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),U.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,I){var L,B;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-L,0),this._nextRequest=L+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var I,L,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return L=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,L),I=this.strategyIsBlock()&&(B||this.isBlocked(L)),I&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:I,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,F,W;F=f,W=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,I;if(w=this._jobs[C],I=w+1,w!=null&&I<this.status.length)return this.counts[w]--,this.counts[I]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,I,L,B,K;if(C!=null){if(I=this.status.indexOf(C),I<0)throw new F(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(w in L)K=L[w],K===I&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,I)=>(C[this.status[I]]=w,C),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,I,L,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:L}=this._queue.shift(),w=await async function(){try{return K=await X(...C),function(){return B(K)}}catch(ye){return I=ye,function(){return L(I)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var I,L,B;return B=L=null,I=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:w,resolve:B,reject:L}),this._tryToRun(),I}};var se=ae,Z="2.19.5",pe={version:Z},Ae=Object.freeze({version:Z,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),we=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,_e,Ce,ve,Re,Se;Se=o,de=l,ve=Ee,Ce=we,Re=J,_e=function(){class Q{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=De,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ce(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var I;return(I=this.instances[w])!=null?I:(()=>{var L;return L=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",L,w),L})()}async deleteKey(w=""){var I,L;return L=this.instances[w],this.connection&&(I=await this.connection.__runCommand__(["del",...Re.allKeys(`${this.id}-${w}`)])),L!=null&&(delete this.instances[w],await L.disconnect()),L!=null||I>0}limiters(){var w,I,L,B;I=this.instances,L=[];for(w in I)B=I[w],L.push({key:w,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,I,L,B,K,X,ye,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,I=9;w!==0;)for([je,L]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,ye=L.length;B<ye;B++)K=L[B],X.push(K.slice(Be,-I));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var I,L,B,K,X,ye;X=Date.now(),B=this.instances,K=[];for(L in B){ye=B[L];try{await ye._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){I=je,K.push(ye.Events.trigger("error",I))}}return K},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var I;if(!this.sharedConnection)return(I=this.connection)!=null?I.disconnect(w):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var fe=_e,ie,xe,Fe;Fe=o,xe=l,ie=function(){class Q{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new xe(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,I)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var I;return this._arr.push(w),I=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),I}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var at=ie,Nt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),nn=t(Ae),on,mo,ue,Gt,ct,et,Rt,lt,ut,_t,xt,Wr=[].splice;et=10,mo=5,xt=o,Rt=p,Gt=D,ct=G,lt=Nt,ue=l,ut=q,_t=se,on=function(){class Q{constructor(w={},...I){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,I),xt.load(w,this.instanceDefaults,this),this._queues=new Rt(et),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ue(this),this._submitLock=new _t("submit",this.Promise),this._registerLock=new _t("register",this.Promise),B=xt.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=xt.load(w,this.redisStoreDefaults,{}),new lt(this,B,L);if(this.datastore==="local")return L=xt.load(w,this.localStoreDefaults,{}),new ct(this,B,L);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.ref=="function"?K.ref():void 0}),this._queues.on("zero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.unref=="function"?K.unref():void 0})}_validateOptions(w,I){if(!(w!=null&&typeof w=="object"&&I.length===0))throw new Q.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,I,L,B){var K,X;try{if({running:X}=await this._store.__free__(w,L.weight),this.Events.trigger("debug",`Freed ${L.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(ye){return K=ye,this.Events.trigger("error",K)}}_run(w,I,L){var B,K,X;return I.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,I),K=this._free.bind(this,w,I),this._scheduled[w]={timeout:setTimeout(()=>I.doExecute(this._limiter,B,X,K),L),expiration:I.options.expiration!=null?setTimeout(function(){return I.doExpire(B,X,K)},L+I.options.expiration):void 0,job:I}}_drainOne(w){return this._registerLock.schedule(()=>{var I,L,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:I}=B=X.first(),w!=null&&K.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:I,options:K}),L=this._randomIndex(),this._store.__register__(L,K.weight,K.expiration).then(({success:ye,wait:je,reservoir:Be})=>{var er;return this.Events.trigger("debug",`Drained ${K.id}`,{success:ye,args:I,options:K}),ye?(X.shift(),er=this.empty(),er&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",er),this._run(L,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(w,I=0){return this._drainOne(w).then(L=>{var B;return L!=null?(B=w!=null?w-L:w,this._drainAll(B,I+L)):this.Promise.resolve(I)}).catch(L=>this.Events.trigger("error",L))}_dropAllQueued(w){return this._queues.shiftAll(function(I){return I.doDrop({message:w})})}stop(w={}){var I,L;return w=xt.load(w,this.stopDefaults),L=B=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,ye)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},I=w.dropWaitingJobs?(this._run=function(B,K){return K.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,K,X;K=this._scheduled;for(B in K)X=K[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),L(0)}))):this.schedule({priority:et-1,weight:0},()=>L(1)),this._receive=function(B){return B._reject(new Q.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),I}async _addToQueue(w){var I,L,B,K,X,ye,je;({args:I,options:K}=w);try{({reachedHWM:X,blocked:L,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:I,options:K,error:B}),w.doDrop({error:B}),!1}return L?(w.doDrop(),!0):X&&(ye=je===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===Q.prototype.strategy.OVERFLOW?w:void 0,ye?.doDrop(),ye==null||je===Q.prototype.strategy.OVERFLOW)?(ye==null&&w.doDrop(),X):(w.doQueue(X,L),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var I,L,B,K,X,ye,je;return typeof w[0]=="function"?(X=w,[L,...w]=X,[I]=Wr.call(w,-1),K=xt.load({},this.jobDefaults)):(ye=w,[K,L,...w]=ye,[I]=Wr.call(w,-1),K=xt.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(er,Rr){return L(...Be,function(...Ve){return(Ve[0]!=null?Rr:er)(Ve)})}),B=new Gt(je,w,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof I=="function"?I(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof I=="function"?I(...Be):void 0:typeof I=="function"?I(Be):void 0}),this._receive(B)}schedule(...w){var I,L,B;return typeof w[0]=="function"?([B,...w]=w,L={}):[L,B,...w]=w,I=new Gt(B,w,L,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(I),I.promise}wrap(w){var I,L;return I=this.schedule.bind(this),L=function(...B){return I(w.bind(this),...B)},L.withOptions=function(B,...K){return I(B,w,...K)},L}async updateSettings(w={}){return await this._store.__updateSettings__(xt.overwrite(w,this.storeDefaults)),xt.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return Q.default=Q,Q.Events=ue,Q.version=Q.prototype.version=nn.version,Q.strategy=Q.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},Q.BottleneckError=Q.prototype.BottleneckError=f,Q.Group=Q.prototype.Group=fe,Q.RedisConnection=Q.prototype.RedisConnection=Ee,Q.IORedisConnection=Q.prototype.IORedisConnection=we,Q.Batcher=Q.prototype.Batcher=at,Q.prototype.jobDefaults={priority:mo,weight:1,expiration:null,id:"<no-id>"},Q.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Q.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},Q.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},Q.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},Q.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},Q.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},Q}.call(e);var De=on,Le=De;return Le})});var Qm=Cf(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.format=XP;wa.parse=ZP;var JP=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Km=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,YP=/[\\"]/g,QP=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Vm=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function XP(e){let{type:t,parameters:r}=e;if(!t||!QP.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!Km.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${nA(r[o])}`}return n}function ZP(e,t){let r=e.length,n=Rc(e,0,r),o=n;n=wc(e,n,r);let s=_c(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new Vm:rA(e,n,r);return{type:i,parameters:a}}var zm=32,Jm=9,Ym=59,eA=61,qm=34,tA=92;function rA(e,t,r){let n=new Vm;e:for(;t<r;){t=Rc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Ym)continue e;if(s===eA){let i=_c(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Rc(e,t+1,r),t<r&&e.charCodeAt(t)===qm){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===qm){t=wc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===tA&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=wc(e,t,r),n[a]===void 0){let d=_c(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function wc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Ym;)t++;return t}function Rc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==zm&&n!==Jm)break;t++}return t}function _c(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==zm&&n!==Jm)break;r--}return r}function nA(e){if(Km.test(e))return e;if(JP.test(e))return`"${e.replace(YP,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as sB}from"node:child_process";import{homedir as Di}from"node:os";import{join as Nl}from"node:path";var Ro=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},Mn=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function V(e,t){return new Ro(e,t)}function Te(e,t){return new Mn(e,t)}function _o(e){return e instanceof Mn?e:e instanceof Ro?new Mn(e.line,e.reason):new Mn(0,String(e&&e.message?e.message:e))}var Df=["type","kind","event"],Ln="|",Of=new Set(["order","discriminator","rows","common"]);var ze=",";function qi(e){let t=e.split(`
7
+ `);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function xr(e){return V(e,"invalid quoted string")}function qt(e,t){if(e==="")return"";if(e.startsWith('"'))return Mf(e,t);if(e.includes('"'))throw xr(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:Bx(e)?Number(e):e}function rr(e,t){let r=e.trim();if(r.startsWith('"'))return[Mf(r,t),!0];if(r.includes('"')||/\s/.test(r))throw V(t,"expected non-empty field name");return[r,!1]}var Ff=/["\\\u0000-\u0008\u000a-\u001f]/g;function Mf(e,t){if(e.charCodeAt(0)!==34)throw xr(t);let r="",n=1;for(;n<e.length;){Ff.lastIndex=n;let o=Ff.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw xr(t)}if(o[0]!=="\\")throw xr(t);r+=e.slice(n,o.index);let s=e[o.index+1];switch(n=o.index+2,s){case'"':r+='"';break;case"\\":r+="\\";break;case"n":r+=`
8
+ `;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw xr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw xr(t);r+=String.fromCharCode(a),n+=4;break}default:throw xr(t)}}throw xr(t)}function Lf(e,t,r){for(;;){let n=e.indexOf('"',t),o=e.indexOf("\\",t);if(o!==-1&&(n===-1||o<n)){if(o===e.length-1)throw xr(r);t=o+2;continue}if(n===-1)throw xr(r);return n+1}}function nr(e,t,r){if(e==="")return[];let n=[],o=0,s=0;for(;s<e.length;){let i=e.indexOf('"',s),a=e.indexOf(t,s);if(a!==-1&&(i===-1||a<i))n.push(e.slice(o,a).trim()),o=a+1,s=a+1;else if(i!==-1)s=Lf(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function vt(e,t,r){let n=0;for(;n<e.length;){let o=e.indexOf('"',n),s=e.indexOf(t,n);if(s!==-1&&(o===-1||s<o))return s;if(o===-1)return-1;n=Lf(e,o+1,r)}return-1}function Bx(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function $x(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Nx(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw V(0,"number is not representable in TOON");return String(e)}function Er(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function St(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Nx(e);if(typeof e=="string")return Wx(e,t);throw V(0,"not a primitive")}function Gx(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return Gx(e)?e:Ki(e)}function Wx(e,t){return Jl(e,t)?Ki(e):e}function Jl(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||$x(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var If=/["\\\u0000-\u001f]/g;function Ki(e){let t='"',r=0;If.lastIndex=0;let n;for(;(n=If.exec(e))!==null;){let o=e.charCodeAt(n.index),s;o===34?s='\\"':o===92?s="\\\\":o===10?s="\\n":o===13?s="\\r":o===9?s="\\t":s=`\\u${o.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+s,r=n.index+1}return`${t}${e.slice(r)}"`}function or(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function jf(e={}){let t=e.maxDepth??1e3,r=t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t));return{indent:Math.max(1,e.indent??2),strict:e.strict??!0,expandPaths:e.expandPaths==="safe"||e.expandPaths===!0,cyclicDiscriminatedArrays:e.cyclicDiscriminatedArrays!==!1,maxDepth:r}}function Bf(e,t){let r=[],n=!1;return qi(e).forEach((o,s)=>{let i=s+1;if(o.trim()===""){n=!0;return}let a=o.length-o.replace(/^ +/,"").length;if(o[a]===" ")throw V(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw V(i,"invalid indentation");let l=Math.floor(a/t.indent);vr(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function vr(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw V(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function ys(e,t,r){if(r.maxDepth===0)return;let n=0,o=!1,s=!1;for(let i of e){if(s){s=!1;continue}if(o&&i==="\\"){s=!0;continue}if(i==='"'){o=!o;continue}o||(i==="{"?(n+=1,vr(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function Gf(e){if(!nt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=Hx(n,1);if(o===void 0)return e;or(t,r,o)}return t}function Hx(e,t){if(!nt(e)||!Ux(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw bt(t);let s=qx(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(nt))throw Wf(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Of.has(u)){if(!Array.isArray(p)||!p.every(nt))throw bt(t);l.set(u,p)}if(l.size===0)throw bt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw Yl(t);let f=d.get(u)??0,y=g[f];if(y===void 0)throw Yl(t);return d.set(u,f+1),Kx(n,u,a[p],y,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw Yl(t);return c}function Ux(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function qx(e,t,r){if(!e.startsWith("cycle("))throw bt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw bt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw bt(r);let a=s.split(",").map(c=>Yx(c,r));if(a.some(c=>c===""))throw bt(r);let l=Jx(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw bt(r);if(d!==t)throw Wf(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function Kx(e,t,r,n,o){let s={};or(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);or(s,i,a)}for(let[i,a]of Object.entries(Vx(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);or(s,i,a)}return s}function Vx(e,t){let r={};for(let[n,o]of Object.entries(e))zx(r,n.split("."),o,t);return Vi(r,t)}function zx(e,t,r,n){if(t.some(s=>s===""))throw bt(n);let o=e;for(let s=0;s<t.length;s+=1){let i=t[s];if(s===t.length-1){o[i]=r;return}if(o[i]??={},o=o[i],!nt(o))throw bt(n)}}function Vi(e,t){return Array.isArray(e)?e.map(r=>Vi(r,t)):nt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw bt(t);return Vi(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Vi(n,t)])):e}function Jx(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw bt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw bt(t);return r}function Yx(e,t){try{return decodeURIComponent(e)}catch{throw bt(t)}}function $f(e){return encodeURIComponent(e)}function bt(e){return V(e,"invalid cyclic array wire")}function Wf(e){return V(e,"cyclic array length mismatch")}function Yl(e){return V(e,"cyclic array group length mismatch")}function Hf(e){if(!nt(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=Qx(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)tE(n,o,s);return n.join("")}function Qx(e){if(!Array.isArray(e)||e.length===0||!e.every(nt))return;let t=Xx(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=Zx(r);if(n===void 0)return;let o=eE(e,t),s=new Map;for(let a of e){let l=a[t];s.has(l)||s.set(l,[]);let d={};for(let[c,u]of Object.entries(a))if(c!==t&&!o.includes(c)&&!Ql(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=nE(l);if(d===void 0||d.length===0)return;i.push({fields:d,label:a,rows:l})}return{common:o,commonRows:e.map(a=>Object.fromEntries(o.map(l=>[l,a[l]]))),discriminator:t,groups:i,order:n,rows:e}}function Xx(e){return Df.find(t=>e.every(r=>typeof r[t]=="string"))}function Zx(e){if(!(e.length<12))for(let t=2;t<=Math.min(8,Math.floor(e.length/3));t+=1){if(e.length%t!==0)continue;let r=e.slice(0,t);if(new Set(r).size<2||!e.every((i,a)=>i===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let o=e.map($f).join(","),s=`cycle(${r.map($f).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function eE(e,t){let r=[],n=Object.keys(e[0]),o=n.indexOf(t)+1;for(let s of n.slice(o).filter(i=>i!==t)){if(!rE(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>Er(i[s])))break;r.push(s)}return r}function tE(e,t,r){e.push(ft(t),`:
9
+ `),e.push(" order: ",St(r.order.encoded,Ln),`
10
+ `),e.push(" discriminator: ",St(r.discriminator,Ln),`
11
11
  `),e.push(" rows: ",String(r.rows.length),`
12
- `),r.common.length>0&&If(e,"common",r.common,r.commonRows);for(let n of r.groups)If(e,n.label,n.fields,n.rows)}function If(e,t,r,n){e.push(" ",ft(t),"[",String(n.length),On,"]{",r.map(ft).join(On),`}:
13
- `);for(let o of n)e.push(" ",r.map(s=>vt(o[s],On)).join(On),`
14
- `)}function Jx(e){return e!==""&&Vl(e)}function Kl(e,t,r,n=new Set){if(!Vl(t))return!1;if(Rr(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)=>Kl(s,`${t}.${i}`,r,n));return n.delete(e),o}if(nt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&Kl(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function Yx(e){let t=Object.keys(e[0]??{});if(e.every(r=>Qx(Object.keys(r),t)))return t.every(Vl)?t:void 0}function Qx(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Vl(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function mo(e,t){let r=e[t]??e[e.length-1];return q(r===void 0?1:r.number,"array length mismatch")}function Ui(e,t){if(t===-1)throw q(0,"array header missing colon");let r=e.slice(0,t),n=Et(r,"[",0);if(n===-1)throw q(0,"invalid array header");let o,s;try{[o,s]=tr(r.slice(0,n),0)}catch{throw q(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw q(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 q(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 q(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=Zx(p.slice(1,-1),u),g=Jl(f)}catch(k){throw q(0,k.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw q(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function Bf(e){let t=Et(e,"{",0);if(t===-1||!e.endsWith("}"))throw q(0,"invalid keyed map header");let r,n;try{[r,n]=tr(e.slice(0,t),0)}catch{throw q(0,"invalid keyed map header")}if(r===""&&!n)throw q(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=Xx(o,s,s)}catch(a){throw q(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function Xx(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 q(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]=tr(e.slice(u,o),0);if(p===""&&!g)throw q(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 q(0,"invalid array header");let k=e.slice(f,o);if(!$f(k,r))throw q(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:k})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw q(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 q(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw q(0,"invalid array header")}if(c===0)throw q(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 q(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(Nf(n[l].path,n[d].path)||ps(n[l].path,n[d].path)||ps(n[d].path,n[l].path))throw q(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw q(0,"duplicate key");a.add(c)}return n}function Zx(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return zl(e,ze,t);try{return zl(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return zl(e,ze,t);throw r}}function zl(e,t,r){let n=0;function o(l){let d=[];for(;n<e.length&&!(l&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw q(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]=tr(e.slice(c,n),0);if(u===""&&!p)throw q(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 q(0,"invalid array header");let k=e.slice(f,n);n+=1;let b=eE(k);if(b!==void 0){if(b.delimiter!==r)throw q(0,"invalid array header");g.fixedLength=b.len,g.fixedDelimiter=b.delimiter}else if($f(k,r))g.listDelimiter=k;else throw q(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw q(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw q(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw q(0,"invalid array header")}if(d.length===0)throw q(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 q(0,"invalid array header");let a=Jl(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Nf(a[l].path,a[d].path)||ps(a[l].path,a[d].path)||ps(a[d].path,a[l].path))throw q(0,"duplicate key");return i}function eE(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 Jl(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Jl(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function qi(e,t,r){return e.listDelimiter===void 0?Ut(t,r):rr(t,e.listDelimiter,r).map(n=>Ut(n,r))}function $f(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Nf(e,t){return e.length===t.length&&ps(e,t)}function ps(e,t){return t.every((r,n)=>e[n]===r)}function Ki(e,t){return q(t,e.reason??String(e.message))}function Ct(e,t){let r=Of(t),n=Df(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw q(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){us(o.content,o.number,r);let d;try{d=Ui(o.content,Et(o.content,":",o.number))}catch(c){if(r.strict)throw Ki(c,o.number);d=void 0}if(d!==void 0)return nE(d,n,r)}if(s&&Et(o.content,":",o.number)===-1)return Ut(o.content.trim(),o.number);let i={index:0},a=Ql(n,i,0,r),l=n[i.index];if(l!==void 0)throw q(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Mf(a):a}function Ql(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 q(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=tE(e,t,r,n);Vf(o,i,a,l,n,s.number)}return o}function tE(e,t,r,n){let o=e[t.index],s=o.content,i=Et(s,":",o.number);if(i===-1)throw q(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=Et(a,"[",o.number),c=Et(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){us(a,o.number,n);let f;try{f=Bf(a)}catch(b){if(n.strict)throw Ki(b,o.number);t.index+=1;let v=Yl(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:v}}if(l.trim()!=="")throw q(o.number,"expected keyed map rows");let k=rE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:k}}if(d!==-1){us(a,o.number,n);let f;try{f=Ui(a,i)}catch(b){if(n.strict)throw Ki(b,o.number);t.index+=1;let v=Yl(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:v}}if(f.key===""&&!f.keyQuoted)throw q(o.number,"expected non-empty field name");let k=Xl(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:k}}let[u,p]=tr(a,o.number);if(u===""&&!p)throw q(o.number,"expected non-empty field name");t.index+=1;let g=Yl(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function Yl(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return Ut(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?Ql(e,t,r+1,s):{}}function rE(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 q(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw q(i.number,"blank line inside keyed map");let a=Et(i.content,":",i.number);if(a===-1)throw q(i.number,"expected `key: value`");let[l,d]=tr(i.content.slice(0,a),i.number);if(l===""&&!d)throw q(i.number,"expected non-empty field name");let c=rr(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw q(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{yo(u,p.path,qi(p,c[g],i.number),o,i.number)}),Vf(s,l,d,u,o,i.number),r.index+=1}return s}function nE(e,t,r){let n=t[0],o=Et(n.content,":",n.number);if(o===-1)throw q(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=Xl(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw q(l.number,"expected end of document");return a}function Xl(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 q(i,"expected tabular rows");return oE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=rr(a,e.delimiter,i).map(d=>Ut(d,i));if(l.length!==e.len)throw q(i,"array length mismatch");return l}return uE(e,r,n,o+1,s)}function oE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&dE(e.fieldTree))return sE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw mo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw q(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw q(l.number,"blank line inside array");if(!bo(l.content,e.delimiter,l.number))break;let d=rr(l.content,e.delimiter,l.number);if(d.length!==t.length)throw q(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{yo(c,u.path,qi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw mo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&bo(a.content,e.delimiter,a.number))throw q(a.number,"array length mismatch");return i}function sE(e,t,r,n,o){return Gf(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function Gf(e,t,r,n,o,s,i,a){let l=[],d=Hf(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw mo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw q(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw q(u.number,"blank line inside array");if(!bo(u.content,r,u.number))break;let p=rr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Vi(t),childTableFields:d},f=Wf(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw q(u.number,"array row length mismatch");l.push(lE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw mo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&bo(c.content,r,c.number))throw q(c.number,"array length mismatch");return l}function Wf(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=iE(d,u,t,r,n,o,s,i,a);yo(l,[d.key],p,a,r)}),l}function iE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw q(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>Ut(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Vi(e.children),u=r[s.cellIndex],p=qf(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],k=f!==void 0&&f.depth===i,b=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(b===void 0?p!==void 0&&(k||r.length!==s.flatWidth&&g<c+cE(t)):b){if(p===void 0)throw q(n,"array row length mismatch");return s.cellIndex+=1,Gf(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return Wf(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw q(n,"array row length mismatch");return s.cellIndex+=1,qi(e,d,n)}function Hf(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=Uf(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 Uf(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||!bo(p.content,n,p.number))return;let g=rr(p.content,n,p.number),f=aE(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&&bo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function aE(e,t,r,n,o,s,i,a){let l=0,d=s,c=0;for(let u of e){if(u.fixedLength!==void 0)l+=u.fixedLength;else if(u.children!==void 0)if(t.has(u)){let p=qf(r[l]);if(p===void 0)return;l+=1;let g=Hf(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Uf(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Vi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function lE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function qf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function dE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Vi(e){return e.reduce((t,r)=>t+Kf(r),0)}function Kf(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Vi(e.children):1}function cE(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Kf(r),0)}function bo(e,t,r){let n=Et(e,":",r);if(n===-1)return!0;let o=Et(e,t,r);return o===-1?!1:o<n}function uE(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 mo(t,r.index);if(a.depth>n)throw q(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw q(a.number,"blank line inside array");s.push(pE(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw q(i.number,"array length mismatch");return s}function pE(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw q(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=Et(s,":",o.number);us(s,o.number,n);let a;try{a=Ui(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return Xl(a,l,e,t,r,n)}}if(Et(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 Ql(i,{index:0},r+1,n)}return t.index+=1,Ut(s,o.number)}function Vf(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(fE)){yo(e,i,n,o,s);return}}yo(e,[t],n,o,s)}function yo(e,t,r,n,o){_r(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 q(o,"duplicate key");nr(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw q(o,"path expansion conflict");nr(e,s,{})}else i||nr(e,s,{});yo(e[s],t.slice(1),r,n,o)}function fE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ze;if(![ze,"|"," "].includes(n))throw q(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=jf(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?rd(s,void 0,e,0,!1,o):nt(e)?zf(s,e,0,o):s.push(vt(e,n)),s.join("")}function ko(e,t){e.push(" ".repeat(t*2))}function zf(e,t,r,n){_r(r,0,n);for(let[o,s]of Object.entries(t))ko(e,r),ed(e,o,s,r,n)}function ed(e,t,r,n,o){if(_r(n,0,o),Array.isArray(r)){rd(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?hE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",nd(o.delimiter),s.fields.map(i=>id(i,o.delimiter)).join(o.delimiter),`}:
15
- `);for(let[i,a]of Object.entries(r)){ko(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>ad(sd(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
12
+ `),r.common.length>0&&Nf(e,"common",r.common,r.commonRows);for(let n of r.groups)Nf(e,n.label,n.fields,n.rows)}function Nf(e,t,r,n){e.push(" ",ft(t),"[",String(n.length),Ln,"]{",r.map(ft).join(Ln),`}:
13
+ `);for(let o of n)e.push(" ",r.map(s=>St(o[s],Ln)).join(Ln),`
14
+ `)}function rE(e){return e!==""&&Xl(e)}function Ql(e,t,r,n=new Set){if(!Xl(t))return!1;if(Er(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let o=e.every((s,i)=>Ql(s,`${t}.${i}`,r,n));return n.delete(e),o}if(nt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&Ql(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function nE(e){let t=Object.keys(e[0]??{});if(e.every(r=>oE(Object.keys(r),t)))return t.every(Xl)?t:void 0}function oE(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Xl(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function xo(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function zi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=vt(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=rr(r.slice(0,n),0)}catch{throw V(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw V(0,"invalid array header");let l=i.slice(0,a),d=/^[0-9]*/.exec(l)[0];if(d===""||d.length>1&&d.startsWith("0"))throw V(0,"invalid array header");let c=Number.parseInt(d,10),u;switch(l.slice(d.length)){case"":u=",";break;case" ":u=" ";break;case"|":u="|";break;default:throw V(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=iE(p.slice(1,-1),u),g=ed(f)}catch(y){throw V(0,y.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw V(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function Uf(e){let t=vt(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=rr(e.slice(0,t),0)}catch{throw V(0,"invalid keyed map header")}if(r===""&&!n)throw V(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=ze;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=sE(o,s,s)}catch(a){throw V(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function sE(e,t,r){let n=[],o=0;function s(l,d){let c=0;for(;o<e.length&&!(d&&e[o]==="}");){if(e[o]===t||e[o]==="}")throw V(0,"invalid array header");let u=o;for(;o<e.length;){let f=e[o];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;o+=1}let[p,g]=rr(e.slice(u,o),0);if(p===""&&!g)throw V(0,"invalid array header");if(c+=1,e[o]==="["){o+=1;let f=o;for(;o<e.length&&e[o]!=="]";)o+=1;if(o>=e.length)throw V(0,"invalid array header");let y=e.slice(f,o);if(!qf(y,r))throw V(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:y})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw V(0,"invalid array header");o+=1}else n.push({path:[...l,p],listDelimiter:void 0});if(e[o]===t){if(o+=1,o>=e.length||e[o]==="}")throw V(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw V(0,"invalid array header")}if(c===0)throw V(0,"invalid array header")}function i(){for(o+=1;o<e.length;){let l=e[o];if(o+=1,l==="\\")o+=1;else if(l==='"')return}}if(s([],!1),o!==e.length)throw V(0,"invalid array header");let a=new Set;for(let l=0;l<n.length;l+=1)for(let d=l+1;d<n.length;d+=1)if(Kf(n[l].path,n[d].path)||ks(n[l].path,n[d].path)||ks(n[d].path,n[l].path))throw V(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw V(0,"duplicate key");a.add(c)}return n}function iE(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return Zl(e,ze,t);try{return Zl(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return Zl(e,ze,t);throw r}}function Zl(e,t,r){let n=0;function o(l){let d=[];for(;n<e.length&&!(l&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw V(0,"invalid array header");let c=n;for(;n<e.length;){let f=e[n];if(f==='"'){s();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[u,p]=rr(e.slice(c,n),0);if(u===""&&!p)throw V(0,"invalid array header");let g={key:u};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw V(0,"invalid array header");let y=e.slice(f,n);n+=1;let h=aE(y);if(h!==void 0){if(h.delimiter!==r)throw V(0,"invalid array header");g.fixedLength=h.len,g.fixedDelimiter=h.delimiter}else if(qf(y,r))g.listDelimiter=y;else throw V(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw V(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw V(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw V(0,"invalid array header")}if(d.length===0)throw V(0,"invalid array header");return d}function s(){for(n+=1;n<e.length;){let l=e[n];if(n+=1,l==="\\")n+=1;else if(l==='"')return}}let i=o(!1);if(n!==e.length)throw V(0,"invalid array header");let a=ed(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Kf(a[l].path,a[d].path)||ks(a[l].path,a[d].path)||ks(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function aE(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=ze;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function ed(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?ed(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Ji(e,t,r){return e.listDelimiter===void 0?qt(t,r):nr(t,e.listDelimiter,r).map(n=>qt(n,r))}function qf(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Kf(e,t){return e.length===t.length&&ks(e,t)}function ks(e,t){return t.every((r,n)=>e[n]===r)}function Yi(e,t){return V(t,e.reason??String(e.message))}function Dt(e,t){let r=jf(t),n=Bf(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw V(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){ys(o.content,o.number,r);let d;try{d=zi(o.content,vt(o.content,":",o.number))}catch(c){if(r.strict)throw Yi(c,o.number);d=void 0}if(d!==void 0)return cE(d,n,r)}if(s&&vt(o.content,":",o.number)===-1)return qt(o.content.trim(),o.number);let i={index:0},a=rd(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Gf(a):a}function rd(e,t,r,n){let o={};for(;t.index<e.length;){let s=e[t.index];if(s.depth<r)break;if(s.depth>r)throw V(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=lE(e,t,r,n);Zf(o,i,a,l,n,s.number)}return o}function lE(e,t,r,n){let o=e[t.index],s=o.content,i=vt(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=vt(a,"[",o.number),c=vt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){ys(a,o.number,n);let f;try{f=Uf(a)}catch(h){if(n.strict)throw Yi(h,o.number);t.index+=1;let R=td(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(l.trim()!=="")throw V(o.number,"expected keyed map rows");let y=dE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:y}}if(d!==-1){ys(a,o.number,n);let f;try{f=zi(a,i)}catch(h){if(n.strict)throw Yi(h,o.number);t.index+=1;let R=td(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(f.key===""&&!f.keyQuoted)throw V(o.number,"expected non-empty field name");let y=nd(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=rr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=td(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function td(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return qt(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?rd(e,t,r+1,s):{}}function dE(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=vt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=rr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=nr(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw V(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{vo(u,p.path,Ji(p,c[g],i.number),o,i.number)}),Zf(s,l,d,u,o,i.number),r.index+=1}return s}function cE(e,t,r){let n=t[0],o=vt(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=nd(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return a}function nd(e,t,r,n,o,s){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw V(i,"expected tabular rows");return uE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=nr(a,e.delimiter,i).map(d=>qt(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return yE(e,r,n,o+1,s)}function uE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&mE(e.fieldTree))return pE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw xo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw V(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw V(l.number,"blank line inside array");if(!Eo(l.content,e.delimiter,l.number))break;let d=nr(l.content,e.delimiter,l.number);if(d.length!==t.length)throw V(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{vo(c,u.path,Ji(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw xo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&Eo(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function pE(e,t,r,n,o){return Vf(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function Vf(e,t,r,n,o,s,i,a){let l=[],d=Jf(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw xo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw V(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw V(u.number,"blank line inside array");if(!Eo(u.content,r,u.number))break;let p=nr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Qi(t),childTableFields:d},f=zf(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw V(u.number,"array row length mismatch");l.push(hE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw xo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&Eo(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function zf(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=fE(d,u,t,r,n,o,s,i,a);vo(l,[d.key],p,a,r)}),l}function fE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw V(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>qt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Qi(e.children),u=r[s.cellIndex],p=Qf(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],y=f!==void 0&&f.depth===i,h=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(h===void 0?p!==void 0&&(y||r.length!==s.flatWidth&&g<c+bE(t)):h){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Vf(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return zf(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Ji(e,d,n)}function Jf(e,t,r,n,o,s,i){let a=t.filter(c=>c.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let l,d=1<<a.length;for(let c=0;c<d;c+=1){let u=new Set;a.forEach((g,f)=>{c&1<<f&&u.add(g)});let p=Yf(e,t,u,r,n,o,s,i);p!==void 0&&(l===void 0||p.consumedChildRows>l.consumedChildRows||p.consumedChildRows===l.consumedChildRows&&u.size<l.childTableFields.size)&&(l={childTableFields:u,consumedChildRows:p.consumedChildRows})}return l?.childTableFields}function Yf(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u+=1){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!Eo(p.content,n,p.number))return;let g=nr(p.content,n,p.number),f=gE(t,r,g,n,o,l+1,i+1,a);if(f===void 0||o[f.nextIndex]?.depth>i)return;d+=f.consumedChildRows,l=f.nextIndex}let c=o[l];if(c!==void 0&&c.depth>=i&&Eo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function gE(e,t,r,n,o,s,i,a){let l=0,d=s,c=0;for(let u of e){if(u.fixedLength!==void 0)l+=u.fixedLength;else if(u.children!==void 0)if(t.has(u)){let p=Qf(r[l]);if(p===void 0)return;l+=1;let g=Jf(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Yf(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Qi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function hE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Qf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function mE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Qi(e){return e.reduce((t,r)=>t+Xf(r),0)}function Xf(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Qi(e.children):1}function bE(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Xf(r),0)}function Eo(e,t,r){let n=vt(e,":",r);if(n===-1)return!0;let o=vt(e,t,r);return o===-1?!1:o<n}function yE(e,t,r,n,o){let s=[];for(;s.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw xo(t,r.index);if(a.depth>n)throw V(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw V(a.number,"blank line inside array");s.push(kE(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw V(i.number,"array length mismatch");return s}function kE(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=vt(s,":",o.number);ys(s,o.number,n);let a;try{a=zi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return nd(a,l,e,t,r,n)}}if(vt(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return rd(i,{index:0},r+1,n)}return t.index+=1,qt(s,o.number)}function Zf(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(wE)){vo(e,i,n,o,s);return}}vo(e,[t],n,o,s)}function vo(e,t,r,n,o){vr(t.length-1,o,n);let s=t[0],i=Object.prototype.hasOwnProperty.call(e,s);if(t.length===1){if(i&&n.strict)throw V(o,"duplicate key");or(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw V(o,"path expansion conflict");or(e,s,{})}else i||or(e,s,{});vo(e[s],t.slice(1),r,n,o)}function wE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ze;if(![ze,"|"," "].includes(n))throw V(0,"invalid array header");let o={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(o.cyclicDiscriminatedArrays){let i=Hf(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?ad(s,void 0,e,0,!1,o):nt(e)?eg(s,e,0,o):s.push(St(e,n)),s.join("")}function So(e,t){e.push(" ".repeat(t*2))}function eg(e,t,r,n){vr(r,0,n);for(let[o,s]of Object.entries(t))So(e,r),sd(e,o,s,r,n)}function sd(e,t,r,n,o){if(vr(n,0,o),Array.isArray(r)){ad(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?_E(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",ld(o.delimiter),s.fields.map(i=>ud(i,o.delimiter)).join(o.delimiter),`}:
15
+ `);for(let[i,a]of Object.entries(r)){So(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>pd(cd(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
16
16
  `),e.push(...l)}return}e.push(ft(t),`:
17
- `),zf(e,r,n+1,o);return}e.push(ft(t),": ",vt(r,o.delimiter),`
18
- `)}function rd(e,t,r,n,o,s){if(_r(n,0,s),r.length===0){t!==void 0?e.push(ft(t),`: []
17
+ `),eg(e,r,n+1,o);return}e.push(ft(t),": ",St(r,o.delimiter),`
18
+ `)}function ad(e,t,r,n,o,s){if(vr(n,0,s),r.length===0){t!==void 0?e.push(ft(t),`: []
19
19
  `):o?e.push(`[0]:
20
20
  `):e.push(`[]
21
- `);return}if(r.every(Rr)){Zl(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>vt(a,s.delimiter)).join(s.delimiter)),e.push(`
22
- `);return}let i=o?void 0:Jf(r,s,n+1);if(i!==void 0){Zl(e,t,r.length,i.fields,s.delimiter),e.push(`
23
- `);for(let a of r){ko(e,n+1);let l=[];e.push(i.paths.map(d=>ad(sd(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
24
- `),e.push(...l)}return}Zl(e,t,r.length,void 0,s.delimiter),e.push(`
25
- `);for(let a of r)ko(e,n+1),gE(e,a,n+1,s)}function gE(e,t,r,n){if(_r(r,0,n),Array.isArray(t)){e.push("- "),rd(e,void 0,t,r,!0,n);return}if(nt(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
26
- `);return}e.push("- "),ed(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))ko(e,r+1),ed(e,s,i,r+1,n);return}e.push("- ",vt(t,n.delimiter),`
27
- `)}function Zl(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),nd(o),"]"),n!==void 0&&e.push("{",n.map(s=>id(s,o)).join(o),"}"),e.push(":")}function nd(e){return e===ze?"":e}function Jf(e,t,r){let n=mE(e,t);if(n!==void 0)return n;let o=td(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:od(o)}}function hE(e,t,r){let n=Object.values(e);if(!(n.length<2))return Jf(n,t,r)}function td(e,t,r){_r(r,0,t);let n=e[0]?.value;if(!nt(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!nt(s)||Object.keys(s).length!==o.length||o.some(a=>!Object.prototype.hasOwnProperty.call(s,a.key)))return;for(let s of o){let i=e.map(({value:l})=>({value:l[s.key]}));if(i.every(({value:l})=>Rr(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(Rr))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=Yf(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=td(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=td(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function mE(e,t){if(!t.objectArrayColumns)return;let r=Yf(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function Yf(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(Rr)))return{fixedLength:t}}function od(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}]:od(r.children,n)})}function sd(e,t){let r=e;for(let n of t)r=r[n];return r}function id(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${nd(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>id(r,t)).join(t)}}`}function ad(e,t,r,n,o,s){return t.childFields!==void 0?(bE(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>vt(i,r)).join(r):t.listDelimiter===void 0?vt(e,r):e.map(i=>yE(i,r,t.listDelimiter)).join(t.listDelimiter)}function bE(e,t,r,n,o){for(let s of t){ko(e,o);let i=[];e.push(od(r).map(a=>ad(sd(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
28
- `),e.push(...i)}}function yE(e,t,r){return typeof e!="string"?vt(e,t):Ul(e,t)||e.includes(r)?Wi(e):e}var og=[ze,"|"," "];var sg=8,ig=/^[A-Za-z0-9_-]+$/,p$=new TextEncoder,f$=new TextDecoder;function _E(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Te(t,"invalid trailer count");return Number.parseInt(r,10)}function ag(e,t){if(!ig.test(e))throw Te(t,"invalid tag")}function xE(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!ig.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Te(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function EE(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Te(t,"invalid header");let o=r.slice(0,n),s=o.startsWith("~"),i=s?o.slice(1):o;if(!s&&i.startsWith("="))return null;if(!og.includes(i)&&i!=="")throw Te(t,"invalid header delimiter");let a=i===""?ze:i,l=r.slice(n+1),d=null;if(!s&&l.startsWith("<")){let p=l.indexOf(">");if(p===-1)throw Te(t,"invalid tag");if(d=l.slice(1,p),ag(d,t),i!=="")throw Te(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Te(t,"invalid header");let c=l.slice(1,-2),u;try{u=rr(c,a,t).map(p=>tr(p,t)[0])}catch(p){throw ho(p)}if(u.length===0||u.some(p=>p===""))throw Te(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function vE(e,t,r){if(e===null||e.delimiter===void 0)throw Te(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Te(r,"continuation header mismatch")}function Qf(e,t,r,n){let o;try{o=rr(e,t,n)}catch(s){throw ho(s)}if(o.length!==r)throw Te(n,"row arity mismatch");for(let s of o)try{Ut(s,n)}catch(i){throw ho(i)}return o}function SE(e,t,r){let n={};return e.forEach((o,s)=>{try{nr(n,o,Ut(t[s],r))}catch(i){throw ho(i)}}),n}function TE(e,t,r){if(e.startsWith("- "))throw Te(t,"reserved line prefix");let n=_E(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Te(t,"trailer without header");if(r.rowCount!==n)throw Te(t,"trailer count mismatch");return{kind:"trailer"}}let o=EE(e,t);if(o!==null)return o.continuation?(vE(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=xE(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Te(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:Qf(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Te(t,"row before header");return{kind:"row",cells:Qf(e,r.delimiter,r.fields.length,t)}}function PE(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let k=s.at(-1);if(k!==void 0&&k.lane===g.lane&&k.delimiter===g.delimiter&&k.fieldText===g.fieldText){k.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,k){let b=n.get(g);if(b===void 0){if(n.size>=sg)throw Te(k,"too many tagged lanes");b={segments:[],current:null},n.set(g,b),r.push(g)}else b.current!==null&&b.segments.push(b.current);b.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},b.delimiter=f.delimiter,b.fields=f.fields,b.fieldText=f.fieldText}if(Gi(e).forEach((g,f)=>{let k=f+1;if(g==="")return;let b=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},v=TE(g,k,b);if(v.kind==="trailer"){c(),i=null;return}if(v.kind!=="continuation"){if(v.kind==="tag-header"){l=!0,u(v.header.tag,v.header,k);return}if(v.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:v.header.delimiter,fields:v.header.fields,fieldText:v.header.fieldText,rows:[]};return}if(v.kind==="tagged-row"){l=!0;let T=n.get(v.tag).current;T.rows.push(v.cells),d(T,v.cells);return}if(i===null)throw Te(k,"row before header");i.rows.push(v.cells),d(i,v.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 xr(e){return PE(e).flatMap(t=>t.rows.map(r=>SE(t.fields,r,0)))}function AE(e){if(!og.includes(e))throw Te(0,"invalid header delimiter")}function Xf(e,t,r=!1){return`[${`${r?"~":""}${e===ze?"":e}`}]{${t}}:
29
- `}function Zf(e,t){return`[]<${e}>{${t}}:
30
- `}function ld(e,t){return t.map(ft).join(e)}function CE(e){if(!Array.isArray(e)||e.length===0)throw Te(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=tr(String(t),0)}catch(n){throw ho(n)}if(r==="")throw Te(0,"TOONL header requires fields");return r})}function eg(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function tg(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Te(0,"TOONL continuation cadence must be positive")}function OE(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function rg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Te(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Te(0,"TOONL output requires object rows");if(t.some(r=>!Rr(e[r])))throw Te(0,"TOONL rows must be flat objects");return t}function DE(e){return JSON.stringify([...e].sort())}function ng(e,t){let r=DE(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Mt({delimiter:e=ze,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){AE(e),tg(r),tg(n);let o=null,s="",i=new Map,a=0,l=0,d=0,c=new Map,u=!1,p={continuationEveryRows:r,continuationEveryBytes:n},g=()=>o===null||!t?"":`[=${a}]
31
- `,f=()=>OE(p,l,d)?(l=0,d=0,Xf(e,s,!0)):"",k=b=>{ag(b,0);let v=c.get(b);if(v===void 0){if(c.size>=sg)throw Te(0,"too many tagged lanes");v={fields:null,fieldsByShape:new Map},c.set(b,v)}return v};return{push(b){if(u)throw Te(0,"TOONL encoder is closed");let v=ng(rg(b),i),T="";(o===null||o.length!==v.length||o.some((L,W)=>L!==v[W]))&&(T+=g(),o=v,s=ld(e,o),a=0,l=0,d=0,T+=Xf(e,s));let $=o.map(L=>vt(b[L],e));T+=f();let D=`${$.join(e)}
32
- `;return T+=D,a+=1,l+=1,d+=D.length,T},declareLane(b,v){if(u)throw Te(0,"TOONL encoder is closed");let T=CE(v),$=ld(ze,T),D=k(b);return eg(D.fields,T)?"":(D.fields=T,Zf(b,$))},pushTagged(b,v){if(u)throw Te(0,"TOONL encoder is closed");let T=k(b),$=ng(rg(v),T.fieldsByShape),D=ld(ze,$),L=$.map(K=>vt(v[K],ze)),W="";return eg(T.fields,$)||(T.fields=$,W+=Zf(b,D)),`${W}${b}:${L.join(ze)}
33
- `},end(){return u?"":(u=!0,g())}}}function dd(e){let t={app:e,version:FE(wo("__RED_BUILD_VERSION__",()=>"3.12.3")??"0.0.0-dev"),gitSha:wo("__RED_BUILD_GIT_SHA__",()=>"94bf8257e75f03fd433bceffc1b9a3a24e4a8add")??"unknown",buildTime:wo("__RED_BUILD_TIME__",()=>"2026-08-07T17:19:20-03:00")??"unknown",bundleAsset:wo("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=wo("__REDDB_SDK_VERSION__",()=>""),n=wo("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function FE(e){return e.startsWith("v")?e.slice(1):e}function lg(e){return`${e.app} ${e.version} ${e.gitSha}`}function wo(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var dg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},IE=/^[a-z][a-z0-9+.-]*:\/\//i;function ME(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 LE(e=dg){return Object.entries(e).map(([t,r])=>ME(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function jE(e){return/^-\d+(\.\d+)?$/.test(e)}function fs(e){return!(!e||e.startsWith("-")&&!jE(e))}function zi(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 cg(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=>cg(r.trim())):e}function Dn(e,t){switch(t){case"boolean":return BE(e);case"number":return $E(e);case"array":return e.split(",").map(r=>zi(r.trim()));case"string":default:return e}}function BE(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function $E(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 rn(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function NE(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Me(e,t){return{type:e,value:t}}function GE(e){let t=[],r=HE(e);if(t.push(Me("section-header","Usage:"),Me("text"," "),Me("usage-text",r),Me("newline",`
21
+ `);return}if(r.every(Er)){od(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>St(a,s.delimiter)).join(s.delimiter)),e.push(`
22
+ `);return}let i=o?void 0:tg(r,s,n+1);if(i!==void 0){od(e,t,r.length,i.fields,s.delimiter),e.push(`
23
+ `);for(let a of r){So(e,n+1);let l=[];e.push(i.paths.map(d=>pd(cd(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
24
+ `),e.push(...l)}return}od(e,t,r.length,void 0,s.delimiter),e.push(`
25
+ `);for(let a of r)So(e,n+1),RE(e,a,n+1,s)}function RE(e,t,r,n){if(vr(r,0,n),Array.isArray(t)){e.push("- "),ad(e,void 0,t,r,!0,n);return}if(nt(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
26
+ `);return}e.push("- "),sd(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))So(e,r+1),sd(e,s,i,r+1,n);return}e.push("- ",St(t,n.delimiter),`
27
+ `)}function od(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),ld(o),"]"),n!==void 0&&e.push("{",n.map(s=>ud(s,o)).join(o),"}"),e.push(":")}function ld(e){return e===ze?"":e}function tg(e,t,r){let n=xE(e,t);if(n!==void 0)return n;let o=id(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:dd(o)}}function _E(e,t,r){let n=Object.values(e);if(!(n.length<2))return tg(n,t,r)}function id(e,t,r){vr(r,0,t);let n=e[0]?.value;if(!nt(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!nt(s)||Object.keys(s).length!==o.length||o.some(a=>!Object.prototype.hasOwnProperty.call(s,a.key)))return;for(let s of o){let i=e.map(({value:l})=>({value:l[s.key]}));if(i.every(({value:l})=>Er(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(Er))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=rg(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=id(i.flatMap(({value:c})=>c.map(u=>({value:u}))),t,r+1);if(d!==void 0){s.children=d,s.childTable=!0;continue}}if(!t.nestedTabularHeaders)return;let a=id(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function xE(e,t){if(!t.objectArrayColumns)return;let r=rg(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function rg(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(Er)))return{fixedLength:t}}function dd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.childTable===!0?[{path:n,childFields:r.children}]:r.fixedLength!==void 0?[{path:n,fixedLength:r.fixedLength}]:r.children===void 0?[{path:n,listDelimiter:r.listDelimiter}]:dd(r.children,n)})}function cd(e,t){let r=e;for(let n of t)r=r[n];return r}function ud(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${ld(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>ud(r,t)).join(t)}}`}function pd(e,t,r,n,o,s){return t.childFields!==void 0?(EE(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>St(i,r)).join(r):t.listDelimiter===void 0?St(e,r):e.map(i=>vE(i,r,t.listDelimiter)).join(t.listDelimiter)}function EE(e,t,r,n,o){for(let s of t){So(e,o);let i=[];e.push(dd(r).map(a=>pd(cd(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
28
+ `),e.push(...i)}}function vE(e,t,r){return typeof e!="string"?St(e,t):Jl(e,t)||e.includes(r)?Ki(e):e}var cg=[ze,"|"," "];var ug=8,pg=/^[A-Za-z0-9_-]+$/,E$=new TextEncoder,v$=new TextDecoder;function AE(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Te(t,"invalid trailer count");return Number.parseInt(r,10)}function fg(e,t){if(!pg.test(e))throw Te(t,"invalid tag")}function CE(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!pg.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Te(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function DE(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Te(t,"invalid header");let o=r.slice(0,n),s=o.startsWith("~"),i=s?o.slice(1):o;if(!s&&i.startsWith("="))return null;if(!cg.includes(i)&&i!=="")throw Te(t,"invalid header delimiter");let a=i===""?ze:i,l=r.slice(n+1),d=null;if(!s&&l.startsWith("<")){let p=l.indexOf(">");if(p===-1)throw Te(t,"invalid tag");if(d=l.slice(1,p),fg(d,t),i!=="")throw Te(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Te(t,"invalid header");let c=l.slice(1,-2),u;try{u=nr(c,a,t).map(p=>rr(p,t)[0])}catch(p){throw _o(p)}if(u.length===0||u.some(p=>p===""))throw Te(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function OE(e,t,r){if(e===null||e.delimiter===void 0)throw Te(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Te(r,"continuation header mismatch")}function ng(e,t,r,n){let o;try{o=nr(e,t,n)}catch(s){throw _o(s)}if(o.length!==r)throw Te(n,"row arity mismatch");for(let s of o)try{qt(s,n)}catch(i){throw _o(i)}return o}function FE(e,t,r){let n={};return e.forEach((o,s)=>{try{or(n,o,qt(t[s],r))}catch(i){throw _o(i)}}),n}function IE(e,t,r){if(e.startsWith("- "))throw Te(t,"reserved line prefix");let n=AE(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Te(t,"trailer without header");if(r.rowCount!==n)throw Te(t,"trailer count mismatch");return{kind:"trailer"}}let o=DE(e,t);if(o!==null)return o.continuation?(OE(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=CE(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Te(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:ng(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Te(t,"row before header");return{kind:"row",cells:ng(e,r.delimiter,r.fields.length,t)}}function ME(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let y=s.at(-1);if(y!==void 0&&y.lane===g.lane&&y.delimiter===g.delimiter&&y.fieldText===g.fieldText){y.rows.push(f);return}s.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function c(){i!==null&&o.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function u(g,f,y){let h=n.get(g);if(h===void 0){if(n.size>=ug)throw Te(y,"too many tagged lanes");h={segments:[],current:null},n.set(g,h),r.push(g)}else h.current!==null&&h.segments.push(h.current);h.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},h.delimiter=f.delimiter,h.fields=f.fields,h.fieldText=f.fieldText}if(qi(e).forEach((g,f)=>{let y=f+1;if(g==="")return;let h=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},R=IE(g,y,h);if(R.kind==="trailer"){c(),i=null;return}if(R.kind!=="continuation"){if(R.kind==="tag-header"){l=!0,u(R.header.tag,R.header,y);return}if(R.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:R.header.delimiter,fields:R.header.fields,fieldText:R.header.fieldText,rows:[]};return}if(R.kind==="tagged-row"){l=!0;let T=n.get(R.tag).current;T.rows.push(R.cells),d(T,R.cells);return}if(i===null)throw Te(y,"row before header");i.rows.push(R.cells),d(i,R.cells)}}),!l)return c(),t.preserveInterleaving===!0,o;let p=[];c();for(let g of r){if(g===null){p.push(...o);continue}let f=n.get(g);p.push(...f.segments),f.current!==null&&p.push(f.current)}return t.preserveInterleaving===!0?s:p}function Sr(e){return ME(e).flatMap(t=>t.rows.map(r=>FE(t.fields,r,0)))}function LE(e){if(!cg.includes(e))throw Te(0,"invalid header delimiter")}function og(e,t,r=!1){return`[${`${r?"~":""}${e===ze?"":e}`}]{${t}}:
29
+ `}function sg(e,t){return`[]<${e}>{${t}}:
30
+ `}function fd(e,t){return t.map(ft).join(e)}function jE(e){if(!Array.isArray(e)||e.length===0)throw Te(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=rr(String(t),0)}catch(n){throw _o(n)}if(r==="")throw Te(0,"TOONL header requires fields");return r})}function ig(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function ag(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Te(0,"TOONL continuation cadence must be positive")}function BE(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function lg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Te(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Te(0,"TOONL output requires object rows");if(t.some(r=>!Er(e[r])))throw Te(0,"TOONL rows must be flat objects");return t}function $E(e){return JSON.stringify([...e].sort())}function dg(e,t){let r=$E(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Lt({delimiter:e=ze,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){LE(e),ag(r),ag(n);let o=null,s="",i=new Map,a=0,l=0,d=0,c=new Map,u=!1,p={continuationEveryRows:r,continuationEveryBytes:n},g=()=>o===null||!t?"":`[=${a}]
31
+ `,f=()=>BE(p,l,d)?(l=0,d=0,og(e,s,!0)):"",y=h=>{fg(h,0);let R=c.get(h);if(R===void 0){if(c.size>=ug)throw Te(0,"too many tagged lanes");R={fields:null,fieldsByShape:new Map},c.set(h,R)}return R};return{push(h){if(u)throw Te(0,"TOONL encoder is closed");let R=dg(lg(h),i),T="";(o===null||o.length!==R.length||o.some((M,N)=>M!==R[N]))&&(T+=g(),o=R,s=fd(e,o),a=0,l=0,d=0,T+=og(e,s));let $=o.map(M=>St(h[M],e));T+=f();let D=`${$.join(e)}
32
+ `;return T+=D,a+=1,l+=1,d+=D.length,T},declareLane(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=jE(R),$=fd(ze,T),D=y(h);return ig(D.fields,T)?"":(D.fields=T,sg(h,$))},pushTagged(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=y(h),$=dg(lg(R),T.fieldsByShape),D=fd(ze,$),M=$.map(U=>St(R[U],ze)),N="";return ig(T.fields,$)||(T.fields=$,N+=sg(h,D)),`${N}${h}:${M.join(ze)}
33
+ `},end(){return u?"":(u=!0,g())}}}function gd(e){let t={app:e,version:NE(To("__RED_BUILD_VERSION__",()=>"3.12.5")??"0.0.0-dev"),gitSha:To("__RED_BUILD_GIT_SHA__",()=>"d560e20c2fa0cc625d2c2bc0643a6a468221a433")??"unknown",buildTime:To("__RED_BUILD_TIME__",()=>"2026-08-07T23:18:42-03:00")??"unknown",bundleAsset:To("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=To("__REDDB_SDK_VERSION__",()=>""),n=To("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function NE(e){return e.startsWith("v")?e.slice(1):e}function gg(e){return`${e.app} ${e.version} ${e.gitSha}`}function To(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var hg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},GE=/^[a-z][a-z0-9+.-]*:\/\//i;function WE(e,t){return typeof t=="string"?{separator:e,to:t,typed:!1,prefix:!1}:{separator:e,to:t.to,typed:t.typed??!1,prefix:t.prefix??!1}}function HE(e=hg){return Object.entries(e).map(([t,r])=>WE(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function UE(e){return/^-\d+(\.\d+)?$/.test(e)}function ws(e){return!(!e||e.startsWith("-")&&!UE(e))}function Xi(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function mg(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(e.startsWith("[")&&e.endsWith("]")||e.startsWith("{")&&e.endsWith("}"))try{return JSON.parse(e)}catch{}let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e.includes(",")?e.split(",").map(r=>mg(r.trim())):e}function jn(e,t){switch(t){case"boolean":return qE(e);case"number":return KE(e);case"array":return e.split(",").map(r=>Xi(r.trim()));case"string":default:return e}}function qE(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function KE(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function ln(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function VE(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Me(e,t){return{type:e,value:t}}function zE(e){let t=[],r=YE(e);if(t.push(Me("section-header","Usage:"),Me("text"," "),Me("usage-text",r),Me("newline",`
34
34
  `),Me("newline",`
35
35
  `)),e.positional&&e.positional.length>0){t.push(Me("section-header","Arguments:"),Me("newline",`
36
36
  `));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Me("indent"," "),Me("positional-name",`<${o}>`)),n.required||t.push(Me("positional-optional"," (optional)")),t.push(Me("newline",`
37
37
  `),Me("indent"," "),Me("option-description",n.description),Me("newline",`
38
38
  `))}t.push(Me("newline",`
39
39
  `))}if(e.options&&Object.keys(e.options).length>0){t.push(Me("section-header","Options:"),Me("newline",`
40
- `));let n=UE(e.options);t.push(...n)}return t}function WE(e,t){let r=GE(e);return NE(r,t)}function HE(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 UE(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=k=>{u.includes(k)||u.push(k)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let k of c.aliases??[])k.length===1?p(`-${k}`):p(`--${k}`);let g=u.join(", "),f=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:g,type:f,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(d=>d.flags.length+(d.type?d.type.length+1:0)),20);for(let d of n){let c=d.flags.length+(d.type?d.type.length+1:0),u=" ".repeat(l-c+2);r.push(Me("indent"," ")),r.push(Me(o,d.flags)),d.type&&(r.push(Me("text"," ")),r.push(Me(s,d.type))),r.push(Me("text",u)),r.push(Me(a,d.desc)),d.default!==void 0&&(r.push(Me("text"," ")),r.push(Me(i,`(default: ${d.default})`))),r.push(Me("newline",`
41
- `))}return r}function ug(e){let t=QE(e.options??{},e.autoShort??!1),r=LE(e.separators??dg);return{schema:e,parse(n){return qE(n,e,t,r)},help(){return WE(e,e.formatter)}}}function qE(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?Dn(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Dn(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=JE(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!rv(c)){l=YE(c,l,e,o,r,t);continue}let u=KE(c,n);if(u){let{key:p,value:g,config:f}=u,k=o,b=k[f.to]??(k[f.to]={});b[p]=f.typed?cg(g):rn(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let k=e[l];f.push(p.type?Dn(k,p.type):k),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Dn(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 ZE(o,t,r),ev(o,t,a),tv(o,t,r),o}function KE(e,t){if(IE.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(VE(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(zE(o,s,r))return{key:o,value:s,config:r}}}return null}function VE(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function zE(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 JE(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 Ji(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return fs(l)?Ji(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 YE(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=cd(l,o);return c?Ji(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=zi(rn(d))),t+1)}if(i.length===1){let a=cd(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return fs(l)?Ji(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(fs(l))return n.options[i]=zi(rn(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=cd(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 Ji(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Dn(rn(t),i.type):rn(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Dn(rn(t),i.type):rn(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]=zi(rn(t)));return r}function QE(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=XE(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 XE(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 cd(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function ZE(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?Dn(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 ev(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 tv(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 rv(e){return/^-\d+(\.\d+)?$/.test(e)}var ud=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 nv(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 ov(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&&fs(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 nn(e,t,r={}){let o=ug({options:nv(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=ov(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 ud(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 pd=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 pg(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 pd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as hv,mkdirSync as mv,readFileSync as _g,statSync as bv}from"node:fs";import{dirname as Eg,join as yv}from"node:path";var fg="RED_WORKER_SCOPE",gg="RED_WORKER_MEMORY_CEILING",hg="RED_WORKER_SCOPE_DEGRADATION",gd={scope:null,memory_ceiling:null,scope_degradation:null};function hd(e){return{scope:fd(e[fg]),memory_ceiling:fd(e[gg]),scope_degradation:fd(e[hg])}}function gs(e){let t={};return e.scope!=null&&e.scope!==""&&(t[fg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(t[gg]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(t[hg]=e.scope_degradation),t}function fd(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as av,readdirSync as lv,readFileSync as kg,rmSync as dv,writeFileSync as cv}from"node:fs";import{basename as uv,join as Ro}from"node:path";import{isAbsolute as K$,join as Yi,resolve as V$}from"node:path";function sv(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var mg="deaths",bg="deaths.toonl";function Qi(e){return Yi(sv(e),mg)}function hs(e){return Yi(Qi(e),bg)}var ms="live",yg="attributions.toonl";function Xi(e){return Yi(Qi(e),ms)}function md(e){return Yi(Qi(e),yg)}var yd=Ro("sys","kernel","random","boot_id"),wg=1;function kd(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:wg,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Rg(Ro(r,yd)),cgroup:pv(r,n),last_phase:e.last_phase}}function Rg(e){try{let t=kg(e,"utf8").trim();return t===""?null:t}catch{return null}}function pv(e,t){let r=Rg(Ro(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
42
- `),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function wd(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Rd(e,t){let r=Ro(e,wd(t));try{return av(e,{recursive:!0,mode:448}),cv(r,Mt({trailer:!1}).push(gv(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function Fn(e,t){try{dv(Ro(e,wd(t)),{force:!0})}catch{}}function _d(e,t){let r;try{r=lv(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Ro(e,o);try{let a=xr(kg(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(fv(a))}catch(i){t?.(uv(s),i instanceof Error?i.message:String(i))}}return n}function fv(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:bd(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:bd(e.pid),ppid:bd(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 bd(e){return typeof e=="number"?e:Number(e)}function gv(e){return{...e}}var kv=1,wv=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function Rv(e){return typeof e=="string"&&wv.has(e)}var _v="startup";function xv(e,t){return{...e.scope??gd,version:kv,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 Ev(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 Ed={mkdir(e){mv(e,{recursive:!0,mode:448})},endsClean(e){let t;try{t=bv(e).size}catch{return!0}if(t===0)return!0;try{return _g(e,"utf8").endsWith(`
43
- `)}catch{return!0}},append(e,t){hv(e,t,{encoding:"utf8",mode:384})},read(e){return _g(e,"utf8")}};function vv(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function Sv(e,t,r=Ed){let n=Mt({trailer:!1}).push(vv(t));return r.mkdir(Eg(e)),r.endsClean(e)||r.append(e,`
44
- `),r.append(e,n),t}function vg(e){let t=e.endsWith(`
40
+ `));let n=QE(e.options);t.push(...n)}return t}function JE(e,t){let r=zE(e);return VE(r,t)}function YE(e){let t=["[options]"];if(e.positional)for(let r of e.positional)r.variadic?t.push(r.required?`<${r.name}...>`:`[${r.name}...]`):t.push(r.required?`<${r.name}>`:`[${r.name}]`);return t.join(" ")}function QE(e,t=!1){let r=[],n=[],o=t?"global-option-flag":"option-flag",s=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[d,c]of Object.entries(e)){if(c.hidden)continue;let u=[],p=y=>{u.includes(y)||u.push(y)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let y of c.aliases??[])y.length===1?p(`-${y}`):p(`--${y}`);let g=u.join(", "),f=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:g,type:f,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(d=>d.flags.length+(d.type?d.type.length+1:0)),20);for(let d of n){let c=d.flags.length+(d.type?d.type.length+1:0),u=" ".repeat(l-c+2);r.push(Me("indent"," ")),r.push(Me(o,d.flags)),d.type&&(r.push(Me("text"," ")),r.push(Me(s,d.type))),r.push(Me("text",u)),r.push(Me(a,d.desc)),d.default!==void 0&&(r.push(Me("text"," ")),r.push(Me(i,`(default: ${d.default})`))),r.push(Me("newline",`
41
+ `))}return r}function bg(e){let t=ov(e.options??{},e.autoShort??!1),r=HE(e.separators??hg);return{schema:e,parse(n){return XE(n,e,t,r)},help(){return JE(e,e.formatter)}}}function XE(e,t,r,n){let o={positional:{},options:{},errors:[],rest:[]},s=new Set(n.map(c=>c.to));for(let c of s)o[c]={};let i=0,a=t.positional??[],l=0,d=!1;for(;l<e.length;){let c=e[l];if(t.stopEarly&&i>0){o.rest=e.slice(l);break}if(c==="--"&&!d){d=!0,l++;continue}if(d){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;l<e.length;){let f=e[l];g.push(p.type?jn(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?jn(c,p.type):c;o.positional[p.name]=g,i++,l++}}else t.allowUnknown!==!1&&(o.rest=o.rest??[],o.rest.push(c)),l++;continue}if(c.startsWith("--")){l=rv(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!dv(c)){l=nv(c,l,e,o,r,t);continue}let u=ZE(c,n);if(u){let{key:p,value:g,config:f}=u,y=o,h=y[f.to]??(y[f.to]={});h[p]=f.typed?mg(g):ln(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let y=e[l];f.push(p.type?jn(y,p.type):y),l++}o.positional[p.name]=f,i++;continue}let g=p.type?jn(c,p.type):c;o.positional[p.name]=g,i++}else t.allowUnknown!==!1?o.rest.push(c):o.errors.push(`Unexpected positional argument: ${c}`);l++}return iv(o,t,r),av(o,t,a),lv(o,t,r),o}function ZE(e,t){if(GE.test(e))return null;for(let r of t){if(r.prefix&&e.startsWith(r.separator)){let o=e.slice(r.separator.length),s=o.indexOf(":");if(s>0){let i=o.slice(0,s),a=o.slice(s+1);if(ev(i))return{key:i,value:a,config:r}}continue}let n=e.indexOf(r.separator);if(n>0){let o=e.slice(0,n),s=e.slice(n+r.separator.length);if(tv(o,s,r))return{key:o,value:s,config:r}}}return null}function ev(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function tv(e,t,r){return e?r.separator===":"?e.includes("/")||e.includes(".")||/^\d+$/.test(t)?!1:/^[A-Z][a-zA-Z0-9-]*$/.test(e):!((r.separator==="="||r.separator===":=")&&e.includes("/")):!1}function rv(e,t,r,n,o,s){let i=e.slice(2);if(i.startsWith("no-")){let l=i.slice(3),d=o.get(l);if(d?.negatable!==!1&&d?.type==="boolean")return n.options[d.name]=!1,t+1}if(i.includes("=")){let l=i.indexOf("="),d=i.slice(0,l),c=i.slice(l+1);return Zi(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return ws(l)?Zi(a.name,l,t+2,n,o,s):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return s.strict?n.errors.push(`Unknown option: --${i}`):s.allowUnknown!==!1&&(n.options[i]=!0),t+1}function nv(e,t,r,n,o,s){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),l=i.slice(0,a),d=i.slice(a+1),c=hd(l,o);return c?Zi(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=Xi(ln(d))),t+1)}if(i.length===1){let a=hd(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return ws(l)?Zi(a.name,l,t+2,n,o,s):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(s.strict)n.errors.push(`Unknown option: -${i}`);else if(s.allowUnknown!==!1){let l=r[t+1];if(ws(l))return n.options[i]=Xi(ln(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=hd(a,o);l?l.type==="boolean"?n.options[l.name]=!0:n.errors.push(`Option -${a} requires a value`):s.strict?n.errors.push(`Unknown option: -${a}`):s.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function Zi(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?jn(ln(t),i.type):ln(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?jn(ln(t),i.type):ln(t);if(i.type==="array"){let l=n.options[e];Array.isArray(l)?l.push(...a):n.options[e]=a}else n.options[e]=a}else s.strict?n.errors.push(`Unknown option: --${e}`):s.allowUnknown!==!1&&(n.options[e]=Xi(ln(t)));return r}function ov(e,t=!1){let r=new Map,n=Object.entries(e).sort(([s],[i])=>s.localeCompare(i)),o=new Set;for(let[,s]of n)s.short&&o.add(s.short);for(let[s,i]of n){let a=i.short??"";t&&!a&&(a=sv(s,o),a&&o.add(a));let l={name:s,short:a,aliases:i.aliases??[],type:i.type??"string",description:i.description??"",required:i.required??!1,hidden:i.hidden??!1,negatable:i.negatable??!0,default:i.default,choices:i.choices,env:i.env,validate:i.validate};r.set(s,l);for(let d of l.aliases)r.set(d,l)}return r}function sv(e,t){for(let r of e){if(!/[a-zA-Z]/.test(r))continue;let n=r.toLowerCase();if(!t.has(n))return n;let o=r.toUpperCase();if(!t.has(o))return o}return""}function hd(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function iv(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let o=process.env[n.env];e.options[n.name]=n.type?jn(o,n.type):o}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function av(e,t,r){if(t.options)for(let[n,o]of Object.entries(t.options))o.required&&e.options[n]===void 0&&e.errors.push(`Missing required option: --${n}`);for(let n of r)n.required&&e.positional[n.name]===void 0&&e.errors.push(`Missing required argument: <${n.name}>`)}function lv(e,t,r){for(let n of r.values()){let o=e.options[n.name];if(n.validate&&o!==void 0){let s=n.validate(o);s!==!0&&e.errors.push(s)}}for(let n of t.positional??[]){let o=e.positional[n.name];if(n.validate&&o!==void 0){let s=n.validate(o);s!==!0&&e.errors.push(s)}}}function dv(e){return/^-\d+(\.\d+)?$/.test(e)}var md=class extends Error{flag;known;constructor(t,r){super(`unknown flag '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownFlagError",this.flag=t,this.known=r}};function cv(e){let t={};for(let[r,n]of Object.entries(e))t[r]={type:n.kind==="boolean"?"boolean":"string",...r.length===1?{short:r}:{},...n.aliases===void 0?{}:{aliases:n.aliases}};return t}function uv(e,t){let r=new Map;for(let[o,s]of Object.entries(t))if(!(s.kind!=="value"||s.type!=="array")){r.set(o,o);for(let i of s.aliases??[])r.set(i,o)}let n=new Map;for(let o=0;o<e.length;o+=1){let s=e[o];if(s==="--")break;let i=s.match(/^--([^=]+)(?:=(.*))?$/)??s.match(/^-([^=])(?:=(.*))?$/);if(i===null)continue;let a=r.get(i[1]);if(a===void 0)continue;let l=i[2];if(l===void 0&&ws(e[o+1])&&(l=e[o+1],o+=1),l===void 0)continue;let d=n.get(a)??[];d.push(l),n.set(a,d)}return n}function dn(e,t,r={}){let o=bg({options:cv(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=uv(e,t),a=o.errors.find(l=>/^Option --?\S+ requires a value$/.test(l));if(a!==void 0)throw new Error(a.replace(/^Option /,""));if(o.errors.length>0)throw new Error(o.errors[0]);if(r.unknownFlags==="error"){let l=new Set(Object.keys(t));for(let d of Object.keys(o.options))if(!l.has(d))throw new md(d.length===1?`-${d}`:`--${d}`,Object.keys(t).map(c=>c.length===1?`-${c}`:`--${c}`))}for(let[l,d]of Object.entries(t)){let c=o.options[l];c!==void 0&&(d.kind==="boolean"?s[l]=c:d.type==="array"?s[l]=(i.get(l)??[]).map(u=>d.coerce(u)):s[l]=d.coerce(String(c)))}return{values:s,positionals:o.rest}}var bd=class extends Error{token;known;constructor(t,r){super(`unknown command '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownCommandError",this.token=t,this.known=r}};function yg(e,t){let[r,...n]=e;if(r!==void 0){for(let[s,i]of Object.entries(t.commands))if(r===s||(i.aliases??[]).includes(r))return{command:s,args:n};if(t.errorOnUnknownCommand&&!r.startsWith("-"))throw new bd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as _v,mkdirSync as xv,readFileSync as Pg,statSync as Ev}from"node:fs";import{dirname as Cg,join as vv}from"node:path";var kg="RED_WORKER_SCOPE",wg="RED_WORKER_MEMORY_CEILING",Rg="RED_WORKER_SCOPE_DEGRADATION",kd={scope:null,memory_ceiling:null,scope_degradation:null};function wd(e){return{scope:yd(e[kg]),memory_ceiling:yd(e[wg]),scope_degradation:yd(e[Rg])}}function Rs(e){let t={};return e.scope!=null&&e.scope!==""&&(t[kg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(t[wg]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(t[Rg]=e.scope_degradation),t}function yd(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as gv,readdirSync as hv,readFileSync as vg,rmSync as mv,writeFileSync as bv}from"node:fs";import{basename as yv,join as Po}from"node:path";import{isAbsolute as o2,join as ea,resolve as s2}from"node:path";function pv(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var _g="deaths",xg="deaths.toonl";function ta(e){return ea(pv(e),_g)}function _s(e){return ea(ta(e),xg)}var xs="live",Eg="attributions.toonl";function ra(e){return ea(ta(e),xs)}function Rd(e){return ea(ta(e),Eg)}var xd=Po("sys","kernel","random","boot_id"),Sg=1;function Ed(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:Sg,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Tg(Po(r,xd)),cgroup:kv(r,n),last_phase:e.last_phase}}function Tg(e){try{let t=vg(e,"utf8").trim();return t===""?null:t}catch{return null}}function kv(e,t){let r=Tg(Po(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
42
+ `),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function vd(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Sd(e,t){let r=Po(e,vd(t));try{return gv(e,{recursive:!0,mode:448}),bv(r,Lt({trailer:!1}).push(Rv(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function Bn(e,t){try{mv(Po(e,vd(t)),{force:!0})}catch{}}function Td(e,t){let r;try{r=hv(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Po(e,o);try{let a=Sr(vg(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(wv(a))}catch(i){t?.(yv(s),i instanceof Error?i.message:String(i))}}return n}function wv(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:_d(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:_d(e.pid),ppid:_d(e.ppid),boot_id:e.boot_id==null?null:String(e.boot_id),cgroup:e.cgroup==null?null:String(e.cgroup),last_phase:String(e.last_phase)}}function _d(e){return typeof e=="number"?e:Number(e)}function Rv(e){return{...e}}var Sv=1,Tv=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function Pv(e){return typeof e=="string"&&Tv.has(e)}var Av="startup";function Cv(e,t){return{...e.scope??kd,version:Sv,ts:e.ts,kind:e.kind,id:e.id,pid:e.pid,exit_path:e.exit_path,signal:e.signal??null,exit_code:e.exit_code??null,last_phase:e.last_phase,detail:e.detail??null,...t}}function Dv(e){let t=e.resourceUsage();return{uptime_s:Math.round(e.uptime()),rss_kb:Math.round(e.memoryUsage().rss/1024),max_rss_kb:t.maxRSS,user_cpu_us:t.userCPUTime,system_cpu_us:t.systemCPUTime,minor_page_faults:t.minorPageFault,major_page_faults:t.majorPageFault,voluntary_ctx_switches:t.voluntaryContextSwitches,involuntary_ctx_switches:t.involuntaryContextSwitches}}var Ad={mkdir(e){xv(e,{recursive:!0,mode:448})},endsClean(e){let t;try{t=Ev(e).size}catch{return!0}if(t===0)return!0;try{return Pg(e,"utf8").endsWith(`
43
+ `)}catch{return!0}},append(e,t){_v(e,t,{encoding:"utf8",mode:384})},read(e){return Pg(e,"utf8")}};function Ov(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function Fv(e,t,r=Ad){let n=Lt({trailer:!1}).push(Ov(t));return r.mkdir(Cg(e)),r.endsClean(e)||r.append(e,`
44
+ `),r.append(e,n),t}function Dg(e){let t=e.endsWith(`
45
45
  `)?e:e.slice(0,e.lastIndexOf(`
46
- `)+1);return t===""?[]:xr(t).map(Tv)}function Tv(e){let t=e.exit_path;if(!Rv(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 Sg(e,t=Ed){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return vg(r)}var Pv=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],xd=null;function Tg(e){let t=e.host??process,r=e.io??Ed,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??hd(process.env),i=e.phase??_v,a=null,l=e.presenceDir===void 0?yv(Eg(e.lanePath),ms):e.presenceDir,d=null,c=()=>{l!==null&&(d=kd({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Rd(l,d))},u=b=>{if(!a){try{a=Sv(e.lanePath,xv({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...b},Ev(t)),r)}catch{}l!==null&&d!==null&&Fn(l,d)}},p={signal(b){u({exit_path:"signal",signal:b})},exit(b){u({exit_path:"exit",exit_code:b})},uncaughtException(b){u({exit_path:"uncaught-exception",detail:xg(b)})},unhandledRejection(b){u({exit_path:"unhandled-rejection",detail:xg(b)})}},f=[...(e.signals??Pv).map(b=>{let v=()=>{if(p.signal(b),!(t.listenerCount?.(b)!==1||!t.kill)){t.off(b,v);try{t.kill(o,b)}catch{}}};return[b,v]}),["uncaughtException",(...b)=>p.uncaughtException(b[0])],["unhandledRejection",(...b)=>p.unhandledRejection(b[0])],["exit",(...b)=>p.exit(typeof b[0]=="number"?b[0]:null)]];for(let[b,v]of f)t.on(b,v);let k={lanePath:e.lanePath,phase(b){i=b,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[b,v]of f)t.off(b,v);l!==null&&d!==null&&Fn(l,d),xd===k&&(xd=null)},handlers:p};return e.setActive!==!1&&(xd=k),c(),k}function xg(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as Av,readdirSync as Cv,readFileSync as Zi,statSync as Ov,writeFileSync as Dv}from"node:fs";import{join as Og}from"node:path";var Fv=1,Iv=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],Mv=512*1024;function Lv(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??Iv,n=[],o=Og(t,yd),s=null;try{let l=Zi(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:vd(l),detail:null})}let i=new Set;try{for(let l of Cv(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:vd(l),detail:null})}let a=[];for(let l of r)try{let c=jv(l,e.tailBytes??Mv).split(`
47
- `).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:vd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function vd(e){return e.code==="ENOENT"?"absent":"unreadable"}function jv(e,t){let r=Ov(e).size,n=Zi(e,"utf8");return r<=t?n:n.slice(n.length-t)}var Bv=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,$v=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,Nv=/Killed (\/\S*) due to memory pressure/,Gv=/\bopid=(\d+)\b/,Pg=/\bsig=(\d+)\b/,Wv=/\buid=(\d+)\b/,Hv=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,Uv={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function qv(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:Fv,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=>Ag(u,e.pid,Bv)||Ag(u,e.pid,$v));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=Nv.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(Gv.exec(u)?.[1])===e.pid&&Pg.test(u));if(d!==void 0){let u=Number(Pg.exec(d)?.[1]),p=Wv.exec(d)?.[1];return i("user-signal",o?"medium":"high",Uv[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=>Hv.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 Ag(e,t,r){return Number(r.exec(e)?.[1])===t}var Kv=" | ";function Cg(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(Kv)}function Vv(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:Cg(e.evidence),checked:Cg(e.checked)}}function zv(e){let t=Mt({trailer:!1});return e.map(r=>t.push(Vv(r))).join("")}function Dg(e){let t=Xi(e.stateRoot),r=md(e.stateRoot),n=e.now??(()=>new Date().toISOString()),o=e.evidence??Lv({procRoot:e.procRoot,journalPaths:e.journalPaths}),s=[],i=_d(t,u=>s.push(u)),a=Sg(hs(e.stateRoot)),l=[],d=[],c=[];for(let u of i){if(o.live_pids.has(u.pid)){d.push(u);continue}if(a.find(g=>g.pid===u.pid&&g.id===u.id)!==void 0){c.push(u),Fn(t,u);continue}l.push(qv(u,o,a,n())),Fn(t,u)}return l.length>0&&Jv(r,l),{attributions:l,alive:d,self_recorded:c,skipped:s,laneText:()=>{try{return Zi(r,"utf8")}catch{return""}}}}function Fg(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 Jv(e,t){try{Av(Og(e,".."),{recursive:!0,mode:448});let r=Yv(e),n=r===""||r.endsWith(`
46
+ `)+1);return t===""?[]:Sr(t).map(Iv)}function Iv(e){let t=e.exit_path;if(!Pv(t))throw new Error(`death record has unknown exit_path ${JSON.stringify(t)}`);let r=e.kind;if(r!=="launcher"&&r!=="worker"&&r!=="daemon")throw new Error(`death record has unknown kind ${JSON.stringify(r)}`);return{version:Kt(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:Kt(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:Kt(e.exit_code),last_phase:String(e.last_phase),detail:e.detail==null?null:String(e.detail),scope:e.scope==null?null:String(e.scope),memory_ceiling:e.memory_ceiling==null?null:String(e.memory_ceiling),scope_degradation:e.scope_degradation==null?null:String(e.scope_degradation),uptime_s:Kt(e.uptime_s),rss_kb:Kt(e.rss_kb),max_rss_kb:Kt(e.max_rss_kb),user_cpu_us:Kt(e.user_cpu_us),system_cpu_us:Kt(e.system_cpu_us),minor_page_faults:Kt(e.minor_page_faults),major_page_faults:Kt(e.major_page_faults),voluntary_ctx_switches:Kt(e.voluntary_ctx_switches),involuntary_ctx_switches:Kt(e.involuntary_ctx_switches)}}function Kt(e){return typeof e=="number"?e:Number(e)}function Og(e,t=Ad){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return Dg(r)}var Mv=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],Pd=null;function Fg(e){let t=e.host??process,r=e.io??Ad,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??wd(process.env),i=e.phase??Av,a=null,l=e.presenceDir===void 0?vv(Cg(e.lanePath),xs):e.presenceDir,d=null,c=()=>{l!==null&&(d=Ed({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Sd(l,d))},u=h=>{if(!a){try{a=Fv(e.lanePath,Cv({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...h},Dv(t)),r)}catch{}l!==null&&d!==null&&Bn(l,d)}},p={signal(h){u({exit_path:"signal",signal:h})},exit(h){u({exit_path:"exit",exit_code:h})},uncaughtException(h){u({exit_path:"uncaught-exception",detail:Ag(h)})},unhandledRejection(h){u({exit_path:"unhandled-rejection",detail:Ag(h)})}},f=[...(e.signals??Mv).map(h=>{let R=()=>{if(p.signal(h),!(t.listenerCount?.(h)!==1||!t.kill)){t.off(h,R);try{t.kill(o,h)}catch{}}};return[h,R]}),["uncaughtException",(...h)=>p.uncaughtException(h[0])],["unhandledRejection",(...h)=>p.unhandledRejection(h[0])],["exit",(...h)=>p.exit(typeof h[0]=="number"?h[0]:null)]];for(let[h,R]of f)t.on(h,R);let y={lanePath:e.lanePath,phase(h){i=h,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[h,R]of f)t.off(h,R);l!==null&&d!==null&&Bn(l,d),Pd===y&&(Pd=null)},handlers:p};return e.setActive!==!1&&(Pd=y),c(),y}function Ag(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as Lv,readdirSync as jv,readFileSync as na,statSync as Bv,writeFileSync as $v}from"node:fs";import{join as jg}from"node:path";var Nv=1,Gv=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],Wv=512*1024;function Hv(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??Gv,n=[],o=jg(t,xd),s=null;try{let l=na(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:Cd(l),detail:null})}let i=new Set;try{for(let l of jv(t))/^\d+$/.test(l)&&i.add(Number(l));n.push({source:t,result:"read",detail:`${i.size} live pids`})}catch(l){n.push({source:t,result:Cd(l),detail:null})}let a=[];for(let l of r)try{let c=Uv(l,e.tailBytes??Wv).split(`
47
+ `).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:Cd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Cd(e){return e.code==="ENOENT"?"absent":"unreadable"}function Uv(e,t){let r=Bv(e).size,n=na(e,"utf8");return r<=t?n:n.slice(n.length-t)}var qv=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,Kv=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,Vv=/Killed (\/\S*) due to memory pressure/,zv=/\bopid=(\d+)\b/,Ig=/\bsig=(\d+)\b/,Jv=/\buid=(\d+)\b/,Yv=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,Qv={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function Xv(e,t,r,n){let o=e.boot_id!==null&&t.boot_id!==null&&e.boot_id!==t.boot_id,s=[...t.probes.map(u=>`${u.source}: ${u.result}${u.detail?` (${u.detail})`:""}`),`boot id: anchored under ${e.boot_id??"unknown"}, host now ${t.boot_id??"unknown"} (${o?"changed":"same"})`,`parent account: ppid ${e.ppid}`,`cgroup: ${e.cgroup??"unknown"}`],i=(u,p,g,f)=>({version:Nv,ts:n,kind:e.kind,id:e.id,pid:e.pid,last_seen:e.ts,last_phase:e.last_phase,sender_class:u,confidence:p,signal:g,host_boot_changed:o,evidence:f,checked:s}),a=o?["the host rebooted since the anchor, so this line may name a reused pid"]:[],l=t.journal.find(u=>Mg(u,e.pid,qv)||Mg(u,e.pid,Kv));if(l!==void 0)return i("oomd",o?"medium":"high","SIGKILL",[l,...a]);if(e.cgroup!==null)for(let u of t.journal){let p=Vv.exec(u)?.[1];if(p!==void 0){if(p===e.cgroup)return i("oomd",o?"medium":"high","SIGKILL",[u,...a]);if(e.cgroup.startsWith(`${p}/`))return i("oomd","medium","SIGKILL",[u,`the killed scope ${p} is an ancestor of this process's ${e.cgroup}`,...a])}}let d=t.journal.find(u=>Number(zv.exec(u)?.[1])===e.pid&&Ig.test(u));if(d!==void 0){let u=Number(Ig.exec(d)?.[1]),p=Jv.exec(d)?.[1];return i("user-signal",o?"medium":"high",Qv[u]??null,[d,...p===void 0?[]:[`sent by uid ${p}`],...a])}let c=r.find(u=>u.pid===e.ppid);if(c!==void 0&&!t.live_pids.has(e.ppid))return i("parent-death","medium",null,[`parent pid ${e.ppid} (${c.kind} ${c.id}) recorded its own death at ${c.ts} via ${c.exit_path}${c.signal?` ${c.signal}`:""}`]);if(o){let u=t.journal.find(p=>Yv.test(p));return u!==void 0?i("teardown","high",null,[`host boot id changed from ${e.boot_id} to ${t.boot_id}`,u]):i("teardown","medium",null,[`host boot id changed from ${e.boot_id} to ${t.boot_id}`,"no shutdown record on any journal read: the host stopped without announcing it (a freeze or a power loss, not an orderly teardown)"])}return i("unknown","none",null,[])}function Mg(e,t,r){return Number(r.exec(e)?.[1])===t}var Zv=" | ";function Lg(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(Zv)}function eS(e){return{version:e.version,ts:e.ts,kind:e.kind,id:e.id,pid:e.pid,last_seen:e.last_seen,last_phase:e.last_phase,sender_class:e.sender_class,confidence:e.confidence,signal:e.signal,host_boot_changed:e.host_boot_changed,evidence:Lg(e.evidence),checked:Lg(e.checked)}}function tS(e){let t=Lt({trailer:!1});return e.map(r=>t.push(eS(r))).join("")}function Bg(e){let t=ra(e.stateRoot),r=Rd(e.stateRoot),n=e.now??(()=>new Date().toISOString()),o=e.evidence??Hv({procRoot:e.procRoot,journalPaths:e.journalPaths}),s=[],i=Td(t,u=>s.push(u)),a=Og(_s(e.stateRoot)),l=[],d=[],c=[];for(let u of i){if(o.live_pids.has(u.pid)){d.push(u);continue}if(a.find(g=>g.pid===u.pid&&g.id===u.id)!==void 0){c.push(u),Bn(t,u);continue}l.push(Xv(u,o,a,n())),Bn(t,u)}return l.length>0&&rS(r,l),{attributions:l,alive:d,self_recorded:c,skipped:s,laneText:()=>{try{return na(r,"utf8")}catch{return""}}}}function $g(e){let t=e.skipped.length===0?"":` | unreadable anchors=${e.skipped.join(",")}`;if(e.attributions.length===0)return`death reaper: no un-recorded deaths (live=${e.alive.length} self-recorded=${e.self_recorded.length})${t}`;let r=e.attributions.map(n=>` | ${n.kind} ${n.id} pid=${n.pid} ${n.sender_class}/${n.confidence} phase=${n.last_phase}`+(n.evidence[0]?` evidence="${n.evidence[0]}"`:"")).join("");return`death reaper: attributed ${e.attributions.length}${r}${t}`}function rS(e,t){try{Lv(jg(e,".."),{recursive:!0,mode:448});let r=nS(e),n=r===""||r.endsWith(`
48
48
  `)?"":`
49
- `;Dv(e,`${r}${n}${zv(t)}`,{encoding:"utf8",mode:384})}catch{}}function Yv(e){try{return Zi(e,"utf8")}catch{return""}}import{join as Qv}from"node:path";var Xv=[".red","redskilled"],Hr=448;function or(e){return Qv(e,...Xv)}import{randomUUID as F0}from"node:crypto";import{spawn as SF}from"node:child_process";import{mkdir as TF}from"node:fs/promises";import{dirname as PF}from"node:path";import{createHash as tS}from"node:crypto";import{constants as Cd}from"node:fs";import{mkdir as Wg,open as rS,readFile as nS,rm as Hg,stat as oS}from"node:fs/promises";import{createConnection as sS}from"node:net";import{tmpdir as iS}from"node:os";import{dirname as Ug,join as bs}from"node:path";var Zv="toon";function Lg(e){return e.trimStart().startsWith("{")?"json":"toon"}function Td(e){let t=0;for(;e[t]===`
50
- `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Lg(r);if(n==="json"){let s=r.indexOf(`
49
+ `;$v(e,`${r}${n}${tS(t)}`,{encoding:"utf8",mode:384})}catch{}}function nS(e){try{return na(e,"utf8")}catch{return""}}import{join as oS}from"node:path";var sS=[".red","redskilled"],Vr=448;function sr(e){return oS(e,...sS)}import{randomUUID as $0}from"node:crypto";import{spawn as F1}from"node:child_process";import{mkdir as I1}from"node:fs/promises";import{dirname as M1}from"node:path";import{createHash as lS}from"node:crypto";import{constants as Md}from"node:fs";import{mkdir as zg,open as dS,readFile as cS,rm as Jg,stat as uS}from"node:fs/promises";import{createConnection as pS}from"node:net";import{tmpdir as fS}from"node:os";import{dirname as Yg,join as Es}from"node:path";var iS="toon";function Wg(e){return e.trimStart().startsWith("{")?"json":"toon"}function Od(e){let t=0;for(;e[t]===`
50
+ `||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=Wg(r);if(n==="json"){let s=r.indexOf(`
51
51
  `);return s<0?null:{frame:r.slice(0,s),dialect:n,rest:r.slice(s+1)}}let o=r.indexOf(`
52
52
 
53
- `);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function Pd(e){let t=Lg(e)==="json"?Sd:Ig,r=t===Sd?Ig:Sd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Sd(e){return JSON.parse(e)}function Ig(e){return Ct(e)}function Ad(e,t){if(t==="toon"){let r=eS(e);if(r!==null)return r.endsWith(`
53
+ `);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function Fd(e){let t=Wg(e)==="json"?Dd:Ng,r=t===Dd?Ng:Dd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Dd(e){return JSON.parse(e)}function Ng(e){return Dt(e)}function Id(e,t){if(t==="toon"){let r=aS(e);if(r!==null)return r.endsWith(`
54
54
  `)?`${r}
55
55
  `:`${r}
56
56
 
57
57
  `}return`${JSON.stringify(e)}
58
- `}function eS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=ot(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function jg(e,t){return!Mg(e)||!Mg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Mg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Bg=new Set;function $g(e){return Bg.has(e)?"json":Zv}function Ng(e){Bg.add(e)}var aS=108;async function ea(e,t,r="resident server"){let n=e.wire,o=n??$g(e.socketPath),s=await Gg(e,t,r,o);return n||o==="json"||!jg(t,s)?s:(Ng(e.socketPath),await Gg(e,t,r,"json"))}async function Gg(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=sS(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(Ad(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Td(d);g&&(d=g.rest,u(()=>{try{s(Pd(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",p=>u(()=>i(p))),a.on("close",()=>{l||u(()=>i(new Error(`${r} closed without response`)))})})}function qg(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Td(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Ad(a,s.dialect))}catch{}};(async()=>{let a;try{a=Pd(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function lS(e){await Wg(Ug(e),{recursive:!0,mode:448});try{return await rS(e,Cd.O_CREAT|Cd.O_EXCL|Cd.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var dS=6e4,Kg="resident-spawn-lock v1",cS=3;async function Vg(e,t={}){let r=t.maxAgeMs??dS,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Qe;await Wg(Ug(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await lS(e);if(l)return await l.writeFile(`${Kg} pid=${o} taken=${new Date(n()).toISOString()}
59
- `).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await pS(e),c=await gS(e,d,n());if(a>=cS||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=uS(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 Hg(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function zg(e){await e.handle.close().catch(()=>{}),await Hg(e.lockPath,{force:!0})}function uS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function Jg(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 pS(e){try{return fS(await nS(e,"utf8"))}catch{return null}}function fS(e){let t=e.split(`
60
- `,1)[0]?.trim()??"";if(!t.startsWith(Kg))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 gS(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 oS(e)).mtimeMs)}catch{return null}}function Qe(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var hS="/tmp";function ta(e){let t=e.env??process.env,r=tS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>bs(l,e.socketFileName).length<aS,o=t.XDG_RUNTIME_DIR;if(o){let l=bs(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=bs(`red-skills-${s}`,r),a=bs(iS(),i);return n(a)||process.platform==="win32"?a:bs(hS,i)}Ur();import{homedir as BS}from"node:os";import{join as Wd}from"node:path";import{spawnSync as $S}from"node:child_process";import{createHash as NS}from"node:crypto";import{existsSync as GS,readdirSync as WS}from"node:fs";import{mkdir as nh,readFile as HS,rename as US,writeFile as qS}from"node:fs/promises";import{dirname as KS}from"node:path";var Mn="@reddb-io/red-skills",SS="https://registry.npmjs.org",TS="canary",In=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},PS=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function jd(e){return typeof e=="string"&&PS.test(e.trim())}function Zg(e){return`${e}-.bundle.min.mjs`}var AS=".unversioned";function CS(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!jd(t))throw new In("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Zg(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 sa(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return ws(n,CS(t,r,o))}function OS(e){return e==="dev"?["rsp","redskilled"]:[]}function DS(e){return`${e}.bundle.min.mjs`}function FS(e){return ws("dist",DS(e))}function IS(e,t="stable"){return`${Mn}@${t==="canary"?TS:e}`}function Bd(e=Mn){return`${SS}/${e.replace("/","%2F")}`}async function $d(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=sa({plugin:r,version:n,cacheDir:o,channel:s}),a=OS(r),l=a.map(p=>sa({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await LS(e,l))return i;let d=IS(n,s),c=ws(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw rh(p,d)}for(let p of[r,...a]){let g=FS(p),f=ws(u,g);if(!await e.exists(f))throw new In("bundle-missing",`npm package ${d} has no ${g}`);let k=p===r?i:sa({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(k,await e.readFile(f))}return await MS(e,o,[r,...a]),i}async function MS(e,t,r){if(e.rename)for(let n of r){let o=ws(t,Zg(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${AS}`)}catch{}}}async function LS(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function eh(e,t,r=Mn){let n;try{n=await e.fetchText(Bd(r))}catch(s){throw rh(s,r)}let o=Nd(n);return{sameMajor:jS(o,t),newest:Gd(o)}}function Nd(e){let t;try{t=JSON.parse(e)}catch{return[]}if(typeof t!="object"||t===null)return[];let r=t.versions;return typeof r!="object"||r===null?[]:Object.keys(r)}function jS(e,t){let r=Ld(t);if(r===null)return null;let n=null;for(let o of e)Ld(o)===r&&(n===null||th(o,n)>0)&&(n=o);return n}function Gd(e){let t=null;for(let r of e){let n=String(r).trim();Ld(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||th(n,t)>0)&&(t=n)}return t}function Ld(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function th(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 rh(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new In("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new In("package-missing",`npm could not resolve ${t}: ${r}`,e):new In("network",`failed to resolve ${t}: ${r}`,e)}function ws(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}Ur();var oh={async materialize(e,t){await nh(t,{recursive:!0});let r=$S("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 Wd(t,"node_modules",...Mn.split("/"))},async readFile(e){return new Uint8Array(await HS(e))},async writeFile(e,t){await nh(KS(e),{recursive:!0}),await qS(e,t)},async exists(e){return GS(e)},sha256(e){return NS("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 US(e,t)}},VS="redskilled";function zS(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Wd(e.HOME||BS(),".cache");return Wd(t,"red-skills","bundles")}var JS=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function YS(e,t){if(jd(e.version))return e.version.trim();let r=e.listCacheDir??ZS,n=QS(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??oh).fetchText(Bd());return Gd(Nd(s))}catch{return null}}function QS(e,t){let r=null;for(let n of e){let o=JS.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||XS(s,r)>0)&&(r=s)}return r}function XS(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 ZS(e){try{return WS(e)}catch{return[]}}async function eT(e={},t={},r={}){let n=sn(e,t);if(vr(n))return n;let o=r.env??t.env??process.env,s=zS(o),i=await YS(r,s);if(i===null)return n;try{await $d(r.bundleIO??oh,{plugin:VS,version:i,cacheDir:s})}catch{return n}return sn(e,t)}async function sh(e={},t={},r={}){let n=await eT(e,t,r);if(vr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(Ur(),Xg));throw new o(n)}var _o=3e5,ih=1e4,ah=6e4,lh=15e3,Hd=3e4,dh=Hd*2,ch=6e4,Rs=16;function uh(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill")return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,s=t.startedAt==null?null:Date.parse(t.startedAt),i=Date.parse(e.ts),a=s!=null&&Number.isFinite(s)&&Number.isFinite(i)?Math.max(0,i-s)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":"unknown",confidence:r||n?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n?[o]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${o}`],project_label:e.project_label,...a===void 0?{}:{uptime_s:a},detail:t.refusal??e.detail}}function Ud(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var ph="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as v0}from"node:crypto";import{mkdir as bF,rm as yF}from"node:fs/promises";import{dirname as kF}from"node:path";import{randomUUID as fh}from"node:crypto";import{rm as tT}from"node:fs/promises";import{connect as rT,createServer as nT}from"node:net";var Sr=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 qd(e,t=250){return await new Promise(r=>{let n=rT(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 gh(e,t){for(let r=0;r<2;r++){let n=nT();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 qd(e)!=="unowned")throw new Sr(e);if(await t?.())throw new Sr(e);await tT(e,{force:!0})}}throw new Sr(e)}async function Vt(e,t=250){try{return(await ea({socketPath:e,timeoutMs:t},{id:fh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function hh(e,t){qg(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??fh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function xh(e){return{generated_at:e.now,hour:bh("hour",36e5,e),day:bh("day",864e5,e),history_48h:oT(e)}}function oT(e){let t=an(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=sT(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=>an(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:mh(i),tickets_per_hour:mh(l)}}function sT(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=an(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],k=Math.min(f+36e5,r),b=Math.max(0,Math.min(c.at,k)-Math.max(d.at,f));b!==0&&(a[g].tokens+=p*(b/u),a[g].duration+=b)}}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 mh(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 Ln(e,t,r){let n=an(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=an(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function bh(e,t,r){let n=an(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:an(u.observed_at)})).filter(u=>u.at!=null&&wh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>an(u.ts)).filter(u=>u!=null&&wh(u,o,n)),l=yh(i,u=>u.tokens,"tokens",s),d=yh(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:iT(a.length,t,s),runner_share:kh("runner",i,u=>u.runner,s),model_share:kh("model",i,u=>u.model,s),unavailable:c}}function yh(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 iT(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 kh(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 wh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function an(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Eh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&_h(t.hour)&&_h(t.day)&&(t.history_48h===void 0||aT(t.history_48h))}function aT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Rh(t.tokens_per_hour)&&Rh(t.tickets_per_hour)}function Rh(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 _h(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"&&Kd(t.tokens_per_min)&&Kd(t.tools_per_min)&&Kd(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Kd(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 vh(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:Ln([...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 Sh(e,t){return Ln(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 Ah,totalmem as dT}from"node:os";function _s(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 Th(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=_s(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=xo(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:lT(e.length,n,a,l)}}function lT(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 xo(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 Ph(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 Ch="REDSKILLED_MEMORY_CEILING",zd="REDSKILLED_WORKER_CEILING",Ih="REDSKILLED_VALIDATION_CEILING",Oh="REDSKILLED_INTERACTIVE_RESERVATION",xs=1,Dh=.7,cT=2*1024**3,uT=2;function Mh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return xo(t)}function aa(e){let t=0,r=[];for(let n of e){let o=Mh(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 Lh(e){let{ceiling:t}=e,r=aa(e.workers),n=Mh(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??xs),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 jh(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=aa(e.workers),n=e.ceiling.memory_bytes-r.memory_bytes,o=e.ceiling.worker_count,s=o==null?n:Math.floor(e.ceiling.memory_bytes/o),i=Math.min(n,s);if(i<=0)return{memory_max:null,reason:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes is already fully committed to ${r.worker_count} Worker(s), so no positive per-Worker ceiling can be derived; the daemon's RSS sampling floor is the only remaining ceiling`};let a=o==null?`the headroom under this host's memory ceiling of ${e.ceiling.memory_bytes} bytes; this host declares no Worker slot count (${zd} is unset), so this ceiling is a per-Worker wall and not memory the host sets aside \u2014 N Workers may carry N such walls, and the host ceiling is not enforced host-wide. Declare a slot count to make it divide into shares that sum to it`:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes shared across its ${o} Worker slot(s)`;return{memory_max:String(i),reason:`derived from ${a} (ceiling source: ${e.ceiling.source})`}}function la(e=process.env,t=dT(),r={}){let n=Vd(r.flags?.memoryCeiling,e[Ch],r.config?.memoryCeiling),o=Vd(r.flags?.workerCeiling,e[zd],r.config?.workerCeiling),s=Vd(r.flags?.validationCeiling,e[Ih],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Oh]??"").trim(),d=Bh(a),c=l===""?xs:gT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!pT(a)&&(ia(`redskilled: ${Jd(o)} ${zd}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=fT(i,t);if(p!==void 0)return Fh({memory_bytes:p,worker_count:d,interactive_reservation:c??xs,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Ah());ia(`redskilled: ${Jd(n)} ${Ch}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Dh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&ia(`redskilled: ${Oh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${xs} Worker(s) instead.`),Fh({memory_bytes:Math.floor(t*Dh),worker_count:d,interactive_reservation:c??xs,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Ah())}function Fh(e,t,r){if(t!==void 0){let i=Bh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};ia(`redskilled: ${Jd(t)} ${Ih}=${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)/uT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/cT)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Vd(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 Jd(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function pT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var ia=e=>process.stderr.write(`${e}
61
- `);function fT(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)):xo(e)??void 0}function Bh(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 gT(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as hT,mkdir as mT,open as bT,readFile as yT,stat as kT,truncate as $h}from"node:fs/promises";import{dirname as wT}from"node:path";var RT=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],_T=["demand-refusal","daemon-stop"],Nh="redskilled.log.toonl";function da(e){let t=e.worker.budget??{},r="kind"in e?e.kind:e.event;return{version:1,ts:e.ts,kind:r,event:r,worker_id:e.worker.worker_id,project_label:e.worker.project_label,pid:e.worker.pid,workspace_path:e.worker.workspace_path,fork_sha:e.worker.fork_sha??null,log_path:e.worker.log_path??null,isolated:e.worker.isolated,unit:e.worker.unit??null,memory_high:t.memory_high??null,memory_max:t.memory_max??null,cpu_weight:t.cpu_weight??null,admission_verdict:"admissionVerdict"in e?e.admissionVerdict??null:null,phase:"phase"in e?e.phase??null:null,step:"step"in e?e.step??null:null,tokens:"tokens"in e?e.tokens??null:null,tools:"tools"in e?e.tools??null:null,runner:"runner"in e?e.runner??null:null,model:"model"in e?e.model??null:null,base_head_sha:"baseHeadSha"in e?e.baseHeadSha??null:null,base_commits_ahead:"baseCommitsAhead"in e?e.baseCommitsAhead??null:null,heal_kind:"healKind"in e?e.healKind??null:null,detail:e.detail??null,exit_code:e.exitCode??null,signal:e.signal??null,reason:"reason"in e?e.reason??null:null}}var xT="daemon:";function ET(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${xT}${e.pid}`,project_label:"",pid:e.pid,workspace_path:e.socketPath,fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:e.detail,exit_code:null,signal:e.signal??null,reason:e.reason}}function vT(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 Gh(e){let t=Mt({trailer:!1}),r=Promise.resolve();async function n(o){let s=r.then(async()=>{await mT(wT(e),{recursive:!0,mode:448}),await ST(e),await hT(e,t.push(CT(o)),{encoding:"utf8",mode:384})});return r=s.catch(()=>{}),await s,o}return{path:e,record:o=>n(da(o)),recordWorker:o=>n(da(o)),recordDemandRefusal:o=>n(vT(o)),recordDaemonStop:o=>n(ET(o)),read:()=>TT(e),flush:async()=>{await r}}}async function ST(e){let t;try{t=(await kT(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await bT(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 $h(e,s-i+l+1);return}}await $h(e,0)}finally{await n.close()}}async function TT(e){let t;try{t=await yT(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return PT(t)}function PT(e){let t=e.split(`
62
- `);return t.pop(),t.length===0?[]:xr(`${t.join(`
58
+ `}function aS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=ot(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function Hg(e,t){return!Gg(e)||!Gg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Gg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Ug=new Set;function qg(e){return Ug.has(e)?"json":iS}function Kg(e){Ug.add(e)}var gS=108;async function oa(e,t,r="resident server"){let n=e.wire,o=n??qg(e.socketPath),s=await Vg(e,t,r,o);return n||o==="json"||!Hg(t,s)?s:(Kg(e.socketPath),await Vg(e,t,r,"json"))}async function Vg(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=pS(e.socketPath),l=!1,d="",c=setTimeout(()=>{u(()=>i(new Error(`${r} timed out`))),a.destroy()},o);function u(p){l||(l=!0,clearTimeout(c),p())}a.on("connect",()=>{a.write(Id(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Od(d);g&&(d=g.rest,u(()=>{try{s(Fd(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",p=>u(()=>i(p))),a.on("close",()=>{l||u(()=>i(new Error(`${r} closed without response`)))})})}function Qg(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Od(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Id(a,s.dialect))}catch{}};(async()=>{let a;try{a=Fd(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function hS(e){await zg(Yg(e),{recursive:!0,mode:448});try{return await dS(e,Md.O_CREAT|Md.O_EXCL|Md.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var mS=6e4,Xg="resident-spawn-lock v1",bS=3;async function Zg(e,t={}){let r=t.maxAgeMs??mS,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Qe;await zg(Yg(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await hS(e);if(l)return await l.writeFile(`${Xg} pid=${o} taken=${new Date(n()).toISOString()}
59
+ `).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await kS(e),c=await RS(e,d,n());if(a>=bS||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=yS(d,c,r,s);if(u==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let p={lockPath:e,reason:u,holder:d,ageMs:c};await Jg(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function eh(e){await e.handle.close().catch(()=>{}),await Jg(e.lockPath,{force:!0})}function yS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function th(e){let t=e.ageMs==null?"of unknown age":`taken ${Math.round(e.ageMs/1e3)}s ago`,r=e.holder==null?"an owner it does not name":`pid ${e.holder.pid} (at ${e.holder.takenAt})`;return`no spawn was attempted: the spawn lock ${JSON.stringify(e.lockPath)} is held by ${r}, ${t}. If that process is gone, remove the file to clear it`}async function kS(e){try{return wS(await cS(e,"utf8"))}catch{return null}}function wS(e){let t=e.split(`
60
+ `,1)[0]?.trim()??"";if(!t.startsWith(Xg))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function RS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await uS(e)).mtimeMs)}catch{return null}}function Qe(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var _S="/tmp";function sa(e){let t=e.env??process.env,r=lS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Es(l,e.socketFileName).length<gS,o=t.XDG_RUNTIME_DIR;if(o){let l=Es(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Es(`red-skills-${s}`,r),a=Es(fS(),i);return n(a)||process.platform==="win32"?a:Es(_S,i)}zr();import{homedir as qS}from"node:os";import{join as Vd}from"node:path";import{spawnSync as KS}from"node:child_process";import{createHash as VS}from"node:crypto";import{existsSync as zS,readdirSync as JS}from"node:fs";import{mkdir as dh,readFile as YS,rename as QS,writeFile as XS}from"node:fs/promises";import{dirname as ZS}from"node:path";var Nn="@reddb-io/red-skills",FS="https://registry.npmjs.org",IS="canary",$n=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},MS=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Wd(e){return typeof e=="string"&&MS.test(e.trim())}function sh(e){return`${e}-.bundle.min.mjs`}var LS=".unversioned";function jS(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Wd(t))throw new $n("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${sh(e)}, a name no resolver prefers and one whose mere existence satisfies the cache-first test forever (#3153)`);return`${e}-${t.trim()}.bundle.min.mjs`}function da(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return Ts(n,jS(t,r,o))}function BS(e){return e==="dev"?["rsp","redskilled"]:[]}function $S(e){return`${e}.bundle.min.mjs`}function NS(e){return Ts("dist",$S(e))}function GS(e,t="stable"){return`${Nn}@${t==="canary"?IS:e}`}function Hd(e=Nn){return`${FS}/${e.replace("/","%2F")}`}async function Ud(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=da({plugin:r,version:n,cacheDir:o,channel:s}),a=BS(r),l=a.map(p=>da({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await HS(e,l))return i;let d=GS(n,s),c=Ts(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw lh(p,d)}for(let p of[r,...a]){let g=NS(p),f=Ts(u,g);if(!await e.exists(f))throw new $n("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:da({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await WS(e,o,[r,...a]),i}async function WS(e,t,r){if(e.rename)for(let n of r){let o=Ts(t,sh(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${LS}`)}catch{}}}async function HS(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function ih(e,t,r=Nn){let n;try{n=await e.fetchText(Hd(r))}catch(s){throw lh(s,r)}let o=qd(n);return{sameMajor:US(o,t),newest:Kd(o)}}function qd(e){let t;try{t=JSON.parse(e)}catch{return[]}if(typeof t!="object"||t===null)return[];let r=t.versions;return typeof r!="object"||r===null?[]:Object.keys(r)}function US(e,t){let r=Gd(t);if(r===null)return null;let n=null;for(let o of e)Gd(o)===r&&(n===null||ah(o,n)>0)&&(n=o);return n}function Kd(e){let t=null;for(let r of e){let n=String(r).trim();Gd(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||ah(n,t)>0)&&(t=n)}return t}function Gd(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function ah(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e.trim()),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t.trim());return!r||!n?0:Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function lh(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new $n("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new $n("package-missing",`npm could not resolve ${t}: ${r}`,e):new $n("network",`failed to resolve ${t}: ${r}`,e)}function Ts(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}zr();var ch={async materialize(e,t){await dh(t,{recursive:!0});let r=KS("npm",["install",e,"--prefix",t,"--no-save","--no-audit","--no-fund","--ignore-scripts","--loglevel=error"],{stdio:["ignore","ignore","pipe"],encoding:"utf8"});if(r.error)throw r.error;if(r.status!==0)throw new Error(`npm install ${e} -> ${r.status}: ${(r.stderr||"").trim()}`);return Vd(t,"node_modules",...Nn.split("/"))},async readFile(e){return new Uint8Array(await YS(e))},async writeFile(e,t){await dh(ZS(e),{recursive:!0}),await XS(e,t)},async exists(e){return zS(e)},sha256(e){return VS("sha256").update(e).digest("hex")},async fetchText(e){let t=await fetch(e,{redirect:"follow"});if(!t.ok)throw new Error(`GET ${e} -> ${t.status}`);return await t.text()},async rename(e,t){await QS(e,t)}},eT="redskilled";function tT(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vd(e.HOME||qS(),".cache");return Vd(t,"red-skills","bundles")}var rT=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function nT(e,t){if(Wd(e.version))return e.version.trim();let r=e.listCacheDir??iT,n=oT(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??ch).fetchText(Hd());return Kd(qd(s))}catch{return null}}function oT(e,t){let r=null;for(let n of e){let o=rT.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||sT(s,r)>0)&&(r=s)}return r}function sT(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t);return Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function iT(e){try{return JS(e)}catch{return[]}}async function aT(e={},t={},r={}){let n=un(e,t);if(Pr(n))return n;let o=r.env??t.env??process.env,s=tT(o),i=await nT(r,s);if(i===null)return n;try{await Ud(r.bundleIO??ch,{plugin:eT,version:i,cacheDir:s})}catch{return n}return un(e,t)}async function uh(e={},t={},r={}){let n=await aT(e,t,r);if(Pr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(zr(),oh));throw new o(n)}var Ao=3e5,ph=1e4,fh=6e4,gh=15e3,zd=3e4,hh=zd*2,mh=6e4,Ps=16;function bh(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill")return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,s=t.startedAt==null?null:Date.parse(t.startedAt),i=Date.parse(e.ts),a=s!=null&&Number.isFinite(s)&&Number.isFinite(i)?Math.max(0,i-s)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":"unknown",confidence:r||n?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n?[o]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${o}`],project_label:e.project_label,...a===void 0?{}:{uptime_s:a},detail:t.refusal??e.detail}}function Jd(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var yh="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as D0}from"node:crypto";import{mkdir as E1,rm as v1}from"node:fs/promises";import{dirname as S1}from"node:path";import{randomUUID as kh}from"node:crypto";import{rm as lT}from"node:fs/promises";import{connect as dT,createServer as cT}from"node:net";var Ar=class extends Error{constructor(r,n){super(`a redskilled daemon already owns ${JSON.stringify(r)}`);this.socketPath=r;this.lease=n;this.name="RedskilledAlreadyRunningError"}};async function Yd(e,t=250){return await new Promise(r=>{let n=dT(e),o=!1,s=a=>{o||(o=!0,clearTimeout(i),n.destroy(),r(a))},i=setTimeout(()=>s("unknown"),t);i.unref?.(),n.once("connect",()=>s("owned")),n.once("error",a=>{s(a.code==="ECONNREFUSED"||a.code==="ENOENT"?"unowned":"unknown")})})}async function wh(e,t){for(let r=0;r<2;r++){let n=cT();try{return await new Promise((o,s)=>{n.once("error",s),n.listen(e,()=>{n.off("error",s),o()})}),n}catch(o){if(n.close(),o.code!=="EADDRINUSE")throw o;if(await Yd(e)!=="unowned")throw new Ar(e);if(await t?.())throw new Ar(e);await lT(e,{force:!0})}}throw new Ar(e)}async function zt(e,t=250){try{return(await oa({socketPath:e,timeoutMs:t},{id:kh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Rh(e,t){Qg(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??kh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Ah(e){return{generated_at:e.now,hour:xh("hour",36e5,e),day:xh("day",864e5,e),history_48h:uT(e)}}function uT(e){let t=pn(e.now),r=t==null?null:Math.floor(t/36e5)*36e5,n=r==null?null:r-47*36e5,o=Array.from({length:48},(d,c)=>n==null?null:n+c*36e5),s=pT(e.observations,o,t),i=o.map((d,c)=>({hour:d==null?e.now:new Date(d).toISOString(),value:s[c]??null,absent_reason:s[c]==null?"no token samples span this hour":null})),a=e.outcomes.map(d=>pn(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:_h(i),tickets_per_hour:_h(l)}}function pT(e,t,r){if(r==null||t.some(i=>i==null))return t.map(()=>null);let n=new Map;for(let i of e){let a=pn(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],y=Math.min(f+36e5,r),h=Math.max(0,Math.min(c.at,y)-Math.max(d.at,f));h!==0&&(a[g].tokens+=p*(h/u),a[g].duration+=h)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function _h(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Gn(e,t,r){let n=pn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=pn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function xh(e,t,r){let n=pn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:pn(u.observed_at)})).filter(u=>u.at!=null&&Sh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>pn(u.ts)).filter(u=>u!=null&&Sh(u,o,n)),l=Eh(i,u=>u.tokens,"tokens",s),d=Eh(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:fT(a.length,t,s),runner_share:vh("runner",i,u=>u.runner,s),model_share:vh("model",i,u=>u.model,s),unavailable:c}}function Eh(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function fT(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function vh(e,t,r,n){let o=new Map;for(let d of t){let c=r(d.observation);c!=null?o.set(d.observation.worker_id,c):o.has(d.observation.worker_id)||o.set(d.observation.worker_id,null)}let s=new Map,i=0,a=0;for(let d of o.values()){if(d==null){a+=1;continue}i+=1,s.set(d,(s.get(d)??0)+1)}let l=[...s.entries()].map(([d,c])=>({key:d,worker_count:c,share:c/i})).sort((d,c)=>c.worker_count-d.worker_count||d.key.localeCompare(c.key));return{dimension:e,attributed_workers:i,unattributed_workers:a,shares:l,absent_reason:l.length>0?null:o.size===0?`no Worker was observed in the last ${n}`:`no Worker published a ${e} in the last ${n}`}}function Sh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function pn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ch(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Ph(t.hour)&&Ph(t.day)&&(t.history_48h===void 0||gT(t.history_48h))}function gT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Th(t.tokens_per_hour)&&Th(t.tickets_per_hour)}function Th(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function Ph(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&Qd(t.tokens_per_min)&&Qd(t.tools_per_min)&&Qd(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Qd(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.value===null||typeof t.value=="number")&&(t.absent_reason===null||typeof t.absent_reason=="string")&&Number.isInteger(t.samples)}function Dh(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Gn([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function Oh(e,t){return Gn(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as Mh,totalmem as mT}from"node:os";function As(e){if(e.applied_budget!=null)return e.applied_budget;let t=e.budget??{};return t.memory_max==null&&t.memory_high==null&&e.memory_ceiling!=null?{...t,memory_max:e.memory_ceiling}:t}function Fh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=As(d),u=!1;for(let[p,g]of[[c.memory_high,f=>r+=f],[c.memory_max,f=>n+=f]]){if(p==null)continue;let f=Co(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:hT(e.length,n,a,l)}}function hT(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function Co(e){let t=/^\s*(\d+(?:\.\d+)?)\s*([KMGT]?)(?:B)?\s*$/i.exec(e);if(!t)return null;let r={"":1,k:1024,m:1024**2,g:1024**3,t:1024**4}[t[2].toLowerCase()];return Math.round(Number(t[1])*r)}function Ih(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Number.isInteger(t.worker_count)&&typeof t.memory_high_bytes=="number"&&typeof t.memory_max_bytes=="number"&&typeof t.cpu_weight_total=="number"&&Array.isArray(t.unaccounted_workers)&&Array.isArray(t.unisolated_workers)}var Lh="REDSKILLED_MEMORY_CEILING",Zd="REDSKILLED_WORKER_CEILING",Nh="REDSKILLED_VALIDATION_CEILING",jh="REDSKILLED_INTERACTIVE_RESERVATION",Cs=1,Bh=.7,bT=2*1024**3,yT=2;function Gh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Co(t)}function ua(e){let t=0,r=[];for(let n of e){let o=Gh(n.budget);o===null?r.push(n.worker_id):o!==void 0&&(t+=o)}return{worker_count:e.length,memory_bytes:t,unaccounted_workers:r.sort()}}function Wh(e){let{ceiling:t}=e,r=ua(e.workers),n=Gh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??Cs),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function Hh(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=ua(e.workers),n=e.ceiling.memory_bytes-r.memory_bytes,o=e.ceiling.worker_count,s=o==null?n:Math.floor(e.ceiling.memory_bytes/o),i=Math.min(n,s);if(i<=0)return{memory_max:null,reason:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes is already fully committed to ${r.worker_count} Worker(s), so no positive per-Worker ceiling can be derived; the daemon's RSS sampling floor is the only remaining ceiling`};let a=o==null?`the headroom under this host's memory ceiling of ${e.ceiling.memory_bytes} bytes; this host declares no Worker slot count (${Zd} is unset), so this ceiling is a per-Worker wall and not memory the host sets aside \u2014 N Workers may carry N such walls, and the host ceiling is not enforced host-wide. Declare a slot count to make it divide into shares that sum to it`:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes shared across its ${o} Worker slot(s)`;return{memory_max:String(i),reason:`derived from ${a} (ceiling source: ${e.ceiling.source})`}}function pa(e=process.env,t=mT(),r={}){let n=Xd(r.flags?.memoryCeiling,e[Lh],r.config?.memoryCeiling),o=Xd(r.flags?.workerCeiling,e[Zd],r.config?.workerCeiling),s=Xd(r.flags?.validationCeiling,e[Nh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[jh]??"").trim(),d=Uh(a),c=l===""?Cs:RT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!kT(a)&&(ca(`redskilled: ${ec(o)} ${Zd}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=wT(i,t);if(p!==void 0)return $h({memory_bytes:p,worker_count:d,interactive_reservation:c??Cs,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Mh());ca(`redskilled: ${ec(n)} ${Lh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Bh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&ca(`redskilled: ${jh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Cs} Worker(s) instead.`),$h({memory_bytes:Math.floor(t*Bh),worker_count:d,interactive_reservation:c??Cs,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Mh())}function $h(e,t,r){if(t!==void 0){let i=Uh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};ca(`redskilled: ${ec(t)} ${Nh}=${JSON.stringify(t.value)} is not a positive integer; deriving the validation ceiling from host CPU, memory, and Worker capacity instead.`)}let n=Math.max(1,Math.floor(Math.max(1,r)/yT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/bT)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Xd(e,t,r){if(e?.trim())return{value:e.trim(),source:"flag"};if(t?.trim())return{value:t.trim(),source:"environment"};if(r?.trim())return{value:r.trim(),source:"home-config"}}function ec(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function kT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var ca=e=>process.stderr.write(`${e}
61
+ `);function wT(e,t){let r=e.toLowerCase();if(["infinity","none","off","unbounded"].includes(r))return null;let n=/^(\d+(?:\.\d+)?)\s*%$/.exec(e);return n?Math.floor(t*(Number(n[1])/100)):Co(e)??void 0}function Uh(e){if(e===""||["infinity","none","off","unbounded"].includes(e.toLowerCase()))return null;let t=Number(e);return Number.isSafeInteger(t)&&t>0?t:null}function RT(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as _T,mkdir as xT,open as ET,readFile as vT,stat as ST,truncate as qh}from"node:fs/promises";import{dirname as TT}from"node:path";var PT=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],AT=["demand-refusal","daemon-stop"],Kh="redskilled.log.toonl";function fa(e){let t=e.worker.budget??{},r="kind"in e?e.kind:e.event;return{version:1,ts:e.ts,kind:r,event:r,worker_id:e.worker.worker_id,project_label:e.worker.project_label,pid:e.worker.pid,workspace_path:e.worker.workspace_path,fork_sha:e.worker.fork_sha??null,log_path:e.worker.log_path??null,isolated:e.worker.isolated,unit:e.worker.unit??null,memory_high:t.memory_high??null,memory_max:t.memory_max??null,cpu_weight:t.cpu_weight??null,admission_verdict:"admissionVerdict"in e?e.admissionVerdict??null:null,phase:"phase"in e?e.phase??null:null,step:"step"in e?e.step??null:null,tokens:"tokens"in e?e.tokens??null:null,tools:"tools"in e?e.tools??null:null,runner:"runner"in e?e.runner??null:null,model:"model"in e?e.model??null:null,base_head_sha:"baseHeadSha"in e?e.baseHeadSha??null:null,base_commits_ahead:"baseCommitsAhead"in e?e.baseCommitsAhead??null:null,heal_kind:"healKind"in e?e.healKind??null:null,detail:e.detail??null,exit_code:e.exitCode??null,signal:e.signal??null,reason:"reason"in e?e.reason??null:null}}var CT="daemon:";function DT(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${CT}${e.pid}`,project_label:"",pid:e.pid,workspace_path:e.socketPath,fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:e.detail,exit_code:null,signal:e.signal??null,reason:e.reason}}function OT(e){return{version:1,ts:e.ts,kind:"demand-refusal",event:"demand-refusal",worker_id:`demand:${e.projectLabel}`,project_label:e.projectLabel,pid:0,workspace_path:"",fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:e.detail,exit_code:null,signal:null,reason:null}}function Vh(e){let t=Lt({trailer:!1}),r=Promise.resolve();async function n(o){let s=r.then(async()=>{await xT(TT(e),{recursive:!0,mode:448}),await FT(e),await _T(e,t.push(jT(o)),{encoding:"utf8",mode:384})});return r=s.catch(()=>{}),await s,o}return{path:e,record:o=>n(fa(o)),recordWorker:o=>n(fa(o)),recordDemandRefusal:o=>n(OT(o)),recordDaemonStop:o=>n(DT(o)),read:()=>IT(e),flush:async()=>{await r}}}async function FT(e){let t;try{t=(await ST(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await ET(e,"r");try{let o=Buffer.alloc(1);if(await n.read(o,0,1,t-1),o[0]===10)return;for(let s=t;s>0;s-=r){let i=Math.min(r,s),a=Buffer.alloc(i);await n.read(a,0,i,s-i);let l=a.lastIndexOf(10);if(l>=0){await qh(e,s-i+l+1);return}}await qh(e,0)}finally{await n.close()}}async function IT(e){let t;try{t=await vT(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return MT(t)}function MT(e){let t=e.split(`
62
+ `);return t.pop(),t.length===0?[]:Sr(`${t.join(`
63
63
  `)}
64
- `).filter(OT).map(DT)}function Wh(e){let t=new Map;for(let r of e)r.kind==="daemon-stop"||r.kind==="demand-refusal"||(r.kind==="worker-birth"?t.set(r.worker_id,AT(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function AT(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function CT(e){return{...e}}function OT(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...RT,..._T].includes(t)}function DT(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function Hh(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target),d)-a);if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,k=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:k,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 b=0;b<k;b+=1)(s[b]??(s[b]=[])).push({project_label:i.project_label,index:a+b,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Uh(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function qh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var Es={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Kh(e,t,r){if(t>=6e4)return Es;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 Vh(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function Yd(){return Es}function FT(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 zh(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>FT(r,n,t)).filter(r=>r!=null)}function Yh(e){let t=e.workers.map(IT),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:LT({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function Qh(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 IT(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,survives:!0}}function MT(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 LT(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${MT(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${Jh(e.held,"Worker")} across ${Jh(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 a Worker is an init-system unit, so this is a restart and not an evacuation`}function Jh(e,t){return`${e} ${t}${e===1?"":"s"}`}function Qd(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as jT,mkdir as BT,readFile as $T,rm as NT,writeFile as GT}from"node:fs/promises";import{dirname as Xh,join as rm}from"node:path";import{tmpdir as Zh}from"node:os";var WT="redskilled.machine.claim.toon",Zd="REDSKILLED_MACHINE_DIR",HT=8,qr=class extends Error{constructor(r,n,o){super(qT(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},em;function ca(){return em??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},em}function UT(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[Zd]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||Zh():Zh();return rm(o,`redskilled-${e.machineIdHash}`)}function Eo(e){return rm(UT(e),WT)}function vs(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){let l;try{l=await $T(e,"utf8")}catch(c){if(c.code==="ENOENT"||Xd(c))return;throw c}let d=VT(l);return zT(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 NT(e,{force:!0}),!0}catch(l){if(Xd(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await BT(Xh(e),{recursive:!0,mode:1023})!=null&&await jT(Xh(e),1023).catch(()=>{});let c=!1;for(let u=0;u<HT;u+=1){let p=i(l,n());try{return await GT(e,KT(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Xd(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(tm(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||!tm(d,l,t.socketPath)?!1:await a()}}}function nm(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 om(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 qT(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 Xd(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function tm(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function KT(e){return`${ot(e,{keyedMapCollapse:!0})}
65
- `}function VT(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function zT(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 JT=["worker_id","slot","workspace_path","log_path"],ua=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${JT.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},sm=/\{\{([a-z_]+)\}\}/g;function YT(e,t){let r=(i,a)=>i.replace(sm,(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 ua(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 im(e,t){if(!(e==null||e.trim()===""))return e.replace(sm,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ua(n,"the log path")}})}function am(e,t,r){let n=YT(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 ec(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 tc(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 rc(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}var QT=3e5,XT=.5,nc=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 lm(e,t){if(t.held!=null)throw new nc(t.held);let r=Ss(e.project_label,"a project label"),n=Ss(e.selector,"a selector"),o=rP(e.queue_poll,r),s=ec(e.argv,r),i=rc(e.env,r),a=tc(e.log_path,r),l=Ss(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),d=e.trunk==null?void 0:{remote:Ss(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Ss(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let c=e.renew_within_ms??QT;if(!Number.isFinite(c)||c<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let u=Date.parse(t.now);if(!Number.isFinite(u))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:l,...d==null?{}:{trunk:d},env:i,...a==null?{}:{log_path:a},target:e.target,registered_at:new Date(u).toISOString(),renew_within_ms:c,renew_by:new Date(u+c).toISOString(),renewed_at:new Date(u).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var jn=class extends Error{constructor(r,n={kind:"never"}){super(ZT(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function ZT(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 dm(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:ec(t.launch.argv,e.project_label),env:rc(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:tc(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 oc(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 eP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function cm(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*XT;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 um(e,t){let r=[],n=[];for(let o of e)(eP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Ts(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||pm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||tP(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||nP(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function tP(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 rP(e,t){if(e!==void 0){if(!pm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function pm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(r=>typeof r=="string"&&r!=="")&&(t.creator===void 0||typeof t.creator=="string")}function nP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Ss(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var oP={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 fm(e){return`worker-${e}`}function gm(e){let t=oP[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 hm(e){return e==="single-object"?"rest":"graphql"}function mm(e,t){return e==="stable-poll"?"rest":hm(t)}function zt(e){return{none:e}}function st(e,t,r,n,o,s,i){let a=typeof o=="string"?{fallback:o}:{fallback:null,noFallbackBecause:o.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??mm(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ot(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var bm=[st("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),st("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),st("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),st("run view","single-object","stable-poll","rest",zt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",zt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),st("pr diff","single-object","one-shot","rest",zt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),st("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),st("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),st("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),st("release list","multi-node","stable-poll","rest",zt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",zt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),st("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),st("issue list (search)","multi-node","stable-poll","search",zt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),st("pr list (search)","multi-node","stable-poll","search",zt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),st("search issues","multi-repository","one-shot","search",zt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search prs","multi-repository","one-shot","search",zt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search repos","multi-repository","one-shot","search",zt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("api graphql","multi-node","one-shot","graphql",zt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),st("api rest","single-object","one-shot","rest",zt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ot("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ot("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ot("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ot("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ot("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ot("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ot("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ot("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ot("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ot("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ot("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ot("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ot("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ot("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],sP=new Map(bm.map(e=>[e.key,e]));function ym(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 sc(e){let t=ym(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 pa=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=sc(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 km(e){return sP.get(sc(e))??null}function wm(e){let t=km(e);if(!t)throw new pa(e);return t}function ic(e){return wm(e).surface}import{appendFile as iP,mkdir as aP,readFile as lP}from"node:fs/promises";import{dirname as dP}from"node:path";function fa(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=cP(n.operation,n.cost,n.observedAt??t(),n.actor),s=Mt().push(pP(o));return r=r.then(async()=>{await aP(dP(e.path),{recursive:!0}),await iP(e.path,s,"utf8")}),r},async report(n){await r;let o=ac(n.from,"report window start"),s=ac(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await uP(e.path),a=new Map;for(let d of i.observations){let c=Date.parse(d.observed_at);if(c<o||c>=s||n.pool!==void 0&&d.pool!==n.pool)continue;let u=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,p=a.get(u);a.set(u,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+d.cost})}let l=[...a.values()].sort((d,c)=>c.cost-d.cost||c.count-d.count||d.operation_key.localeCompare(c.operation_key)||d.pool.localeCompare(c.pool)||(d.actor??"").localeCompare(c.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:l.reduce((d,c)=>d+c.count,0),total_cost:l.reduce((d,c)=>d+c.cost,0),operations:l,unreadable_records:i.unreadable}}}}function cP(e,t,r,n){if(ac(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 uP(e){let t;try{t=await lP(e,"utf8")}catch(s){if(hP(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
66
- `);for(let s=0;s<o.length;s+=1){let i=o[s];if(i.trim()==="")continue;let a=o[s+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let l;try{l=xr(`${i}
64
+ `).filter(BT).map($T)}function zh(e){let t=new Map;for(let r of e)r.kind==="daemon-stop"||r.kind==="demand-refusal"||(r.kind==="worker-birth"?t.set(r.worker_id,LT(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function LT(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function jT(e){return{...e}}function BT(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...PT,...AT].includes(t)}function $T(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function Jh(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target),d)-a);if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,y=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:y,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let h=0;h<y;h+=1)(s[h]??(s[h]=[])).push({project_label:i.project_label,index:a+h,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Yh(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Qh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var Ds={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Xh(e,t,r){if(t>=6e4)return Ds;let n=e.shortLifeStreak+1;return!(e.haltUntilMs!=null||e.probeWorkerId!=null)&&n<3?{shortLifeStreak:n,haltUntilMs:null,openedAtMs:null,probeWorkerId:null}:{shortLifeStreak:n,haltUntilMs:r+6e5,openedAtMs:r,probeWorkerId:null}}function Zh(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function tc(){return Ds}function NT(e,t,r){if(t.haltUntilMs==null||t.openedAtMs==null)return null;let n=r>=t.haltUntilMs;return{name:"project-birth-breaker",project_label:e,state:n?"half-open":"open",opened_at:new Date(t.openedAtMs).toISOString(),reason:`${t.shortLifeStreak} Workers from this project died before surviving 60000ms`,closes:n?t.probeWorkerId==null?"the next demand tick admits one probe Worker; surviving the short-life window closes the latch":`probe Worker ${JSON.stringify(t.probeWorkerId)} surviving 60000ms closes the latch; a fast death re-opens it with a fresh cooldown`:`the cooldown ends at ${new Date(t.haltUntilMs).toISOString()}, then one probe Worker is admitted; surviving the short-life window closes the latch`,probe_worker_id:t.probeWorkerId,repair:{tool:"project_reset",args:{latch:"project-birth-breaker"},why:"clear the project's birth-breaker history and allow the next demand tick to birth normally"}}}function em(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>NT(r,n,t)).filter(r=>r!=null)}function rm(e){let t=e.workers.map(GT),r=[...new Set([...t.map(o=>o.project_label),...e.projects??[]])].filter(o=>o!=="").sort(),n=t.filter(o=>o.survives).map(o=>o.worker_id);return{version:1,running:!0,stopped:!0,reason:e.reason,socket_path:e.socketPath,daemon_version:e.daemonVersion,pid:e.pid,holding:{workers:t,projects:r},surviving:n,detail:HT({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function nm(e){return{version:1,running:!1,stopped:!1,reason:"not-running",socket_path:e,daemon_version:null,pid:null,holding:{workers:[],projects:[]},surviving:[],detail:`no redskilled daemon is answering on ${JSON.stringify(e)}, so there was nothing to stop`}}function GT(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,survives:!0}}function WT(e){return e==="requested"?"an operator asked for it":e==="signal"?"the daemon was signalled":e==="idle"?"the daemon was idle and held nothing":e==="replaced"?"a newer published bundle is taking the session over":"no daemon was running"}function HT(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${WT(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${tm(e.held,"Worker")} across ${tm(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 a Worker is an init-system unit, so this is a restart and not an evacuation`}function tm(e,t){return`${e} ${t}${e===1?"":"s"}`}function rc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as UT,mkdir as qT,readFile as KT,rm as VT,writeFile as zT}from"node:fs/promises";import{dirname as om,join as lm}from"node:path";import{tmpdir as sm}from"node:os";var JT="redskilled.machine.claim.toon",oc="REDSKILLED_MACHINE_DIR",YT=8,Jr=class extends Error{constructor(r,n,o){super(XT(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},im;function ga(){return im??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},im}function QT(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[oc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||sm():sm();return lm(o,`redskilled-${e.machineIdHash}`)}function Do(e){return lm(QT(e),JT)}function Os(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){let l;try{l=await KT(e,"utf8")}catch(c){if(c.code==="ENOENT"||nc(c))return;throw c}let d=eP(l);return tP(d)?d:void 0}function i(l,d){return{version:1,scope:"machine",pid:l.pid,start_time:l.startTime,uid:l.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}async function a(){try{return await VT(e,{force:!0}),!0}catch(l){if(nc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await qT(om(e),{recursive:!0,mode:1023})!=null&&await UT(om(e),1023).catch(()=>{});let c=!1;for(let u=0;u<YT;u+=1){let p=i(l,n());try{return await zT(e,ZT(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(nc(f))return{claimed:!1,reason:"stale-claim-not-reapable"};throw f}}let g=await s();if(!g){if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable"};c=!0;continue}if(am(g,l,t.socketPath))return{claimed:!0,reaped:c,claim:g};if(await o(g.pid))return{claimed:!1,reason:"held",claim:g};if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable",claim:g};c=!0}return{claimed:!1,reason:"contended"}},async release(l){let d=await s();return!d||!am(d,l,t.socketPath)?!1:await a()}}}function dm(e,t,r){return{kind:"machine",claim_path:e,owner_uid:r.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath}}function cm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.kind==="machine"&&typeof t.claim_path=="string"&&typeof t.owner_uid=="number"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&typeof t.socket_path=="string"}function XT(e,t,r){let n=r==null?"":` \u2014 held by pid ${r.pid} (uid ${r.uid}) on socket ${JSON.stringify(r.socket_path)}`;return t==="held"?`this machine already has a redskilled daemon${n}; a second one would void the host budget, so none was started. Reach that daemon, or stop it before starting another.`:t==="stale-claim-not-reapable"?`the redskilled machine claim ${JSON.stringify(e)} is stale and cannot be removed by this user${n}; remove it as its owner, then start again. No second daemon was started.`:`the redskilled machine claim ${JSON.stringify(e)} changed hands repeatedly; no daemon was started.`}function nc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function am(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function ZT(e){return`${ot(e,{keyedMapCollapse:!0})}
65
+ `}function eP(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function tP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.scope!=="machine"||!Number.isInteger(t.pid)||t.pid<=0||!Number.isInteger(t.uid))return!1;for(let r of["start_time","machine_id_hash","session_key_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}var rP=["worker_id","slot","workspace_path","log_path"],ha=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${rP.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},um=/\{\{([a-z_]+)\}\}/g;function nP(e,t){let r=(i,a)=>i.replace(um,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new ha(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function pm(e,t){if(!(e==null||e.trim()===""))return e.replace(um,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ha(n,"the log path")}})}function fm(e,t,r){let n=nP(e,t),o=n.log_path??t.log_path,[s,...i]=n.argv;if(s===void 0||s==="")throw new Error(`redskilled cannot start a Worker for project ${JSON.stringify(r.project_label)}: its launch expanded to an argv with no command`);return{worker_id:t.worker_id,project_label:r.project_label,workspace_path:t.workspace_path,...o==null||o===""?{}:{log_path:o},command:s,args:i,env:n.env}}function sc(e,t){if(!Array.isArray(e)||e.length===0)throw new Error(`redskilled needs an argv to register project ${JSON.stringify(t)}: a registration with nothing to run is a project the host could never start a Worker for`);return e.map((r,n)=>{if(typeof r!="string"||r==="")throw new Error(`redskilled needs every word of an argv to be a non-empty string, and word ${n} of project ${JSON.stringify(t)} is not`);return r})}function ic(e,t){if(e!=null){if(typeof e!="string"||e.trim()==="")throw new Error(`redskilled needs a declared log path to be a non-empty string to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}: a project that declares an empty path states a Worker whose output no surface can ever show, which reads as a Worker with nothing to say`);return e}}function ac(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}var oP=3e5,sP=.5,lc=class extends Error{constructor(r){super(`redskilled already holds a registration for project ${JSON.stringify(r.project_label)}, registered at ${r.registered_at} for a target of ${r.target} and standing until ${r.renew_by}: a project contributes one registration, so a second one is refused rather than silently replacing the first`);this.held=r;this.name="RedskilledProjectRegisteredError"}};function gm(e,t){if(t.held!=null)throw new lc(t.held);let r=Fs(e.project_label,"a project label"),n=Fs(e.selector,"a selector"),o=dP(e.queue_poll,r),s=sc(e.argv,r),i=ac(e.env,r),a=ic(e.log_path,r),l=Fs(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),d=e.trunk==null?void 0:{remote:Fs(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Fs(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let c=e.renew_within_ms??oP;if(!Number.isFinite(c)||c<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let u=Date.parse(t.now);if(!Number.isFinite(u))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:l,...d==null?{}:{trunk:d},env:i,...a==null?{}:{log_path:a},target:e.target,registered_at:new Date(u).toISOString(),renew_within_ms:c,renew_by:new Date(u+c).toISOString(),renewed_at:new Date(u).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var Wn=class extends Error{constructor(r,n={kind:"never"}){super(iP(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function iP(e,t){let r=JSON.stringify(e);if(t.kind==="lapsed"){let n=t.registered_at==null?"":` (registered ${t.registered_at})`;return`redskilled holds no registration for project ${r} to renew: it lapsed at ${t.at}${n}; renewal stopped \u2014 find why before registering it again`}return t.kind==="stopped"?`redskilled holds no registration for project ${r} to renew: it was stopped at ${t.at}; this is the requested state, so there is nothing to renew`:t.kind==="orphaned"?`redskilled holds no registration for project ${r} to renew: it is registered on a daemon this socket does not reach \u2014 do not register it again`:`redskilled holds no registration for project ${r} to renew: it was never registered on this host; register it first, stating the selector, the argv and the target`}function hm(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to date a renewal, not ${JSON.stringify(t.now)}`);let n=t.renew_within_ms??e.renew_within_ms;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled needs a positive renewal window to renew project ${JSON.stringify(e.project_label)}, not ${JSON.stringify(t.renew_within_ms)}`);let o=t.launch==null?{env:e.env??{},launch_revision:e.launch_revision??0}:{argv:sc(t.launch.argv,e.project_label),env:ac(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:ic(t.launch.log_path,e.project_label),{log_path:i,...a}=e;return{...a,...s==null?{}:{log_path:s},...o,renew_within_ms:n,renewed_at:new Date(r).toISOString(),renew_by:new Date(r+n).toISOString(),renewals:e.renewals+1,session_renewals:(e.session_renewals??e.renewals)+1}}function dc(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to sustain a registration, not ${JSON.stringify(t.now)}`);let n=JSON.stringify(e.project_label),o=Math.max(0,t.liveWorkers??0),s=t.queue,i=s!=null&&s.outcome==="counted"?s.depth:null,a=i!=null&&i>0?"open-work":o>0?"live-worker":null;if(a==null){let l=i===0?"drained":"uncounted";return{registration:e,verdict:l,detail:l==="drained"?`project ${n} has nothing queued and no Worker running, so nothing holds its registration up and it lapses at ${e.renew_by}`:`no poll counted project ${n}, and an uncounted queue never sustains a registration \u2014 it stands on its own deadline of ${e.renew_by}`}}return{registration:{...e,renew_by:new Date(r+e.renew_within_ms).toISOString(),sustained_at:new Date(r).toISOString(),sustains:(e.sustains??0)+1,sustained_by:a,renewals:e.renewals+1,session_renewals:e.session_renewals??e.renewals},verdict:a,detail:a==="open-work"?`project ${n} has ${i} item(s) queued, so its registration stands past its window`:`project ${n} holds ${o} Worker(s), so its registration stands past its window`}}function aP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function mm(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*sP;if(n(r))return"renewing";let o=e.sustained_at==null?Number.NaN:Date.parse(e.sustained_at);return n(o)?"self-renewing":"running-on"}function bm(e,t){let r=[],n=[];for(let o of e)(aP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Is(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.project_label=="string"&&typeof t.selector=="string"&&(t.queue_poll===void 0||ym(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||lP(t.trunk))&&Number.isInteger(t.target)&&typeof t.registered_at=="string"&&typeof t.renew_within_ms=="number"&&typeof t.renew_by=="string"&&(t.renewed_at===void 0||typeof t.renewed_at=="string")&&(t.renewals===void 0||Number.isInteger(t.renewals))&&(t.session_renewals===void 0||Number.isInteger(t.session_renewals))&&(t.env===void 0||cP(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function lP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.remote=="string"&&t.remote.trim()!==""&&typeof t.branch=="string"&&t.branch.trim()!==""}function dP(e,t){if(e!==void 0){if(!ym(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function ym(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(r=>typeof r=="string"&&r!=="")&&(t.creator===void 0||typeof t.creator=="string")}function cP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Fs(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var uP={ping:"host-read","host-state":"host-read","statusline-payload":"host-read",shutdown:"daemon-life","worker-start":"project-write","worker-stop":"project-write","worker-recycle":"project-write","worker-steer":"project-write","worker-heartbeat":"project-write","project-register":"project-write","project-renew":"project-write","project-reset":"project-write","project-deregister":"project-write"};function km(e){return`worker-${e}`}function wm(e){let t=uP[e.op]??"project-write",r=e.sessionProject??null,n=e.targetProject??null,o={version:1,op:e.op,reach:t,session_project:r,target_project:n};return t==="host-read"?{...o,permitted:!0,verdict:"permitted-host-read",reason:`redskilled permitted ${e.op}: a session reads the whole host, whichever project it was started in`}:t==="daemon-life"?{...o,permitted:!0,verdict:"permitted-daemon-life",reason:`redskilled permitted ${e.op}: it acts on the daemon's own process, not on any project's Workers`}:r==null||r===""?{...o,permitted:!0,verdict:"permitted-unattributed",reason:`redskilled permitted ${e.op}: the session named no project of its own, so there is nothing to refuse it against`}:n!=null&&n===r?{...o,permitted:!0,verdict:"permitted-own-project",reason:`redskilled permitted ${e.op}: the target belongs to project ${JSON.stringify(r)}, which is this session's own`}:{...o,permitted:!1,verdict:"refused-cross-project",reason:`redskilled refused ${e.op} from a session in project ${JSON.stringify(r)}: ${n==null?"it names no Worker of that project":`the target belongs to project ${JSON.stringify(n)}`}. A session reads the whole host and writes only its own project.`}}function Rm(e){return e==="single-object"?"rest":"graphql"}function _m(e,t){return e==="stable-poll"?"rest":Rm(t)}function Jt(e){return{none:e}}function st(e,t,r,n,o,s,i){let a=typeof o=="string"?{fallback:o}:{fallback:null,noFallbackBecause:o.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??_m(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ot(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var xm=[st("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),st("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),st("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),st("run view","single-object","stable-poll","rest",Jt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",Jt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),st("pr diff","single-object","one-shot","rest",Jt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),st("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),st("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),st("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),st("release list","multi-node","stable-poll","rest",Jt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",Jt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),st("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),st("issue list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),st("pr list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),st("search issues","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search prs","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search repos","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("api graphql","multi-node","one-shot","graphql",Jt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),st("api rest","single-object","one-shot","rest",Jt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ot("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ot("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ot("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ot("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ot("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ot("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ot("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ot("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ot("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ot("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ot("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ot("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ot("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ot("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],pP=new Map(xm.map(e=>[e.key,e]));function Em(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function cc(e){let t=Em(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var ma=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=cc(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}};function vm(e){return pP.get(cc(e))??null}function Sm(e){let t=vm(e);if(!t)throw new ma(e);return t}function uc(e){return Sm(e).surface}import{appendFile as fP,mkdir as gP,readFile as hP}from"node:fs/promises";import{dirname as mP}from"node:path";function ba(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=bP(n.operation,n.cost,n.observedAt??t(),n.actor),s=Lt().push(kP(o));return r=r.then(async()=>{await gP(mP(e.path),{recursive:!0}),await fP(e.path,s,"utf8")}),r},async report(n){await r;let o=pc(n.from,"report window start"),s=pc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await yP(e.path),a=new Map;for(let d of i.observations){let c=Date.parse(d.observed_at);if(c<o||c>=s||n.pool!==void 0&&d.pool!==n.pool)continue;let u=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,p=a.get(u);a.set(u,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+d.cost})}let l=[...a.values()].sort((d,c)=>c.cost-d.cost||c.count-d.count||d.operation_key.localeCompare(c.operation_key)||d.pool.localeCompare(c.pool)||(d.actor??"").localeCompare(c.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:l.reduce((d,c)=>d+c.count,0),total_cost:l.reduce((d,c)=>d+c.cost,0),operations:l,unreadable_records:i.unreadable}}}}function bP(e,t,r,n){if(pc(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function yP(e){let t;try{t=await hP(e,"utf8")}catch(s){if(_P(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
66
+ `);for(let s=0;s<o.length;s+=1){let i=o[s];if(i.trim()==="")continue;let a=o[s+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let l;try{l=Sr(`${i}
67
67
  ${a}
68
- `)[0]}catch{n+=1,s+=1;continue}if(!fP(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function pP(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 fP(e){return gP(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 ac(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 gP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function hP(e){return e instanceof Error&&"code"in e}var _m=Hl(cc(),1);var Kr=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 mP="0.0.0-development";function bP(e){return e.request!==void 0}async function Rm(e,t,r,n){if(!bP(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 yP(e,t,r,n){let o=new _m.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(kP.bind(null,e,t,r),n)}async function kP(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 Kr(o.data.errors[0].message,500,{request:n,response:o});return Rm(e,t,s,n)}return o}function uc(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",Rm.bind(null,r,n)),e.hook.wrap("request",yP.bind(null,r,n))),n}uc.VERSION=mP;var Em=Hl(cc(),1),wP="0.0.0-development",pc=()=>Promise.resolve();function RP(e,t,r){return e.retryLimiter.schedule(_P,e,t,r)}async function _P(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=xP(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,pc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,pc),i&&await e.search.key(e.id).schedule(d,pc);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 xP(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 EP=["/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 vP(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var xm=vP(EP),vm=xm.test.bind(xm),sr={},SP=function(e,t){sr.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),sr.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),sr.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),sr.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),sr.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function ga(e,t){let{enabled:r=!0,Bottleneck:n=Em.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:vm,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
68
+ `)[0]}catch{n+=1,s+=1;continue}if(!wP(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function kP(e){return{version:e.version,observed_at:e.observed_at,operation_key:e.operation_key,pool:e.pool,...e.actor===void 0?{}:{actor:e.actor},cost:e.cost}}function wP(e){return RP(e)?e.version===1&&typeof e.observed_at=="string"&&Number.isFinite(Date.parse(e.observed_at))&&typeof e.operation_key=="string"&&e.operation_key!==""&&(e.pool==="rest"||e.pool==="graphql"||e.pool==="search")&&(e.actor===void 0||typeof e.actor=="string"&&e.actor!=="")&&typeof e.cost=="number"&&Number.isSafeInteger(e.cost)&&e.cost>=0:!1}function pc(e,t){let r=Date.parse(e);if(!Number.isFinite(r))throw new Error(`${t} must be an ISO-8601 instant; received ${JSON.stringify(e)}`);return r}function RP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function _P(e){return e instanceof Error&&"code"in e}var Pm=zl(hc(),1);var Yr=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let o=Object.assign({},n.request);n.request.headers.authorization&&(o.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=o}};var xP="0.0.0-development";function EP(e){return e.request!==void 0}async function Tm(e,t,r,n){if(!EP(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let o=n.request.retries!=null?n.request.retries:e.retries,s=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,o,s)}throw r}async function vP(e,t,r,n){let o=new Pm.default;return o.on("failed",function(s,i){let a=~~s.request.request?.retries,l=~~s.request.request?.retryAfter;if(n.request.retryCount=i.retryCount+1,a>i.retryCount)return l*e.retryAfterBaseValue}),o.schedule(SP.bind(null,e,t,r),n)}async function SP(e,t,r,n){let o=await r(n);if(o.data&&o.data.errors&&o.data.errors.length>0&&/Something went wrong while executing your query/.test(o.data.errors[0].message)){let s=new Yr(o.data.errors[0].message,500,{request:n,response:o});return Tm(e,t,s,n)}return o}function mc(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(o,s,i)=>(o.request.request=Object.assign({},o.request.request,{retries:s,retryAfter:i}),o)}};return r.enabled&&(e.hook.error("request",Tm.bind(null,r,n)),e.hook.wrap("request",vP.bind(null,r,n))),n}mc.VERSION=xP;var Cm=zl(hc(),1),TP="0.0.0-development",bc=()=>Promise.resolve();function PP(e,t,r){return e.retryLimiter.schedule(AP,e,t,r)}async function AP(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=CP(r.method,n),s=!o&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),d=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(d.expiration=1e3*60),(s||a)&&await e.write.key(e.id).schedule(d,bc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,bc),i&&await e.search.key(e.id).schedule(d,bc);let c=(o?e.auth:e.global).key(e.id).schedule(d,t,r);if(a){let u=await c;if(u.data.errors!=null&&u.data.errors.some(p=>p.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:u,data:u.data})}return c}function CP(e,t){return e==="PATCH"&&/^\/applications\/[^/]+\/token\/scoped$/.test(t)||e==="POST"&&(/^\/applications\/[^/]+\/token$/.test(t)||/^\/app\/installations\/[^/]+\/access_tokens$/.test(t)||t==="/login/oauth/access_token")}var DP=["/orgs/{org}/invitations","/orgs/{org}/invitations/{invitation_id}","/orgs/{org}/teams/{team_slug}/discussions","/orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments","/repos/{owner}/{repo}/collaborators/{username}","/repos/{owner}/{repo}/commits/{commit_sha}/comments","/repos/{owner}/{repo}/issues","/repos/{owner}/{repo}/issues/{issue_number}/comments","/repos/{owner}/{repo}/issues/{issue_number}/sub_issue","/repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority","/repos/{owner}/{repo}/pulls","/repos/{owner}/{repo}/pulls/{pull_number}/comments","/repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies","/repos/{owner}/{repo}/pulls/{pull_number}/merge","/repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers","/repos/{owner}/{repo}/pulls/{pull_number}/reviews","/repos/{owner}/{repo}/releases","/teams/{team_id}/discussions","/teams/{team_id}/discussions/{discussion_number}/comments"];function OP(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var Am=OP(DP),Dm=Am.test.bind(Am),ir={},FP=function(e,t){ir.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ir.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ir.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ir.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ir.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function ya(e,t){let{enabled:r=!0,Bottleneck:n=Cm.default,id:o="no-id",timeout:s=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:s};typeof i<"u"&&(a.connection=i);let l=Object.assign({clustering:i!=null,triggersNotification:Dm,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
69
69
  You must pass the onSecondaryRateLimit and onRateLimit error handlers.
70
70
  See https://octokit.github.io/rest.js/#throttling
71
71
 
@@ -75,34 +75,34 @@ ${a}
75
75
  onRateLimit: (retryAfter, options) => {/* ... */}
76
76
  }
77
77
  })
78
- `);let d=!1,c=()=>{if(d)return;d=!0,sr.global==null&&SP(n,a),l.global=l.global??sr.global,l.auth=l.auth??sr.auth,l.search=l.search??sr.search,l.write=l.write??sr.write,l.notifications=l.notifications??sr.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[k,b,v]=f.args,{pathname:T}=new URL(v.url,"http://github.test");if(!(T.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let D=~~b.retryCount;b.retryCount=D,v.request.retryCount=D;let{wantRetry:L,retryAfter:W=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let K=Number(g.response.headers["retry-after"])||k.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",K,v,e,D),retryAfter:K}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(K=>K.type==="RATE_LIMITED")){let K=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),H=Math.max(Math.ceil((K-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",H,v,e,D),retryAfter:H}}return{}}();if(L)return b.retryCount++,W*k.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),RP(l,u,p))),{}}ga.VERSION=wP;ga.triggersNotification=vm;function ln(){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 ha(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)=>ha.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 Sm(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 Tm(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 Pm=Function.bind,Am=Pm.bind(Pm);function Cm(e,t,r){let n=Am(Tm,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]=Am(Sm,null).apply(null,s)})}function TP(){let e=Symbol("Singular"),t={registry:{}},r=ha.bind(null,t,e);return Cm(r,t,e),r}function PP(){let e={registry:{}},t=ha.bind(null,e);return Cm(t,e),t}var Om={Singular:TP,Collection:PP};var AP="0.0.0-development",CP=`octokit-endpoint.js/${AP} ${ln()}`,OP={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":CP},mediaType:{format:""}};function DP(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function FP(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 Im(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{FP(t[n])?n in e?r[n]=Im(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Dm(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function gc(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=DP(r.headers),Dm(r),Dm(r.headers);let n=Im(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 IP(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 MP=/\{[^{}}]+\}/g;function LP(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function jP(e){let t=e.match(MP);return t?t.map(LP).reduce((r,n)=>r.concat(n),[]):[]}function Fm(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Mm(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 So(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ps(e,t,r){return t=e==="+"||e==="#"?Mm(t):So(t),r?So(r)+"="+t:t}function vo(e){return e!=null}function fc(e){return e===";"||e==="&"||e==="?"}function BP(e,t,r,n){var o=e[r],s=[];if(vo(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(Ps(t,o,fc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(vo).forEach(function(i){s.push(Ps(t,i,fc(t)?r:""))}):Object.keys(o).forEach(function(i){vo(o[i])&&s.push(Ps(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(vo).forEach(function(a){i.push(Ps(t,a))}):Object.keys(o).forEach(function(a){vo(o[a])&&(i.push(So(a)),i.push(Ps(t,o[a].toString())))}),fc(t)?s.push(So(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?vo(o)&&s.push(So(r)):o===""&&(t==="&"||t==="?")?s.push(So(r)+"="):o===""&&s.push("");return s}function $P(e){return{expand:NP.bind(null,e)}}function NP(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(BP(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 Mm(s)}),e==="/"?e:e.replace(/\/$/,"")}function Lm(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=Fm(e,["method","baseUrl","url","headers","request","mediaType"]),i=jP(r);r=$P(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=Fm(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=IP(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 GP(e,t,r){return Lm(gc(e,t,r))}function jm(e,t){let r=gc(e,t),n=GP.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:jm.bind(null,r),merge:gc.bind(null,r),parse:Lm})}var Bm=jm(null,OP);var rb=Hl(qm(),1);var QP=/^-?\d+$/,ya=/^-?\d+n+$/,dn=JSON.stringify,yc=JSON.parse,Ym=/^-?\d+n$/,Km=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Vm=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,kc=e=>e===void 0||typeof e=="function"||typeof e=="symbol",wc=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",XP=(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,k,b)=>(b!==null&&typeof b=="object"&&typeof b.toJSON=="function"&&(b=b.toJSON(k)),typeof b=="string"&&ya.test(b)?b+"n":typeof b=="bigint"?"rawJSON"in JSON?JSON.rawJSON(b.toString()):b.toString()+"n":(o&&(b=t.call(f,k,b)),b!==null&&typeof b=="object"&&(b instanceof Number||b instanceof String||b instanceof Boolean)&&(b=b.valueOf()),b)),a=i({"":e},"",e);if(kc(a))return;let l=a===null||typeof a!="object",d=wc(a);if(l||d)return dn(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 k=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
79
- `+n.repeat(u));let b=f.val[f.index],v=i(f.val,String(f.index),b);if(kc(v))c.push("null"),f.first=!1,f.index++;else{let T=v!==null&&typeof v=="object",$=wc(v);if(T&&!$){if(g.has(v))throw new TypeError("Converting circular structure to JSON");g.add(v),p.push({parent:f.val,key:String(f.index),val:v,isArray:Array.isArray(v),keys:Array.isArray(v)?null:Object.keys(v),index:0,first:!0}),f.first=!1,f.index++}else c.push(dn(v)),f.first=!1,f.index++}}else k=!0;else{for(;f.index<f.keys.length;){let v=f.keys[f.index++];if(s&&!s.has(v))continue;let $=f.val[v],D=i(f.val,v,$);if(kc(D))continue;f.first||c.push(","),n?c.push(`
80
- `+n.repeat(u)+dn(v)+": "):c.push(dn(v)+":");let L=D!==null&&typeof D=="object",W=wc(D);if(L&&!W){if(g.has(D))throw new TypeError("Converting circular structure to JSON");g.add(D),p.push({parent:f.val,key:v,val:D,isArray:Array.isArray(D),keys:Array.isArray(D)?null:Object.keys(D),index:0,first:!0}),f.first=!1;break}else c.push(dn(D)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(k=!0)}k&&(u--,!f.first&&n&&c.push(`
81
- `+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},Qm=(e,t,r)=>{try{return"rawJSON"in JSON?dn(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?dn(e,(a,l)=>typeof l=="string"&&ya.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(Km,"$1$2$3").replace(Vm,"$1$2$3"):dn(e,t,r)}catch(n){if(n instanceof RangeError){let o=XP(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(Km,"$1$2$3").replace(Vm,"$1$2$3")}throw n}},ba=new Map,ZP=()=>{let e=JSON.parse.toString();if(ba.has(e))return ba.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return ba.set(e,t),t}catch{return ba.set(e,!1),!1}},eA=(e,t,r,n)=>typeof t=="string"&&Ym.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&ya.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,tA=(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&&QP.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),Xm=Number.MAX_SAFE_INTEGER.toString(),zm=Xm.length,rA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,nA=/^"-?\d+n+"$/,oA=(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"&&(Ym.test(a)?a=BigInt(a.slice(0,-1)):ya.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[""]},Jm=e=>e.replace(rA,(t,r,n,o)=>{let s=t[0]==='"';if(s&&nA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<zm||r.length===zm&&r<=Xm);return s||a||l?t:'"'+t+'n"'}),Zm=(e,t)=>{if(!e)return yc(e,t);try{if(ZP())return tA(e,t);let r=Jm(e);return yc(r,(n,o,s)=>eA(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=Jm(e),o=yc(n);return oA(o,t)}throw r}};var sA="10.0.13",iA={headers:{"user-agent":`octokit-request.js/${sA} ${ln()}`}};function aA(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 eb=()=>"";async function tb(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=aA(e.body)||Array.isArray(e.body)?Qm(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 Kr(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 Kr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Rc(i),new Kr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Rc(i),new Kr(dA(c.data),a,{response:c,request:e});return c.data=n?await Rc(i):i.body,c}async function Rc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(eb);let r=(0,rb.parse)(t);if(lA(r)){let n="";try{return n=await e.text(),Zm(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(eb):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function lA(e){return e.type==="application/json"||e.type==="application/scim+json"}function dA(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 _c(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 tb(r.parse(i));let a=(l,d)=>tb(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:_c.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:_c.bind(null,r)})}var As=_c(Bm,iA);var cA="0.0.0-development";function uA(e){return`Request failed due to following response errors:
78
+ `);let d=!1,c=()=>{if(d)return;d=!0,ir.global==null&&FP(n,a),l.global=l.global??ir.global,l.auth=l.auth??ir.auth,l.search=l.search??ir.search,l.write=l.write??ir.write,l.notifications=l.notifications??ir.notifications,l.retryLimiter=l.retryLimiter??new n;let u={},p=new n.Events(u);u.on("secondary-limit",l.onSecondaryRateLimit),u.on("rate-limit",l.onRateLimit),u.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),l.retryLimiter.on("failed",async function(g,f){let[y,h,R]=f.args,{pathname:T}=new URL(R.url,"http://github.test");if(!(T.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let D=~~h.retryCount;h.retryCount=D,R.request.retryCount=D;let{wantRetry:M,retryAfter:N=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let U=Number(g.response.headers["retry-after"])||y.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",U,R,e,D),retryAfter:U}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(U=>U.type==="RATE_LIMITED")){let U=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),G=Math.max(Math.ceil((U-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",G,R,e,D),retryAfter:G}}return{}}();if(M)return h.retryCount++,N*y.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),PP(l,u,p))),{}}ya.VERSION=TP;ya.triggersNotification=Dm;function fn(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}function ka(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((o,s)=>ka.bind(null,e,s,o,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((o,s)=>s.hook.bind(null,o,n),r)():r(n))}function Om(e,t,r,n){let o=n;e.registry[r]||(e.registry[r]=[]),t==="before"&&(n=(s,i)=>Promise.resolve().then(o.bind(null,i)).then(s.bind(null,i))),t==="after"&&(n=(s,i)=>{let a;return Promise.resolve().then(s.bind(null,i)).then(l=>(a=l,o(a,i))).then(()=>a)}),t==="error"&&(n=(s,i)=>Promise.resolve().then(s.bind(null,i)).catch(a=>o(a,i))),e.registry[r].push({hook:n,orig:o})}function Fm(e,t,r){if(!e.registry[t])return;let n=e.registry[t].map(o=>o.orig).indexOf(r);n!==-1&&e.registry[t].splice(n,1)}var Im=Function.bind,Mm=Im.bind(Im);function Lm(e,t,r){let n=Mm(Fm,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(o=>{let s=r?[t,o,r]:[t,o];e[o]=e.api[o]=Mm(Om,null).apply(null,s)})}function IP(){let e=Symbol("Singular"),t={registry:{}},r=ka.bind(null,t,e);return Lm(r,t,e),r}function MP(){let e={registry:{}},t=ka.bind(null,e);return Lm(t,e),t}var jm={Singular:IP,Collection:MP};var LP="0.0.0-development",jP=`octokit-endpoint.js/${LP} ${fn()}`,BP={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":jP},mediaType:{format:""}};function $P(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function NP(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function Nm(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{NP(t[n])?n in e?r[n]=Nm(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Bm(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function kc(e,t,r){if(typeof t=="string"){let[o,s]=t.split(" ");r=Object.assign(s?{method:o,url:s}:{url:o},r)}else r=Object.assign({},t);r.headers=$P(r.headers),Bm(r),Bm(r.headers);let n=Nm(e||{},r);return r.url==="/graphql"&&(e&&e.mediaType.previews?.length&&(n.mediaType.previews=e.mediaType.previews.filter(o=>!n.mediaType.previews.includes(o)).concat(n.mediaType.previews)),n.mediaType.previews=(n.mediaType.previews||[]).map(o=>o.replace(/-preview/,""))),n}function GP(e,t){let r=/\?/.test(e)?"&":"?",n=Object.keys(t);return n.length===0?e:e+r+n.map(o=>o==="q"?"q="+t.q.split("+").map(encodeURIComponent).join("+"):`${o}=${encodeURIComponent(t[o])}`).join("&")}var WP=/\{[^{}}]+\}/g;function HP(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function UP(e){let t=e.match(WP);return t?t.map(HP).reduce((r,n)=>r.concat(n),[]):[]}function $m(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Gm(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function Fo(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ms(e,t,r){return t=e==="+"||e==="#"?Gm(t):Fo(t),r?Fo(r)+"="+t:t}function Oo(e){return e!=null}function yc(e){return e===";"||e==="&"||e==="?"}function qP(e,t,r,n){var o=e[r],s=[];if(Oo(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||typeof o=="boolean")o=o.toString(),n&&n!=="*"&&(o=o.substring(0,parseInt(n,10))),s.push(Ms(t,o,yc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Oo).forEach(function(i){s.push(Ms(t,i,yc(t)?r:""))}):Object.keys(o).forEach(function(i){Oo(o[i])&&s.push(Ms(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Oo).forEach(function(a){i.push(Ms(t,a))}):Object.keys(o).forEach(function(a){Oo(o[a])&&(i.push(Fo(a)),i.push(Ms(t,o[a].toString())))}),yc(t)?s.push(Fo(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Oo(o)&&s.push(Fo(r)):o===""&&(t==="&"||t==="?")?s.push(Fo(r)+"="):o===""&&s.push("");return s}function KP(e){return{expand:VP.bind(null,e)}}function VP(e,t){var r=["+","#",".","/",";","?","&"];return e=e.replace(/\{([^\{\}]+)\}|([^\{\}]+)/g,function(n,o,s){if(o){let a="",l=[];if(r.indexOf(o.charAt(0))!==-1&&(a=o.charAt(0),o=o.substr(1)),o.split(/,/g).forEach(function(d){var c=/([^:\*]*)(?::(\d+)|(\*))?/.exec(d);l.push(qP(t,a,c[1],c[2]||c[3]))}),a&&a!=="+"){var i=",";return a==="?"?i="&":a!=="#"&&(i=a),(l.length!==0?a:"")+l.join(i)}else return l.join(",")}else return Gm(s)}),e==="/"?e:e.replace(/\/$/,"")}function Wm(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=$m(e,["method","baseUrl","url","headers","request","mediaType"]),i=UP(r);r=KP(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=$m(s,a);if(!/application\/octet-stream/i.test(n.accept)&&(e.mediaType.format&&(n.accept=n.accept.split(/,/).map(c=>c.replace(/application\/vnd(\.\w+)(\.v3)?(\.\w+)?(\+json)?$/,`application/vnd$1$2.${e.mediaType.format}`)).join(",")),r.endsWith("/graphql")&&e.mediaType.previews?.length)){let c=n.accept.match(/(?<![\w-])[\w-]+(?=-preview)/g)||[];n.accept=c.concat(e.mediaType.previews).map(u=>{let p=e.mediaType.format?`.${e.mediaType.format}`:"+json";return`application/vnd.github.${u}-preview${p}`}).join(",")}return["GET","HEAD"].includes(t)?r=GP(r,l):"data"in l?o=l.data:Object.keys(l).length&&(o=l),!n["content-type"]&&typeof o<"u"&&(n["content-type"]="application/json; charset=utf-8"),["PATCH","PUT"].includes(t)&&typeof o>"u"&&(o=""),Object.assign({method:t,url:r,headers:n},typeof o<"u"?{body:o}:null,e.request?{request:e.request}:null)}function zP(e,t,r){return Wm(kc(e,t,r))}function Hm(e,t){let r=kc(e,t),n=zP.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Hm.bind(null,r),merge:kc.bind(null,r),parse:Wm})}var Um=Hm(null,BP);var lb=zl(Qm(),1);var oA=/^-?\d+$/,_a=/^-?\d+n+$/,gn=JSON.stringify,xc=JSON.parse,rb=/^-?\d+n$/,Xm=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Zm=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Ec=e=>e===void 0||typeof e=="function"||typeof e=="symbol",vc=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",sA=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let o=typeof t=="function",s=Array.isArray(t)?new Set(t.map(String)):null,i=(f,y,h)=>(h!==null&&typeof h=="object"&&typeof h.toJSON=="function"&&(h=h.toJSON(y)),typeof h=="string"&&_a.test(h)?h+"n":typeof h=="bigint"?"rawJSON"in JSON?JSON.rawJSON(h.toString()):h.toString()+"n":(o&&(h=t.call(f,y,h)),h!==null&&typeof h=="object"&&(h instanceof Number||h instanceof String||h instanceof Boolean)&&(h=h.valueOf()),h)),a=i({"":e},"",e);if(Ec(a))return;let l=a===null||typeof a!="object",d=vc(a);if(l||d)return gn(a);let c=[],u=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(c.push(f.isArray?"[":"{"),u++);let y=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
79
+ `+n.repeat(u));let h=f.val[f.index],R=i(f.val,String(f.index),h);if(Ec(R))c.push("null"),f.first=!1,f.index++;else{let T=R!==null&&typeof R=="object",$=vc(R);if(T&&!$){if(g.has(R))throw new TypeError("Converting circular structure to JSON");g.add(R),p.push({parent:f.val,key:String(f.index),val:R,isArray:Array.isArray(R),keys:Array.isArray(R)?null:Object.keys(R),index:0,first:!0}),f.first=!1,f.index++}else c.push(gn(R)),f.first=!1,f.index++}}else y=!0;else{for(;f.index<f.keys.length;){let R=f.keys[f.index++];if(s&&!s.has(R))continue;let $=f.val[R],D=i(f.val,R,$);if(Ec(D))continue;f.first||c.push(","),n?c.push(`
80
+ `+n.repeat(u)+gn(R)+": "):c.push(gn(R)+":");let M=D!==null&&typeof D=="object",N=vc(D);if(M&&!N){if(g.has(D))throw new TypeError("Converting circular structure to JSON");g.add(D),p.push({parent:f.val,key:R,val:D,isArray:Array.isArray(D),keys:Array.isArray(D)?null:Object.keys(D),index:0,first:!0}),f.first=!1;break}else c.push(gn(D)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(y=!0)}y&&(u--,!f.first&&n&&c.push(`
81
+ `+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},nb=(e,t,r)=>{try{return"rawJSON"in JSON?gn(e,(a,l)=>typeof l=="bigint"?JSON.rawJSON(l.toString()):typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r):e?gn(e,(a,l)=>typeof l=="string"&&_a.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(Xm,"$1$2$3").replace(Zm,"$1$2$3"):gn(e,t,r)}catch(n){if(n instanceof RangeError){let o=sA(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(Xm,"$1$2$3").replace(Zm,"$1$2$3")}throw n}},Ra=new Map,iA=()=>{let e=JSON.parse.toString();if(Ra.has(e))return Ra.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return Ra.set(e,t),t}catch{return Ra.set(e,!1),!1}},aA=(e,t,r,n)=>typeof t=="string"&&rb.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&_a.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,lA=(e,t)=>JSON.parse(e,(r,n,o)=>{let s=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=s&&i,l=o&&oA.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),ob=Number.MAX_SAFE_INTEGER.toString(),eb=ob.length,dA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,cA=/^"-?\d+n+"$/,uA=(e,t)=>{let r={"":e},n=[{parent:r,key:"",visited:!1}];for(;n.length>0;){let o=n[n.length-1];if(o.visited){let{parent:s,key:i}=o,a=s[i];typeof a=="string"&&(rb.test(a)?a=BigInt(a.slice(0,-1)):_a.test(a)&&(a=a.slice(0,-1))),typeof t=="function"&&(a=t.call(s,i,a)),a===void 0?delete s[i]:s[i]=a,n.pop()}else{o.visited=!0;let s=o.parent[o.key];if(s!==null&&typeof s=="object"){let a=Object.keys(s);for(let l=a.length-1;l>=0;l--)n.push({parent:s,key:a[l],visited:!1})}}}return r[""]},tb=e=>e.replace(dA,(t,r,n,o)=>{let s=t[0]==='"';if(s&&cA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<eb||r.length===eb&&r<=ob);return s||a||l?t:'"'+t+'n"'}),sb=(e,t)=>{if(!e)return xc(e,t);try{if(iA())return lA(e,t);let r=tb(e);return xc(r,(n,o,s)=>aA(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=tb(e),o=xc(n);return uA(o,t)}throw r}};var pA="10.0.13",fA={headers:{"user-agent":`octokit-request.js/${pA} ${fn()}`}};function gA(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var ib=()=>"";async function ab(e){let t=e.request?.fetch||globalThis.fetch;if(!t)throw new Error("fetch is not set. Please pass a fetch implementation as new Octokit({ request: { fetch }}). Learn more at https://github.com/octokit/octokit.js/#fetch-missing");let r=e.request?.log||console,n=e.request?.parseSuccessResponseBody!==!1,o=gA(e.body)||Array.isArray(e.body)?nb(e.body):e.body,s=Object.fromEntries(Object.entries(e.headers).map(([u,p])=>[u,String(p)])),i;try{i=await t(e.url,{method:e.method,body:o,redirect:e.request?.redirect,headers:s,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(u){let p="Unknown Error";if(u instanceof Error){if(u.name==="AbortError")throw u.status=500,u;p=u.message,u.name==="TypeError"&&"cause"in u&&(u.cause instanceof Error?p=u.cause.message:typeof u.cause=="string"&&(p=u.cause))}let g=new Yr(p,500,{request:e});throw g.cause=u,g}let a=i.status,l=i.url,d={};for(let[u,p]of i.headers)d[u]=p;let c={url:l,status:a,headers:d,data:""};if("deprecation"in d){let u=d.link&&d.link.match(/<([^<>]+)>; rel="deprecation"/),p=u&&u.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${d.sunset}${p?`. See ${p}`:""}`)}if(a===204||a===205)return c;if(e.method==="HEAD"){if(a<400)return c;throw new Yr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Sc(i),new Yr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Sc(i),new Yr(mA(c.data),a,{response:c,request:e});return c.data=n?await Sc(i):i.body,c}async function Sc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(ib);let r=(0,lb.parse)(t);if(hA(r)){let n="";try{return n=await e.text(),sb(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(ib):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function hA(e){return e.type==="application/json"||e.type==="application/scim+json"}function mA(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function Tc(e,t){let r=e.defaults(t);return Object.assign(function(o,s){let i=r.merge(o,s);if(!i.request||!i.request.hook)return ab(r.parse(i));let a=(l,d)=>ab(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:Tc.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Tc.bind(null,r)})}var Ls=Tc(Um,fA);var bA="0.0.0-development";function yA(e){return`Request failed due to following response errors:
82
82
  `+e.errors.map(t=>` - ${t.message}`).join(`
83
- `)}var pA=class extends Error{constructor(e,t,r){super(uA(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},fA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],gA=["query","method","url"],nb=/\/api\/v3\/?$/;function hA(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(gA.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)=>fA.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 nb.test(s)&&(o.url=s.replace(nb,"/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 pA(o,a,i.data)}return i.data.data})}function xc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>hA(r,o,s),{defaults:xc.bind(null,r),endpoint:r.endpoint})}var lG=xc(As,{headers:{"user-agent":`octokit-graphql.js/${cA} ${ln()}`},method:"POST",url:"/graphql"});function ob(e){return xc(e,{method:"POST",url:"/graphql"})}var Ec="(?:[a-zA-Z0-9_-]+)",sb="\\.",ib=new RegExp(`^${Ec}${sb}${Ec}${sb}${Ec}$`),mA=ib.test.bind(ib);async function bA(e){let t=mA(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 yA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function kA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=yA(e),t(o)}var ab=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(bA.bind(null,t),{hook:kA.bind(null,t)})};var vc="7.0.7";var lb=()=>{},wA=console.warn.bind(console),RA=console.error.bind(console);function _A(e={}){return typeof e.debug!="function"&&(e.debug=lb),typeof e.info!="function"&&(e.info=lb),typeof e.warn!="function"&&(e.warn=wA),typeof e.error!="function"&&(e.error=RA),e}var db=`octokit-core.js/${vc} ${ln()}`,ka=class{static VERSION=vc;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 Om.Collection,n={baseUrl:As.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} ${db}`:db,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=As.defaults(n),this.graphql=ob(this.request).defaults(n),this.log=_A(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=ab(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 cb="6.0.0";function Sc(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})})}Sc.VERSION=cb;var xA="0.0.0-development";function EA(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 Tc(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=EA(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 ub(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),pb(e,[],Tc(e,t,r)[Symbol.asyncIterator](),n)}function pb(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:pb(e,t,r,n)})}var vG=Object.assign(ub,{iterator:Tc});function Pc(e){return{paginate:Object.assign(ub.bind(null,e),{iterator:Tc.bind(null,e)})}}Pc.VERSION=xA;var Ac="17.0.0";var vA={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"]}},fb=vA;var Bn=new Map;for(let[e,t]of Object.entries(fb))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);Bn.has(e)||Bn.set(e,new Map),Bn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var SA={has({scope:e},t){return Bn.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[...Bn.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=Bn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=TA(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Cc(e){let t={};for(let r of Bn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},SA);return t}function TA(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 PA(e){return{rest:Cc(e)}}PA.VERSION=Ac;function Oc(e){let t=Cc(e);return{...t,rest:t}}Oc.VERSION=Ac;var gb="22.0.1";var hb=ka.plugin(Sc,Oc,Pc).defaults({userAgent:`octokit-rest.js/${gb}`});function AA(e){return`r${e}`}function mb(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=AA(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
83
+ `)}var kA=class extends Error{constructor(e,t,r){super(yA(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},wA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],RA=["query","method","url"],db=/\/api\/v3\/?$/;function _A(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(RA.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,o=Object.keys(n).reduce((i,a)=>wA.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),s=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return db.test(s)&&(o.url=s.replace(db,"/api/graphql")),e(o).then(i=>{if(i.data.errors){let a={};for(let l of Object.keys(i.headers))a[l]=i.headers[l];throw new kA(o,a,i.data)}return i.data.data})}function Pc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>_A(r,o,s),{defaults:Pc.bind(null,r),endpoint:r.endpoint})}var wG=Pc(Ls,{headers:{"user-agent":`octokit-graphql.js/${bA} ${fn()}`},method:"POST",url:"/graphql"});function cb(e){return Pc(e,{method:"POST",url:"/graphql"})}var Ac="(?:[a-zA-Z0-9_-]+)",ub="\\.",pb=new RegExp(`^${Ac}${ub}${Ac}${ub}${Ac}$`),xA=pb.test.bind(pb);async function EA(e){let t=xA(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function vA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function SA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=vA(e),t(o)}var fb=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(EA.bind(null,t),{hook:SA.bind(null,t)})};var Cc="7.0.7";var gb=()=>{},TA=console.warn.bind(console),PA=console.error.bind(console);function AA(e={}){return typeof e.debug!="function"&&(e.debug=gb),typeof e.info!="function"&&(e.info=gb),typeof e.warn!="function"&&(e.warn=TA),typeof e.error!="function"&&(e.error=PA),e}var hb=`octokit-core.js/${Cc} ${fn()}`,xa=class{static VERSION=Cc;static defaults(t){return class extends this{constructor(...n){let o=n[0]||{};if(typeof t=="function"){super(t(o));return}super(Object.assign({},t,o,o.userAgent&&t.userAgent?{userAgent:`${o.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(o=>!r.includes(o)))}}constructor(t={}){let r=new jm.Collection,n={baseUrl:Ls.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${hb}`:hb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Ls.defaults(n),this.graphql=cb(this.request).defaults(n),this.log=AA(t.log),this.hook=r,t.authStrategy){let{authStrategy:s,...i}=t,a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=fb(t.auth);r.wrap("request",s.hook),this.auth=s}let o=this.constructor;for(let s=0;s<o.plugins.length;++s)Object.assign(this,o.plugins[s](this,t))}request;graphql;log;hook;auth};var mb="6.0.0";function Dc(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),o=e.request.endpoint.parse(r),s=o.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}Dc.VERSION=mb;var CA="0.0.0-development";function DA(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,o=e.data.total_count,s=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=o,e.data.total_commits=s,e}function Oc(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),o=typeof t=="function"?t:e.request,s=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let l=await o({method:s,url:a,headers:i}),d=DA(l);if(a=((d.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in d.data){let c=new URL(d.url),u=c.searchParams,p=parseInt(u.get("page")||"1",10),g=parseInt(u.get("per_page")||"250",10);p*g<d.data.total_commits&&(u.set("page",String(p+1)),a=c.toString())}return{value:d}}catch(l){if(l.status!==409)throw l;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function bb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),yb(e,[],Oc(e,t,r)[Symbol.asyncIterator](),n)}function yb(e,t,r,n){return r.next().then(o=>{if(o.done)return t;let s=!1;function i(){s=!0}return t=t.concat(n?n(o.value,i):o.value.data),s?t:yb(e,t,r,n)})}var jG=Object.assign(bb,{iterator:Oc});function Fc(e){return{paginate:Object.assign(bb.bind(null,e),{iterator:Oc.bind(null,e)})}}Fc.VERSION=CA;var Ic="17.0.0";var OA={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},kb=OA;var Hn=new Map;for(let[e,t]of Object.entries(kb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Hn.has(e)||Hn.set(e,new Map),Hn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var FA={has({scope:e},t){return Hn.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Hn.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let o=Hn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=IA(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Mc(e){let t={};for(let r of Hn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},FA);return t}function IA(e,t,r,n,o){let s=e.request.defaults(n);function i(...a){let l=s.endpoint.merge(...a);if(o.mapToData)return l=Object.assign({},l,{data:l[o.mapToData],[o.mapToData]:void 0}),s(l);if(o.renamed){let[d,c]=o.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${d}.${c}()`)}if(o.deprecated&&e.log.warn(o.deprecated),o.renamedParameters){let d=s.endpoint.merge(...a);for(let[c,u]of Object.entries(o.renamedParameters))c in d&&(e.log.warn(`"${c}" parameter is deprecated for "octokit.${t}.${r}()". Use "${u}" instead`),u in d||(d[u]=d[c]),delete d[c]);return s(d)}return s(...a)}return Object.assign(i,s)}function MA(e){return{rest:Mc(e)}}MA.VERSION=Ic;function Lc(e){let t=Mc(e);return{...t,rest:t}}Lc.VERSION=Ic;var wb="22.0.1";var Rb=xa.plugin(Dc,Lc,Fc).defaults({userAgent:`octokit-rest.js/${wb}`});function LA(e){return`r${e}`}function _b(e){if(e.length===0)throw new Error("an aliased single-object query needs at least one read");let t=e[0].kind;if(e.some(s=>s.kind!==t))throw new Error("an aliased single-object query may contain only one object kind");let r={},n=t==="pr"?"pullRequest":"issue";return{query:["query CoalescedSingleObjectReads {",...e.map((s,i)=>{if(!Number.isSafeInteger(s.number)||s.number<=0)throw new Error(`an aliased single-object read needs a positive number, got ${s.number}`);let a=s.selection.trim();if(a==="")throw new Error("an aliased single-object read needs a field selection");let l=LA(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
84
84
  `)})," rateLimit { cost }","}"].join(`
85
- `),aliases:r}}function bb(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 CA=hb.plugin(uc,ga);function yb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function kb(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 To=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 Dc(e){let t=e.etags??yb(),r=new CA({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=cn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),k=f.headers,b=wa(k,"etag");return b!==void 0&&t.set(c.cacheKey,{etag:b,data:f.data,headers:k}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:k,quotaFree:!1}}catch(f){if(Cs(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 k=wb(f),b={...u.headers,...k},v=wa(b,"etag")??u.etag;return t.set(c.cacheKey,{etag:v,data:u.data,headers:b}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:b,quotaFree:!0}}throw Cs(f)===401?new To({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=mb(c.map(({input:b})=>b)),p=await r.graphql(u.query),g=bb(u,p),f=DA(p),k=c[0].input;await e.attribution?.record({operation:{key:k.operation.key,budget:"graphql"},cost:f,actor:FA(c.map(({input:b})=>b.actor))}),g.forEach((b,v)=>{let T=c[v];b.value===null?T.reject(new Error(`GitHub returned no ${b.read.kind} #${b.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(b.value,"graphql"):b.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=Cs(u)===401?new To({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=kb(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,k=1;for(;;){let b=await n({...c,cacheKey:`${c.cacheKey}:page:${k}`,parameters:{...c.parameters??{},per_page:100,page:k}});if(g+=1,f=f&&b.quotaFree,!Array.isArray(b.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${k}`);if(u.push(...b.data),p=b.headers,!OA(b.headers))break;k+=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 Cs(g)===401?new To({cause:g}):g}}}}function OA(e){let t=wa(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Os(e){let t=Cs(e),r=wb(e);return t===429||t===403&&wa(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Cs(e){if(cn(e))return typeof e.status=="number"?e.status:void 0}function wb(e){return!cn(e)||!cn(e.response)||!cn(e.response.headers)?{}:e.response.headers}function wa(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function cn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function DA(e){let t=cn(e)?e:{},r=cn(t.data)?t.data:t,o=(cn(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 FA(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 _b="rate_limit",xb={rest:"core",graphql:"graphql",search:"search"},Vr=["rest","graphql","search"];function Ea(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:[...Vr],detail:t??"no balance has been asked for yet, so none is known"}}var Ic=15e3,Po=.15,_a=[{at_or_below_fraction:0,every_ms:Ic,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Po,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 VG=60*6e4,Fc=2;function Eb(e,t){let r=Rb(e),n=Rb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Vr){let l=xb[a],d=n[l],c=LA(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Vr.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 ${Vr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Mc(e){try{let t=await e.transport();return Eb(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Ea(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Lc(e){let t=null;for(let r of Vr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function va(e,t){let r=Lc(e);if(r==null)return xa(Po).every_ms;let n=xa(r.fraction);if(r.remaining>0)return n.every_ms;let o=Sb(t.now,r.reset_at);return o==null?n.every_ms:Math.max(Ic,Math.min(n.every_ms,o))}function jc(e,t=Po){return Math.ceil(e.limit*t)}function vb(e,t,r=Po){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<jc(n,r)?"reserved":"open"}function Bc(e){let t=e.reservedFraction??Po,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:xa(t).every_ms*Fc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:xa(t).every_ms,pools:[],unreported_pools:[...Vr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=va(r,{now:e.now}),o=e.stalenessMs??n*Fc,s=Sb(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Vr.map(c=>r.pools[c]).filter(c=>c!=null),l=MA(r,t),d=Lc(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`:IA(l,d,r,t)}}function $c(e){if(!Gc(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 IA(e,t,r,n){if(t==null)return r.detail;let o=jc(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 MA(e,t){let r="unknown";for(let n of Vr){if(e.pools[n]==null)continue;let o=vb(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function xa(e){for(let t of _a)if(e<=t.at_or_below_fraction)return t;return _a[_a.length-1]}function LA(e,t,r){if(!Gc(r))return null;let n=Ra(r.limit),o=Ra(r.remaining),s=Ra(r.used),i=Ra(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 Nc(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${_b}`,{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 Sb(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 Ra(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Rb(e){return Gc(e)?e:{}}function Gc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as jA}from"node:child_process";import{existsSync as BA,readFileSync as Sa,readdirSync as $A}from"node:fs";import{dirname as NA,join as $n}from"node:path";function Ds(e){let t=_s(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=xo(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Tb(e){let t=[],r=[];for(let n of e.workers){let o=Ds(n);if(o==null){r.push({worker_id:n.worker_id,reason:(_s(n).memory_max??_s(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(GA(n,o,s))}}return{terminations:t,unenforceable:r}}function GA(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 WA=4096;function Pb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=UA(e,r,t);for(let[u,p]of a){let g=VA(p);g!=null&&(o[u]=g.memoryBytes,g.cpuSeconds!=null&&(s[u]=g.cpuSeconds),i[u]="cgroup")}let l=e.filter(u=>i[u.worker_id]==null);if(l.length===0)return{rss:o,cpu_seconds:s,sources:i};let d=YA(r,t);if(d.size===0)return{rss:o,cpu_seconds:s,sources:i};let c=new Map;for(let u of d.values()){let p=c.get(u.ppid);p?p.push(u.pid):c.set(u.ppid,[u.pid])}for(let u of l){if(!d.has(u.pid))continue;let p=0,g=0,f=[u.pid],k=new Set;for(;f.length>0;){let b=f.pop();if(k.has(b))continue;k.add(b);let v=d.get(b);if(v){p+=v.rssBytes,g+=v.cpuSeconds;for(let T of c.get(b)??[])f.push(T)}}o[u.worker_id]=p,s[u.worker_id]=g,i[u.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,sources:i}}var HA="/sys/fs/cgroup";function UA(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??HA,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=qA(s,r);for(let l of i)for(let d of a){let c=$n(d,l.unit);if(BA($n(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function qA(e,t){let r=t.selfCgroupPath??KA(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o($n(e,s));let a=NA(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o($n(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function KA(){try{for(let e of Sa("/proc/self/cgroup","utf8").split(`
86
- `))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function VA(e){let t;try{t=Sa($n(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:zA(e)}}function zA(e){let t;try{t=Sa($n(e,"cpu.stat"),"utf8")}catch{return null}return JA(t)}function JA(e){for(let t of e.split(`
87
- `)){let[r,n]=t.trim().split(/\s+/);if(r!=="usage_usec")continue;let o=Number(n);return!Number.isFinite(o)||o<0?null:o/1e6}return null}function YA(e,t){return t.procRoot!=null||e==="linux"?rC(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?eC(QA(t.psTable)):new Map}function QA(e){try{return(e??XA)()}catch{return""}}function XA(){return jA("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var ZA=1024;function eC(e){let t=new Map;for(let r of e.split(`
88
- `)){let n=r.trim().split(/\s+/);if(n.length!==4)continue;let[o,s,i]=n.slice(0,3).map(Number);if(![o,s,i].every(l=>l!=null&&Number.isSafeInteger(l)&&l>=0))continue;let a=tC(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*ZA,cpuSeconds:a})}return t}function tC(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 rC(e){let t=new Map,r;try{r=$A(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=Sa($n(e,n,"stat"),"utf8")}catch{continue}let s=oC(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*WA,cpuSeconds:s.cpuTicks/nC})}return t}var nC=100;function oC(e){let t=e.lastIndexOf(")");if(t<0)return null;let r=Number(e.slice(0,e.indexOf(" "))),n=e.slice(t+1).trim().split(/\s+/),o=Number(n[1]),s=Number(n[11]),i=Number(n[12]),a=Number(n[21]);return!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(i)?null:{pid:r,ppid:o,rssPages:Math.max(0,a),cpuTicks:Math.max(0,s)+Math.max(0,i)}}var sC=["api","graphql"],E5=ic(sC);var Ab=100,Hc=6e4,iC=2*Hc,aC=7*24*60*60*1e3,Wc=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 Uc(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new Wc(r.project_label,r.token_ref,t)}function Ib(e,t={now:new Date(0).toISOString()}){$b(e);let r=t.closedWindowMs??aC,n=Date.parse(t.now);if(!Number.isFinite(n))throw new Error(`redskilled activity fetch needs an instant, not ${JSON.stringify(t.now)}`);let o=new Date(n-Math.max(0,r)).toISOString(),s=e.map((l,d)=>({alias:`r${d}`,search_alias:`c${d}`,project:l}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...s.flatMap(({alias:l,search_alias:d,project:c})=>{let u=JSON.stringify(c.owner),p=JSON.stringify(c.name),g=JSON.stringify(`repo:${c.owner}/${c.name} is:closed closed:>=${o}`);return[` ${l}: repository(owner: ${u}, name: ${p}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${d}: search(query: ${g}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
89
- `),aliases:s,closed_since:o}}function lC(e,t,r){let n=Ao(t),o=Ao(n.data),s=Array.isArray(n.errors)?n.errors.map(Ao):[],i=gC(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,project:c})=>{let u=c.owner+"/"+c.name,p=o[l],g=s.find(f=>Db(f.path,l)||Db(f.path,d));if(Fs(p)){let f=Fb(p.open_pull_requests),k=Fb(p.open_issues),b=hC(o[d]);if(f!=null&&k!=null&&b!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:k,recently_closed:b},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||Nb(g)?{project_label:c.project_label,repository:u,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${u} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:c.project_label,repository:u,outcome:"unreachable",counts:null,detail:`${u} is not reachable with the host token: ${Ta(g?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function dC(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 Mb(e){if(e.projects.length===0)return dC(e.now);if(Uc(e.projects,e.hostTokenRef),e.transport.conditionalList)return await uC(e);let t=Ib(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return lC(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}var cC={key:"redskilled repository activity poll",budget:"rest"};async function uC(e){$b(e.projects);let t=Date.parse(e.now),r=Number.isFinite(t)?new Date(Math.floor(t/(60*60*1e3))*60*60*1e3).toISOString():e.now,n=Ib(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let k=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:cC});i+=k.requestCount;let b=p==="open-prs"?k.data:k.data.filter(v=>!Fs(v.pull_request));u.push(p==="recently-closed"?b.filter(v=>Ta(v.closed_at)>=n.closed_since).length:b.length),a=Cb(a,fC(k.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=Os(p);a=Cb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function Lb(e){let t=e.stalenessMs??iC,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 jb(e){if(!Fs(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)&&Fs(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Bb(e){let t=e.endpoint==null?void 0:pC(e.endpoint),r=Dc({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n}function pC(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 fC(e){let t=Ob(e,"x-ratelimit-remaining"),r=Ob(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Cb(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 Ob(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 $b(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Ab)throw new Error(`redskilled activity fetch spans at most ${Ab} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function gC(e,t){let r=Ao(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(Nb),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 Nb(e){if(e==null)return!1;let t=Ta(e.type),r=Ta(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Db(e,t){return Array.isArray(e)&&e.includes(t)}function Fb(e){let t=Ao(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function hC(e){let t=Ao(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Ao(e){return Fs(e)?e:{}}function Fs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ta(e){return typeof e=="string"?e:""}var mC=3e4,bC=2,yC=3,kC=4,wC=["logs","vitals","display"];function Gb(e,t){if(t===void 0)return e;let r=wC.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:RC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:_C},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var RC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},_C={last_line:null,published_at:null,source:null};function Wb(e){let t=e.stalenessMs??mC,r=un(e.now),n=e.sampledAt==null?null:un(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=>SC(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=aa(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:CC({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:AC(a),known_projects:PC(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:Bc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Lb({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:xC(e.deaths,e.recentDeathLimit??kC)},engine:vC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function xC(e,t){let r=[...e].sort((s,i)=>(un(i.ts)??0)-(un(s.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(s=>({kind:s.kind,id:s.id,pid:s.pid,ts:s.ts,last_seen:s.last_seen,last_phase:s.last_phase,sender_class:s.sender_class,confidence:s.confidence,signal:s.signal,evidence:s.evidence[0]??null})),o=EC(r);return{count:r.length,recent:n,latest:n[0]??null,reaped_at:n[0]?.ts??null,...o==null?{}:{boot_loop:o}}}function EC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>bC||n.project_label==null||n.project_label===""||un(n.ts)==null)continue;let o=t.get(n.project_label)??[];o.push(n),t.set(n.project_label,o)}return[...t.entries()].filter(([,n])=>n.length>=yC).map(([n,o])=>{let s=o[0],i=un(s.ts),a=Math.min(...o.map(d=>un(d.ts))),l=s.detail?.trim()||s.evidence[0]?.trim();return l==null||l===""?null:{project_label:n,count:o.length,span_ms:Math.max(0,i-a),latest_refusal:l}}).filter(n=>n!=null).sort((n,o)=>o.count-n.count||o.span_ms-n.span_ms)[0]??null}function vC(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 SC(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Ds(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=un(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:TC(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function TC(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 PC(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 AC(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 CC(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 un(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function qc(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(OC))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(DC))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||jb(t.repository_activity))&&(t.github_balance===void 0||$c(t.github_balance))&&(t.deaths===void 0||FC(t.deaths))&&(t.engine===void 0||IC(t.engine))&&(t.metrics===void 0||Eh(t.metrics))}function OC(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 DC(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 FC(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 IC(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 Hb={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 Ub(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 bt=e=>`\x1B[${e}m`,Is=bt("48;2;114;47;55"),Kc=bt("48;2;88;36;42"),pn=bt("38;2;255;255;255"),Vc=bt("38;2;201;150;158"),Ms=bt("38;2;255;214;214"),Ls=bt("39"),Lt=bt("38;2;224;138;148"),zc=bt("38;2;240;200;120"),Jc=bt("38;2;240;110;120"),Yc=bt("38;2;255;214;214"),Qc=bt("38;2;146;84;94"),Xc=bt("38;2;255;95;95"),Tr=bt("49"),ir=bt("0"),Pa=bt("1"),Aa=bt("22");var MC=/\x1b\[[0-9;]*m/g,LC=/(\x1b\[[0-9;]*m)/,jC=/^\x1b\[[0-9;]*m$/;function Ca(e){return e.replace(MC,"")}function BC(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Jt(e){return[...Ca(e)].length}function Xe(e,t){if(t<=0)return"";if(Jt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(LC))if(i!==""){if(jC.test(i)){s+=i,o=!BC(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?ir:""}`;s+=a,n+=1}}return`${s}\u2026${o?ir:""}`}function js(e,t){return e+" ".repeat(Math.max(0,t-Jt(e)))}function Zc(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 ar(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 Bs(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 fn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return Bs(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 gn(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 Co(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var $s="!unregistered",eu="!lapsed",Ns="\u21E1",Pr="\u2020",Oo="\u25D0",Do="\u25EF",tu="\u21B3",ru="redskilled unreachable \u2014 Worker state unknown";function Fo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Oa(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function Gs(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 nu(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}var hn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],jt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},$C=" ",qb="\u2588",NC="\u25B6",GC="\u2717",WC="\u2591",HC=new Set(["gate","push-pr","merge","cascade"]),UC=new Set(["requeue"]),qC="repair";function Ws(e){return e.display?.origin===qC}function Io(e,t=jt){let r=Gs(e,t.project),n=Fo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(f=>Fa(f,t,e.generated_at)),i=oO(s),a=o.map((f,k)=>({worker_id:f.worker_id,project_label:f.project_label,mine:t.project!=null&&f.project_label===t.project,cells:s[k],line:Xe(sO(s[k],i),t.maxWidth)})),l=VC(e,t,n,r),d=n.length-o.length,c=[l.line,...ZC(e,t),...a.map(f=>f.line)];d>0&&c.push(Xe(`\u2026 ${d} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),c.push(...QC(e,t)),c.push(...YC(e,t));let u=Math.max(1,Math.floor(t.maxHeight??jt.maxHeight)),p=Math.max(0,c.length-u),g=p===0?c:u===1?[l.line]:[...c.slice(0,u-1),Xe(`\u2026 ${p+1} more row(s) \u2014 terminal height is ${u}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:hn,header:l,rows:a,lines:g,hidden_row_count:Math.max(0,d),stale:e.staleness.stale}}function Fa(e,t,r){let n=e.display??Hb,o=Ws(e),s=[n.runner,n.model==null?null:Zc(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&HC.has(n.phase),a=o||i||n.origin!=null&&UC.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:Vb(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:gn(Ub(e,r)),eta:n.eta==null?"":`eta=${gn(n.eta*1e3)}`,hb:KC(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":nO(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${Bs(n.tokens)}`,ctx:n.context==null?"":`ctx=${Bs(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 KC(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} ${gn(Math.max(0,n-r))}`}function Vb(e){let t=e.phase_total,r=e.phase_index;if(t==null||t<=0||r==null||r<0)return"";let n=Math.min(Math.floor(r),Math.floor(t));if(n>=t)return qb.repeat(Math.floor(t));let o=e.failed?GC:NC;return`${qb.repeat(n)}${o}${WC.repeat(Math.floor(t)-n-1)}`}function VC(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(L=>L.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=rO(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=[zC(l??"host",c,d!=null&&d.current===!1?Ns:"")];(n==="unregistered"||n==="name-only")&&g.push($s),n==="lapsed"&&g.push(eu);let f=p?.history_48h==null?null:XC(p.history_48h);f!=null&&g.push(zr(f));let k=e.workers.filter(Ws).length;if(k>0){let L=Math.max(0,e.host.worker_count-k);g.push(`${zr(`workers=${L} coding +`)} ${Is}${pn}${k} repairing${Tr}${Lt}`)}else g.push(zr(`wrk=${r.length}/${e.host.worker_count}`));let b=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(zr(`${b} reserve=${i.interactive_reservation} interactive`)),g.push(zr(tO(i))),a!=null&&g.push(`${Is}${pn}${a}${Tr}${Lt}`),s.open_pull_requests!=null&&g.push(zr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(zr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(zr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let v=p==null?null:zb(p.hour),T=v==null?null:zr(v);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let L=u.boot_loop,W=Co(L?.latest_refusal);g.push(L==null?`${Pr}${u.count} ${u.latest.sender_class}`:`${Pr}${u.count} boot-refused \xD7${L.count} in ${JC(L.span_ms)}`+(W==null?"":` \u2014 ${W}`))}if(e.staleness.stale){let L=e.staleness.age_ms;g.push(L==null?"!unmeasured":`!stale ${Math.round(L/1e3)}s`)}let $=`${g.join(" \xB7 ")}${ir}`,D=v!=null&&Jt($)>t.maxWidth?`${g.filter(L=>L!==T).join(" \xB7 ")}${ir}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Xe(D,t.maxWidth)}}function zC(e,t,r){return`${Kc}${pn}${zc}\xBB${pn} ${Pa}${e}${Aa} ${Vc}v${t}${r}${pn}${Tr}${Lt}`}function zr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ms}${n}${Ls}${o}${Lt}`)}function JC(e){return gn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function zb(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${fn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${fn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${fn(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 YC(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?Do:Oo,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Xe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function QC(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Xe(`${Pr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Xe(`${Pr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Xe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function XC(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${fn(t)} ${ou(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${fn(r)} ${ou(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function ZC(e,t){let r=e.metrics;return r==null?[Xe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Xe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[Kb("tokens",r.history_48h.tokens_per_hour,t),Kb("Tickets",r.history_48h.tickets_per_hour,t)]}var Da=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function Kb(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=${fn(o)}/h ${ou(t.trend)}`.trim();if(r.maxWidth<72)return Xe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Xe(`${n} 48h ${eO(t)} \xB7 ${a}${l}`,r.maxWidth)}function eO(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?Da[0]:Da[Math.min(Da.length-1,Math.floor(Math.max(0,n.value)/r*(Da.length-1)))]).join("")}function ou(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function tO(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${ar(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${ar(e.memory_used_bytes)}/${ar(e.memory_ceiling_bytes)}${t}`}function rO(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 nO(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 oO(e){let t=Object.fromEntries(hn.map(r=>[r,0]));for(let r of e)for(let n of hn)t[n]=Math.max(t[n],Jt(r[n]));return t}function sO(e,t){let r=hn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>Ia(o,js(e[o],s===r.length-1?Jt(e[o]):t[o])));return`${Tr}${Lt}${n.join($C)}${ir}`}function Ia(e,t){if(e==="wid")return`${Pa}${t}${Aa}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Is}${pn}${t.trimEnd()}${Tr}${Lt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${Jc}${n}`).replace("\u25B6",`${Yc}\u25B6`).replace("\u2717",`${Xc}\u2717`).replace(/░+/g,n=>`${Qc}${n}`)+Lt;let r=t.indexOf("=");return r>0?`${Ms}${t.slice(0,r+1)}${Ls}${t.slice(r+1)}${Lt}`:t}function iu(e){return Object.freeze({none:!0,reason:e})}function Hs(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function su(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=>su(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=su(o,t);return Object.freeze(r)}finally{t.delete(e)}}function iO(e){let t=su(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Nn(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=iO(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 Gn(e,t=Ne){let r=Gs(e,t.project),n=Fo(e,t),o=Oa(e,t),s=pO(e,t.project,r),i=lO(e,t,n,r,s.prose),a=nu({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:bO(i,aO(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Jt(f)<=t.maxWidth)break}let d=Xe(l.line,t.maxWidth),c=l.detail==="workers"?gO(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let k=t.verbose?hO(g,t):null;return k==null?[c.lines[f]]:[c.lines[f],k]}):[],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 cu(e){let t=e.options??Ne,r=Xe(ru,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 aO(e,t){return e==="projects"?t.map(mO):[]}function lO(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="name-only";t.mode==="global"?(s.push(`host ${au(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(du(e,t))):n==="matched"?(s.push(`${t.project} ${au(r,r.length)}`),s.push(du(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${au(r,r.length)}`),s.push(du(e,t)),s.push($s)):s.push(o),s.push(Jb(e));let a=dO(e);a!=null&&s.push(a);let l=cO(e);l!=null&&s.push(l),e.staleness.stale&&s.push(Yb(e));let d=s.join(" ");return!i||Jt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,Jb(e),e.staleness.stale?Yb(e):null].filter(c=>c!=null).join(" ")}function au(e,t){let r=e.filter(Ws).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function Jb(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Ns}`}function dO(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Do} quota spent`:t.posture==="reserved"?`${Oo} quota band`:null}function cO(e){let t=e.deaths;if(t==null||t.count<=0||t.latest==null)return null;let r=t.boot_loop;if(r!=null){let n=Co(r.latest_refusal);return`${Pr}${t.count} boot-refused \xD7${r.count} in ${uO(r.span_ms)}`+(n==null?"":` \u2014 ${n}`)}return`${Pr}${t.count} ${t.latest.sender_class}`}function uO(e){return gn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function pO(e,t,r){if(r==="unregistered")return Nn({state:`project unknown \u2014 ${t} was never registered on this host`,repair:Hs()});if(r==="orphaned")return Nn({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:iu("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 Nn({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${lu(n.at)}`}`,repair:Hs()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${lu(n.registered_at)})`;return Nn({state:`project unknown \u2014 ${t} lapsed at ${lu(n.at)}${o}`,repair:Hs()})}return Nn({state:`project unknown \u2014 ${t} lapsed`,repair:Hs()})}return r==="unresolved"?Nn({state:"project unknown \u2014 this directory resolved to no project",repair:iu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function lu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function du(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?`${ar(r)}/${ar(n)}`:ar(r)}function Yb(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function fO(e,t,r,n){let o=r.map(s=>Ia(s,js(e[s],t[s])));return Xe(`${Tr}${Lt}${o.join(" ")}${ir}`,n)}function gO(e,t,r){let n=e.map(a=>Fa(a,t,r)),o=hn.filter(a=>n.some(l=>Jt(l[a])>0)),s=[...o],i=Qb(n,s);for(;s.length>1&&Xb(i,s)>t.maxWidth;)s.pop(),i=Qb(n,s);return{lines:n.map(a=>fO(a,i,s,t.maxWidth)),degraded:s.length<o.length||Xb(i,s)>t.maxWidth}}function Qb(e,t){let r=Object.fromEntries(hn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Jt(n[o]));return r}function Xb(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function hO(e,t){let r=Co(e.log.last_line);return r==null?null:Xe(` ${tu} ${Zb(e,t.mode)}: ${r}`,t.maxWidth)}function Zb(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function mO(e){return`${e.project_label} ${e.worker_count}w ${ar(e.observed_rss_bytes)}`}function bO(e,t,r){return[e,...t].join(r)}var Ma=1;async function Us(e,t){return await ea(e,t,"redskilled daemon")}function ty(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:Ma,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:RO(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:Th(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:_O(e)}}function RO(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:cm(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 _O(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 ry(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||TO(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Ph(t.budget_accounting)&&(t.scope===void 0||om(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Ts))&&(t.demand===void 0||qh(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(EO))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(vO))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(SO))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(xO))&&(t.upgrade===void 0||PO(t.upgrade))}function xO(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 EO(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 vO(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 SO(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 TO(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 PO(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||AO(t.major_hold))}function AO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{randomUUID as CO}from"node:crypto";import{mkdir as OO,readFile as DO,rename as FO,writeFile as IO}from"node:fs/promises";import{dirname as MO}from"node:path";function ny(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await DO(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=LO(s);return jO(i)?i.registrations:[]}async function o(s){await OO(MO(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${CO()}.tmp`,a={version:1,registrations:[...s]};await IO(i,`${ot(a,{keyedMapCollapse:!0})}
90
- `,{encoding:"utf8",mode:384}),await FO(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 LO(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function jO(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(Ts)}import{spawnSync as Ba}from"node:child_process";import{existsSync as hu}from"node:fs";import{delimiter as KO,join as fy}from"node:path";import{join as oy}from"node:path";import{existsSync as BO}from"node:fs";import{createRequire as $O}from"node:module";var sy="redskilled-job-object.node",Wn=100;function Mo(e){return{available:!1,reason:e}}function NO(e,t,r){return[oy(r,"prebuilds",`${e}-${t}`,sy),oy(r,"native","build","Release",sy)]}function iy(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return Mo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??WO(),o=e.exists??BO,s=NO(t,r,n),i=s.find(d=>o(d));if(i==null)return Mo(`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??$O(import.meta.url),l;try{l=a(i)}catch(d){return Mo(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return GO(l)?{available:!0,binding:l}:Mo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function GO(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function WO(){return new URL("..",import.meta.url).pathname}function ay(e){let t=e??{},r=[],n=HO(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<Wn?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 ${Wn}, 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 HO(e){return Ds({budget:e})}var La=5,ly=19;function uu(e){return{available:!1,reason:e}}var UO="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 cy(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=La;else if(r.cpu_weight<Wn){let a=Math.round(ly*(Wn-r.cpu_weight)/Wn);o=Math.min(ly,Math.max(La,a))}else o=La,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${Wn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${La}`);let s=dy(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=dy(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:UO,...n.length>0?{note:n.join("; ")}:{}}}function uy(e){let{limits:t}=e,r=[];return t.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t.nice!=null&&e.nice!=null?`exec ${qO(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
91
- `),e.command,...e.args]}function py(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 pu(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 dy(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function qO(e){return`'${e.replace(/'/g,"'\\''")}'`}var gy="REDSKILLED_PLACEMENT",ja="red-worker",fu="/bin/sh";function hy(e=process.env,t=process.platform){let r=uu(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:iy({platform:t}),posix:r};let n=Mo(`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:VO(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&hu(fy(o,"systemd","private"));return{platform:t,systemdRun:ky("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function VO(e){return hu(fu)?{available:!0,shell:fu,nice:ky("nice",e)}:uu(`no POSIX shell was found at ${fu}, so there is nothing to apply rlimits or priority in`)}function my(e=process.env){let t=(e[gy]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function zO(e,t,r=ja){return by(e,t,r).replace(/\.service$/,"")}function by(e,t,r=ja){return`${gu(r,"red-worker",24)}-${gu(e,"project",32)}-${gu(t,"worker",32)}.service`}function yy(e){let t=[...e.args??[]],r={...e.budget??{},...e.budget?.memory_max==null&&e.memoryCeiling?.memory_max!=null?{memory_max:e.memoryCeiling.memory_max}:{}},n=r.memory_max??r.memory_high??null,o=r.memory_high!=null||r.memory_max!=null||r.cpu_weight!=null,s=e.target??{isolation:"transient-unit"},i=u=>({isolated:!1,backend:"none",command:e.command,args:t,cwd:e.workspacePath,warning:u,budget:r,...n!=null?{memoryCeiling:n}:{},environment:gs({scope:null,memory_ceiling:n,scope_degradation:u}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}});if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${gy}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return YO(e,t,r,n,o,i);if(e.probes.platform==="darwin")return JO(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=by(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`];e.pipeOutput===!0&&l.push("--pipe"),r.memory_high!=null&&l.push(`--property=MemoryHigh=${r.memory_high}`),r.memory_max!=null&&l.push(`--property=MemoryMax=${r.memory_max}`),r.cpu_weight!=null&&l.push(`--property=CPUWeight=${r.cpu_weight}`);let d=gs({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=pu(e.budget);return{isolated:!0,backend:"transient-unit",unit:a,command:e.probes.systemdRun,args:[...l,"--",e.command,...t],budget:r,...n!=null?{memoryCeiling:n}:{},environment:d,...c!=null?{budgetWarning:c}:{}}}function JO(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=cy(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=py(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:uy({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:gs({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 YO(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=ay(r),l=zO(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:gs({scope:l,memory_ceiling:n,scope_degradation:null}),...QO(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,pu(e.budget))}}function QO(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function ky(e,t){for(let r of(t.PATH??"").split(KO)){if(!r)continue;let n=fy(r,e);if(hu(n))return n}return null}function gu(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function mu(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}var wy=3e4;function Ry(e){return e.unit!=null&&e.unit!==""?XO(e.unit):Qe(e.pid)}function XO(e){let t=Ba("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var ZO="REDSKILLED_UNIT_DISCOVERY",_y="(unowned)";function xy(e){let t=Ba("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 eD(e=process.env){let t=(e[ZO]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function Ey(e,t,r=process.env){return eD(r)&&e===t}function vy(e=ja){let t=Ba("systemctl",["--user","list-units","--type=service","--state=active","--plain","--no-legend","--no-pager",`${e}-*.service`],{encoding:"utf8"});return t.error!=null||t.status!==0?[]:(t.stdout??"").split(`
92
- `).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function Sy(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:_y,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 Ty(e){return e.project_label.trim()!==""?e:{...e,project_label:_y,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 Py(e){if(e.unit!=null&&e.unit!==""){let t=Ba("systemctl",["--user","stop",e.unit],{stdio:"ignore"});return t.error==null&&t.status===0}try{return process.kill(e.pid,"SIGTERM"),!0}catch{return!1}}var Vs=50,yu=15e3,hH=2*yu;function tD(e,t=Vs){if(ku(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 Cy(e,t={}){let r=t.batchSize??Vs;if(ku(e),e.length>r)throw new Error(`redskilled queue discovery spans at most ${r} selectors in one query, and this batch holds ${e.length}: split it with planQueueDiscoveryBatches rather than dropping the remainder`);let n=e.map((i,a)=>({alias:`q${a}`,project:i}));return{query:["query RedskilledQueueDiscovery {"," rateLimit { remaining resetAt }",...n.map(({alias:i,project:a})=>` ${i}: search(query: ${JSON.stringify(a.selector)}, type: ISSUE, first: 1) { issueCount }`),"}"].join(`
93
- `),aliases:n}}function Oy(e,t){let r=Ks(t),n=Ks(r.data),o=Array.isArray(r.errors)?r.errors.map(Ks):[],s=iD(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=lD(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=>aD(u.path,a));return s.exhausted||Iy(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: ${bu(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function rD(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:Vs,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function Dy(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:Vs,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 Fy(e){if(e.projects.length===0)return rD(e.now);if(e.transport.conditionalList)return await oD(e);let t=e.batchSize??Vs,r=tD(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=Cy(s,{batchSize:t});try{let a=await e.transport(i.query),l=Oy(i,a);n.push(...l.projects),o=qs(o,l.rate_limit)}catch(a){let l=a instanceof Error?a.message:String(a),d=/rate limit|secondary rate|429/i.test(l);o=qs(o,{remaining:null,reset_at:null,exhausted:d});for(let c of s)n.push({project_label:c.project_label,outcome:d?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(c.project_label)} answered: ${l}`})}}return{version:1,fetched_at:e.now,request_count:r.length,project_count:n.length,batch_size:t,rate_limit:o,projects:n}}var nD={key:"redskilled queue poll",budget:"rest"};async function oD(e){ku(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=Cy([s],{batchSize:1}),d=Oy(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=qs(n,d.rate_limit);continue}let i=await t({cacheKey:`queue:${s.project_label}:${JSON.stringify(s.poll)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:{owner:s.poll.owner,repo:s.poll.repo,state:"open",labels:s.poll.labels.join(","),...s.poll.creator==null?{}:{creator:s.poll.creator}},operation:nD});o+=i.requestCount;let a=i.data.filter(l=>!My(l.pull_request)).length;n=qs(n,sD(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=Os(i);n=qs(n,{remaining:null,reset_at:null,exhausted:a}),r.push({project_label:s.project_label,outcome:a?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(s.project_label)} answered: ${i instanceof Error?i.message:String(i)}`})}return{version:1,fetched_at:e.now,request_count:o,project_count:r.length,batch_size:1,rate_limit:n,projects:r}}function ku(e){if(e.length===0)throw new Error("redskilled queue discovery needs at least one registered project");let t=new Set;for(let r of e){if(typeof r.project_label!="string"||r.project_label==="")throw new Error("redskilled queue discovery needs a project label for every registered project");if(typeof r.selector!="string"||r.selector==="")throw new Error(`redskilled queue discovery needs a selector for project ${JSON.stringify(r.project_label)}: a project that names no work has no queue to discover`);if(t.has(r.project_label))throw new Error(`redskilled holds one selector per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function qs(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted}}function sD(e){let t=Ay(e,"x-ratelimit-remaining"),r=Ay(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function Ay(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 iD(e,t){let r=Ks(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(Iy)||n===0}}function Iy(e){return e==null?!1:bu(e.type)==="RATE_LIMITED"||/rate limit/i.test(bu(e.message))}function aD(e,t){return Array.isArray(e)&&e.includes(t)}function lD(e){let t=Ks(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Ks(e){return My(e)?e:{}}function My(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function bu(e){return typeof e=="string"?e:""}function Ly(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(dD,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=cD?Math.max(t,3e4):o<=uD?Math.max(t,2e4):t}var dD=1e5,cD=250,uD=1e3;var pD={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},fD=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],gD=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function jy(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...pD};for(let n of fD){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of gD){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{randomInt as yD}from"node:crypto";import{spawn as kD}from"node:child_process";import{appendFileSync as wD,mkdirSync as RD}from"node:fs";import{dirname as _D}from"node:path";import{delimiter as By,dirname as hD}from"node:path";function mD(e,t=By){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function bD(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=hD(t);return r===""||r==="."?null:r}function $y(e,t=process.execPath,r=By){let n=mD(e,r),o=bD(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var Lo=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},Ar=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},wu="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",Ny=4,xD=wu.length**Ny;function _u(e,t=yD){let r=new Set(e);for(let n=0;n<xD;n+=1){let o="h";for(let s=0;s<Ny;s+=1)o+=wu[t(wu.length)];if(!r.has(o))return o}throw new Lo("redskilled exhausted the host Worker id space")}function ED(e){if(e==null||e.trim()==="")return{ready:!1};let t=_D(e);try{return RD(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})`}: ${Ru(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function vD(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{wD(t,Mt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
94
- `);s=l.pop()??"";for(let d of l)i(d)}),n.on("end",()=>{s!==""&&i(s)})};r(e.stdout,"worker.stdout"),r(e.stderr,"worker.stderr")}function SD(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 Lo(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new Lo("redskilled worker spec args must be an array")}function TD(e){if(e==null)throw new Ar("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new Ar(e.reason,e)}function Gy(e){let{spec:t,admission:r}=e;TD(r),SD(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||_u(e.liveWorkerIds??[]),i=e.probes??hy(n),a=im(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),l=e.openLog===!1?{ready:!1}:ED(a),d=l.ready,c={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:$y(t.env?.PATH??n.PATH,e.execPath??process.execPath)},u=yy({workerId:s,projectLabel:t.project_label,workspacePath:t.workspace_path,command:t.command,args:t.args,budget:t.budget,...e.memoryCeiling!=null?{memoryCeiling:e.memoryCeiling}:{},target:t.placement,env:c,enabled:e.enabled??my(n),probes:i,pipeOutput:d}),g=(e.spawnFn??kD)(u.command,u.args,{...u.cwd!=null?{cwd:u.cwd}:{},detached:!0,stdio:d?["ignore","pipe","pipe"]:"ignore",env:u.backend==="transient-unit"?{...n}:{...n,...c,...u.environment}});if(d&&a!=null&&vD(g,a),g.pid==null)throw g.once("error",()=>{}),new Lo(`redskilled could not spawn ${JSON.stringify(u.command)} for worker ${s}`);let f=u.job!=null?PD(u,i,g.pid):null;g.once("error",()=>{}),g.once("exit",(T,$)=>{try{f?.job?.close()}catch{}e.onExit?.(s,T,$)}),g.unref();let k=u.job!=null?f?.job!=null:u.isolated,b=[u.warning,f?.warning,u.budgetWarning,l.warning].filter(T=>T!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:g.pid,started_at:o(),workspace_path:t.workspace_path,...d&&a!=null?{log_path:a}:{},isolated:k,...u.unit!=null?{unit:u.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(u.budget).length>0?{applied_budget:u.budget}:{},...u.memoryCeiling!=null?{memory_ceiling:u.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:b},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:b,plan:u,child:g,...f?.job!=null?{job:f.job}:{}}}function PD(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: ${Ru(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)}: ${Ru(i)}. ${o}`}}return{job:s}}function Ru(e){return e instanceof Error?e.message:String(e)}import{execFile as AD}from"node:child_process";var CD="refs/heads/red-trunk";function $a(e,t){return new Promise((r,n)=>{AD("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function Wy(e){await $a(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await $a(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 $a(e.workspace_path,["update-ref",CD,t]),t}async function Hy(e){let t=await $a(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 OD,stat as DD}from"node:fs/promises";var FD=16*1024;async function Uy(e,t=FD){let r;try{r=(await DD(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await OD(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 ID(o)}function ID(e){let t=e.split(`
95
- `);for(let r=t.length-1;r>=0;r-=1){let n=t[r].replace(/\r$/,"");if(n.trim()!=="")return n}return null}import{spawn as QD}from"node:child_process";import{existsSync as XD,readdirSync as ZD}from"node:fs";import{dirname as eF,join as t0,resolve as tF}from"node:path";var MD="<version>";function mn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():MD;return[`npx -y -p ${Mn}@${n}`,e,...t].join(" ")}function lr(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 xu(e,t){let r=lr(e),n=lr(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var BH=4*60*60*1e3;Ur();Ur();import{spawnSync as LD}from"node:child_process";import{randomUUID as jD}from"node:crypto";import{mkdir as BD,rm as $D,writeFile as ND}from"node:fs/promises";import{existsSync as GD,mkdirSync as WD,renameSync as HD,writeFileSync as UD}from"node:fs";import{homedir as qD}from"node:os";import{dirname as qy,join as zs}from"node:path";var Yt="redskilled.service",Eu="REDSKILLED_SUPERVISED",KD="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function VD(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||zs(e.HOME?.trim()||qD(),".config");return zs(t,"systemd","user")}function jo(e=process.env){return zs(VD(e),Yt)}function Ky(e,t={}){let r=t.env??process.env,n=oa(t.override??{},t.entryLookup??{}),o=[...n.args,...on(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:Yt,unitPath:jo(r),command:n.command,args:o,text:zD(n.command,o,e)}}function zD(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${KD}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(Jy).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${Eu}=1"`,`Environment="REDSKILLED_SESSION=${Yy(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
96
- `)}function JD(e=process.env){return zs(`${jo(e)}.d`,"10-current-entry.conf")}function Vy(e){return zs(`${e}.d`,"10-current-entry.conf")}function zy(e,t,r={}){let n=JD(r.env??process.env),o=`${n}.${process.pid}.${jD()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...on(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(Jy).join(" ")}`,""].join(`
97
- `);WD(qy(n),{recursive:!0,mode:448}),UD(o,i,{encoding:"utf8",mode:384}),HD(o,n);let a=(r.run??Ga)(["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 Jy(e){return/[\s"'\\$%]/.test(e)?`"${Yy(e)}"`:e}function Yy(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function Qy(e,t={}){let r=t.writeFile??YD,n=t.removeFile??e0,o=t.run??Ga,s=[];return await r(e.unitPath,e.text),await n(Vy(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Na("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Na("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function Xy(e={}){let t=e.removeFile??e0,r=e.run??Ga,n=jo(e.env??process.env),o=[Na("disable",r,["systemctl","--user","disable","--now",Yt])];return await t(n),await t(Vy(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Na("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function Zy(e={}){let t=e.exists??GD,r=e.run??Ga,n=jo(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Yt]).status===0,i=o&&r(["systemctl","--user","is-active",Yt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Yt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Yt}`}]:[];return{unitName:Yt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Na(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 YD(e,t){await BD(qy(e),{recursive:!0}),await ND(e,t,{encoding:"utf8",mode:420})}async function e0(e){await $D(e,{force:!0})}function Ga(e){let t=LD(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 r0=75,o0=9e5,n0="redskilled-replacement-entry-unresolved",rF="REDSKILLED_NO_REGISTRY_PROBE",s0="REDSKILLED_BORN_BY_REPLACEMENT";function i0(e=process.env){return e[s0]==="1"}function a0(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function l0(e){let t=e.running.trim();if(Js(t))return null;let r=e.newest?.trim()??"",n=lr(r),o=lr(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:nF(n.major,e.supervised)}}function nF(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: ${mn("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 d0(e){let t=e.running.trim();if(Js(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||lr(r)===null?{act:"hold",reason:"published-unknown"}:xu(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function Js(e){let t=e.trim();return lr(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function c0(e=process.env){return e[Eu]==="1"}var vu=class extends Error{code=n0;searched;constructor(t,r){super(`${n0}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled
85
+ `),aliases:r}}function xb(e,t){let r=t!==null&&typeof t=="object"?t:{},n=r.data??r,o=n!==null&&typeof n=="object"?n:{};return Object.entries(e.aliases).map(([s,i])=>{let a=o[s];if(a===null||typeof a!="object")return{read:i,value:null};let l=a.object;return{read:i,value:l!==null&&typeof l=="object"&&!Array.isArray(l)?l:null}})}var jA=Rb.plugin(mc,ya);function Eb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function vb(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}var Io=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}};function jc(e){let t=e.etags??Eb(),r=new jA({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async c=>{let u=t.get(c.cacheKey),p={...c.parameters??{}},g=hn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),y=f.headers,h=Ea(y,"etag");return h!==void 0&&t.set(c.cacheKey,{etag:h,data:f.data,headers:y}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:y,quotaFree:!1}}catch(f){if(js(f)===304){if(u===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(c.cacheKey)} without a held answer to reuse`,{cause:f});let y=Sb(f),h={...u.headers,...y},R=Ea(h,"etag")??u.etag;return t.set(c.cacheKey,{etag:R,data:u.data,headers:h}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:h,quotaFree:!0}}throw js(f)===401?new Io({cause:f}):f}},o=new Map,s=!1,i=async c=>{let u=c.input,p=u.kind==="pr";try{let g=await n({cacheKey:u.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:u.owner,repo:u.repo,...p?{pull_number:u.number}:{issue_number:u.number}},operation:u.operation,actor:u.actor});c.resolve({data:u.project?u.project(g.data,"rest"):g.data,surface:"rest",quotaFree:g.quotaFree})}catch(g){c.reject(g)}},a=async c=>{try{let u=_b(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=xb(u,p),f=$A(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:NA(c.map(({input:h})=>h.actor))}),g.forEach((h,R)=>{let T=c[R];h.value===null?T.reject(new Error(`GitHub returned no ${h.read.kind} #${h.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(h.value,"graphql"):h.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=js(u)===401?new Io({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=vb(c);s=!1;let p=[...o.values()];o.clear(),await Promise.all(p.map(async g=>{g.length>u?await a(g):await Promise.all(g.map(i))}))};return{conditionalRest:n,singleObject:c=>t.get(c.cacheKey)!==void 0?new Promise((u,p)=>{i({input:c,resolve:u,reject:p})}):new Promise((u,p)=>{let g=o.get(c.kind)??[];g.push({input:c,resolve:u,reject:p}),o.set(c.kind,g),s||(s=!0,setTimeout(()=>void l(),0))}),async conditionalPaginate(c){let u=[],p={},g=0,f=!0,y=1;for(;;){let h=await n({...c,cacheKey:`${c.cacheKey}:page:${y}`,parameters:{...c.parameters??{},per_page:100,page:y}});if(g+=1,f=f&&h.quotaFree,!Array.isArray(h.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${y}`);if(u.push(...h.data),p=h.headers,!BA(h.headers))break;y+=1}return{data:u,headers:p,requestCount:g,quotaFree:f}},async graphql(c,u={},p){try{let g=await r.graphql(c,u);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),g}catch(g){throw js(g)===401?new Io({cause:g}):g}}}}function BA(e){let t=Ea(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Bs(e){let t=js(e),r=Sb(e);return t===429||t===403&&Ea(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function js(e){if(hn(e))return typeof e.status=="number"?e.status:void 0}function Sb(e){return!hn(e)||!hn(e.response)||!hn(e.response.headers)?{}:e.response.headers}function Ea(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function hn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function $A(e){let t=hn(e)?e:{},r=hn(t.data)?t.data:t,o=(hn(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(o)||o<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return o}function NA(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var Pb="rate_limit",Ab={rest:"core",graphql:"graphql",search:"search"},Qr=["rest","graphql","search"];function Pa(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Qr],detail:t??"no balance has been asked for yet, so none is known"}}var $c=15e3,Mo=.15,Sa=[{at_or_below_fraction:0,every_ms:$c,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Mo,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}];var s5=60*6e4,Bc=2;function Cb(e,t){let r=Tb(e),n=Tb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Qr){let l=Ab[a],d=n[l],c=HA(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Qr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${Qr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Nc(e){try{let t=await e.transport();return Cb(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Pa(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Gc(e){let t=null;for(let r of Qr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function Aa(e,t){let r=Gc(e);if(r==null)return Ta(Mo).every_ms;let n=Ta(r.fraction);if(r.remaining>0)return n.every_ms;let o=Ob(t.now,r.reset_at);return o==null?n.every_ms:Math.max($c,Math.min(n.every_ms,o))}function Wc(e,t=Mo){return Math.ceil(e.limit*t)}function Db(e,t,r=Mo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Wc(n,r)?"reserved":"open"}function Hc(e){let t=e.reservedFraction??Mo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Ta(t).every_ms*Bc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Ta(t).every_ms,pools:[],unreported_pools:[...Qr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=Aa(r,{now:e.now}),o=e.stalenessMs??n*Bc,s=Ob(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Qr.map(c=>r.pools[c]).filter(c=>c!=null),l=WA(r,t),d=Gc(r);return{version:1,origin:"asked",outcome:r.outcome,asked_at:r.asked_at,age_ms:s,threshold_ms:o,stale:i,posture:l,reserved_fraction:t,next_poll_ms:n,pools:a,unreported_pools:r.unreported_pools,reason:i?`this balance is stale: asked ${s==null?"at an unreadable instant":`${s}ms ago`}, past the ${o}ms window, so the posture below is the last one the token confirmed and not the current one`:GA(l,d,r,t)}}function Uc(e){if(!Kc(e))return!1;let t=e;return t.version===1&&t.origin==="asked"&&(t.outcome==="asked"||t.outcome==="unanswered")&&(t.asked_at===null||typeof t.asked_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.posture=="string"&&typeof t.reserved_fraction=="number"&&typeof t.next_poll_ms=="number"&&Array.isArray(t.pools)&&Array.isArray(t.unreported_pools)&&typeof t.reason=="string"}function GA(e,t,r,n){if(t==null)return r.detail;let o=Wc(t,n);switch(e){case"spent":return`the ${t.pool} pool is spent and resets at ${t.reset_at}: work is not queued, it is refused`;case"reserved":return`the ${t.pool} pool has ${t.remaining} of ${t.limit} left, inside the reserved band of ${o}: convenience reads are refused and the claim, a landing and a closing comment still pass`;default:return`the ${t.pool} pool is the tightest at ${t.remaining} of ${t.limit}, above the reserved band of ${o}`}}function WA(e,t){let r="unknown";for(let n of Qr){if(e.pools[n]==null)continue;let o=Db(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Ta(e){for(let t of Sa)if(e<=t.at_or_below_fraction)return t;return Sa[Sa.length-1]}function HA(e,t,r){if(!Kc(r))return null;let n=va(r.limit),o=va(r.remaining),s=va(r.used),i=va(r.reset);return n==null||n<=0||o==null?null:{pool:e,resource:t,limit:n,remaining:o,used:s??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:o/n}}function qc(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${Pb}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function Ob(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function va(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Tb(e){return Kc(e)?e:{}}function Kc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as UA}from"node:child_process";import{existsSync as qA,readFileSync as Ca,readdirSync as KA}from"node:fs";import{dirname as VA,join as Un}from"node:path";function $s(e){let t=As(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Co(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Fb(e){let t=[],r=[];for(let n of e.workers){let o=$s(n);if(o==null){r.push({worker_id:n.worker_id,reason:(As(n).memory_max??As(n).memory_high)==null?"this Worker declared no memory budget and the host derived no ceiling for it, so the sampler has none to enforce":"this Worker's declared memory budget cannot be reduced to bytes, so the sampler has no ceiling to enforce"});continue}let s=e.rss[n.worker_id];if(typeof s!="number"||!Number.isFinite(s)){r.push({worker_id:n.worker_id,reason:"the host produced no RSS reading for this Worker on this tick, and an unmeasured Worker is never killed on suspicion"});continue}if(!(s<=o.bytes)){if(e.sources?.[n.worker_id]==="cgroup"&&o.name==="MemoryMax"){r.push({worker_id:n.worker_id,reason:`this Worker's ${o.name} of ${o.declared} is held by the kernel on its own cgroup, and the reading is memory.current \u2014 which counts reclaimable page cache the kernel drops before it kills anything, so the daemon does not duplicate an enforcement that can tell cache from anonymous memory`});continue}t.push(zA(n,o,s))}}return{terminations:t,unenforceable:r}}function zA(e,t,r){let n=`Worker ${JSON.stringify(e.worker_id)} of project ${JSON.stringify(e.project_label)}`;return{version:1,worker_id:e.worker_id,project_label:e.project_label,outcome:"terminated-over-memory-budget",classification:"budget-exceeded",stall:!1,budget_name:t.name,budget_declared:t.declared,budget_bytes:t.bytes,observed_rss_bytes:r,workspace_path:e.workspace_path,reason:`redskilled terminated ${n}: its tree RSS of ${r} bytes exceeded its ${t.name} budget of ${t.declared} (${t.bytes} bytes). This is a budget termination, not a stall, and the work in ${JSON.stringify(e.workspace_path)} is handed forward.`}}var JA=4096;function Ib(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=QA(e,r,t);for(let[u,p]of a){let g=eC(p);g!=null&&(o[u]=g.memoryBytes,g.cpuSeconds!=null&&(s[u]=g.cpuSeconds),i[u]="cgroup")}let l=e.filter(u=>i[u.worker_id]==null);if(l.length===0)return{rss:o,cpu_seconds:s,sources:i};let d=nC(r,t);if(d.size===0)return{rss:o,cpu_seconds:s,sources:i};let c=new Map;for(let u of d.values()){let p=c.get(u.ppid);p?p.push(u.pid):c.set(u.ppid,[u.pid])}for(let u of l){if(!d.has(u.pid))continue;let p=0,g=0,f=[u.pid],y=new Set;for(;f.length>0;){let h=f.pop();if(y.has(h))continue;y.add(h);let R=d.get(h);if(R){p+=R.rssBytes,g+=R.cpuSeconds;for(let T of c.get(h)??[])f.push(T)}}o[u.worker_id]=p,s[u.worker_id]=g,i[u.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,sources:i}}var YA="/sys/fs/cgroup";function QA(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??YA,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=XA(s,r);for(let l of i)for(let d of a){let c=Un(d,l.unit);if(qA(Un(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function XA(e,t){let r=t.selfCgroupPath??ZA(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Un(e,s));let a=VA(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(Un(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function ZA(){try{for(let e of Ca("/proc/self/cgroup","utf8").split(`
86
+ `))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function eC(e){let t;try{t=Ca(Un(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:tC(e)}}function tC(e){let t;try{t=Ca(Un(e,"cpu.stat"),"utf8")}catch{return null}return rC(t)}function rC(e){for(let t of e.split(`
87
+ `)){let[r,n]=t.trim().split(/\s+/);if(r!=="usage_usec")continue;let o=Number(n);return!Number.isFinite(o)||o<0?null:o/1e6}return null}function nC(e,t){return t.procRoot!=null||e==="linux"?dC(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?aC(oC(t.psTable)):new Map}function oC(e){try{return(e??sC)()}catch{return""}}function sC(){return UA("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var iC=1024;function aC(e){let t=new Map;for(let r of e.split(`
88
+ `)){let n=r.trim().split(/\s+/);if(n.length!==4)continue;let[o,s,i]=n.slice(0,3).map(Number);if(![o,s,i].every(l=>l!=null&&Number.isSafeInteger(l)&&l>=0))continue;let a=lC(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*iC,cpuSeconds:a})}return t}function lC(e){let t=e.indexOf("-"),r=t<0?0:Number(e.slice(0,t));if(!Number.isFinite(r)||r<0)return null;let n=e.slice(t+1).split(":"),o=r*86400,s=1;for(let i=n.length-1;i>=0;i--){let a=Number(n[i]);if(!Number.isFinite(a)||a<0||n[i]==="")return null;o+=a*s,s*=60}return o}function dC(e){let t=new Map,r;try{r=KA(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=Ca(Un(e,n,"stat"),"utf8")}catch{continue}let s=uC(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*JA,cpuSeconds:s.cpuTicks/cC})}return t}var cC=100;function uC(e){let t=e.lastIndexOf(")");if(t<0)return null;let r=Number(e.slice(0,e.indexOf(" "))),n=e.slice(t+1).trim().split(/\s+/),o=Number(n[1]),s=Number(n[11]),i=Number(n[12]),a=Number(n[21]);return!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(i)?null:{pid:r,ppid:o,rssPages:Math.max(0,a),cpuTicks:Math.max(0,s)+Math.max(0,i)}}var pC=["api","graphql"],L5=uc(pC);var Mb=100,zc=6e4,fC=2*zc,gC=7*24*60*60*1e3,Vc=class extends Error{constructor(r,n,o){super(`redskilled polls every repository with one host token ${JSON.stringify(o)}, and project ${JSON.stringify(r)} declares its own credential ${JSON.stringify(n)}: a project needing its own credential invalidates the host-scoped poller (ADR 0130 Amendment 1) rather than bending it, so the poller returns to the projects instead of reaching this repository under the wrong identity`);this.projectLabel=r;this.tokenRef=n;this.hostTokenRef=o;this.name="RedskilledSplitCredentialError"}};function Jc(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new Vc(r.project_label,r.token_ref,t)}function Nb(e,t={now:new Date(0).toISOString()}){qb(e);let r=t.closedWindowMs??gC,n=Date.parse(t.now);if(!Number.isFinite(n))throw new Error(`redskilled activity fetch needs an instant, not ${JSON.stringify(t.now)}`);let o=new Date(n-Math.max(0,r)).toISOString(),s=e.map((l,d)=>({alias:`r${d}`,search_alias:`c${d}`,project:l}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...s.flatMap(({alias:l,search_alias:d,project:c})=>{let u=JSON.stringify(c.owner),p=JSON.stringify(c.name),g=JSON.stringify(`repo:${c.owner}/${c.name} is:closed closed:>=${o}`);return[` ${l}: repository(owner: ${u}, name: ${p}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${d}: search(query: ${g}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
89
+ `),aliases:s,closed_since:o}}function hC(e,t,r){let n=Lo(t),o=Lo(n.data),s=Array.isArray(n.errors)?n.errors.map(Lo):[],i=RC(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,project:c})=>{let u=c.owner+"/"+c.name,p=o[l],g=s.find(f=>Bb(f.path,l)||Bb(f.path,d));if(Ns(p)){let f=$b(p.open_pull_requests),y=$b(p.open_issues),h=_C(o[d]);if(f!=null&&y!=null&&h!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:y,recently_closed:h},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||Kb(g)?{project_label:c.project_label,repository:u,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${u} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:c.project_label,repository:u,outcome:"unreachable",counts:null,detail:`${u} is not reachable with the host token: ${Da(g?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function mC(e){return{version:1,fetched_at:e,request_count:0,project_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[]}}async function Gb(e){if(e.projects.length===0)return mC(e.now);if(Jc(e.projects,e.hostTokenRef),e.transport.conditionalList)return await yC(e);let t=Nb(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return hC(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}var bC={key:"redskilled repository activity poll",budget:"rest"};async function yC(e){qb(e.projects);let t=Date.parse(e.now),r=Number.isFinite(t)?new Date(Math.floor(t/(60*60*1e3))*60*60*1e3).toISOString():e.now,n=Nb(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let y=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:bC});i+=y.requestCount;let h=p==="open-prs"?y.data:y.data.filter(R=>!Ns(R.pull_request));u.push(p==="recently-closed"?h.filter(R=>Da(R.closed_at)>=n.closed_since).length:h.length),a=Lb(a,wC(y.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=Bs(p);a=Lb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function Wb(e){let t=e.stalenessMs??fC,r=e.activity;if(r==null)return{version:1,fetched_at:null,age_ms:null,threshold_ms:t,stale:!1,request_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[],reason:"the daemon polls no repository, so there are no counts to age"};let n=Date.parse(e.now),o=Date.parse(r.fetched_at),s=Number.isFinite(n)&&Number.isFinite(o)?Math.max(0,n-o):null,i=s==null||s>t;return{version:1,fetched_at:r.fetched_at,age_ms:s,threshold_ms:t,stale:r.projects.length>0&&i,request_count:r.request_count,rate_limit:r.rate_limit,projects:r.projects.map(a=>({...a,fetched_at:r.fetched_at,age_ms:s,stale:i})),reason:r.projects.length===0?"the daemon polls no repository, so there are no counts to age":s==null?"these counts carry no readable instant, so they cannot be presented as current":i?`these counts are ${s}ms old, past the ${t}ms window`:`fetched ${s}ms ago, within the ${t}ms window`}}function Hb(e){if(!Ns(e))return!1;let t=e;return t.version===1&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&Number.isInteger(t.request_count)&&Ns(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Ub(e){let t=e.endpoint==null?void 0:kC(e.endpoint),r=jc({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n}function kC(e){let t=new URL(e);return/\/api\/graphql\/?$/.test(t.pathname)?t.pathname=t.pathname.replace(/\/api\/graphql\/?$/,"/api/v3"):t.pathname=t.pathname.replace(/\/graphql\/?$/,""),t.search="",t.hash="",t.toString().replace(/\/$/,"")}function wC(e){let t=jb(e,"x-ratelimit-remaining"),r=jb(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Lb(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted,point_cost:null}}function jb(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function qb(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Mb)throw new Error(`redskilled activity fetch spans at most ${Mb} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function RC(e,t){let r=Lo(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(Kb),i=typeof r.cost=="number"&&Number.isFinite(r.cost)?r.cost:null;return{remaining:n,reset_at:o,exhausted:s||n===0,point_cost:i}}function Kb(e){if(e==null)return!1;let t=Da(e.type),r=Da(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Bb(e,t){return Array.isArray(e)&&e.includes(t)}function $b(e){let t=Lo(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function _C(e){let t=Lo(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Lo(e){return Ns(e)?e:{}}function Ns(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Da(e){return typeof e=="string"?e:""}var xC=3e4,EC=2,vC=3,SC=4,TC=["logs","vitals","display"];function Vb(e,t){if(t===void 0)return e;let r=TC.filter(o=>t[o]!==!0);if(r.length===0)return e;let n=o=>t[o]===!0;return{...e,workers:e.workers.map(o=>({...o,...n("vitals")?{}:{vitals:PC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:AC},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var PC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},AC={last_line:null,published_at:null,source:null};function zb(e){let t=e.stalenessMs??xC,r=mn(e.now),n=e.sampledAt==null?null:mn(e.sampledAt),o=r==null||n==null?null:Math.max(0,r-n),s=o!=null&&o<=t,i=new Set(e.reattachedWorkerIds??[]),a=e.hostState.workers.map(p=>FC(p,{rss:e.rss,sampledAt:e.sampledAt,ageMs:o,sampleFresh:s,nowMs:r,log:e.logLines?.[p.worker_id],display:e.displays?.[p.worker_id],state:i.has(p.worker_id)?"reattached":"running"})),l=a.filter(p=>p.vitals.rss_bytes==null).map(p=>p.worker_id).sort(),d=a.length-l.length,c=a.reduce((p,g)=>p+(g.vitals.rss_bytes??0),0),u=ua(e.hostState.workers);return{version:1,generated_at:e.now,daemon:{pid:e.hostState.pid,daemon_version:e.hostState.daemon_version,protocol_version:e.hostState.protocol_version,started_at:e.hostState.started_at,machine_id_hash:e.hostState.machine_id_hash,session_key_hash:e.hostState.session_key_hash},staleness:jC({sampledAt:e.sampledAt,ageMs:o,threshold:t,workerCount:a.length,measuredCount:d,unmeasured:l}),host:{worker_count:a.length,project_count:e.hostState.projects.length,ceiling:e.ceiling,consumption:u,budget_accounting:e.hostState.budget_accounting,observed_rss_bytes:c,measured_worker_count:d,ceiling_used_fraction:e.ceiling.memory_bytes==null||e.ceiling.memory_bytes<=0?null:u.memory_bytes/e.ceiling.memory_bytes},projects:LC(a),known_projects:MC(e.hostState),registered_projects:(e.hostState.registrations??[]).map(p=>p.project_label).sort((p,g)=>p.localeCompare(g)),lapsed_projects:(e.hostState.lapsed_registrations??[]).map(p=>({project_label:p.project_label,at:p.at,...p.registered_at==null?{}:{registered_at:p.registered_at},reason:p.detail})),stopped_projects:(e.hostState.stopped_registrations??[]).map(p=>({project_label:p.project_label,at:p.at})),orphaned_projects:(e.hostState.orphaned_registrations??[]).map(p=>p.project_label),workers:a,github_balance:Hc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Wb({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:CC(e.deaths,e.recentDeathLimit??SC)},engine:OC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function CC(e,t){let r=[...e].sort((s,i)=>(mn(i.ts)??0)-(mn(s.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(s=>({kind:s.kind,id:s.id,pid:s.pid,ts:s.ts,last_seen:s.last_seen,last_phase:s.last_phase,sender_class:s.sender_class,confidence:s.confidence,signal:s.signal,evidence:s.evidence[0]??null})),o=DC(r);return{count:r.length,recent:n,latest:n[0]??null,reaped_at:n[0]?.ts??null,...o==null?{}:{boot_loop:o}}}function DC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>EC||n.project_label==null||n.project_label===""||mn(n.ts)==null)continue;let o=t.get(n.project_label)??[];o.push(n),t.set(n.project_label,o)}return[...t.entries()].filter(([,n])=>n.length>=vC).map(([n,o])=>{let s=o[0],i=mn(s.ts),a=Math.min(...o.map(d=>mn(d.ts))),l=s.detail?.trim()||s.evidence[0]?.trim();return l==null||l===""?null:{project_label:n,count:o.length,span_ms:Math.max(0,i-a),latest_refusal:l}}).filter(n=>n!=null).sort((n,o)=>o.count-n.count||o.span_ms-n.span_ms)[0]??null}function OC(e){let t=e.upgrade,r=t?.running_version??e.daemon_version,n=t?.published_version??null,o=t?.newest_published_version??null,s=(t?.newer_published??0)>0,i=(t?.major_held??0)>0;return{running_version:r,published_version:n,newer_published:s,major_held:i,current:n==null&&o==null?null:!s&&!i}}function FC(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=$s(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=mn(e.started_at);return{worker_id:e.worker_id,project_label:e.project_label,workspace_path:e.workspace_path,pid:e.pid,started_at:e.started_at,...e.base_commits_ahead==null?{}:{base_commits_ahead:e.base_commits_ahead},uptime_ms:t.nowMs==null||i==null?null:Math.max(0,t.nowMs-i),state:t.state,isolated:e.isolated,unit:e.unit??null,warnings:[...e.warnings],vitals:{rss_bytes:n,sampled_at:n==null?null:t.sampledAt,age_ms:n==null?null:t.ageMs,fresh:n!=null&&t.sampleFresh,rss_source:n==null?null:e.rss_source??null},budget:{name:o?.name??null,declared:o?.declared??s,bytes:o?.bytes??null,used_bytes:n,used_fraction:o==null||o.bytes<=0||n==null?null:n/o.bytes,enforceable:o!=null},log:IC(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function IC(e){let t={last_line:null,published_at:null,source:null};return e==null||e.line.trim()===""?t:{last_line:e.line,published_at:e.published_at,source:e.source}}function MC(e){let t=new Set;for(let r of e.registrations??[])t.add(r.project_label);for(let r of e.projects)t.add(r.project_label);for(let r of e.lapsed_registrations??[])t.add(r.project_label);for(let r of e.stopped_registrations??[])t.add(r.project_label);for(let r of e.orphaned_registrations??[])t.add(r.project_label);return[...t].sort((r,n)=>r.localeCompare(n))}function LC(e){let t=new Map;for(let r of e){let n=t.get(r.project_label)??{workers:0,declared:0,observed:0,measured:0};n.workers+=1,n.declared+=r.budget.bytes??0,n.observed+=r.vitals.rss_bytes??0,n.measured+=r.vitals.rss_bytes==null?0:1,t.set(r.project_label,n)}return[...t.entries()].map(([r,n])=>({project_label:r,worker_count:n.workers,declared_memory_bytes:n.declared,observed_rss_bytes:n.observed,measured_worker_count:n.measured})).sort((r,n)=>r.project_label.localeCompare(n.project_label))}function jC(e){let t={sampled_at:e.sampledAt,age_ms:e.ageMs,threshold_ms:e.threshold,measured_worker_count:e.measuredCount,unmeasured_workers:e.unmeasured};return e.workerCount===0?{...t,stale:!1,reason:"the host holds no Workers, so there is nothing to measure and nothing to age"}:e.sampledAt==null||e.ageMs==null?{...t,stale:!0,reason:`this answer is stale: the daemon has taken no measurement of its ${e.workerCount} live Worker(s) yet`}:e.ageMs>e.threshold?{...t,stale:!0,reason:`this answer is stale: its measurement is ${e.ageMs}ms old, past the ${e.threshold}ms staleness window`}:{...t,stale:!1,reason:`measured ${e.ageMs}ms ago, within the ${e.threshold}ms staleness window`}}function mn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Yc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.daemon,n=t.staleness,o=t.host;return t.version===1&&typeof t.generated_at=="string"&&r!=null&&typeof r=="object"&&Number.isInteger(r.pid)&&typeof r.daemon_version=="string"&&typeof r.protocol_version=="number"&&n!=null&&typeof n=="object"&&typeof n.stale=="boolean"&&typeof n.threshold_ms=="number"&&Array.isArray(n.unmeasured_workers)&&o!=null&&typeof o=="object"&&Number.isInteger(o.worker_count)&&Number.isInteger(o.project_count)&&typeof o.observed_rss_bytes=="number"&&Array.isArray(t.projects)&&Array.isArray(t.workers)&&(t.known_projects===void 0||Array.isArray(t.known_projects)&&t.known_projects.every(s=>typeof s=="string"))&&(t.registered_projects===void 0||Array.isArray(t.registered_projects)&&t.registered_projects.every(s=>typeof s=="string"))&&(t.lapsed_projects===void 0||Array.isArray(t.lapsed_projects)&&t.lapsed_projects.every(BC))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every($C))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Hb(t.repository_activity))&&(t.github_balance===void 0||Uc(t.github_balance))&&(t.deaths===void 0||NC(t.deaths))&&(t.engine===void 0||GC(t.engine))&&(t.metrics===void 0||Ch(t.metrics))}function BC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.reason=="string"}function $C(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"}function NC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Number.isInteger(t.count)&&Array.isArray(t.recent)}function GC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")}var Jb={runner:null,model:null,effort:null,origin:null,issue:null,phase:null,step:null,phase_index:null,phase_total:null,failed:!1,heartbeat:null,wait_kind:null,wait_subject:null,wait_pid:null,wait_started_at:null,wait_deadline:null,wait_escalation:null,started_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null};function Yb(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var yt=e=>`\x1B[${e}m`,Gs=yt("48;2;114;47;55"),Qc=yt("48;2;88;36;42"),bn=yt("38;2;255;255;255"),Xc=yt("38;2;201;150;158"),Ws=yt("38;2;255;214;214"),Hs=yt("39"),jt=yt("38;2;224;138;148"),Zc=yt("38;2;240;200;120"),eu=yt("38;2;240;110;120"),tu=yt("38;2;255;214;214"),ru=yt("38;2;146;84;94"),nu=yt("38;2;255;95;95"),Cr=yt("49"),ar=yt("0"),Oa=yt("1"),Fa=yt("22");var WC=/\x1b\[[0-9;]*m/g,HC=/(\x1b\[[0-9;]*m)/,UC=/^\x1b\[[0-9;]*m$/;function qn(e){return e.replace(WC,"")}function qC(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Yt(e){return[...qn(e)].length}function Xe(e,t){if(t<=0)return"";if(Yt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(HC))if(i!==""){if(UC.test(i)){s+=i,o=!qC(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?ar:""}`;s+=a,n+=1}}return`${s}\u2026${o?ar:""}`}function Us(e,t){return e+" ".repeat(Math.max(0,t-Yt(e)))}function ou(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"]){let n=t.indexOf(r);if(n===-1)continue;let s=t.slice(n+r.length).match(/^-(\d+(?:[-.]\d+)*)/)?.[1]?.split(/[-.]/)??[];return/^\d{8}$/.test(s.at(-1)??"")&&s.pop(),s.length===0?r:`${r}-${s.join(".")}`}return e}function lr(e){if(!Number.isFinite(e)||e<=0)return"0B";let t=["B","K","M","G","T"],r=e,n=0;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r>=100||n===0?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")}${t[n]}`}function qs(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function yn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return qs(e);if(e<=0)return"0";let t=(Math.round(e*10)/10).toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function kn(e){if(e==null||!Number.isFinite(e)||e<0)return"\u2014";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function jo(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Ks="!unregistered",su="!lapsed",Vs="\u21E1",Dr="\u2020",Bo="\u25D0",$o="\u25EF",iu="\u21B3",au="redskilled unreachable \u2014 Worker state unknown";function No(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Ia(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function zs(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function lu(e){let t=[];return e.workers.length>0&&e.workers.length<=e.maxWorkers&&t.push("workers"),e.mode==="global"&&e.projects.length>0&&e.projects.length<=e.maxProjects&&t.push("projects"),t.push("host"),t}function Ma(e,t){return e.startsWith(t)?e.slice(t.length):e}function Or(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function du(e,t,r){return r<110?{variant:"compact",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"work",header:"Work",flex:2,minWidth:14,truncate:!0},{key:"state",header:"State",flex:2,minWidth:14,truncate:!0},{key:"activity",header:"Latest activity",flex:3,minWidth:18,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,work:Or(Ma(n.cells.iss,"iss="),n.cells.phase),state:Or(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}:{variant:"operational",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"issue",header:"Issue",width:7},{key:"runner",header:"Runner",flex:1,minWidth:12,truncate:!0},{key:"phase",header:"Phase",flex:2,minWidth:16,truncate:!0},{key:"progress",header:"Progress",width:9},{key:"elapsed",header:"Elapsed",width:9,align:"right"},{key:"eta",header:"ETA",width:8,align:"right"},{key:"activity",header:"Activity",flex:2,minWidth:16,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,issue:Or(Ma(n.cells.iss,"iss=")),runner:Or(Ma(n.cells.run,"run=")),phase:Or(n.cells.phase),progress:Or(n.cells.bar),elapsed:Or(n.cells.elapsed),eta:Ma(Or(n.cells.eta),"eta="),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}}var wn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Bt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},KC=" ",Qb="\u2588",VC="\u25B6",zC="\u2717",JC="\u2591",YC=new Set(["gate","push-pr","merge","cascade"]),QC=new Set(["requeue"]),XC="repair";function Js(e){return e.display?.origin===XC}function Go(e,t=Bt){let r=zs(e,t.project),n=No(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>ja(y,t,e.generated_at)),i=uD(s),a=o.map((y,h)=>({worker_id:y.worker_id,project_label:y.project_label,mine:t.project!=null&&y.project_label===t.project,cells:s[h],line:Xe(pD(s[h],i),t.maxWidth)})),l=du(a,o,t.maxWidth),d=eD(e,t,n,r),c=n.length-o.length,u=[d.line,...iD(e,t),...a.map(y=>y.line)];c>0&&u.push(Xe(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...oD(e,t)),u.push(...nD(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Bt.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Xe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:wn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function ja(e,t,r){let n=e.display??Jb,o=Js(e),s=[n.runner,n.model==null?null:ou(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&YC.has(n.phase),a=o||i||n.origin!=null&&QC.has(n.origin);return{wid:t.mode==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id,run:o||s===""?"":`run=${s}`,org:o?"lane=repair":i?"org=landing":n.origin==null?"":`org=${n.origin}`,iss:n.issue==null?"":o?`pr=#${n.issue.replace(/^#/,"")}`:`iss=${n.issue}`,bar:Zb(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:kn(Yb(e,r)),eta:n.eta==null?"":`eta=${kn(n.eta*1e3)}`,hb:ZC(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":cD(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${qs(n.tokens)}`,ctx:n.context==null?"":`ctx=${qs(n.context)}`,tls:a||n.tools==null?"":`tls=${n.tools}`,rsn:a||n.reasoning==null?"":`rsn=${n.reasoning}`,txt:a||n.text==null?"":`txt=${n.text}`}}function ZC(e,t){if(e.wait_kind==null||e.wait_subject==null||e.wait_pid==null||e.wait_pid<=0||e.wait_started_at==null)return null;let r=Date.parse(e.wait_started_at),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:`${e.wait_kind}=${e.wait_subject} ${kn(Math.max(0,n-r))}`}function Zb(e){let t=e.phase_total,r=e.phase_index;if(t==null||t<=0||r==null||r<0)return"";let n=Math.min(Math.floor(r),Math.floor(t));if(n>=t)return Qb.repeat(Math.floor(t));let o=e.failed?zC:VC;return`${Qb.repeat(n)}${o}${JC.repeat(Math.floor(t)-n-1)}`}function eD(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=dD(r),l=o?.repository??t.project,d=e.engine??null,c=d?.running_version??e.daemon.daemon_version,u=e.deaths??null,p=e.metrics??null,g=[tD(l??"host",c,d!=null&&d.current===!1?Vs:"")];(n==="unregistered"||n==="name-only")&&g.push(Ks),n==="lapsed"&&g.push(su);let f=p?.history_48h==null?null:sD(p.history_48h);f!=null&&g.push(Xr(f));let y=e.workers.filter(Js).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Xr(`workers=${M} coding +`)} ${Gs}${bn}${y} repairing${Cr}${jt}`)}else g.push(Xr(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Xr(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(Xr(lD(i))),a!=null&&g.push(`${Gs}${bn}${a}${Cr}${jt}`),s.open_pull_requests!=null&&g.push(Xr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Xr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Xr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let R=p==null?null:ey(p.hour),T=R==null?null:Xr(R);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=jo(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${rD(M.span_ms)}`+(N==null?"":` \u2014 ${N}`))}if(e.staleness.stale){let M=e.staleness.age_ms;g.push(M==null?"!unmeasured":`!stale ${Math.round(M/1e3)}s`)}let $=`${g.join(" \xB7 ")}${ar}`,D=R!=null&&Yt($)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${ar}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Xe(D,t.maxWidth)}}function tD(e,t,r){return`${Qc}${bn}${Zc}\xBB${bn} ${Oa}${e}${Fa} ${Xc}v${t}${r}${bn}${Cr}${jt}`}function Xr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ws}${n}${Hs}${o}${jt}`)}function rD(e){return kn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function ey(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${yn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${yn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${yn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function nD(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?$o:Bo,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Xe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function oD(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Xe(`${Dr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Xe(`${Dr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Xe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function sD(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${yn(t)} ${cu(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${yn(r)} ${cu(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function iD(e,t){let r=e.metrics;return r==null?[Xe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Xe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[Xb("tokens",r.history_48h.tokens_per_hour,t),Xb("Tickets",r.history_48h.tickets_per_hour,t)]}var La=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function Xb(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${yn(o)}/h ${cu(t.trend)}`.trim();if(r.maxWidth<72)return Xe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Xe(`${n} 48h ${aD(t)} \xB7 ${a}${l}`,r.maxWidth)}function aD(e){let t=e.buckets.flatMap(n=>n.value==null?[]:[Math.max(0,n.value)]),r=Math.max(0,...t);return e.buckets.map(n=>n.value==null?"\xB7":r===0?La[0]:La[Math.min(La.length-1,Math.floor(Math.max(0,n.value)/r*(La.length-1)))]).join("")}function cu(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function lD(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${lr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${lr(e.memory_used_bytes)}/${lr(e.memory_ceiling_bytes)}${t}`}function dD(e){for(let t of e){let r=t.display;if(r==null)continue;let n=[r.runner,r.model,r.effort].filter(o=>!!o);if(n.length>0)return n.join("\xB7")}return null}function cD(e,t){if(e==null&&t==null)return"";let r=[];return e!=null&&e>0&&r.push(`+${e}`),t!=null&&t>0&&r.push(`-${t}`),`loc=${r.length>0?r.join(" "):"0"}`}function uD(e){let t=Object.fromEntries(wn.map(r=>[r,0]));for(let r of e)for(let n of wn)t[n]=Math.max(t[n],Yt(r[n]));return t}function pD(e,t){let r=wn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>Ba(o,Us(e[o],s===r.length-1?Yt(e[o]):t[o])));return`${Cr}${jt}${n.join(KC)}${ar}`}function Ba(e,t){if(e==="wid")return`${Oa}${t}${Fa}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Gs}${bn}${t.trimEnd()}${Cr}${jt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${eu}${n}`).replace("\u25B6",`${tu}\u25B6`).replace("\u2717",`${nu}\u2717`).replace(/░+/g,n=>`${ru}${n}`)+jt;let r=t.indexOf("=");return r>0?`${Ws}${t.slice(0,r+1)}${Hs}${t.slice(r+1)}${jt}`:t}function pu(e){return Object.freeze({none:!0,reason:e})}function Ys(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function uu(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError("repair args must contain only finite JSON numbers");return e}if(t.has(e))throw new TypeError("repair args must not contain cycles");t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(n=>uu(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=uu(o,t);return Object.freeze(r)}finally{t.delete(e)}}function fD(e){let t=uu(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Kn(e){if("none"in e.repair)return{prose:`${e.state}; repair: none because ${e.repair.reason}`,repair:"none",repair_reason:e.repair.reason};let t=fD(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ne={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function Vn(e,t=Ne){let r=zs(e,t.project),n=No(e,t),o=Ia(e,t),s=kD(e,t.project,r),i=hD(e,t,n,r,s.prose),a=lu({mode:t.mode,maxWorkers:t.maxWorkers,maxProjects:t.maxProjects,workers:n,projects:o}),l={detail:"host",line:i};for(let g of a){let f=g==="workers"?i:ED(i,gD(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Yt(f)<=t.maxWidth)break}let d=Xe(l.line,t.maxWidth),c=l.detail==="workers"?RD(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?_D(g,t):null;return y==null?[c.lines[f]]:[c.lines[f],y]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function mu(e){let t=e.options??Ne,r=Xe(au,t.maxWidth);return{version:1,line:r,lines:[r],verbose:t.verbose,mode:t.mode,project:t.project,project_match:"unanswered",detail:"host",degraded:!0,stale:!0,generated_at:e.generated_at}}function gD(e,t){return e==="projects"?t.map(xD):[]}function hD(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="name-only";t.mode==="global"?(s.push(`host ${fu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(hu(e,t))):n==="matched"?(s.push(`${t.project} ${fu(r,r.length)}`),s.push(hu(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${fu(r,r.length)}`),s.push(hu(e,t)),s.push(Ks)):s.push(o),s.push(ty(e));let a=mD(e);a!=null&&s.push(a);let l=bD(e);l!=null&&s.push(l),e.staleness.stale&&s.push(ry(e));let d=s.join(" ");return!i||Yt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,ty(e),e.staleness.stale?ry(e):null].filter(c=>c!=null).join(" ")}function fu(e,t){let r=e.filter(Js).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function ty(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Vs}`}function mD(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${$o} quota spent`:t.posture==="reserved"?`${Bo} quota band`:null}function bD(e){let t=e.deaths;if(t==null||t.count<=0||t.latest==null)return null;let r=t.boot_loop;if(r!=null){let n=jo(r.latest_refusal);return`${Dr}${t.count} boot-refused \xD7${r.count} in ${yD(r.span_ms)}`+(n==null?"":` \u2014 ${n}`)}return`${Dr}${t.count} ${t.latest.sender_class}`}function yD(e){return kn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function kD(e,t,r){if(r==="unregistered")return Kn({state:`project unknown \u2014 ${t} was never registered on this host`,repair:Ys()});if(r==="orphaned")return Kn({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:pu("this socket cannot safely replace a registration owned by an unreachable daemon")});if(r==="stopped"){let n=e.stopped_projects?.find(o=>o.project_label===t);return Kn({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${gu(n.at)}`}`,repair:Ys()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${gu(n.registered_at)})`;return Kn({state:`project unknown \u2014 ${t} lapsed at ${gu(n.at)}${o}`,repair:Ys()})}return Kn({state:`project unknown \u2014 ${t} lapsed`,repair:Ys()})}return r==="unresolved"?Kn({state:"project unknown \u2014 this directory resolved to no project",repair:pu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function gu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function hu(e,t){let r=t.mode==="global"?e.host.observed_rss_bytes:e.projects.filter(o=>o.project_label===t.project).reduce((o,s)=>o+s.observed_rss_bytes,0),n=e.host.ceiling.memory_bytes;return t.mode==="global"&&n!=null&&n>0?`${lr(r)}/${lr(n)}`:lr(r)}function ry(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function wD(e,t,r,n){let o=r.map(s=>Ba(s,Us(e[s],t[s])));return Xe(`${Cr}${jt}${o.join(" ")}${ar}`,n)}function RD(e,t,r){let n=e.map(a=>ja(a,t,r)),o=wn.filter(a=>n.some(l=>Yt(l[a])>0)),s=[...o],i=ny(n,s);for(;s.length>1&&oy(i,s)>t.maxWidth;)s.pop(),i=ny(n,s);return{lines:n.map(a=>wD(a,i,s,t.maxWidth)),degraded:s.length<o.length||oy(i,s)>t.maxWidth}}function ny(e,t){let r=Object.fromEntries(wn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Yt(n[o]));return r}function oy(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function _D(e,t){let r=jo(e.log.last_line);return r==null?null:Xe(` ${iu} ${sy(e,t.mode)}: ${r}`,t.maxWidth)}function sy(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function xD(e){return`${e.project_label} ${e.worker_count}w ${lr(e.observed_rss_bytes)}`}function ED(e,t,r){return[e,...t].join(r)}var $a=1;async function Qs(e,t){return await oa(e,t,"redskilled daemon")}function ay(e){let t=[...e.workers??[]],r=new Map;for(let n of t)r.set(n.project_label,(r.get(n.project_label)??0)+1);return{version:1,protocol_version:$a,daemon_version:e.daemonVersion,machine_id_hash:e.machineIdHash,session_key_hash:e.sessionKeyHash,pid:e.pid,started_at:e.startedAt,...e.ceiling==null?{}:{ceiling:e.ceiling},...e.scope==null?{}:{scope:e.scope},workers:t,projects:[...r.entries()].map(([n,o])=>({project_label:n,worker_count:o})).sort((n,o)=>n.project_label.localeCompare(o.project_label)),registrations:PD(e),...e.demand==null?{}:{demand:e.demand},...e.lapses==null||e.lapses.length===0?{}:{lapsed_registrations:[...e.lapses]},...e.stops==null||e.stops.length===0?{}:{stopped_registrations:[...e.stops]},...e.orphanedRegistrations==null||e.orphanedRegistrations.length===0?{}:{orphaned_registrations:[...e.orphanedRegistrations]},birth_latches:[...e.birthLatches??[]],budget_accounting:Fh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:AD(e)}}function PD(e){let t=e.now==null?Number.NaN:Date.parse(e.now),r=Number.isFinite(t),n=e.queue??null,o=new Map(n==null?[]:n.projects.map(s=>[s.project_label,s]));return[...e.registrations??[]].map(s=>{let i=o.get(s.project_label);return{...s,...r?{renewal:mm(s,t)}:{},...n==null||i==null?{}:{last_poll:{at:n.fetched_at,outcome:i.outcome,depth:i.depth,request_count:n.request_count,detail:i.detail}}}}).sort((s,i)=>s.project_label.localeCompare(i.project_label))}function AD(e){let t=e.daemonVersion,r=e.published?.version??null,n=e.published?.majorHold??null;return{running_version:t,published_version:r,published_unknown:+(r===null),newer_published:+(e.published?.newer===!0),replacement:e.published?.replacement??"none",checked_at:e.published?.checkedAt??null,checks:e.published?.checks??0,hold_reason:e.published?.holdReason??null,newest_published_version:e.published?.newest??null,major_held:+(n!==null),major_hold:n}}function ly(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.protocol_version=="number"&&typeof t.daemon_version=="string"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&Number.isInteger(t.pid)&&typeof t.started_at=="string"&&(t.ceiling===void 0||ID(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Ih(t.budget_accounting)&&(t.scope===void 0||cm(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Is))&&(t.demand===void 0||Qh(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(DD))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(OD))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(FD))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(CD))&&(t.upgrade===void 0||MD(t.upgrade))}function CD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.repair;return t.name==="project-birth-breaker"&&typeof t.project_label=="string"&&(t.state==="open"||t.state==="half-open")&&typeof t.opened_at=="string"&&typeof t.reason=="string"&&typeof t.closes=="string"&&(t.probe_worker_id===null||typeof t.probe_worker_id=="string")&&r!=null&&r.tool==="project_reset"&&typeof r.args=="object"&&r.args!==null&&typeof r.why=="string"}function DD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.at=="string"&&typeof t.renew_by=="string"&&Number.isInteger(t.renewals)&&Number.isInteger(t.sustains)&&typeof t.detail=="string"}function OD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.registered_at=="string"&&typeof t.at=="string"&&typeof t.detail=="string"}function FD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")}function ID(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=new Set(["flag","environment","home-config","derived-default"]);return(t.memory_bytes===null||typeof t.memory_bytes=="number")&&(t.worker_count===null||typeof t.worker_count=="number")&&(t.validation_count===void 0||Number.isInteger(t.validation_count)&&Number(t.validation_count)>0)&&(t.source==="declared"||t.source==="host-fraction")&&(t.memory_source===void 0||r.has(String(t.memory_source)))&&(t.worker_source===void 0||r.has(String(t.worker_source)))&&(t.validation_source===void 0||r.has(String(t.validation_source)))}function MD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")&&typeof t.published_unknown=="number"&&typeof t.newer_published=="number"&&(t.replacement==="none"||t.replacement==="pending"||t.replacement==="in-progress")&&(t.checked_at===null||typeof t.checked_at=="string")&&(t.newest_published_version===void 0||t.newest_published_version===null||typeof t.newest_published_version=="string")&&(t.major_held===void 0||typeof t.major_held=="number")&&(t.checks===void 0||typeof t.checks=="number")&&(t.hold_reason===void 0||t.hold_reason===null||typeof t.hold_reason=="string")&&(t.major_hold===void 0||t.major_hold===null||LD(t.major_hold))}function LD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{randomUUID as jD}from"node:crypto";import{mkdir as BD,readFile as $D,rename as ND,writeFile as GD}from"node:fs/promises";import{dirname as WD}from"node:path";function dy(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await $D(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=HD(s);return UD(i)?i.registrations:[]}async function o(s){await BD(WD(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${jD()}.tmp`,a={version:1,registrations:[...s]};await GD(i,`${ot(a,{keyedMapCollapse:!0})}
90
+ `,{encoding:"utf8",mode:384}),await ND(i,e)}return{read:n,replace(s){let i=t.then(()=>o(s));return t=i.then(()=>{r=null},a=>{r=a}),i},async flush(){if(await t,r!=null)throw r}}}function HD(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function UD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Array.isArray(t.registrations)&&t.registrations.every(Is)}import{spawnSync as Wa}from"node:child_process";import{existsSync as Ru}from"node:fs";import{delimiter as ZD,join as ky}from"node:path";import{join as cy}from"node:path";import{existsSync as qD}from"node:fs";import{createRequire as KD}from"node:module";var uy="redskilled-job-object.node",zn=100;function Wo(e){return{available:!1,reason:e}}function VD(e,t,r){return[cy(r,"prebuilds",`${e}-${t}`,uy),cy(r,"native","build","Release",uy)]}function py(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return Wo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??JD(),o=e.exists??qD,s=VD(t,r,n),i=s.find(d=>o(d));if(i==null)return Wo(`no Job Object addon was found for ${t}-${r} (looked in ${s.join(", ")}); either install the prebuild for this platform and architecture or build the addon locally`);let a=e.requireFn??KD(import.meta.url),l;try{l=a(i)}catch(d){return Wo(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return zD(l)?{available:!0,binding:l}:Wo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function zD(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function JD(){return new URL("..",import.meta.url).pathname}function fy(e){let t=e??{},r=[],n=YD(t);n==null&&(t.memory_max??t.memory_high)!=null&&r.push("the declared memory budget could not be reduced to bytes, so the job carries no memory ceiling");let o;return t.cpu_weight!=null&&(t.cpu_weight<zn?o=Math.max(1,Math.min(100,Math.round(t.cpu_weight))):r.push(`cpu_weight=${t.cpu_weight} is at or above the fair share of ${zn}, and Windows CPU rate control is an absolute cap rather than a share, so no rate limit is set`)),{...n!=null?{memory_limit_bytes:n.bytes,memory_budget_name:n.name,memory_budget_declared:n.declared}:{},...o!=null?{cpu_rate_percent:o}:{},kill_on_close:!0,...r.length>0?{note:r.join("; ")}:{}}}function YD(e){return $s({budget:e})}var Na=5,gy=19;function bu(e){return{available:!1,reason:e}}var QD="an address-space rlimit is not a resident-memory ceiling: a runtime that reserves address space it never faults in would die under a limit it never used, so no memory rlimit is set and the daemon's RSS sampling floor is the ceiling that actually holds";function my(e,t){let r=e??{},n=[],o;if(!t.canRenice)n.push("nice is not on this host, so no priority control was applied and the Worker competes with interactive work");else if(r.cpu_weight==null)o=Na;else if(r.cpu_weight<zn){let a=Math.round(gy*(zn-r.cpu_weight)/zn);o=Math.min(gy,Math.max(Na,a))}else o=Na,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${zn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${Na}`);let s=hy(r.max_processes);s==null&&r.max_processes!=null&&n.push(`max_processes=${r.max_processes} is not a positive whole number, so no ulimit -u is set`);let i=hy(r.cpu_seconds);return i==null&&r.cpu_seconds!=null&&n.push(`cpu_seconds=${r.cpu_seconds} is not a positive whole number, so no ulimit -t is set`),{...o!=null?{nice:o}:{},...s!=null?{max_processes:s}:{},...i!=null?{cpu_seconds:i}:{},memory_ceiling:"sampling-floor",memory_ceiling_reason:QD,...n.length>0?{note:n.join("; ")}:{}}}function by(e){let{limits:t}=e,r=[];return t.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t.nice!=null&&e.nice!=null?`exec ${XD(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
91
+ `),e.command,...e.args]}function yy(e){let t=[];return e.nice!=null?t.push(`the Worker runs at nice ${e.nice} so it yields to interactive work`):t.push("no priority control was applied"),e.max_processes!=null&&t.push(`its processes are capped at ${e.max_processes}`),e.cpu_seconds!=null&&t.push(`its CPU time is capped at ${e.cpu_seconds} seconds`),`macOS placement applied POSIX limits: ${t.join(", ")}. macOS has no resource-group equivalent, so the Worker is charged to the daemon's own resource group, and ${e.memory_ceiling_reason}`+(e.note!=null?` (${e.note})`:"")}function yu(e){let t=e??{},r=[t.max_processes!=null?"max_processes":null,t.cpu_seconds!=null?"cpu_seconds":null].filter(n=>n!=null);return r.length===0?null:`${r.join(" and ")} ${r.length===1?"is a POSIX rlimit":"are POSIX rlimits"} honoured only by the macOS placement backend, so this placement carries no equivalent`}function hy(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function XD(e){return`'${e.replace(/'/g,"'\\''")}'`}var wy="REDSKILLED_PLACEMENT",Ga="red-worker",ku="/bin/sh";function Ry(e=process.env,t=process.platform){let r=bu(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:py({platform:t}),posix:r};let n=Wo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);if(t==="darwin")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:eO(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&Ru(ky(o,"systemd","private"));return{platform:t,systemdRun:vy("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function eO(e){return Ru(ku)?{available:!0,shell:ku,nice:vy("nice",e)}:bu(`no POSIX shell was found at ${ku}, so there is nothing to apply rlimits or priority in`)}function _y(e=process.env){let t=(e[wy]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function tO(e,t,r=Ga){return xy(e,t,r).replace(/\.service$/,"")}function xy(e,t,r=Ga){return`${wu(r,"red-worker",24)}-${wu(e,"project",32)}-${wu(t,"worker",32)}.service`}function Ey(e){let t=[...e.args??[]],r={...e.budget??{},...e.budget?.memory_max==null&&e.memoryCeiling?.memory_max!=null?{memory_max:e.memoryCeiling.memory_max}:{}},n=r.memory_max??r.memory_high??null,o=r.memory_high!=null||r.memory_max!=null||r.cpu_weight!=null,s=e.target??{isolation:"transient-unit"},i=u=>({isolated:!1,backend:"none",command:e.command,args:t,cwd:e.workspacePath,warning:u,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Rs({scope:null,memory_ceiling:n,scope_degradation:u}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}});if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${wy}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return nO(e,t,r,n,o,i);if(e.probes.platform==="darwin")return rO(e,t,r,n,i);if(e.probes.platform!=="linux")return i(`transient-unit placement is the Linux backend (platform=${e.probes.platform}): the Worker is charged to the daemon's own resource group`);if(!e.probes.systemdRun)return i("transient-unit placement unavailable: systemd-run is not on PATH; the Worker is charged to the daemon's own resource group and a memory-pressure kill will hit the whole session");if(!e.probes.userSession)return i("transient-unit placement unavailable: no systemd --user session; the Worker is charged to the daemon's own resource group and a memory-pressure kill will hit the whole session");let a=xy(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`];e.pipeOutput===!0&&l.push("--pipe"),r.memory_high!=null&&l.push(`--property=MemoryHigh=${r.memory_high}`),r.memory_max!=null&&l.push(`--property=MemoryMax=${r.memory_max}`),r.cpu_weight!=null&&l.push(`--property=CPUWeight=${r.cpu_weight}`);let d=Rs({scope:a,memory_ceiling:n,scope_degradation:null});for(let[u,p]of Object.entries({...e.env??{},...d}))l.push(`--setenv=${u}=${p}`);let c=yu(e.budget);return{isolated:!0,backend:"transient-unit",unit:a,command:e.probes.systemdRun,args:[...l,"--",e.command,...t],budget:r,...n!=null?{memoryCeiling:n}:{},environment:d,...c!=null?{budgetWarning:c}:{}}}function rO(e,t,r,n,o){let s=e.probes.posix;if(!s.available)return o(`POSIX limit placement unavailable: ${s.reason}. The Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling`);let i=my(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=yy(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:by({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Rs({scope:null,memory_ceiling:n,scope_degradation:l}),...a?{budgetWarning:"the declared memory budget is enforced by the daemon's RSS sampling floor rather than by the kernel: "+i.memory_ceiling_reason}:{}}}function nO(e,t,r,n,o,s){let i=e.probes.jobObjects;if(!i.available)return s(`Job Object placement unavailable: ${i.reason}. The Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling`);let a=fy(r),l=tO(e.projectLabel,e.workerId,e.target?.unit_prefix);return{isolated:!0,backend:"job-object",command:e.command,args:[...t],cwd:e.workspacePath,job:{name:l,limits:a},budget:r,...n!=null?{memoryCeiling:n}:{},environment:Rs({scope:l,memory_ceiling:n,scope_degradation:null}),...oO(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,yu(e.budget))}}function oO(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function vy(e,t){for(let r of(t.PATH??"").split(ZD)){if(!r)continue;let n=ky(r,e);if(Ru(n))return n}return null}function wu(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function _u(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}var Sy=3e4;function Ty(e){return e.unit!=null&&e.unit!==""?sO(e.unit):Qe(e.pid)}function sO(e){let t=Wa("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var iO="REDSKILLED_UNIT_DISCOVERY",Py="(unowned)";function Ay(e){let t=Wa("systemctl",["--user","show","--property=MainPID","--value",e],{encoding:"utf8"});if(t.error!=null||t.status!==0)return null;let r=Number.parseInt((t.stdout??"").trim(),10);return Number.isInteger(r)&&r>0?r:null}function aO(e=process.env){let t=(e[iO]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function Cy(e,t,r=process.env){return aO(r)&&e===t}function Dy(e=Ga){let t=Wa("systemctl",["--user","list-units","--type=service","--state=active","--plain","--no-legend","--no-pager",`${e}-*.service`],{encoding:"utf8"});return t.error!=null||t.status!==0?[]:(t.stdout??"").split(`
92
+ `).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function Oy(e){let t=new Set(e.held.map(o=>o.unit).filter(o=>o!=null&&o!=="")),r=new Set,n=[];for(let o of e.units)o===""||t.has(o)||r.has(o)||(r.add(o),n.push({worker_id:o.replace(/\.service$/,""),project_label:Py,pid:e.mainPid?.(o)??0,started_at:e.now,workspace_path:"",isolated:!0,unit:o,warnings:[`adopted from active unit ${JSON.stringify(o)}, which has no birth on this host's event lane: its project, its Worker id and its budget belonged to a daemon that is gone, so they are reported as unknown rather than guessed \u2014 it is counted against the host budget from here on instead of running outside it`]}));return n}function Fy(e){return e.project_label.trim()!==""?e:{...e,project_label:Py,warnings:[...e.warnings,"adopted at start with no owning project on the event lane: the daemon that birthed it recorded no project label, so it is held and counted under a stated placeholder rather than dropped"]}}function Iy(e){if(e.unit!=null&&e.unit!==""){let t=Wa("systemctl",["--user","stop",e.unit],{stdio:"ignore"});return t.error==null&&t.status===0}try{return process.kill(e.pid,"SIGTERM"),!0}catch{return!1}}var ei=50,Eu=15e3,CH=2*Eu;function lO(e,t=ei){if(vu(e),!Number.isInteger(t)||t<=0)throw new Error(`redskilled queue discovery needs a whole, positive batch size, not ${JSON.stringify(t)}`);let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function Ly(e,t={}){let r=t.batchSize??ei;if(vu(e),e.length>r)throw new Error(`redskilled queue discovery spans at most ${r} selectors in one query, and this batch holds ${e.length}: split it with planQueueDiscoveryBatches rather than dropping the remainder`);let n=e.map((i,a)=>({alias:`q${a}`,project:i}));return{query:["query RedskilledQueueDiscovery {"," rateLimit { remaining resetAt }",...n.map(({alias:i,project:a})=>` ${i}: search(query: ${JSON.stringify(a.selector)}, type: ISSUE, first: 1) { issueCount }`),"}"].join(`
93
+ `),aliases:n}}function jy(e,t){let r=Zs(t),n=Zs(r.data),o=Array.isArray(r.errors)?r.errors.map(Zs):[],s=fO(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=hO(n[a]);if(d!=null)return{project_label:l.project_label,outcome:"counted",depth:d,detail:`project ${JSON.stringify(l.project_label)} has ${d} item(s) matching its selector`};let c=o.find(u=>gO(u.path,a));return s.exhausted||Ny(c)?{project_label:l.project_label,outcome:"rate-limited",depth:null,detail:`the host token's quota was spent before project ${JSON.stringify(l.project_label)} answered, so this queue has no depth rather than a depth of zero`+(s.reset_at==null?"":`; the quota resets at ${s.reset_at}`)}:{project_label:l.project_label,outcome:"unreachable",depth:null,detail:`project ${JSON.stringify(l.project_label)} could not be counted with the host token: ${xu(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function dO(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:ei,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function By(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:ei,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:e.map(n=>({project_label:n.project_label,outcome:"unconfigured",depth:null,detail:`project ${JSON.stringify(n.project_label)} was not counted because this host polls no tracker: ${r}`}))}}async function $y(e){if(e.projects.length===0)return dO(e.now);if(e.transport.conditionalList)return await uO(e);let t=e.batchSize??ei,r=lO(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=Ly(s,{batchSize:t});try{let a=await e.transport(i.query),l=jy(i,a);n.push(...l.projects),o=Xs(o,l.rate_limit)}catch(a){let l=a instanceof Error?a.message:String(a),d=/rate limit|secondary rate|429/i.test(l);o=Xs(o,{remaining:null,reset_at:null,exhausted:d});for(let c of s)n.push({project_label:c.project_label,outcome:d?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(c.project_label)} answered: ${l}`})}}return{version:1,fetched_at:e.now,request_count:r.length,project_count:n.length,batch_size:t,rate_limit:o,projects:n}}var cO={key:"redskilled queue poll",budget:"rest"};async function uO(e){vu(e.projects);let t=e.transport.conditionalList,r=[],n={remaining:null,reset_at:null,exhausted:!1},o=0;for(let s of e.projects)try{if(s.poll==null){let l=Ly([s],{batchSize:1}),d=jy(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=Xs(n,d.rate_limit);continue}let i=await t({cacheKey:`queue:${s.project_label}:${JSON.stringify(s.poll)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:{owner:s.poll.owner,repo:s.poll.repo,state:"open",labels:s.poll.labels.join(","),...s.poll.creator==null?{}:{creator:s.poll.creator}},operation:cO});o+=i.requestCount;let a=i.data.filter(l=>!Gy(l.pull_request)).length;n=Xs(n,pO(i.headers)),r.push({project_label:s.project_label,outcome:"counted",depth:a,detail:`project ${JSON.stringify(s.project_label)} has ${a} item(s) matching its selector`})}catch(i){let a=Bs(i);n=Xs(n,{remaining:null,reset_at:null,exhausted:a}),r.push({project_label:s.project_label,outcome:a?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(s.project_label)} answered: ${i instanceof Error?i.message:String(i)}`})}return{version:1,fetched_at:e.now,request_count:o,project_count:r.length,batch_size:1,rate_limit:n,projects:r}}function vu(e){if(e.length===0)throw new Error("redskilled queue discovery needs at least one registered project");let t=new Set;for(let r of e){if(typeof r.project_label!="string"||r.project_label==="")throw new Error("redskilled queue discovery needs a project label for every registered project");if(typeof r.selector!="string"||r.selector==="")throw new Error(`redskilled queue discovery needs a selector for project ${JSON.stringify(r.project_label)}: a project that names no work has no queue to discover`);if(t.has(r.project_label))throw new Error(`redskilled holds one selector per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function Xs(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted}}function pO(e){let t=My(e,"x-ratelimit-remaining"),r=My(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function My(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function fO(e,t){let r=Zs(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null;return{remaining:n,reset_at:o,exhausted:t.some(Ny)||n===0}}function Ny(e){return e==null?!1:xu(e.type)==="RATE_LIMITED"||/rate limit/i.test(xu(e.message))}function gO(e,t){return Array.isArray(e)&&e.includes(t)}function hO(e){let t=Zs(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Zs(e){return Gy(e)?e:{}}function Gy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xu(e){return typeof e=="string"?e:""}function Wy(e,t,r){let n=e?.rate_limit;if(n==null)return t;if(n.exhausted){let s=n.reset_at==null?Number.NaN:Date.parse(n.reset_at),i=Number.isFinite(s)?s-r+1e3:t*4;return Math.min(mO,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=bO?Math.max(t,3e4):o<=yO?Math.max(t,2e4):t}var mO=1e5,bO=250,yO=1e3;var kO={runner:null,model:null,effort:null,origin:null,issue:null,phase:null,step:null,phase_index:null,phase_total:null,failed:!1,heartbeat:null,wait_kind:null,wait_subject:null,wait_pid:null,wait_started_at:null,wait_deadline:null,wait_escalation:null,started_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null},wO=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],RO=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function Hy(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...kO};for(let n of wO){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of RO){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{randomInt as vO}from"node:crypto";import{spawn as SO}from"node:child_process";import{appendFileSync as TO,mkdirSync as PO}from"node:fs";import{dirname as AO}from"node:path";import{delimiter as Uy,dirname as _O}from"node:path";function xO(e,t=Uy){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function EO(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=_O(t);return r===""||r==="."?null:r}function qy(e,t=process.execPath,r=Uy){let n=xO(e,r),o=EO(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var Ho=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},Fr=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},Su="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",Ky=4,CO=Su.length**Ky;function Pu(e,t=vO){let r=new Set(e);for(let n=0;n<CO;n+=1){let o="h";for(let s=0;s<Ky;s+=1)o+=Su[t(Su.length)];if(!r.has(o))return o}throw new Ho("redskilled exhausted the host Worker id space")}function DO(e){if(e==null||e.trim()==="")return{ready:!1};let t=AO(e);try{return PO(t,{recursive:!0}),{ready:!0}}catch(r){let n=r?.code;return{ready:!1,warning:`redskilled could not create the log directory ${JSON.stringify(t)} for ${JSON.stringify(e)}${n==null?"":` (${n})`}: ${Tu(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function OO(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{TO(t,Lt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
94
+ `);s=l.pop()??"";for(let d of l)i(d)}),n.on("end",()=>{s!==""&&i(s)})};r(e.stdout,"worker.stdout"),r(e.stderr,"worker.stderr")}function FO(e){let t=[["project_label",e.project_label],["workspace_path",e.workspace_path],["command",e.command]];for(let[r,n]of t)if(typeof n!="string"||n.trim()==="")throw new Ho(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new Ho("redskilled worker spec args must be an array")}function IO(e){if(e==null)throw new Fr("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new Fr(e.reason,e)}function Vy(e){let{spec:t,admission:r}=e;IO(r),FO(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||Pu(e.liveWorkerIds??[]),i=e.probes??Ry(n),a=pm(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),l=e.openLog===!1?{ready:!1}:DO(a),d=l.ready,c={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:qy(t.env?.PATH??n.PATH,e.execPath??process.execPath)},u=Ey({workerId:s,projectLabel:t.project_label,workspacePath:t.workspace_path,command:t.command,args:t.args,budget:t.budget,...e.memoryCeiling!=null?{memoryCeiling:e.memoryCeiling}:{},target:t.placement,env:c,enabled:e.enabled??_y(n),probes:i,pipeOutput:d}),g=(e.spawnFn??SO)(u.command,u.args,{...u.cwd!=null?{cwd:u.cwd}:{},detached:!0,stdio:d?["ignore","pipe","pipe"]:"ignore",env:u.backend==="transient-unit"?{...n}:{...n,...c,...u.environment}});if(d&&a!=null&&OO(g,a),g.pid==null)throw g.once("error",()=>{}),new Ho(`redskilled could not spawn ${JSON.stringify(u.command)} for worker ${s}`);let f=u.job!=null?MO(u,i,g.pid):null;g.once("error",()=>{}),g.once("exit",(T,$)=>{try{f?.job?.close()}catch{}e.onExit?.(s,T,$)}),g.unref();let y=u.job!=null?f?.job!=null:u.isolated,h=[u.warning,f?.warning,u.budgetWarning,l.warning].filter(T=>T!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:g.pid,started_at:o(),workspace_path:t.workspace_path,...d&&a!=null?{log_path:a}:{},isolated:y,...u.unit!=null?{unit:u.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(u.budget).length>0?{applied_budget:u.budget}:{},...u.memoryCeiling!=null?{memory_ceiling:u.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:h},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:h,plan:u,child:g,...f?.job!=null?{job:f.job}:{}}}function MO(e,t,r){let n=e.job;if(n==null)return{};let o="the Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling";if(!t.jobObjects.available)return{warning:`Job Object placement unavailable: ${t.jobObjects.reason}. ${o}`};let s;try{s=t.jobObjects.binding.createJobObject({name:n.name,limits:n.limits})}catch(i){return{warning:`Job Object ${JSON.stringify(n.name)} could not be created: ${Tu(i)}. ${o}`}}try{s.assign(r)}catch(i){try{s.close()}catch{}return{warning:`Worker pid ${r} could not be assigned to Job Object ${JSON.stringify(n.name)}: ${Tu(i)}. ${o}`}}return{job:s}}function Tu(e){return e instanceof Error?e.message:String(e)}import{execFile as LO}from"node:child_process";var jO="refs/heads/red-trunk";function Ha(e,t){return new Promise((r,n)=>{LO("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function zy(e){await Ha(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Ha(e.workspace_path,["rev-parse","--verify","FETCH_HEAD^{commit}"]);if(t==="")throw new Error("the fetched trunk did not resolve to a commit");return await Ha(e.workspace_path,["update-ref",jO,t]),t}async function Jy(e){let t=await Ha(e.workspace_path,["rev-list","--count",`${e.fork_sha}..${e.head_sha}`]),r=Number(t);if(!Number.isInteger(r)||r<0)throw new Error(`git returned an invalid base movement count: ${t}`);return r}import{open as BO,stat as $O}from"node:fs/promises";var NO=16*1024;async function Yy(e,t=NO){let r;try{r=(await $O(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await BO(e,"r");try{let i=Buffer.alloc(n);await s.read(i,0,n,r-n),o=i.toString("utf8")}finally{await s.close()}}catch{return null}return GO(o)}function GO(e){let t=e.split(`
95
+ `);for(let r=t.length-1;r>=0;r-=1){let n=t[r].replace(/\r$/,"");if(n.trim()!=="")return n}return null}import{spawn as o1}from"node:child_process";import{existsSync as s1,readdirSync as i1}from"node:fs";import{dirname as a1,join as a0,resolve as l1}from"node:path";var WO="<version>";function Rn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():WO;return[`npx -y -p ${Nn}@${n}`,e,...t].join(" ")}function dr(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}:null}function Au(e,t){let r=dr(e),n=dr(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var ZH=4*60*60*1e3;zr();zr();import{spawnSync as HO}from"node:child_process";import{randomUUID as UO}from"node:crypto";import{mkdir as qO,rm as KO,writeFile as VO}from"node:fs/promises";import{existsSync as zO,mkdirSync as JO,renameSync as YO,writeFileSync as QO}from"node:fs";import{homedir as XO}from"node:os";import{dirname as Qy,join as ti}from"node:path";var Qt="redskilled.service",Cu="REDSKILLED_SUPERVISED",ZO="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function e1(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||ti(e.HOME?.trim()||XO(),".config");return ti(t,"systemd","user")}function Uo(e=process.env){return ti(e1(e),Qt)}function Xy(e,t={}){let r=t.env??process.env,n=la(t.override??{},t.entryLookup??{}),o=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:Qt,unitPath:Uo(r),command:n.command,args:o,text:t1(n.command,o,e)}}function t1(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${ZO}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(t0).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${Cu}=1"`,`Environment="REDSKILLED_SESSION=${r0(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
96
+ `)}function r1(e=process.env){return ti(`${Uo(e)}.d`,"10-current-entry.conf")}function Zy(e){return ti(`${e}.d`,"10-current-entry.conf")}function e0(e,t,r={}){let n=r1(r.env??process.env),o=`${n}.${process.pid}.${UO()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(t0).join(" ")}`,""].join(`
97
+ `);JO(Qy(n),{recursive:!0,mode:448}),QO(o,i,{encoding:"utf8",mode:384}),YO(o,n);let a=(r.run??qa)(["systemctl","--user","daemon-reload"]);if(a.status!==0)throw new Error(`redskilled wrote the supervised replacement drop-in ${n}, but systemd did not reload it: ${(a.stderr??a.stdout??`status ${a.status}`).trim()}`);return n}function t0(e){return/[\s"'\\$%]/.test(e)?`"${r0(e)}"`:e}function r0(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function n0(e,t={}){let r=t.writeFile??n1,n=t.removeFile??i0,o=t.run??qa,s=[];return await r(e.unitPath,e.text),await n(Zy(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Ua("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Ua("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function o0(e={}){let t=e.removeFile??i0,r=e.run??qa,n=Uo(e.env??process.env),o=[Ua("disable",r,["systemctl","--user","disable","--now",Qt])];return await t(n),await t(Zy(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Ua("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function s0(e={}){let t=e.exists??zO,r=e.run??qa,n=Uo(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Qt]).status===0,i=o&&r(["systemctl","--user","is-active",Qt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Qt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Qt}`}]:[];return{unitName:Qt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Ua(e,t,r){let n=t(r),o=(n.stderr??n.stdout??"").trim();return{step:e,argv:r,ok:n.status===0,...o?{detail:o}:{}}}async function n1(e,t){await qO(Qy(e),{recursive:!0}),await VO(e,t,{encoding:"utf8",mode:420})}async function i0(e){await KO(e,{force:!0})}function qa(e){let t=HO(e[0],[...e.slice(1)],{encoding:"utf8"});return t.error!=null?{status:null,stderr:t.error.message}:{status:t.status,stdout:t.stdout??"",stderr:t.stderr??""}}var l0=75,c0=9e5,d0="redskilled-replacement-entry-unresolved",d1="REDSKILLED_NO_REGISTRY_PROBE",u0="REDSKILLED_BORN_BY_REPLACEMENT";function p0(e=process.env){return e[u0]==="1"}function f0(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function g0(e){let t=e.running.trim();if(ri(t))return null;let r=e.newest?.trim()??"",n=dr(r),o=dr(t);return n===null||o===null||n.major<=o.major?null:{version:r,running_major:o.major,held_major:n.major,reason:`redskilled ${r} is published and this daemon runs ${t}; a major version is deliberately never adopted by the background check, because a breaking change must not arrive on a machine that is holding Workers`,action:c1(n.major,e.supervised)}}function c1(e,t){let r=`install the ${e}.x bundle (update this machine's plugin pin), then `;return t?`${r}re-point the unit and restart it: ${Rn("red-skills-redskilled",["unit","install"])} && systemctl --user restart redskilled.service`:`${r}stop this daemon \u2014 the next client start resolves the newly installed bundle`}function h0(e){let t=e.running.trim();if(ri(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||dr(r)===null?{act:"hold",reason:"published-unknown"}:Au(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function ri(e){let t=e.trim();return dr(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function m0(e=process.env){return e[Cu]==="1"}var Du=class extends Error{code=d0;searched;constructor(t,r){super(`${d0}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled
98
98
  searched:
99
99
  ${r.map(n=>` ${n}`).join(`
100
- `)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function oF(e,t={}){let r=t.env??process.env,n=t.exists??XD,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=[[t0(na(r),i),"bundle-cache"]];s&&l.push([t0(eF(tF(s)),i),"caller-sibling-bundle"]);for(let[d,c]of l)if(a.push(d),n(d))return{command:o,args:[d],version:e,source:c,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new vu(e,a);return{command:r.RED_SKILLS_NPX||"npx",args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function u0(e,t={},r,n){let s=(t.resolveEntry??(i=>oF(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>zy(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 p0(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??iF)(r0),{...e,exitCode:r0};let o=[...e.entry.args,...on(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??sF(n.env))(e.entry,o),e}function sF(e){return(t,r)=>{let n=QD(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[s0]:"1"}});n.on("error",()=>{}),n.unref()}}function iF(e){process.exitCode=e,process.exit(e)}async function f0(e,t=process.env,r=aF){let n=h0(t),o=m0(e,t);if(t[rF]==="1")return{version:o,newest:n};let s=lr(e)===null?"0.0.0":e;try{let i=await eh({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function g0(e,t=process.env,r){let n=r??Su;return{version:m0(e,t,n),newest:h0(t,n)}}function h0(e=process.env,t=Su){return y0(b0(e,t))}function m0(e,t=process.env,r=Su){let n=lr(e.trim())?.major;return n===void 0?null:y0(b0(t,r).filter(o=>lr(o)?.major===n))}function b0(e,t){let r=[];for(let n of t(na(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||lr(o)===null||r.push(o)}return r}function y0(e){let t=null;for(let r of e)(t===null||xu(r,t)>0)&&(t=r);return t}function Su(e){try{return ZD(e)}catch{return[]}}async function aF(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 lF,readFile as dF,rename as cF,rm as Tu,writeFile as k0}from"node:fs/promises";import{randomUUID as uF}from"node:crypto";import{dirname as pF}from"node:path";var Wa=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function Bo(e){let t;try{t=await dF(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=fF(t);return gF(r)?r:void 0}var w0;function _0(){return w0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},w0}function x0(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){return await Bo(e)}async function i(l){let d=`${e}.${l.pid}.${uF()}.tmp`;await k0(d,R0(l),{encoding:"utf8",mode:384}),await cF(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 lF(pF(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await k0(e,R0(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 Tu(e,{force:!0}),d=!0;continue}if(Pu(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await Tu(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!Pu(d,l))throw new Wa(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!Pu(d,l))throw new Wa(e);return await Tu(e,{force:!0}),!0}}}function Pu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function R0(e){return`${ot(e,{keyedMapCollapse:!0})}
101
- `}function fF(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function gF(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 S0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??_o,o=e.clock??(()=>new Date().toISOString()),s=e.launch??Gy,i=e.refreshTrunk??Wy,a=e.countBaseMovement??Hy,l=e.ceiling??la();e.repositoryActivity!=null&&Uc(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??_0(),c=e.leaseStore??x0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??ca(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??vs(t.machineClaimPath,p,{clock:o});await bF(kF(t.socketPath),{recursive:!0,mode:448});let[f,k]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),b=Date.parse(o()),v=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&k!=null&&f.pid===k.pid&&f.start_time===k.start_time&&f.socket_path===t.socketPath&&k.socket_path===t.socketPath&&Number.isFinite(b)&&Number.isFinite(v)&&b-v>=dh&&await qd(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:k.pid,startTime:k.start_time,uid:k.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new Sr(t.socketPath):new qr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new Sr(t.socketPath,D.lease);let L;try{L=await gh(t.socketPath,async()=>{let[m,A]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return m!=null&&m.pid!==d.pid&&Qe(m.pid)?!0:A!=null&&A.socket_path===t.socketPath&&A.pid!==u.pid&&Qe(A.pid)})}catch(m){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),m}let W=o(),K=e.eventLane??Gh(t.eventLanePath),H=e.registrationIntentStore??ny(t.registrationIntentPath),I=e.liveness??Ry,G=e.livenessGraceMs??wy,V=e.stopWorker??Py,ge=e.unitInventory??(()=>Ey(t.machineClaimPath,Eo({machineIdHash:t.machineIdHash}))?vy():[]),fe=e.unitMainPid??xy,de=e.treeSampler??Pb,te=e.readLogTail??Uy,me=e.sampleMs??lh,Oe=e.leaseRenewMs??Hd,ve=e.registrationSustainMs??ch,ke=e.publishedVersion??(m=>f0(m)),J=e.replaceCheckMs??o0,ie=e.publishedProbeTimeoutMs??ih,Re=e.localPublishedEvidence??(m=>g0(m,e.replacementIO?.env??process.env)),Ae=e.bornByReplacement??i0(),Ee=e.replaceBootCheckMs??ah,we=e.supervised??c0(),Se=e.replacementIO??{},ce=e.repositoryActivity,oe=ce?.intervalMs??Hc,_e=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??ce?.transport,$t=Fe?.unconfiguredReason??ph,Xr=Fe?.intervalMs??yu,Zr=e.demandMs??15e3,lo=e.demandBackoffMs??3e4,le=new Map,Nt=new Map,ct=new Set,et=new Map,wt=new Map,lt=[],ut=[],Rt=e.deaths===void 0?void 0:[...e.deaths],_t=await H.read().catch(()=>[]),Br=Date.parse(W),Ce=new Map,Le=new Map;for(let m of _t){let A=Date.parse(m.renew_by);!Number.isFinite(Br)||!Number.isFinite(A)||A>=Br?Ce.set(m.project_label,m):Br-A<=m.renew_within_ms&&Le.set(m.project_label,m)}let Q=new Set,C={},w=null,F=null,M=null,B=!1,U=0,X=null,be="none",je=null,Be=null,Zt=null,yr=null,Ve=null,kr=null,Pt=[],er=[],re=new Map((e.orphanedRegistrations??[]).map(m=>[m.project_label,m])),ye=null,Ie={},Gt=!1,At,Wt,en,En,vn,Sn,Ue,Tn,tn,$r,tt=!1,co=!1,$e=null,Pn,Nr=new Promise(m=>{Pn=m});function Gr(m){tf(m);let A=Date.parse(m),j=um(Ce.values(),A);for(let N of j.lapsed){Ce.delete(N.project_label);let z=Ve?.projects.find(se=>se.project_label===N.project_label),ne=[...le.values()].some(se=>se.project_label===N.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(N.project_label,N),J_(N,A)}return j.lapsed.length>0&&uo(),j.lapsed}function uo(){let m=new Map(Le);for(let[A,j]of Ce)m.set(A,j);H.replace([...m.values()]).catch(()=>{})}function J_(m,A){let j=Number.isFinite(A)?new Date(A).toISOString():m.renew_by;Pt.push({project_label:m.project_label,registered_at:m.registered_at,at:j,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`}),Pt.length>Rs&&Pt.splice(0,Pt.length-Rs)}function tf(m){if(Ce.size===0)return;let A=Date.parse(m);if(!Number.isFinite(A))return;let j={};for(let se of le.values())j[se.project_label]=(j[se.project_label]??0)+1;let N=Ve==null?Number.NaN:Date.parse(Ve.fetched_at),z=new Map((Ve?.projects??[]).map(se=>[se.project_label,se])),ne=!1;for(let se of[...Ce.values()]){let Ye=Number.isFinite(N)&&A-N<=se.renew_within_ms?z.get(se.project_label):void 0,po=oc(se,{now:m,...Ye==null?{}:{queue:{outcome:Ye.outcome,depth:Ye.depth}},liveWorkers:j[se.project_label]??0});po.registration!==se&&(Ce.set(se.project_label,po.registration),ne=!0)}ne&&uo()}function rf(m){if(Le.size===0)return;let A=Date.parse(m);if(!Number.isFinite(A))return;let j=new Map((Ve?.projects??[]).map(z=>[z.project_label,z])),N=!1;for(let[z,ne]of[...Le]){if(A-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),N=!0;continue}let se=j.get(z),rt=oc(ne,{now:m,...se==null?{}:{queue:{outcome:se.outcome,depth:se.depth}},liveWorkers:[...le.values()].filter(Ye=>Ye.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(Ce.set(z,rt.registration),Le.delete(z),N=!0):rt.verdict==="drained"&&(Le.delete(z),N=!0)}N&&uo()}function Ai(){let m=o();return Gr(m),ty({now:m,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:W,ceiling:l,scope:nm(g.claimPath,p,u),workers:[...le.values()],registrations:[...Ce.values()],demand:kr,lapses:Pt,stops:er,orphanedRegistrations:[...re.values()],birthLatches:zh(Ie,Date.parse(m)),queue:Ve,published:{version:F,checkedAt:M,newer:B,replacement:be,newest:je,majorHold:Be,checks:U,holdReason:X}})}function Ci(){return Wb({hostState:Ai(),ceiling:l,rss:C,sampledAt:w,logLines:Object.fromEntries(et),displays:Object.fromEntries(wt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:Zt,githubBalance:yr,...Rt===void 0?{}:{deaths:Rt},metrics:xh({observations:lt,outcomes:ut,now:o()})})}function Y_(m,A){let j=vh(lt,m,A,o());lt=j.observations,K.recordWorker(j.record).catch(()=>{})}function Q_(m){ut=Ln([...ut,m],A=>A.ts,{now:o()})}async function Ll(){return ce==null||ce.projects.length===0?null:(Zt=await Mb({projects:ce.projects,hostTokenRef:ce.hostTokenRef,transport:ce.transport,closedWindowMs:ce.closedWindowMs,now:o()}),Zt)}async function nf(){return _e==null?null:(yr=await Mc({transport:_e.transport,now:o()}),yr)}function X_(){if(tt||tn!=null||_e==null)return;let m=()=>{tn=void 0,nf().catch(()=>{}).then(()=>{if(tt)return;let A=_e.intervalMsOverride??va(yr??Z_(),{now:o()});tn=setTimeout(m,A),tn.unref()})};m()}function Z_(){return Ea(o())}function ex(){if(!(at!=null||Fe?.armTransport==null))try{let m=Fe.armTransport();if(m.transport!=null){at=m.transport;return}m.unconfiguredReason!=null&&($t=m.unconfiguredReason)}catch(m){$t=`this host could not resolve a tracker credential: ${m instanceof Error?m.message:String(m)}`}}async function of(){let m=o();Gr(m);let A=Date.parse(m);for(let[ne,se]of[...Le])Number.isFinite(A)&&A-Date.parse(se.renew_by)>se.renew_within_ms&&Le.delete(ne);let N=[...new Map([...Le,...Ce]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,se)=>ne.project_label.localeCompare(se.project_label));if(N.length===0)return null;if(ex(),at==null)return Ve=Dy(N,m,$t),Ve;Ve=await Fy({projects:N,transport:at,now:m,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return rf(z),tf(z),Ve}async function sf(){let m=o();if(Gt)return kr??Uh(m);Gt=!0;try{await Bl().catch(()=>{});let A={};for(let he of le.values())A[he.project_label]=(A[he.project_label]??0)+1;let j={};for(let he of Ve?.projects??[])j[he.project_label]=he.depth;let N=Date.parse(m),z=Number.isFinite(N)?N:0;for(let[he,xt]of Object.entries(Ie)){if(xt.probeWorkerId==null)continue;let Bi=le.get(xt.probeWorkerId);Bi!=null&&z-Date.parse(Bi.started_at)>=6e4&&(Ie[he]=Yd())}let ne=Hh({projects:[...Ce.values()].map(he=>({project_label:he.project_label,selector:he.selector,argv:he.argv,workspace_path:he.workspace_path,target:he.target})),queue:j,live:A,nowMs:z,backoffUntilMs:ye,birthHealth:Ie}),se=[],rt=new Map,Ye=null;for(let he of ne.births){let xt,Bi=_u(le.keys()),fo=Ce.get(he.project_label),$i=am({argv:he.argv,...fo?.env==null?{}:{env:fo.env},...fo?.log_path==null?{}:{log_path:fo.log_path}},{worker_id:Bi,slot:he.index,workspace_path:he.workspace_path},{project_label:he.project_label});try{if(fo?.trunk==null)xt=Di($i);else{let Wr={workspace_path:he.workspace_path,trunk:fo.trunk},ls=as($i);if(!ls.admitted)throw new Ar(ls.reason,ls);let xf=ff(Wr),Ni=rt.get(xf);Ni==null&&(Ni=jl(Wr),rt.set(xf,Ni)),xt=await gf($i,Wr,Ni,ls)}}catch(Wr){Ye=Wr instanceof Error?Wr.message:String(Wr),Wr instanceof Ar&&Wr.admission?.verdict==="refused-unreachable-trunk-remote"||(ye=(Number.isFinite(N)?N:Date.now())+lo);break}se.push({project_label:he.project_label,worker_id:xt.worker.worker_id,pid:xt.worker.pid,...xt.fork_sha==null?{}:{fork_sha:xt.fork_sha},warnings:$i.log_path==null?[...xt.warnings,`project ${JSON.stringify(he.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(xt.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:xt.warnings});let Gl=Ie[he.project_label];Gl?.haltUntilMs!=null&&z>=Gl.haltUntilMs&&(Ie[he.project_label]=Vh(Gl,xt.worker.worker_id))}Ye==null&&ne.births.length>0&&(ye=null);let po=new Set(se.map(he=>he.project_label));for(let he of ne.intents){if(he.queue_depth==null||he.queue_depth<=0||he.live>=he.target||po.has(he.project_label))continue;let xt=Ye!=null&&(he.outcome==="asking"||he.outcome==="half-open-probe")?`project ${JSON.stringify(he.project_label)} was birth-eligible but the host refused it: ${Ye}`:he.detail;await K.recordDemandRefusal({ts:m,projectLabel:he.project_label,detail:xt}).catch(()=>{})}return kr={version:1,at:m,requested:ne.births.length,granted:se,shortfall:ne.births.length-se.length,refusal:Ye,retry_after:ye==null?null:new Date(ye).toISOString(),projects:ne.intents},kr}finally{Gt=!1}}function tx(m){return Gn(Ci(),{...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 rx(m){return Io(Ci(),{mode:m?.mode??jt.mode,project:m?.project??jt.project,maxWidth:m?.max_width??jt.maxWidth,maxRows:m?.max_rows??jt.maxRows,maxHeight:m?.max_height??jt.maxHeight,showDeathDetails:m?.show_death_details??jt.showDeathDetails})}function An(m,A,j){return gm({op:m,sessionProject:A??null,targetProject:j})}async function nx(m){let A=le.get(m.worker_id),j=An(fm(m.command),m.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.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 N=A!=null&&await lx(A,m.detail??"stopped by its own project");return{version:1,command:m.command,worker_id:m.worker_id,applied:N,reach:j,detail:N?`redskilled stopped Worker ${JSON.stringify(m.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to stop`}}function Oi(m){le.delete(m),ct.delete(m),et.delete(m),wt.delete(m)}function af(m){let A=le.get(m.worker_id),j=An("worker-heartbeat",m.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof m.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:m.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to publish a line for`};let N=o();et.set(m.worker_id,{line:m.last_log_line,published_at:N,source:"heartbeat"});let z=m.display===void 0?null:jy(m.display);if(z!=null){let ne=wt.get(m.worker_id)?.display,se={display:z,published_at:N};wt.set(m.worker_id,se),Y_(se,A),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ht("worker-activity",A,null,{phase:z.phase,step:z.step})}return m.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ht("worker-heal",A,`${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:j,published_at:N,detail:`redskilled stored a line for Worker ${JSON.stringify(m.worker_id)} without reading it`}}async function ox(m,A,j){let N=`exit code=${A??"null"} signal=${j??"null"}`;if(m.unit!=null&&m.unit!==""&&await ix(m)){ax(m,`its launch client ended (${N}) 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:Ud(await te(m.log_path).catch(()=>null));Oi(m.worker_id),Ht("worker-death",m,z==null?N:`session-error: ${z}`,{exitCode:A,signal:j,refusal:z}),pt()}function sx(m,A){if(!Number.isFinite(A)||A<0){Ie[m]=Es;return}let j=Ie[m]??Es,N=Kh(j,A,Date.parse(o()));Ie[m]=N,N.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(m)} lost ${N.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(N.haltUntilMs).toISOString()}
102
- `)}function lf(m,A){let j=An("project-reset",A,m);if(!j.permitted)throw new Error(j.reason);let N=Ie[m]?.haltUntilMs!=null||Ie[m]?.probeWorkerId!=null;return Ie[m]=Yd(),{version:1,project_label:m,latch:"project-birth-breaker",reset:N,reach:j,detail:N?`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 ix(m){try{return await I(m)===!0}catch{return!1}}function ax(m,A){let j=m.unit==null?null:fe(m.unit);le.set(m.worker_id,{...m,...j!=null&&j>0?{pid:j}:{},warnings:[...m.warnings,A]}),ct.add(m.worker_id),pt()}function df(m,A){let j=An("project-register",A,m.project_label);if(!j.permitted)throw new Error(j.reason);let N=o();Gr(N);let z=lm(m,{now:N,held:Ce.get(m.project_label)});return Ce.set(z.project_label,z),uo(),pf(z.project_label),pt(),{version:1,registration:z,reach:j,detail:`redskilled holds a registration for project ${JSON.stringify(z.project_label)} at a target of ${z.target} until ${z.renew_by}, and has read neither its selector nor its argv`}}function cf(m,A={}){let j=An("project-renew",A.sessionProject,m);if(!j.permitted)throw new Error(j.reason);let N=o();Gr(N);let z=Ce.get(m);if(z==null){if(re.has(m))throw new jn(m,{kind:"orphaned"});let se=[...er].reverse().find(Ye=>Ye.project_label===m);if(se!=null)throw new jn(m,{kind:"stopped",at:se.at});let rt=[...Pt].reverse().find(Ye=>Ye.project_label===m);throw rt!=null?new jn(m,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new jn(m)}let ne=dm(z,{now:N,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return Ce.set(ne.project_label,ne),uo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(A.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function uf(m,A){let j=An("project-deregister",A,m);if(!j.permitted)throw new Error(j.reason);let N=Ce.get(m)??Le.get(m),z=Ce.delete(m),ne=Le.delete(m),se=z||ne;if(N!=null){let rt=`redskilled released the registration for project ${JSON.stringify(m)}`;pf(m),er.push({project_label:m,registered_at:N.registered_at,at:o(),detail:rt}),er.length>Rs&&er.splice(0,er.length-Rs)}return se&&uo(),{version:1,project_label:m,released:se,reach:j,detail:se?`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 pf(m){Le.delete(m);for(let A=Pt.length-1;A>=0;A-=1)Pt[A].project_label===m&&Pt.splice(A,1);for(let A=er.length-1;A>=0;A-=1)er[A].project_label===m&&er.splice(A,1);re.delete(m)}async function lx(m,A){try{await V(m)}catch{}return Oi(m.worker_id),Ht("worker-death",m,A),pt(),!0}function as(m){return Lh({ceiling:l,workers:[...le.values()],budget:m.budget,projectLabel:m.project_label,...m.reservation==null?{}:{reservation:m.reservation}})}function ff(m){return`${m.workspace_path}\0${m.trunk.remote}\0${m.trunk.branch}`}function jl(m){let A=ff(m),j=Nt.get(A);if(j!=null)return j;let N=i(m).finally(()=>{Nt.get(A)===N&&Nt.delete(A)});return Nt.set(A,N),N}function dx(m,A,j){let N=j instanceof Error?j.message:String(j);return{...m,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(A.trunk.remote)} could not refresh branch ${JSON.stringify(A.trunk.branch)}: ${N}`}}async function gf(m,A,j,N){let z=N??as(m);if(!z.admitted)throw new Ar(z.reason,z);let ne;try{ne=await(j??jl(A))}catch(rt){let Ye=dx(z,A,rt);throw new Ar(Ye.reason,Ye)}let se=as(m);if(!se.admitted)throw new Ar(se.reason,se);return Di(m,{admission:se,forkSha:ne})}function Di(m,A={}){let j=jh({ceiling:l,workers:[...le.values()],budget:m.budget}),N=s({spec:m,admission:A.admission??as(m),...A.forkSha==null?{}:{forkSha:A.forkSha},memoryCeiling:j,liveWorkerIds:le.keys(),clock:o,onExit:(rt,Ye,po)=>{let he=le.get(rt);if(he==null){pt();return}ox(he,Ye,po).catch(()=>{})}}),z=A.forkSha??N.fork_sha??N.worker.fork_sha,ne=z==null||z===""?N.worker:{...N.worker,fork_sha:z},se={...N,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return le.set(ne.worker_id,ne),Ht("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??N.admission.verdict}),pt(),se}function Ht(m,A,j,N={}){if(tt)return;let z=o(),ne={kind:m,worker:A,ts:z,detail:j,...N};(m==="worker-death"||m==="worker-budget-kill")&&(Q_({worker_id:A.worker_id,ts:z,outcome:m}),hf(da(ne),{startedAt:A.started_at,...N.refusal==null?{}:{refusal:N.refusal}}),sx(A.project_label,Date.parse(z)-Date.parse(A.started_at))),K.recordWorker(ne).catch(()=>{})}function hf(m,A={}){let j=uh(m,A);if(j==null)return;let N=[j,...(Rt??[]).filter(z=>z.kind!==j.kind||z.id!==j.id||z.ts!==j.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));Rt=Ln(N,z=>z.ts,{now:o()})}async function Bl(){let m=Date.parse(o()),A=[...le.values()].filter(N=>{if(ct.has(N.worker_id))return!0;let z=Date.parse(N.started_at);return!Number.isFinite(z)||m-z>=G});if(A.length===0)return[];let{dead:j}=await mu(A,I);for(let N of j)Oi(N.worker_id),Ht("worker-death",N,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function mf(m,A){let j=le.get(m);if(!j)return!1;try{await V(j)}catch{}return Oi(m),Ht("worker-budget-kill",j,A),pt(),!0}async function bf(){let m=[...le.values()];if(m.length===0)return[];let A;try{A=await de(m)}catch{return[]}let j=A.rss;C=j,w=o(),cx(A.cpu_seconds,w);let{terminations:N}=Tb({workers:m,rss:j}),z=[];for(let ne of N)await mf(ne.worker_id,ne.reason)&&z.push(ne);return z}function cx(m,A){for(let[j,N]of Object.entries(m)){if(typeof N!="number"||!Number.isFinite(N))continue;let z=le.get(j);z&&le.set(j,{...z,cpu:{cpu_seconds:N,sampled_at:A}})}}async function ux(){try{return ie<=0?await ke(r):await new Promise(m=>{let A=setTimeout(()=>m($l()),ie);A.unref(),ke(r).then(j=>{clearTimeout(A),m(j)},()=>{clearTimeout(A),m($l())})})}catch{return $l()}}function $l(){try{return Re(r)}catch{return null}}async function yf(){if(Js(r))return U+=1,M=o(),X="local-build",{act:"hold",reason:"local-build"};let m=a0(await ux()),A=m.version;F=A,je=m.newest??null,M=o(),Be=l0({running:r,newest:je,supervised:we});let j=d0({running:r,published:A,supervised:we});return B=j.act==="replace",U+=1,X=j.act==="hold"?j.reason:null,be!=="in-progress"&&(be=j.act==="replace"?"pending":"none"),j}async function Fi(){let m=await yf();if(m.act!=="replace"||be==="in-progress")return m;let A=u0(m,Se,t,n);return be="in-progress",await K.flush().catch(()=>{}),await H.flush().catch(()=>{}),await Mi({reason:"replaced"}),p0(A,t,{...n==null?{}:{idleMs:n},io:Se}),m}function px(){tt||Sn!=null||J<=0||(!Ae&&Ee>0&&(Ue=setTimeout(()=>{Fi().catch(()=>{})},Ee),Ue.unref()),Sn=setInterval(()=>{Fi().catch(()=>{})},J),Sn.unref())}async function kf(){return await c.renew(d).catch(()=>null)}function fx(){tt||en!=null||Oe<=0||(en=setInterval(()=>{kf()},Oe),en.unref())}function gx(){tt||En!=null||ve<=0||(En=setInterval(()=>{Gr(o())},ve),En.unref())}function hx(){tt||Wt!=null||me<=0||(Wt=setInterval(()=>{bf().catch(()=>{})},me),Wt.unref())}function mx(){tt||Tn!=null||ce==null||ce.projects.length===0||oe<=0||(Ll().catch(()=>{}),Tn=setInterval(()=>{Ll().catch(()=>{})},oe),Tn.unref())}function bx(){if(tt||$r!=null||Xr<=0)return;let m=A=>{$r=setTimeout(()=>{$r=void 0,wf().then(()=>of()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());m(Ly(Ve,Xr,Number.isFinite(j)?j:Date.now()))})},A),$r.unref()};m(Xr)}async function wf(){await Promise.allSettled([...Ce.values()].filter(m=>m.trunk!=null).map(async m=>{let A=await jl({workspace_path:m.workspace_path,trunk:m.trunk}),j=[...le.values()].filter(N=>N.project_label===m.project_label&&N.fork_sha!=null&&N.fork_sha!=="");await Promise.allSettled(j.map(async N=>{let z=await a({workspace_path:m.workspace_path,fork_sha:N.fork_sha,head_sha:A}),ne=le.get(N.worker_id);if(ne==null||ne.fork_sha!==N.fork_sha)return;let se={...ne,base_head_sha:A,base_commits_ahead:z};le.set(N.worker_id,se),(ne.base_head_sha!==A||ne.base_commits_ahead!==z)&&Ht("worker-drift",se,null,{baseHeadSha:A,baseCommitsAhead:z})}))}))}function yx(){tt||vn!=null||Zr<=0||(vn=setInterval(()=>{sf().catch(()=>{})},Zr),vn.unref())}function pt(){tt||(At&&clearTimeout(At),At=setTimeout(()=>{Bl().catch(()=>{}).then(()=>Rf())},n),At.unref())}function Rf(){return le.size>0?(pt(),"held-by-workers"):(Gr(o()),Ce.size>0?(pt(),"held-by-registrations"):(kx(),"exited"))}async function kx(){if(!Js(r)){if((await Fi().catch(()=>null))?.act==="replace"||co||tt)return;if(le.size>0||Ce.size>0){pt();return}}await Mi({reason:"idle"})}function Ii(m){return Yh({reason:m,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...le.values()],projects:[...Ce.keys()]})}function _f(m){if($e!=null)return $e;let A=m.reason??"requested",j=m.note?.trim();return $e=K.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:j==null||j===""?Ii(A).detail:`${Ii(A).detail} \u2014 ${j}`,...m.signal==null?{}:{signal:m.signal}}).catch(()=>{}),$e}async function Mi(m={}){if(co)return await Nr;co=!0,await _f(m),tt=!0,At&&clearTimeout(At),Wt&&clearInterval(Wt),en&&clearInterval(en),En&&clearInterval(En),Sn&&clearInterval(Sn),Ue&&clearTimeout(Ue),Tn&&clearInterval(Tn),tn&&clearTimeout(tn),$r&&clearTimeout($r),vn&&clearInterval(vn),await K.flush().catch(()=>{}),await H.flush().catch(()=>{}),await c.release(d),await g.release(u),L.close();for(let A of Q)A.destroy();return await new Promise(A=>L.once("close",()=>A())),await yF(t.socketPath,{force:!0}),Pn(),await Nr}let Li=await K.read().catch(()=>[]),ji=new Map;for(let m of Li){if(m.event==="worker-birth"){ji.set(m.worker_id,m.ts);continue}let A=Ud(m.detail);hf(m,{...ji.get(m.worker_id)==null?{}:{startedAt:ji.get(m.worker_id)},...A==null?{}:{refusal:A}}),(m.event==="worker-death"||m.event==="worker-budget-kill")&&ji.delete(m.worker_id)}ut=Ln(Li.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()}),lt=Sh(Li,o());let wx=Wh(Li),Nl=await mu(wx,I);for(let m of Nl.alive){let A=Ty(m),j=A.unit==null||Qe(A.pid)?null:fe(A.unit);le.set(A.worker_id,j!=null&&j>0?{...A,pid:j}:A),ct.add(A.worker_id)}for(let m of Nl.dead)Ht("worker-death",m,"the Worker ended while no daemon was watching");let Rx=Sy({units:await Promise.resolve(ge()).catch(()=>[]),held:[...le.values()],mainPid:fe,now:W});for(let m of Rx)le.set(m.worker_id,m),ct.add(m.worker_id),Ht("worker-birth",m,"adopted from an active unit with no birth on this lane");rf(o());for(let m of Nl.alive){if(m.log_path==null||et.has(m.worker_id))continue;let A=await te(m.log_path).catch(()=>null);A==null||A.trim()===""||et.set(m.worker_id,{line:A,published_at:o(),source:"rehydrated"})}L.on("connection",m=>{Q.add(m),m.once("close",()=>Q.delete(m)),pt(),hh(m,async(A,j)=>{pt();let N=await _x(A);j(N),A.op==="shutdown"&&setImmediate(()=>void Mi({reason:"requested"}).catch(()=>{}))})});async function _x(m){try{if(m.op==="ping")return{id:m.id,ok:!0,value:{pong:!0,protocol_version:Ma,daemon_version:r,pid:d.pid}};if(m.op==="host-state")return{id:m.id,ok:!0,value:Ai()};if(m.op==="statusline-payload")return{id:m.id,ok:!0,value:Gb(Ci(),m.extras)};if(m.op==="statusline-string")return{id:m.id,ok:!0,value:tx(m.render)};if(m.op==="statusline-dashboard")return{id:m.id,ok:!0,value:rx(m.dashboard)};if(m.op==="worker-heartbeat")return{id:m.id,ok:!0,value:af(m.heartbeat)};if(m.op==="project-register"){let j=df(m.registration,m.session_project);return await H.flush(),{id:m.id,ok:!0,value:j}}if(m.op==="project-renew"){let j=cf(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:j}}if(m.op==="project-deregister"){let j=uf(m.project_label,m.session_project);return await H.flush(),{id:m.id,ok:!0,value:j}}if(m.op==="project-reset")return{id:m.id,ok:!0,value:lf(m.project_label,m.session_project)};if(m.op==="worker-command")return{id:m.id,ok:!0,value:await nx(m.command)};if(m.op==="worker-start"){let j=An("worker-start",m.session_project,m.spec.project_label);if(!j.permitted)return{id:m.id,ok:!1,error:j.reason};let N=m.spec.trunk==null?Di(m.spec):await gf(m.spec,{workspace_path:m.spec.workspace_path,trunk:m.spec.trunk});return await K.flush().catch(()=>{}),{id:m.id,ok:!0,value:{worker:N.worker,admission:N.admission,fork_sha:N.fork_sha,warnings:N.warnings}}}if(m.op==="shutdown"){let j=Ii("requested");return await _f({reason:"requested",...m.detail==null?{}:{note:m.detail}}),{id:m.id,ok:!0,value:j}}let A=m;return{id:A.id??v0(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:m.id??v0(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return pt(),hx(),fx(),gx(),px(),mx(),X_(),bx(),yx(),{socketPath:t.socketPath,lease:D.lease,startedAt:W,closed:Nr,startWorker:Di,admit:as,ceiling:()=>l,killWorkerOverBudget:mf,sampleMemoryBudgets:bf,renewLease:kf,pollRepositoryActivity:Ll,pollGithubBalance:nf,githubBalance:()=>yr,pollQueueDiscovery:of,queueDiscovery:()=>Ve,driveDemand:sf,demand:()=>kr,sweepWorkerLiveness:Bl,publishWorkerHeartbeat:af,reattached:()=>[...ct].map(m=>le.get(m)).filter(m=>m!=null),flushEvents:()=>K.flush(),trackWorker(m){le.set(m.worker_id,m),Ht("worker-birth",m,null),pt()},releaseWorker(m){let A=le.get(m),j=le.delete(m);return ct.delete(m),et.delete(m),wt.delete(m),A&&Ht("worker-death",A,"released by the daemon"),pt(),j},workerCount:()=>le.size,registerProject:df,renewProject:cf,resetProjectBirthBreaker:lf,deregisterProject:uf,registrations:()=>Ai().registrations??[],hostState:Ai,refreshRegisteredTrunks:wf,statuslinePayload:Ci,evaluateIdle:Rf,observePublishedVersion:yf,checkForReplacement:Fi,stopReport:Ii,stop:Mi}}function Au(e){let t=e.socketPath,r=wF(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 ${T0(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 \`${mn("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 \`${mn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Cu(e){return`${e.reason} ${e.repair}`}function wF(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:RF(t.acquired_at,e.now??new Date().toISOString())}}function RF(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 T0(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 _F}from"node:child_process";import{existsSync as xF}from"node:fs";import{basename as P0,dirname as EF,join as A0}from"node:path";async function Ys(e){let r=await vs(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==ca().uid||!Qe(r.pid))return{paths:e,joined:!1};let n=EF(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:A0(n,P0(e.lockPath)),leasePath:A0(n,P0(e.leasePath))}}}async function C0(e){let r=await vs(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Qe(r.pid)))throw new qr(e.machineClaimPath,"held",r)}async function O0(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[Zd]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Eo({env:n,machineIdHash:e.machineIdHash}))||!(o??xF(jo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=_F("systemctl",["--user","start",Yt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Yt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await vF(e,t,r),!0}async function vF(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await Ys(e);if(await Vt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Yt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}Ur();var Du=1e4,Hn=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"?`. ${Cu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},Ou=class extends Hn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Ha=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function Ua(e,t={}){let r=t.answers??await Vt(e.socketPath),n=await Bo(e.leasePath).catch(()=>{});return Au({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Qe(n.pid)})}async function Fu(e,t={}){let r=await Ys(e);try{let n=await AF(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof qr||n instanceof Hn)throw n;let o=await Ua(r.paths).catch(()=>{});throw new Hn(r.paths.socketPath,n,o)}}async function AF(e,t){if(await TF(PF(e.socketPath),{recursive:!0,mode:448}),await Vt(e.socketPath))return"already-running";await C0(e);let r=await OF(e,t);if(r!=null)return r;if(await O0(e,t,Du))return"joined";let n=await Vg(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??CF});if(!n.acquired)return await D0(e,t,void 0,n),"joined";try{if(await Vt(e.socketPath))return"already-running";let o=await FF(e,t);return await D0(e,t,o),"spawned"}finally{await zg(n)}}function CF(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
103
- `)}async function OF(e,t){let r=await Ua(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Du,o=Date.now()+n;for(;;){if(await Vt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await Ua(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new Ou(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 I0(e,t,r={}){await Fu(e,r);let n=(await Ys(e)).paths,o;try{o=await Us({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:F0()})}catch(s){throw new Hn(n.socketPath,s,await Ua(n).catch(()=>{}))}if(!o.ok)throw new Ha(o.error);return o.value}async function M0(e,t={},r={}){let n=(await Ys(e)).paths;if(!await Vt(n.socketPath))return Qh(n.socketPath);let o;try{o=await Us({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:F0(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Hn(n.socketPath,a)}if(!o.ok)throw new Ha(o.error);if(!Qd(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await DF(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 DF(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await Vt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await Bo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Qe(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function L0(e,t={}){let r=await I0(e,{op:"host-state"},t);if(!ry(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function j0(e,t={},r){let n=await I0(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!qc(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function B0(e,t=Ne,r={}){let n=await j0(e,r,{vitals:!0,logs:t.verbose,display:!0});return Gn(n,t)}async function $0(e,t={},r={}){let n=await j0(e,r,{vitals:!0,logs:!0,display:!0});return Io(n,{...jt,...t})}async function D0(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Du);for(;;){if(await Vt(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 ${Jg(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 FF(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await sh({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...on(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=SF(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}Ur();import{readFile as IF}from"node:fs/promises";import{homedir as MF,totalmem as LF}from"node:os";import{join as jF}from"node:path";var BF="REDSKILLED_IDLE_MS",$F=".red/config.yaml";async function G0(e=MF()){let t=jF(e,$F),r;try{r=await IF(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Iu(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${N0(n)}`),{})}try{let n=GF(r);return{...qa(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...qa(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...qa(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...qa(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Iu(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${N0(n)}`),{}}}function W0(e={}){let t=e.env??process.env,r=e.config??{},n=la(t,e.totalMemoryBytes??LF(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=NF(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[BF],r.idleMs);if(o==null)return{ceiling:n,idleMs:_o,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Iu(`redskilled: ${UF(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${_o}ms instead.`),{ceiling:n,idleMs:_o,idleMsSource:"derived-default"})}function NF(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 qa(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function GF(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=WF(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(".")]=HF(c.trim())}return t}function WF(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 HF(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function UF(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function N0(e){return e instanceof Error?e.message:String(e)}function Iu(e){process.stderr.write(`${e}
104
- `)}import{chmod as Y0,mkdir as X0,readFile as Z0,stat as s1,writeFile as ek}from"node:fs/promises";import{homedir as ju}from"node:os";import{dirname as tk,join as Ka}from"node:path";import{join as JF}from"node:path";import{existsSync as qF,readFileSync as Z4}from"node:fs";import{dirname as KF,join as VF}from"node:path";function H0(e,t){let r=e;for(let n=0;n<16;n++){let o=VF(r,t);if(qF(o))return o;let s=KF(r);if(s===r)break;r=s}return null}function zF(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function $o(e,t){let r=[];for(let n of e.split(`
105
- `)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return zF(d)}}var U0=["local","tmp","host"],YF="local",Qs="plugins.dev.workspace.target";var Mu=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function K0(e){let t=$o(e,Qs),r=ZF(t??"").trim();return r===""?void 0:r}function V0(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:YF};let r=U0.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 Mu(`${Qs}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${U0.join(", ")}) or an absolute parent directory for Workers.`)}function z0(e,t){return e.kind==="preset"?e.preset==="host":XF(QF(e.parentDir,t),or(t))}function QF(e,t){return e==="~"?q0(t):e.startsWith("~/")?JF(t,e.slice(2)):q0(e)}function XF(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function q0(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function ZF(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}Ur();import{createHash as e1}from"node:crypto";import{hostname as t1}from"node:os";import{join as Xs}from"node:path";var No="redskilled.sock",r1="REDSKILLED_SESSION";function n1(e={}){let t=e.env??process.env,r=t[r1]?.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 o1(e={}){return J0(e.host??t1())}function dr(e={}){let t=n1(e),r=e.runtimeDir??ta({key:`redskilled:${t}`,socketFileName:No,env:e.env,uid:e.uid}),n=o1(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:J0(t),machineIdHash:n,runtimeDir:r,socketPath:Xs(r,No),lockPath:Xs(r,"redskilled.spawn.lock"),leasePath:Xs(r,"redskilled.lease.toon"),eventLanePath:Xs(or(o),Nh),registrationIntentPath:Xs(or(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Eo({env:e.env,machineIdHash:n,platform:e.platform})}}function J0(e){return e1("sha256").update(e).digest("hex").slice(0,12)}var Lu=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${mn("red-skills-redskilled",["provision"])}\` directly`,i1=`# Host-scoped redskilled policy. This file is never read from a repository.
100
+ `)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function u1(e,t={}){let r=t.env??process.env,n=t.exists??s1,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=[[a0(aa(r),i),"bundle-cache"]];s&&l.push([a0(a1(l1(s)),i),"caller-sibling-bundle"]);for(let[d,c]of l)if(a.push(d),n(d))return{command:o,args:[d],version:e,source:c,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new Du(e,a);return{command:r.RED_SKILLS_NPX||"npx",args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function b0(e,t={},r,n){let s=(t.resolveEntry??(i=>u1(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>e0(a,l,{...t.env==null?{}:{env:t.env},...d==null?{}:{idleMs:d}}));if(r==null)throw new Error("a supervised redskilled replacement needs its serve target before exit");i(s,r,n)}return{via:e.via,to:e.to,entry:s}}function y0(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??f1)(l0),{...e,exitCode:l0};let o=[...e.entry.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??p1(n.env))(e.entry,o),e}function p1(e){return(t,r)=>{let n=o1(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[u0]:"1"}});n.on("error",()=>{}),n.unref()}}function f1(e){process.exitCode=e,process.exit(e)}async function k0(e,t=process.env,r=g1){let n=R0(t),o=_0(e,t);if(t[d1]==="1")return{version:o,newest:n};let s=dr(e)===null?"0.0.0":e;try{let i=await ih({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function w0(e,t=process.env,r){let n=r??Ou;return{version:_0(e,t,n),newest:R0(t,n)}}function R0(e=process.env,t=Ou){return E0(x0(e,t))}function _0(e,t=process.env,r=Ou){let n=dr(e.trim())?.major;return n===void 0?null:E0(x0(t,r).filter(o=>dr(o)?.major===n))}function x0(e,t){let r=[];for(let n of t(aa(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||dr(o)===null||r.push(o)}return r}function E0(e){let t=null;for(let r of e)(t===null||Au(r,t)>0)&&(t=r);return t}function Ou(e){try{return i1(e)}catch{return[]}}async function g1(e){let t=await fetch(e,{headers:{accept:"application/json"}});if(!t.ok)throw new Error(`registry read failed with HTTP ${t.status}`);return await t.text()}import{mkdir as h1,readFile as m1,rename as b1,rm as Fu,writeFile as v0}from"node:fs/promises";import{randomUUID as y1}from"node:crypto";import{dirname as k1}from"node:path";var Ka=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function qo(e){let t;try{t=await m1(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=w1(t);return R1(r)?r:void 0}var S0;function P0(){return S0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},S0}function A0(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){return await qo(e)}async function i(l){let d=`${e}.${l.pid}.${y1()}.tmp`;await v0(d,T0(l),{encoding:"utf8",mode:384}),await b1(d,e)}function a(l,d){return{version:1,pid:l.pid,start_time:l.startTime,session_key_hash:t.sessionKeyHash,machine_id_hash:t.machineIdHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}return{read:s,async acquire(l){await h1(k1(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await v0(e,T0(u),{encoding:"utf8",mode:384,flag:"wx"}),{acquired:!0,reaped:d,lease:u}}catch(g){if(g.code!=="EEXIST")throw g}let p=await s();if(!p){await Fu(e,{force:!0}),d=!0;continue}if(Iu(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await Fu(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!Iu(d,l))throw new Ka(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!Iu(d,l))throw new Ka(e);return await Fu(e,{force:!0}),!0}}}function Iu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function T0(e){return`${ot(e,{keyedMapCollapse:!0})}
101
+ `}function w1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function R1(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||!Number.isInteger(t.pid)||t.pid<=0)return!1;for(let r of["start_time","session_key_hash","machine_id_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}async function O0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Ao,o=e.clock??(()=>new Date().toISOString()),s=e.launch??Vy,i=e.refreshTrunk??zy,a=e.countBaseMovement??Jy,l=e.ceiling??pa();e.repositoryActivity!=null&&Jc(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??P0(),c=e.leaseStore??A0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??ga(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Os(t.machineClaimPath,p,{clock:o});await E1(S1(t.socketPath),{recursive:!0,mode:448});let[f,y]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),h=Date.parse(o()),R=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&y!=null&&f.pid===y.pid&&f.start_time===y.start_time&&f.socket_path===t.socketPath&&y.socket_path===t.socketPath&&Number.isFinite(h)&&Number.isFinite(R)&&h-R>=hh&&await Yd(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:y.pid,startTime:y.start_time,uid:y.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new Ar(t.socketPath):new Jr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new Ar(t.socketPath,D.lease);let M;try{M=await wh(t.socketPath,async()=>{let[b,A]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return b!=null&&b.pid!==d.pid&&Qe(b.pid)?!0:A!=null&&A.socket_path===t.socketPath&&A.pid!==u.pid&&Qe(A.pid)})}catch(b){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),b}let N=o(),U=e.eventLane??Vh(t.eventLanePath),G=e.registrationIntentStore??dy(t.registrationIntentPath),F=e.liveness??Ty,W=e.livenessGraceMs??Sy,q=e.stopWorker??Iy,oe=e.unitInventory??(()=>Cy(t.machineClaimPath,Do({machineIdHash:t.machineIdHash}))?Dy():[]),ae=e.unitMainPid??Ay,se=e.treeSampler??Ib,Z=e.readLogTail??Yy,pe=e.sampleMs??gh,Ae=e.leaseRenewMs??zd,Ee=e.registrationSustainMs??mh,we=e.publishedVersion??(b=>k0(b)),J=e.replaceCheckMs??c0,de=e.publishedProbeTimeoutMs??ph,_e=e.localPublishedEvidence??(b=>w0(b,e.replacementIO?.env??process.env)),Ce=e.bornByReplacement??p0(),ve=e.replaceBootCheckMs??fh,Re=e.supervised??m0(),Se=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??zc,xe=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??fe?.transport,Nt=Fe?.unconfiguredReason??yh,nn=Fe?.intervalMs??Eu,on=e.demandMs??15e3,mo=e.demandBackoffMs??3e4,ue=new Map,Gt=new Map,ct=new Set,et=new Map,Rt=new Map,lt=[],ut=[],_t=e.deaths===void 0?void 0:[...e.deaths],xt=await G.read().catch(()=>[]),Wr=Date.parse(N),De=new Map,Le=new Map;for(let b of xt){let A=Date.parse(b.renew_by);!Number.isFinite(Wr)||!Number.isFinite(A)||A>=Wr?De.set(b.project_label,b):Wr-A<=b.renew_within_ms&&Le.set(b.project_label,b)}let Q=new Set,C={},w=null,I=null,L=null,B=!1,K=0,X=null,ye="none",je=null,Be=null,er=null,Rr=null,Ve=null,_r=null,At=[],tr=[],re=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),ke=null,Ie={},Wt=!1,Ct,Ht,sn,An,Cn,Dn,Ue,On,an,Hr,tt=!1,bo=!1,$e=null,Fn,Ur=new Promise(b=>{Fn=b});function qr(b){lf(b);let A=Date.parse(b),j=bm(De.values(),A);for(let H of j.lapsed){De.delete(H.project_label);let z=Ve?.projects.find(le=>le.project_label===H.project_label),ne=[...ue.values()].some(le=>le.project_label===H.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(H.project_label,H),rx(H,A)}return j.lapsed.length>0&&yo(),j.lapsed}function yo(){let b=new Map(Le);for(let[A,j]of De)b.set(A,j);G.replace([...b.values()]).catch(()=>{})}function rx(b,A){let j=Number.isFinite(A)?new Date(A).toISOString():b.renew_by;At.push({project_label:b.project_label,registered_at:b.registered_at,at:j,renew_by:b.renew_by,renewals:b.renewals,sustains:b.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(b.project_label)}: it stood until ${b.renew_by} and nothing renewed it \u2014 no session spoke for it, and no poll found it work or a Worker to hold it up`}),At.length>Ps&&At.splice(0,At.length-Ps)}function lf(b){if(De.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j={};for(let le of ue.values())j[le.project_label]=(j[le.project_label]??0)+1;let H=Ve==null?Number.NaN:Date.parse(Ve.fetched_at),z=new Map((Ve?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...De.values()]){let Ye=Number.isFinite(H)&&A-H<=le.renew_within_ms?z.get(le.project_label):void 0,ko=dc(le,{now:b,...Ye==null?{}:{queue:{outcome:Ye.outcome,depth:Ye.depth}},liveWorkers:j[le.project_label]??0});ko.registration!==le&&(De.set(le.project_label,ko.registration),ne=!0)}ne&&yo()}function df(b){if(Le.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j=new Map((Ve?.projects??[]).map(z=>[z.project_label,z])),H=!1;for(let[z,ne]of[...Le]){if(A-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),H=!0;continue}let le=j.get(z),rt=dc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ue.values()].filter(Ye=>Ye.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(De.set(z,rt.registration),Le.delete(z),H=!0):rt.verdict==="drained"&&(Le.delete(z),H=!0)}H&&yo()}function Fi(){let b=o();return qr(b),ay({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:dm(g.claimPath,p,u),workers:[...ue.values()],registrations:[...De.values()],demand:_r,lapses:At,stops:tr,orphanedRegistrations:[...re.values()],birthLatches:em(Ie,Date.parse(b)),queue:Ve,published:{version:I,checkedAt:L,newer:B,replacement:ye,newest:je,majorHold:Be,checks:K,holdReason:X}})}function Ii(){return zb({hostState:Fi(),ceiling:l,rss:C,sampledAt:w,logLines:Object.fromEntries(et),displays:Object.fromEntries(Rt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:er,githubBalance:Rr,..._t===void 0?{}:{deaths:_t},metrics:Ah({observations:lt,outcomes:ut,now:o()})})}function nx(b,A){let j=Dh(lt,b,A,o());lt=j.observations,U.recordWorker(j.record).catch(()=>{})}function ox(b){ut=Gn([...ut,b],A=>A.ts,{now:o()})}async function Gl(){return fe==null||fe.projects.length===0?null:(er=await Gb({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),er)}async function cf(){return xe==null?null:(Rr=await Nc({transport:xe.transport,now:o()}),Rr)}function sx(){if(tt||an!=null||xe==null)return;let b=()=>{an=void 0,cf().catch(()=>{}).then(()=>{if(tt)return;let A=xe.intervalMsOverride??Aa(Rr??ix(),{now:o()});an=setTimeout(b,A),an.unref()})};b()}function ix(){return Pa(o())}function ax(){if(!(at!=null||Fe?.armTransport==null))try{let b=Fe.armTransport();if(b.transport!=null){at=b.transport;return}b.unconfiguredReason!=null&&(Nt=b.unconfiguredReason)}catch(b){Nt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function uf(){let b=o();qr(b);let A=Date.parse(b);for(let[ne,le]of[...Le])Number.isFinite(A)&&A-Date.parse(le.renew_by)>le.renew_within_ms&&Le.delete(ne);let H=[...new Map([...Le,...De]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,le)=>ne.project_label.localeCompare(le.project_label));if(H.length===0)return null;if(ax(),at==null)return Ve=By(H,b,Nt),Ve;Ve=await $y({projects:H,transport:at,now:b,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return df(z),lf(z),Ve}async function pf(){let b=o();if(Wt)return _r??Yh(b);Wt=!0;try{await Hl().catch(()=>{});let A={};for(let me of ue.values())A[me.project_label]=(A[me.project_label]??0)+1;let j={};for(let me of Ve?.projects??[])j[me.project_label]=me.depth;let H=Date.parse(b),z=Number.isFinite(H)?H:0;for(let[me,Et]of Object.entries(Ie)){if(Et.probeWorkerId==null)continue;let Wi=ue.get(Et.probeWorkerId);Wi!=null&&z-Date.parse(Wi.started_at)>=6e4&&(Ie[me]=tc())}let ne=Jh({projects:[...De.values()].map(me=>({project_label:me.project_label,selector:me.selector,argv:me.argv,workspace_path:me.workspace_path,target:me.target})),queue:j,live:A,nowMs:z,backoffUntilMs:ke,birthHealth:Ie}),le=[],rt=new Map,Ye=null;for(let me of ne.births){let Et,Wi=Pu(ue.keys()),wo=De.get(me.project_label),Hi=fm({argv:me.argv,...wo?.env==null?{}:{env:wo.env},...wo?.log_path==null?{}:{log_path:wo.log_path}},{worker_id:Wi,slot:me.index,workspace_path:me.workspace_path},{project_label:me.project_label});try{if(wo?.trunk==null)Et=Li(Hi);else{let Kr={workspace_path:me.workspace_path,trunk:wo.trunk},hs=gs(Hi);if(!hs.admitted)throw new Fr(hs.reason,hs);let Af=kf(Kr),Ui=rt.get(Af);Ui==null&&(Ui=Wl(Kr),rt.set(Af,Ui)),Et=await wf(Hi,Kr,Ui,hs)}}catch(Kr){Ye=Kr instanceof Error?Kr.message:String(Kr),Kr instanceof Fr&&Kr.admission?.verdict==="refused-unreachable-trunk-remote"||(ke=(Number.isFinite(H)?H:Date.now())+mo);break}le.push({project_label:me.project_label,worker_id:Et.worker.worker_id,pid:Et.worker.pid,...Et.fork_sha==null?{}:{fork_sha:Et.fork_sha},warnings:Hi.log_path==null?[...Et.warnings,`project ${JSON.stringify(me.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(Et.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:Et.warnings});let Kl=Ie[me.project_label];Kl?.haltUntilMs!=null&&z>=Kl.haltUntilMs&&(Ie[me.project_label]=Zh(Kl,Et.worker.worker_id))}Ye==null&&ne.births.length>0&&(ke=null);let ko=new Set(le.map(me=>me.project_label));for(let me of ne.intents){if(me.queue_depth==null||me.queue_depth<=0||me.live>=me.target||ko.has(me.project_label))continue;let Et=Ye!=null&&(me.outcome==="asking"||me.outcome==="half-open-probe")?`project ${JSON.stringify(me.project_label)} was birth-eligible but the host refused it: ${Ye}`:me.detail;await U.recordDemandRefusal({ts:b,projectLabel:me.project_label,detail:Et}).catch(()=>{})}return _r={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Ye,retry_after:ke==null?null:new Date(ke).toISOString(),projects:ne.intents},_r}finally{Wt=!1}}function lx(b){return Vn(Ii(),{...Ne,mode:b?.mode??Ne.mode,project:b?.project??Ne.project,maxWorkers:b?.max_workers??Ne.maxWorkers,maxProjects:b?.max_projects??Ne.maxProjects,maxWidth:b?.max_width??Ne.maxWidth,verbose:b?.verbose??Ne.verbose})}function dx(b){return Go(Ii(),{mode:b?.mode??Bt.mode,project:b?.project??Bt.project,maxWidth:b?.max_width??Bt.maxWidth,maxRows:b?.max_rows??Bt.maxRows,maxHeight:b?.max_height??Bt.maxHeight,showDeathDetails:b?.show_death_details??Bt.showDeathDetails})}function In(b,A,j){return wm({op:b,sessionProject:A??null,targetProject:j})}async function cx(b){let A=ue.get(b.worker_id),j=In(km(b.command),b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(b.command!=="stop")throw new Error(`redskilled does not implement ${b.command}: it owns birth, death and limits, and ${b.command} is a work decision the project's own bundle makes on top of them`);let H=A!=null&&await hx(A,b.detail??"stopped by its own project");return{version:1,command:b.command,worker_id:b.worker_id,applied:H,reach:j,detail:H?`redskilled stopped Worker ${JSON.stringify(b.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to stop`}}function Mi(b){ue.delete(b),ct.delete(b),et.delete(b),Rt.delete(b)}function ff(b){let A=ue.get(b.worker_id),j=In("worker-heartbeat",b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof b.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(A==null)return{version:1,worker_id:b.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to publish a line for`};let H=o();et.set(b.worker_id,{line:b.last_log_line,published_at:H,source:"heartbeat"});let z=b.display===void 0?null:Hy(b.display);if(z!=null){let ne=Rt.get(b.worker_id)?.display,le={display:z,published_at:H};Rt.set(b.worker_id,le),nx(le,A),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ut("worker-activity",A,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ut("worker-heal",A,`${b.mechanical_heal.cause}; cycle ${b.mechanical_heal.cycle}/${b.mechanical_heal.cap}; free=${b.mechanical_heal.free}`,{healKind:b.mechanical_heal.heal_kind}),{version:1,worker_id:b.worker_id,accepted:!0,reach:j,published_at:H,detail:`redskilled stored a line for Worker ${JSON.stringify(b.worker_id)} without reading it`}}async function ux(b,A,j){let H=`exit code=${A??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await fx(b)){gx(b,`its launch client ended (${H}) while unit ${JSON.stringify(b.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=b.log_path==null?null:Jd(await Z(b.log_path).catch(()=>null));Mi(b.worker_id),Ut("worker-death",b,z==null?H:`session-error: ${z}`,{exitCode:A,signal:j,refusal:z}),pt()}function px(b,A){if(!Number.isFinite(A)||A<0){Ie[b]=Ds;return}let j=Ie[b]??Ds,H=Xh(j,A,Date.parse(o()));Ie[b]=H,H.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(b)} lost ${H.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(H.haltUntilMs).toISOString()}
102
+ `)}function gf(b,A){let j=In("project-reset",A,b);if(!j.permitted)throw new Error(j.reason);let H=Ie[b]?.haltUntilMs!=null||Ie[b]?.probeWorkerId!=null;return Ie[b]=tc(),{version:1,project_label:b,latch:"project-birth-breaker",reset:H,reach:j,detail:H?`redskilled cleared project ${JSON.stringify(b)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(b)}; nothing changed`}}async function fx(b){try{return await F(b)===!0}catch{return!1}}function gx(b,A){let j=b.unit==null?null:ae(b.unit);ue.set(b.worker_id,{...b,...j!=null&&j>0?{pid:j}:{},warnings:[...b.warnings,A]}),ct.add(b.worker_id),pt()}function hf(b,A){let j=In("project-register",A,b.project_label);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=gm(b,{now:H,held:De.get(b.project_label)});return De.set(z.project_label,z),yo(),yf(z.project_label),pt(),{version:1,registration:z,reach:j,detail:`redskilled holds a registration for project ${JSON.stringify(z.project_label)} at a target of ${z.target} until ${z.renew_by}, and has read neither its selector nor its argv`}}function mf(b,A={}){let j=In("project-renew",A.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=De.get(b);if(z==null){if(re.has(b))throw new Wn(b,{kind:"orphaned"});let le=[...tr].reverse().find(Ye=>Ye.project_label===b);if(le!=null)throw new Wn(b,{kind:"stopped",at:le.at});let rt=[...At].reverse().find(Ye=>Ye.project_label===b);throw rt!=null?new Wn(b,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new Wn(b)}let ne=hm(z,{now:H,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return De.set(ne.project_label,ne),yo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(A.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function bf(b,A){let j=In("project-deregister",A,b);if(!j.permitted)throw new Error(j.reason);let H=De.get(b)??Le.get(b),z=De.delete(b),ne=Le.delete(b),le=z||ne;if(H!=null){let rt=`redskilled released the registration for project ${JSON.stringify(b)}`;yf(b),tr.push({project_label:b,registered_at:H.registered_at,at:o(),detail:rt}),tr.length>Ps&&tr.splice(0,tr.length-Ps)}return le&&yo(),{version:1,project_label:b,released:le,reach:j,detail:le?`redskilled released the registration for project ${JSON.stringify(b)}`:`redskilled held no registration for project ${JSON.stringify(b)}, so there was nothing to release`}}function yf(b){Le.delete(b);for(let A=At.length-1;A>=0;A-=1)At[A].project_label===b&&At.splice(A,1);for(let A=tr.length-1;A>=0;A-=1)tr[A].project_label===b&&tr.splice(A,1);re.delete(b)}async function hx(b,A){try{await q(b)}catch{}return Mi(b.worker_id),Ut("worker-death",b,A),pt(),!0}function gs(b){return Wh({ceiling:l,workers:[...ue.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function kf(b){return`${b.workspace_path}\0${b.trunk.remote}\0${b.trunk.branch}`}function Wl(b){let A=kf(b),j=Gt.get(A);if(j!=null)return j;let H=i(b).finally(()=>{Gt.get(A)===H&&Gt.delete(A)});return Gt.set(A,H),H}function mx(b,A,j){let H=j instanceof Error?j.message:String(j);return{...b,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(A.trunk.remote)} could not refresh branch ${JSON.stringify(A.trunk.branch)}: ${H}`}}async function wf(b,A,j,H){let z=H??gs(b);if(!z.admitted)throw new Fr(z.reason,z);let ne;try{ne=await(j??Wl(A))}catch(rt){let Ye=mx(z,A,rt);throw new Fr(Ye.reason,Ye)}let le=gs(b);if(!le.admitted)throw new Fr(le.reason,le);return Li(b,{admission:le,forkSha:ne})}function Li(b,A={}){let j=Hh({ceiling:l,workers:[...ue.values()],budget:b.budget}),H=s({spec:b,admission:A.admission??gs(b),...A.forkSha==null?{}:{forkSha:A.forkSha},memoryCeiling:j,liveWorkerIds:ue.keys(),clock:o,onExit:(rt,Ye,ko)=>{let me=ue.get(rt);if(me==null){pt();return}ux(me,Ye,ko).catch(()=>{})}}),z=A.forkSha??H.fork_sha??H.worker.fork_sha,ne=z==null||z===""?H.worker:{...H.worker,fork_sha:z},le={...H,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ue.set(ne.worker_id,ne),Ut("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??H.admission.verdict}),pt(),le}function Ut(b,A,j,H={}){if(tt)return;let z=o(),ne={kind:b,worker:A,ts:z,detail:j,...H};(b==="worker-death"||b==="worker-budget-kill")&&(ox({worker_id:A.worker_id,ts:z,outcome:b}),Rf(fa(ne),{startedAt:A.started_at,...H.refusal==null?{}:{refusal:H.refusal}}),px(A.project_label,Date.parse(z)-Date.parse(A.started_at))),U.recordWorker(ne).catch(()=>{})}function Rf(b,A={}){let j=bh(b,A);if(j==null)return;let H=[j,...(_t??[]).filter(z=>z.kind!==j.kind||z.id!==j.id||z.ts!==j.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));_t=Gn(H,z=>z.ts,{now:o()})}async function Hl(){let b=Date.parse(o()),A=[...ue.values()].filter(H=>{if(ct.has(H.worker_id))return!0;let z=Date.parse(H.started_at);return!Number.isFinite(z)||b-z>=W});if(A.length===0)return[];let{dead:j}=await _u(A,F);for(let H of j)Mi(H.worker_id),Ut("worker-death",H,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function _f(b,A){let j=ue.get(b);if(!j)return!1;try{await q(j)}catch{}return Mi(b),Ut("worker-budget-kill",j,A),pt(),!0}async function xf(){let b=[...ue.values()];if(b.length===0)return[];let A;try{A=await se(b)}catch{return[]}let j=A.rss;C=j,w=o(),bx(A.cpu_seconds,w);let{terminations:H}=Fb({workers:b,rss:j}),z=[];for(let ne of H)await _f(ne.worker_id,ne.reason)&&z.push(ne);return z}function bx(b,A){for(let[j,H]of Object.entries(b)){if(typeof H!="number"||!Number.isFinite(H))continue;let z=ue.get(j);z&&ue.set(j,{...z,cpu:{cpu_seconds:H,sampled_at:A}})}}async function yx(){try{return de<=0?await we(r):await new Promise(b=>{let A=setTimeout(()=>b(Ul()),de);A.unref(),we(r).then(j=>{clearTimeout(A),b(j)},()=>{clearTimeout(A),b(Ul())})})}catch{return Ul()}}function Ul(){try{return _e(r)}catch{return null}}async function Ef(){if(ri(r))return K+=1,L=o(),X="local-build",{act:"hold",reason:"local-build"};let b=f0(await yx()),A=b.version;I=A,je=b.newest??null,L=o(),Be=g0({running:r,newest:je,supervised:Re});let j=h0({running:r,published:A,supervised:Re});return B=j.act==="replace",K+=1,X=j.act==="hold"?j.reason:null,ye!=="in-progress"&&(ye=j.act==="replace"?"pending":"none"),j}async function ji(){let b=await Ef();if(b.act!=="replace"||ye==="in-progress")return b;let A=b0(b,Se,t,n);return ye="in-progress",await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await $i({reason:"replaced"}),y0(A,t,{...n==null?{}:{idleMs:n},io:Se}),b}function kx(){tt||Dn!=null||J<=0||(!Ce&&ve>0&&(Ue=setTimeout(()=>{ji().catch(()=>{})},ve),Ue.unref()),Dn=setInterval(()=>{ji().catch(()=>{})},J),Dn.unref())}async function vf(){return await c.renew(d).catch(()=>null)}function wx(){tt||sn!=null||Ae<=0||(sn=setInterval(()=>{vf()},Ae),sn.unref())}function Rx(){tt||An!=null||Ee<=0||(An=setInterval(()=>{qr(o())},Ee),An.unref())}function _x(){tt||Ht!=null||pe<=0||(Ht=setInterval(()=>{xf().catch(()=>{})},pe),Ht.unref())}function xx(){tt||On!=null||fe==null||fe.projects.length===0||ie<=0||(Gl().catch(()=>{}),On=setInterval(()=>{Gl().catch(()=>{})},ie),On.unref())}function Ex(){if(tt||Hr!=null||nn<=0)return;let b=A=>{Hr=setTimeout(()=>{Hr=void 0,Sf().then(()=>uf()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());b(Wy(Ve,nn,Number.isFinite(j)?j:Date.now()))})},A),Hr.unref()};b(nn)}async function Sf(){await Promise.allSettled([...De.values()].filter(b=>b.trunk!=null).map(async b=>{let A=await Wl({workspace_path:b.workspace_path,trunk:b.trunk}),j=[...ue.values()].filter(H=>H.project_label===b.project_label&&H.fork_sha!=null&&H.fork_sha!=="");await Promise.allSettled(j.map(async H=>{let z=await a({workspace_path:b.workspace_path,fork_sha:H.fork_sha,head_sha:A}),ne=ue.get(H.worker_id);if(ne==null||ne.fork_sha!==H.fork_sha)return;let le={...ne,base_head_sha:A,base_commits_ahead:z};ue.set(H.worker_id,le),(ne.base_head_sha!==A||ne.base_commits_ahead!==z)&&Ut("worker-drift",le,null,{baseHeadSha:A,baseCommitsAhead:z})}))}))}function vx(){tt||Cn!=null||on<=0||(Cn=setInterval(()=>{pf().catch(()=>{})},on),Cn.unref())}function pt(){tt||(Ct&&clearTimeout(Ct),Ct=setTimeout(()=>{Hl().catch(()=>{}).then(()=>Tf())},n),Ct.unref())}function Tf(){return ue.size>0?(pt(),"held-by-workers"):(qr(o()),De.size>0?(pt(),"held-by-registrations"):(Sx(),"exited"))}async function Sx(){if(!ri(r)){if((await ji().catch(()=>null))?.act==="replace"||bo||tt)return;if(ue.size>0||De.size>0){pt();return}}await $i({reason:"idle"})}function Bi(b){return rm({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ue.values()],projects:[...De.keys()]})}function Pf(b){if($e!=null)return $e;let A=b.reason??"requested",j=b.note?.trim();return $e=U.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:j==null||j===""?Bi(A).detail:`${Bi(A).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),$e}async function $i(b={}){if(bo)return await Ur;bo=!0,await Pf(b),tt=!0,Ct&&clearTimeout(Ct),Ht&&clearInterval(Ht),sn&&clearInterval(sn),An&&clearInterval(An),Dn&&clearInterval(Dn),Ue&&clearTimeout(Ue),On&&clearInterval(On),an&&clearTimeout(an),Hr&&clearTimeout(Hr),Cn&&clearInterval(Cn),await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let A of Q)A.destroy();return await new Promise(A=>M.once("close",()=>A())),await v1(t.socketPath,{force:!0}),Fn(),await Ur}let Ni=await U.read().catch(()=>[]),Gi=new Map;for(let b of Ni){if(b.event==="worker-birth"){Gi.set(b.worker_id,b.ts);continue}let A=Jd(b.detail);Rf(b,{...Gi.get(b.worker_id)==null?{}:{startedAt:Gi.get(b.worker_id)},...A==null?{}:{refusal:A}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Gi.delete(b.worker_id)}ut=Gn(Ni.filter(b=>b.event==="worker-death"||b.event==="worker-budget-kill").map(b=>({worker_id:b.worker_id,ts:b.ts,outcome:b.event})),b=>b.ts,{now:o()}),lt=Oh(Ni,o());let Tx=zh(Ni),ql=await _u(Tx,F);for(let b of ql.alive){let A=Fy(b),j=A.unit==null||Qe(A.pid)?null:ae(A.unit);ue.set(A.worker_id,j!=null&&j>0?{...A,pid:j}:A),ct.add(A.worker_id)}for(let b of ql.dead)Ut("worker-death",b,"the Worker ended while no daemon was watching");let Px=Oy({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ue.values()],mainPid:ae,now:N});for(let b of Px)ue.set(b.worker_id,b),ct.add(b.worker_id),Ut("worker-birth",b,"adopted from an active unit with no birth on this lane");df(o());for(let b of ql.alive){if(b.log_path==null||et.has(b.worker_id))continue;let A=await Z(b.log_path).catch(()=>null);A==null||A.trim()===""||et.set(b.worker_id,{line:A,published_at:o(),source:"rehydrated"})}M.on("connection",b=>{Q.add(b),b.once("close",()=>Q.delete(b)),pt(),Rh(b,async(A,j)=>{pt();let H=await Ax(A);j(H),A.op==="shutdown"&&setImmediate(()=>void $i({reason:"requested"}).catch(()=>{}))})});async function Ax(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:$a,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Fi()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:Vb(Ii(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:lx(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:dx(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:ff(b.heartbeat)};if(b.op==="project-register"){let j=hf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=mf(b.project_label,{...b.session_project==null?{}:{sessionProject:b.session_project},...b.renew_within_ms==null?{}:{renewWithinMs:b.renew_within_ms},...b.launch==null?{}:{launch:b.launch}});return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-deregister"){let j=bf(b.project_label,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-reset")return{id:b.id,ok:!0,value:gf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await cx(b.command)};if(b.op==="worker-start"){let j=In("worker-start",b.session_project,b.spec.project_label);if(!j.permitted)return{id:b.id,ok:!1,error:j.reason};let H=b.spec.trunk==null?Li(b.spec):await wf(b.spec,{workspace_path:b.spec.workspace_path,trunk:b.spec.trunk});return await U.flush().catch(()=>{}),{id:b.id,ok:!0,value:{worker:H.worker,admission:H.admission,fork_sha:H.fork_sha,warnings:H.warnings}}}if(b.op==="shutdown"){let j=Bi("requested");return await Pf({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let A=b;return{id:A.id??D0(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:b.id??D0(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return pt(),_x(),wx(),Rx(),kx(),xx(),sx(),Ex(),vx(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:Ur,startWorker:Li,admit:gs,ceiling:()=>l,killWorkerOverBudget:_f,sampleMemoryBudgets:xf,renewLease:vf,pollRepositoryActivity:Gl,pollGithubBalance:cf,githubBalance:()=>Rr,pollQueueDiscovery:uf,queueDiscovery:()=>Ve,driveDemand:pf,demand:()=>_r,sweepWorkerLiveness:Hl,publishWorkerHeartbeat:ff,reattached:()=>[...ct].map(b=>ue.get(b)).filter(b=>b!=null),flushEvents:()=>U.flush(),trackWorker(b){ue.set(b.worker_id,b),Ut("worker-birth",b,null),pt()},releaseWorker(b){let A=ue.get(b),j=ue.delete(b);return ct.delete(b),et.delete(b),Rt.delete(b),A&&Ut("worker-death",A,"released by the daemon"),pt(),j},workerCount:()=>ue.size,registerProject:hf,renewProject:mf,resetProjectBirthBreaker:gf,deregisterProject:bf,registrations:()=>Fi().registrations??[],hostState:Fi,refreshRegisteredTrunks:Sf,statuslinePayload:Ii,evaluateIdle:Tf,observePublishedVersion:Ef,checkForReplacement:ji,stopReport:Bi,stop:$i}}function Mu(e){let t=e.socketPath,r=T1(e);return e.answers?{version:1,kind:"answering",socket_path:t,holder:r,reason:`a redskilled daemon answered on ${JSON.stringify(t)}`,repair:"nothing to repair"}:r!=null?{version:1,kind:"held-unresponsive",socket_path:t,holder:r,reason:`redskilled pid ${r.pid} is alive and has held ${JSON.stringify(t)} since ${r.acquired_at}${r.uptime_ms==null?"":` (up ${F0(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${Rn("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${Rn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Lu(e){return`${e.reason} ${e.repair}`}function T1(e){let t=e.lease;return t==null||e.holderAlive!==!0||t.socket_path!==e.socketPath?null:{pid:t.pid,socket_path:t.socket_path,acquired_at:t.acquired_at,renewed_at:t.renewed_at,uptime_ms:P1(t.acquired_at,e.now??new Date().toISOString())}}function P1(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function F0(e){let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h${String(n).padStart(2,"0")}m`:n>0?`${n}m${String(o).padStart(2,"0")}s`:`${o}s`}import{spawnSync as A1}from"node:child_process";import{existsSync as C1}from"node:fs";import{basename as I0,dirname as D1,join as M0}from"node:path";async function ni(e){let r=await Os(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==ga().uid||!Qe(r.pid))return{paths:e,joined:!1};let n=D1(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:M0(n,I0(e.lockPath)),leasePath:M0(n,I0(e.leasePath))}}}async function L0(e){let r=await Os(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Qe(r.pid)))throw new Jr(e.machineClaimPath,"held",r)}async function j0(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[oc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Do({env:n,machineIdHash:e.machineIdHash}))||!(o??C1(Uo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=A1("systemctl",["--user","start",Qt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Qt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await O1(e,t,r),!0}async function O1(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ni(e);if(await zt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Qt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}zr();var Bu=1e4,Jn=class extends Error{constructor(r,n,o){super(`redskilled daemon is unreachable on ${JSON.stringify(r)}, so no Worker was started: ${n instanceof Error?n.message:String(n)}${o!=null&&o.kind==="held-unresponsive"?`. ${Lu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},ju=class extends Jn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Va=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function za(e,t={}){let r=t.answers??await zt(e.socketPath),n=await qo(e.leasePath).catch(()=>{});return Mu({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Qe(n.pid)})}async function $u(e,t={}){let r=await ni(e);try{let n=await L1(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Jr||n instanceof Jn)throw n;let o=await za(r.paths).catch(()=>{});throw new Jn(r.paths.socketPath,n,o)}}async function L1(e,t){if(await I1(M1(e.socketPath),{recursive:!0,mode:448}),await zt(e.socketPath))return"already-running";await L0(e);let r=await B1(e,t);if(r!=null)return r;if(await j0(e,t,Bu))return"joined";let n=await Zg(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??j1});if(!n.acquired)return await B0(e,t,void 0,n),"joined";try{if(await zt(e.socketPath))return"already-running";let o=await N1(e,t);return await B0(e,t,o),"spawned"}finally{await eh(n)}}function j1(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
103
+ `)}async function B1(e,t){let r=await za(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Bu,o=Date.now()+n;for(;;){if(await zt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await za(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new ju(e.socketPath,s,new Error(`it did not answer a ping within ${n}ms, and no second daemon was spawned because pid ${s.holder?.pid??"unknown"} still holds this socket`))}async function N0(e,t,r={}){await $u(e,r);let n=(await ni(e)).paths,o;try{o=await Qs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:$0()})}catch(s){throw new Jn(n.socketPath,s,await za(n).catch(()=>{}))}if(!o.ok)throw new Va(o.error);return o.value}async function G0(e,t={},r={}){let n=(await ni(e)).paths;if(!await zt(n.socketPath))return nm(n.socketPath);let o;try{o=await Qs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:$0(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Jn(n.socketPath,a)}if(!o.ok)throw new Va(o.error);if(!rc(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await $1(n,s.pid,t.settleTimeoutMs??5e3);return i.complete?s:{...s,stopped:!1,detail:`${s.detail}; the daemon accepted the stop but did not finish its bounded drain by ${i.deadline}: ${i.pending.join(", ")}`}}async function $1(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await zt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await qo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Qe(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function W0(e,t={}){let r=await N0(e,{op:"host-state"},t);if(!ly(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function H0(e,t={},r){let n=await N0(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!Yc(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function U0(e,t=Ne,r={}){let n=await H0(e,r,{vitals:!0,logs:t.verbose,display:!0});return Vn(n,t)}async function q0(e,t={},r={}){let n=await H0(e,r,{vitals:!0,logs:!0,display:!0});return Go(n,{...Bt,...t})}async function B0(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Bu);for(;;){if(await zt(e.socketPath))return;if(r?.failure)throw new Error(`redskilled daemon failed to start from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source}): ${r.failure.message}`);if(Date.now()>=o){if(n!=null)throw new Error(`no redskilled daemon answered on ${JSON.stringify(e.socketPath)} within the ready window, and ${th(n)}`);let s=r?` from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source})${r.exit?`, which ${r.exit}`:""}`:"";throw new Error(`redskilled daemon did not start on ${JSON.stringify(e.socketPath)}${s}`)}await new Promise(s=>setTimeout(s,25))}}async function N1(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await uh({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=F1(n.command,s,{detached:!0,stdio:"ignore",env:{...t.env??process.env,REDSKILLED_DAEMON:"1"}});return i.on("error",a=>{o.failure=a}),i.on("exit",(a,l)=>{o.exit=l?`died on ${l}`:`exited with code ${a??-1}`}),i.unref(),o}zr();import{readFile as G1}from"node:fs/promises";import{homedir as W1,totalmem as H1}from"node:os";import{join as U1}from"node:path";var q1="REDSKILLED_IDLE_MS",K1=".red/config.yaml";async function V0(e=W1()){let t=U1(e,K1),r;try{r=await G1(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Nu(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${K0(n)}`),{})}try{let n=z1(r);return{...Ja(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...Ja(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...Ja(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...Ja(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Nu(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${K0(n)}`),{}}}function z0(e={}){let t=e.env??process.env,r=e.config??{},n=pa(t,e.totalMemoryBytes??H1(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=V1(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[q1],r.idleMs);if(o==null)return{ceiling:n,idleMs:Ao,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Nu(`redskilled: ${Q1(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Ao}ms instead.`),{ceiling:n,idleMs:Ao,idleMsSource:"derived-default"})}function V1(e,t,r){if(e!==void 0)return{value:e.trim(),source:"flag"};if(t!==void 0)return{value:t.trim(),source:"environment"};if(r!==void 0)return{value:r.trim(),source:"home-config"}}function Ja(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function z1(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=J1(o);if(s.trim()==="")continue;let i=s.match(/^ */)?.[0].length??0;if(i%2!==0||/\t/.test(s.slice(0,i)))throw new Error(`line ${n+1} has unsupported indentation`);let a=/^([A-Za-z_][A-Za-z0-9_-]*):(?:\s*(.*))?$/.exec(s.slice(i).trimEnd());if(a==null)throw new Error(`line ${n+1} is not a mapping entry`);let l=i/2;if(l>r.length)throw new Error(`line ${n+1} skips a mapping level`);r.splice(l);let d=a[1],c=a[2]??"";if(c===""){r.push(d);continue}t[[...r,d].join(".")]=Y1(c.trim())}return t}function J1(e){let t;for(let r=0;r<e.length;r+=1){let n=e[r];if(t==null&&(n==="'"||n==='"'))t=n;else if(t===n)t=void 0;else if(t==null&&n==="#"&&(r===0||/\s/.test(e[r-1])))return e.slice(0,r).trimEnd()}if(t!=null)throw new Error("unclosed quoted scalar");return e}function Y1(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Q1(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function K0(e){return e instanceof Error?e.message:String(e)}function Nu(e){process.stderr.write(`${e}
104
+ `)}import{chmod as rk,mkdir as ok,readFile as sk,stat as pF,writeFile as ik}from"node:fs/promises";import{homedir as Hu}from"node:os";import{dirname as ak,join as Ya}from"node:path";import{join as rF}from"node:path";import{existsSync as X1,readFileSync as g3}from"node:fs";import{dirname as Z1,join as eF}from"node:path";function J0(e,t){let r=e;for(let n=0;n<16;n++){let o=eF(r,t);if(X1(o))return o;let s=Z1(r);if(s===r)break;r=s}return null}function tF(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Ko(e,t){let r=[];for(let n of e.split(`
105
+ `)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return tF(d)}}var Y0=["local","tmp","host"],nF="local",oi="plugins.dev.workspace.target";var Gu=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function X0(e){let t=Ko(e,oi),r=iF(t??"").trim();return r===""?void 0:r}function Z0(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:nF};let r=Y0.find(n=>n===t.toLowerCase());if(r)return{kind:"preset",preset:r};if(t.startsWith("/")||t==="~"||t.startsWith("~/"))return{kind:"custom",parentDir:t};throw new Gu(`${oi}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${Y0.join(", ")}) or an absolute parent directory for Workers.`)}function ek(e,t){return e.kind==="preset"?e.preset==="host":sF(oF(e.parentDir,t),sr(t))}function oF(e,t){return e==="~"?Q0(t):e.startsWith("~/")?rF(t,e.slice(2)):Q0(e)}function sF(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function Q0(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function iF(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}zr();import{createHash as aF}from"node:crypto";import{hostname as lF}from"node:os";import{join as si}from"node:path";var Vo="redskilled.sock",dF="REDSKILLED_SESSION";function cF(e={}){let t=e.env??process.env,r=t[dF]?.trim();if(r)return r;let n=t.XDG_RUNTIME_DIR?.trim();return n||`uid:${e.uid??(typeof process.getuid=="function"?process.getuid():"nouid")}`}function uF(e={}){return tk(e.host??lF())}function cr(e={}){let t=cF(e),r=e.runtimeDir??sa({key:`redskilled:${t}`,socketFileName:Vo,env:e.env,uid:e.uid}),n=uF(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:tk(t),machineIdHash:n,runtimeDir:r,socketPath:si(r,Vo),lockPath:si(r,"redskilled.spawn.lock"),leasePath:si(r,"redskilled.lease.toon"),eventLanePath:si(sr(o),Kh),registrationIntentPath:si(sr(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Do({env:e.env,machineIdHash:n,platform:e.platform})}}function tk(e){return aF("sha256").update(e).digest("hex").slice(0,12)}var Wu=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${Rn("red-skills-redskilled",["provision"])}\` directly`,fF=`# Host-scoped redskilled policy. This file is never read from a repository.
106
106
  plugins:
107
107
  dev:
108
108
  redskilled:
@@ -110,15 +110,15 @@ plugins:
110
110
  # memory_ceiling: 8G
111
111
  # validation_ceiling: 2
112
112
  # idle_ms: 300000
113
- `;async function rk(e=ju()){let t=or(e),r=Ka(tk(t),"config.yaml"),n=await $u(t),o=!1,s=!1;n===void 0?(await X0(t,{recursive:!0,mode:Hr}),await Y0(t,Hr),o=!0):n!==Hr&&(await Y0(t,Hr),s=!0);let i=!1;try{await ek(r,i1,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:Hr,configPath:r,configCreated:i}}var nk={needed:!1,declaredBy:`no ${Qs} in view`};async function Bu(e={}){let t=e.homeDir??ju(),r=e.declaredTarget?.trim();if(r)return Q0(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return nk;let o=Ka(n,".red","config.yaml"),s=await Z0(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=K0(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:Q0(i,t,o)}function Q0(e,t,r){let n=`${Qs}: ${e} (${r})`;try{return{needed:z0(V0(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function ok(e){let t=[a1(e),l1(e),d1(e),c1(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 a1(e){let t=e.homeNeed??nk;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Lu}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??Hr;return r!==Hr?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${Hr.toString(8)}`,fix:`${Lu} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function l1(e){return vr(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 \`${mn("red-skills-redskilled",["provision"])}\``}}function d1(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:`${Lu} \u2014 it starts the daemon and waits for the socket`}}function c1(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 sk(e={}){let t=e.env??process.env,r=e.homeDir??ju(),n=e.paths??dr({env:t}),o=or(r),[s,i,a]=await Promise.all([$u(o),Vt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Bu({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:sn(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await p1(f1(e,t,r),t)}}var u1="redskilled.service";function ik(e){return Ka(e,"systemd","user",u1)}function ak(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
114
- `)}async function lk(e){let t=ik(e.configHome);return await $u(t)!==void 0?{path:t,status:"already-present"}:(await X0(tk(t),{recursive:!0}),await ek(t,e.unit,"utf8"),{path:t,status:"installed"})}async function p1(e,t){if(process.platform!=="linux")return"unsupported";try{return await Z0(ik(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function f1(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??Ka(r,".config")}async function $u(e){try{return(await s1(e)).mode&511}catch{return}}import{readdir as ck,rm as g1,stat as h1}from"node:fs/promises";import{dirname as m1,join as Nu}from"node:path";var b1=5*6e4,y1="redskilled.";function k1(e={}){let t=e.env??process.env,r=i=>m1(ta({key:"redskilled:reclaim-probe",socketFileName:No,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 uk(e={}){let t=e.roots??k1(e),r=e.graceMs??b1,n=e.now??Date.now,o=e.isPidAlive??Qe,s=e.answers??x1,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await ck(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await w1(Nu(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 w1(e,t){let r;try{r=(await ck(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:pk(i),removed:[]}}let n=r.filter(i=>i.startsWith(y1));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await R1(Nu(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 dk(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(No)&&await t.answers(Nu(e,No)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await _1(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 dk(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function dk(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await g1(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:pk(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function R1(e){try{return await Bo(e)}catch{return}}async function _1(e,t){try{return Math.max(0,t()-(await h1(e)).mtimeMs)}catch{return}}async function x1(e){try{return(await Us({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function pk(e){return e instanceof Error?e.message:String(e)}var E1="plugins.dev.statusline",v1="dev.statusline";function S1(e){let t=[],r=a=>{for(let l of[E1,v1]){let d=`${l}.${a}`,c=$o(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 T1={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 Va(e){let{values:t,positionals:r}=nn(e,T1),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 za(e={}){let t=e.configText==null?{config:{},warnings:[]}:S1(e.configText),r=e.flags??{};return{options:{...Ne,mode:r.mode??t.config.mode??Ne.mode,project:r.project!==void 0?r.project:e.project??Ne.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Ne.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Ne.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Ne.maxWidth,verbose:r.verbose??t.config.verbose??Ne.verbose},warnings:t.warnings}}var Ja,Ya=new Map,P1=256;function mk(){if(Ja!==void 0)return Ja;let e=Intl.Segmenter;return Ja=e?new e(void 0,{granularity:"grapheme"}):null,Ja}function Gu(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 fk(e){let t=Ya.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return Ya.size>=P1&&Ya.clear(),Ya.set(e,r),r}function gk(e){return e>=127462&&e<=127487}function hk(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function A1(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function C1(e,t,r){if(fk(t)||A1(t)||hk(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Gu(n)||fk(n)||hk(n)||gk(t)&&gk(n)||t===13&&n===10)}function O1(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&&!Gu(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function bk(e){let t=mk();if(!t)return O1(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 Wu(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(C1(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=mk();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&&!Gu(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var Go="\x1B",D1="\x07",B3=`${Go}\\`;function F1(e){return e>=64&&e<=126}function I1(e,t){for(let r=t;r<e.length;r++){if(e[r]===D1)return r+1;if(e[r]===Go&&e[r+1]==="\\")return r+2}return e.length}function Un(e,t){if(e[t]!==Go)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:Go,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!F1(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=I1(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 yk(e){return e<=31||e>=127&&e<=159}function Wo(e){let t="",r=0;for(;r<e.length;){if(e[r]===Go){let o=Un(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!yk(n)||e[r]===`
115
- `||e[r]===" ")&&(t+=e[r]),r++}return t}function Hu(e){let t="",r=0;for(;r<e.length;){if(e[r]===Go){let o=Un(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!yk(n)||e[r]===`
116
- `||e[r]===" ")&&(t+=e[r]),r++}return t}function kk(e){return Hu(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var Rk="\x1B",wk=/^[\x20-\x7e]*$/,Qa=new Map,M1=256;function L1(e){return Hu(e)}function xe(e){if(wk.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return _k(t);let r=L1(e);if(wk.test(r))return r.length;let n=0;for(let{segment:o}of bk(r))n+=j1(o);return n}function qn(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=Wu(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function j1(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?_k(t[0]):t.every(o=>o<=31||o>=127&&o<=159||xk(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(Ek)?2:1}function _k(e){let t=Qa.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||xk(e)?r=0:r=Ek(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,Qa.size>=M1&&Qa.clear(),Qa.set(e,r),r}function xk(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 Ek(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||B1(e)}function B1(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 ei(e,t,r){if(t<=0)return e.split(`
113
+ `;async function lk(e=Hu()){let t=sr(e),r=Ya(ak(t),"config.yaml"),n=await qu(t),o=!1,s=!1;n===void 0?(await ok(t,{recursive:!0,mode:Vr}),await rk(t,Vr),o=!0):n!==Vr&&(await rk(t,Vr),s=!0);let i=!1;try{await ik(r,fF,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:Vr,configPath:r,configCreated:i}}var dk={needed:!1,declaredBy:`no ${oi} in view`};async function Uu(e={}){let t=e.homeDir??Hu(),r=e.declaredTarget?.trim();if(r)return nk(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return dk;let o=Ya(n,".red","config.yaml"),s=await sk(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=X0(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:nk(i,t,o)}function nk(e,t,r){let n=`${oi}: ${e} (${r})`;try{return{needed:ek(Z0(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function ck(e){let t=[gF(e),hF(e),mF(e),bF(e)],r=t.filter(o=>o.verdict!=="ok");return{verdict:r.some(o=>o.verdict==="missing")?"missing":r.length>0?"degraded":"ok",rows:t,findings:r}}function gF(e){let t=e.homeNeed??dk;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Wu}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??Vr;return r!==Vr?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${Vr.toString(8)}`,fix:`${Wu} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function hF(e){return Pr(e.entry)?{check:"daemon-entry",verdict:"ok",evidence:`${e.entry.entry??e.entry.command} (resolved as ${e.entry.source})`,fix:""}:{check:"daemon-entry",verdict:"missing",evidence:`no published redskilled bundle; probed ${e.entry.searched.join(", ")||"nothing"}`,fix:`install or warm the RedSkills bundle for this host, then re-run \`${Rn("red-skills-redskilled",["provision"])}\``}}function mF(e){return e.reachable?{check:"reach",verdict:"ok",evidence:`daemon answered on ${e.socketPath}`,fix:""}:{check:"reach",verdict:"missing",evidence:`no daemon answered on ${e.socketPath}`,fix:`${Wu} \u2014 it starts the daemon and waits for the socket`}}function bF(e){return{check:"supervisor-unit",verdict:"ok",evidence:e.supervisorUnit==="installed"?"redskilled.service is installed (optional supervision, Restart=always)":e.supervisorUnit==="unsupported"?"optional: this host has no systemd --user session; auto-spawn is the only start path":"optional: not installed; auto-spawn already starts the daemon on first use",fix:""}}async function uk(e={}){let t=e.env??process.env,r=e.homeDir??Hu(),n=e.paths??cr({env:t}),o=sr(r),[s,i,a]=await Promise.all([qu(o),zt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Uu({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:un(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await kF(wF(e,t,r),t)}}var yF="redskilled.service";function pk(e){return Ya(e,"systemd","user",yF)}function fk(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
114
+ `)}async function gk(e){let t=pk(e.configHome);return await qu(t)!==void 0?{path:t,status:"already-present"}:(await ok(ak(t),{recursive:!0}),await ik(t,e.unit,"utf8"),{path:t,status:"installed"})}async function kF(e,t){if(process.platform!=="linux")return"unsupported";try{return await sk(pk(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function wF(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??Ya(r,".config")}async function qu(e){try{return(await pF(e)).mode&511}catch{return}}import{readdir as mk,rm as RF,stat as _F}from"node:fs/promises";import{dirname as xF,join as Ku}from"node:path";var EF=5*6e4,vF="redskilled.";function SF(e={}){let t=e.env??process.env,r=i=>xF(sa({key:"redskilled:reclaim-probe",socketFileName:Vo,env:i,...e.uid===void 0?{}:{uid:e.uid}})),{XDG_RUNTIME_DIR:n,...o}=t,s=[r(t),r(o)];return[...new Set(s)]}async function bk(e={}){let t=e.roots??SF(e),r=e.graceMs??EF,n=e.now??Date.now,o=e.isPidAlive??Qe,s=e.answers??CF,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await mk(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await TF(Ku(l,c),{graceMs:r,now:n,pidAlive:o,answers:s,dryRun:i}))}return{roots:t,scanned:a.length,reclaimed:a.filter(l=>l.verdict==="reclaimed").length,dryRun:i,entries:a}}async function TF(e,t){let r;try{r=(await mk(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:yk(i),removed:[]}}let n=r.filter(i=>i.startsWith(vF));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await PF(Ku(e,"redskilled.lease.toon"));if(o!==void 0)return await t.pidAlive(o.pid)?{dir:e,verdict:"live",reason:`lease pid ${o.pid} is alive`,removed:[]}:await hk(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(Vo)&&await t.answers(Ku(e,Vo)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await AF(e,t.now);return s!==void 0&&s<t.graceMs?{dir:e,verdict:"young",reason:`no lease, modified ${Math.round(s/1e3)}s ago`,removed:[]}:await hk(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function hk(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await RF(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:yk(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function PF(e){try{return await qo(e)}catch{return}}async function AF(e,t){try{return Math.max(0,t()-(await _F(e)).mtimeMs)}catch{return}}async function CF(e){try{return(await Qs({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function yk(e){return e instanceof Error?e.message:String(e)}var DF="plugins.dev.statusline",OF="dev.statusline";function FF(e){let t=[],r=a=>{for(let l of[DF,OF]){let d=`${l}.${a}`,c=Ko(e,d)?.trim();if(c!=null&&c!=="")return{key:d,value:c}}},n=r("mode"),o={};n!=null&&(n.value==="local"||n.value==="global"?o.mode=n.value:t.push({...n,reason:"expected `local` or `global`"}));let s=[{leaf:"max_workers",assign:a=>{o.maxWorkers=a}},{leaf:"max_projects",assign:a=>{o.maxProjects=a}},{leaf:"max_width",assign:a=>{o.maxWidth=a}}];for(let a of s){let l=r(a.leaf);if(l==null)continue;let d=Number(l.value);Number.isInteger(d)&&d>=0?a.assign(d):t.push({...l,reason:"expected a whole number of zero or more"})}let i=r("verbose");return i!=null&&(i.value==="true"||i.value==="false"?o.verbose=i.value==="true":t.push({...i,reason:"expected `true` or `false`"})),{config:o,warnings:t}}var IF={mode:{kind:"value",coerce:e=>e},verbose:{kind:"boolean"},project:{kind:"value",coerce:e=>e},"max-workers":{kind:"value",coerce:e=>e},"max-projects":{kind:"value",coerce:e=>e},"max-width":{kind:"value",coerce:e=>e}};function Qa(e){let{values:t,positionals:r}=dn(e,IF),n=[],o={},s=t.mode??r.find(a=>a==="global"||a==="local");s!=null&&(s==="local"||s==="global"?o.mode=s:n.push({key:"--mode",value:s,reason:"expected `local` or `global`"})),t.project!=null&&(o.project=t.project),t.verbose!==void 0&&(o.verbose=t.verbose===!0);let i=[{flag:"max-workers",assign:a=>{o.maxWorkers=a}},{flag:"max-projects",assign:a=>{o.maxProjects=a}},{flag:"max-width",assign:a=>{o.maxWidth=a}}];for(let a of i){let l=t[a.flag];if(l==null)continue;let d=Number(l);Number.isInteger(d)&&d>=0?a.assign(d):n.push({key:`--${a.flag}`,value:l,reason:"expected a whole number of zero or more"})}return{flags:o,warnings:n}}function Xa(e={}){let t=e.configText==null?{config:{},warnings:[]}:FF(e.configText),r=e.flags??{};return{options:{...Ne,mode:r.mode??t.config.mode??Ne.mode,project:r.project!==void 0?r.project:e.project??Ne.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Ne.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Ne.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Ne.maxWidth,verbose:r.verbose??t.config.verbose??Ne.verbose},warnings:t.warnings}}var Za,el=new Map,MF=256;function _k(){if(Za!==void 0)return Za;let e=Intl.Segmenter;return Za=e?new e(void 0,{granularity:"grapheme"}):null,Za}function Vu(e){return e===8205||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65024&&e<=65039||e>=65056&&e<=65071||e>=127995&&e<=127999||e>=917536&&e<=917631||e>=917760&&e<=917999}function kk(e){let t=el.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return el.size>=MF&&el.clear(),el.set(e,r),r}function wk(e){return e>=127462&&e<=127487}function Rk(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function LF(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function jF(e,t,r){if(kk(t)||LF(t)||Rk(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Vu(n)||kk(n)||Rk(n)||wk(t)&&wk(n)||t===13&&n===10)}function BF(e){let t=[],r=0;for(;r<e.length;){let n=r,o=!1,s=e.codePointAt(r);for(r+=s>65535?2:1;r<e.length;){let i=e.codePointAt(r);if(!o&&!Vu(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function xk(e){let t=_k();if(!t)return BF(e);let r=[...t.segment(e)];return r.map((n,o)=>({segment:n.segment,index:n.index,end:r[o+1]?.index??e.length}))}function zu(e,t){if(t<0||t>=e.length)return null;let r=e.codePointAt(t);if(r===void 0)return null;let n=t+(r>65535?2:1);if(jF(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=_k();if(o){let a=o.segment(e).containing(t);return a?{segment:a.segment,index:a.index,end:a.index+a.segment.length}:null}let s=n,i=!1;for(;s<e.length;){let a=e.codePointAt(s);if(!i&&!Vu(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var zo="\x1B",$F="\x07",Z3=`${zo}\\`;function NF(e){return e>=64&&e<=126}function GF(e,t){for(let r=t;r<e.length;r++){if(e[r]===$F)return r+1;if(e[r]===zo&&e[r+1]==="\\")return r+2}return e.length}function Yn(e,t){if(e[t]!==zo)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:zo,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!NF(e.charCodeAt(n));)n++;if(n>=e.length)return{end:e.length,value:e.slice(t),kind:"control"};let o=e.slice(t,n+1),s=/^\x1b\[[0-9:;]*m$/.test(o)?"sgr":"control";return{end:n+1,value:o,kind:s}}if(r==="]"||r==="P"||r==="X"||r==="^"||r==="_"){let n=GF(e,t+2);return{end:n,value:e.slice(t,n),kind:"control"}}return{end:Math.min(e.length,t+2),value:e.slice(t,t+2),kind:"control"}}function Ek(e){return e<=31||e>=127&&e<=159}function Jo(e){let t="",r=0;for(;r<e.length;){if(e[r]===zo){let o=Yn(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!Ek(n)||e[r]===`
115
+ `||e[r]===" ")&&(t+=e[r]),r++}return t}function Ju(e){let t="",r=0;for(;r<e.length;){if(e[r]===zo){let o=Yn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!Ek(n)||e[r]===`
116
+ `||e[r]===" ")&&(t+=e[r]),r++}return t}function vk(e){return Ju(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var Tk="\x1B",Sk=/^[\x20-\x7e]*$/,tl=new Map,WF=256;function HF(e){return Ju(e)}function be(e){if(Sk.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return Pk(t);let r=HF(e);if(Sk.test(r))return r.length;let n=0;for(let{segment:o}of xk(r))n+=UF(o);return n}function Qn(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=zu(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function UF(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?Pk(t[0]):t.every(o=>o<=31||o>=127&&o<=159||Ak(o))?0:t.filter(o=>o>=127462&&o<=127487).length>=2||t.includes(65039)||t.includes(8419)||new RegExp("\\p{Extended_Pictographic}","u").test(e)||t.some(Ck)?2:1}function Pk(e){let t=tl.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||Ak(e)?r=0:r=Ck(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,tl.size>=WF&&tl.clear(),tl.set(e,r),r}function Ak(e){return e>=65024&&e<=65039||e>=917760&&e<=917999||e===8203||e===8204||e===8205||e===8288||e===65279||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=65056&&e<=65071||e===173}function Ck(e){return e>=19968&&e<=40959||e>=13312&&e<=19903||e>=131072&&e<=173791||e>=173824&&e<=183983||e>=65280&&e<=65376||e>=65504&&e<=65510||e>=12352&&e<=12543||e>=44032&&e<=55203||e>=127744&&e<=129535||e>=129536&&e<=129791||qF(e)}function qF(e){let t=[9986,9989,9992,9993,9994,9995,9996,9997,9999,10002,10004,10006,10024,10035,10036,10052,10055,10060,10062,10067,10068,10069,10071,10083,10084,10133,10134,10135,10145,10160],r=[9728,9729,9730,9731,9732,9742,9745,9748,9749,9752,9757,9760,9762,9763,9766,9770,9774,9775,9784,9785,9786,9792,9794,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9823,9824,9827,9829,9830,9832,9851,9854,9855,9874,9875,9876,9877,9878,9879,9881,9883,9884,9889,9898,9899,9904,9905,9917,9918,9924,9925,9934,9940,9962,9970,9971,9973,9978,9981];return t.includes(e)||r.includes(e)}function Xn(e,t,r){if(t<=0)return e.split(`
117
117
  `);let n=[];for(let o of e.split(`
118
- `)){if(r==="truncate"||r==="truncate-end"){n.push(Zs(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Zs(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Zs(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...$1(o,t))}return n}function $1(e,t){if(xe(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(xe(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),xe(o)<=t){n=o;continue}let i=N1(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function N1(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===Rk){let l=Un(e,s);if(l){n+=l.value,s=l.end;continue}}let i=qn(e,s);if(!i)break;let a=xe(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 Zs(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(xe(e)<=t)return e;if(t<xe(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=xe(l);return n==="start"?G1(e,t,l,d,i):n==="middle"?H1(e,t,l,d,i):W1(e,t,l,d,i)}function G1(e,t,r,n,o){let s=t-n,i=Ho(e,xe(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function W1(e,t,r,n,o){let s=t-n,i=Ho(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 H1(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Ho(e,0,i),d=Ho(e,xe(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 Ho(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]===Rk){let f=Un(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=Wu(e,l);if(!c){l++;continue}let u=xe(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function ti(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function Uu(e,t,r){if(t===void 0)return dt(e,117);if(t===null)return dt(e,110);switch(typeof t){case"boolean":return dt(dt(e,98),t?49:48);case"number":return ti(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return ti(dt(e,105),t.toString());case"string":return ti(dt(e,115),t);case"function":return r.ignoreFunctions===!1?dt(e,102):e;case"object":{if(Array.isArray(t)){let i=dt(e,91);for(let a of t)i=Uu(i,a,r),i=dt(i,124);return dt(i,93)}let n=dt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=ti(dt(n,107),i),n=dt(n,58),n=Uu(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return ti(dt(e,63),String(t))}}function Dt(e,t={}){return Uu(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as U1}from"node:async_hooks";var Cr=Symbol("tuiuiu.runtime-resource-dispose"),vk=new U1,Xa=new Set,q1=1,Uo={id:0,resources:new Map};function Sk(){let e={id:q1++,resources:new Map};return Xa.add(e),e}function K1(e){Xa.delete(e)}function Tk(e){if(e!==null&&typeof e=="object"&&Cr in e)try{e[Cr]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function V1(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)Tk(r)}function qo(e){K1(e),V1(e)}function qe(e,t){return vk.run(e,t)}function Jr(e,t){return(...r)=>qe(e,()=>t(...r))}function qu(){return vk.getStore()??null}function Ge(e){if(e)return e;let t=qu();return t||(Xa.size===1?Xa.values().next().value??Uo:Uo)}function Or(){return Uo}function De(e,t,r){let n=Ge(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function Ft(e,t){return Uo.resources.has(e)||Uo.resources.set(e,t()),Uo.resources.get(e)}function Za(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),Tk(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function Ku(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function z1(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 Vu=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Ku();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=Ku()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&z1(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Dt({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=Ku()}},J1=Symbol("tuiuiu.dirty-registry");function Dr(e){return De(J1,()=>new Vu,e)}function Pk(e){Dr().beginFrame(e)}function Ak(e,t){Dr().registerNode(e,t)}function bn(e,t=Pe.CONTENT){Dr().markDirty(e,t)}function Ck(e){Dr().markLayoutClean(e)}function ri(e){Dr().noteReuse(e)}function Kn(e){Dr().noteFresh(e)}function el(e){return Dr().canReuseSubtree(e)}function Ok(){return Dr().getDiagnostics()}function ni(){Dr().clearGlobalDirty()}function Ko(e){Dr().markClean(e.node);for(let r of e.children)Ko(r)}var Dk=new WeakMap;function yt(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 tl(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 St=e=>e==="auto"?0:yt(e,"margin"),Y1=new Set(["layoutRef","__scrollQuery"]),Q1=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"]),X1=new Set(["children","wrap"]);function Z1(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function Vo(e){let t=e.props??{},r=e.type==="text"?X1:Q1,n={};for(let o of r)o in t&&(n[o]=t[o]);return Dt(n,{ignoreKeys:Y1})}function eI(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 tI(e,t){if(!el(e)){Kn("layout");return}let r=Dk.get(e);if(!r){Kn("layout");return}if(r.ctxKey!==t){bn(e,Pe.LAYOUT),Kn("layout");return}let n=Vo(e);if(r.propsKey!==n||!eI(e,r.childRefs)){bn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Kn("layout");return}return ri("layout"),r.layout}function oi(e,t,r,n){Dk.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),Ck(e)}function ht(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function Fk(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function It(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function Ik(e,t=0,r=0){let n=t+e.x,o=r+e.y;It(e.node,{...e,x:n,y:o});let s=e.node.props,i=yt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=yt(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)Ik(u,d,c)}function Mk(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)),Pk(e);let n=Fr(e,{x:0,y:0,width:t,height:r},null);return Ik(n),n}function rI(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=ei(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>xe(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 nI(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 oI(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 Fr(e,t,r){Ak(e,r);let n=Z1(t),o=tI(e,n);if(o)return It(e,o),o;let s;if(e.type==="text")return s=rI(e,t),oi(e,n,Vo(e),s),s;if(e.type==="spacer")return s=nI(e,t),oi(e,n,Vo(e),s),s;if(e.type==="newline")return s=oI(e,t),oi(e,n,Vo(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:[]},It(e,s),oi(e,n,Vo(e),s),s;let a=yt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=yt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=yt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=yt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=St(i.marginTop??i.marginY??i.margin),p=St(i.marginBottom??i.marginY??i.margin),g=St(i.marginLeft??i.marginX??i.margin),f=St(i.marginRight??i.marginX??i.margin),k=i.borderStyle&&i.borderStyle!=="none"?1:0,b=si(i.width,t.width),v=si(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?b:t.width)-d-c-k*2),L=Math.max(0,($?v:t.height)-a-l-k*2),W=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:L,K=[],H=i.flexDirection??"column",I=H==="row"||H==="row-reverse",G=H==="row-reverse"||H==="column-reverse",V=yt(I?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),ge=[],fe=[];if(e.children.length>0){for(let oe of e.children)oe.props.position==="absolute"?ge.push(oe):fe.push(oe);let ce=G?[...fe].reverse():fe;I?K.push(...Lk(ce,D,W,V,i,$,e)):K.push(...iI(ce,D,W,V,i,e))}let de=0,te=0;if(I)for(let ce of K){let oe=ce.node.props,_e=St(oe.marginRight??oe.marginX??oe.margin),Fe=St(oe.marginBottom??oe.marginY??oe.margin);de=Math.max(de,ce.x+ce.width+_e),te=Math.max(te,ce.y+ce.height+Fe)}else for(let ce of K){let oe=ce.node.props,_e=St(oe.marginBottom??oe.marginY??oe.margin);de=Math.max(de,ce.width),te=Math.max(te,ce.y+ce.height+_e)}let Oe=tl(i.flexGrow,"flexGrow")>0||i.width==="fill",ve=de+d+c+k*2,ke=T?b:Oe?t.width:ve,J=$?v:te+a+l+k*2,ie=yt(i.minWidth,"minWidth"),Re=yt(i.minHeight,"minHeight");if(ke=Math.max(ke,ie),J=Math.max(J,Re),i.maxWidth!==void 0&&(ke=Math.min(ke,yt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,yt(i.maxHeight,"maxHeight"))),I&&i.alignItems==="stretch"){let ce=Math.max(0,J-a-l-k*2);for(let oe=0;oe<K.length;oe++){let _e=K[oe],Fe=_e.node.props;Fe.height===void 0&&(K[oe]=Fk(_e,Math.max(_e.height,ce),Fe),It(_e.node,K[oe]))}}let Ae=t.x+g,Ee=t.y+u,we=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 ce of ge){let oe=ce.props,_e=Fr(ce,{x:0,y:0,width:D,height:W},e),Fe=Ae+d+k,at=Ee+a+k;oe.left!==void 0?Fe=Ae+d+k+oe.left:oe.right!==void 0&&(Fe=Ae+we-c-k-_e.width-oe.right),oe.top!==void 0?at=Ee+a+k+oe.top:oe.bottom!==void 0&&(at=Ee+Se-l-k-_e.height-oe.bottom);let $t=ht(_e,{x:Fe,y:at});It(ce,$t),K.push($t)}return s={x:Ae,y:Ee,width:we,height:Se,node:e,children:K},It(e,s),oi(e,n,Vo(e),s),s}function Lk(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return sI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let H of e){let I=H.props,G=I.flexGrow;G===void 0?G=I.width==="fill"||H.type==="spacer"?1:0:G=tl(G,"flexGrow");let V=yt(I.minWidth,"minWidth"),ge=I.flexBasis==="content"?Fr(H,{x:0,y:0,width:t,height:r},i).width:I.flexBasis===void 0||I.flexBasis==="auto"?V:si(I.flexBasis,t),fe=I.flexShrink===void 0?1:tl(I.flexShrink,"flexShrink"),de=St(I.marginLeft??I.marginX??I.margin),te=St(I.marginRight??I.marginX??I.margin);if(G>0)c+=G,d+=ge+de+te,u.push({node:H,flex:G,minWidth:V,basis:ge,shrink:fe,marginLeft:de,marginRight:te});else{let Oe=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?si(I.width,t)+de+te:t,ve=Fr(H,{x:0,y:0,width:Oe,height:r},i);d+=ve.width+de+te,u.push({node:H,flex:0,minWidth:V,basis:ve.width,shrink:fe,marginLeft:de,marginRight:te,layout:ve,measuredCtxWidth:Oe})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let H=u.map(()=>0),I=Math.ceil(p);for(;I>0;){let G=u.map((te,me)=>{let Oe=Math.max(0,Math.floor(te.basis-te.minWidth)),ve=Math.max(0,Oe-H[me]);return{index:me,capacity:ve,maxReduction:Oe,weight:te.shrink*te.basis}}).filter(te=>te.capacity>0&&te.weight>0),V=G.reduce((te,me)=>te+me.weight,0);if(V<=0)break;let ge=G.map(te=>{let me=I*te.weight/V,Oe=Math.min(te.capacity,Math.floor(me));return{...te,exact:me,whole:Oe,fraction:me-Math.floor(me)}}),fe=0;for(let te of ge)te.whole>0&&(H[te.index]+=te.whole,fe+=te.whole);if(I-=fe,I<=0)break;ge.sort((te,me)=>me.fraction-te.fraction||me.weight-te.weight||me.capacity-te.capacity);let de=!1;for(let te of ge){if(I<=0)break;H[te.index]<te.maxReduction&&(H[te.index]+=1,I-=1,de=!0)}if(!de)break}if(H.some(G=>G>0)){for(let G=0;G<u.length;G++){let V=u[G];V.targetWidth=Math.max(V.minWidth,V.basis-H[G])}d=u.reduce((G,V)=>G+(V.targetWidth??V.basis)+V.marginLeft+V.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,k=0,b=o.justifyContent??"flex-start",v=d+(c>0?g:0),T=t-v,$=0,D=0;c===0&&u.length>0&&(b==="space-between"&&u.length>1?$=T/(u.length-1):b==="space-around"?(D=T/(u.length*2),k=D):b==="space-evenly"?($=T/(u.length+1),k=$):b==="flex-end"?k=T:b==="center"&&(k=T/2));let L=0,W=[];for(let H=0;H<u.length;H++){let I=u[H],V=(I.targetWidth??(I.flex>0?I.basis+Math.floor(f*I.flex):I.basis))+I.marginLeft+I.marginRight,ge=I.layout&&I.measuredCtxWidth===V?ht(I.layout,{x:I.layout.x+k}):Fr(I.node,{x:k,y:0,width:V,height:r},i),fe=I.node.props;L=Math.max(L,ge.height),W.push({layout:ge,style:fe}),k+=I.marginLeft+ge.width+I.marginRight,b==="space-between"&&H<u.length-1?k+=$:b==="space-around"?k+=D*2:b==="space-evenly"?k+=$:k+=n}let K=s?r:L;for(let H of W){let{style:I}=H,{layout:G}=H,V=I.alignSelf,ge=V!=="auto"&&V?V:o.alignItems??"flex-start",fe=G.y,de=G.height;ge==="stretch"?(I.height===void 0&&(de=Math.max(G.height,K)),fe=0):ge==="center"?fe=Math.floor((K-G.height)/2):ge==="flex-end"?fe=K-G.height:ge==="baseline"&&(fe=0),G=Fk(G,de,I),G=ht(G,{y:fe}),It(G.node,G),a.push(G)}return a}function sI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let L=D.props,W=St(L.marginLeft??L.marginX??L.margin),K=St(L.marginRight??L.marginX??L.margin),H=Fr(D,{x:0,y:0,width:t,height:r},i),G=(L.flexBasis===void 0||L.flexBasis==="auto"||L.flexBasis==="content"?H.width:si(L.flexBasis,t))+W+K,V=c+(d.length>0?n:0)+G;d.length>0&&V>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+G}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=yt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let L=Lk(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),W=L.reduce((K,H)=>Math.max(K,H.y+H.height),0);return{layouts:L,height:W}}),g=p.reduce((D,L)=>D+L.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,k=o.alignContent??"flex-start",b=0,v=0;k==="flex-end"?b=f:k==="center"?b=Math.floor(f/2):k==="space-between"&&p.length>1?v=f/(p.length-1):k==="space-around"&&p.length>0?(v=f/p.length,b=Math.floor(v/2)):k==="stretch"&&p.length>0&&(v=f/p.length);let T=[],$=b;for(let D of p){for(let L of D.layouts){let W=ht(L,{y:L.y+Math.floor($)});It(W.node,W),T.push(W)}$+=D.height+u+v}return T}function iI(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,k=[];for(let b of e){let v=b.props,T=St(v.marginTop??v.marginY??v.margin),$=St(v.marginBottom??v.marginY??v.margin),D=v.flexGrow;D===void 0?D=v.height==="fill"||b.type==="spacer"?1:0:D=tl(D,"flexGrow");let L=yt(v.minHeight,"minHeight"),W=v.maxHeight===void 0?void 0:yt(v.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,k.push({node:b,flex:D,minHeight:L,maxHeight:W,marginTop:T,marginBottom:$});else{let K=Fr(b,{x:0,y:0,width:t,height:r},s);g+=K.height+T+$,k.push({node:b,flex:0,minHeight:L,maxHeight:W,marginTop:T,marginBottom:$,layout:K})}}if(g+=n*Math.max(0,e.length-1),f>0){let v=Math.max(0,r-g)/f,T=0;for(let $=0;$<k.length;$++){let D=k[$],W=D.node.props.alignSelf,K=W!=="auto"&&W?W:o.alignItems??"flex-start",H=D.layout;if(D.flex>0){let V=Math.floor(v*D.flex);V=Math.max(D.minHeight,V),D.maxHeight!==void 0&&(V=Math.min(D.maxHeight,V)),H=Fr(D.node,{x:0,y:T,width:t,height:V},s),H=ht(H,{height:V})}H||(H=Fr(D.node,{x:0,y:T,width:t,height:r},s));let I=H.x,G=H.width;K==="center"?I=Math.floor((t-H.width)/2):K==="flex-end"?I=t-H.width:K==="stretch"&&(G=t),H=ht(H,{x:I,y:T,width:G}),It(H.node,H),i.push(H),T+=D.marginTop+H.height+D.marginBottom,$<k.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],k=f.props,b=St(k.marginTop??k.marginY??k.margin),v=St(k.marginBottom??k.marginY??k.margin),T=Fr(f,{x:0,y:l,width:t,height:r-l},s),$=k.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",L=T.x,W=T.width;D==="center"?L=Math.floor((t-T.width)/2):D==="flex-end"?L=t-T.width:D==="stretch"&&(W=t);let K=ht(T,{x:L,width:W});It(K.node,K),i.push(K),l+=b+T.height+v,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 k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*k)}),It(i[k].node,i[k]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*(2*k+1))}),It(i[k].node,i[k]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let k=0;k<i.length;k++)i[k]=ht(i[k],{y:i[k].y+Math.floor(f*(k+1))}),It(i[k].node,i[k]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),It(i[f].node,i[f])}return i}function si(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 jk={background:0,normal:1,modal:2,critical:3};var Bk=new Set;function Nk(e,t){process.env.NODE_ENV==="production"||Bk.has(e)||(Bk.add(e),console.warn(`[tuiuiu] ${t}`))}var aI=Symbol("tuiuiu.hook-runtime-state"),zu=new WeakMap;function lI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function Je(e){return De(aI,lI,e)}function Ju(e){return zu.get(e)??null}function Gk(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function Wk(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Nk("hook-count-changed",`Hook count changed between renders (${e.lastMaxHookIndex} \u2192 ${t}). A component with internal hooks (Select, Tabs, Menu, ChatList, ScrollList, etc.) was conditionally added or removed from the render tree. FIX: Keep hook-bearing components always rendered \u2014 use height: 0, isActive: false, or display: "none" to hide them instead of removing them with ternaries or When().`),t<e.lastMaxHookIndex)for(let r=t;r<e.lastMaxHookIndex;r++){qk(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(ii(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function Hk(){return Je().isRendering}function Uk(){return Je().renderPhaseMode}function cr(e){let t=Je();t.isRendering||Nk("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 ur(e,t){Je().hookState.state[e]=t}function Ir(e){return Je().hookState.state[e]}function Qt(){return Je().hookIndex-1}function Vn(e,t=Qt()){let r=Je(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function qk(e,t){let r=t.hookCleanups.get(e);if(r){t.hookCleanups.delete(e);for(let n of[...r].reverse())try{n()}catch(o){console.error("[tuiuiu] Error during hook cleanup:",o)}}}function rl(e){let t=Ge(e),r=Je(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))qk(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function Yr(e){return Je(e).appContext}function Yu(e,t){let r=Ge(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&zu.delete(o),e&&zu.set(e,r)}function nl(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:jk[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 ii(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Kk(e,t,r){let o=[...Je().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function Vk(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Qu(e,t){Je(t).focusManager=e}function zk(e){let t=Je(),r=cI(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function Jk(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var dI=300,$k=2;function cI(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<dI&&Math.abs(t.x-n.x)<=$k&&Math.abs(t.y-n.y)<=$k?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function Yk(e,t){let r=[...Je().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function Qk(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var ai=[],sl=!1,Xu=!1,ol=0,li=null,di=null;function Xk(){if(!Xu){Xu=!0;for(let e=ai.length-1;e>=0;e--)try{ai[e]()}catch{}Xu=!1}}function Qr(e){return ai.push(e),()=>{let t=ai.indexOf(e);t!==-1&&ai.splice(t,1)}}function Zk(){ol++,sl||(sl=!0,li=()=>{Xk()},di=()=>{Xk()},process.on("exit",li),process.on("uncaughtExceptionMonitor",di));let e=!1;return()=>{e||(e=!0,ol=Math.max(0,ol-1),ol===0&&uI())}}function uI(){sl&&(li&&process.off("exit",li),di&&process.off("uncaughtExceptionMonitor",di),li=null,di=null,sl=!1)}var ew=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,tw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,rw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,nw=/^\x1b\[(\d+);(\d+);(\d+)M/;function pr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function il(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 ow(e){let t=ew.exec(e);if(t){let s=pr(t[1]),i=pr(t[2]),a=pr(t[3]),l=pr(t[4]),d=pr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=il(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=tw.exec(e);if(r){let s=pr(r[1]),i=pr(r[2]),a=pr(r[3]);if(s===null||i===null||a===null)return null;let l=il(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=rw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=il(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=nw.exec(e);if(o){let s=pr(o[1]),i=pr(o[2]),a=pr(o[3]);if(s===null||i===null||a===null)return null;let l=il(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function sw(e){return ew.test(e)||tw.test(e)||rw.test(e)||nw.test(e)}var pI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",iw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",fI=Symbol("tuiuiu.mouse-runtime-state");function ci(e){return De(fI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function Zu(e){return Yr(e)?.stdout??process.stdout}function ep(e){return"isTTY"in e&&!!e.isTTY}function ui(e){return ow(e)}function tp(e){return sw(e)}function zo(e){let t=Ge(e),r=ci(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,gI(t);let n=Zu(t);r.outputStream=n,ep(n)&&n.write(pI)}}function zn(e){let t=Ge(e),r=ci(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Zu(t);ep(n)&&n.write(iw),r.outputStream=null}}function al(e){let t=Ge(e),r=ci(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Zu(t);ep(n)&&n.write(iw),r.outputStream=null}}function gI(e){let t=ci(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=Qr(Jr(e,()=>al(e))))}function aw(e){let t=ci(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as bI}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},hI={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 mI(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 lw(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 ll(e=process.env){let t=mI(e),r=hI[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 gw=Symbol("tuiuiu.graphics-runtime-state");function hw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Ft(gw,()=>hw(Or())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function sp(){let e=Ge();return De(gw,()=>hw(e),e)}var dw={width:10,height:20};function dl(e){return{width:Math.max(1,Math.round(e?.width??dw.width)),height:Math.max(1,Math.round(e?.height??dw.height))}}function yI(){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 mw(){return yI()?"halfblock":"braille"}function Jo(e){return e==="none"?mw():e}function bw(e){let t=Jo(e);return t==="halfblock"||t==="braille"}function yw(e){let t=Jo(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function cw(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 kw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&_I(e)?e:null}function ww(){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 Rw(){return ll(process.env).knownCaps.preferredGraphics||null}function _w(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function kI(){let e=kw();if(e)return e;let t=ww();if(t)return t;let r=Rw();return r||_w()}function wI(e){return kw()===e||ww()===e?"env":Rw()===e?"profile":_w()===e?"env":"fallback"}function Yo(){let e=sp();if(e.manualOverride)return cw(e.manualOverride,"manual",dl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=RI();return cw(t,wI(t),dl())}function RI(){let e=sp();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=kI()??mw()),e.detectedProtocol)}function _I(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function xw(){let e=sp();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:dl(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 xI(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 Ew(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function fi(e){return Ew(e)?e:ul(e)}function uw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function ul(e,t={}){let r=dl(t.cellSize??Yo().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:xI(e)}}function gi(e,t={}){let r=Ew(e)?e:ul(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=uw(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=uw(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)),k=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=k*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 Qo={transmit(e,t={}){let r=fi(e),n=gi(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=AI(r),l=vw(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\\"}},EI={display(e,t={}){let{pixels:r}=fi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=vw(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`}},vI={encode(e,t={}){let r=fi(e),n=gi(r,t),o=t.width!==void 0||t.height!==void 0?Sw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=CI(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),k=Math.round(p/255*100),b=Math.round(g/255*100);d+=`#${c};2;${f};${k};${b}`}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 k=0;for(let b=0;b<6;b++){let v=c+b;if(v>=i)continue;let T=(v*s+f)*4,$=a[T],D=a[T+1],L=a[T+2];OI([$,D,L],l)===u&&(k|=1<<b,p=!0)}g+=String.fromCharCode(63+k)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function pw(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 rp(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 fw={render(e,t={}){let r=fi(e),n=gi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Sw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=pw(i,u,l),g=pw(i,u,l+1),f=" ",k;p.a>0&&g.a>0?(f="\u2580",k=rp(p,g)):p.a>0?(f="\u2580",k=rp(p)):g.a>0&&(f="\u2584",k=rp(g)),k!==c&&(c&&(d+="\x1B[0m"),k&&(d+=k),c=k),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
119
- `)}},pi=10240,SI={render(e,t={}){let{width:r,height:n,pixels:o}=fi(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&&DI(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,k=[[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[b,v,T]of k){let $=g*2+b,D=u*4+v;if($<r&&D<n){let L=D*r+$;d[L]<s&&(f|=1<<T)}}p+=String.fromCharCode(pi+f)}c.push(p)}return c.join(`
118
+ `)){if(r==="truncate"||r==="truncate-end"){n.push(Zr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Zr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Zr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...KF(o,t))}return n}function KF(e,t){if(be(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(be(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),be(o)<=t){n=o;continue}let i=VF(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function VF(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===Tk){let l=Yn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Qn(e,s);if(!i)break;let a=be(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Zr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(be(e)<=t)return e;if(t<be(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=be(l);return n==="start"?zF(e,t,l,d,i):n==="middle"?YF(e,t,l,d,i):JF(e,t,l,d,i)}function zF(e,t,r,n,o){let s=t-n,i=Yo(e,be(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function JF(e,t,r,n,o){let s=t-n,i=Yo(e,0,s);if(o){let a=i.lastIndexOf(" ");if(a!==-1&&i.length-a<4)return i.slice(0,a)+r}return i+r}function YF(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Yo(e,0,i),d=Yo(e,be(e)-a);if(o){let c=l.lastIndexOf(" ");c!==-1&&l.length-c<4&&(l=l.slice(0,c));let u=d.indexOf(" ");u!==-1&&u<4&&(d=d.slice(u+1))}return l+r+d}function Yo(e,t,r){let n=Number.isFinite(t)?Math.max(0,Math.trunc(t)):0,o=r===void 0?void 0:Number.isFinite(r)?Math.max(n,Math.trunc(r)):n,s="",i=0,a="",l=0,d=!1;for(;l<e.length&&(o===void 0||i<o);){if(e[l]===Tk){let f=Yn(e,l);if(f){if(l=f.end,f.kind!=="sgr")continue;a=f.value==="\x1B[0m"?"":a+f.value,i>=n&&(o===void 0||i<o)&&(s+=f.value);continue}}let c=zu(e,l);if(!c){l++;continue}let u=be(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function ii(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function Yu(e,t,r){if(t===void 0)return dt(e,117);if(t===null)return dt(e,110);switch(typeof t){case"boolean":return dt(dt(e,98),t?49:48);case"number":return ii(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return ii(dt(e,105),t.toString());case"string":return ii(dt(e,115),t);case"function":return r.ignoreFunctions===!1?dt(e,102):e;case"object":{if(Array.isArray(t)){let i=dt(e,91);for(let a of t)i=Yu(i,a,r),i=dt(i,124);return dt(i,93)}let n=dt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=ii(dt(n,107),i),n=dt(n,58),n=Yu(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return ii(dt(e,63),String(t))}}function Ft(e,t={}){return Yu(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as QF}from"node:async_hooks";var Ir=Symbol("tuiuiu.runtime-resource-dispose"),Dk=new QF,rl=new Set,XF=1,Qo={id:0,resources:new Map};function Ok(){let e={id:XF++,resources:new Map};return rl.add(e),e}function ZF(e){rl.delete(e)}function Fk(e){if(e!==null&&typeof e=="object"&&Ir in e)try{e[Ir]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function eI(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)Fk(r)}function Xo(e){ZF(e),eI(e)}function qe(e,t){return Dk.run(e,t)}function en(e,t){return(...r)=>qe(e,()=>t(...r))}function Qu(){return Dk.getStore()??null}function Ge(e){if(e)return e;let t=Qu();return t||(rl.size===1?rl.values().next().value??Qo:Qo)}function Mr(){return Qo}function Oe(e,t,r){let n=Ge(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function It(e,t){return Qo.resources.has(e)||Qo.resources.set(e,t()),Qo.resources.get(e)}function nl(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),Fk(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function Xu(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function tI(e){let t=e.props,r=typeof t.width=="number"&&t.width>0&&t.width!==1/0,n=typeof t.height=="number"&&t.height>0&&t.height!==1/0;return!(!r||!n||(t.flexGrow??0)>0||t.width==="fill"||t.height==="fill")}var Zu=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Xu();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=Xu()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&tI(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Ft({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=Xu()}},rI=Symbol("tuiuiu.dirty-registry");function Lr(e){return Oe(rI,()=>new Zu,e)}function Ik(e){Lr().beginFrame(e)}function Mk(e,t){Lr().registerNode(e,t)}function _n(e,t=Pe.CONTENT){Lr().markDirty(e,t)}function Lk(e){Lr().markLayoutClean(e)}function ai(e){Lr().noteReuse(e)}function Zn(e){Lr().noteFresh(e)}function ol(e){return Lr().canReuseSubtree(e)}function jk(){return Lr().getDiagnostics()}function li(){Lr().clearGlobalDirty()}function Zo(e){Lr().markClean(e.node);for(let r of e.children)Zo(r)}var Bk=new WeakMap;function kt(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function sl(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var Tt=e=>e==="auto"?0:kt(e,"margin"),nI=new Set(["layoutRef","__scrollQuery"]),oI=new Set(["display","position","flexDirection","flexWrap","flexGrow","flexShrink","flexBasis","flex","justifyContent","alignItems","alignSelf","alignContent","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","margin","marginX","marginY","marginTop","marginBottom","marginLeft","marginRight","gap","columnGap","rowGap","width","height","minWidth","minHeight","maxWidth","maxHeight","top","bottom","left","right","borderStyle","borderTop","borderBottom","borderLeft","borderRight","overflow","overflowX","overflowY"]),sI=new Set(["children","wrap"]);function iI(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function es(e){let t=e.props??{},r=e.type==="text"?sI:oI,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ft(n,{ignoreKeys:nI})}function aI(e,t){if(e.children.length!==t.length)return!1;for(let r=0;r<t.length;r++)if(e.children[r]!==t[r])return!1;return!0}function lI(e,t){if(!ol(e)){Zn("layout");return}let r=Bk.get(e);if(!r){Zn("layout");return}if(r.ctxKey!==t){_n(e,Pe.LAYOUT),Zn("layout");return}let n=es(e);if(r.propsKey!==n||!aI(e,r.childRefs)){_n(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Zn("layout");return}return ai("layout"),r.layout}function di(e,t,r,n){Bk.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),Lk(e)}function ht(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function $k(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Mt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function Nk(e,t=0,r=0){let n=t+e.x,o=r+e.y;Mt(e.node,{...e,x:n,y:o});let s=e.node.props,i=kt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=kt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)Nk(u,d,c)}function Gk(e,t,r=1/0){if(!Number.isFinite(t)||t<0)throw new RangeError("availableWidth must be a finite non-negative number");if(r!==1/0&&(!Number.isFinite(r)||r<0))throw new RangeError("availableHeight must be a non-negative number or Infinity");t=Math.floor(t),r!==1/0&&(r=Math.floor(r)),Ik(e);let n=jr(e,{x:0,y:0,width:t,height:r},null);return Nk(n),n}function dI(e,t){let r=e.props.__divider;if(r==="horizontal")return{x:t.x,y:t.y,width:t.width,height:Math.min(1,t.height),node:e,children:[]};if(r==="vertical")return{x:t.x,y:t.y,width:Math.min(1,t.width),height:e.props.__splitDivider?Math.min(1,t.height):t.height,node:e,children:[]};let n=Xn(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>be(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function cI(e,t){let r=typeof e.props.height=="number"?e.props.height:1;return{x:t.x,y:t.y,width:t.width,height:Math.min(r,t.height),node:e,children:[]}}function uI(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function jr(e,t,r){Mk(e,r);let n=iI(t),o=lI(e,n);if(o)return Mt(e,o),o;let s;if(e.type==="text")return s=dI(e,t),di(e,n,es(e),s),s;if(e.type==="spacer")return s=cI(e,t),di(e,n,es(e),s),s;if(e.type==="newline")return s=uI(e,t),di(e,n,es(e),s),s;let i=e.props;if(i.display==="none")return s={x:t.x,y:t.y,width:0,height:0,node:e,children:[]},Mt(e,s),di(e,n,es(e),s),s;let a=kt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=kt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=kt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=kt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Tt(i.marginTop??i.marginY??i.margin),p=Tt(i.marginBottom??i.marginY??i.margin),g=Tt(i.marginLeft??i.marginX??i.margin),f=Tt(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,h=ci(i.width,t.width),R=ci(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?h:t.width)-d-c-y*2),M=Math.max(0,($?R:t.height)-a-l-y*2),N=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:M,U=[],G=i.flexDirection??"column",F=G==="row"||G==="row-reverse",W=G==="row-reverse"||G==="column-reverse",q=kt(F?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],ae=[];if(e.children.length>0){for(let ie of e.children)ie.props.position==="absolute"?oe.push(ie):ae.push(ie);let fe=W?[...ae].reverse():ae;F?U.push(...Wk(fe,D,N,q,i,$,e)):U.push(...fI(fe,D,N,q,i,e))}let se=0,Z=0;if(F)for(let fe of U){let ie=fe.node.props,xe=Tt(ie.marginRight??ie.marginX??ie.margin),Fe=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.x+fe.width+xe),Z=Math.max(Z,fe.y+fe.height+Fe)}else for(let fe of U){let ie=fe.node.props,xe=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+xe)}let Ae=sl(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,we=T?h:Ae?t.width:Ee,J=$?R:Z+a+l+y*2,de=kt(i.minWidth,"minWidth"),_e=kt(i.minHeight,"minHeight");if(we=Math.max(we,de),J=Math.max(J,_e),i.maxWidth!==void 0&&(we=Math.min(we,kt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,kt(i.maxHeight,"maxHeight"))),F&&i.alignItems==="stretch"){let fe=Math.max(0,J-a-l-y*2);for(let ie=0;ie<U.length;ie++){let xe=U[ie],Fe=xe.node.props;Fe.height===void 0&&(U[ie]=$k(xe,Math.max(xe.height,fe),Fe),Mt(xe.node,U[ie]))}}let Ce=t.x+g,ve=t.y+u,Re=Math.max(0,Math.min(we,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let fe of oe){let ie=fe.props,xe=jr(fe,{x:0,y:0,width:D,height:N},e),Fe=Ce+d+y,at=ve+a+y;ie.left!==void 0?Fe=Ce+d+y+ie.left:ie.right!==void 0&&(Fe=Ce+Re-c-y-xe.width-ie.right),ie.top!==void 0?at=ve+a+y+ie.top:ie.bottom!==void 0&&(at=ve+Se-l-y-xe.height-ie.bottom);let Nt=ht(xe,{x:Fe,y:at});Mt(fe,Nt),U.push(Nt)}return s={x:Ce,y:ve,width:Re,height:Se,node:e,children:U},Mt(e,s),di(e,n,es(e),s),s}function Wk(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return pI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let G of e){let F=G.props,W=F.flexGrow;W===void 0?W=F.width==="fill"||G.type==="spacer"?1:0:W=sl(W,"flexGrow");let q=kt(F.minWidth,"minWidth"),oe=F.flexBasis==="content"?jr(G,{x:0,y:0,width:t,height:r},i).width:F.flexBasis===void 0||F.flexBasis==="auto"?q:ci(F.flexBasis,t),ae=F.flexShrink===void 0?1:sl(F.flexShrink,"flexShrink"),se=Tt(F.marginLeft??F.marginX??F.margin),Z=Tt(F.marginRight??F.marginX??F.margin);if(W>0)c+=W,d+=oe+se+Z,u.push({node:G,flex:W,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:Z});else{let Ae=F.width!==void 0&&F.width!=="auto"&&F.width!=="fill"?ci(F.width,t)+se+Z:t,Ee=jr(G,{x:0,y:0,width:Ae,height:r},i);d+=Ee.width+se+Z,u.push({node:G,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:Z,layout:Ee,measuredCtxWidth:Ae})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let G=u.map(()=>0),F=Math.ceil(p);for(;F>0;){let W=u.map((Z,pe)=>{let Ae=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,Ae-G[pe]);return{index:pe,capacity:Ee,maxReduction:Ae,weight:Z.shrink*Z.basis}}).filter(Z=>Z.capacity>0&&Z.weight>0),q=W.reduce((Z,pe)=>Z+pe.weight,0);if(q<=0)break;let oe=W.map(Z=>{let pe=F*Z.weight/q,Ae=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Ae,fraction:pe-Math.floor(pe)}}),ae=0;for(let Z of oe)Z.whole>0&&(G[Z.index]+=Z.whole,ae+=Z.whole);if(F-=ae,F<=0)break;oe.sort((Z,pe)=>pe.fraction-Z.fraction||pe.weight-Z.weight||pe.capacity-Z.capacity);let se=!1;for(let Z of oe){if(F<=0)break;G[Z.index]<Z.maxReduction&&(G[Z.index]+=1,F-=1,se=!0)}if(!se)break}if(G.some(W=>W>0)){for(let W=0;W<u.length;W++){let q=u[W];q.targetWidth=Math.max(q.minWidth,q.basis-G[W])}d=u.reduce((W,q)=>W+(q.targetWidth??q.basis)+q.marginLeft+q.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,y=0,h=o.justifyContent??"flex-start",R=d+(c>0?g:0),T=t-R,$=0,D=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?$=T/(u.length-1):h==="space-around"?(D=T/(u.length*2),y=D):h==="space-evenly"?($=T/(u.length+1),y=$):h==="flex-end"?y=T:h==="center"&&(y=T/2));let M=0,N=[];for(let G=0;G<u.length;G++){let F=u[G],q=(F.targetWidth??(F.flex>0?F.basis+Math.floor(f*F.flex):F.basis))+F.marginLeft+F.marginRight,oe=F.layout&&F.measuredCtxWidth===q?ht(F.layout,{x:F.layout.x+y}):jr(F.node,{x:y,y:0,width:q,height:r},i),ae=F.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),y+=F.marginLeft+oe.width+F.marginRight,h==="space-between"&&G<u.length-1?y+=$:h==="space-around"?y+=D*2:h==="space-evenly"?y+=$:y+=n}let U=s?r:M;for(let G of N){let{style:F}=G,{layout:W}=G,q=F.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(F.height===void 0&&(se=Math.max(W.height,U)),ae=0):oe==="center"?ae=Math.floor((U-W.height)/2):oe==="flex-end"?ae=U-W.height:oe==="baseline"&&(ae=0),W=$k(W,se,F),W=ht(W,{y:ae}),Mt(W.node,W),a.push(W)}return a}function pI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=Tt(M.marginLeft??M.marginX??M.margin),U=Tt(M.marginRight??M.marginX??M.margin),G=jr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:ci(M.flexBasis,t))+N+U,q=c+(d.length>0?n:0)+W;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=kt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let M=Wk(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((U,G)=>Math.max(U,G.y+G.height),0);return{layouts:M,height:N}}),g=p.reduce((D,M)=>D+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",h=0,R=0;y==="flex-end"?h=f:y==="center"?h=Math.floor(f/2):y==="space-between"&&p.length>1?R=f/(p.length-1):y==="space-around"&&p.length>0?(R=f/p.length,h=Math.floor(R/2)):y==="stretch"&&p.length>0&&(R=f/p.length);let T=[],$=h;for(let D of p){for(let M of D.layouts){let N=ht(M,{y:M.y+Math.floor($)});Mt(N.node,N),T.push(N)}$+=D.height+u+R}return T}function fI(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,y=[];for(let h of e){let R=h.props,T=Tt(R.marginTop??R.marginY??R.margin),$=Tt(R.marginBottom??R.marginY??R.margin),D=R.flexGrow;D===void 0?D=R.height==="fill"||h.type==="spacer"?1:0:D=sl(D,"flexGrow");let M=kt(R.minHeight,"minHeight"),N=R.maxHeight===void 0?void 0:kt(R.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,y.push({node:h,flex:D,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$});else{let U=jr(h,{x:0,y:0,width:t,height:r},s);g+=U.height+T+$,y.push({node:h,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$,layout:U})}}if(g+=n*Math.max(0,e.length-1),f>0){let R=Math.max(0,r-g)/f,T=0;for(let $=0;$<y.length;$++){let D=y[$],N=D.node.props.alignSelf,U=N!=="auto"&&N?N:o.alignItems??"flex-start",G=D.layout;if(D.flex>0){let q=Math.floor(R*D.flex);q=Math.max(D.minHeight,q),D.maxHeight!==void 0&&(q=Math.min(D.maxHeight,q)),G=jr(D.node,{x:0,y:T,width:t,height:q},s),G=ht(G,{height:q})}G||(G=jr(D.node,{x:0,y:T,width:t,height:r},s));let F=G.x,W=G.width;U==="center"?F=Math.floor((t-G.width)/2):U==="flex-end"?F=t-G.width:U==="stretch"&&(W=t),G=ht(G,{x:F,y:T,width:W}),Mt(G.node,G),i.push(G),T+=D.marginTop+G.height+D.marginBottom,$<y.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],y=f.props,h=Tt(y.marginTop??y.marginY??y.margin),R=Tt(y.marginBottom??y.marginY??y.margin),T=jr(f,{x:0,y:l,width:t,height:r-l},s),$=y.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",M=T.x,N=T.width;D==="center"?M=Math.floor((t-T.width)/2):D==="flex-end"?M=t-T.width:D==="stretch"&&(N=t);let U=ht(T,{x:M,width:N});Mt(U.node,U),i.push(U),l+=h+T.height+R,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*y)}),Mt(i[y].node,i[y]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),Mt(i[y].node,i[y]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(y+1))}),Mt(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),Mt(i[f].node,i[f])}return i}function ci(e,t){if(e===void 0||e==="auto")return 0;if(e==="fill")return t;if(typeof e=="number"){if(!Number.isFinite(e)||e<0)throw new RangeError("Layout size must be a finite non-negative number");return Math.floor(e)}if(e.endsWith("%")){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0)throw new RangeError("Layout percentage must be finite and non-negative");return t===1/0?0:Math.floor(n/100*t)}let r=Number(e);if(!Number.isFinite(r)||r<0)throw new RangeError(`Invalid layout size: ${e}`);return Math.floor(r)}var Hk={background:0,normal:1,modal:2,critical:3};var Uk=new Set;function Kk(e,t){process.env.NODE_ENV==="production"||Uk.has(e)||(Uk.add(e),console.warn(`[tuiuiu] ${t}`))}var gI=Symbol("tuiuiu.hook-runtime-state"),ep=new WeakMap;function hI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function Je(e){return Oe(gI,hI,e)}function tp(e){return ep.get(e)??null}function Vk(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function zk(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Kk("hook-count-changed",`Hook count changed between renders (${e.lastMaxHookIndex} \u2192 ${t}). A component with internal hooks (Select, Tabs, Menu, ChatList, ScrollList, etc.) was conditionally added or removed from the render tree. FIX: Keep hook-bearing components always rendered \u2014 use height: 0, isActive: false, or display: "none" to hide them instead of removing them with ternaries or When().`),t<e.lastMaxHookIndex)for(let r=t;r<e.lastMaxHookIndex;r++){Qk(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(ui(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function Jk(){return Je().isRendering}function Yk(){return Je().renderPhaseMode}function ur(e){let t=Je();t.isRendering||Kk("hook-outside-render","A hook (useState, useMemo, useComputed, etc.) was called outside a component render. Hooks must be called inside a component function, not at module scope or in event handlers. Move the hook call inside your component function.");let r=t.hookIndex++;return r>=t.hookState.state.length?(t.hookState.state.push(e),{value:e,isNew:!0}):{value:t.hookState.state[r],isNew:!1}}function pr(e,t){Je().hookState.state[e]=t}function Br(e){return Je().hookState.state[e]}function Xt(){return Je().hookIndex-1}function eo(e,t=Xt()){let r=Je(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function Qk(e,t){let r=t.hookCleanups.get(e);if(r){t.hookCleanups.delete(e);for(let n of[...r].reverse())try{n()}catch(o){console.error("[tuiuiu] Error during hook cleanup:",o)}}}function il(e){let t=Ge(e),r=Je(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))Qk(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function tn(e){return Je(e).appContext}function rp(e,t){let r=Ge(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&ep.delete(o),e&&ep.set(e,r)}function al(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:Hk[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function ui(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Xk(e,t,r){let o=[...Je().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function Zk(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function np(e,t){Je(t).focusManager=e}function ew(e){let t=Je(),r=bI(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function tw(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var mI=300,qk=2;function bI(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<mI&&Math.abs(t.x-n.x)<=qk&&Math.abs(t.y-n.y)<=qk?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function rw(e,t){let r=[...Je().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function nw(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var pi=[],dl=!1,op=!1,ll=0,fi=null,gi=null;function ow(){if(!op){op=!0;for(let e=pi.length-1;e>=0;e--)try{pi[e]()}catch{}op=!1}}function rn(e){return pi.push(e),()=>{let t=pi.indexOf(e);t!==-1&&pi.splice(t,1)}}function sw(){ll++,dl||(dl=!0,fi=()=>{ow()},gi=()=>{ow()},process.on("exit",fi),process.on("uncaughtExceptionMonitor",gi));let e=!1;return()=>{e||(e=!0,ll=Math.max(0,ll-1),ll===0&&yI())}}function yI(){dl&&(fi&&process.off("exit",fi),gi&&process.off("uncaughtExceptionMonitor",gi),fi=null,gi=null,dl=!1)}var iw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,aw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,lw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,dw=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function cl(e,t,r,n){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||e<0||t<1||r<1)return null;let o=e&3,s=(e&32)!==0,i=(e&64)!==0,a,l;return i?(a=e&1?"scroll-down":"scroll-up",l="click"):(o===0?a="left":o===1?a="middle":o===2?a="right":a="none",s&&o===3?l="move":n||o===3?l="release":s?l="drag":l="click"),{x:t-1,y:r-1,button:a,action:l,modifiers:{shift:(e&4)!==0,alt:(e&8)!==0,ctrl:(e&16)!==0}}}function cw(e){let t=iw.exec(e);if(t){let s=fr(t[1]),i=fr(t[2]),a=fr(t[3]),l=fr(t[4]),d=fr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=cl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=aw.exec(e);if(r){let s=fr(r[1]),i=fr(r[2]),a=fr(r[3]);if(s===null||i===null||a===null)return null;let l=cl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=lw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=cl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=dw.exec(e);if(o){let s=fr(o[1]),i=fr(o[2]),a=fr(o[3]);if(s===null||i===null||a===null)return null;let l=cl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function uw(e){return iw.test(e)||aw.test(e)||lw.test(e)||dw.test(e)}var kI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",pw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",wI=Symbol("tuiuiu.mouse-runtime-state");function hi(e){return Oe(wI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function sp(e){return tn(e)?.stdout??process.stdout}function ip(e){return"isTTY"in e&&!!e.isTTY}function mi(e){return cw(e)}function ap(e){return uw(e)}function ts(e){let t=Ge(e),r=hi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,RI(t);let n=sp(t);r.outputStream=n,ip(n)&&n.write(kI)}}function to(e){let t=Ge(e),r=hi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??sp(t);ip(n)&&n.write(pw),r.outputStream=null}}function ul(e){let t=Ge(e),r=hi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??sp(t);ip(n)&&n.write(pw),r.outputStream=null}}function RI(e){let t=hi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=rn(en(e,()=>ul(e))))}function fw(e){let t=hi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as EI}from"node:zlib";var We={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},_I={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...We,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:We}};function xI(e=process.env){let t=e.TERM_PROGRAM||"",r=e.TERM||"";return e.KITTY_WINDOW_ID?"kitty":e.ALACRITTY_WINDOW_ID||e.ALACRITTY_LOG?"alacritty":e.GHOSTTY_RESOURCES_DIR?"ghostty":e.WEZTERM_PANE||t==="WezTerm"?"wezterm":t==="rio"?"rio":e.WARP_IS_LOCAL_SHELL_SESSION?"warp":r.startsWith("foot")||r==="foot"?"foot":e.CONTOUR_TERMINAL_ID?"contour":e.VSCODE_PID||t==="vscode"?"vscode":t==="iTerm.app"?"iterm2":t==="Apple_Terminal"?"terminal-app":e.WT_SESSION?"windows-terminal":e.KONSOLE_VERSION?"konsole":e.VTE_VERSION?e.TILIX_ID?"tilix":"gnome-terminal":t==="Hyper"?"hyper":e.TERMINOLOGY?"terminology":t==="mlterm"?"mlterm":t==="blackbox"||e.BLACKBOX_THEMES_DIR?"black-box":t==="Bobcat"?"bobcat":r.includes("rxvt-unicode")||r.includes("rxvt")?"rxvt-unicode":r.includes("mlterm")?"mlterm":r==="st-256color"||r==="st"?"st":"unknown"}function gw(e=process.env){return e.TMUX?{type:"tmux",version:e.TMUX?.split(",")[1],needsPassthrough:!0}:e.STY?{type:"screen",version:void 0,needsPassthrough:!0}:e.ZELLIJ?{type:"zellij",version:(e.ZELLIJ_SESSION_NAME,void 0),needsPassthrough:!1}:null}function pl(e=process.env){let t=xI(e),r=_I[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var ww=Symbol("tuiuiu.graphics-runtime-state");function Rw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:It(ww,()=>Rw(Mr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function up(){let e=Ge();return Oe(ww,()=>Rw(e),e)}var hw={width:10,height:20};function fl(e){return{width:Math.max(1,Math.round(e?.width??hw.width)),height:Math.max(1,Math.round(e?.height??hw.height))}}function vI(){let e=process.env,t=e.TERM?.toLowerCase()||"",r=e.COLORTERM?.toLowerCase()||"",n=e.TERM_PROGRAM?.toLowerCase()||"";return e.FORCE_COLOR==="0"?!1:e.FORCE_COLOR==="2"||e.FORCE_COLOR==="3"?!0:r==="truecolor"||r==="24bit"||t.includes("256color")||t.includes("direct")||n==="iterm.app"||n==="wezterm"||n==="hyper"||!!e.WT_SESSION}function _w(){return vI()?"halfblock":"braille"}function rs(e){return e==="none"?_w():e}function xw(e){let t=rs(e);return t==="halfblock"||t==="braille"}function Ew(e){let t=rs(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function mw(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function vw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&AI(e)?e:null}function Sw(){let e=process.env.TERM_PROGRAM?.toLowerCase()||"",t=process.env.KITTY_WINDOW_ID,r=process.env.ITERM_SESSION_ID;return t||e==="kitty"?"kitty":r||e==="iterm.app"?"iterm2":null}function Tw(){return pl(process.env).knownCaps.preferredGraphics||null}function Pw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function SI(){let e=vw();if(e)return e;let t=Sw();if(t)return t;let r=Tw();return r||Pw()}function TI(e){return vw()===e||Sw()===e?"env":Tw()===e?"profile":Pw()===e?"env":"fallback"}function ns(){let e=up();if(e.manualOverride)return mw(e.manualOverride,"manual",fl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=PI();return mw(t,TI(t),fl())}function PI(){let e=up();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=SI()??_w()),e.detectedProtocol)}function AI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function Aw(){let e=up();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:fl(void 0)};let r=e.negotiatedCapabilities.cellSize;if(t.width!==r.width||t.height!==r.height)for(let n of[...e.cellSizeChangeListeners])n(r)}}function CI(e){let t=2166136261;t^=e.width,t=Math.imul(t,16777619),t^=e.height,t=Math.imul(t,16777619);for(let r=0;r<e.pixels.length;r++)t^=e.pixels[r],t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function Cw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function yi(e){return Cw(e)?e:hl(e)}function bw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function hl(e,t={}){let r=fl(t.cellSize??ns().cellSize);return{pixels:e.pixels,width:e.width,height:e.height,cellSize:r,desiredColumns:Math.max(1,Math.ceil(e.width/r.width)),desiredRows:Math.max(1,Math.ceil(e.height/r.height)),hash:CI(e)}}function ki(e,t={}){let r=Cw(e)?e:hl(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=bw(r.desiredRows,r.desiredColumns,l),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(s!==void 0&&o===void 0)d=s,l=bw(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),y=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=y*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var os={transmit(e,t={}){let r=yi(e),n=ki(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=LI(r),l=Dw(a),d=4096,c=[];for(let u=0;u<l.length;u+=d){let p=l.slice(u,u+d),f=u+d>=l.length?0:1;u===0?c.push(`\x1B_Ga=T,f=100,c=${o},r=${s}${i},m=${f};${p}\x1B\\`):c.push(`\x1B_Gm=${f};${p}\x1B\\`)}return c.join("")},display(e,t,r){return`\x1B_Ga=p,i=${e},p=1,X=${t},Y=${r}\x1B\\`},delete(e){return e!==void 0?`\x1B_Ga=d,d=i,i=${e}\x1B\\`:"\x1B_Ga=d,d=A\x1B\\"},clear(){return"\x1B_Ga=d,d=A\x1B\\"}},DI={display(e,t={}){let{pixels:r}=yi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Dw(r);return`\x1B]1337;File=inline=1;${n};${o}:${s}\x07`},displayFile(e,t={}){let r=t.width?`width=${t.width}`:"width=auto",n=t.height?`height=${t.height}`:"height=auto",o=Buffer.from(e).toString("base64");return`\x1B]1337;File=inline=1;${r};${n}:${o}\x07`}},OI={encode(e,t={}){let r=yi(e),n=ki(r,t),o=t.width!==void 0||t.height!==void 0?Ow({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=jI(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),y=Math.round(p/255*100),h=Math.round(g/255*100);d+=`#${c};2;${f};${y};${h}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let y=0;for(let h=0;h<6;h++){let R=c+h;if(R>=i)continue;let T=(R*s+f)*4,$=a[T],D=a[T+1],M=a[T+2];BI([$,D,M],l)===u&&(y|=1<<h,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function yw(e,t,r){if(t<0||t>=e.width||r<0||r>=e.height)return{r:0,g:0,b:0,a:0};let n=(r*e.width+t)*4;return{r:e.pixels[n]??0,g:e.pixels[n+1]??0,b:e.pixels[n+2]??0,a:e.pixels[n+3]??0}}function lp(e,t){let r=[];return e&&e.a>0&&r.push(`38;2;${e.r};${e.g};${e.b}`),t&&t.a>0&&r.push(`48;2;${t.r};${t.g};${t.b}`),r.length>0?`\x1B[${r.join(";")}m`:void 0}var kw={render(e,t={}){let r=yi(e),n=ki(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Ow(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=yw(i,u,l),g=yw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=lp(p,g)):p.a>0?(f="\u2580",y=lp(p)):g.a>0&&(f="\u2584",y=lp(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
119
+ `)}},bi=10240,FI={render(e,t={}){let{width:r,height:n,pixels:o}=yi(e),s=t.threshold??128,i=t.dither??!1,a=Math.ceil(r/2),l=Math.ceil(n/4),d=new Float32Array(r*n);for(let u=0;u<r*n;u++){let p=o[u*4],g=o[u*4+1],f=o[u*4+2];d[u]=.299*p+.587*g+.114*f}i&&$I(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,y=[[0,0,0],[0,1,1],[0,2,2],[1,0,3],[1,1,4],[1,2,5],[0,3,6],[1,3,7]];for(let[h,R,T]of y){let $=g*2+h,D=u*4+R;if($<r&&D<n){let M=D*r+$;d[M]<s&&(f|=1<<T)}}p+=String.fromCharCode(bi+f)}c.push(p)}return c.join(`
120
120
  `)},invert(e){let t="";for(let r of e){if(r===`
121
- `){t+=r;continue}let n=r.charCodeAt(0);if(n>=pi&&n<pi+256){let o=pi+(255-(n-pi));t+=String.fromCharCode(o)}else t+=r}return t}};function pl(e,t,r={}){switch(Jo(e)){case"kitty":return Qo.transmit(t,r);case"iterm2":return EI.display(t,r);case"sixel":return vI.encode(t,r);case"halfblock":return fw.render(t,r);case"braille":return SI.render(t,r);default:return fw.render(t,r)}}function fl(e){switch(Jo(e)){case"kitty":return Qo.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var np=null;function TI(){if(np)return np;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 np=e,e}function PI(e){let t=TI(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function cl(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 op(e,t){let r=new Uint8Array(8+t.length+4);cl(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 cl(r,PI(n),8+t.length),r}function AI(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);cl(s,t,0),cl(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=op("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let k=f*a,b=f*(1+a);l[b]=1;for(let v=0;v<a;v++){let T=n[k+v],$=v>=4?n[k+v-4]:0;l[b+1+v]=T-$&255}}let d=bI(Buffer.from(l)),c=op("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=op("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 vw(e){return Buffer.from(e).toString("base64")}function CI(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 OI(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 DI(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 Sw(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 ap(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 gl(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,k=s?Math.max(g,s.y):g,b=s?Math.min(p+d,s.x+s.width):p+d,v=s?Math.min(g+c,s.y+s.height):g+c;b>f&&v>k&&t(i,f,k,b-f,v-k,o);let T=i.props,$=T.paddingTop??T.paddingY??T.padding??0,D=T.paddingLeft??T.paddingX??T.padding??0,L=T.borderStyle&&T.borderStyle!=="none"?1:0,W=p+D+L,K=typeof T.__scrollOffsetY=="number"&&Number.isFinite(T.__scrollOffsetY)?Math.max(0,Math.floor(T.__scrollOffsetY)):0,H=g+$+L-K,I=T.overflow==="hidden"||T.overflowX==="hidden",G=T.overflow==="hidden"||T.overflowY==="hidden",V={x:I?p:s?.x??Number.MIN_SAFE_INTEGER,y:G?g:s?.y??Number.MIN_SAFE_INTEGER,width:I?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:G?c:s?.height??Number.MAX_SAFE_INTEGER*2},ge=I||G?FI(s,V):s;for(let fe of u)gl(fe,t,W,H,i,ge)}function FI(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 Tw(e){let t=[],r=0;return gl(e,(n,o,s,i,a)=>{ap(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var ip=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),ap(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){gl(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=Yo().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=Yo().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,zo(),this.inputHandler=r=>{let n=ui(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,zn(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},II=Symbol("tuiuiu.hit-test-registry");function Xo(e){return De(II,()=>new ip,e)}function lp(e,t=0){let r=Xo();if(r.clear(),t===0){r.registerFromLayout(e);return}gl(e,(n,o,s,i,a,l)=>{ap(n)&&r.register(n,o,s+t,i,a,l)})}import Xt from"node:path";import{fileURLToPath as Ow}from"node:url";var MI=[{code:"signals-inside-component-render",title:"Signals Inside Component Render",anchor:"signals-inside-component-render",summary:"Do not call createSignal() inside a component render. It recreates state every rerender.",whyItBreaks:["Signals created inside the component are replaced every time render runs again.","Input handlers and effects often keep references to the old signal instance.","The UI reads a fresh signal while callbacks mutate an older one, so state appears stuck or resets."],wrongExample:`function App() {
121
+ `){t+=r;continue}let n=r.charCodeAt(0);if(n>=bi&&n<bi+256){let o=bi+(255-(n-bi));t+=String.fromCharCode(o)}else t+=r}return t}};function ml(e,t,r={}){switch(rs(e)){case"kitty":return os.transmit(t,r);case"iterm2":return DI.display(t,r);case"sixel":return OI.encode(t,r);case"halfblock":return kw.render(t,r);case"braille":return FI.render(t,r);default:return kw.render(t,r)}}function bl(e){switch(rs(e)){case"kitty":return os.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var dp=null;function II(){if(dp)return dp;let e=new Uint32Array(256);for(let t=0;t<256;t++){let r=t;for(let n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r>>>0}return dp=e,e}function MI(e){let t=II(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function gl(e,t,r){e[r]=t>>>24&255,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function cp(e,t){let r=new Uint8Array(8+t.length+4);gl(r,t.length,0),r[4]=e.charCodeAt(0),r[5]=e.charCodeAt(1),r[6]=e.charCodeAt(2),r[7]=e.charCodeAt(3),r.set(t,8);let n=r.subarray(4,8+t.length);return gl(r,MI(n),8+t.length),r}function LI(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);gl(s,t,0),gl(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=cp("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let y=f*a,h=f*(1+a);l[h]=1;for(let R=0;R<a;R++){let T=n[y+R],$=R>=4?n[y+R-4]:0;l[h+1+R]=T-$&255}}let d=EI(Buffer.from(l)),c=cp("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=cp("IEND",new Uint8Array(0)),p=new Uint8Array(o.length+i.length+c.length+u.length),g=0;return p.set(o,g),g+=o.length,p.set(i,g),g+=i.length,p.set(c,g),g+=c.length,p.set(u,g),p}function Dw(e){return Buffer.from(e).toString("base64")}function jI(e,t){let r=new Map;for(let o=0;o<e.length;o+=4){let s=`${e[o]},${e[o+1]},${e[o+2]}`;r.set(s,(r.get(s)||0)+1)}return Array.from(r.entries()).sort((o,s)=>s[1]-o[1]).slice(0,t).map(([o])=>{let[s,i,a]=o.split(",").map(Number);return[s,i,a]})}function BI(e,t){let r=0,n=1/0;for(let o=0;o<t.length;o++){let[s,i,a]=t[o],l=e[0]-s,d=e[1]-i,c=e[2]-a,u=l*l+d*d+c*c;u<n&&(n=u,r=o)}return r}function $I(e,t,r){for(let n=0;n<r;n++)for(let o=0;o<t;o++){let s=n*t+o,i=e[s],a=i<128?0:255;e[s]=a;let l=i-a;o+1<t&&(e[s+1]+=l*7/16),n+1<r&&(o>0&&(e[s+t-1]+=l*3/16),e[s+t]+=l*5/16,o+1<t&&(e[s+t+1]+=l*1/16))}}function Ow(e,t,r){let{width:n,height:o,pixels:s}=e,i=new Uint8Array(t*r*4);for(let a=0;a<r;a++)for(let l=0;l<t;l++){let d=Math.floor(l/t*n),u=(Math.floor(a/r*o)*n+d)*4,p=(a*t+l)*4;i[p]=s[u],i[p+1]=s[u+1],i[p+2]=s[u+2],i[p+3]=s[u+3]}return{pixels:i,width:t,height:r}}function fp(e){let t=e.props;return!!(t.onClick||t.onDoubleClick||t.onMouseDown||t.onMouseUp||t.onMouseMove||t.onMouseEnter||t.onMouseLeave||t.onContextMenu||t.onScroll)}function yl(e,t,r=0,n=0,o=null,s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=r+a,g=n+l,f=s?Math.max(p,s.x):p,y=s?Math.max(g,s.y):g,h=s?Math.min(p+d,s.x+s.width):p+d,R=s?Math.min(g+c,s.y+s.height):g+c;h>f&&R>y&&t(i,f,y,h-f,R-y,o);let T=i.props,$=T.paddingTop??T.paddingY??T.padding??0,D=T.paddingLeft??T.paddingX??T.padding??0,M=T.borderStyle&&T.borderStyle!=="none"?1:0,N=p+D+M,U=typeof T.__scrollOffsetY=="number"&&Number.isFinite(T.__scrollOffsetY)?Math.max(0,Math.floor(T.__scrollOffsetY)):0,G=g+$+M-U,F=T.overflow==="hidden"||T.overflowX==="hidden",W=T.overflow==="hidden"||T.overflowY==="hidden",q={x:F?p:s?.x??Number.MIN_SAFE_INTEGER,y:W?g:s?.y??Number.MIN_SAFE_INTEGER,width:F?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:W?c:s?.height??Number.MAX_SAFE_INTEGER*2},oe=F||W?NI(s,q):s;for(let ae of u)yl(ae,t,N,G,i,oe)}function NI(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function Fw(e){let t=[],r=0;return yl(e,(n,o,s,i,a)=>{fp(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var pp=class{elements=[];boundsByNode=new Map;parentMap=new Map;zCounter=0;hoveredElement=null;lastClickTime=0;lastClickPos={x:-1,y:-1};lastClickButton="none";mouseTrackingEnabled=!1;inputHandler=null;clear(){this.elements=[],this.boundsByNode.clear(),this.parentMap.clear(),this.zCounter=0}register(t,r,n,o,s,i){if(this.parentMap.set(t,i),fp(t)){let a={node:t,x:r,y:n,width:o,height:s,zIndex:this.zCounter++};this.elements.push(a),this.boundsByNode.set(t,a)}}registerFromLayout(t,r=0,n=0,o=null){yl(t,(s,i,a,l,d,c)=>{this.register(s,i,a,l,d,c)},r,n,o)}hitTest(t,r){for(let n=this.elements.length-1;n>=0;n--){let o=this.elements[n];if(t>=o.x&&t<o.x+o.width&&r>=o.y&&r<o.y+o.height)return{node:o.node,relativeX:t-o.x,relativeY:r-o.y,absoluteX:t,absoluteY:r}}return null}pixelHitTest(t,r,n){let o=Math.floor(t/n.width),s=Math.floor(r/n.height),i=this.hitTest(o,s);if(!i)return null;let a=this.elements.find(l=>l.node===i.node);return a&&(i.pixelRelativeX=t-a.x*n.width,i.pixelRelativeY=r-a.y*n.height),i}handleMouseEvent(t){let r;if(t.pixelX!=null&&t.pixelY!=null){let d=ns().cellSize;r=this.pixelHitTest(t.pixelX,t.pixelY,d)}else r=this.hitTest(t.x,t.y);let n=Date.now(),o=!1,s=d=>{let c=d?this.boundsByNode.get(d):void 0,u=c?t.x-c.x:r?.relativeX??0,p=c?t.y-c.y:r?.relativeY??0,g={x:u,y:p,absoluteX:t.x,absoluteY:t.y,button:t.button,modifiers:t.modifiers,target:d,stopPropagation:()=>{o=!0}};if(t.pixelX!=null&&t.pixelY!=null&&c){let f=ns().cellSize;g.pixelRelativeX=t.pixelX-c.x*f.width,g.pixelRelativeY=t.pixelY-c.y*f.height}else r?.pixelRelativeX!=null&&(g.pixelRelativeX=r.pixelRelativeX),r?.pixelRelativeY!=null&&(g.pixelRelativeY=r.pixelRelativeY);return g},i=r?.node??null;if(i!==this.hoveredElement){if(this.hoveredElement?.props.onMouseLeave){let d=s(this.hoveredElement);this.hoveredElement.props.onMouseLeave(d)}if(i?.props.onMouseEnter){let d=s(i);i.props.onMouseEnter(d)}this.hoveredElement=i}if(!r)return;let a=s(r.node),l=r.node.props;switch(t.action){case"click":let d=n-this.lastClickTime<300&&Math.abs(t.x-this.lastClickPos.x)<=2&&Math.abs(t.y-this.lastClickPos.y)<=2&&t.button===this.lastClickButton;d&&l.onDoubleClick?l.onDoubleClick(a):t.button==="left"&&l.onClick?l.onClick(a):t.button==="right"&&l.onContextMenu?l.onContextMenu(a):(t.button==="scroll-up"||t.button==="scroll-down")&&l.onScroll&&l.onScroll(a),d?this.lastClickTime=0:(this.lastClickTime=n,this.lastClickPos={x:t.x,y:t.y},this.lastClickButton=t.button),l.onMouseDown&&l.onMouseDown(a);break;case"release":l.onMouseUp&&l.onMouseUp(a);break;case"drag":case"move":l.onMouseMove&&l.onMouseMove(a);break;case"double-click":l.onDoubleClick&&l.onDoubleClick(a);break}o||this.bubbleEvent(r.node,t,a)}bubbleEvent(t,r,n){let o=!1,s=this.parentMap.get(t)??null;for(;s&&!o;){let i=this.boundsByNode.get(s);if(i){let a=i.node.props,l={x:n.absoluteX-i.x,y:n.absoluteY-i.y,absoluteX:n.absoluteX,absoluteY:n.absoluteY,button:n.button,modifiers:n.modifiers,target:i.node,stopPropagation:()=>{o=!0}};r.action==="click"&&r.button==="left"&&a.onClick&&a.onClick(l)}s=this.parentMap.get(s)??null}}enable(t){this.mouseTrackingEnabled||(this.mouseTrackingEnabled=!0,ts(),this.inputHandler=r=>{let n=mi(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,to(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},GI=Symbol("tuiuiu.hit-test-registry");function ss(e){return Oe(GI,()=>new pp,e)}function gp(e,t=0){let r=ss();if(r.clear(),t===0){r.registerFromLayout(e);return}yl(e,(n,o,s,i,a,l)=>{fp(n)&&r.register(n,o,s+t,i,a,l)})}import Zt from"node:path";import{fileURLToPath as jw}from"node:url";var WI=[{code:"signals-inside-component-render",title:"Signals Inside Component Render",anchor:"signals-inside-component-render",summary:"Do not call createSignal() inside a component render. It recreates state every rerender.",whyItBreaks:["Signals created inside the component are replaced every time render runs again.","Input handlers and effects often keep references to the old signal instance.","The UI reads a fresh signal while callbacks mutate an older one, so state appears stuck or resets."],wrongExample:`function App() {
122
122
  const [count, setCount] = createSignal(0);
123
123
  useHotkeys('up', () => setCount(c => c + 1));
124
124
  return Text({}, \`Count: \${count()}\`);
@@ -188,47 +188,47 @@ useEffect(() => {
188
188
  return Box({},
189
189
  ComputedText(() => \`Score: \${score()}\`),
190
190
  );
191
- })`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function LI(e){let t=MI.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function jI(e){return`docs/resources/common-mistakes.md#${LI(e).anchor}`}function Pw(e){return`See ${jI(e)} or tuiuiu://guide/common-mistakes.`}var Aw=new Set,Dw=Xt.normalize(Ow(import.meta.url)),BI=Xt.dirname(Xt.dirname(Dw)),$I=Xt.dirname(BI),hl=0;function Fw(){return process.env.NODE_ENV!=="production"}function Cw(e){return e.startsWith("file://")?Xt.normalize(Ow(e)):Xt.normalize(e)}function NI(e){let t=Xt.normalize(e);return t.startsWith($I)?t.includes(`${Xt.sep}src${Xt.sep}`)||t.includes(`${Xt.sep}dist${Xt.sep}`):!1}function GI(e){let t=Xt.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function WI(e,t=[]){if(!e)return[];let r=new Set([Dw,...t.map(Cw)]),n=e.split(`
192
- `).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=Cw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function HI(e,t){!Fw()||Aw.has(e)||(Aw.add(e),console.warn(`[tuiuiu] ${t}`))}function hi(e){hl++;try{return e()}finally{hl=Math.max(0,hl-1)}}function Iw(e,t){if(!Fw()||hl>0||!Hk()||Uk()!=="component")return;let r=WI(e,[t])[0];if(!r||NI(r.filePath))return;let n=GI(r);HI(`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(). ${Pw("signals-inside-component-render")}`)}var yn=null,bi=new Set,mi=!1,cp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return yn&&yn._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 kn){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 kn){let r=this._subs;mi?bi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)mi?bi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof kn){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)}}},dp=null;var up=!1,ml=new Set;function UI(e){ml.add(e),up||(up=!0,queueMicrotask(qI))}function qI(){up=!1;let e=[...ml];ml.clear(),Mw(e,t=>t.run())}function Mw(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 kn=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?UI(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=dp;dp=this._cleanups;let r=yn;yn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{yn=r,dp=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,ml.delete(this),bi.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 fr(e){Iw(new Error().stack,import.meta.url);let t=new cp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function Lw(e,t={}){let r=new kn(e,t);return()=>r.dispose()}function Bt(e){let t=mi;mi=!0;try{e()}finally{if(mi=t,!t){let r=[...bi];bi.clear(),Mw(r,n=>n.notify())}}}function Zo(e){let t=yn;yn=null;try{return e()}finally{yn=t}}var KI=Symbol("tuiuiu.terminal-focus-state");function VI(){let[e,t]=fr(!0);return{read:e,write:t,listeners:new Set}}function pp(e){return De(KI,VI,e)}function gr(e){return pp(e).read()}function fp(e,t){let r=pp(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function bl(e,t){let r=pp(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function gp(e){fp(!0,e)}var Jn={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},Bw=Symbol("tuiuiu.motion-runtime-state");function $w(e){let t=e.id===0?null:Ft(Bw,()=>$w(Or())),r={config:{...t?.config??Jn},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,[Cr](){Gw(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function mp(){let e=Ge();return De(Bw,()=>$w(e),e)}function yl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function hp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function zI(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 Nw(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function JI(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=bl(Jr(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}kl(e)})))}function bp(e,t=gr(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 jw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:gr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function YI(e,t){let r=gr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=bp(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 Gw(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function Ww(e){if(e.schedulerTimer||!Nw(e))return;JI(e);let t=YI(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(Jr(e.scope,()=>QI(e)),t))}function QI(e){if(e.schedulerTimer=null,!Nw(e))return;let t=Date.now(),r=gr(e.scope),n=bp(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=jw(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(jw(e,t,n,Math.max(s.intervalMs,i))))}Ww(e)}function kl(e){Gw(e),Ww(e)}function Hw(e){let t=mp(),r=yl(e.targetFps??t.config.targetFps,Jn.targetFps),n=yl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:yl(e.unfocusedFps??t.config.unfocusedFps,Jn.unfocusedFps),frameBudgetMs:hp(e.frameBudgetMs??t.config.frameBudgetMs,Jn.frameBudgetMs),recoveryFrames:yl(e.recoveryFrames??t.config.recoveryFrames,Jn.recoveryFrames),elevatedFrameBudgetFactor:hp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,Jn.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:hp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,Jn.criticalFrameBudgetFactor)},kl(t)}function wl(){let e=mp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:gr(e.scope),targetFrameMs:bp(e),recommendedPresentationIntervalMs:zI(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function XI(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function ZI(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 Uw(e){let t=mp();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"),kl(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?XI(t):ZI(t),kl(t),t.qualityTier}function wn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function qw(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function Kw(e){return e?Dt({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 eM(e,t){let r=yi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function tM(e,t){let r=wn(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 rM(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 nM(e,t,r){let n=wn(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=rM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function oM(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 sM(e,t,r){if(e.type!=="text")return e;let n=wn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*wn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!oM(e,r,o,s))return e;let i=yi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function iM(e,t,r){let n=wn(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 $=o.x,D=o.x+Math.max(1,o.maxWidth),L=Math.max($,g),W=Math.min(D,f);if(W<=L)return null;let K=Math.max(0,L-$),H=Math.max(K,W-$);return o.text=Ho(o.text,K,H),o.x=L,o.maxWidth=Math.max(0,W-L),o.maxWidth>0&&o.text.length>0?o:null}let k=o.x,b=o.x+Math.max(1,o.width),v=Math.max(k,g),T=Math.min(b,f);return T<=v?null:(o.x=v,o.width=Math.max(0,T-v),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 aM(e,t,r){let n=wl().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&wn(s.opacity)<=0||s.kind==="scale"&&wn(s.scale)<=0||s.kind==="reveal"&&wn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=eM(o,s);break;case"fade":o=tM(o,s);break;case"scale":o=nM(o,s,r);break;case"shimmer":o=sM(o,s,r);break;case"reveal":o=iM(o,s,r);break}}return o}function Vw(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=aM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var lM=1,dM=Symbol("tuiuiu.frame-runtime-state");function kp(e){return De(dM,()=>({committedFrameSnapshot:null}),e)}var cM=new Set(["__terminalImage","__compositor"]),uM=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),pM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),yp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Rl=new WeakMap,_n=new Map,Yw=4096;function Rn(){return typeof performance<"u"?performance.now():Date.now()}function fM(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 gM(e){return{eagerHitTargets:e?.eagerHitTargets??yp.eagerHitTargets,eagerQueries:e?.eagerQueries??yp.eagerQueries,eagerWarnings:e?.eagerWarnings??yp.eagerWarnings}}function hM(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,k=typeof f.id=="string"?f.id:void 0;if(k&&k.length>0){let L=t.get(k)??[];L.push({id:k,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(k,L)}let b=f.paddingTop??f.paddingY??f.padding??0,v=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+v+T,D=g+b+T;for(let L of u)r(L,$,D)};return r(e),t}function mM(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 bM(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,k=typeof f.id=="string"?f.id:void 0;if(k&&k.length>0&&mM(f.__scrollQuery)){let L=t.get(k)??[];L.push({id:k,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(k,L)}let b=f.paddingTop??f.paddingY??f.padding??0,v=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+v+T,D=g+b+T;for(let L of u)r(L,$,D)};return r(e),t}function yM(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 es(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function zw(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 kM(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 wM(e,t,r,n,o){return{getElement:s=>{let i=zw(e,s);return i.status==="missing"?es(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"&&es(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=zw(e,s);return!i.found||!i.bounds?(i.status==="missing"?es(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"&&es(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=kM(t,s);return i.status==="missing"?es(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"&&es(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 RM(e,t,r,n=[],o){let s=n.length>0?Dt(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function _M(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 xM(e,t){let r=e.type==="text"?pM:uM,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Dt({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:cM})}function EM(e,t,r,n,o,s){return Dt([t,r,Kw(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function vM(e,t,r){if(!el(e.node))return;let n=Rl.get(e);if(!n)return;if(n.cacheKey!==t){bn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){bn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){bn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){bn(e.node,Pe.CHILDREN);return}return n}function Jw(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Rl.set(e,i),i}function SM(e){return e.map((t,r)=>({...t,order:r}))}function Qw(e,t){return t?`${e}|motion:${wl().qualityTier}`:e}function TM(){let e=Math.max(1,Math.ceil(Yw*.1)),t=_n.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;_n.delete(n.value)}}function PM(e){return _n.get(e)}function AM(e,t,r){let n=_n.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!_n.has(e)&&_n.size>=Yw&&TM(),_n.set(e,o),o}function CM(e,t,r){let n=_n.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function OM(e,t){for(let r of t)e.push(r)}function DM(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function FM(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function Xw(e){let t=e.props;return qw(t?.__compositor)?t.__compositor:null}function Zw(e,t=new Map){let r=Xw(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)Zw(n,t);return t}function IM(e,t,r,n,o,s){if(!FM(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 k=s.__terminalImage,b=Yo(),v=DM(k.source)?k.source:ul(k.source,{cellSize:b.cellSize}),T=k.options?.protocol??b.protocol,$=Jo(T),D=gi(v,{...k.options,width:k.options?.width??g,height:k.options?.height??f}),L=Math.max(0,Math.min(g,D.renderColumns)),W=Math.max(0,Math.min(f,D.renderRows));return L<=0||W<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:L,height:W,instanceKey:k.protocolState?.instanceKey,kittyImageId:k.protocolState?.kittyImageId,source:v,fit:D.fit,threshold:k.options?.threshold,dither:k.options?.dither,preserveAspectRatio:k.options?.preserveAspectRatio,protocol:$,cellRender:bw($),protocolState:k.protocolState}}function MM(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 eR(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,k=Xw(i),b=k?[...o,k.key]:[...o],v=k!==null,T=IM(e,p,g,d,c,f),$=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",D=RM(t,r,n,b,s)+$,L,W=()=>(L===void 0&&(L=xM(i,T)),L),K=vM(e,D,W);if(K)return ri("draw"),{commands:K.commands,hasCompositor:K.hasCompositor,subtreeSignature:K.subtreeSignature};let H=W(),I=typeof f.id=="string"?f.id:void 0,G=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,V=[],ge=[],fe=f.paddingTop??f.paddingY??f.padding??0,de=f.paddingLeft??f.paddingX??f.padding??0,te=f.borderStyle&&f.borderStyle!=="none"?1:0,me=p+de+te,Oe=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,ve=g+fe+te-Oe,ke=G??n,J=f.overflow==="hidden"||f.overflowX==="hidden",ie=f.overflow==="hidden"||f.overflowY==="hidden",Re={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:ie?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:ie?c:s?.height??Number.MAX_SAFE_INTEGER*2},Ae=J||ie?_M(s,Re):s;for(let oe of u){let _e=eR(oe,me,ve,ke,b,Ae);V.push(_e),v||=_e.hasCompositor,ge.push(_e.subtreeSignature)}let Ee=EM(e,D,H,k,b,ge),we=PM(Ee);if(we){ri("draw");let oe=Jw(e,D,H,we.commands,we.hasCompositor,Ee),_e=Qw(Ee,we.hasCompositor);return we.materialized&&we.materializedSignature===_e&&(oe.materialized=we.materialized,oe.materializedSignature=_e),{commands:oe.commands,hasCompositor:oe.hasCompositor,subtreeSignature:Ee}}let Se=[];if(i.type==="box"&&(G||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let _e=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:b.length>0?[...b]:void 0,x:p,y:g,width:d,height:c,backgroundColor:G,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:_e,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 oe=String(f.children??""),_e=Math.max(1,xe(oe)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>oe),f.__splitDivider.bottom].join(`
193
- `):f.__divider==="horizontal"?oe.repeat(Math.ceil(d/_e)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>oe).join(`
194
- `):oe;Se.push({type:"text",id:I,nodeType:i.type,compositorKeys:b.length>0?[...b]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:b.length>0?[...b]:void 0,clip:s});for(let oe of V)OM(Se,oe.commands);Kn("draw");let ce=Jw(e,D,H,Se,v,Ee);return AM(Ee,ce.commands,v),{commands:ce.commands,hasCompositor:v,subtreeSignature:Ee}}function LM(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 jM(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=LM(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function BM(e){let t=eR(e),r=Rl.get(e),n=Qw(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=SM(t.commands),s=t.hasCompositor?Vw(o,Zw(e)):o,i=jM(s),a=Rl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),CM(t.subtreeSignature,i,n),i}function tR(e,t,r={}){let n=gM(r),o=fM(t),s=Date.now(),i=Rn(),a=Rn(),l=Mk(e,o.width,o.height),d=Rn()-a,c=Rn(),u=BM(l),p=MM(u),g=Rn()-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}},k=Ok();f.structural.layoutReuseCount=k.layoutReuseCount,f.structural.layoutFreshCount=k.layoutFreshCount,f.structural.drawReuseCount=k.drawReuseCount,f.structural.drawFreshCount=k.drawFreshCount,f.structural.invalidationEscalationCount=k.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=k.absorbedLayoutDirtyCount;let b,v,T,$=[],D=!1,L=()=>(b||(b=hM(l)),b),W=()=>(v||(v=bM(l)),v),K=()=>{if(!T){let fe=Rn();T=Tw(l),f.phases.hitTargetRegistrationMs=Rn()-fe,f.structural.hitTargetCount=T.length}return T},H=()=>(D||($.push(...yM(L())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(L(),W()),n.eagerWarnings&&H(),n.eagerHitTargets&&K();let I=wM(L,W,o,$,f),G=Date.now(),V=Rn()-i;return f.frameEndAt=G,f.totalFrameMs=V,{info:{frameId:lM++,committedAt:G,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:I,metrics:f,get hitTargets(){return K()},get warnings(){return H()}}}function rR(e,t){kp(t).committedFrameSnapshot=e}function nR(e){return kp(e).committedFrameSnapshot}function oR(e){kp(e).committedFrameSnapshot=null}function it(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Tt(e,t,r){e.metrics.structural[t]=r}function sR(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 aR=Symbol("tuiuiu.progressive-runtime-state");function iR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function $M(e){if(e.id===0)return iR();let t=Ft(aR,iR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function wp(){let e=Ge();return De(aR,()=>$M(e),e)}function lR(){return wp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function dR(){return wp().capabilityOverrides}function Rp(){return wp().progressiveVersion}function NM(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=ll(t),a=lw(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",k=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",b=l.strikethrough||k,v=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,$=T.columns||80,D=T.rows||24,L=lR(),W={unicode:u,colors:p,mouse:g,trueColor:f,italic:k,strikethrough:b,hyperlinks:v,terminalName:c,isCI:d,columns:$,rows:D,profile:i,synchronizedOutput:l.synchronizedOutput,styledUnderlines:l.styledUnderlines,coloredUnderlines:l.coloredUnderlines,clipboard:l.clipboard,notifications:l.notifications,multiplexer:a,cursorStyleControl:l.cursorStyleControl,windowTitle:l.windowTitle,gpuAccelerated:i.gpuAccelerated,kittyKeyboard:l.kittyKeyboard,focusEvents:l.focusEvents,nerdFonts:L},K=dR();return K&&Object.assign(W,K),W}var cR=Symbol("tuiuiu.capability-runtime-state");function uR(e){let t=e.id===0?"auto":Zo(Ft(cR,()=>uR(Or())).renderModeSignal),[r,n]=fr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Cr](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function ki(e){let t=Ge(e);return De(cR,()=>uR(t),t)}function pR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function GM(e){return NM({env:e.source.env,stdout:e.source.stdout??process.stdout})}function _l(e){return e.cachedCapabilities=GM(e),e.cachedProgressiveVersion=Rp(),e.cachedCapabilities}function fR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{_l(e);let r=pR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function gR(e){let t=ki(),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,fR(t)}function Mr(){let e=ki(),t=Rp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&_l(e),e.cachedCapabilities??_l(e)}function hR(){return _l(ki())}function mR(){return pR(ki())}function bR(e){let t=ki();return t.resizeHandlers.add(e),fR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var yR={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},WM={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},HM=512,Yn=new Map,kR=4e6;function Lr(){return{char:" ",attrs:{}}}function xp(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 UM(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&&xp(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function wR(e,t){return e.char===t.char&&xp(e.fg,t.fg)&&xp(e.bg,t.bg)&&UM(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function xl(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>kR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${kR} 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(Lr());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||xe(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Lr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,xe(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Lr(),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]=Lr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&xe(s.char)>1&&(this.cells[r][t-1]=Lr(),this.addDamage(t-1,r,1,1))}return}let o=xe(n.char);if(!(o<=1)){this.cells[r][t]=Lr(),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]=Lr(),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=xe(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=qn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
195
- `)continue;if(a>=this.width)break;let c=xe(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(xe(o)!==1){let c=xe(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(xe(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]=Lr();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,xl(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];wR(a,l)||r.push({x:i,y:s,cell:xl(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=qM(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];wR(d,c)||n.push({x:l,y:i.y,cell:xl(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,xl(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}${_R(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function qM(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||KM(o)?RR(s,i,o):VM(s,i,o)}function KM(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 RR(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 VM(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 wi=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 Ep(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(yR[e]!==void 0){let n=t?40:30,o=yR[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 zM(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(WM[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=JM(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 JM(e){let t=Ep(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 _p(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function _R(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),_p(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",_p(e),_p(t)].join("|")}function xR(e,t,r){let n=_R(e,t,r),o=Yn.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...zM(r));let i=Ep(e,!1),a=Ep(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(Yn.has(n))Yn.delete(n);else if(Yn.size>=HM){let d=Yn.keys().next();d.done||Yn.delete(d.value)}return Yn.set(n,l),l===""?null:l}function YM(e){return e.length===1&&e.charCodeAt(0)<=127?1:xe(e)}function El(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=xR(l.fg,l.bg,l.attrs);d!==i&&(a(),i!==null&&o.push("\x1B[0m"),d!==null&&o.push(`\x1B[${d}m`),i=d),s+=l.char}a(),i!==null&&o.push("\x1B[0m"),r.push(o.join("").trimEnd())}if(!t)for(;r.length>0&&r[r.length-1]==="";)r.pop();return r.join(`
196
- `)}function vp(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=xR(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+(YM(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function vl(e,t){let r=t??Mr().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 QM="\x1B[?2026h",XM="\x1B[?2026l";function ER(e){let t=e??Mr();return t.synchronizedOutput?vl(QM,t.multiplexer):""}function vR(e){let t=e??Mr();return t.synchronizedOutput?vl(XM,t.multiplexer):""}var Sp={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 TR="\x1B[?25h",ZM="\x1B[?25l",Sl=!1,SR=!1,eL=null,Tp=null;function Pp(e){return"isTTY"in e&&!!e.isTTY}function tL(){let e=Tp??process.stdout;Pp(e)&&Sl&&(e.write(TR),Sl=!1)}function rL(){SR||(SR=!0,eL=Qr(tL))}function ts(e=process.stdout){Pp(e)&&(Tp=e,Sl=!1,e.write(TR))}function rs(e=process.stdout){Pp(e)&&(Tp=e,rL(),Sl=!0,e.write(ZM))}var nL="#ffffff",oL="#000000",sL="transparent",y={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},iL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},aL={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},h={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"},ae={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},lL={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ue={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},dL={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},cL={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},pe={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},uL={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},pL={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Ze={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},fL={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},ee={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},gL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},hL={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},mL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},bL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},yL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},kL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},PR={white:nL,black:oL,transparent:sL,slate:y,gray:iL,zinc:aL,neutral:h,stone:He,red:ae,orange:lL,amber:ue,yellow:dL,lime:cL,green:pe,emerald:uL,teal:pL,cyan:Ze,sky:fL,blue:ee,indigo:gL,violet:hL,purple:mL,fuchsia:bL,pink:yL,rose:kL};var Z={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[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:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[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]}},Ap={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:Z,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:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:Z.success[500],warning:Z.warning[500],critical:Z.danger[500],info:Ze[500],highlight:Z.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:Z.primary[400],ring:{color:Z.primary[500],width:2}},disabled:{opacity:.4,bg:y[800],fg:y[500]},selected:{bg:Z.primary[700],fg:"#ffffff"}},borders:{default:y[700],subtle:y[800],strong:y[500],accent:Z.primary[500],danger:Z.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Z.primary[500],fg:"#ffffff",hoverBg:Z.primary[400],activeBg:Z.primary[600],border:"transparent"},secondary:{bg:y[700],fg:y[50],hoverBg:y[600],activeBg:y[800],border:"transparent"},outline:{bg:"transparent",fg:Z.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:Z.primary[500]},ghost:{bg:"transparent",fg:y[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:y[800],headerBg:y[700],footerBg:y[700],border:y[700]},menu:{bg:y[800],border:y[700],item:{fg:y[50],hoverBg:y[700],activeBg:Z.primary[700],selectedBg:Z.primary[600],disabledFg:y[500]}},tabs:{bg:y[800],border:y[700],tab:{fg:y[400],activeFg:y[50],activeBg:y[700],hoverFg:y[200],indicator:Z.primary[500]}},dropdown:{bg:y[800],border:y[700],item:{fg:y[50],hoverBg:y[700],selectedBg:Z.primary[700]}},input:{bg:y[800],fg:y[50],placeholder:y[500],border:y[700],focusBorder:Z.primary[500],invalidBorder:Z.danger[500]},checkbox:{bg:y[800],border:y[600],checkColor:"#ffffff",checkedBg:Z.primary[500]},radio:{bg:y[800],dotColor:Z.primary[500],border:y[600],checkedBorder:Z.primary[500]},tooltip:{bg:y[700],fg:y[50]},modal:{bg:y[800],border:y[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:y[700],fg:y[50]},success:{bg:Z.success[500],fg:"#ffffff"},warning:{bg:Z.warning[500],fg:y[900]},danger:{bg:Z.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:y[800],selectedBg:Z.primary[700],fg:y[50]}},header:{default:{bg:y[800],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[700]},primary:{bg:Z.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.primary[700]},secondary:{bg:y[700],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},success:{bg:Z.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.success[700]},warning:{bg:Z.warning[500],fg:y[900],titleFg:y[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Z.warning[600]},danger:{bg:Z.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.danger[700]}},statusbar:{default:{bg:y[800],fg:y[400]},primary:{bg:Z.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Z.success[600],fg:"#ffffff"},warning:{bg:Z.warning[500],fg:y[900]},danger:{bg:Z.danger[600],fg:"#ffffff"}},page:{default:{bg:y[900],titleFg:y[50],subtitleFg:y[400],border:y[700]},primary:{bg:y[900],titleFg:Z.primary[400],subtitleFg:y[400],border:Z.primary[700]},secondary:{bg:y[900],titleFg:y[200],subtitleFg:y[500],border:y[700]}},appshell:{bg:y[950],dividerFg:y[700],sidebarBg:y[900],asideBg:y[900]},collapsible:{default:{headerBg:y[800],headerFg:y[50],contentBg:y[900],border:y[700],iconFg:y[400]},primary:{headerBg:Z.primary[700],headerFg:"#ffffff",contentBg:y[900],border:Z.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:y[700],headerFg:y[50],contentBg:y[800],border:y[600],iconFg:y[400]}},commandPalette:{bg:y[800],border:y[700],inputBg:y[900],inputFg:y[50],inputPlaceholder:y[500],itemFg:y[50],itemHoverBg:y[700],itemSelectedBg:Z.primary[700],itemSelectedFg:"#ffffff",highlightFg:Z.primary[400],categoryFg:y[500]},splitPanel:{bg:y[900],dividerBg:y[700],dividerHoverBg:y[600],dividerActiveBg:Z.primary[500],border:y[700],titleFg:y[400]},toast:{success:{bg:Z.success[900],fg:Z.success[100],border:Z.success[600],iconFg:Z.success[400]},error:{bg:Z.danger[900],fg:Z.danger[100],border:Z.danger[600],iconFg:Z.danger[400]},warning:{bg:Z.warning[900],fg:Z.warning[100],border:Z.warning[500],iconFg:Z.warning[400]},info:{bg:Ze[900],fg:Ze[100],border:Ze[600],iconFg:Ze[400]}},window:{default:{bg:y[900],fg:y[100],titleBarBg:y[800],titleBarFg:y[100],border:y[700],buttonFg:y[400],closeFg:Z.danger[500]},primary:{bg:y[900],fg:y[100],titleBarBg:Z.primary[600],titleBarFg:"#ffffff",border:Z.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:y[900],fg:y[100],titleBarBg:Z.success[600],titleBarFg:"#ffffff",border:Z.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:y[900],fg:y[100],titleBarBg:Z.warning[500],titleBarFg:y[900],border:Z.warning[600],buttonFg:y[700],closeFg:y[900]},danger:{bg:y[900],fg:y[100],titleBarBg:Z.danger[600],titleBarFg:"#ffffff",border:Z.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[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:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[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]}},AR={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:y[100],base:"#ffffff",subtle:y[50],surface:"#ffffff",raised:y[100],elevated:y[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:y[950],secondary:y[700],muted:y[500],disabled:y[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:pe[600],warning:ue[600],critical:ae[600],info:Ze[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:y[100],fg:y[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:y[200],subtle:y[100],strong:y[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:y[100],fg:y[900],hoverBg:y[200],activeBg:y[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:y[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:y[50],footerBg:y[50],border:y[200]},menu:{bg:"#ffffff",border:y[200],item:{fg:y[900],hoverBg:y[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:y[400]}},tabs:{bg:"#ffffff",border:y[200],tab:{fg:y[600],activeFg:y[900],activeBg:"#ffffff",hoverFg:y[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:y[200],item:{fg:y[900],hoverBg:y[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:y[900],placeholder:y[400],border:y[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:y[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:y[300],checkedBorder:Y.primary[600]},tooltip:{bg:y[900],fg:y[50]},modal:{bg:"#ffffff",border:y[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:y[100],fg:y[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:y[50],selectedBg:Y.primary[100],fg:y[900]}},header:{default:{bg:y[100],fg:y[900],titleFg:y[900],subtitleFg:y[600],border:y[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:y[200],fg:y[800],titleFg:y[800],subtitleFg:y[600],border:y[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:y[900],titleFg:y[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:y[100],fg:y[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:y[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:y[900],subtitleFg:y[600],border:y[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:y[600],border:Y.primary[200]},secondary:{bg:y[50],titleFg:y[700],subtitleFg:y[500],border:y[200]}},appshell:{bg:y[100],dividerFg:y[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:y[100],headerFg:y[900],contentBg:"#ffffff",border:y[200],iconFg:y[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:y[200],headerFg:y[800],contentBg:y[50],border:y[300],iconFg:y[600]}},commandPalette:{bg:"#ffffff",border:y[200],inputBg:y[50],inputFg:y[900],inputPlaceholder:y[400],itemFg:y[900],itemHoverBg:y[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:y[500]},splitPanel:{bg:"#ffffff",dividerBg:y[200],dividerHoverBg:y[300],dividerActiveBg:Y.primary[500],border:y[200],titleFg:y[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:Ze[50],fg:Ze[900],border:Ze[200],iconFg:Ze[600]}},window:{default:{bg:"#ffffff",fg:y[900],titleBarBg:y[100],titleBarFg:y[900],border:y[200],buttonFg:y[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:y[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:y[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:y[900],titleBarBg:Y.warning[500],titleBarFg:y[900],border:Y.warning[200],buttonFg:y[700],closeFg:y[900]},danger:{bg:"#ffffff",fg:y[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},Qn={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"}},CR={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:Qn,background:{lowest:O.backgroundDark,base:O.background,subtle:O.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:O.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:O.foreground,secondary:"#E8E8E2",muted:O.comment,disabled:"#5B5A4F",inverse:{base:O.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:O.green,warning:O.yellow,critical:O.pink,info:O.cyan,highlight:O.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:O.green,ring:{color:O.green,width:2}},disabled:{opacity:.4,bg:O.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:O.foreground}},borders:{default:"#49483E",subtle:O.backgroundLight,strong:O.comment,accent:O.green,danger:O.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:O.green,fg:O.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:O.foreground,hoverBg:"#5B5A4F",activeBg:O.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:O.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:O.green},ghost:{bg:"transparent",fg:O.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:O.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:O.backgroundLight,border:"#49483E",tab:{fg:O.comment,activeFg:O.foreground,activeBg:O.background,hoverFg:"#E8E8E2",indicator:O.green}},dropdown:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:O.backgroundLight,fg:O.foreground,placeholder:O.comment,border:"#49483E",focusBorder:O.green,invalidBorder:O.pink},checkbox:{bg:O.backgroundLight,border:"#5B5A4F",checkColor:O.background,checkedBg:O.green},radio:{bg:O.backgroundLight,dotColor:O.green,border:"#5B5A4F",checkedBorder:O.green},tooltip:{bg:"#49483E",fg:O.foreground},modal:{bg:O.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:O.foreground},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:O.backgroundLight,selectedBg:"#49483E",fg:O.foreground}},header:{default:{bg:O.backgroundLight,fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#5B5A4F"},success:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:O.yellow,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:O.orange},danger:{bg:O.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:O.backgroundLight,fg:O.comment},primary:{bg:O.green,fg:O.background},info:{bg:O.cyan,fg:O.background},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},page:{default:{bg:O.background,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.background,titleFg:O.green,subtitleFg:O.comment,border:O.green},secondary:{bg:O.background,titleFg:"#E8E8E2",subtitleFg:O.comment,border:"#49483E"}},appshell:{bg:O.backgroundDark,dividerFg:"#49483E",sidebarBg:O.background,asideBg:O.background},collapsible:{default:{headerBg:O.backgroundLight,headerFg:O.foreground,contentBg:O.background,border:"#49483E",iconFg:O.comment},primary:{headerBg:"#49483E",headerFg:O.green,contentBg:O.background,border:O.green,iconFg:O.green},secondary:{headerBg:"#49483E",headerFg:O.foreground,contentBg:O.backgroundLight,border:"#5B5A4F",iconFg:O.comment}},commandPalette:{bg:O.backgroundLight,border:"#49483E",inputBg:O.background,inputFg:O.foreground,inputPlaceholder:O.comment,itemFg:O.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:O.foreground,highlightFg:O.green,categoryFg:O.comment},splitPanel:{bg:O.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:O.green,border:"#49483E",titleFg:O.comment},toast:{success:{bg:Qn.success[900],fg:Qn.success[100],border:O.green,iconFg:O.green},error:{bg:Qn.danger[900],fg:Qn.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:Qn.warning[900],fg:Qn.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},Xn={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},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:"#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"}},OR={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:Xn,background:{lowest:"#21222C",base:P.background,subtle:P.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:P.comment,popover:P.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:P.foreground,secondary:"#E8E8E2",muted:P.comment,disabled:"#565869",inverse:{base:P.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:P.purple,ring:{color:P.purple,width:2}},disabled:{opacity:.4,bg:P.currentLine,fg:"#565869"},selected:{bg:P.currentLine,fg:P.foreground}},borders:{default:P.comment,subtle:P.currentLine,strong:P.purple,accent:P.purple,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:P.purple,fg:P.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:P.currentLine,fg:P.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:P.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:P.purple},ghost:{bg:"transparent",fg:P.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:P.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:P.comment},menu:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:P.currentLine,border:P.comment,tab:{fg:P.comment,activeFg:P.foreground,activeBg:P.background,hoverFg:"#E8E8E2",indicator:P.purple}},dropdown:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:P.currentLine,fg:P.foreground,placeholder:P.comment,border:P.comment,focusBorder:P.purple,invalidBorder:P.red},checkbox:{bg:P.currentLine,border:P.comment,checkColor:P.foreground,checkedBg:P.purple},radio:{bg:P.currentLine,dotColor:P.purple,border:P.comment,checkedBorder:P.purple},tooltip:{bg:"#4D4F5F",fg:P.foreground},modal:{bg:P.currentLine,border:P.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:P.comment,fg:P.foreground},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.currentLine,selectedBg:"#4D4F5F",fg:P.foreground}},header:{default:{bg:P.currentLine,fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.purple,fg:P.foreground,titleFg:P.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:"#565869"},success:{bg:P.green,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:P.yellow,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.currentLine,fg:P.comment},primary:{bg:P.purple,fg:P.foreground},info:{bg:P.cyan,fg:P.background},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.background,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.background,titleFg:P.purple,subtitleFg:P.comment,border:P.purple},secondary:{bg:P.background,titleFg:"#E8E8E2",subtitleFg:P.comment,border:P.currentLine}},appshell:{bg:"#21222C",dividerFg:P.comment,sidebarBg:P.background,asideBg:P.background},collapsible:{default:{headerBg:P.currentLine,headerFg:P.foreground,contentBg:P.background,border:P.comment,iconFg:P.comment},primary:{headerBg:"#4D4F5F",headerFg:P.purple,contentBg:P.background,border:P.purple,iconFg:P.purple},secondary:{headerBg:"#4D4F5F",headerFg:P.foreground,contentBg:P.currentLine,border:"#565869",iconFg:P.comment}},commandPalette:{bg:P.currentLine,border:P.comment,inputBg:P.background,inputFg:P.foreground,inputPlaceholder:P.comment,itemFg:P.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:P.foreground,highlightFg:P.purple,categoryFg:P.comment},splitPanel:{bg:P.background,dividerBg:P.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:P.purple,border:P.comment,titleFg:P.comment},toast:{success:{bg:Xn.success[900],fg:Xn.success[100],border:P.green,iconFg:P.green},error:{bg:Xn.danger[900],fg:Xn.danger[100],border:P.red,iconFg:P.red},warning:{bg:Xn.warning[900],fg:Xn.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.background,fg:P.foreground,titleBarBg:P.currentLine,titleBarFg:P.foreground,border:P.comment,buttonFg:P.comment,closeFg:P.red},primary:{bg:P.background,fg:P.foreground,titleBarBg:P.purple,titleBarFg:P.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:P.foreground},success:{bg:P.background,fg:P.foreground,titleBarBg:P.green,titleBarFg:P.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},warning:{bg:P.background,fg:P.foreground,titleBarBg:P.yellow,titleBarFg:P.background,border:P.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},danger:{bg:P.background,fg:P.foreground,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={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"},Zn={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:x.nord8,400:x.nord8,500:x.nord8,600:x.nord9,700:x.nord10,800:"#1E40AF",900:"#1E3A8A"},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:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.nord14,500:x.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:x.nord13,400:x.nord13,500:x.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:x.nord11,500:x.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:x.nord6,100:x.nord5,200:x.nord4,300:"#A3ADB8",400:"#7A8694",500:x.nord3,600:x.nord2,700:x.nord1,800:x.nord0,900:"#242933"}},DR={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:Zn,background:{lowest:"#242933",base:x.nord0,subtle:x.nord1,surface:x.nord2,raised:x.nord3,elevated:"#5E6779",popover:x.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:x.nord6,secondary:x.nord5,muted:x.nord4,disabled:x.nord3,inverse:{base:x.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:x.nord14,warning:x.nord13,critical:x.nord11,info:x.nord9,highlight:x.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.nord8,ring:{color:x.nord8,width:2}},disabled:{opacity:.4,bg:x.nord1,fg:x.nord3},selected:{bg:x.nord1,fg:x.nord6}},borders:{default:x.nord3,subtle:x.nord1,strong:x.nord4,accent:x.nord8,danger:x.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:x.nord8,fg:x.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:x.nord2,fg:x.nord6,hoverBg:x.nord3,activeBg:x.nord1,border:"transparent"},outline:{bg:"transparent",fg:x.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:x.nord8},ghost:{bg:"transparent",fg:x.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.nord1,headerBg:x.nord2,footerBg:x.nord2,border:x.nord3},menu:{bg:x.nord1,border:x.nord3,item:{fg:x.nord6,hoverBg:x.nord2,activeBg:x.nord3,selectedBg:x.nord2,disabledFg:x.nord3}},tabs:{bg:x.nord1,border:x.nord3,tab:{fg:x.nord4,activeFg:x.nord6,activeBg:x.nord0,hoverFg:x.nord5,indicator:x.nord8}},dropdown:{bg:x.nord1,border:x.nord3,item:{fg:x.nord6,hoverBg:x.nord2,selectedBg:x.nord3}},input:{bg:x.nord1,fg:x.nord6,placeholder:x.nord4,border:x.nord3,focusBorder:x.nord8,invalidBorder:x.nord11},checkbox:{bg:x.nord1,border:x.nord3,checkColor:x.nord0,checkedBg:x.nord8},radio:{bg:x.nord1,dotColor:x.nord8,border:x.nord3,checkedBorder:x.nord8},tooltip:{bg:x.nord2,fg:x.nord6},modal:{bg:x.nord1,border:x.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:x.nord3,fg:x.nord6},success:{bg:x.nord14,fg:x.nord0},warning:{bg:x.nord13,fg:x.nord0},danger:{bg:x.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.nord1,selectedBg:x.nord2,fg:x.nord6}},header:{default:{bg:x.nord1,fg:x.nord6,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},primary:{bg:x.nord8,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:x.nord9},secondary:{bg:x.nord2,fg:x.nord6,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},success:{bg:x.nord14,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:x.nord13,fg:x.nord0,titleFg:x.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:x.nord12},danger:{bg:x.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:x.nord1,fg:x.nord4},primary:{bg:x.nord8,fg:x.nord0},info:{bg:x.nord9,fg:"#ffffff"},success:{bg:x.nord14,fg:x.nord0},warning:{bg:x.nord13,fg:x.nord0},danger:{bg:x.nord11,fg:"#ffffff"}},page:{default:{bg:x.nord0,titleFg:x.nord6,subtitleFg:x.nord4,border:x.nord3},primary:{bg:x.nord0,titleFg:x.nord8,subtitleFg:x.nord4,border:x.nord8},secondary:{bg:x.nord0,titleFg:x.nord5,subtitleFg:x.nord4,border:x.nord1}},appshell:{bg:"#242933",dividerFg:x.nord3,sidebarBg:x.nord0,asideBg:x.nord0},collapsible:{default:{headerBg:x.nord1,headerFg:x.nord6,contentBg:x.nord0,border:x.nord3,iconFg:x.nord4},primary:{headerBg:x.nord2,headerFg:x.nord8,contentBg:x.nord0,border:x.nord8,iconFg:x.nord8},secondary:{headerBg:x.nord2,headerFg:x.nord6,contentBg:x.nord1,border:x.nord3,iconFg:x.nord4}},commandPalette:{bg:x.nord1,border:x.nord3,inputBg:x.nord0,inputFg:x.nord6,inputPlaceholder:x.nord4,itemFg:x.nord6,itemHoverBg:x.nord2,itemSelectedBg:x.nord3,itemSelectedFg:x.nord6,highlightFg:x.nord8,categoryFg:x.nord4},splitPanel:{bg:x.nord0,dividerBg:x.nord3,dividerHoverBg:x.nord2,dividerActiveBg:x.nord8,border:x.nord3,titleFg:x.nord4},toast:{success:{bg:Zn.success[900],fg:Zn.success[100],border:x.nord14,iconFg:x.nord14},error:{bg:Zn.danger[900],fg:Zn.danger[100],border:x.nord11,iconFg:x.nord11},warning:{bg:Zn.warning[900],fg:Zn.warning[100],border:x.nord13,iconFg:x.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.nord9,iconFg:x.nord9}},window:{default:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord1,titleBarFg:x.nord6,border:x.nord3,buttonFg:x.nord4,closeFg:x.nord11},primary:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord8,titleBarFg:x.nord0,border:x.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},success:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord14,titleBarFg:x.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},warning:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord13,titleBarFg:x.nord0,border:x.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:x.nord0},danger:{bg:x.nord0,fg:x.nord6,titleBarBg:x.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},eo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:S.blue,500:S.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50: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:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:S.green,500:S.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:S.yellow,500:S.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.red,500:S.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.base3,100:S.base2,200:S.base1,300:S.base0,400:S.base00,500:S.base01,600:"#4A5A60",700:S.base02,800:S.base03,900:"#001E26"}},FR={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:S.base03,subtle:S.base02,surface:"#094652",raised:"#0B5A66",elevated:S.base01,popover:S.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.base0,secondary:S.base1,muted:S.base00,disabled:S.base01,inverse:{base:S.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:S.green,warning:S.yellow,critical:S.red,info:S.cyan,highlight:S.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.blue,ring:{color:S.blue,width:2}},disabled:{opacity:.4,bg:S.base02,fg:S.base01},selected:{bg:S.base02,fg:S.base1}},borders:{default:S.base01,subtle:S.base02,strong:S.base0,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:S.base02,fg:S.base1,hoverBg:"#094652",activeBg:S.base03,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.base02,headerBg:"#094652",footerBg:"#094652",border:S.base01},menu:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:S.base01}},tabs:{bg:S.base02,border:S.base01,tab:{fg:S.base00,activeFg:S.base1,activeBg:S.base03,hoverFg:S.base0,indicator:S.blue}},dropdown:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:S.base02,fg:S.base0,placeholder:S.base00,border:S.base01,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.base02,border:S.base01,checkColor:S.base3,checkedBg:S.blue},radio:{bg:S.base02,dotColor:S.blue,border:S.base01,checkedBorder:S.blue},tooltip:{bg:"#094652",fg:S.base1},modal:{bg:S.base02,border:S.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.base01,fg:S.base1},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.base02,selectedBg:"#094652",fg:S.base0}},header:{default:{bg:S.base02,fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.blue,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:"#0B5A66"},success:{bg:S.green,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.base03,titleFg:S.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.base02,fg:S.base00},primary:{bg:S.blue,fg:S.base3},info:{bg:S.cyan,fg:S.base03},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.base03,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.base03,titleFg:S.blue,subtitleFg:S.base00,border:S.blue},secondary:{bg:S.base03,titleFg:S.base0,subtitleFg:S.base00,border:S.base02}},appshell:{bg:"#001E26",dividerFg:S.base01,sidebarBg:S.base03,asideBg:S.base03},collapsible:{default:{headerBg:S.base02,headerFg:S.base1,contentBg:S.base03,border:S.base01,iconFg:S.base00},primary:{headerBg:"#094652",headerFg:S.blue,contentBg:S.base03,border:S.blue,iconFg:S.blue},secondary:{headerBg:"#094652",headerFg:S.base1,contentBg:S.base02,border:"#0B5A66",iconFg:S.base00}},commandPalette:{bg:S.base02,border:S.base01,inputBg:S.base03,inputFg:S.base0,inputPlaceholder:S.base00,itemFg:S.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:S.base1,highlightFg:S.blue,categoryFg:S.base00},splitPanel:{bg:S.base03,dividerBg:S.base01,dividerHoverBg:"#094652",dividerActiveBg:S.blue,border:S.base01,titleFg:S.base00},toast:{success:{bg:eo.success[900],fg:eo.success[100],border:S.green,iconFg:S.green},error:{bg:eo.danger[900],fg:eo.danger[100],border:S.red,iconFg:S.red},warning:{bg:eo.warning[900],fg:eo.warning[100],border:S.yellow,iconFg:S.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.cyan,iconFg:S.cyan}},window:{default:{bg:S.base03,fg:S.base0,titleBarBg:S.base02,titleBarFg:S.base1,border:S.base01,buttonFg:S.base00,closeFg:S.red},primary:{bg:S.base03,fg:S.base0,titleBarBg:S.blue,titleBarFg:S.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},success:{bg:S.base03,fg:S.base0,titleBarBg:S.green,titleBarFg:S.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},warning:{bg:S.base03,fg:S.base0,titleBarBg:S.yellow,titleBarFg:S.base03,border:S.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:S.base03},danger:{bg:S.base03,fg:S.base0,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var R={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"},to={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:R.green,500:R.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:R.green,500:R.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:R.yellow,500:R.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:R.red,500:R.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:R.fg0,100:R.fg1,200:R.fg2,300:R.fg3,400:R.fg4,500:R.gray,600:R.bg4,700:R.bg3,800:R.bg2,900:R.bg1}},IR={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:to,background:{lowest:R.bg0_h,base:R.bg0,subtle:R.bg1,surface:R.bg2,raised:R.bg3,elevated:R.bg4,popover:R.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:R.fg1,secondary:R.fg2,muted:R.gray,disabled:R.bg3,inverse:{base:R.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:R.green,warning:R.yellow,critical:R.red,info:R.blue,highlight:R.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:R.green,ring:{color:R.green,width:2}},disabled:{opacity:.4,bg:R.bg1,fg:R.bg3},selected:{bg:R.bg2,fg:R.fg1}},borders:{default:R.bg3,subtle:R.bg2,strong:R.gray,accent:R.green,danger:R.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:R.green,fg:R.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:R.bg2,fg:R.fg1,hoverBg:R.bg3,activeBg:R.bg1,border:"transparent"},outline:{bg:"transparent",fg:R.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:R.green},ghost:{bg:"transparent",fg:R.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:R.bg1,headerBg:R.bg2,footerBg:R.bg2,border:R.bg3},menu:{bg:R.bg1,border:R.bg3,item:{fg:R.fg1,hoverBg:R.bg2,activeBg:R.bg3,selectedBg:R.bg2,disabledFg:R.bg3}},tabs:{bg:R.bg1,border:R.bg3,tab:{fg:R.gray,activeFg:R.fg1,activeBg:R.bg0,hoverFg:R.fg2,indicator:R.green}},dropdown:{bg:R.bg1,border:R.bg3,item:{fg:R.fg1,hoverBg:R.bg2,selectedBg:R.bg3}},input:{bg:R.bg1,fg:R.fg1,placeholder:R.gray,border:R.bg3,focusBorder:R.green,invalidBorder:R.red},checkbox:{bg:R.bg1,border:R.bg3,checkColor:R.bg0,checkedBg:R.green},radio:{bg:R.bg1,dotColor:R.green,border:R.bg3,checkedBorder:R.green},tooltip:{bg:R.bg2,fg:R.fg1},modal:{bg:R.bg1,border:R.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:R.bg3,fg:R.fg1},success:{bg:R.green,fg:R.bg0},warning:{bg:R.yellow,fg:R.bg0},danger:{bg:R.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:R.bg1,selectedBg:R.bg2,fg:R.fg1}},header:{default:{bg:R.bg1,fg:R.fg1,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},primary:{bg:R.green,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:R.bg2,fg:R.fg1,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},success:{bg:R.green,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:R.yellow,fg:R.bg0,titleFg:R.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:R.orange},danger:{bg:R.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:R.bg1,fg:R.gray},primary:{bg:R.green,fg:R.bg0},info:{bg:R.blue,fg:R.bg0},success:{bg:R.green,fg:R.bg0},warning:{bg:R.yellow,fg:R.bg0},danger:{bg:R.red,fg:"#ffffff"}},page:{default:{bg:R.bg0,titleFg:R.fg1,subtitleFg:R.gray,border:R.bg3},primary:{bg:R.bg0,titleFg:R.green,subtitleFg:R.gray,border:R.green},secondary:{bg:R.bg0,titleFg:R.fg2,subtitleFg:R.gray,border:R.bg2}},appshell:{bg:R.bg0_h,dividerFg:R.bg3,sidebarBg:R.bg0,asideBg:R.bg0},collapsible:{default:{headerBg:R.bg1,headerFg:R.fg1,contentBg:R.bg0,border:R.bg3,iconFg:R.gray},primary:{headerBg:R.bg2,headerFg:R.green,contentBg:R.bg0,border:R.green,iconFg:R.green},secondary:{headerBg:R.bg2,headerFg:R.fg1,contentBg:R.bg1,border:R.bg3,iconFg:R.gray}},commandPalette:{bg:R.bg1,border:R.bg3,inputBg:R.bg0,inputFg:R.fg1,inputPlaceholder:R.gray,itemFg:R.fg1,itemHoverBg:R.bg2,itemSelectedBg:R.bg3,itemSelectedFg:R.fg1,highlightFg:R.green,categoryFg:R.gray},splitPanel:{bg:R.bg0,dividerBg:R.bg3,dividerHoverBg:R.bg2,dividerActiveBg:R.green,border:R.bg3,titleFg:R.gray},toast:{success:{bg:to.success[900],fg:to.success[100],border:R.green,iconFg:R.green},error:{bg:to.danger[900],fg:to.danger[100],border:R.red,iconFg:R.red},warning:{bg:to.warning[900],fg:to.warning[100],border:R.yellow,iconFg:R.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:R.blue,iconFg:R.blue}},window:{default:{bg:R.bg0,fg:R.fg1,titleBarBg:R.bg1,titleBarFg:R.fg1,border:R.bg3,buttonFg:R.gray,closeFg:R.red},primary:{bg:R.bg0,fg:R.fg1,titleBarBg:R.green,titleBarFg:R.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},success:{bg:R.bg0,fg:R.fg1,titleBarBg:R.green,titleBarFg:R.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},warning:{bg:R.bg0,fg:R.fg1,titleBarBg:R.yellow,titleBarFg:R.bg0,border:R.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:R.bg0},danger:{bg:R.bg0,fg:R.fg1,titleBarBg:R.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={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"},ro={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:E.blue,500:E.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},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:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:E.green,500:E.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},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:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},MR={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:ro,background:{lowest:E.bgDark,base:E.bg,subtle:E.bgHighlight,surface:E.bgPopup,raised:E.dark3,elevated:E.comment,popover:E.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:E.fg,secondary:E.fgDark,muted:E.comment,disabled:E.dark3,inverse:{base:E.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:E.green,warning:E.yellow,critical:E.red,info:E.cyan,highlight:E.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.blue,ring:{color:E.blue,width:2}},disabled:{opacity:.4,bg:E.bgHighlight,fg:E.dark3},selected:{bg:E.bgHighlight,fg:E.fg}},borders:{default:E.dark3,subtle:E.bgHighlight,strong:E.comment,accent:E.blue,danger:E.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:E.blue,fg:E.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:E.bgHighlight,fg:E.fg,hoverBg:E.bgPopup,activeBg:E.dark3,border:"transparent"},outline:{bg:"transparent",fg:E.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:E.blue},ghost:{bg:"transparent",fg:E.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.bgHighlight,headerBg:E.bgPopup,footerBg:E.bgPopup,border:E.dark3},menu:{bg:E.bgHighlight,border:E.dark3,item:{fg:E.fg,hoverBg:E.bgPopup,activeBg:E.dark3,selectedBg:E.bgPopup,disabledFg:E.dark3}},tabs:{bg:E.bgHighlight,border:E.dark3,tab:{fg:E.comment,activeFg:E.fg,activeBg:E.bg,hoverFg:E.fgDark,indicator:E.blue}},dropdown:{bg:E.bgHighlight,border:E.dark3,item:{fg:E.fg,hoverBg:E.bgPopup,selectedBg:E.dark3}},input:{bg:E.bgHighlight,fg:E.fg,placeholder:E.comment,border:E.dark3,focusBorder:E.blue,invalidBorder:E.red},checkbox:{bg:E.bgHighlight,border:E.dark3,checkColor:E.bg,checkedBg:E.blue},radio:{bg:E.bgHighlight,dotColor:E.blue,border:E.dark3,checkedBorder:E.blue},tooltip:{bg:E.bgPopup,fg:E.fg},modal:{bg:E.bgHighlight,border:E.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:E.dark3,fg:E.fg},success:{bg:E.green,fg:E.bg},warning:{bg:E.yellow,fg:E.bg},danger:{bg:E.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.bgHighlight,selectedBg:E.bgPopup,fg:E.fg}},header:{default:{bg:E.bgHighlight,fg:E.fg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},primary:{bg:E.blue,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:E.bgPopup,fg:E.fg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},success:{bg:E.green,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:E.yellow,fg:E.bg,titleFg:E.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:E.orange},danger:{bg:E.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:E.bgHighlight,fg:E.comment},primary:{bg:E.blue,fg:E.bg},info:{bg:E.cyan,fg:E.bg},success:{bg:E.green,fg:E.bg},warning:{bg:E.yellow,fg:E.bg},danger:{bg:E.red,fg:"#ffffff"}},page:{default:{bg:E.bg,titleFg:E.fg,subtitleFg:E.comment,border:E.dark3},primary:{bg:E.bg,titleFg:E.blue,subtitleFg:E.comment,border:E.blue},secondary:{bg:E.bg,titleFg:E.fgDark,subtitleFg:E.comment,border:E.bgHighlight}},appshell:{bg:E.bgDark,dividerFg:E.dark3,sidebarBg:E.bg,asideBg:E.bg},collapsible:{default:{headerBg:E.bgHighlight,headerFg:E.fg,contentBg:E.bg,border:E.dark3,iconFg:E.comment},primary:{headerBg:E.bgPopup,headerFg:E.blue,contentBg:E.bg,border:E.blue,iconFg:E.blue},secondary:{headerBg:E.bgPopup,headerFg:E.fg,contentBg:E.bgHighlight,border:E.dark3,iconFg:E.comment}},commandPalette:{bg:E.bgHighlight,border:E.dark3,inputBg:E.bg,inputFg:E.fg,inputPlaceholder:E.comment,itemFg:E.fg,itemHoverBg:E.bgPopup,itemSelectedBg:E.dark3,itemSelectedFg:E.fg,highlightFg:E.blue,categoryFg:E.comment},splitPanel:{bg:E.bg,dividerBg:E.dark3,dividerHoverBg:E.bgPopup,dividerActiveBg:E.blue,border:E.dark3,titleFg:E.comment},toast:{success:{bg:ro.success[900],fg:ro.success[100],border:E.green,iconFg:E.green},error:{bg:ro.danger[900],fg:ro.danger[100],border:E.red,iconFg:E.red},warning:{bg:ro.warning[900],fg:ro.warning[100],border:E.yellow,iconFg:E.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.cyan,iconFg:E.cyan}},window:{default:{bg:E.bg,fg:E.fg,titleBarBg:E.bgHighlight,titleBarFg:E.fg,border:E.dark3,buttonFg:E.comment,closeFg:E.red},primary:{bg:E.bg,fg:E.fg,titleBarBg:E.blue,titleBarFg:E.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},success:{bg:E.bg,fg:E.fg,titleBarBg:E.green,titleBarFg:E.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},warning:{bg:E.bg,fg:E.fg,titleBarBg:E.yellow,titleBarFg:E.bg,border:E.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:E.bg},danger:{bg:E.bg,fg:E.fg,titleBarBg:E.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={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"},no={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:_.mauve,500:_.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},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:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:_.green,500:_.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:_.red,500:_.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:_.text,100:_.subtext1,200:_.subtext0,300:_.overlay2,400:_.overlay1,500:_.overlay0,600:_.surface2,700:_.surface1,800:_.surface0,900:_.base}},LR={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:no,background:{lowest:_.crust,base:_.base,subtle:_.surface0,surface:_.surface1,raised:_.surface2,elevated:_.overlay0,popover:_.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.text,secondary:_.subtext1,muted:_.overlay0,disabled:_.surface2,inverse:{base:_.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.sky,highlight:_.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.mauve,ring:{color:_.mauve,width:2}},disabled:{opacity:.4,bg:_.surface0,fg:_.surface2},selected:{bg:_.surface0,fg:_.text}},borders:{default:_.overlay0,subtle:_.surface1,strong:_.subtext1,accent:_.mauve,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.mauve,fg:_.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:_.surface0,fg:_.text,hoverBg:_.surface1,activeBg:_.surface2,border:"transparent"},outline:{bg:"transparent",fg:_.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:_.mauve},ghost:{bg:"transparent",fg:_.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.surface0,headerBg:_.surface1,footerBg:_.surface1,border:_.overlay0},menu:{bg:_.surface0,border:_.overlay0,item:{fg:_.text,hoverBg:_.surface1,activeBg:_.surface2,selectedBg:_.surface1,disabledFg:_.surface2}},tabs:{bg:_.surface0,border:_.overlay0,tab:{fg:_.overlay0,activeFg:_.text,activeBg:_.base,hoverFg:_.subtext1,indicator:_.mauve}},dropdown:{bg:_.surface0,border:_.overlay0,item:{fg:_.text,hoverBg:_.surface1,selectedBg:_.surface2}},input:{bg:_.surface0,fg:_.text,placeholder:_.overlay0,border:_.overlay0,focusBorder:_.mauve,invalidBorder:_.red},checkbox:{bg:_.surface0,border:_.overlay0,checkColor:_.base,checkedBg:_.mauve},radio:{bg:_.surface0,dotColor:_.mauve,border:_.overlay0,checkedBorder:_.mauve},tooltip:{bg:_.surface1,fg:_.text},modal:{bg:_.surface0,border:_.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.surface2,fg:_.text},success:{bg:_.green,fg:_.base},warning:{bg:_.yellow,fg:_.base},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.surface0,selectedBg:_.surface1,fg:_.text}},header:{default:{bg:_.surface0,fg:_.text,titleFg:_.text,subtitleFg:_.overlay0,border:_.overlay0},primary:{bg:_.mauve,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:_.surface1,fg:_.text,titleFg:_.text,subtitleFg:_.overlay0,border:_.surface2},success:{bg:_.green,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:_.yellow,fg:_.base,titleFg:_.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:_.peach},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:_.surface0,fg:_.overlay0},primary:{bg:_.mauve,fg:_.base},info:{bg:_.sky,fg:_.base},success:{bg:_.green,fg:_.base},warning:{bg:_.yellow,fg:_.base},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.base,titleFg:_.text,subtitleFg:_.overlay0,border:_.overlay0},primary:{bg:_.base,titleFg:_.mauve,subtitleFg:_.overlay0,border:_.mauve},secondary:{bg:_.base,titleFg:_.subtext1,subtitleFg:_.overlay0,border:_.surface0}},appshell:{bg:_.crust,dividerFg:_.overlay0,sidebarBg:_.base,asideBg:_.base},collapsible:{default:{headerBg:_.surface0,headerFg:_.text,contentBg:_.base,border:_.overlay0,iconFg:_.overlay0},primary:{headerBg:_.surface1,headerFg:_.mauve,contentBg:_.base,border:_.mauve,iconFg:_.mauve},secondary:{headerBg:_.surface1,headerFg:_.text,contentBg:_.surface0,border:_.surface2,iconFg:_.overlay0}},commandPalette:{bg:_.surface0,border:_.overlay0,inputBg:_.base,inputFg:_.text,inputPlaceholder:_.overlay0,itemFg:_.text,itemHoverBg:_.surface1,itemSelectedBg:_.surface2,itemSelectedFg:_.text,highlightFg:_.mauve,categoryFg:_.overlay0},splitPanel:{bg:_.base,dividerBg:_.overlay0,dividerHoverBg:_.surface1,dividerActiveBg:_.mauve,border:_.overlay0,titleFg:_.overlay0},toast:{success:{bg:no.success[900],fg:no.success[100],border:_.green,iconFg:_.green},error:{bg:no.danger[900],fg:no.danger[100],border:_.red,iconFg:_.red},warning:{bg:no.warning[900],fg:no.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.sky,iconFg:_.sky}},window:{default:{bg:_.base,fg:_.text,titleBarBg:_.surface0,titleBarFg:_.text,border:_.overlay0,buttonFg:_.overlay0,closeFg:_.red},primary:{bg:_.base,fg:_.text,titleBarBg:_.mauve,titleBarFg:_.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},success:{bg:_.base,fg:_.text,titleBarBg:_.green,titleBarFg:_.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},warning:{bg:_.base,fg:_.text,titleBarBg:_.yellow,titleBarFg:_.base,border:_.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:_.base},danger:{bg:_.base,fg:_.text,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var oo={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},success:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},warning:{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]},danger:{50:ae[50],100:ae[100],200:ae[200],300:ae[300],400:ae[400],500:ae[500],600:ae[600],700:ae[700],800:ae[800],900:ae[900]},neutral:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]}},jR={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:oo,background:{lowest:"#000000",base:"#000000",subtle:h[950],surface:h[900],raised:h[800],elevated:h[700],popover:h[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:h[100],muted:h[300],disabled:h[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:pe[400],warning:ue[400],critical:ae[400],info:Ze[400],highlight:ee[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:ee[400],ring:{color:ee[400],width:3}},disabled:{opacity:.5,bg:h[900],fg:h[500]},selected:{bg:ee[800],fg:"#ffffff"}},borders:{default:h[500],subtle:h[700],strong:h[300],accent:ee[400],danger:ae[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:ee[500],fg:"#ffffff",hoverBg:ee[400],activeBg:ee[600],border:ee[300]},secondary:{bg:h[800],fg:"#ffffff",hoverBg:h[700],activeBg:h[900],border:h[500]},outline:{bg:"transparent",fg:ee[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:ee[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:h[950],headerBg:h[900],footerBg:h[900],border:h[500]},menu:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],activeBg:ee[800],selectedBg:ee[900],disabledFg:h[500]}},tabs:{bg:h[950],border:h[500],tab:{fg:h[300],activeFg:"#ffffff",activeBg:h[800],hoverFg:h[100],indicator:ee[400]}},dropdown:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],selectedBg:ee[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:h[400],border:h[500],focusBorder:ee[400],invalidBorder:ae[400]},checkbox:{bg:"#000000",border:h[400],checkColor:"#000000",checkedBg:ee[400]},radio:{bg:"#000000",dotColor:ee[400],border:h[400],checkedBorder:ee[400]},tooltip:{bg:h[800],fg:"#ffffff"},modal:{bg:h[950],border:h[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:h[700],fg:"#ffffff"},success:{bg:pe[500],fg:"#000000"},warning:{bg:ue[400],fg:"#000000"},danger:{bg:ae[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:h[900],selectedBg:ee[800],fg:"#ffffff"}},header:{default:{bg:h[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:ee[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee[300]},secondary:{bg:h[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},success:{bg:pe[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:pe[300]},warning:{bg:ue[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ue[600]},danger:{bg:ae[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ae[300]}},statusbar:{default:{bg:h[950],fg:h[300]},primary:{bg:ee[500],fg:"#ffffff"},info:{bg:Ze[500],fg:"#000000"},success:{bg:pe[500],fg:"#000000"},warning:{bg:ue[400],fg:"#000000"},danger:{bg:ae[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:"#000000",titleFg:ee[400],subtitleFg:h[300],border:ee[400]},secondary:{bg:"#000000",titleFg:h[100],subtitleFg:h[400],border:h[700]}},appshell:{bg:"#000000",dividerFg:h[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:h[950],headerFg:"#ffffff",contentBg:"#000000",border:h[500],iconFg:h[300]},primary:{headerBg:h[900],headerFg:ee[400],contentBg:"#000000",border:ee[400],iconFg:ee[400]},secondary:{headerBg:h[900],headerFg:"#ffffff",contentBg:h[950],border:h[500],iconFg:h[300]}},commandPalette:{bg:h[950],border:h[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:h[400],itemFg:"#ffffff",itemHoverBg:h[800],itemSelectedBg:ee[800],itemSelectedFg:"#ffffff",highlightFg:ee[400],categoryFg:h[400]},splitPanel:{bg:"#000000",dividerBg:h[500],dividerHoverBg:h[400],dividerActiveBg:ee[400],border:h[500],titleFg:h[300]},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:pe[400],iconFg:pe[400]},error:{bg:oo.danger[900],fg:oo.danger[100],border:ae[400],iconFg:ae[400]},warning:{bg:oo.warning[900],fg:oo.warning[100],border:ue[400],iconFg:ue[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Ze[400],iconFg:Ze[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:h[950],titleBarFg:"#ffffff",border:h[500],buttonFg:h[300],closeFg:ae[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:ee[500],titleBarFg:"#ffffff",border:ee[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:pe[500],titleBarFg:"#000000",border:pe[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ue[400],titleBarFg:"#000000",border:ue[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ae[500],titleBarFg:"#ffffff",border:ae[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var wL={primary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},secondary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},success:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},warning:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},danger:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},neutral:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]}},BR={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:wL,background:{lowest:h[950],base:h[900],subtle:h[800],surface:h[700],raised:h[600],elevated:h[500],popover:h[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:h[50],secondary:h[200],muted:h[400],disabled:h[500],inverse:{base:h[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:h[300],warning:h[400],critical:h[200],info:h[300],highlight:h[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:h[400],ring:{color:h[400],width:2}},disabled:{opacity:.4,bg:h[800],fg:h[500]},selected:{bg:h[700],fg:h[50]}},borders:{default:h[600],subtle:h[700],strong:h[400],accent:h[400],danger:h[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:h[300],fg:h[900],hoverBg:h[200],activeBg:h[400],border:"transparent"},secondary:{bg:h[700],fg:h[50],hoverBg:h[600],activeBg:h[800],border:"transparent"},outline:{bg:"transparent",fg:h[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:h[400]},ghost:{bg:"transparent",fg:h[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:h[800],headerBg:h[700],footerBg:h[700],border:h[600]},menu:{bg:h[800],border:h[600],item:{fg:h[50],hoverBg:h[700],activeBg:h[600],selectedBg:h[700],disabledFg:h[500]}},tabs:{bg:h[800],border:h[600],tab:{fg:h[400],activeFg:h[50],activeBg:h[700],hoverFg:h[200],indicator:h[300]}},dropdown:{bg:h[800],border:h[600],item:{fg:h[50],hoverBg:h[700],selectedBg:h[600]}},input:{bg:h[800],fg:h[50],placeholder:h[500],border:h[600],focusBorder:h[400],invalidBorder:h[300]},checkbox:{bg:h[800],border:h[500],checkColor:h[900],checkedBg:h[300]},radio:{bg:h[800],dotColor:h[300],border:h[500],checkedBorder:h[300]},tooltip:{bg:h[700],fg:h[50]},modal:{bg:h[800],border:h[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:h[700],fg:h[50]},success:{bg:h[400],fg:h[900]},warning:{bg:h[500],fg:h[900]},danger:{bg:h[300],fg:h[900]}},list:{item:{bg:"transparent",hoverBg:h[800],selectedBg:h[700],fg:h[50]}},header:{default:{bg:h[800],fg:h[50],titleFg:h[50],subtitleFg:h[400],border:h[600]},primary:{bg:h[300],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[400]},secondary:{bg:h[700],fg:h[50],titleFg:h[50],subtitleFg:h[400],border:h[600]},success:{bg:h[400],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[500]},warning:{bg:h[500],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[600]},danger:{bg:h[300],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[400]}},statusbar:{default:{bg:h[800],fg:h[400]},primary:{bg:h[300],fg:h[900]},info:{bg:h[400],fg:h[900]},success:{bg:h[400],fg:h[900]},warning:{bg:h[500],fg:h[900]},danger:{bg:h[300],fg:h[900]}},page:{default:{bg:h[900],titleFg:h[50],subtitleFg:h[400],border:h[600]},primary:{bg:h[900],titleFg:h[200],subtitleFg:h[400],border:h[500]},secondary:{bg:h[900],titleFg:h[300],subtitleFg:h[500],border:h[700]}},appshell:{bg:h[950],dividerFg:h[600],sidebarBg:h[900],asideBg:h[900]},collapsible:{default:{headerBg:h[800],headerFg:h[50],contentBg:h[900],border:h[600],iconFg:h[400]},primary:{headerBg:h[700],headerFg:h[200],contentBg:h[900],border:h[500],iconFg:h[300]},secondary:{headerBg:h[700],headerFg:h[50],contentBg:h[800],border:h[600],iconFg:h[400]}},commandPalette:{bg:h[800],border:h[600],inputBg:h[900],inputFg:h[50],inputPlaceholder:h[500],itemFg:h[50],itemHoverBg:h[700],itemSelectedBg:h[600],itemSelectedFg:h[50],highlightFg:h[200],categoryFg:h[500]},splitPanel:{bg:h[900],dividerBg:h[600],dividerHoverBg:h[500],dividerActiveBg:h[300],border:h[600],titleFg:h[400]},toast:{success:{bg:h[800],fg:h[100],border:h[400],iconFg:h[300]},error:{bg:h[800],fg:h[100],border:h[300],iconFg:h[200]},warning:{bg:h[800],fg:h[100],border:h[500],iconFg:h[400]},info:{bg:h[800],fg:h[100],border:h[400],iconFg:h[300]}},window:{default:{bg:h[900],fg:h[50],titleBarBg:h[800],titleBarFg:h[50],border:h[600],buttonFg:h[400],closeFg:h[300]},primary:{bg:h[900],fg:h[50],titleBarBg:h[300],titleBarFg:h[900],border:h[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},success:{bg:h[900],fg:h[50],titleBarBg:h[400],titleBarFg:h[900],border:h[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},warning:{bg:h[900],fg:h[50],titleBarBg:h[500],titleBarFg:h[900],border:h[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},danger:{bg:h[900],fg:h[50],titleBarBg:h[300],titleBarFg:h[900],border:h[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]}}},borderRadius:"none"};var NR=Symbol("tuiuiu.theme-runtime-state");function $R(){let[e,t]=fr(Ap);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function RL(e){if(e.id===0)return $R();let t=Ft(NR,$R),[r,n]=fr(Zo(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function GR(){let e=Ge();return De(NR,()=>RL(e),e)}function WR(){return Zo(GR().currentTheme)}var _L={dark:Ap,light:AR,monokai:CR,dracula:OR,nord:DR,solarizedDark:FR,gruvbox:IR,tokyoNight:MR,catppuccin:LR,highContrastDark:jR,monochrome:BR},$8=Object.keys(_L);function xL(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 kt(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("#")&&xL(e)>.4?"black":"white"}function EL(e,t=500){let r=PR[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var vL={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=>kt(e.palette.primary[500]),"primary-foreground":e=>kt(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=>kt(e.palette.secondary[500]),"secondary-foreground":e=>kt(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=>kt(e.accents.positive),"success-foreground":e=>kt(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=>kt(e.accents.warning),"warning-foreground":e=>kt(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=>kt(e.accents.critical),"danger-foreground":e=>kt(e.accents.critical),errorForeground:e=>kt(e.accents.critical),destructiveForeground:e=>kt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>kt(e.accents.info),"info-foreground":e=>kt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>kt(e.palette.primary[400]),"accent-foreground":e=>kt(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 HR(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=Zo(GR().currentTheme),r=vL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return EL(o,i)}return e}var SL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},UR=Symbol("tuiuiu.perf-inspector-runtime-state");function TL(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function qR(e){let t=e.id===0?null:Ft(UR,()=>qR(Or())),r=TL(t?.config??SL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function KR(){let e=Ge();return De(UR,()=>qR(e),e)}function PL(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function AL(e,t){let r=DL().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 CL(e,t){e.ring.length!==e.config.maxFrames&&AL(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 OL(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 VR(e,t={}){let r=KR(),n=PL(e),o=Math.max(0,n-r.config.budget.frameMs),s=OL(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;Uw({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(CL(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function DL(){let e=KR(),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 FL={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function so(e,t){return tR(e,t,FL)}function Cp(e){rR(e)}function xn(e,t){sR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),VR(e,{renderer:t.renderer})}var IL=.4,ML=64;function io(){return typeof performance<"u"?performance.now():Date.now()}var zR=new WeakMap;function LL(){let e=WR(),t=zR.get(e);return t||(t=new Map,zR.set(e,t)),t}function jL(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&&BL(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 BL(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 QR(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 XR(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 $L(e,t,r){let n=e.map(s=>XR(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(!(QR(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 NL(e,t,r){let n=new Map;for(let i of e){let a=XR(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 ZR(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 wi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,k=0;function b(I){K(t.columns||80,t.rows||24);let G=so(I,{width:s,height:i});v(G)}function v(I){K(I.info.viewport.width,I.info.viewport.height),H(I),Ko(I.layout),ni(),c=I.root,u=I}function T(){l=!0,c?b(c):u&&H(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new wi(s,i),l=!0}function D(){!r&&d&&(ts(t),d=!1)}function L(){let I=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:k,totalCells:I,updatePercentage:I>0?k/I*100:0}}function W(I,G){s=I,i=G,a.resize(s,i),l=!0}function K(I,G){!r&&!d&&(rs(t),d=!0),(I!==s||G!==i)&&W(I,G)}function H(I){let G=io(),V=0,ge=0,fe=a.getFrontBuffer(),de=a.getBackBuffer();p++;let te=s*i,me=YL(u,I),Oe=Mr(),ve=ER(Oe),ke=vR(Oe),J=Re=>{let Ae=io();t.write(Re),V+=io()-Ae,ge+=typeof Re=="string"?Buffer.byteLength(Re):Re.byteLength};if(!l&&n&&u){let{renderRects:Re,diffRects:Ae}=WL(u.drawCommands,I.drawCommands,s,i);if(Tt(I,"dirtyRectCount",Re.length),Tt(I,"diffRectCount",Ae.length),Re.length===0){me&&J(me),k=0,Tt(I,"patchCount",0),Tt(I,"outputByteCount",ge),it(I,"outputWriteMs",V),it(I,"deltaRenderMs",Math.max(0,io()-G-V)),xn(I,{renderer:"delta"});return}let Ee=HL(Re);if(!(Re.length>ML||Ee>te*IL)){ve&&J(ve),UL(de,Re),KL(I.drawCommands,Re,de,I.reservedRegions);let Se=fe.diffRects(de,Ae);if(fe.applyPatches(Se),de.clearDamage(),k=Se.length,Tt(I,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${Re.length}, patches: ${Se.length}, cells: ${te}`),me&&J(me),Se.length>0){let ce=vp(Se,s,!0);J(ce),g++}ke&&J(ke),Tt(I,"outputByteCount",ge),it(I,"outputWriteMs",V),it(I,"deltaRenderMs",Math.max(0,io()-G-V)),xn(I,{renderer:"delta"});return}}ve&&J(ve),de.clear(),r_(I.drawCommands,de,I.reservedRegions);let ie=a.swap();if(k=ie.length,Tt(I,"patchCount",ie.length),o&&console.error(`[delta-render] patches: ${ie.length}, cells: ${te}`),l||!n||ie.length>te*.5){let Re=El(a.getFrontBuffer());me&&J(me),J("\x1B[H"),J(Re),f++,l=!1,ke&&J(ke),Tt(I,"outputByteCount",ge),it(I,"outputWriteMs",V),it(I,"deltaRenderMs",Math.max(0,io()-G-V)),xn(I,{renderer:"delta"});return}if(me&&J(me),ie.length>0){let Re=vp(ie,s,!0);J(Re),g++}l=!1,ke&&J(ke),Tt(I,"outputByteCount",ge),it(I,"outputWriteMs",V),it(I,"deltaRenderMs",Math.max(0,io()-G-V)),xn(I,{renderer:"delta"})}return{render:b,renderFrame:v,fullRedraw:T,clear:$,cleanup:D,stats:L,resize:W}}function GL(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=ei(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,xe(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 Op(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:GL(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 WL(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&&jL(a,l)||(a&&o.push(Op(a)),l&&o.push(Op(l)))}return{renderRects:$L(o,r,n),diffRects:NL(o,r,n)}}function HL(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function UL(e,t){let r=Lr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function e_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function mr(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,xe(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)||e_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function qL(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)&&!e_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function t_(e,t,r){switch(e.type){case"box":VL(e,t,r);break;case"text":a_(e,t,r);break;case"terminal-image":zL(e,t);break}}function KL(e,t,r,n){for(let o of e){let s=Op(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(QR(s,i)){t_(o,r,n);break}}}}function r_(e,t,r){for(let n of e)t_(n,t,r)}function n_(e,t=new jr(e.info.viewport.width,e.info.viewport.height)){return r_(e.drawCommands,t,e.reservedRegions),t}function VL(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:k,clip:b}=e,v=a?ao(a):void 0,T=c?ao(c):void 0,$=f?ao(f):T;if(v||l!==" "){let D=d&&d!=="none"?1:0,L=n+D,W=o+D,K=Math.max(0,s-D*2),H=Math.max(0,i-D*2);for(let I=0;I<H;I++)qL(t,r,L,W+I,K,l,void 0,v,{},b)}if(d&&d!=="none"){let D=Sp[d]??Sp.single,L={},W=u?.top!==!1,K=u?.bottom!==!1,H=u?.left!==!1,I=u?.right!==!1;if(W){let G=H?D.topLeft:D.top;mr(t,r,n,o,G,T,void 0,L,b);for(let V=1;V<s-1;V++)mr(t,r,n+V,o,D.top,T,void 0,L,b);if(s>1){let V=I?D.topRight:D.top;mr(t,r,n+s-1,o,V,T,void 0,L,b)}if(p&&s>4){let V=s-4,fe=` ${Zs(kk(p),V,{truncationCharacter:""})} `,de=xe(fe),te=g??"center",me=te==="left"?n+1:te==="right"?n+Math.max(1,s-1-de):n+Math.max(1,Math.floor((s-de)/2)),Oe=0,ve=me;for(;Oe<fe.length&&ve<n+s-1;){let ke=qn(fe,Oe);if(!ke)break;Oe=ke.nextIndex;let J=xe(ke.symbol);J<=0||ve+J>n+s-1||(mr(t,r,ve,o,ke.symbol,$,void 0,k?{...L,bold:!0}:L,b),ve+=J)}}}for(let G=1;G<i-1;G++)H&&mr(t,r,n,o+G,D.left,T,void 0,L,b),I&&s>1&&mr(t,r,n+s-1,o+G,D.right,T,void 0,L,b);if(K&&i>1){let G=H?D.bottomLeft:D.bottom;mr(t,r,n,o+i-1,G,T,void 0,L,b);for(let V=1;V<s-1;V++)mr(t,r,n+V,o+i-1,D.bottom,T,void 0,L,b);if(s>1){let V=I?D.bottomRight:D.bottom;mr(t,r,n+s-1,o+i-1,V,T,void 0,L,b)}}}}function zL(e,t){e.cellRender&&a_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:i_(e),style:{},clip:e.clip},t,[])}function o_(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 s_(e){let t=o_(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 Ri(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${s_(e)}:${e.x}:${e.y}`)}function ns(e){return[Ri(e),e.x,e.y,s_(e)].join(":")}function i_(e){let t=o_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:pl(e.protocol,e.source,t)}function JR(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 JL(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ri(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ri(s));if(!i||ns(s)!==ns(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=Qo.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${fl("kitty")}\x1B8`}}return o}function YL(e,t){let r=JR(e),n=JR(t),o=r.map(ns).join("|"),s=n.map(ns).join("|");if(e&&o===s)return"";let i=JL(r,n),a=new Map(r.map(l=>[Ri(l),l]));for(let l of n){let d=a.get(Ri(l));d&&ns(d)===ns(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=i_(l),i+="\x1B8")}return i}function os(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 QL(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=os(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(os);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function XL(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=os(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[os(e[t+2]),os(e[t+3]),os(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 YR={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function ZL(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=Un(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 k=p[g].split(":"),b=Number(k[0]||0);if(k.length>1){if(b===4){let v=Number(k[1]||0);v in YR&&(a.underline=YR[v])}else if(b===38||b===48||b===58){let v=QL(k);v&&(b===38?s=v:b===48?i=v:a.underlineColor=v)}continue}if(b===0)s=t,i=r,a={...n};else if(b===1)a.bold=!0;else if(b===2)a.dim=!0;else if(b===3)a.italic=!0;else if(b===4)a.underline=!0;else if(b===5)a.blink=!0;else if(b===7)a.inverse=!0;else if(b===8)a.hidden=!0;else if(b===9)a.strikethrough=!0;else if(b===21)a.underline="double";else if(b===22)a.bold=!1,a.dim=!1;else if(b===23)a.italic=!1;else if(b===24)a.underline=!1;else if(b===25)a.blink=!1;else if(b===27)a.inverse=!1;else if(b===28)a.hidden=!1;else if(b===29)a.strikethrough=!1;else if(b>=30&&b<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][b-30];else if(b===39)s=t;else if(b>=40&&b<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][b-40];else if(b===49)i=r;else if(b===59)a.underlineColor=n.underlineColor;else if(b>=90&&b<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][b-90];else if(b>=100&&b<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][b-100];else if(b===38||b===48||b===58){let{color:v,consumed:T}=XL(p,g);v&&(b===38?s=v:b===48?i=v:a.underlineColor=v),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function a_(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?ao(a.color):void 0,u=d?void 0:a.backgroundColor?ao(a.backgroundColor):l?ao(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?ao(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=ei(i,s,a.wrap);if(g){let k=ZL(f.join(`
197
- `),c,u,p),b=0,v=0;for(let T of k){let $=0;for(;$<T.text.length;){let D=qn(T.text,$);if(!D)break;let L=D.symbol;if(L===`
198
- `){v++,b=0,$=D.nextIndex;continue}let W=xe(L);W>0&&(mr(t,r,n+b,o+v,L,T.fg,T.bg,T.attrs,e.clip),b+=W),$=D.nextIndex}}}else for(let k=0;k<f.length;k++){let b=0,v=0;for(;v<f[k].length;){let T=qn(f[k],v);if(!T)break;let $=T.symbol;if(b>=s)break;let D=xe($);D>0&&(mr(t,r,n+b,o+k,$,c,u,p,e.clip),b+=D),v=T.nextIndex}}}function ao(e){let t=LL(),r=t.get(e);if(r)return r;let n=HR(e);return t.set(e,n),n}var s9=Symbol("tuiuiu.delta-renderer-state");function l_(){return typeof performance<"u"?performance.now():Date.now()}function c_(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=c_(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function ej(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 Fp(e,t={}){let r=l_(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=c_(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);n_(e,p);let g=El(p,n),f=nj(e,o);return it(e,"ansiRenderMs",l_()-r),f+g}function u_(e,t,r){let n=ej(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 Fp(i,{fullHeight:n.fullHeight})}function p_(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 f_(e){let t=p_(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 _i(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${f_(e)}:${e.x}:${e.y}`)}function ss(e){return[_i(e),e.x,e.y,f_(e)].join(":")}function tj(e){let t=p_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:pl(e.protocol,e.source,t)}function d_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Dp(e,t){if(!yw(t))return e;let r=Mr();return r.multiplexer?vl(e,r.multiplexer):e}function rj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[_i(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(_i(s));if(!i||ss(s)!==ss(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Dp(`\x1B7\x1B[H${Qo.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Dp(`\x1B7\x1B[H${fl("kitty")}\x1B8`,"kitty")}}return o}function nj(e,t){let r=d_(e);if(r.length===0&&!t)return"";let n=d_(t),o=n.map(ss).join("|"),s=r.map(ss).join("|");if(t&&o===s)return"";let i=rj(n,r),a=new Map(n.map(l=>[_i(l),l]));for(let l of r){let d=a.get(_i(l));if(d&&ss(d)===ss(l))continue;let c=tj(l);i+=Dp(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Tl(e){let{value:t,isNew:r}=cr(null);if(r||t===null){let n=hi(()=>fr(e)),o=Qt();return ur(o,n),n}return t}function g_(e){let{value:t,isNew:r}=cr(null);if(r||t===null){let n=hi(e);return ur(Qt(),n),n}return t}function xi(e){let{value:t,isNew:r}=cr(null);if(r||t===null){let n=Qt(),o={effect:null,fn:e,dispose:null};ur(n,o);let s=new kn(()=>{let a=Ir(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,Vn(i,n),i}else return t.fn=e,t.dispose}var v9=Symbol("tuiuiu.keyboard-protocol-runtime-state");function h_(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,k)=>{if(f===void 0)return k??null;if(!/^\d+$/u.test(f))return null;let b=Number(f);return Number.isSafeInteger(b)?b: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(k=>r(k));if(f.length===0||f.some(k=>k===null||!n(k)))return null;g=f.map(k=>String.fromCodePoint(k)).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 Ip="\x1B[200~",is="\x1B[201~",oj="\x1B[I",sj="\x1B[O";function m_(){return"\x1B[?2004h"}function b_(){return"\x1B[?2004l"}function y_(){return"\x1B[?1004h"}function k_(){return"\x1B[?1004l"}function w_(e){return e===oj?{focused:!0}:e===sj?{focused:!1}:null}function R_(){return"\x1B[?1049h"}function Mp(){return"\x1B[?1049l"}var ij={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"},aj=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),lj=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),dj=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,cj=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,uj=/^\x1b\[27;(\d+);(\d+)~/;function pj(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 x_(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function __(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!x_(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function fj(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 Lp(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===`
191
+ })`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function HI(e){let t=WI.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function UI(e){return`docs/resources/common-mistakes.md#${HI(e).anchor}`}function Iw(e){return`See ${UI(e)} or tuiuiu://guide/common-mistakes.`}var Mw=new Set,Bw=Zt.normalize(jw(import.meta.url)),qI=Zt.dirname(Zt.dirname(Bw)),KI=Zt.dirname(qI),kl=0;function $w(){return process.env.NODE_ENV!=="production"}function Lw(e){return e.startsWith("file://")?Zt.normalize(jw(e)):Zt.normalize(e)}function VI(e){let t=Zt.normalize(e);return t.startsWith(KI)?t.includes(`${Zt.sep}src${Zt.sep}`)||t.includes(`${Zt.sep}dist${Zt.sep}`):!1}function zI(e){let t=Zt.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function JI(e,t=[]){if(!e)return[];let r=new Set([Bw,...t.map(Lw)]),n=e.split(`
192
+ `).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=Lw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function YI(e,t){!$w()||Mw.has(e)||(Mw.add(e),console.warn(`[tuiuiu] ${t}`))}function wi(e){kl++;try{return e()}finally{kl=Math.max(0,kl-1)}}function Nw(e,t){if(!$w()||kl>0||!Jk()||Yk()!=="component")return;let r=JI(e,[t])[0];if(!r||VI(r.filePath))return;let n=zI(r);YI(`create-signal-in-render:${n}`,`createSignal() was called during component render at ${n}. This recreates state every render. Move it to module scope or use useState(). ${Iw("signals-inside-component-render")}`)}var xn=null,_i=new Set,Ri=!1,mp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return xn&&xn._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof En){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof En){let r=this._subs;Ri?_i.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ri?_i.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof En){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},hp=null;var bp=!1,wl=new Set;function QI(e){wl.add(e),bp||(bp=!0,queueMicrotask(XI))}function XI(){bp=!1;let e=[...wl];wl.clear(),Gw(e,t=>t.run())}function Gw(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var En=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?QI(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=hp;hp=this._cleanups;let r=xn;xn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{xn=r,hp=t}let n=this.dependencies,o=this._nextDeps;if(this._nextDeps=null,!this._samesDeps(n,o)){for(let s of n)o.has(s)||s.unsubscribe(this);for(let s of o)n.has(s)||s._addSub(this);this.dependencies=o}}finally{this.running=!1}}}_samesDeps(t,r){if(t.size!==r.size)return!1;for(let n of t)if(!r.has(n))return!1;return!0}_runCleanups(){let t=[];this._returnCleanup&&(t.push(this._returnCleanup),this._returnCleanup=void 0),t.push(...this._cleanups.splice(0));let r=[];for(let n of t)try{n()}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive cleanups failed")}dispose(){if(this.disposed)return;this.disposed=!0,wl.delete(this),_i.delete(this);let t;try{this._runCleanups()}catch(r){t=r}finally{for(let r of this.dependencies)r.unsubscribe(this);this.dependencies.clear()}if(t!==void 0)throw t}};function gr(e){Nw(new Error().stack,import.meta.url);let t=new mp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function Ww(e,t={}){let r=new En(e,t);return()=>r.dispose()}function $t(e){let t=Ri;Ri=!0;try{e()}finally{if(Ri=t,!t){let r=[..._i];_i.clear(),Gw(r,n=>n.notify())}}}function is(e){let t=xn;xn=null;try{return e()}finally{xn=t}}var ZI=Symbol("tuiuiu.terminal-focus-state");function eM(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function yp(e){return Oe(ZI,eM,e)}function hr(e){return yp(e).read()}function kp(e,t){let r=yp(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Rl(e,t){let r=yp(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function wp(e){kp(!0,e)}var ro={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},Uw=Symbol("tuiuiu.motion-runtime-state");function qw(e){let t=e.id===0?null:It(Uw,()=>qw(Mr())),r={config:{...t?.config??ro},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[Ir](){Vw(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function _p(){let e=Ge();return Oe(Uw,()=>qw(e),e)}function _l(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function Rp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function tM(e){switch(e.presentationPressure){case"elevated":return e.config.frameBudgetMs*e.config.elevatedFrameBudgetFactor;case"critical":return e.config.frameBudgetMs*e.config.criticalFrameBudgetFactor;case"normal":default:return 0}}function Kw(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function rM(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Rl(en(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}xl(e)})))}function xp(e,t=hr(e.scope)){if(!t)return 1e3/e.config.unfocusedFps;switch(e.qualityTier){case"reduced":return 1e3/e.config.reducedFps;case"skip":return 0;case"full":default:return 1e3/e.config.targetFps}}function Hw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:hr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function nM(e,t){let r=hr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=xp(e,r),s=e.lastPresentationAt===0?0:t-e.lastPresentationAt;n=Math.min(n,Math.max(0,o-s))}for(let o of e.intervalSubscriptions.values()){if(!r&&o.pauseWhenUnfocused)continue;let s=t-o.lastRunAt;n=Math.min(n,Math.max(0,o.intervalMs-s))}return Number.isFinite(n)?Math.ceil(n):null}function Vw(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function zw(e){if(e.schedulerTimer||!Kw(e))return;rM(e);let t=nM(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(en(e.scope,()=>oM(e)),t))}function oM(e){if(e.schedulerTimer=null,!Kw(e))return;let t=Date.now(),r=hr(e.scope),n=xp(e,r),o=e.lastPresentationAt===0?n:t-e.lastPresentationAt;if(e.frameCallbacks.size>0&&o>=n){e.lastPresentationAt=t;let s=[...e.frameCallbacks.values()];e.frameCallbacks.clear();let i=Hw(e,t,n,n===0?0:Math.max(n,o));for(let a of s)a(i)}for(let s of e.intervalSubscriptions.values()){if(!r&&s.pauseWhenUnfocused)continue;let i=t-s.lastRunAt;i<s.intervalMs||(s.lastRunAt=t,s.callback(Hw(e,t,n,Math.max(s.intervalMs,i))))}zw(e)}function xl(e){Vw(e),zw(e)}function Jw(e){let t=_p(),r=_l(e.targetFps??t.config.targetFps,ro.targetFps),n=_l(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:_l(e.unfocusedFps??t.config.unfocusedFps,ro.unfocusedFps),frameBudgetMs:Rp(e.frameBudgetMs??t.config.frameBudgetMs,ro.frameBudgetMs),recoveryFrames:_l(e.recoveryFrames??t.config.recoveryFrames,ro.recoveryFrames),elevatedFrameBudgetFactor:Rp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,ro.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:Rp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,ro.criticalFrameBudgetFactor)},xl(t)}function El(){let e=_p();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:hr(e.scope),targetFrameMs:xp(e),recommendedPresentationIntervalMs:tM(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function sM(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function iM(e){if(e.presentationPressure==="normal"){e.pressureOnBudgetStreak=0;return}e.pressureOnBudgetStreak++,!(e.pressureOnBudgetStreak<e.config.recoveryFrames)&&(e.presentationPressure==="critical"?e.presentationPressure="elevated":e.presentationPressure="normal",e.pressureOnBudgetStreak=0)}function Yw(e){let t=_p();if(!Number.isFinite(e.totalMs)||e.totalMs<0)return t.qualityTier;let r=e.overBudget??e.totalMs>t.config.frameBudgetMs,n=(e.phaseOverrunCount??0)>0;return r?(t.onBudgetStreak=0,t.qualityTier==="full"?t.qualityTier="reduced":t.qualityTier==="reduced"&&(t.qualityTier="skip"),xl(t)):(t.onBudgetStreak++,t.onBudgetStreak>=t.config.recoveryFrames&&(t.qualityTier==="skip"?(t.qualityTier="reduced",t.onBudgetStreak=0):t.qualityTier==="reduced"&&(t.qualityTier="full",t.onBudgetStreak=0))),r||n?sM(t):iM(t),xl(t),t.qualityTier}function vn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function Qw(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function Xw(e){return e?Ft({key:e.key,transforms:e.transforms}):null}function xi(e){return e.type==="text"?{...e,style:{...e.style},compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}:{...e,compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}}function aM(e,t){let r=xi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function lM(e,t){let r=vn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=xi(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function dM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function cM(e,t,r){let n=vn(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=xi(e);return a.clip=dM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function uM(e,t,r,n){let o=e.x;return(e.type==="text"?e.x+Math.max(1,e.maxWidth):e.x+Math.max(1,e.width))>r&&o<n&&e.y>=t.y&&e.y<t.y+t.height}function pM(e,t,r){if(e.type!=="text")return e;let n=vn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*vn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!uM(e,r,o,s))return e;let i=xi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function fM(e,t,r){let n=vn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=xi(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let $=o.x,D=o.x+Math.max(1,o.maxWidth),M=Math.max($,g),N=Math.min(D,f);if(N<=M)return null;let U=Math.max(0,M-$),G=Math.max(U,N-$);return o.text=Yo(o.text,U,G),o.x=M,o.maxWidth=Math.max(0,N-M),o.maxWidth>0&&o.text.length>0?o:null}let y=o.x,h=o.x+Math.max(1,o.width),R=Math.max(y,g),T=Math.min(h,f);return T<=R?null:(o.x=R,o.width=Math.max(0,T-R),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function gM(e,t,r){let n=El().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&vn(s.opacity)<=0||s.kind==="scale"&&vn(s.scale)<=0||s.kind==="reveal"&&vn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=aM(o,s);break;case"fade":o=lM(o,s);break;case"scale":o=cM(o,s,r);break;case"shimmer":o=pM(o,s,r);break;case"reveal":o=fM(o,s,r);break}}return o}function Zw(e,t){if(e.length===0||t.size===0)return[...e];let r=[];for(let n of e){let o=n.compositorKeys;if(!o||o.length===0){r.push(n);continue}let s=n;for(let i of o){if(!s)break;let a=t.get(i);!a||a.transforms.length===0||(s=gM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var hM=1,mM=Symbol("tuiuiu.frame-runtime-state");function vp(e){return Oe(mM,()=>({committedFrameSnapshot:null}),e)}var bM=new Set(["__terminalImage","__compositor"]),yM=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),kM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Ep={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},vl=new WeakMap,Tn=new Map,rR=4096;function Sn(){return typeof performance<"u"?performance.now():Date.now()}function wM(e){return{width:e.width,height:e.height,pointer:e.pointer?{...e.pointer}:void 0,scrollDelta:e.scrollDelta?{...e.scrollDelta}:void 0,deltaTimeMs:e.deltaTimeMs}}function RM(e){return{eagerHitTargets:e?.eagerHitTargets??Ep.eagerHitTargets,eagerQueries:e?.eagerQueries??Ep.eagerQueries,eagerWarnings:e?.eagerWarnings??Ep.eagerWarnings}}function _M(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function xM(e){return!!(e&&typeof e=="object"&&typeof e.getViewport=="function"&&typeof e.getContent=="function"&&typeof e.getOffset=="function"&&typeof e.getMaxOffset=="function"&&typeof e.scrollTo=="function"&&typeof e.scrollBy=="function"&&typeof e.scrollToStart=="function"&&typeof e.scrollToEnd=="function")}function EM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0&&xM(f.__scrollQuery)){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function vM(e){let t=[];for(let[r,n]of e)n.length>1&&t.push({code:"duplicate-id",severity:"warning",id:r,message:`Duplicate explicit id "${r}" was found ${n.length} times in the committed frame.`});return t}function as(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function eR(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r;return{id:t,status:"found",found:!0,ambiguous:!1,bounds:n.bounds,nodeType:n.nodeType}}function SM(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r,o=n.metadata.getViewport(),s=n.metadata.getContent(),i=n.metadata.getOffset(),a=n.metadata.getMaxOffset();return{id:t,status:"found",found:!0,ambiguous:!1,nodeType:n.nodeType,viewport:{width:o.width??n.bounds.width,height:o.height??n.bounds.height},content:{width:s.width??o.width??n.bounds.width,height:s.height??o.height??n.bounds.height},offset:i,maxOffset:a,controls:{scrollTo:l=>n.metadata.scrollTo(l),scrollBy:l=>n.metadata.scrollBy(l),scrollToStart:()=>n.metadata.scrollToStart(),scrollToEnd:()=>n.metadata.scrollToEnd()}}}function TM(e,t,r,n,o){return{getElement:s=>{let i=eR(e,s);return i.status==="missing"?as(n,o,{code:"query-missing",severity:"warning",id:s,message:`Element query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&as(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Element query for explicit id "${s}" matched multiple committed elements in the current frame.`}),i},pointerOver:s=>{if(!r.pointer)return!1;let i=eR(e,s);return!i.found||!i.bounds?(i.status==="missing"?as(n,o,{code:"query-missing",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&as(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" matched multiple committed elements in the current frame.`}),!1):r.pointer.x>=i.bounds.x&&r.pointer.x<i.bounds.x+i.bounds.width&&r.pointer.y>=i.bounds.y&&r.pointer.y<i.bounds.y+i.bounds.height},getScrollContainer:s=>{let i=SM(t,s);return i.status==="missing"?as(n,o,{code:"scroll-target-missing",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" did not match any committed scroll target in the current frame.`}):i.status==="ambiguous"&&as(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" matched multiple committed scroll targets in the current frame.`}),i}}}function PM(e,t,r,n=[],o){let s=n.length>0?Ft(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function AM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function CM(e,t){let r=e.type==="text"?kM:yM,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Ft({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:bM})}function DM(e,t,r,n,o,s){return Ft([t,r,Xw(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function OM(e,t,r){if(!ol(e.node))return;let n=vl.get(e);if(!n)return;if(n.cacheKey!==t){_n(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){_n(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){_n(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){_n(e.node,Pe.CHILDREN);return}return n}function tR(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return vl.set(e,i),i}function FM(e){return e.map((t,r)=>({...t,order:r}))}function nR(e,t){return t?`${e}|motion:${El().qualityTier}`:e}function IM(){let e=Math.max(1,Math.ceil(rR*.1)),t=Tn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Tn.delete(n.value)}}function MM(e){return Tn.get(e)}function LM(e,t,r){let n=Tn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Tn.has(e)&&Tn.size>=rR&&IM(),Tn.set(e,o),o}function jM(e,t,r){let n=Tn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function BM(e,t){for(let r of t)e.push(r)}function $M(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function NM(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function oR(e){let t=e.props;return Qw(t?.__compositor)?t.__compositor:null}function sR(e,t=new Map){let r=oR(e.node);r&&t.set(r.key,{...r,bounds:{x:e.x,y:e.y,width:e.width,height:e.height}});for(let n of e.children)sR(n,t);return t}function GM(e,t,r,n,o,s){if(!NM(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let y=s.__terminalImage,h=ns(),R=$M(y.source)?y.source:hl(y.source,{cellSize:h.cellSize}),T=y.options?.protocol??h.protocol,$=rs(T),D=ki(R,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,D.renderColumns)),N=Math.max(0,Math.min(f,D.renderRows));return M<=0||N<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:M,height:N,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:R,fit:D.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:$,cellRender:xw($),protocolState:y.protocolState}}function WM(e){return e.flatMap(t=>t.type!=="terminal-image"||t.cellRender||t.clip&&(t.x<t.clip.x||t.y<t.clip.y||t.x+t.width>t.clip.x+t.clip.width||t.y+t.height>t.clip.y+t.clip.height)?[]:[{type:"terminal-image",id:t.id,protocol:t.protocol,x:t.x,y:t.y,width:t.width,height:t.height}])}function iR(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,y=oR(i),h=y?[...o,y.key]:[...o],R=y!==null,T=GM(e,p,g,d,c,f),$=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",D=PM(t,r,n,h,s)+$,M,N=()=>(M===void 0&&(M=CM(i,T)),M),U=OM(e,D,N);if(U)return ai("draw"),{commands:U.commands,hasCompositor:U.hasCompositor,subtreeSignature:U.subtreeSignature};let G=N(),F=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,q=[],oe=[],ae=f.paddingTop??f.paddingY??f.padding??0,se=f.paddingLeft??f.paddingX??f.padding??0,Z=f.borderStyle&&f.borderStyle!=="none"?1:0,pe=p+se+Z,Ae=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-Ae,we=W??n,J=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",_e={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:de?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:de?c:s?.height??Number.MAX_SAFE_INTEGER*2},Ce=J||de?AM(s,_e):s;for(let ie of u){let xe=iR(ie,pe,Ee,we,h,Ce);q.push(xe),R||=xe.hasCompositor,oe.push(xe.subtreeSignature)}let ve=DM(e,D,G,y,h,oe),Re=MM(ve);if(Re){ai("draw");let ie=tR(e,D,G,Re.commands,Re.hasCompositor,ve),xe=nR(ve,Re.hasCompositor);return Re.materialized&&Re.materializedSignature===xe&&(ie.materialized=Re.materialized,ie.materializedSignature=xe),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let xe=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:g,width:d,height:c,backgroundColor:W,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:xe,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ie=String(f.children??""),xe=Math.max(1,be(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
193
+ `):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/xe)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>ie).join(`
194
+ `):ie;Se.push({type:"text",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:h.length>0?[...h]:void 0,clip:s});for(let ie of q)BM(Se,ie.commands);Zn("draw");let fe=tR(e,D,G,Se,R,ve);return LM(ve,fe.commands,R),{commands:fe.commands,hasCompositor:R,subtreeSignature:ve}}function HM(e){if(e.type==="text"){let s=Math.round(e.x),i=Math.round(e.y),a=Math.max(0,Math.round(e.maxWidth));return s===e.x&&i===e.y&&a===e.maxWidth?e:{...e,x:s,y:i,maxWidth:a}}let t=Math.round(e.x),r=Math.round(e.y),n=Math.max(0,Math.round(e.width)),o=Math.max(0,Math.round(e.height));return t===e.x&&r===e.y&&n===e.width&&o===e.height?e:{...e,x:t,y:r,width:n,height:o}}function UM(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=HM(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function qM(e){let t=iR(e),r=vl.get(e),n=nR(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=FM(t.commands),s=t.hasCompositor?Zw(o,sR(e)):o,i=UM(s),a=vl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),jM(t.subtreeSignature,i,n),i}function aR(e,t,r={}){let n=RM(r),o=wM(t),s=Date.now(),i=Sn(),a=Sn(),l=Gk(e,o.width,o.height),d=Sn()-a,c=Sn(),u=qM(l),p=WM(u),g=Sn()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},y=jk();f.structural.layoutReuseCount=y.layoutReuseCount,f.structural.layoutFreshCount=y.layoutFreshCount,f.structural.drawReuseCount=y.drawReuseCount,f.structural.drawFreshCount=y.drawFreshCount,f.structural.invalidationEscalationCount=y.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=y.absorbedLayoutDirtyCount;let h,R,T,$=[],D=!1,M=()=>(h||(h=_M(l)),h),N=()=>(R||(R=EM(l)),R),U=()=>{if(!T){let ae=Sn();T=Fw(l),f.phases.hitTargetRegistrationMs=Sn()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...vM(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&U();let F=TM(M,N,o,$,f),W=Date.now(),q=Sn()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:hM++,committedAt:W,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:F,metrics:f,get hitTargets(){return U()},get warnings(){return G()}}}function lR(e,t){vp(t).committedFrameSnapshot=e}function dR(e){return vp(e).committedFrameSnapshot}function cR(e){vp(e).committedFrameSnapshot=null}function it(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Pt(e,t,r){e.metrics.structural[t]=r}function uR(e,t,r=Date.now()){e.metrics.runtimeStartAt=t,e.metrics.runtimeEndAt=r,e.metrics.runtimeTotalMs=Math.max(0,r-t),e.metrics.frameEndAt=r}var fR=Symbol("tuiuiu.progressive-runtime-state");function pR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function KM(e){if(e.id===0)return pR();let t=It(fR,pR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function Sp(){let e=Ge();return Oe(fR,()=>KM(e),e)}function gR(){return Sp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function hR(){return Sp().capabilityOverrides}function Tp(){return Sp().progressiveVersion}function VM(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=pl(t),a=gw(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",y=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",h=l.strikethrough||y,R=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,$=T.columns||80,D=T.rows||24,M=gR(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:h,hyperlinks:R,terminalName:c,isCI:d,columns:$,rows:D,profile:i,synchronizedOutput:l.synchronizedOutput,styledUnderlines:l.styledUnderlines,coloredUnderlines:l.coloredUnderlines,clipboard:l.clipboard,notifications:l.notifications,multiplexer:a,cursorStyleControl:l.cursorStyleControl,windowTitle:l.windowTitle,gpuAccelerated:i.gpuAccelerated,kittyKeyboard:l.kittyKeyboard,focusEvents:l.focusEvents,nerdFonts:M},U=hR();return U&&Object.assign(N,U),N}var mR=Symbol("tuiuiu.capability-runtime-state");function bR(e){let t=e.id===0?"auto":is(It(mR,()=>bR(Mr())).renderModeSignal),[r,n]=gr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Ir](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function Ei(e){let t=Ge(e);return Oe(mR,()=>bR(t),t)}function yR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function zM(e){return VM({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Sl(e){return e.cachedCapabilities=zM(e),e.cachedProgressiveVersion=Tp(),e.cachedCapabilities}function kR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Sl(e);let r=yR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function wR(e){let t=Ei(),r=t.source.stdout??process.stdout;t.resizeListener&&(r.off("resize",t.resizeListener),t.resizeListener=null),t.source={...e},t.cachedCapabilities=null,t.cachedProgressiveVersion=-1,kR(t)}function $r(){let e=Ei(),t=Tp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Sl(e),e.cachedCapabilities??Sl(e)}function RR(){return Sl(Ei())}function _R(){return yR(Ei())}function xR(e){let t=Ei();return t.resizeHandlers.add(e),kR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var ER={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,gray:8,grey:8,blackBright:8,redBright:9,greenBright:10,yellowBright:11,blueBright:12,magentaBright:13,cyanBright:14,whiteBright:15},JM={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},YM=512,no=new Map,vR=4e6;function Nr(){return{char:" ",attrs:{}}}function Ap(e,t){if(e===t)return!0;if(e===void 0||t===void 0)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="object"&&typeof t=="object"){if("r"in e&&"r"in t)return e.r===t.r&&e.g===t.g&&e.b===t.b;if("ansi256"in e&&"ansi256"in t)return e.ansi256===t.ansi256}return!1}function QM(e,t){let r=e.underline||!1,n=t.underline||!1;return!!e.bold==!!t.bold&&!!e.dim==!!t.dim&&!!e.italic==!!t.italic&&r===n&&Ap(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function SR(e,t){return e.char===t.char&&Ap(e.fg,t.fg)&&Ap(e.bg,t.bg)&&QM(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Tl(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Gr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>vR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${vR} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push(Nr());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||be(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,be(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}if(this.cells[r][t]=n,this.invalidateRow(r),!n.isWide&&o>1&&t+o<=this.width)for(let s=1;s<o;s++)this.clearWideFootprint(t+s,r),this.cells[r][t+s]={char:"",fg:n.fg,bg:n.bg,attrs:n.attrs,isWide:!0};this.addDamage(t,r,Math.min(o,this.width-t),1)}}clearWideFootprint(t,r){if(!Number.isInteger(t)||!Number.isInteger(r)||t<0||t>=this.width||r<0||r>=this.height)return;let n=this.cells[r][t];if(n.isWide){if(this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&be(s.char)>1&&(this.cells[r][t-1]=Nr(),this.addDamage(t-1,r,1,1))}return}let o=be(n.char);if(!(o<=1)){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);for(let s=1;s<o&&t+s<this.width;s++)this.cells[r][t+s]?.isWide&&(this.cells[r][t+s]=Nr(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=be(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=Qn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
195
+ `)continue;if(a>=this.width)break;let c=be(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(be(o)!==1){let c=be(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(be(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=Nr();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,Tl(p))}}addDamage(t,r,n,o){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let s=Math.max(0,t),i=Math.max(0,r),a=Math.min(this.width,t+n),l=Math.min(this.height,r+o);a>s&&l>i&&this.damageRects.push({x:s,y:i,width:a-s,height:l-i})}getDamage(){return this.damageRects}clearDamage(){this.damageRects=[]}hasDamage(){return this.damageRects.length>0}consolidateDamage(){if(this.damageRects.length<=1)return this.damageRects;let t=1/0,r=1/0,n=-1/0,o=-1/0;for(let i of this.damageRects)t=Math.min(t,i.x),r=Math.min(r,i.y),n=Math.max(n,i.x+i.width),o=Math.max(o,i.y+i.height);let s={x:t,y:r,width:n-t,height:o-r};return this.damageRects=[s],this.damageRects}diff(t){let r=[],n=Math.min(this.width,t.width),o=Math.min(this.height,t.height);for(let s=0;s<o;s++)if(this.getRowSignature(s)!==t.getRowSignature(s))for(let i=0;i<n;i++){let a=this.cells[s][i],l=t.cells[s][i];SR(a,l)||r.push({x:i,y:s,cell:Tl(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=XM(this.width,this.height,t.width,t.height,r);for(let i of s)if(!(i.x1===0&&i.x2>=o&&this.getRowSignature(i.y)===t.getRowSignature(i.y)))for(let l=i.x1;l<i.x2;l++){let d=this.cells[i.y][l],c=t.cells[i.y][l];SR(d,c)||n.push({x:l,y:i.y,cell:Tl(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Tl(r.cell))}*[Symbol.iterator](){for(let t=0;t<this.height;t++)for(let r=0;r<this.width;r++)yield{x:r,y:t,cell:this.cells[t][r]}}*rows(){for(let t=0;t<this.height;t++)yield{y:t,cells:this.cells[t]}}invalidateRow(t){t>=0&&t<this.height&&(this.rowSignatures[t]=null)}getRowSignature(t){let r=this.rowSignatures[t];if(r!=null)return r;let n=this.cells[t],o="";for(let s=0;s<n.length;s++){let i=n[s];o+=`${i.char.length}:${i.char}${i.isWide?1:0}${PR(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function XM(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||ZM(o)?TR(s,i,o):eL(s,i,o)}function ZM(e){let t=-1,r=-1;for(let n of e){let o=Math.max(0,n.x),s=Math.max(0,n.y),i=n.y+n.height-1;if(!(n.width<=0||n.height<=0||i<s)){if(s<t||s===t&&o<r)return!1;t=i,r=o}}return!0}function TR(e,t,r){let n=[];for(let o of r){let s=Math.max(0,o.x),i=Math.max(0,o.y),a=Math.min(e,o.x+o.width),l=Math.min(t,o.y+o.height);if(!(a<=s||l<=i))for(let d=i;d<l;d++){let c=n[n.length-1];if(c&&c.y===d&&s<=c.x2){c.x2=Math.max(c.x2,a);continue}n.push({y:d,x1:s,x2:a})}}return n}function eL(e,t,r){let n=new Map;for(let i of r){let a=Math.max(0,i.x),l=Math.max(0,i.y),d=Math.min(e,i.x+i.width),c=Math.min(t,i.y+i.height);if(!(d<=a||c<=l))for(let u=l;u<c;u++){let p=n.get(u);p?p.push({x1:a,x2:d}):n.set(u,[{x1:a,x2:d}])}}let o=[],s=[...n.keys()].sort((i,a)=>i-a);for(let i of s){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}o.push({y:i,x1:l.x1,x2:l.x2}),l=c}o.push({y:i,x1:l.x1,x2:l.x2})}return o}var vi=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}getBackBuffer(){return this.back}getFrontBuffer(){return this.front}swap(){let t=this.front.diff(this.back),r=this.front;return this.front=this.back,this.back=r,this.back.clearDamage(),t}swapDirty(t){let r=this.front.diffRects(this.back,t),n=this.front;return this.front=this.back,this.back=n,this.back.clearDamage(),r}resize(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}};function Cp(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(ER[e]!==void 0){let n=t?40:30,o=ER[e];return o<8?`${n+o}`:`${n+o+52}`}if(e.startsWith("#")){let n=e.slice(1),o=parseInt(n.slice(0,2),16),s=parseInt(n.slice(2,4),16),i=parseInt(n.slice(4,6),16);return`${r};2;${o};${s};${i}`}return""}return"r"in e?`${r};2;${e.r};${e.g};${e.b}`:"ansi256"in e?`${r};5;${e.ansi256}`:""}function tL(e){let t=[];if(e.bold&&t.push("1"),e.dim&&t.push("2"),e.italic&&t.push("3"),e.underline&&(typeof e.underline=="string"?t.push(JM[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=rL(e.underlineColor);r&&t.push(r)}return e.blink&&t.push("5"),e.inverse&&t.push("7"),e.hidden&&t.push("8"),e.strikethrough&&t.push("9"),t}function rL(e){let t=Cp(e,!1);if(!t)return"";if(t.startsWith("38;"))return`58;${t.slice(3)}`;let r=Number.parseInt(t,10);return Number.isNaN(r)?"":r>=30&&r<=37?`58;5;${r-30}`:r>=90&&r<=97?`58;5;${r-82}`:""}function Pp(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function PR(e,t,r){return[r.bold?"1":"0",r.dim?"1":"0",r.italic?"1":"0",r.underline===void 0||r.underline===!1?"0":String(r.underline),Pp(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",Pp(e),Pp(t)].join("|")}function AR(e,t,r){let n=PR(e,t,r),o=no.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...tL(r));let i=Cp(e,!1),a=Cp(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(no.has(n))no.delete(n);else if(no.size>=YM){let d=no.keys().next();d.done||no.delete(d.value)}return no.set(n,l),l===""?null:l}function nL(e){return e.length===1&&e.charCodeAt(0)<=127?1:be(e)}function Pl(e,t=!1){let r=[];for(let{cells:n}of e.rows()){let o=[],s="",i=null,a=()=>{s.length>0&&(o.push(s),s="")};for(let l of n){if(l.isWide)continue;let d=AR(l.fg,l.bg,l.attrs);d!==i&&(a(),i!==null&&o.push("\x1B[0m"),d!==null&&o.push(`\x1B[${d}m`),i=d),s+=l.char}a(),i!==null&&o.push("\x1B[0m"),r.push(o.join("").trimEnd())}if(!t)for(;r.length>0&&r[r.length-1]==="";)r.pop();return r.join(`
196
+ `)}function Dp(e,t,r=!1){if(e.length===0)return"";r||e.sort((d,c)=>d.y!==c.y?d.y-c.y:d.x-c.x);let n=[],o=-1,s=-1,i=null,a="",l=()=>{a.length>0&&(n.push(a),a="")};for(let d of e){let{x:c,y:u,cell:p}=d;if(p.isWide||c<0||c>=t||u<0)continue;(u!==s||c!==o+1)&&(l(),n.push(`\x1B[${u+1};${c+1}H`));let g=AR(p.fg,p.bg,p.attrs);g!==i&&(l(),i!==null&&n.push("\x1B[0m"),g!==null&&n.push(`\x1B[${g}m`),i=g),a+=p.char,o=c+(nL(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Al(e,t){let r=t??$r().multiplexer;if(!r)return e;switch(r.type){case"tmux":return`\x1BPtmux;${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"screen":return`\x1BP${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"zellij":return e}}var oL="\x1B[?2026h",sL="\x1B[?2026l";function CR(e){let t=e??$r();return t.synchronizedOutput?Al(oL,t.multiplexer):""}function DR(e){let t=e??$r();return t.synchronizedOutput?Al(sL,t.multiplexer):""}var Op={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",top:"\u2550",bottom:"\u2550",left:"\u2551",right:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2558",bottomRight:"\u255B",top:"\u2550",bottom:"\u2550",left:"\u2502",right:"\u2502"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},asciiDouble:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"=",bottom:"=",left:"|",right:"|"},markdown:{topLeft:"|",topRight:"|",bottomLeft:"|",bottomRight:"|",top:"-",bottom:"-",left:"|",right:"|"},arrow:{topLeft:"\u2198",topRight:"\u2199",bottomLeft:"\u2197",bottomRight:"\u2196",top:"\u2193",bottom:"\u2191",left:"\u2192",right:"\u2190"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u254C",bottom:"\u254C",left:"\u254E",right:"\u254E"},dashedHeavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u254D",bottom:"\u254D",left:"\u254F",right:"\u254F"},heavyHead:{topLeft:"\u250E",topRight:"\u2512",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2501",bottom:"\u2500",left:"\u2502",right:"\u2502"},doubleHead:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2550",bottom:"\u2500",left:"\u2502",right:"\u2502"},heavyEdge:{topLeft:"\u250D",topRight:"\u2511",bottomLeft:"\u2515",bottomRight:"\u2519",top:"\u2500",bottom:"\u2500",left:"\u2503",right:"\u2503"},doubleEdge:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},minimal:{topLeft:"\u2500",topRight:"\u2500",bottomLeft:"\u2500",bottomRight:"\u2500",top:"\u2500",bottom:"\u2500",left:" ",right:" "},minimalHeavy:{topLeft:"\u2501",topRight:"\u2501",bottomLeft:"\u2501",bottomRight:"\u2501",top:"\u2501",bottom:"\u2501",left:" ",right:" "},minimalDouble:{topLeft:"\u2550",topRight:"\u2550",bottomLeft:"\u2550",bottomRight:"\u2550",top:"\u2550",bottom:"\u2550",left:" ",right:" "},horizontals:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:"\u2500",bottom:"\u2500",left:" ",right:" "},inner:{topLeft:"\u2597",topRight:"\u2596",bottomLeft:"\u259D",bottomRight:"\u2598",top:"\u2584",bottom:"\u2580",left:"\u2590",right:"\u258C"},outer:{topLeft:"\u259B",topRight:"\u259C",bottomLeft:"\u2599",bottomRight:"\u259F",top:"\u2580",bottom:"\u2584",left:"\u258C",right:"\u2590"},thick:{topLeft:"\u2588",topRight:"\u2588",bottomLeft:"\u2588",bottomRight:"\u2588",top:"\u2580",bottom:"\u2584",left:"\u2588",right:"\u2588"},block:{topLeft:"\u2584",topRight:"\u2584",bottomLeft:"\u2580",bottomRight:"\u2580",top:"\u2584",bottom:"\u2580",left:"\u2588",right:"\u2588"},hkey:{topLeft:"\u2594",topRight:"\u2594",bottomLeft:"\u2581",bottomRight:"\u2581",top:"\u2594",bottom:"\u2581",left:" ",right:" "},vkey:{topLeft:"\u258F",topRight:"\u2595",bottomLeft:"\u258F",bottomRight:"\u2595",top:" ",bottom:" ",left:"\u258F",right:"\u2595"},tall:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2594",bottom:"\u2581",left:"\u258A",right:"\u258E"},panel:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2588",bottom:"\u2581",left:"\u258A",right:"\u258E"},tab:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},wide:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},hidden:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},blank:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "}};var FR="\x1B[?25h",iL="\x1B[?25l",Cl=!1,OR=!1,aL=null,Fp=null;function Ip(e){return"isTTY"in e&&!!e.isTTY}function lL(){let e=Fp??process.stdout;Ip(e)&&Cl&&(e.write(FR),Cl=!1)}function dL(){OR||(OR=!0,aL=rn(lL))}function ls(e=process.stdout){Ip(e)&&(Fp=e,Cl=!1,e.write(FR))}function ds(e=process.stdout){Ip(e)&&(Fp=e,dL(),Cl=!0,e.write(iL))}var cL="#ffffff",uL="#000000",pL="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},fL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},gL={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},m={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},He={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ce={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},hL={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ge={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},mL={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},bL={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},he={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},yL={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},kL={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Ze={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},wL={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},te={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},RL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},_L={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},xL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},EL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},vL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},SL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},IR={white:cL,black:uL,transparent:pL,slate:k,gray:fL,zinc:gL,neutral:m,stone:He,red:ce,orange:hL,amber:ge,yellow:mL,lime:bL,green:he,emerald:yL,teal:kL,cyan:Ze,sky:wL,blue:te,indigo:RL,violet:_L,purple:xL,fuchsia:EL,pink:vL,rose:SL};var ee={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},Mp={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:ee,background:{lowest:k[950],base:k[900],subtle:k[800],surface:k[700],raised:k[600],elevated:k[500],popover:k[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:k[50],secondary:k[200],muted:k[400],disabled:k[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:ee.success[500],warning:ee.warning[500],critical:ee.danger[500],info:Ze[500],highlight:ee.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:ee.primary[400],ring:{color:ee.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:ee.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:ee.primary[500],danger:ee.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:ee.primary[500],fg:"#ffffff",hoverBg:ee.primary[400],activeBg:ee.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:ee.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:ee.primary[500]},ghost:{bg:"transparent",fg:k[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:k[800],headerBg:k[700],footerBg:k[700],border:k[700]},menu:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],activeBg:ee.primary[700],selectedBg:ee.primary[600],disabledFg:k[500]}},tabs:{bg:k[800],border:k[700],tab:{fg:k[400],activeFg:k[50],activeBg:k[700],hoverFg:k[200],indicator:ee.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:ee.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:ee.primary[500],invalidBorder:ee.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:ee.primary[500]},radio:{bg:k[800],dotColor:ee.primary[500],border:k[600],checkedBorder:ee.primary[500]},tooltip:{bg:k[700],fg:k[50]},modal:{bg:k[800],border:k[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:k[700],fg:k[50]},success:{bg:ee.success[500],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:ee.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:ee.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:ee.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.success[700]},warning:{bg:ee.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:ee.warning[600]},danger:{bg:ee.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:ee.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:ee.success[600],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:ee.primary[400],subtitleFg:k[400],border:ee.primary[700]},secondary:{bg:k[900],titleFg:k[200],subtitleFg:k[500],border:k[700]}},appshell:{bg:k[950],dividerFg:k[700],sidebarBg:k[900],asideBg:k[900]},collapsible:{default:{headerBg:k[800],headerFg:k[50],contentBg:k[900],border:k[700],iconFg:k[400]},primary:{headerBg:ee.primary[700],headerFg:"#ffffff",contentBg:k[900],border:ee.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:k[700],headerFg:k[50],contentBg:k[800],border:k[600],iconFg:k[400]}},commandPalette:{bg:k[800],border:k[700],inputBg:k[900],inputFg:k[50],inputPlaceholder:k[500],itemFg:k[50],itemHoverBg:k[700],itemSelectedBg:ee.primary[700],itemSelectedFg:"#ffffff",highlightFg:ee.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:ee.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:ee.success[900],fg:ee.success[100],border:ee.success[600],iconFg:ee.success[400]},error:{bg:ee.danger[900],fg:ee.danger[100],border:ee.danger[600],iconFg:ee.danger[400]},warning:{bg:ee.warning[900],fg:ee.warning[100],border:ee.warning[500],iconFg:ee.warning[400]},info:{bg:Ze[900],fg:Ze[100],border:Ze[600],iconFg:Ze[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:ee.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:ee.primary[600],titleBarFg:"#ffffff",border:ee.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:ee.success[600],titleBarFg:"#ffffff",border:ee.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:ee.warning[500],titleBarFg:k[900],border:ee.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:ee.danger[600],titleBarFg:"#ffffff",border:ee.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},MR={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:he[600],warning:ge[600],critical:ce[600],info:Ze[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:k[300],checkedBorder:Y.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Y.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:k[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:k[600],border:Y.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Y.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:Ze[50],fg:Ze[900],border:Ze[200],iconFg:Ze[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Y.warning[500],titleBarFg:k[900],border:Y.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},oo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},LR={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:oo,background:{lowest:O.backgroundDark,base:O.background,subtle:O.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:O.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:O.foreground,secondary:"#E8E8E2",muted:O.comment,disabled:"#5B5A4F",inverse:{base:O.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:O.green,warning:O.yellow,critical:O.pink,info:O.cyan,highlight:O.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:O.green,ring:{color:O.green,width:2}},disabled:{opacity:.4,bg:O.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:O.foreground}},borders:{default:"#49483E",subtle:O.backgroundLight,strong:O.comment,accent:O.green,danger:O.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:O.green,fg:O.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:O.foreground,hoverBg:"#5B5A4F",activeBg:O.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:O.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:O.green},ghost:{bg:"transparent",fg:O.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:O.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:O.backgroundLight,border:"#49483E",tab:{fg:O.comment,activeFg:O.foreground,activeBg:O.background,hoverFg:"#E8E8E2",indicator:O.green}},dropdown:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:O.backgroundLight,fg:O.foreground,placeholder:O.comment,border:"#49483E",focusBorder:O.green,invalidBorder:O.pink},checkbox:{bg:O.backgroundLight,border:"#5B5A4F",checkColor:O.background,checkedBg:O.green},radio:{bg:O.backgroundLight,dotColor:O.green,border:"#5B5A4F",checkedBorder:O.green},tooltip:{bg:"#49483E",fg:O.foreground},modal:{bg:O.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:O.foreground},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:O.backgroundLight,selectedBg:"#49483E",fg:O.foreground}},header:{default:{bg:O.backgroundLight,fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#5B5A4F"},success:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:O.yellow,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:O.orange},danger:{bg:O.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:O.backgroundLight,fg:O.comment},primary:{bg:O.green,fg:O.background},info:{bg:O.cyan,fg:O.background},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},page:{default:{bg:O.background,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.background,titleFg:O.green,subtitleFg:O.comment,border:O.green},secondary:{bg:O.background,titleFg:"#E8E8E2",subtitleFg:O.comment,border:"#49483E"}},appshell:{bg:O.backgroundDark,dividerFg:"#49483E",sidebarBg:O.background,asideBg:O.background},collapsible:{default:{headerBg:O.backgroundLight,headerFg:O.foreground,contentBg:O.background,border:"#49483E",iconFg:O.comment},primary:{headerBg:"#49483E",headerFg:O.green,contentBg:O.background,border:O.green,iconFg:O.green},secondary:{headerBg:"#49483E",headerFg:O.foreground,contentBg:O.backgroundLight,border:"#5B5A4F",iconFg:O.comment}},commandPalette:{bg:O.backgroundLight,border:"#49483E",inputBg:O.background,inputFg:O.foreground,inputPlaceholder:O.comment,itemFg:O.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:O.foreground,highlightFg:O.green,categoryFg:O.comment},splitPanel:{bg:O.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:O.green,border:"#49483E",titleFg:O.comment},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:O.green,iconFg:O.green},error:{bg:oo.danger[900],fg:oo.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:oo.warning[900],fg:oo.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},so={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},jR={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:so,background:{lowest:"#21222C",base:P.background,subtle:P.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:P.comment,popover:P.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:P.foreground,secondary:"#E8E8E2",muted:P.comment,disabled:"#565869",inverse:{base:P.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:P.purple,ring:{color:P.purple,width:2}},disabled:{opacity:.4,bg:P.currentLine,fg:"#565869"},selected:{bg:P.currentLine,fg:P.foreground}},borders:{default:P.comment,subtle:P.currentLine,strong:P.purple,accent:P.purple,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:P.purple,fg:P.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:P.currentLine,fg:P.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:P.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:P.purple},ghost:{bg:"transparent",fg:P.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:P.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:P.comment},menu:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:P.currentLine,border:P.comment,tab:{fg:P.comment,activeFg:P.foreground,activeBg:P.background,hoverFg:"#E8E8E2",indicator:P.purple}},dropdown:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:P.currentLine,fg:P.foreground,placeholder:P.comment,border:P.comment,focusBorder:P.purple,invalidBorder:P.red},checkbox:{bg:P.currentLine,border:P.comment,checkColor:P.foreground,checkedBg:P.purple},radio:{bg:P.currentLine,dotColor:P.purple,border:P.comment,checkedBorder:P.purple},tooltip:{bg:"#4D4F5F",fg:P.foreground},modal:{bg:P.currentLine,border:P.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:P.comment,fg:P.foreground},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.currentLine,selectedBg:"#4D4F5F",fg:P.foreground}},header:{default:{bg:P.currentLine,fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.purple,fg:P.foreground,titleFg:P.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:"#565869"},success:{bg:P.green,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:P.yellow,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.currentLine,fg:P.comment},primary:{bg:P.purple,fg:P.foreground},info:{bg:P.cyan,fg:P.background},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.background,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.background,titleFg:P.purple,subtitleFg:P.comment,border:P.purple},secondary:{bg:P.background,titleFg:"#E8E8E2",subtitleFg:P.comment,border:P.currentLine}},appshell:{bg:"#21222C",dividerFg:P.comment,sidebarBg:P.background,asideBg:P.background},collapsible:{default:{headerBg:P.currentLine,headerFg:P.foreground,contentBg:P.background,border:P.comment,iconFg:P.comment},primary:{headerBg:"#4D4F5F",headerFg:P.purple,contentBg:P.background,border:P.purple,iconFg:P.purple},secondary:{headerBg:"#4D4F5F",headerFg:P.foreground,contentBg:P.currentLine,border:"#565869",iconFg:P.comment}},commandPalette:{bg:P.currentLine,border:P.comment,inputBg:P.background,inputFg:P.foreground,inputPlaceholder:P.comment,itemFg:P.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:P.foreground,highlightFg:P.purple,categoryFg:P.comment},splitPanel:{bg:P.background,dividerBg:P.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:P.purple,border:P.comment,titleFg:P.comment},toast:{success:{bg:so.success[900],fg:so.success[100],border:P.green,iconFg:P.green},error:{bg:so.danger[900],fg:so.danger[100],border:P.red,iconFg:P.red},warning:{bg:so.warning[900],fg:so.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.background,fg:P.foreground,titleBarBg:P.currentLine,titleBarFg:P.foreground,border:P.comment,buttonFg:P.comment,closeFg:P.red},primary:{bg:P.background,fg:P.foreground,titleBarBg:P.purple,titleBarFg:P.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:P.foreground},success:{bg:P.background,fg:P.foreground,titleBarBg:P.green,titleBarFg:P.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},warning:{bg:P.background,fg:P.foreground,titleBarBg:P.yellow,titleBarFg:P.background,border:P.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},danger:{bg:P.background,fg:P.foreground,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={nord0:"#2E3440",nord1:"#3B4252",nord2:"#434C5E",nord3:"#4C566A",nord4:"#D8DEE9",nord5:"#E5E9F0",nord6:"#ECEFF4",nord7:"#8FBCBB",nord8:"#88C0D0",nord9:"#81A1C1",nord10:"#5E81AC",nord11:"#BF616A",nord12:"#D08770",nord13:"#EBCB8B",nord14:"#A3BE8C",nord15:"#B48EAD"},io={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:E.nord8,400:E.nord8,500:E.nord8,600:E.nord9,700:E.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:E.nord14,500:E.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:E.nord13,400:E.nord13,500:E.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:E.nord11,500:E.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:E.nord6,100:E.nord5,200:E.nord4,300:"#A3ADB8",400:"#7A8694",500:E.nord3,600:E.nord2,700:E.nord1,800:E.nord0,900:"#242933"}},BR={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:io,background:{lowest:"#242933",base:E.nord0,subtle:E.nord1,surface:E.nord2,raised:E.nord3,elevated:"#5E6779",popover:E.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:E.nord6,secondary:E.nord5,muted:E.nord4,disabled:E.nord3,inverse:{base:E.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:E.nord14,warning:E.nord13,critical:E.nord11,info:E.nord9,highlight:E.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.nord8,ring:{color:E.nord8,width:2}},disabled:{opacity:.4,bg:E.nord1,fg:E.nord3},selected:{bg:E.nord1,fg:E.nord6}},borders:{default:E.nord3,subtle:E.nord1,strong:E.nord4,accent:E.nord8,danger:E.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:E.nord8,fg:E.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:E.nord2,fg:E.nord6,hoverBg:E.nord3,activeBg:E.nord1,border:"transparent"},outline:{bg:"transparent",fg:E.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:E.nord8},ghost:{bg:"transparent",fg:E.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.nord1,headerBg:E.nord2,footerBg:E.nord2,border:E.nord3},menu:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,activeBg:E.nord3,selectedBg:E.nord2,disabledFg:E.nord3}},tabs:{bg:E.nord1,border:E.nord3,tab:{fg:E.nord4,activeFg:E.nord6,activeBg:E.nord0,hoverFg:E.nord5,indicator:E.nord8}},dropdown:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,selectedBg:E.nord3}},input:{bg:E.nord1,fg:E.nord6,placeholder:E.nord4,border:E.nord3,focusBorder:E.nord8,invalidBorder:E.nord11},checkbox:{bg:E.nord1,border:E.nord3,checkColor:E.nord0,checkedBg:E.nord8},radio:{bg:E.nord1,dotColor:E.nord8,border:E.nord3,checkedBorder:E.nord8},tooltip:{bg:E.nord2,fg:E.nord6},modal:{bg:E.nord1,border:E.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:E.nord3,fg:E.nord6},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.nord1,selectedBg:E.nord2,fg:E.nord6}},header:{default:{bg:E.nord1,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord8,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:E.nord9},secondary:{bg:E.nord2,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},success:{bg:E.nord14,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:E.nord13,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:E.nord12},danger:{bg:E.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:E.nord1,fg:E.nord4},primary:{bg:E.nord8,fg:E.nord0},info:{bg:E.nord9,fg:"#ffffff"},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},page:{default:{bg:E.nord0,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord0,titleFg:E.nord8,subtitleFg:E.nord4,border:E.nord8},secondary:{bg:E.nord0,titleFg:E.nord5,subtitleFg:E.nord4,border:E.nord1}},appshell:{bg:"#242933",dividerFg:E.nord3,sidebarBg:E.nord0,asideBg:E.nord0},collapsible:{default:{headerBg:E.nord1,headerFg:E.nord6,contentBg:E.nord0,border:E.nord3,iconFg:E.nord4},primary:{headerBg:E.nord2,headerFg:E.nord8,contentBg:E.nord0,border:E.nord8,iconFg:E.nord8},secondary:{headerBg:E.nord2,headerFg:E.nord6,contentBg:E.nord1,border:E.nord3,iconFg:E.nord4}},commandPalette:{bg:E.nord1,border:E.nord3,inputBg:E.nord0,inputFg:E.nord6,inputPlaceholder:E.nord4,itemFg:E.nord6,itemHoverBg:E.nord2,itemSelectedBg:E.nord3,itemSelectedFg:E.nord6,highlightFg:E.nord8,categoryFg:E.nord4},splitPanel:{bg:E.nord0,dividerBg:E.nord3,dividerHoverBg:E.nord2,dividerActiveBg:E.nord8,border:E.nord3,titleFg:E.nord4},toast:{success:{bg:io.success[900],fg:io.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:io.danger[900],fg:io.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:io.warning[900],fg:io.warning[100],border:E.nord13,iconFg:E.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.nord9,iconFg:E.nord9}},window:{default:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord1,titleBarFg:E.nord6,border:E.nord3,buttonFg:E.nord4,closeFg:E.nord11},primary:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord8,titleBarFg:E.nord0,border:E.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},success:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord14,titleBarFg:E.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},warning:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord13,titleBarFg:E.nord0,border:E.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},danger:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},ao={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:S.blue,500:S.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:S.green,500:S.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:S.yellow,500:S.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.red,500:S.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.base3,100:S.base2,200:S.base1,300:S.base0,400:S.base00,500:S.base01,600:"#4A5A60",700:S.base02,800:S.base03,900:"#001E26"}},$R={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:ao,background:{lowest:"#001E26",base:S.base03,subtle:S.base02,surface:"#094652",raised:"#0B5A66",elevated:S.base01,popover:S.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.base0,secondary:S.base1,muted:S.base00,disabled:S.base01,inverse:{base:S.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:S.green,warning:S.yellow,critical:S.red,info:S.cyan,highlight:S.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.blue,ring:{color:S.blue,width:2}},disabled:{opacity:.4,bg:S.base02,fg:S.base01},selected:{bg:S.base02,fg:S.base1}},borders:{default:S.base01,subtle:S.base02,strong:S.base0,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:S.base02,fg:S.base1,hoverBg:"#094652",activeBg:S.base03,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.base02,headerBg:"#094652",footerBg:"#094652",border:S.base01},menu:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:S.base01}},tabs:{bg:S.base02,border:S.base01,tab:{fg:S.base00,activeFg:S.base1,activeBg:S.base03,hoverFg:S.base0,indicator:S.blue}},dropdown:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:S.base02,fg:S.base0,placeholder:S.base00,border:S.base01,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.base02,border:S.base01,checkColor:S.base3,checkedBg:S.blue},radio:{bg:S.base02,dotColor:S.blue,border:S.base01,checkedBorder:S.blue},tooltip:{bg:"#094652",fg:S.base1},modal:{bg:S.base02,border:S.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.base01,fg:S.base1},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.base02,selectedBg:"#094652",fg:S.base0}},header:{default:{bg:S.base02,fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.blue,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:"#0B5A66"},success:{bg:S.green,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.base03,titleFg:S.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.base02,fg:S.base00},primary:{bg:S.blue,fg:S.base3},info:{bg:S.cyan,fg:S.base03},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.base03,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.base03,titleFg:S.blue,subtitleFg:S.base00,border:S.blue},secondary:{bg:S.base03,titleFg:S.base0,subtitleFg:S.base00,border:S.base02}},appshell:{bg:"#001E26",dividerFg:S.base01,sidebarBg:S.base03,asideBg:S.base03},collapsible:{default:{headerBg:S.base02,headerFg:S.base1,contentBg:S.base03,border:S.base01,iconFg:S.base00},primary:{headerBg:"#094652",headerFg:S.blue,contentBg:S.base03,border:S.blue,iconFg:S.blue},secondary:{headerBg:"#094652",headerFg:S.base1,contentBg:S.base02,border:"#0B5A66",iconFg:S.base00}},commandPalette:{bg:S.base02,border:S.base01,inputBg:S.base03,inputFg:S.base0,inputPlaceholder:S.base00,itemFg:S.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:S.base1,highlightFg:S.blue,categoryFg:S.base00},splitPanel:{bg:S.base03,dividerBg:S.base01,dividerHoverBg:"#094652",dividerActiveBg:S.blue,border:S.base01,titleFg:S.base00},toast:{success:{bg:ao.success[900],fg:ao.success[100],border:S.green,iconFg:S.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:S.red,iconFg:S.red},warning:{bg:ao.warning[900],fg:ao.warning[100],border:S.yellow,iconFg:S.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.cyan,iconFg:S.cyan}},window:{default:{bg:S.base03,fg:S.base0,titleBarBg:S.base02,titleBarFg:S.base1,border:S.base01,buttonFg:S.base00,closeFg:S.red},primary:{bg:S.base03,fg:S.base0,titleBarBg:S.blue,titleBarFg:S.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},success:{bg:S.base03,fg:S.base0,titleBarBg:S.green,titleBarFg:S.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},warning:{bg:S.base03,fg:S.base0,titleBarBg:S.yellow,titleBarFg:S.base03,border:S.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:S.base03},danger:{bg:S.base03,fg:S.base0,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},lo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:_.red,500:_.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:_.fg0,100:_.fg1,200:_.fg2,300:_.fg3,400:_.fg4,500:_.gray,600:_.bg4,700:_.bg3,800:_.bg2,900:_.bg1}},NR={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:lo,background:{lowest:_.bg0_h,base:_.bg0,subtle:_.bg1,surface:_.bg2,raised:_.bg3,elevated:_.bg4,popover:_.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.fg1,secondary:_.fg2,muted:_.gray,disabled:_.bg3,inverse:{base:_.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.blue,highlight:_.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.green,ring:{color:_.green,width:2}},disabled:{opacity:.4,bg:_.bg1,fg:_.bg3},selected:{bg:_.bg2,fg:_.fg1}},borders:{default:_.bg3,subtle:_.bg2,strong:_.gray,accent:_.green,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.green,fg:_.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:_.bg2,fg:_.fg1,hoverBg:_.bg3,activeBg:_.bg1,border:"transparent"},outline:{bg:"transparent",fg:_.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:_.green},ghost:{bg:"transparent",fg:_.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.bg1,headerBg:_.bg2,footerBg:_.bg2,border:_.bg3},menu:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,activeBg:_.bg3,selectedBg:_.bg2,disabledFg:_.bg3}},tabs:{bg:_.bg1,border:_.bg3,tab:{fg:_.gray,activeFg:_.fg1,activeBg:_.bg0,hoverFg:_.fg2,indicator:_.green}},dropdown:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,selectedBg:_.bg3}},input:{bg:_.bg1,fg:_.fg1,placeholder:_.gray,border:_.bg3,focusBorder:_.green,invalidBorder:_.red},checkbox:{bg:_.bg1,border:_.bg3,checkColor:_.bg0,checkedBg:_.green},radio:{bg:_.bg1,dotColor:_.green,border:_.bg3,checkedBorder:_.green},tooltip:{bg:_.bg2,fg:_.fg1},modal:{bg:_.bg1,border:_.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.bg3,fg:_.fg1},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.bg1,selectedBg:_.bg2,fg:_.fg1}},header:{default:{bg:_.bg1,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:_.bg2,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},success:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:_.yellow,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:_.orange},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:_.bg1,fg:_.gray},primary:{bg:_.green,fg:_.bg0},info:{bg:_.blue,fg:_.bg0},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.bg0,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.bg0,titleFg:_.green,subtitleFg:_.gray,border:_.green},secondary:{bg:_.bg0,titleFg:_.fg2,subtitleFg:_.gray,border:_.bg2}},appshell:{bg:_.bg0_h,dividerFg:_.bg3,sidebarBg:_.bg0,asideBg:_.bg0},collapsible:{default:{headerBg:_.bg1,headerFg:_.fg1,contentBg:_.bg0,border:_.bg3,iconFg:_.gray},primary:{headerBg:_.bg2,headerFg:_.green,contentBg:_.bg0,border:_.green,iconFg:_.green},secondary:{headerBg:_.bg2,headerFg:_.fg1,contentBg:_.bg1,border:_.bg3,iconFg:_.gray}},commandPalette:{bg:_.bg1,border:_.bg3,inputBg:_.bg0,inputFg:_.fg1,inputPlaceholder:_.gray,itemFg:_.fg1,itemHoverBg:_.bg2,itemSelectedBg:_.bg3,itemSelectedFg:_.fg1,highlightFg:_.green,categoryFg:_.gray},splitPanel:{bg:_.bg0,dividerBg:_.bg3,dividerHoverBg:_.bg2,dividerActiveBg:_.green,border:_.bg3,titleFg:_.gray},toast:{success:{bg:lo.success[900],fg:lo.success[100],border:_.green,iconFg:_.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:_.red,iconFg:_.red},warning:{bg:lo.warning[900],fg:lo.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.blue,iconFg:_.blue}},window:{default:{bg:_.bg0,fg:_.fg1,titleBarBg:_.bg1,titleBarFg:_.fg1,border:_.bg3,buttonFg:_.gray,closeFg:_.red},primary:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},success:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},warning:{bg:_.bg0,fg:_.fg1,titleBarBg:_.yellow,titleBarFg:_.bg0,border:_.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},danger:{bg:_.bg0,fg:_.fg1,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={bg:"#1A1B26",bgDark:"#16161E",bgHighlight:"#24283B",bgPopup:"#2F3549",fg:"#A9B1D6",fgDark:"#9AA5CE",blue:"#7AA2F7",cyan:"#7DCFFF",green:"#9ECE6A",magenta:"#BB9AF7",orange:"#FF9E64",purple:"#9D7CD8",red:"#F7768E",teal:"#73DACA",yellow:"#E0AF68",comment:"#565F89",dark3:"#414868",dark5:"#737AA2"},co={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:v.blue,500:v.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:v.green,500:v.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:v.yellow,500:v.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:v.red,500:v.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},GR={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:co,background:{lowest:v.bgDark,base:v.bg,subtle:v.bgHighlight,surface:v.bgPopup,raised:v.dark3,elevated:v.comment,popover:v.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:v.fg,secondary:v.fgDark,muted:v.comment,disabled:v.dark3,inverse:{base:v.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:v.green,warning:v.yellow,critical:v.red,info:v.cyan,highlight:v.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.blue,ring:{color:v.blue,width:2}},disabled:{opacity:.4,bg:v.bgHighlight,fg:v.dark3},selected:{bg:v.bgHighlight,fg:v.fg}},borders:{default:v.dark3,subtle:v.bgHighlight,strong:v.comment,accent:v.blue,danger:v.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:v.blue,fg:v.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:v.bgHighlight,fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,border:"transparent"},outline:{bg:"transparent",fg:v.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:v.blue},ghost:{bg:"transparent",fg:v.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.bgHighlight,headerBg:v.bgPopup,footerBg:v.bgPopup,border:v.dark3},menu:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,selectedBg:v.bgPopup,disabledFg:v.dark3}},tabs:{bg:v.bgHighlight,border:v.dark3,tab:{fg:v.comment,activeFg:v.fg,activeBg:v.bg,hoverFg:v.fgDark,indicator:v.blue}},dropdown:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,selectedBg:v.dark3}},input:{bg:v.bgHighlight,fg:v.fg,placeholder:v.comment,border:v.dark3,focusBorder:v.blue,invalidBorder:v.red},checkbox:{bg:v.bgHighlight,border:v.dark3,checkColor:v.bg,checkedBg:v.blue},radio:{bg:v.bgHighlight,dotColor:v.blue,border:v.dark3,checkedBorder:v.blue},tooltip:{bg:v.bgPopup,fg:v.fg},modal:{bg:v.bgHighlight,border:v.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:v.dark3,fg:v.fg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.bgHighlight,selectedBg:v.bgPopup,fg:v.fg}},header:{default:{bg:v.bgHighlight,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.blue,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:v.bgPopup,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},success:{bg:v.green,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:v.yellow,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:v.orange},danger:{bg:v.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:v.bgHighlight,fg:v.comment},primary:{bg:v.blue,fg:v.bg},info:{bg:v.cyan,fg:v.bg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},page:{default:{bg:v.bg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.bg,titleFg:v.blue,subtitleFg:v.comment,border:v.blue},secondary:{bg:v.bg,titleFg:v.fgDark,subtitleFg:v.comment,border:v.bgHighlight}},appshell:{bg:v.bgDark,dividerFg:v.dark3,sidebarBg:v.bg,asideBg:v.bg},collapsible:{default:{headerBg:v.bgHighlight,headerFg:v.fg,contentBg:v.bg,border:v.dark3,iconFg:v.comment},primary:{headerBg:v.bgPopup,headerFg:v.blue,contentBg:v.bg,border:v.blue,iconFg:v.blue},secondary:{headerBg:v.bgPopup,headerFg:v.fg,contentBg:v.bgHighlight,border:v.dark3,iconFg:v.comment}},commandPalette:{bg:v.bgHighlight,border:v.dark3,inputBg:v.bg,inputFg:v.fg,inputPlaceholder:v.comment,itemFg:v.fg,itemHoverBg:v.bgPopup,itemSelectedBg:v.dark3,itemSelectedFg:v.fg,highlightFg:v.blue,categoryFg:v.comment},splitPanel:{bg:v.bg,dividerBg:v.dark3,dividerHoverBg:v.bgPopup,dividerActiveBg:v.blue,border:v.dark3,titleFg:v.comment},toast:{success:{bg:co.success[900],fg:co.success[100],border:v.green,iconFg:v.green},error:{bg:co.danger[900],fg:co.danger[100],border:v.red,iconFg:v.red},warning:{bg:co.warning[900],fg:co.warning[100],border:v.yellow,iconFg:v.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.cyan,iconFg:v.cyan}},window:{default:{bg:v.bg,fg:v.fg,titleBarBg:v.bgHighlight,titleBarFg:v.fg,border:v.dark3,buttonFg:v.comment,closeFg:v.red},primary:{bg:v.bg,fg:v.fg,titleBarBg:v.blue,titleBarFg:v.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},success:{bg:v.bg,fg:v.fg,titleBarBg:v.green,titleBarFg:v.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},warning:{bg:v.bg,fg:v.fg,titleBarBg:v.yellow,titleBarFg:v.bg,border:v.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},danger:{bg:v.bg,fg:v.fg,titleBarBg:v.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},uo={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:x.mauve,500:x.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.green,500:x.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:x.yellow,500:x.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:x.red,500:x.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:x.text,100:x.subtext1,200:x.subtext0,300:x.overlay2,400:x.overlay1,500:x.overlay0,600:x.surface2,700:x.surface1,800:x.surface0,900:x.base}},WR={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:uo,background:{lowest:x.crust,base:x.base,subtle:x.surface0,surface:x.surface1,raised:x.surface2,elevated:x.overlay0,popover:x.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.text,secondary:x.subtext1,muted:x.overlay0,disabled:x.surface2,inverse:{base:x.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.sky,highlight:x.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.mauve,ring:{color:x.mauve,width:2}},disabled:{opacity:.4,bg:x.surface0,fg:x.surface2},selected:{bg:x.surface0,fg:x.text}},borders:{default:x.overlay0,subtle:x.surface1,strong:x.subtext1,accent:x.mauve,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.mauve,fg:x.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:x.surface0,fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,border:"transparent"},outline:{bg:"transparent",fg:x.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:x.mauve},ghost:{bg:"transparent",fg:x.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.surface0,headerBg:x.surface1,footerBg:x.surface1,border:x.overlay0},menu:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,selectedBg:x.surface1,disabledFg:x.surface2}},tabs:{bg:x.surface0,border:x.overlay0,tab:{fg:x.overlay0,activeFg:x.text,activeBg:x.base,hoverFg:x.subtext1,indicator:x.mauve}},dropdown:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,selectedBg:x.surface2}},input:{bg:x.surface0,fg:x.text,placeholder:x.overlay0,border:x.overlay0,focusBorder:x.mauve,invalidBorder:x.red},checkbox:{bg:x.surface0,border:x.overlay0,checkColor:x.base,checkedBg:x.mauve},radio:{bg:x.surface0,dotColor:x.mauve,border:x.overlay0,checkedBorder:x.mauve},tooltip:{bg:x.surface1,fg:x.text},modal:{bg:x.surface0,border:x.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.surface2,fg:x.text},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.surface0,selectedBg:x.surface1,fg:x.text}},header:{default:{bg:x.surface0,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.mauve,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:x.surface1,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.surface2},success:{bg:x.green,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:x.yellow,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:x.peach},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:x.surface0,fg:x.overlay0},primary:{bg:x.mauve,fg:x.base},info:{bg:x.sky,fg:x.base},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.base,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.base,titleFg:x.mauve,subtitleFg:x.overlay0,border:x.mauve},secondary:{bg:x.base,titleFg:x.subtext1,subtitleFg:x.overlay0,border:x.surface0}},appshell:{bg:x.crust,dividerFg:x.overlay0,sidebarBg:x.base,asideBg:x.base},collapsible:{default:{headerBg:x.surface0,headerFg:x.text,contentBg:x.base,border:x.overlay0,iconFg:x.overlay0},primary:{headerBg:x.surface1,headerFg:x.mauve,contentBg:x.base,border:x.mauve,iconFg:x.mauve},secondary:{headerBg:x.surface1,headerFg:x.text,contentBg:x.surface0,border:x.surface2,iconFg:x.overlay0}},commandPalette:{bg:x.surface0,border:x.overlay0,inputBg:x.base,inputFg:x.text,inputPlaceholder:x.overlay0,itemFg:x.text,itemHoverBg:x.surface1,itemSelectedBg:x.surface2,itemSelectedFg:x.text,highlightFg:x.mauve,categoryFg:x.overlay0},splitPanel:{bg:x.base,dividerBg:x.overlay0,dividerHoverBg:x.surface1,dividerActiveBg:x.mauve,border:x.overlay0,titleFg:x.overlay0},toast:{success:{bg:uo.success[900],fg:uo.success[100],border:x.green,iconFg:x.green},error:{bg:uo.danger[900],fg:uo.danger[100],border:x.red,iconFg:x.red},warning:{bg:uo.warning[900],fg:uo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.sky,iconFg:x.sky}},window:{default:{bg:x.base,fg:x.text,titleBarBg:x.surface0,titleBarFg:x.text,border:x.overlay0,buttonFg:x.overlay0,closeFg:x.red},primary:{bg:x.base,fg:x.text,titleBarBg:x.mauve,titleBarFg:x.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},success:{bg:x.base,fg:x.text,titleBarBg:x.green,titleBarFg:x.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},warning:{bg:x.base,fg:x.text,titleBarBg:x.yellow,titleBarFg:x.base,border:x.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},danger:{bg:x.base,fg:x.text,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var po={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},HR={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:po,background:{lowest:"#000000",base:"#000000",subtle:m[950],surface:m[900],raised:m[800],elevated:m[700],popover:m[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:m[100],muted:m[300],disabled:m[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:he[400],warning:ge[400],critical:ce[400],info:Ze[400],highlight:te[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:te[400],ring:{color:te[400],width:3}},disabled:{opacity:.5,bg:m[900],fg:m[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:m[500],subtle:m[700],strong:m[300],accent:te[400],danger:ce[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:te[500],fg:"#ffffff",hoverBg:te[400],activeBg:te[600],border:te[300]},secondary:{bg:m[800],fg:"#ffffff",hoverBg:m[700],activeBg:m[900],border:m[500]},outline:{bg:"transparent",fg:te[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:te[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:m[950],headerBg:m[900],footerBg:m[900],border:m[500]},menu:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],activeBg:te[800],selectedBg:te[900],disabledFg:m[500]}},tabs:{bg:m[950],border:m[500],tab:{fg:m[300],activeFg:"#ffffff",activeBg:m[800],hoverFg:m[100],indicator:te[400]}},dropdown:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:m[400],border:m[500],focusBorder:te[400],invalidBorder:ce[400]},checkbox:{bg:"#000000",border:m[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:m[400],checkedBorder:te[400]},tooltip:{bg:m[800],fg:"#ffffff"},modal:{bg:m[950],border:m[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:m[700],fg:"#ffffff"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:m[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:m[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:m[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},success:{bg:he[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:he[300]},warning:{bg:ge[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[600]},danger:{bg:ce[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ce[300]}},statusbar:{default:{bg:m[950],fg:m[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Ze[500],fg:"#000000"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:m[300],border:te[400]},secondary:{bg:"#000000",titleFg:m[100],subtitleFg:m[400],border:m[700]}},appshell:{bg:"#000000",dividerFg:m[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:m[950],headerFg:"#ffffff",contentBg:"#000000",border:m[500],iconFg:m[300]},primary:{headerBg:m[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:m[900],headerFg:"#ffffff",contentBg:m[950],border:m[500],iconFg:m[300]}},commandPalette:{bg:m[950],border:m[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:m[400],itemFg:"#ffffff",itemHoverBg:m[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:m[400]},splitPanel:{bg:"#000000",dividerBg:m[500],dividerHoverBg:m[400],dividerActiveBg:te[400],border:m[500],titleFg:m[300]},toast:{success:{bg:po.success[900],fg:po.success[100],border:he[400],iconFg:he[400]},error:{bg:po.danger[900],fg:po.danger[100],border:ce[400],iconFg:ce[400]},warning:{bg:po.warning[900],fg:po.warning[100],border:ge[400],iconFg:ge[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Ze[400],iconFg:Ze[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:m[950],titleBarFg:"#ffffff",border:m[500],buttonFg:m[300],closeFg:ce[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:te[500],titleBarFg:"#ffffff",border:te[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:he[500],titleBarFg:"#000000",border:he[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[400],titleBarFg:"#000000",border:ge[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ce[500],titleBarFg:"#ffffff",border:ce[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var TL={primary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},warning:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},danger:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},UR={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:TL,background:{lowest:m[950],base:m[900],subtle:m[800],surface:m[700],raised:m[600],elevated:m[500],popover:m[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:m[50],secondary:m[200],muted:m[400],disabled:m[500],inverse:{base:m[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:m[300],warning:m[400],critical:m[200],info:m[300],highlight:m[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:m[400],ring:{color:m[400],width:2}},disabled:{opacity:.4,bg:m[800],fg:m[500]},selected:{bg:m[700],fg:m[50]}},borders:{default:m[600],subtle:m[700],strong:m[400],accent:m[400],danger:m[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:m[300],fg:m[900],hoverBg:m[200],activeBg:m[400],border:"transparent"},secondary:{bg:m[700],fg:m[50],hoverBg:m[600],activeBg:m[800],border:"transparent"},outline:{bg:"transparent",fg:m[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:m[400]},ghost:{bg:"transparent",fg:m[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:m[800],headerBg:m[700],footerBg:m[700],border:m[600]},menu:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],activeBg:m[600],selectedBg:m[700],disabledFg:m[500]}},tabs:{bg:m[800],border:m[600],tab:{fg:m[400],activeFg:m[50],activeBg:m[700],hoverFg:m[200],indicator:m[300]}},dropdown:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],selectedBg:m[600]}},input:{bg:m[800],fg:m[50],placeholder:m[500],border:m[600],focusBorder:m[400],invalidBorder:m[300]},checkbox:{bg:m[800],border:m[500],checkColor:m[900],checkedBg:m[300]},radio:{bg:m[800],dotColor:m[300],border:m[500],checkedBorder:m[300]},tooltip:{bg:m[700],fg:m[50]},modal:{bg:m[800],border:m[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:m[700],fg:m[50]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},list:{item:{bg:"transparent",hoverBg:m[800],selectedBg:m[700],fg:m[50]}},header:{default:{bg:m[800],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]},secondary:{bg:m[700],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},success:{bg:m[400],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[500]},warning:{bg:m[500],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[600]},danger:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]}},statusbar:{default:{bg:m[800],fg:m[400]},primary:{bg:m[300],fg:m[900]},info:{bg:m[400],fg:m[900]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},page:{default:{bg:m[900],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[900],titleFg:m[200],subtitleFg:m[400],border:m[500]},secondary:{bg:m[900],titleFg:m[300],subtitleFg:m[500],border:m[700]}},appshell:{bg:m[950],dividerFg:m[600],sidebarBg:m[900],asideBg:m[900]},collapsible:{default:{headerBg:m[800],headerFg:m[50],contentBg:m[900],border:m[600],iconFg:m[400]},primary:{headerBg:m[700],headerFg:m[200],contentBg:m[900],border:m[500],iconFg:m[300]},secondary:{headerBg:m[700],headerFg:m[50],contentBg:m[800],border:m[600],iconFg:m[400]}},commandPalette:{bg:m[800],border:m[600],inputBg:m[900],inputFg:m[50],inputPlaceholder:m[500],itemFg:m[50],itemHoverBg:m[700],itemSelectedBg:m[600],itemSelectedFg:m[50],highlightFg:m[200],categoryFg:m[500]},splitPanel:{bg:m[900],dividerBg:m[600],dividerHoverBg:m[500],dividerActiveBg:m[300],border:m[600],titleFg:m[400]},toast:{success:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]},error:{bg:m[800],fg:m[100],border:m[300],iconFg:m[200]},warning:{bg:m[800],fg:m[100],border:m[500],iconFg:m[400]},info:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]}},window:{default:{bg:m[900],fg:m[50],titleBarBg:m[800],titleBarFg:m[50],border:m[600],buttonFg:m[400],closeFg:m[300]},primary:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},success:{bg:m[900],fg:m[50],titleBarBg:m[400],titleBarFg:m[900],border:m[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},warning:{bg:m[900],fg:m[50],titleBarBg:m[500],titleBarFg:m[900],border:m[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},danger:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]}}},borderRadius:"none"};var KR=Symbol("tuiuiu.theme-runtime-state");function qR(){let[e,t]=gr(Mp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function PL(e){if(e.id===0)return qR();let t=It(KR,qR),[r,n]=gr(is(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function VR(){let e=Ge();return Oe(KR,()=>PL(e),e)}function zR(){return is(VR().currentTheme)}var AL={dark:Mp,light:MR,monokai:LR,dracula:jR,nord:BR,solarizedDark:$R,gruvbox:NR,tokyoNight:GR,catppuccin:WR,highContrastDark:HR,monochrome:UR},e9=Object.keys(AL);function CL(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function wt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&CL(e)>.4?"black":"white"}function DL(e,t=500){let r=IR[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var OL={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>wt(e.palette.primary[500]),"primary-foreground":e=>wt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>wt(e.palette.secondary[500]),"secondary-foreground":e=>wt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>wt(e.accents.positive),"success-foreground":e=>wt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>wt(e.accents.warning),"warning-foreground":e=>wt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>wt(e.accents.critical),"danger-foreground":e=>wt(e.accents.critical),errorForeground:e=>wt(e.accents.critical),destructiveForeground:e=>wt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>wt(e.accents.info),"info-foreground":e=>wt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>wt(e.palette.primary[400]),"accent-foreground":e=>wt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function JR(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=is(VR().currentTheme),r=OL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return DL(o,i)}return e}var FL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},YR=Symbol("tuiuiu.perf-inspector-runtime-state");function IL(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function QR(e){let t=e.id===0?null:It(YR,()=>QR(Mr())),r=IL(t?.config??FL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function XR(){let e=Ge();return Oe(YR,()=>QR(e),e)}function ML(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function LL(e,t){let r=$L().slice(-t);e.ring=new Array(t),e.start=0,e.count=r.length;for(let n=0;n<r.length;n++)e.ring[n]=r[n]}function jL(e,t){e.ring.length!==e.config.maxFrames&&LL(e,e.config.maxFrames);let r=(e.start+e.count)%e.ring.length;if(e.ring[r]=t,e.count<e.ring.length){e.count++;return}e.start=(e.start+1)%e.ring.length}function BL(e,t){let r={};if(!t)return r;for(let[n,o]of Object.entries(t)){if(!Number.isFinite(o)||o<0)continue;let s=e[n];if(typeof s!="number")continue;let i=s-o;i>0&&(r[n]=i)}return r}function ZR(e,t={}){let r=XR(),n=ML(e),o=Math.max(0,n-r.config.budget.frameMs),s=BL(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;Yw({totalMs:n,overBudget:o>0,phaseOverrunCount:i});let l={frameId:e.info.frameId,committedAt:e.info.committedAt,renderer:t.renderer??(e.metrics.phases.deltaRenderMs!==void 0?"delta":"ansi"),totalMs:n,budgetOverrunMs:o,phaseBudgetOverruns:s,overBudgetPhaseCount:i,slow:a,phases:{...e.metrics.phases},structural:{...e.metrics.structural}};if(!r.config.enabled)return null;if(jL(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function $L(){let e=XR(),t=[];for(let r=0;r<e.count;r++){let n=e.ring[(e.start+r)%e.ring.length];n&&t.push(n)}return t}var NL={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function fo(e,t){return aR(e,t,NL)}function Lp(e){lR(e)}function Pn(e,t){uR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),ZR(e,{renderer:t.renderer})}var GL=.4,WL=64;function go(){return typeof performance<"u"?performance.now():Date.now()}var e_=new WeakMap;function HL(){let e=zR(),t=e_.get(e);return t||(t=new Map,e_.set(e,t)),t}function UL(e,t){return e.type!==t.type||e.order!==t.order||e.zIndex!==t.zIndex||e.id!==t.id||e.nodeType!==t.nodeType||e.clip?.x!==t.clip?.x||e.clip?.y!==t.clip?.y||e.clip?.width!==t.clip?.width||e.clip?.height!==t.clip?.height?!1:e.type==="box"&&t.type==="box"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.backgroundColor===t.backgroundColor&&e.fillChar===t.fillChar&&e.borderStyle===t.borderStyle&&e.borderColor===t.borderColor&&e.borderText===t.borderText&&e.borderTextAlign===t.borderTextAlign&&e.borderTextColor===t.borderTextColor&&e.borderTextBold===t.borderTextBold&&e.borderSides?.top===t.borderSides?.top&&e.borderSides?.bottom===t.borderSides?.bottom&&e.borderSides?.left===t.borderSides?.left&&e.borderSides?.right===t.borderSides?.right:e.type==="text"&&t.type==="text"?e.x===t.x&&e.y===t.y&&e.maxWidth===t.maxWidth&&e.text===t.text&&e.inheritedBackgroundColor===t.inheritedBackgroundColor&&qL(e.style,t.style):e.type==="terminal-image"&&t.type==="terminal-image"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.protocol===t.protocol&&e.fit===t.fit&&e.threshold===t.threshold&&e.dither===t.dither&&e.preserveAspectRatio===t.preserveAspectRatio&&e.cellRender===t.cellRender&&e.source.hash===t.source.hash:!1}function qL(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o of r)if(e[o]!==t[o])return!1;return!0}function n_(e,t){return!(e.x+e.width<=t.x||t.x+t.width<=e.x||e.y+e.height<=t.y||t.y+t.height<=e.y)}function o_(e,t,r){let n=Math.max(0,e.x),o=Math.max(0,e.y),s=Math.min(t,e.x+e.width),i=Math.min(r,e.y+e.height);return s<=n||i<=o?null:{x:n,y:o,width:s-n,height:i-o}}function KL(e,t,r){let n=e.map(s=>o_(s,t,r)).filter(s=>s!==null).sort((s,i)=>s.y-i.y||s.x-i.x);if(n.length<=1)return n;let o=[];for(let s of n){let i=o[o.length-1];if(!i){o.push({...s});continue}if(!(n_(i,s)||s.y<=i.y+i.height&&s.x<=i.x+i.width)){o.push({...s});continue}let l=Math.min(i.x,s.x),d=Math.min(i.y,s.y),c=Math.max(i.x+i.width,s.x+s.width),u=Math.max(i.y+i.height,s.y+s.height);i.x=l,i.y=d,i.width=c-l,i.height=u-d}return o}function VL(e,t,r){let n=new Map;for(let i of e){let a=o_(i,t,r);if(!a)continue;let l=a.x,d=a.x+a.width,c=a.y+a.height;for(let u=a.y;u<c;u++){let p=n.get(u);p?p.push({x1:l,x2:d}):n.set(u,[{x1:l,x2:d}])}}let o=[...n.keys()].sort((i,a)=>i-a),s=[];for(let i of o){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1}),l=c}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1})}return s}function s_(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new vi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function h(F){U(t.columns||80,t.rows||24);let W=fo(F,{width:s,height:i});R(W)}function R(F){U(F.info.viewport.width,F.info.viewport.height),G(F),Zo(F.layout),li(),c=F.root,u=F}function T(){l=!0,c?h(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new vi(s,i),l=!0}function D(){!r&&d&&(ls(t),d=!1)}function M(){let F=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:y,totalCells:F,updatePercentage:F>0?y/F*100:0}}function N(F,W){s=F,i=W,a.resize(s,i),l=!0}function U(F,W){!r&&!d&&(ds(t),d=!0),(F!==s||W!==i)&&N(F,W)}function G(F){let W=go(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=nj(u,F),Ae=$r(),Ee=CR(Ae),we=DR(Ae),J=_e=>{let Ce=go();t.write(_e),q+=go()-Ce,oe+=typeof _e=="string"?Buffer.byteLength(_e):_e.byteLength};if(!l&&n&&u){let{renderRects:_e,diffRects:Ce}=JL(u.drawCommands,F.drawCommands,s,i);if(Pt(F,"dirtyRectCount",_e.length),Pt(F,"diffRectCount",Ce.length),_e.length===0){pe&&J(pe),y=0,Pt(F,"patchCount",0),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,go()-W-q)),Pn(F,{renderer:"delta"});return}let ve=YL(_e);if(!(_e.length>WL||ve>Z*GL)){Ee&&J(Ee),QL(se,_e),ZL(F.drawCommands,_e,se,F.reservedRegions);let Se=ae.diffRects(se,Ce);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,Pt(F,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${_e.length}, patches: ${Se.length}, cells: ${Z}`),pe&&J(pe),Se.length>0){let fe=Dp(Se,s,!0);J(fe),g++}we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,go()-W-q)),Pn(F,{renderer:"delta"});return}}Ee&&J(Ee),se.clear(),l_(F.drawCommands,se,F.reservedRegions);let de=a.swap();if(y=de.length,Pt(F,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let _e=Pl(a.getFrontBuffer());pe&&J(pe),J("\x1B[H"),J(_e),f++,l=!1,we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,go()-W-q)),Pn(F,{renderer:"delta"});return}if(pe&&J(pe),de.length>0){let _e=Dp(de,s,!0);J(_e),g++}l=!1,we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,go()-W-q)),Pn(F,{renderer:"delta"})}return{render:h,renderFrame:R,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function zL(e){if(e.maxWidth<=0||e.text.length===0)return{x:e.x,y:e.y,width:0,height:0};let t=0,r=-1,n=Xn(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,be(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function jp(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:zL(e);if(!e.clip)return t;let r=Math.max(t.x,e.clip.x),n=Math.max(t.y,e.clip.y),o=Math.min(t.x+t.width,e.clip.x+e.clip.width),s=Math.min(t.y+t.height,e.clip.y+e.clip.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function JL(e,t,r,n){let o=[],s=Math.max(e.length,t.length);for(let i=0;i<s;i++){let a=e[i],l=t[i];a&&l&&UL(a,l)||(a&&o.push(jp(a)),l&&o.push(jp(l)))}return{renderRects:KL(o,r,n),diffRects:VL(o,r,n)}}function YL(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function QL(e,t){let r=Nr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function i_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function br(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,be(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||i_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function XL(e,t,r,n,o,s,i,a,l={},d){for(let c=0;c<o;c++)(!d||r+c>=d.x&&r+c<d.x+d.width&&n>=d.y&&n<d.y+d.height)&&!i_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function a_(e,t,r){switch(e.type){case"box":ej(e,t,r);break;case"text":f_(e,t,r);break;case"terminal-image":tj(e,t);break}}function ZL(e,t,r,n){for(let o of e){let s=jp(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(n_(s,i)){a_(o,r,n);break}}}}function l_(e,t,r){for(let n of e)a_(n,t,r)}function d_(e,t=new Gr(e.info.viewport.width,e.info.viewport.height)){return l_(e.drawCommands,t,e.reservedRegions),t}function ej(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:y,clip:h}=e,R=a?ho(a):void 0,T=c?ho(c):void 0,$=f?ho(f):T;if(R||l!==" "){let D=d&&d!=="none"?1:0,M=n+D,N=o+D,U=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let F=0;F<G;F++)XL(t,r,M,N+F,U,l,void 0,R,{},h)}if(d&&d!=="none"){let D=Op[d]??Op.single,M={},N=u?.top!==!1,U=u?.bottom!==!1,G=u?.left!==!1,F=u?.right!==!1;if(N){let W=G?D.topLeft:D.top;br(t,r,n,o,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o,D.top,T,void 0,M,h);if(s>1){let q=F?D.topRight:D.top;br(t,r,n+s-1,o,q,T,void 0,M,h)}if(p&&s>4){let q=s-4,ae=` ${Zr(vk(p),q,{truncationCharacter:""})} `,se=be(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ae=0,Ee=pe;for(;Ae<ae.length&&Ee<n+s-1;){let we=Qn(ae,Ae);if(!we)break;Ae=we.nextIndex;let J=be(we.symbol);J<=0||Ee+J>n+s-1||(br(t,r,Ee,o,we.symbol,$,void 0,y?{...M,bold:!0}:M,h),Ee+=J)}}}for(let W=1;W<i-1;W++)G&&br(t,r,n,o+W,D.left,T,void 0,M,h),F&&s>1&&br(t,r,n+s-1,o+W,D.right,T,void 0,M,h);if(U&&i>1){let W=G?D.bottomLeft:D.bottom;br(t,r,n,o+i-1,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o+i-1,D.bottom,T,void 0,M,h);if(s>1){let q=F?D.bottomRight:D.bottom;br(t,r,n+s-1,o+i-1,q,T,void 0,M,h)}}}}function tj(e,t){e.cellRender&&f_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:p_(e),style:{},clip:e.clip},t,[])}function c_(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function u_(e){let t=c_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function Si(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${u_(e)}:${e.x}:${e.y}`)}function cs(e){return[Si(e),e.x,e.y,u_(e)].join(":")}function p_(e){let t=c_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:ml(e.protocol,e.source,t)}function t_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender&&(!t.clip||t.x>=t.clip.x&&t.y>=t.clip.y&&t.x+t.width<=t.clip.x+t.clip.width&&t.y+t.height<=t.clip.y+t.clip.height)):[]}function rj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Si(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Si(s));if(!i||cs(s)!==cs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=os.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${bl("kitty")}\x1B8`}}return o}function nj(e,t){let r=t_(e),n=t_(t),o=r.map(cs).join("|"),s=n.map(cs).join("|");if(e&&o===s)return"";let i=rj(r,n),a=new Map(r.map(l=>[Si(l),l]));for(let l of n){let d=a.get(Si(l));d&&cs(d)===cs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=p_(l),i+="\x1B8")}return i}function us(e){if(e===void 0||!/^\d{1,3}$/u.test(e))return null;let t=Number(e);return t>=0&&t<=255?t:null}function oj(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=us(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(us);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function sj(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=us(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[us(e[t+2]),us(e[t+3]),us(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var r_={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function ij(e,t,r,n={}){let o=[],s=t,i=r,a={...n},l="",d=0;for(;d<e.length;){if(e[d]==="\x1B"){let c=Yn(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let y=p[g].split(":"),h=Number(y[0]||0);if(y.length>1){if(h===4){let R=Number(y[1]||0);R in r_&&(a.underline=r_[R])}else if(h===38||h===48||h===58){let R=oj(y);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R)}continue}if(h===0)s=t,i=r,a={...n};else if(h===1)a.bold=!0;else if(h===2)a.dim=!0;else if(h===3)a.italic=!0;else if(h===4)a.underline=!0;else if(h===5)a.blink=!0;else if(h===7)a.inverse=!0;else if(h===8)a.hidden=!0;else if(h===9)a.strikethrough=!0;else if(h===21)a.underline="double";else if(h===22)a.bold=!1,a.dim=!1;else if(h===23)a.italic=!1;else if(h===24)a.underline=!1;else if(h===25)a.blink=!1;else if(h===27)a.inverse=!1;else if(h===28)a.hidden=!1;else if(h===29)a.strikethrough=!1;else if(h>=30&&h<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][h-30];else if(h===39)s=t;else if(h>=40&&h<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][h-40];else if(h===49)i=r;else if(h===59)a.underlineColor=n.underlineColor;else if(h>=90&&h<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-90];else if(h>=100&&h<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-100];else if(h===38||h===48||h===58){let{color:R,consumed:T}=sj(p,g);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function f_(e,t,r){let{x:n,y:o,maxWidth:s,text:i,style:a,inheritedBackgroundColor:l}=e;if(s<=0)return;let d=e.prebuiltAnsi===!0,c=d?void 0:a.color?ho(a.color):void 0,u=d?void 0:a.backgroundColor?ho(a.backgroundColor):l?ho(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?ho(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Xn(i,s,a.wrap);if(g){let y=ij(f.join(`
197
+ `),c,u,p),h=0,R=0;for(let T of y){let $=0;for(;$<T.text.length;){let D=Qn(T.text,$);if(!D)break;let M=D.symbol;if(M===`
198
+ `){R++,h=0,$=D.nextIndex;continue}let N=be(M);N>0&&(br(t,r,n+h,o+R,M,T.fg,T.bg,T.attrs,e.clip),h+=N),$=D.nextIndex}}}else for(let y=0;y<f.length;y++){let h=0,R=0;for(;R<f[y].length;){let T=Qn(f[y],R);if(!T)break;let $=T.symbol;if(h>=s)break;let D=be($);D>0&&(br(t,r,n+h,o+y,$,c,u,p,e.clip),h+=D),R=T.nextIndex}}}function ho(e){let t=HL(),r=t.get(e);if(r)return r;let n=JR(e);return t.set(e,n),n}var w9=Symbol("tuiuiu.delta-renderer-state");function g_(){return typeof performance<"u"?performance.now():Date.now()}function m_(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=m_(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function aj(e,t){return typeof e=="object"?{width:e.width??process.stdout.columns??80,height:e.height??1e3,fullHeight:e.fullHeight??!1}:{width:e??process.stdout.columns??80,height:t??1e3,fullHeight:!1}}function $p(e,t={}){let r=g_(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=m_(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Gr(e.info.viewport.width,u);d_(e,p);let g=Pl(p,n),f=cj(e,o);return it(e,"ansiRenderMs",g_()-r),f+g}function b_(e,t,r){let n=aj(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=fo(e,{width:n.width,height:s});return $p(i,{fullHeight:n.fullHeight})}function y_(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function k_(e){let t=y_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function Ti(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${k_(e)}:${e.x}:${e.y}`)}function ps(e){return[Ti(e),e.x,e.y,k_(e)].join(":")}function lj(e){let t=y_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:ml(e.protocol,e.source,t)}function h_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Bp(e,t){if(!Ew(t))return e;let r=$r();return r.multiplexer?Al(e,r.multiplexer):e}function dj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ti(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ti(s));if(!i||ps(s)!==ps(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Bp(`\x1B7\x1B[H${os.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Bp(`\x1B7\x1B[H${bl("kitty")}\x1B8`,"kitty")}}return o}function cj(e,t){let r=h_(e);if(r.length===0&&!t)return"";let n=h_(t),o=n.map(ps).join("|"),s=r.map(ps).join("|");if(t&&o===s)return"";let i=dj(n,r),a=new Map(n.map(l=>[Ti(l),l]));for(let l of r){let d=a.get(Ti(l));if(d&&ps(d)===ps(l))continue;let c=lj(l);i+=Bp(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Dl(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=wi(()=>gr(e)),o=Xt();return pr(o,n),n}return t}function w_(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=wi(e);return pr(Xt(),n),n}return t}function Pi(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=Xt(),o={effect:null,fn:e,dispose:null};pr(n,o);let s=new En(()=>{let a=Br(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,eo(i,n),i}else return t.fn=e,t.dispose}var N9=Symbol("tuiuiu.keyboard-protocol-runtime-state");function R_(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,y)=>{if(f===void 0)return y??null;if(!/^\d+$/u.test(f))return null;let h=Number(f);return Number.isSafeInteger(h)?h:null},n=f=>f>=0&&f<=1114111&&!(f>=55296&&f<=57343),o=r(t[1],0),s=r(t[2]),i=r(t[3]),a=r(t[4],1),l=r(t[5],1),d=t[6];if(o===null||a===null||a<1||l===null||s!==null&&!n(s)||i!==null&&!n(i))return null;let c=a-1,u={shift:!!(c&1),alt:!!(c&2),ctrl:!!(c&4),super:!!(c&8),hyper:!!(c&16),meta:!!(c&32),capsLock:!!(c&64),numLock:!!(c&128)},p="press";l===2?p="repeat":l===3&&(p="release");let g="";if(d){let f=d.split(":").map(y=>r(y));if(f.length===0||f.some(y=>y===null||!n(y)))return null;g=f.map(y=>String.fromCodePoint(y)).join("")}else o>=32&&o<127&&(g=String.fromCharCode(o));return{keyCode:o,baseKey:i??void 0,shiftedKey:s??void 0,text:g,eventType:p,modifiers:u}}var Np="\x1B[200~",fs="\x1B[201~",uj="\x1B[I",pj="\x1B[O";function __(){return"\x1B[?2004h"}function x_(){return"\x1B[?2004l"}function E_(){return"\x1B[?1004h"}function v_(){return"\x1B[?1004l"}function S_(e){return e===uj?{focused:!0}:e===pj?{focused:!1}:null}function T_(){return"\x1B[?1049h"}function Gp(){return"\x1B[?1049l"}var fj={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},gj=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),hj=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),mj=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,bj=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,yj=/^\x1b\[27;(\d+);(\d+)~/;function kj(e,t){if(!Number.isSafeInteger(t)||t<1||t>16)return!1;let r=t-1;return e.shift=!!(r&1),e.option=!!(r&2),e.ctrl=!!(r&4),e.meta=!!(r&58),!0}function A_(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function P_(e,t,r=""){switch(t){case 9:return e.tab=!0,"";case 13:return e.return=!0,"";case 27:return e.escape=!0,"";case 127:return e.backspace=!0,""}return!A_(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function wj(e,t){switch(t){case"up":e.upArrow=!0;break;case"down":e.downArrow=!0;break;case"left":e.leftArrow=!0;break;case"right":e.rightArrow=!0;break;case"pageup":e.pageUp=!0;break;case"pagedown":e.pageDown=!0;break;case"home":e.home=!0;break;case"end":e.end=!0;break;case"insert":e.insert=!0;break;case"delete":e.delete=!0;break;case"clear":e.clear=!0;break;case"tab":e.tab=!0;break;case"f1":e.f1=!0;break;case"f2":e.f2=!0;break;case"f3":e.f3=!0;break;case"f4":e.f4=!0;break;case"f5":e.f5=!0;break;case"f6":e.f6=!0;break;case"f7":e.f7=!0;break;case"f8":e.f8=!0;break;case"f9":e.f9=!0;break;case"f10":e.f10=!0;break;case"f11":e.f11=!0;break;case"f12":e.f12=!0;break}}function Wp(e){let t=e.toString();Buffer.isBuffer(e)&&e[0]!==void 0&&e[0]>127&&e[1]===void 0&&(t="\x1B"+String.fromCharCode(e[0]-128));let r={upArrow:!1,downArrow:!1,leftArrow:!1,rightArrow:!1,pageUp:!1,pageDown:!1,home:!1,end:!1,insert:!1,return:!1,escape:!1,tab:!1,backspace:!1,delete:!1,clear:!1,ctrl:!1,shift:!1,meta:!1,option:!1,f1:!1,f2:!1,f3:!1,f4:!1,f5:!1,f6:!1,f7:!1,f8:!1,f9:!1,f10:!1,f11:!1,f12:!1},n="";if(t==="\r")return r.return=!0,{input:n,key:r,length:1};if(t===`
199
199
  `)return r.return=!0,{input:n,key:r,length:1};if(t==="\x1B\r"||t===`\x1B
200
- `)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=cj.exec(t);if(o){let d=h_(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=__(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=uj.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(pj(r,d)&&x_(c))return n=__(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=dj.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=ij[c];return p&&fj(r,p),aj.has(c)&&(r.shift=!0),lj.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 jp(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=cr(null);if(i||s===null){let c=function(){return Ir(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=Qt();ur(d,l),r&&(l.handlerId=nl(a,{priority:n,stopPropagation:o})),Vn(()=>{l.handlerId!==null&&(ii(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=nl(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(ii(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&ii(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=nl(s.wrapper,{priority:n,stopPropagation:o}))}}function E_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(E_):typeof e=="string"||typeof e=="number"?[Ei({children:String(e)})]:[e]}function Bp(e,...t){return{type:"box",props:{...e},children:E_(t.length>0?t:e.children)}}function Ei(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:[]}}function $p(e={}){let{flex:t=1,minSize:r=0,x:n,y:o}=e;return{type:"spacer",props:{flexGrow:n!==void 0||o!==void 0?0:t,flexShrink:0,minWidth:n??r,minHeight:o??r,width:n,height:o},children:[]}}var gj=0,v_=Symbol("tuiuiu.focus-zone-manager"),Np=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(v_,()=>new e)}static reset(){Za(v_)}[Cr](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${gj++}`,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 S_(){return Np.getInstance()}var vi=class{zoneManager=S_();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 hj}from"node:string_decoder";function T_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function mj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function bj(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 yj(e){let t=bj(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function kj(e){let t=Math.min(e.length,is.length-1);for(let r=t;r>0;r--)if(e.endsWith(is.slice(0,r)))return r;return 0}var Gp=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new hj("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,T_(this.maxPasteBytes,"maxPasteBytes"),T_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),mj(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}=yj(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&&is.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(is);if(o===-1){let s=kj(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+is.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(Ip);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+Ip.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 P_(e={}){return new Gp(e)}function A_(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=k=>{typeof r.write=="function"&&r.write(k)},p=k=>{if(!(d||!t.isTTY||!t.setRawMode)){if(k){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(y_()),a&&o&&u(m_()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let k,b=v=>{try{v()}catch(T){k??=T}};if(c=0,b(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),b(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&b(()=>u(k_())),a&&o&&b(()=>u(b_())),k)throw k}}}function Cl(){let e=Yr();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Pl=new WeakSet,Al=new WeakSet;function Wp(e,t,r={}){let n=qu();if(n&&Yr(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(Pl.has(e)||Al.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=Sk();Pl.add(e),Al.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,k,b=!1,v=o,T,$=qe(u,()=>(gR({stdout:t}),!!(e.isTTY&&p&&Mr().focusEvents))),D=A_({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),L=D.setRawMode,W=D.isRawModeEnabled;try{D.start()}catch(J){Pl.delete(e),Al.delete(t);try{D.dispose()}finally{qo(u)}throw J}gp(u);let K=qe(u,()=>new vi);Qu(K,u);let H=P_({maxPasteBytes:a,maxPendingEscapeBytes:l}),I=null,G=null,V=()=>{I&&(clearTimeout(I),I=null)},ge=()=>{V(),I=setTimeout(()=>{H.abortPaste(),I=null},Math.max(0,c))},fe=J=>{let ie=J;for(;ie.length>0;){let Re=w_(ie.slice(0,3));if(Re){Bt(()=>{fp(Re.focused)}),ie=ie.slice(3);continue}if(tp(ie)){let ce=ui(ie);if(ce){Bt(()=>{Xo().handleMouseEvent(ce.event),zk(ce.event)}),ie=ie.slice(ce.length);continue}}let{input:Ae,key:Ee,length:we}=Lp(ie),Se=we>0?we:1;if(ie=ie.slice(Se),s&&Ee.ctrl&&Ae==="c"){ke();return}if(v){if(Ee.tab&&!Ee.shift){Bt(()=>{K.focusNext()});continue}if(Ee.tab&&Ee.shift){Bt(()=>{K.focusPrevious()});continue}if(Ee.escape&&K.getActiveId()!==void 0){Bt(()=>{K.blur()});continue}}Bt(()=>{Kk(Ae,Ee)})}},de=J=>{for(let ie of J){if(b)return;ie.type==="paste"?Bt(()=>{Yk(ie.text,ie.bracketed)}):fe(ie.input)}},te=()=>{b||(G&&(clearTimeout(G),G=null),H.status.pendingEscapeBytes>0&&(G=setTimeout(me,Math.max(0,d))),H.status.pasteActive?ge():V())},me=()=>{G=null,!b&&(de(H.flushPendingInput()),te())},Oe=Jr(u,J=>{b||(de(H.push(J)),te())});e.on("data",Oe);let ve=()=>{if(b)return;b=!0;let J=ie=>{try{ie()}catch(Re){console.error("[tuiuiu] Error while disposing app state:",Re)}};try{J(()=>e.off("data",Oe)),G&&(clearTimeout(G),G=null),V(),J(()=>H.dispose()),J(()=>D.dispose()),J(()=>rl(u)),J(()=>gp(u)),J(()=>Vk(u)),J(()=>Qk(u)),J(()=>Jk(u)),J(()=>al(u)),J(()=>aw(u)),J(()=>Qu(null,u)),J(()=>{Yr(u)===T&&Yu(null,u)})}finally{Pl.delete(e),Al.delete(t),g.clear(),qo(u)}},ke=J=>{if(f)return;f=!0,k=J;let ie=[...g];g.clear(),ve();for(let Re of ie)try{Re(J)}catch(Ae){console.error("[tuiuiu] Error in app exit callback:",Ae)}J&&console.error(J),i&&process.exit(J?1:0)};return T={exit:ke,dispose:ve,stdin:e,stdout:t,writeLine:J=>{let ie=Wo(String(J)).replace(/\r\n?/g,`
201
- `);t.write(`${ie.replace(/\n+$/u,"")}
202
- `)},onExit:J=>{if(f){try{J(k)}catch(ie){console.error("[tuiuiu] Error in app exit callback:",ie)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:v,setAutoTabNavigation:J=>{v=J},setRawMode:L,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:W,isTerminalFocused:()=>gr(u),enqueueExternalUpdate:J=>{Bt(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},Yu(T,u),T}function Hp(e){let t=Yr();t&&(t.clearScreen=e)}function Ol(e){let t=Yr();t&&(t.writeLine=e??(r=>{let n=Wo(String(r)).replace(/\r\n?/g,`
200
+ `)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=bj.exec(t);if(o){let d=R_(o[0]);if(d){r.shift=d.modifiers.shift,r.option=d.modifiers.alt,r.ctrl=d.modifiers.ctrl,r.meta=d.modifiers.alt||d.modifiers.super||d.modifiers.hyper||d.modifiers.meta,r.eventType=d.eventType;let c=o[0].split(";").length>=3;return n=P_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=yj.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(kj(r,d)&&A_(c))return n=P_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=mj.exec(t);if(i&&i.index===0){let d=[...t];d[0]==="\x1B"&&d[1]==="\x1B"&&(r.option=!0);let c=[i[1],i[2],i[4],i[6]].filter(Boolean).join(""),u=(i[3]||i[5]||1)-1;r.ctrl=!!(u&4),r.meta=!!(u&10),r.shift=!!(u&1);let p=fj[c];return p&&wj(r,p),gj.has(c)&&(r.shift=!0),hj.has(c)&&(r.ctrl=!0),{input:n,key:r,length:i[0].length}}let a=/^(?:)([a-zA-Z0-9])/.exec(t);if(a)return r.meta=!0,r.shift=/^[A-Z]$/.test(a[1]),n=a[1].toLowerCase(),{input:n,key:r,length:2};let l=/^[^\x00-\x1f\x7f]+/u.exec(t);if(l){let d=l[0];return d.length===1&&d>="A"&&d<="Z"?(r.shift=!0,n=d.toLowerCase(),{input:n,key:r,length:1}):(n=d,{input:n,key:r,length:d.length})}return{input:n,key:r,length:t.length}}function Hp(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=ur(null);if(i||s===null){let c=function(){return Br(d)},a=(u,p,g)=>{let f=c();if(f&&f.registered)return f.handler(u,p,g)},l={handler:e,wrapper:a,registered:r,handlerId:null,priority:n,stopPropagation:o},d=Xt();pr(d,l),r&&(l.handlerId=al(a,{priority:n,stopPropagation:o})),eo(()=>{l.handlerId!==null&&(ui(l.handlerId),l.handlerId=null),l.registered=!1},d)}else{let a=s.registered;s.handler=e,s.registered=r;let l=s.priority!==n,d=s.stopPropagation!==o;r&&!a?(s.priority=n,s.stopPropagation=o,s.handlerId=al(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(ui(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&ui(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=al(s.wrapper,{priority:n,stopPropagation:o}))}}function C_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(C_):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function yr(e,...t){return{type:"box",props:{...e},children:C_(t.length>0?t:e.children)}}function mt(e,...t){let r=t.filter(o=>o!=null),n=r.length>0?r.join(""):Array.isArray(e.children)?e.children.filter(o=>o!=null).join(""):String(e.children??"");return{type:"text",props:{...e,children:n},children:[]}}var Rj=0,D_=Symbol("tuiuiu.focus-zone-manager"),Up=class e{zones=new Map;stack=[];activeZoneId=null;rootZoneId=null;maxStackDepth=10;listeners=new Set;constructor(){this.createZone({id:"__root__"}),this.rootZoneId="__root__",this.activeZoneId="__root__"}static getInstance(){return Oe(D_,()=>new e)}static reset(){nl(D_)}[Ir](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Rj++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function O_(){return Up.getInstance()}var Ai=class{zoneManager=O_();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as _j}from"node:string_decoder";function F_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function xj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function Ej(e){let t=0;for(;t<e.length;){let r=e.indexOf("\x1B",t);if(r===-1)return-1;if(r+1>=e.length)return r;let n=e[r+1];if(n==="["){let o=r+2;for(;o<e.length;){let s=e.charCodeAt(o);if(s>=64&&s<=126)break;o++}if(o>=e.length)return r;t=o+1;continue}if(n==="]"||n==="P"||n==="^"||n==="_"){let o=r+2,s=!1;for(;o<e.length;){if(n==="]"&&e.charCodeAt(o)===7){o++,s=!0;break}if(e[o]==="\x1B"&&e[o+1]==="\\"){o+=2,s=!0;break}o++}if(!s)return r;t=o;continue}if(n==="O"&&r+2>=e.length)return r;t=Math.min(e.length,r+(n==="O"?3:2))}return-1}function vj(e){let t=Ej(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function Sj(e){let t=Math.min(e.length,fs.length-1);for(let r=t;r>0;r--)if(e.endsWith(fs.slice(0,r)))return r;return 0}var qp=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new _j("utf8");pendingInput="";pasteBuffer=null;pasteBufferBytes=0;pasteOverflowed=!1;pasteTerminatorPrefix="";disposed=!1;constructor(t={}){this.maxPasteBytes=t.maxPasteBytes??1024*1024,this.maxPendingEscapeBytes=t.maxPendingEscapeBytes??4096,this.pasteHeuristicThreshold=t.pasteHeuristicThreshold??32,F_(this.maxPasteBytes,"maxPasteBytes"),F_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),xj(this.pasteHeuristicThreshold,"pasteHeuristicThreshold")}get status(){return{pendingEscapeBytes:Buffer.byteLength(this.pendingInput,"utf8"),pasteBytes:this.pasteBufferBytes,pasteActive:this.pasteBuffer!==null,pasteOverflowed:this.pasteOverflowed}}push(t){if(this.disposed)return[];let r=typeof t=="string"?t:this.decoder.write(t);if(!r&&!this.pendingInput)return[];let n=this.pendingInput+r;this.pendingInput="";let{complete:o,pending:s}=vj(n),i=o?this.processCompleteInput(o):[];return s&&(Buffer.byteLength(s,"utf8")>this.maxPendingEscapeBytes?i.push(...this.processCompleteInput(s)):this.pendingInput=s),i}flushPendingInput(){if(this.disposed||!this.pendingInput)return[];let t=this.pendingInput;return this.pendingInput="",this.processCompleteInput(t)}abortPaste(){let t=this.pasteBuffer!==null;this.pasteBuffer=null,this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="",t&&fs.startsWith(this.pendingInput)&&(this.pendingInput="")}dispose(){this.disposed||(this.disposed=!0,this.pendingInput="",this.abortPaste(),this.decoder.end())}appendPaste(t){if(this.pasteBuffer===null||this.pasteOverflowed||!t)return;let r=Buffer.byteLength(t,"utf8");if(this.pasteBufferBytes+r>this.maxPasteBytes){this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!0;return}this.pasteBuffer+=t,this.pasteBufferBytes+=r}consumeActivePaste(t,r){let n=this.pasteTerminatorPrefix+t;this.pasteTerminatorPrefix="";let o=n.indexOf(fs);if(o===-1){let s=Sj(n),i=n.length-s;return this.appendPaste(n.slice(0,i)),this.pasteTerminatorPrefix=n.slice(i),null}return this.appendPaste(n.slice(0,o)),!this.pasteOverflowed&&this.pasteBuffer!==null&&r.push({type:"paste",text:this.pasteBuffer,bracketed:!0}),this.abortPaste(),n.slice(o+fs.length)}processCompleteInput(t){let r=[],n=t;if(this.pasteBuffer!==null){let o=this.consumeActivePaste(n,r);if(o===null||(n=o,!n))return r}for(;n.length>0;){let o=n.indexOf(Np);if(o!==-1){let s=n.slice(0,o);s&&r.push({type:"input",input:s}),this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="";let i=this.consumeActivePaste(n.slice(o+Np.length),r);if(i===null)return r;n=i;continue}return n.length>this.pasteHeuristicThreshold&&!n.includes("\x1B")?(Buffer.byteLength(n,"utf8")<=this.maxPasteBytes&&r.push({type:"paste",text:n,bracketed:!1}),r):(r.push({type:"input",input:n}),r)}return r}};function I_(e={}){return new qp(e)}function M_(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=y=>{typeof r.write=="function"&&r.write(y)},p=y=>{if(!(d||!t.isTTY||!t.setRawMode)){if(y){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(E_()),a&&o&&u(__()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let y,h=R=>{try{R()}catch(T){y??=T}};if(c=0,h(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),h(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&h(()=>u(v_())),a&&o&&h(()=>u(x_())),y)throw y}}}function Il(){let e=tn();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Ol=new WeakSet,Fl=new WeakSet;function Kp(e,t,r={}){let n=Qu();if(n&&tn(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(Ol.has(e)||Fl.has(t))throw new Error("[tuiuiu] A terminal stream cannot be shared by simultaneous apps. Use distinct stdin/stdout pairs or dispose the current owner first.");let u=Ok();Ol.add(e),Fl.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,h=!1,R=o,T,$=qe(u,()=>(wR({stdout:t}),!!(e.isTTY&&p&&$r().focusEvents))),D=M_({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(J){Ol.delete(e),Fl.delete(t);try{D.dispose()}finally{Xo(u)}throw J}wp(u);let U=qe(u,()=>new Ai);np(U,u);let G=I_({maxPasteBytes:a,maxPendingEscapeBytes:l}),F=null,W=null,q=()=>{F&&(clearTimeout(F),F=null)},oe=()=>{q(),F=setTimeout(()=>{G.abortPaste(),F=null},Math.max(0,c))},ae=J=>{let de=J;for(;de.length>0;){let _e=S_(de.slice(0,3));if(_e){$t(()=>{kp(_e.focused)}),de=de.slice(3);continue}if(ap(de)){let fe=mi(de);if(fe){$t(()=>{ss().handleMouseEvent(fe.event),ew(fe.event)}),de=de.slice(fe.length);continue}}let{input:Ce,key:ve,length:Re}=Wp(de),Se=Re>0?Re:1;if(de=de.slice(Se),s&&ve.ctrl&&Ce==="c"){we();return}if(R){if(ve.tab&&!ve.shift){$t(()=>{U.focusNext()});continue}if(ve.tab&&ve.shift){$t(()=>{U.focusPrevious()});continue}if(ve.escape&&U.getActiveId()!==void 0){$t(()=>{U.blur()});continue}}$t(()=>{Xk(Ce,ve)})}},se=J=>{for(let de of J){if(h)return;de.type==="paste"?$t(()=>{rw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{h||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!h&&(se(G.flushPendingInput()),Z())},Ae=en(u,J=>{h||(se(G.push(J)),Z())});e.on("data",Ae);let Ee=()=>{if(h)return;h=!0;let J=de=>{try{de()}catch(_e){console.error("[tuiuiu] Error while disposing app state:",_e)}};try{J(()=>e.off("data",Ae)),W&&(clearTimeout(W),W=null),q(),J(()=>G.dispose()),J(()=>D.dispose()),J(()=>il(u)),J(()=>wp(u)),J(()=>Zk(u)),J(()=>nw(u)),J(()=>tw(u)),J(()=>ul(u)),J(()=>fw(u)),J(()=>np(null,u)),J(()=>{tn(u)===T&&rp(null,u)})}finally{Ol.delete(e),Fl.delete(t),g.clear(),Xo(u)}},we=J=>{if(f)return;f=!0,y=J;let de=[...g];g.clear(),Ee();for(let _e of de)try{_e(J)}catch(Ce){console.error("[tuiuiu] Error in app exit callback:",Ce)}J&&console.error(J),i&&process.exit(J?1:0)};return T={exit:we,dispose:Ee,stdin:e,stdout:t,writeLine:J=>{let de=Jo(String(J)).replace(/\r\n?/g,`
201
+ `);t.write(`${de.replace(/\n+$/u,"")}
202
+ `)},onExit:J=>{if(f){try{J(y)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:R,setAutoTabNavigation:J=>{R=J},setRawMode:M,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>hr(u),enqueueExternalUpdate:J=>{$t(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},rp(T,u),T}function Vp(e){let t=tn();t&&(t.clearScreen=e)}function Ml(e){let t=tn();t&&(t.writeLine=e??(r=>{let n=Jo(String(r)).replace(/\r\n?/g,`
203
203
  `);t.stdout.write(`${n.replace(/\n+$/u,"")}
204
- `)}))}function Dl(e){let t=Yr();if(t){if(!e){t.enqueueExternalUpdate=r=>{Bt(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function Up(){let[e,t]=g_(()=>fr(mR()));return xi(()=>bR(n=>{t(n)})),e()}function qp(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=cr(null);if(i||s===null){let a=Qt(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=Ir(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=Ir(a);c&&c.callback()},d.delay))},stop:()=>{let d=Ir(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>Ir(a)?.running??!1};return ur(a,l),Vn(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 br="\x1B[",Kp=`${br}H`,Si=`${br}J`,Fl=`${br}K`,C_=e=>{let t="";for(let r=0;r<e;r++)t+=br+"2K",r<e-1&&(t+=br+"1A");return e>0&&(t+="\r"),t},O_=e=>e>0?`${br}${e}A`:"",wj=`${br}1E`,Rj=`${br}2K`;function _j(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${br}${n+1}H`:Kp,d=c=>{!r&&!a&&(rs(e),a=!0);let u=c+`
204
+ `)}))}function Ll(e){let t=tn();if(t){if(!e){t.enqueueExternalUpdate=r=>{$t(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function zp(){let[e,t]=w_(()=>gr(_R()));return Pi(()=>xR(n=>{t(n)})),e()}function Jp(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=ur(null);if(i||s===null){let a=Xt(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=Br(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=Br(a);c&&c.callback()},d.delay))},stop:()=>{let d=Br(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>Br(a)?.running??!1};return pr(a,l),eo(l.stop,a),n&&(o&&e(),l.start()),{start:l.start,stop:l.stop,isRunning:l.isRunning}}else return s.callback=e,s.delay=t,n!==s.enabled&&(s.enabled=n,n?s.start():s.stop()),{start:s.start,stop:s.stop,isRunning:s.isRunning}}var kr="\x1B[",Yp=`${kr}H`,Ci=`${kr}J`,jl=`${kr}K`,L_=e=>{let t="";for(let r=0;r<e;r++)t+=kr+"2K",r<e-1&&(t+=kr+"1A");return e>0&&(t+="\r"),t},j_=e=>e>0?`${kr}${e}A`:"",Tj=`${kr}1E`,Pj=`${kr}2K`;function Aj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${kr}${n+1}H`:Yp,d=c=>{!r&&!a&&(ds(e),a=!0);let u=c+`
205
205
  `;if(u===o)return;let p=c.split(`
206
- `),g=p.map(T=>xe(T)),f=p.length,k=[];for(let T=0;T<p.length;T++){let $=p[T],D=g[T],L=i[T]??0;D<L?k.push($+Fl):k.push($)}let b=s-f,v="";if(b>0)for(let T=0;T<b;T++)v+=`
207
- `+Fl;o=u,s=f,i=g,e.write(l+k.join(`
208
- `)+v+`
209
- `+Si)};return d.clear=()=>{e.write(l+Si),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(ts(e),a=!1)},d.sync=c=>{let u=c.split(`
206
+ `),g=p.map(T=>be(T)),f=p.length,y=[];for(let T=0;T<p.length;T++){let $=p[T],D=g[T],M=i[T]??0;D<M?y.push($+jl):y.push($)}let h=s-f,R="";if(h>0)for(let T=0;T<h;T++)R+=`
207
+ `+jl;o=u,s=f,i=g,e.write(l+y.join(`
208
+ `)+R+`
209
+ `+Ci)};return d.clear=()=>{e.write(l+Ci),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(ls(e),a=!1)},d.sync=c=>{let u=c.split(`
210
210
  `);o=c+`
211
- `,s=u.length,i=u.map(p=>xe(p))},d}function xj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${br}${n+1}H`:Kp,l=d=>{!r&&!i&&(rs(e),i=!0);let c=d+`
211
+ `,s=u.length,i=u.map(p=>be(p))},d}function Cj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${kr}${n+1}H`:Yp,l=d=>{!r&&!i&&(ds(e),i=!0);let c=d+`
212
212
  `;if(c===s)return;let u=o.length,p=c.split(`
213
213
  `),g=p.length,f=g-1;if(c===`
214
- `||s.length===0){e.write(a+C_(u)+c),s=c,o=p;return}let k=[];g<u?k.push(C_(u-g+1),O_(f)):k.push(O_(u-1));for(let b=0;b<f;b++){if(p[b]===o[b]){k.push(wj);continue}k.push(Rj+p[b]+`
215
- `)}e.write(k.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Si),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(ts(e),i=!1)},l.sync=d=>{let c=d+`
214
+ `||s.length===0){e.write(a+L_(u)+c),s=c,o=p;return}let y=[];g<u?y.push(L_(u-g+1),j_(f)):y.push(j_(u-1));for(let h=0;h<f;h++){if(p[h]===o[h]){y.push(Tj);continue}y.push(Pj+p[h]+`
215
+ `)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Ci),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(ls(e),i=!1)},l.sync=d=>{let c=d+`
216
216
  `;s=c,o=c.split(`
217
- `)},l}function Ej(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${br}${n+1}H`:Kp,l=d=>{!r&&!i&&(rs(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
218
- `),p=u.length,g=c;if(g=u.map(k=>k+Fl).join(`
219
- `),s>p){let k=s-p;for(let b=0;b<k;b++)g+=`
220
- `+Fl}e.write(a+g+Si),o=c,s=p};return l.clear=()=>{e.write(a+Si),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(ts(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
221
- `).length},l}function Vp(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?Ej(e,t):r?xj(e,t):_j(e,t)}function D_(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 F_=Symbol("tuiuiu.overlay-runtime-state");function vj(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function I_(e){let t=e.id===0?null:Ft(F_,()=>I_(Or())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Cr](){vj(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function Sj(){let e=Ge();return De(F_,()=>I_(e),e)}function zp(e,t){let r=Sj();r.terminalSize={width:e,height:t}}function M_(e){return"__reactive"in e}function Tj(e){let t=e.__reactive(),r=Dt(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function L_(e){let t=0,r=n=>{M_(n)&&Tj(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function j_(e){let t=new Set,r=n=>{M_(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function Pj(e){return!!e.props.__static}function Aj(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Dt(e.children??[])}`}function Cj(e){let t=[];function r(o){if(Pj(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 Jp={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},Oj={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function Yp(e,t={}){let r=t.screenMode?Oj[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:k=!0,fixedStep:b}=t,v=t.clearOnStart??r?.clearOnStart??!0,T=t.fullHeight??r?.fullHeight??!1,$=t.alternateScreen??r?.alternateScreen??!0;if(!Number.isFinite(p)||p<0)throw new Error("[tuiuiu] maxFps must be a finite non-negative number");if(b){if(!Number.isFinite(b.updateFps)||b.updateFps<=0)throw new Error("[tuiuiu] fixedStep.updateFps must be a finite positive number");if(b.maxCatchUpUpdates!==void 0&&(!Number.isSafeInteger(b.maxCatchUpUpdates)||b.maxCatchUpUpdates<1))throw new Error("[tuiuiu] fixedStep.maxCatchUpUpdates must be a positive safe integer")}let D=Wp(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),L=Ju(D);if(!L)throw D.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let W=L,K=()=>{},H=[];try{K=Zk(),H.push(Qr(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),H.push(Qr(()=>{n.write("\x1B[?1004l")})),H.push(Qr(()=>{n.write("\x1B[?2004l")})),$&&(n.write(R_()),H.push(Qr(()=>{n.write(Mp())})))}catch(re){for(let ye of H.splice(0))try{ye()}catch{}try{K()}catch{}throw D.dispose(),qo(W),re}let I=typeof e=="function"?e:()=>e,G=!1,V=0,ge=0,fe=0,de,te,me=()=>{G=!1,be()},Oe=()=>{V++,V===1&&(ge=0,fe=0)},ve=()=>V===0?{bytes:0,writeMs:0}:(V--,V===0?{bytes:ge,writeMs:fe}:{bytes:0,writeMs:0}),ke=re=>{let ye=V>0?performance.now():0,Ie=n.write(re);return V>0&&(fe+=performance.now()-ye,ge+=typeof re=="string"?Buffer.byteLength(re):re.byteLength),!Ie&&!G&&!we&&(G=!0,n.once("drain",me)),Ie},J={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(re){return ke(re)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},ie=Vp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),Re=0,Ae=null,Ee="",we=!1,Se=[],ce,oe,_e,Fe=new Set,at=0,$t=()=>{Re=at,ie=Vp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:Re}),Ee=""},Xr=()=>{ie.clear(),ke(Jp.clearTerminal),Ee="",Fe.clear(),at=0,Se=[],$t()},Zr=re=>{ie.clear(),ke(`${re}
217
+ `)},l}function Dj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${kr}${n+1}H`:Yp,l=d=>{!r&&!i&&(ds(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
218
+ `),p=u.length,g=c;if(g=u.map(y=>y+jl).join(`
219
+ `),s>p){let y=s-p;for(let h=0;h<y;h++)g+=`
220
+ `+jl}e.write(a+g+Ci),o=c,s=p};return l.clear=()=>{e.write(a+Ci),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(ls(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
221
+ `).length},l}function Qp(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?Dj(e,t):r?Cj(e,t):Aj(e,t)}function B_(e,t=200){let r=!1,n=null;return{schedule:()=>{r||(r=!0,n=setTimeout(()=>{r=!1,n=null,e()},t))},flush:()=>{n&&(clearTimeout(n),n=null),r=!1,e()},cancel:()=>{n&&(clearTimeout(n),n=null),r=!1},isPending:()=>r}}var $_=Symbol("tuiuiu.overlay-runtime-state");function Oj(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function N_(e){let t=e.id===0?null:It($_,()=>N_(Mr())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Ir](){Oj(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function Fj(){let e=Ge();return Oe($_,()=>N_(e),e)}function Xp(e,t){let r=Fj();r.terminalSize={width:e,height:t}}function G_(e){return"__reactive"in e}function Ij(e){let t=e.__reactive(),r=Ft(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function W_(e){let t=0,r=n=>{G_(n)&&Ij(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function H_(e){let t=new Set,r=n=>{G_(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function Mj(e){return!!e.props.__static}function Lj(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Ft(e.children??[])}`}function jj(e){let t=[];function r(o){if(Mj(o))return t.push(o),null;if(o.children&&o.children.length>0){let s=o.children.map(i=>i&&typeof i=="object"&&"type"in i?r(i):i).filter(i=>i!==null);return{...o,children:s}}return o}let n=r(e)??{type:"fragment",props:{},children:[]};return{staticNodes:t,interactiveNode:n}}var Zp={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},Bj={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function ef(e,t={}){let r=t.screenMode?Bj[t.screenMode]:void 0,{stdout:n=process.stdout,stdin:o=process.stdin,debug:s=!1,exitOnCtrlC:i=!0,exitProcess:a=!1,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u,maxFps:p=30,showCursor:g=!1,autoTabNavigation:f=!0,useDeltaRenderer:y=!0,fixedStep:h}=t,R=t.clearOnStart??r?.clearOnStart??!0,T=t.fullHeight??r?.fullHeight??!1,$=t.alternateScreen??r?.alternateScreen??!0;if(!Number.isFinite(p)||p<0)throw new Error("[tuiuiu] maxFps must be a finite non-negative number");if(h){if(!Number.isFinite(h.updateFps)||h.updateFps<=0)throw new Error("[tuiuiu] fixedStep.updateFps must be a finite positive number");if(h.maxCatchUpUpdates!==void 0&&(!Number.isSafeInteger(h.maxCatchUpUpdates)||h.maxCatchUpUpdates<1))throw new Error("[tuiuiu] fixedStep.maxCatchUpUpdates must be a positive safe integer")}let D=Kp(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=tp(D);if(!M)throw D.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,U=()=>{},G=[];try{U=sw(),G.push(rn(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),G.push(rn(()=>{n.write("\x1B[?1004l")})),G.push(rn(()=>{n.write("\x1B[?2004l")})),$&&(n.write(T_()),G.push(rn(()=>{n.write(Gp())})))}catch(re){for(let ke of G.splice(0))try{ke()}catch{}try{U()}catch{}throw D.dispose(),Xo(N),re}let F=typeof e=="function"?e:()=>e,W=!1,q=0,oe=0,ae=0,se,Z,pe=()=>{W=!1,ye()},Ae=()=>{q++,q===1&&(oe=0,ae=0)},Ee=()=>q===0?{bytes:0,writeMs:0}:(q--,q===0?{bytes:oe,writeMs:ae}:{bytes:0,writeMs:0}),we=re=>{let ke=q>0?performance.now():0,Ie=n.write(re);return q>0&&(ae+=performance.now()-ke,oe+=typeof re=="string"?Buffer.byteLength(re):re.byteLength),!Ie&&!W&&!Re&&(W=!0,n.once("drain",pe)),Ie},J={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(re){return we(re)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},de=Qp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),_e=0,Ce=null,ve="",Re=!1,Se=[],fe,ie,xe,Fe=new Set,at=0,Nt=()=>{_e=at,de=Qp(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:_e}),ve=""},nn=()=>{de.clear(),we(Zp.clearTerminal),ve="",Fe.clear(),at=0,Se=[],Nt()},on=re=>{de.clear(),we(`${re}
222
222
  `),at+=re.split(`
223
- `).length,$t()};qe(W,()=>Hp(Xr)),ce=new Promise((re,ye)=>{oe=re,_e=ye});let lo=D.dispose;D.dispose=()=>{if(we){lo();return}Pt(),oe()};let le=p>0?Math.ceil(1e3/p):0;qe(W,()=>{Hw({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:le>0?le:16.67}),zp(n.columns||80,n.rows||24)});let Nt=0,ct=!1,et=null,wt=null,lt=null,ut=0,Rt=0,_t=0,Br=0,Ce=null,Le=[],Q=!1,C=null;k&&(C=ZR({stdout:J,showCursor:g,useDelta:!0})),v&&!s&&ke(Jp.clearTerminal);let w=le>0?le:16,M=D_(()=>{Le.length!==0&&Bt(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let ye of re)ye()}})},w);qe(W,()=>Dl({enqueue(re){we||(Le.push(re),M.schedule())},flush(){we||M.flush()},isPending(){return Le.length>0||M.isPending()}}));let B=()=>{let re=performance.now();te=Date.now(),Gk("component");try{Ae=I(),L_(Ae)}finally{Wk(),de=performance.now()-re}},U=()=>qe(W,()=>{B(),kr()});function X(re){we||(wt=re,!G&&be())}function be(){if(ct||we||G||!wt)return;let ye=Date.now()-Nt,Ie=Nt===0||ye>=le?0:le-ye,Gt=()=>{let At=wt;if(wt=null,ct=!1,et=null,!we)try{At?.()}catch(Wt){D.exit(Wt instanceof Error?Wt:new Error(String(Wt)))}};if(ct=!0,Ie===0){queueMicrotask(Gt);return}et=setTimeout(Gt,Ie)}let je=re=>qe(W,()=>{if(we)return;let ye=Wo(String(re)).replace(/\r\n?/g,`
224
- `).replace(/\n+$/u,"");Se.push(ye),X(kr)});qe(W,()=>Ol(je));function Be(){if(!b||we||(b.pauseWhenUnfocused??!0)&&!gr())return;let ye=1e3/Math.max(1,b.updateFps),Ie=Math.max(0,Math.ceil(ye-ut));lt=setTimeout(Zt,Ie)}function Zt(){if(!(!b||we))try{if((b.pauseWhenUnfocused??!0)&&!gr()){lt=null,ut=0,Rt=Date.now();return}let ye=1e3/b.updateFps,Ie=b.maxCatchUpUpdates??5,Gt=Date.now();ut+=Gt-Rt,Rt=Gt;let At=0;for(;ut>=ye&&At<Ie;)ut-=ye,_t++,Br+=ye,Bt(()=>{b.onUpdate({deltaTimeMs:ye,step:_t,elapsedMs:Br})}),At++;ut>=ye&&(ut%=ye),Be()}catch(re){lt=null,D.exit(re instanceof Error?re:new Error(String(re)))}}let yr=Jr(W,()=>{we||(hR(),zp(n.columns||80,n.rows||24),xw(),X(U))});n.on("resize",yr);let Ve=()=>{};D.onExit(re=>qe(W,()=>{Pt(),Ve(),re?_e(re):oe()}));function kr(){if(we||!Ae)return;Nt=Date.now();let re=te??Date.now(),ye=n.columns||80,Ie=n.rows||24,Gt=Cj(Ae),At=()=>{C&&(C.cleanup(),C=null,ke(Jp.clearTerminal),Fe.clear(),at=0,$t())};if(Se.length>0){At();let $e=Se;Se=[],Zr($e.join(`
225
- `))}Gt.staticNodes.length>0&&At();let Wt=Math.max(1,Ie-at);if(C&&!s){let $e=so(Ae,{width:ye,height:Wt});$e.metrics.runtimeStartAt=re,de!==void 0&&it($e,"vnodeEvalMs",de);let Pn=performance.now();Cp($e),lp($e.layout,at);let Nr=Xo();Nr.hasClickableElements()&&!Q?(zo(),Q=!0):!Nr.hasClickableElements()&&Q&&(zn(),Q=!1),it($e,"frameCommitMs",performance.now()-Pn),Tt($e,"reservedRegionCount",$e.reservedRegions.length),C.renderFrame($e),de=void 0,te=void 0;return}let{staticNodes:en,interactiveNode:En}=Gt,vn=performance.now();Oe();for(let $e=0;$e<en.length;$e++){let Pn=en[$e],Nr=Aj(Pn,$e);if(!Fe.has(Nr)){let Gr=u_(Pn,ye);Gr.trim()&&(Zr(Gr),Fe.add(Nr))}}let Sn=nR(),Ue=so(En,{width:ye,height:Wt});Ue.metrics.runtimeStartAt=re,de!==void 0&&it(Ue,"vnodeEvalMs",de);let Tn=performance.now()-vn;it(Ue,"staticRenderMs",Tn);let tn=performance.now();Cp(Ue),lp(Ue.layout,at);let $r=Xo();$r.hasClickableElements()&&!Q?(zo(),Q=!0):!$r.hasClickableElements()&&Q&&(zn(),Q=!1),it(Ue,"frameCommitMs",performance.now()-tn),Tt(Ue,"reservedRegionCount",Ue.reservedRegions.length);let tt=Fp(Ue,{fullHeight:T,previousFrame:Sn});if(tt===Ee&&!s){let $e=ve();it(Ue,"outputWriteMs",$e.writeMs),Tt(Ue,"outputByteCount",$e.bytes),xn(Ue,{renderer:"ansi",runtimeStartAt:re}),Ko(Ue.layout),ni(),de=void 0,te=void 0;return}s?ke(tt+`
226
- `):ie(tt);let co=ve();it(Ue,"outputWriteMs",co.writeMs),Tt(Ue,"outputByteCount",co.bytes),xn(Ue,{renderer:"ansi",runtimeStartAt:re}),Ko(Ue.layout),ni(),Ee=tt,de=void 0,te=void 0}function Pt(){return qe(W,er)}function er(){if(we)return;we=!0;let re=ye=>{try{ye()}catch(Ie){console.error("[tuiuiu] Error while cleaning up the render loop:",Ie)}};et&&(clearTimeout(et),et=null),lt&&(clearTimeout(lt),lt=null),Ce?.(),Ce=null,G=!1,re(()=>n.off("drain",me)),wt=null,ct=!1,M.cancel(),Le=[],Dl(null),Ol(null),Q&&(re(()=>zn()),Q=!1),re(()=>n.off("resize",yr)),re(C?()=>C?.cleanup():()=>ie.done()),$&&re(()=>{n.write(Mp())}),G=!1,re(()=>n.off("drain",me)),re(()=>rl(W)),Ae&&re(()=>j_(Ae)),re(()=>D.dispose());for(let ye of H.splice(0))re(ye);re(K),re(()=>oR()),re(()=>qo(W))}try{Ve=qe(W,()=>Lw(()=>{U()},{scheduler:X})),qe(W,()=>{b&&(Rt=Date.now(),(b.pauseWhenUnfocused??!0)&&(Ce=bl(re=>{if(!(we||!b)){if(!re){lt&&(clearTimeout(lt),lt=null),ut=0,Rt=Date.now();return}ut=0,Rt=Date.now(),lt||Be()}})),Be())})}catch(re){try{Ve()}catch(ye){console.error("[tuiuiu] Error while rolling back the render effect:",ye)}throw Pt(),re}return{rerender:re=>qe(W,()=>{I=()=>re,X(U)}),unmount:()=>qe(W,()=>{Pt(),Ve(),s||ke(`
227
- `),oe()}),waitUntilExit:()=>ce,clear:()=>qe(W,()=>{s||(et&&(clearTimeout(et),et=null),wt=null,ct=!1,Xr(),G?X(()=>{kr()}):kr())}),writeLine:je}}function Dj(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`;return Bp({flexDirection:"column",width:t,height:r,overflow:"hidden"},...e.lines.slice(0,n).map((s,i)=>Ei({key:i,wrap:"truncate-end"},s)),$p({flex:1}),Ei({dim:e.noColor!==!0,wrap:"truncate-end"},o))}async function B_(e){let t=!1;function r(){let o=Cl(),s=Up(),[i,a]=Tl(["redskilled \xB7 connecting to host\u2026"]),[l,d]=Tl(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([`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`])}).finally(()=>{t=!1}))};return xi(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),qp(c,e.refreshMs??1e3),jp((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))}),Dj({lines:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Yp(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as Wj}from"node:child_process";import{readFileSync as Hj}from"node:fs";import{dirname as U_,join as Uj}from"node:path";import{createHash as Fj}from"node:crypto";var Ij="project.name";function N_(e){let t=$o(e,Ij)?.trim();return t===void 0||t===""?void 0:t}var Mj=8,G_="project";function W_(e){let t=Nj(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:Lj(e.remoteUrl)??{name:jj(e.checkoutPath,t),source:"basename"},o=$j(t??Qp(e.checkoutPath));return{name:n.name,slug:`${Bj(n.name)}-${o}`,hash:o,source:n.source}}function H_(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 Lj(e){let t=H_(e);return t===void 0?void 0:{name:t,source:"remote"}}function jj(e,t){let r=t===void 0?"":$_(Gj(t));if(r!=="")return r;let n=$_(Qp(e));return n===""?G_:n}function Bj(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?G_:r}function $j(e){return Fj("sha256").update(e).digest("hex").slice(0,Mj)}function Nj(e){let t=Qp(e??"");return t===""?void 0:t}function Qp(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function $_(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function Gj(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var qj=2e3;function q_(e){return Kj(e).name}function Kj(e){let t=Zp(e),r=Xp(e,["rev-parse","--absolute-git-dir"])??Xp(e,["rev-parse","--git-common-dir"]),n=Xp(e,["remote","get-url","origin"]);return W_({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function Zp(e){let t=H0(e,Uj(".red","config.yaml"));if(t==null)return{};let r;try{r=Hj(t,"utf8")}catch{return{}}let n=N_(r),o=U_(U_(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function Xp(e,t){try{let r=Wj("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:qj}).trim();return r===""?void 0:r}catch{return}}function Il(e){let t=Zp(e);return t.configText==null?{label:null}:{configText:t.configText,label:q_(e)}}async function ef(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Va(e),s=Il(t.cwd??process.cwd()),i=za({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
228
- `);let a=t.paths??dr(),l=t.readDashboard??$0,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 k=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return c?k.lines.map(Ca):k.lines}catch(k){let b=k instanceof Error?k.message:String(k);return f&&n(`redskilled dashboard: ${b}
229
- `),[`redskilled unreachable \u2014 ${b}`]}};if(!d){let g=await p({...u,...i.options.maxWidth==null?{}:{maxWidth:i.options.maxWidth}});return r(`${g.join(`
223
+ `).length,Nt()};qe(N,()=>Vp(nn)),fe=new Promise((re,ke)=>{ie=re,xe=ke});let mo=D.dispose;D.dispose=()=>{if(Re){mo();return}At(),ie()};let ue=p>0?Math.ceil(1e3/p):0;qe(N,()=>{Jw({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:ue>0?ue:16.67}),Xp(n.columns||80,n.rows||24)});let Gt=0,ct=!1,et=null,Rt=null,lt=null,ut=0,_t=0,xt=0,Wr=0,De=null,Le=[],Q=!1,C=null;y&&(C=s_({stdout:J,showCursor:g,useDelta:!0})),R&&!s&&we(Zp.clearTerminal);let w=ue>0?ue:16,L=B_(()=>{Le.length!==0&&$t(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let ke of re)ke()}})},w);qe(N,()=>Ll({enqueue(re){Re||(Le.push(re),L.schedule())},flush(){Re||L.flush()},isPending(){return Le.length>0||L.isPending()}}));let B=()=>{let re=performance.now();Z=Date.now(),Vk("component");try{Ce=F(),W_(Ce)}finally{zk(),se=performance.now()-re}},K=()=>qe(N,()=>{B(),_r()});function X(re){Re||(Rt=re,!W&&ye())}function ye(){if(ct||Re||W||!Rt)return;let ke=Date.now()-Gt,Ie=Gt===0||ke>=ue?0:ue-ke,Wt=()=>{let Ct=Rt;if(Rt=null,ct=!1,et=null,!Re)try{Ct?.()}catch(Ht){D.exit(Ht instanceof Error?Ht:new Error(String(Ht)))}};if(ct=!0,Ie===0){queueMicrotask(Wt);return}et=setTimeout(Wt,Ie)}let je=re=>qe(N,()=>{if(Re)return;let ke=Jo(String(re)).replace(/\r\n?/g,`
224
+ `).replace(/\n+$/u,"");Se.push(ke),X(_r)});qe(N,()=>Ml(je));function Be(){if(!h||Re||(h.pauseWhenUnfocused??!0)&&!hr())return;let ke=1e3/Math.max(1,h.updateFps),Ie=Math.max(0,Math.ceil(ke-ut));lt=setTimeout(er,Ie)}function er(){if(!(!h||Re))try{if((h.pauseWhenUnfocused??!0)&&!hr()){lt=null,ut=0,_t=Date.now();return}let ke=1e3/h.updateFps,Ie=h.maxCatchUpUpdates??5,Wt=Date.now();ut+=Wt-_t,_t=Wt;let Ct=0;for(;ut>=ke&&Ct<Ie;)ut-=ke,xt++,Wr+=ke,$t(()=>{h.onUpdate({deltaTimeMs:ke,step:xt,elapsedMs:Wr})}),Ct++;ut>=ke&&(ut%=ke),Be()}catch(re){lt=null,D.exit(re instanceof Error?re:new Error(String(re)))}}let Rr=en(N,()=>{Re||(RR(),Xp(n.columns||80,n.rows||24),Aw(),X(K))});n.on("resize",Rr);let Ve=()=>{};D.onExit(re=>qe(N,()=>{At(),Ve(),re?xe(re):ie()}));function _r(){if(Re||!Ce)return;Gt=Date.now();let re=Z??Date.now(),ke=n.columns||80,Ie=n.rows||24,Wt=jj(Ce),Ct=()=>{C&&(C.cleanup(),C=null,we(Zp.clearTerminal),Fe.clear(),at=0,Nt())};if(Se.length>0){Ct();let $e=Se;Se=[],on($e.join(`
225
+ `))}Wt.staticNodes.length>0&&Ct();let Ht=Math.max(1,Ie-at);if(C&&!s){let $e=fo(Ce,{width:ke,height:Ht});$e.metrics.runtimeStartAt=re,se!==void 0&&it($e,"vnodeEvalMs",se);let Fn=performance.now();Lp($e),gp($e.layout,at);let Ur=ss();Ur.hasClickableElements()&&!Q?(ts(),Q=!0):!Ur.hasClickableElements()&&Q&&(to(),Q=!1),it($e,"frameCommitMs",performance.now()-Fn),Pt($e,"reservedRegionCount",$e.reservedRegions.length),C.renderFrame($e),se=void 0,Z=void 0;return}let{staticNodes:sn,interactiveNode:An}=Wt,Cn=performance.now();Ae();for(let $e=0;$e<sn.length;$e++){let Fn=sn[$e],Ur=Lj(Fn,$e);if(!Fe.has(Ur)){let qr=b_(Fn,ke);qr.trim()&&(on(qr),Fe.add(Ur))}}let Dn=dR(),Ue=fo(An,{width:ke,height:Ht});Ue.metrics.runtimeStartAt=re,se!==void 0&&it(Ue,"vnodeEvalMs",se);let On=performance.now()-Cn;it(Ue,"staticRenderMs",On);let an=performance.now();Lp(Ue),gp(Ue.layout,at);let Hr=ss();Hr.hasClickableElements()&&!Q?(ts(),Q=!0):!Hr.hasClickableElements()&&Q&&(to(),Q=!1),it(Ue,"frameCommitMs",performance.now()-an),Pt(Ue,"reservedRegionCount",Ue.reservedRegions.length);let tt=$p(Ue,{fullHeight:T,previousFrame:Dn});if(tt===ve&&!s){let $e=Ee();it(Ue,"outputWriteMs",$e.writeMs),Pt(Ue,"outputByteCount",$e.bytes),Pn(Ue,{renderer:"ansi",runtimeStartAt:re}),Zo(Ue.layout),li(),se=void 0,Z=void 0;return}s?we(tt+`
226
+ `):de(tt);let bo=Ee();it(Ue,"outputWriteMs",bo.writeMs),Pt(Ue,"outputByteCount",bo.bytes),Pn(Ue,{renderer:"ansi",runtimeStartAt:re}),Zo(Ue.layout),li(),ve=tt,se=void 0,Z=void 0}function At(){return qe(N,tr)}function tr(){if(Re)return;Re=!0;let re=ke=>{try{ke()}catch(Ie){console.error("[tuiuiu] Error while cleaning up the render loop:",Ie)}};et&&(clearTimeout(et),et=null),lt&&(clearTimeout(lt),lt=null),De?.(),De=null,W=!1,re(()=>n.off("drain",pe)),Rt=null,ct=!1,L.cancel(),Le=[],Ll(null),Ml(null),Q&&(re(()=>to()),Q=!1),re(()=>n.off("resize",Rr)),re(C?()=>C?.cleanup():()=>de.done()),$&&re(()=>{n.write(Gp())}),W=!1,re(()=>n.off("drain",pe)),re(()=>il(N)),Ce&&re(()=>H_(Ce)),re(()=>D.dispose());for(let ke of G.splice(0))re(ke);re(U),re(()=>cR()),re(()=>Xo(N))}try{Ve=qe(N,()=>Ww(()=>{K()},{scheduler:X})),qe(N,()=>{h&&(_t=Date.now(),(h.pauseWhenUnfocused??!0)&&(De=Rl(re=>{if(!(Re||!h)){if(!re){lt&&(clearTimeout(lt),lt=null),ut=0,_t=Date.now();return}ut=0,_t=Date.now(),lt||Be()}})),Be())})}catch(re){try{Ve()}catch(ke){console.error("[tuiuiu] Error while rolling back the render effect:",ke)}throw At(),re}return{rerender:re=>qe(N,()=>{F=()=>re,X(K)}),unmount:()=>qe(N,()=>{At(),Ve(),s||we(`
227
+ `),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(et&&(clearTimeout(et),et=null),Rt=null,ct=!1,nn(),W?X(()=>{_r()}):_r())}),writeLine:je}}var $j={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topMid:"\u2566",bottomMid:"\u2569",leftMid:"\u2560",rightMid:"\u2563",midMid:"\u256C"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topMid:"\u2533",bottomMid:"\u253B",leftMid:"\u2523",rightMid:"\u252B",midMid:"\u254B"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",topMid:"+",bottomMid:"+",leftMid:"+",rightMid:"+",midMid:"+"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",topMid:"",bottomMid:"",leftMid:"",rightMid:"",midMid:""}};function wr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function tf(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function Nj(e,t,r,n=1,o){let s=[],i=wr(n,1),a=o===void 0?void 0:wr(o,0);for(let d of e){let c=be(d.header);for(let p of t){let g=p[d.key];d.format&&(g=d.format(g,p));let f=String(g??"");c=Math.max(c,be(f))}let u=tf(d);d.width!==void 0?c=wr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):wr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,wr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,wr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:tf(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((y,h,R)=>y+(tf(e[R])>0?0:h),0),p=l.reduce((y,h)=>y+s[h.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let y=l.reduce((h,R)=>h+R.flex,0);for(let h of l){let R=Math.floor(h.flex/y*f);s[h.index]=s[h.index]+R,h.col.maxWidth!==void 0&&(s[h.index]=Math.min(s[h.index],wr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=wr(r,0),c=e.length*i*2,u=e.length+1,p=s.reduce((g,f)=>g+f,0)+c+u;if(p>d){let g=p-d,f=s.map((h,R)=>{let T=wr(e[R].minWidth,3);return Math.max(0,h-T)}),y=f.reduce((h,R)=>h+R,0);if(y>0)for(let h=0;h<s.length;h++){let R=Math.floor(f[h]/y*g);s[h]=Math.max(wr(e[h].minWidth,3),s[h]-R)}}}return s}function U_(e,t,r){let n=Zr(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=be(n);if(o>=t)return n;let s=t-o;switch(r){case"right":return" ".repeat(s)+n;case"center":let i=Math.floor(s/2),a=s-i;return" ".repeat(i)+n+" ".repeat(a);default:return n+" ".repeat(s)}}function Gj(e,t){return Zr(e,t,{truncationCharacter:"\u2026"})}function Wj(){try{return process.stdout.columns||80}catch{return 80}}function rf(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,y=g?0:wr(d,1),h=$j[n],R=n!=="none",T=p??Wj(),$=Nj(t,r,u,y,T),D=[],M=(N,U,G,F)=>{if(!R)return yr({});let W=[N];for(let q=0;q<$.length;q++)W.push(F.repeat($[q]+y*2)),q<$.length-1&&W.push(U);return W.push(G),yr({flexDirection:"row"},mt({color:o},W.join("")))};if(R&&D.push(M(h.topLeft,h.topMid,h.topRight,h.horizontal)),s){let N=[];R&&N.push(mt({color:o},h.vertical));for(let U=0;U<t.length;U++){let G=t[U],F=" ".repeat(y),W=G.headerAlign??G.align??"left",q=U_(G.header,$[U],W);N.push(mt({color:o},F),mt({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":U+1},q),mt({color:o},F)),R&&N.push(mt({color:o},h.vertical))}D.push(yr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let N=0;N<r.length;N++){let U=r[N],G=a&&N%2===1,F=t.map((oe,ae)=>{let se=U[oe.key];oe.format&&(se=oe.format(se,U));let Z=String(se??"");if(oe.wrap)return Xn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Zr(pe,$[ae],{truncationCharacter:""}):Gj(pe,$[ae])]}),W=Math.max(1,...F.map(oe=>oe.length)),q=[];for(let oe=0;oe<W;oe++){let ae=[];R&&ae.push(mt({color:o},h.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(y),Ae=U_(F[se]?.[oe]??"",$[se],Z.align??"left"),Ee=Z.color??(G?l:void 0);ae.push(mt({color:o},pe),mt({color:Ee,dim:G,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Ae),mt({color:o},pe)),R&&ae.push(mt({color:o},h.vertical))}q.push(yr({flexDirection:"row"},...ae))}D.push(yr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}return R&&D.push(M(h.bottomLeft,h.bottomMid,h.bottomRight,h.horizontal)),yr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...D)}function Bl(e,t){return mt({wrap:"truncate-end"},t?qn(e):e)}function Hj(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(d=>Bl(d,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(d=>({...d})),l=e.table.rows.map(d=>Object.fromEntries(Object.entries(d).map(([c,u])=>[c,r?qn(u):u])));return[...s.map(d=>Bl(d,r)),rf({columns:a,data:l,borderStyle:"round",availableWidth:Math.max(1,t-1),maxWidth:Math.max(1,t-1),compact:!0,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!r,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(d=>Bl(d,r))]}function Uj(e){let t=Math.max(1,Math.floor(e.columns)),r=Math.max(1,Math.floor(e.rows)),n=Math.max(0,r-1),o=`q quit \xB7 r refresh \xB7 v deaths: ${e.showDeathDetails?"details":"summary"} \xB7 live 1s`,s=e.noColor===!0,i=e.frame.dashboard==null?e.frame.lines.map(a=>Bl(a,s)):Hj(e.frame.dashboard,t,s);return yr({flexDirection:"column",width:t,height:r,overflow:"hidden"},yr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function q_(e){let t=!1;function r(){let o=Il(),s=zp(),[i,a]=Dl({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Dl(e.initialShowDeathDetails),c=()=>{t||(t=!0,e.readFrame({columns:Math.max(1,s.columns||80),rows:Math.max(1,(s.rows||24)-1),showDeathDetails:l()}).then(a).catch(u=>{a({lines:[`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`]})}).finally(()=>{t=!1}))};return Pi(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Jp(c,e.refreshMs??1e3),Hp((u,p)=>{let g=u.toLowerCase();if(g==="q"||p.escape){o.exit();return}if(g==="r"){c();return}g==="v"&&(d(f=>!f),setTimeout(c,0))}),Uj({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await ef(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as eB}from"node:child_process";import{readFileSync as tB}from"node:fs";import{dirname as Q_,join as rB}from"node:path";import{createHash as qj}from"node:crypto";var Kj="project.name";function V_(e){let t=Ko(e,Kj)?.trim();return t===void 0||t===""?void 0:t}var Vj=8,z_="project";function J_(e){let t=Xj(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:zj(e.remoteUrl)??{name:Jj(e.checkoutPath,t),source:"basename"},o=Qj(t??nf(e.checkoutPath));return{name:n.name,slug:`${Yj(n.name)}-${o}`,hash:o,source:n.source}}function Y_(e){let t=(e??"").trim();if(t==="")return;let r=t.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,""),n=/^[^/]*?:(?!\d)(.+)$/.exec(r),s=(n?n[1]:r.replace(/^[^/]*/,"")).replace(/\.git$/,"").split("/").map(i=>i.trim()).filter(i=>i!=="");if(s.length!==0)return s.slice(-2).join("/")}function zj(e){let t=Y_(e);return t===void 0?void 0:{name:t,source:"remote"}}function Jj(e,t){let r=t===void 0?"":K_(Zj(t));if(r!=="")return r;let n=K_(nf(e));return n===""?z_:n}function Yj(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?z_:r}function Qj(e){return qj("sha256").update(e).digest("hex").slice(0,Vj)}function Xj(e){let t=nf(e??"");return t===""?void 0:t}function nf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function K_(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function Zj(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var nB=2e3;function X_(e){return oB(e).name}function oB(e){let t=sf(e),r=of(e,["rev-parse","--absolute-git-dir"])??of(e,["rev-parse","--git-common-dir"]),n=of(e,["remote","get-url","origin"]);return J_({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function sf(e){let t=J0(e,rB(".red","config.yaml"));if(t==null)return{};let r;try{r=tB(t,"utf8")}catch{return{}}let n=V_(r),o=Q_(Q_(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function of(e,t){try{let r=eB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:nB}).trim();return r===""?void 0:r}catch{return}}function $l(e){let t=sf(e);return t.configText==null?{label:null}:{configText:t.configText,label:X_(e)}}async function af(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Qa(e),s=$l(t.cwd??process.cwd()),i=Xa({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
228
+ `);let a=t.paths??cr(),l=t.readDashboard??q0,d=t.terminal===void 0?process.stdout.isTTY===!0:t.terminal===!0,c=(t.env??process.env).NO_COLOR!==void 0,u={...i.options.project==null?{}:{project:i.options.project},mode:i.options.mode,showDeathDetails:i.options.verbose},p=async(g,f=!0)=>{try{let y=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:y,lines:c?y.lines.map(qn):y.lines}}catch(y){let h=y instanceof Error?y.message:String(y);return f&&n(`redskilled dashboard: ${h}
229
+ `),{lines:[`redskilled unreachable \u2014 ${h}`]}}};if(!d){let g=await p({...u,...i.options.maxWidth==null?{}:{maxWidth:i.options.maxWidth}});return r(`${g.lines.join(`
230
230
  `)}
231
- `),0}return await(t.runTui??B_)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:k})=>{let b=Math.max(1,Math.min(i.options.maxWidth??g,g)),v=Math.max(1,f);return await p({...u,maxWidth:b,maxHeight:v,maxRows:Math.max(0,v-5),showDeathDetails:k},!1)}}),0}var zj=`Usage: redskilled <command> [options]
231
+ `),0}return await(t.runTui??q_)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:y})=>{let h=Math.max(1,Math.min(i.options.maxWidth??g,g)),R=Math.max(1,f);return await p({...u,maxWidth:h,maxHeight:R,maxRows:Math.max(0,R-8),showDeathDetails:y},!1)}}),0}var iB=`Usage: redskilled <command> [options]
232
232
 
233
233
  Commands:
234
234
  host-state (default) print the host's state as JSON
@@ -242,7 +242,7 @@ Commands:
242
242
 
243
243
  Run \`redskilled <command> --help\` for a command's own usage.
244
244
  \`--version\` (\`-v\`) prints the build stamp; both answer offline.
245
- `,Jj={serve:`Usage: redskilled serve [options]
245
+ `,aB={serve:`Usage: redskilled serve [options]
246
246
 
247
247
  Runs the daemon in this process. Every path is a flag and none is derived
248
248
  (ADR 0130 rule 3); what is absent falls back to the session derivation.
@@ -329,23 +329,23 @@ Reports every session runtime dir it looked at and why it kept or removed it.
329
329
 
330
330
  --dry-run the same report with nothing removed
331
331
  --grace-ms <n> how long a dir must be idle before it is reclaimed
332
- `};function Yj(e){return e==="--help"||e==="-h"||e==="help"}var Qj={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)}},V_="REDSKILLED_HOST_TOKEN";function Pi(){try{let t=Vj("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function z_(e=process.env,t=Pi){let r=(e[V_]??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 Xj(e,t=process.env,r=Pi,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...K_(e,t,r,n),armTransport:()=>K_(e,t,r,n)}}function Zj(e,t=process.env,r=Pi){let n=z_(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:Nc({token:n.token,...o?{origin:o}:{}})}}function K_(e,t=process.env,r=Pi,n){let o=z_(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${V_}, 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:Bb({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function eB(e){if(e[0]==="--version"||e[0]==="-v"){let o=dd("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
333
- `:`${lg(o)}
334
- `),0}if(Yj(e[0]))return process.stdout.write(zj),0;let{command:t,args:r}=pg(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(Jj[t]),0;if(t==="serve"){let{values:o}=nn(r,Qj),s=await G0(Ti()),i=W0({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=Ml(or(Ti()),"state"),l=fa({path:Ml(a,"github","spend.toonl")}),d=Xj(o,process.env,Pi,l),c=Zj(o),u=Dg({stateRoot:a});process.stderr.write(`${Fg(u)}
335
- `);let p=Tg({lanePath:hs(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g=await S0({paths:fB(o),idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??dd("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}});for(let f of["SIGTERM","SIGINT"])process.once(f,()=>void g.stop({reason:"signal",signal:f}).catch(()=>{}));return await g.closed,p.phase("closed"),0}if(t==="stop")return await sB(r);if(t==="statusline")return await aB(r);if(t==="dashboard")return await ef(r);if(t==="github-spend")return await rB(r);if(t==="unit")return await iB(r);if(t==="provision")return await dB(r);if(t==="reclaim")return await uB(r);let n=await L0(dr());return process.stdout.write(`${JSON.stringify(n,null,2)}
336
- `),0}var tB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function rB(e,t={}){let{values:r}=nn(e,tB,{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:nB(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??fa({path:Ml(or(t.homeDir??Ti()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${ot({version:c.version,origin:c.origin,window:{from:c.window.from,to:c.window.to},pool:c.pool,total_count:c.total_count,total_cost:c.total_cost,operations:c.operations.map(u=>({operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:u.count,cost:u.cost})),unreadable_records:c.unreadable_records})}
337
- `),0}function nB(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 oB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function sB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=nn(e,oB),o=await M0(t.paths??dr(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${ot({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,survives:s.survives})),detail:o.detail})}
338
- `),o.running&&!o.stopped?1:0}async function iB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??dr(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(Zy(t.unitIO??{}),null,2)}
339
- `),0;if(o==="install"){let s=await Qy(Ky(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
340
- `),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await Xy(t.unitIO??{}),null,2)}
341
- `),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function aB(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Va(e),s=Il(t.cwd??process.cwd()),i=za({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let l of[...i.warnings,...o.warnings])n(`redskilled statusline: ignoring ${l.key}=${l.value} \u2014 ${l.reason}
342
- `);let a;try{a=await B0(t.paths??dr(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
343
- `),a=cu({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
332
+ `};function lB(e){return e==="--help"||e==="-h"||e==="help"}var dB={socket:{kind:"value",coerce:e=>e},lease:{kind:"value",coerce:e=>e},events:{kind:"value",coerce:e=>e},"session-key-hash":{kind:"value",coerce:e=>e},"machine-id-hash":{kind:"value",coerce:e=>e},"machine-claim":{kind:"value",coerce:e=>e},"worker-ceiling":{kind:"value",coerce:e=>e},"memory-ceiling":{kind:"value",coerce:e=>e},"idle-ms":{kind:"value",coerce:e=>Number(e)},"daemon-version":{kind:"value",coerce:e=>e},"queue-endpoint":{kind:"value",coerce:e=>e},"queue-ms":{kind:"value",coerce:e=>Number(e)},"demand-ms":{kind:"value",coerce:e=>Number(e)}},ex="REDSKILLED_HOST_TOKEN";function Oi(){try{let t=sB("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function tx(e=process.env,t=Oi){let r=(e[ex]??e.GITHUB_TOKEN??e.GH_TOKEN??"").trim();if(r!=="")return{token:r,source:"env"};let n=(t()??"").trim();return n!==""?{token:n,source:"tracker-cli"}:null}function cB(e,t=process.env,r=Oi,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...Z_(e,t,r,n),armTransport:()=>Z_(e,t,r,n)}}function uB(e,t=process.env,r=Oi){let n=tx(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:qc({token:n.token,...o?{origin:o}:{}})}}function Z_(e,t=process.env,r=Oi,n){let o=tx(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${ex}, GITHUB_TOKEN and GH_TOKEN are all unset in the daemon's environment and \`gh auth token\` returned nothing \u2014 so no queue depth is asked for, and no depth is invented either`};let s=e["queue-endpoint"]??t.GITHUB_GRAPHQL_URL;return{transport:Ub({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function pB(e){if(e[0]==="--version"||e[0]==="-v"){let o=gd("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
333
+ `:`${gg(o)}
334
+ `),0}if(lB(e[0]))return process.stdout.write(iB),0;let{command:t,args:r}=yg(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(aB[t]),0;if(t==="serve"){let{values:o}=dn(r,dB),s=await V0(Di()),i=z0({flags:{...o["worker-ceiling"]==null?{}:{workerCeiling:o["worker-ceiling"]},...o["memory-ceiling"]==null?{}:{memoryCeiling:o["memory-ceiling"]},...o["idle-ms"]==null?{}:{idleMs:o["idle-ms"]}},config:s}),a=Nl(sr(Di()),"state"),l=ba({path:Nl(a,"github","spend.toonl")}),d=cB(o,process.env,Oi,l),c=uB(o),u=Bg({stateRoot:a});process.stderr.write(`${$g(u)}
335
+ `);let p=Fg({lanePath:_s(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g=await O0({paths:vB(o),idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??gd("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}});for(let f of["SIGTERM","SIGINT"])process.once(f,()=>void g.stop({reason:"signal",signal:f}).catch(()=>{}));return await g.closed,p.phase("closed"),0}if(t==="stop")return await bB(r);if(t==="statusline")return await kB(r);if(t==="dashboard")return await af(r);if(t==="github-spend")return await gB(r);if(t==="unit")return await yB(r);if(t==="provision")return await RB(r);if(t==="reclaim")return await xB(r);let n=await W0(cr());return process.stdout.write(`${JSON.stringify(n,null,2)}
336
+ `),0}var fB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function gB(e,t={}){let{values:r}=dn(e,fB,{unknownFlags:"error"}),n=r.hours??1;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled github-spend --hours must be a positive number; received ${String(n)}`);let o=r.pool??"graphql",s=o==="all"?void 0:hB(o),i=(t.now??(()=>new Date().toISOString()))(),a=Date.parse(i);if(!Number.isFinite(a))throw new Error(`redskilled github-spend clock returned an invalid instant: ${i}`);let l=new Date(a-n*60*60*1e3).toISOString(),c=await(t.ledger??ba({path:Nl(sr(t.homeDir??Di()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${ot({version:c.version,origin:c.origin,window:{from:c.window.from,to:c.window.to},pool:c.pool,total_count:c.total_count,total_cost:c.total_cost,operations:c.operations.map(u=>({operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:u.count,cost:u.cost})),unreadable_records:c.unreadable_records})}
337
+ `),0}function hB(e){if(e==="graphql"||e==="rest"||e==="search")return e;throw new Error(`redskilled github-spend --pool must be graphql, rest, search or all; received ${JSON.stringify(e)}`)}var mB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function bB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,mB),o=await G0(t.paths??cr(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${ot({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,survives:s.survives})),detail:o.detail})}
338
+ `),o.running&&!o.stopped?1:0}async function yB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??cr(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(s0(t.unitIO??{}),null,2)}
339
+ `),0;if(o==="install"){let s=await n0(Xy(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
340
+ `),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await o0(t.unitIO??{}),null,2)}
341
+ `),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function kB(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Qa(e),s=$l(t.cwd??process.cwd()),i=Xa({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let l of[...i.warnings,...o.warnings])n(`redskilled statusline: ignoring ${l.key}=${l.value} \u2014 ${l.reason}
342
+ `);let a;try{a=await U0(t.paths??cr(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
343
+ `),a=mu({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
344
344
  `)}
345
- `),0}var lB={"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 dB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=nn(e,lB),o=t.paths??dr(),s=t.homeDir??Ti(),i=await Bu({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await rk(s),l;if(!n.check&&!n["no-start"])try{await Fu(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await sk({paths:o,homeNeed:i,...t.homeDir==null?{}:{homeDir:t.homeDir},...t.configHome==null?{}:{configHome:t.configHome},...t.client?.serverCommand==null?{}:{entryOverride:{serverCommand:t.client.serverCommand,serverArgs:t.client.serverArgs}}}),c=n["install-unit"]&&vr(d.entry)?await lk({configHome:t.configHome??pB(),unit:ak({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=ok(d);return r(`${ot({verdict:u.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...c==null?{}:{unit:{path:c.path,status:c.status}},checks:u.rows.map(p=>({check:p.check,verdict:p.verdict,evidence:p.evidence})),fixes:u.findings.map(p=>({check:p.check,fix:p.fix}))})}
346
- `),u.verdict==="ok"?0:1}var cB={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function uB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=nn(e,cB),o=await uk({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${ot({roots:[...o.roots],scanned:o.scanned,reclaimed:o.reclaimed,dry_run:o.dryRun,entries:o.entries.map(s=>({dir:s.dir,verdict:s.verdict,reason:s.reason,removed:[...s.removed]}))})}
347
- `),o.entries.some(s=>s.verdict==="failed")?1:0}function pB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:Ml(Ti(),".config")}function fB(e){let t=dr();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 gB=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(gB){let e=process.argv.slice(2);eB(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
348
- `),process.exitCode=1})}export{V_ as REDSKILLED_HOST_TOKEN_ENV,zj as REDSKILLED_USAGE,K_ as armRedskilledQueueTransport,z_ as resolveRedskilledHostToken,Zj as resolveServeGithubBalance,Xj as resolveServeQueueDiscovery,ef as runDashboard,rB as runGithubSpend,dB as runProvision,uB as runReclaim,eB as runRedskilledCli,aB as runStatusline,sB as runStop,iB as runUnit};
345
+ `),0}var wB={"no-start":{kind:"boolean"},"install-unit":{kind:"boolean"},check:{kind:"boolean"},project:{kind:"value",coerce:e=>e},workspace:{kind:"value",coerce:e=>e}};async function RB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=dn(e,wB),o=t.paths??cr(),s=t.homeDir??Di(),i=await Uu({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await lk(s),l;if(!n.check&&!n["no-start"])try{await $u(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await uk({paths:o,homeNeed:i,...t.homeDir==null?{}:{homeDir:t.homeDir},...t.configHome==null?{}:{configHome:t.configHome},...t.client?.serverCommand==null?{}:{entryOverride:{serverCommand:t.client.serverCommand,serverArgs:t.client.serverArgs}}}),c=n["install-unit"]&&Pr(d.entry)?await gk({configHome:t.configHome??EB(),unit:fk({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=ck(d);return r(`${ot({verdict:u.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...c==null?{}:{unit:{path:c.path,status:c.status}},checks:u.rows.map(p=>({check:p.check,verdict:p.verdict,evidence:p.evidence})),fixes:u.findings.map(p=>({check:p.check,fix:p.fix}))})}
346
+ `),u.verdict==="ok"?0:1}var _B={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function xB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,_B),o=await bk({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${ot({roots:[...o.roots],scanned:o.scanned,reclaimed:o.reclaimed,dry_run:o.dryRun,entries:o.entries.map(s=>({dir:s.dir,verdict:s.verdict,reason:s.reason,removed:[...s.removed]}))})}
347
+ `),o.entries.some(s=>s.verdict==="failed")?1:0}function EB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:Nl(Di(),".config")}function vB(e){let t=cr();return{...t,socketPath:e.socket??t.socketPath,leasePath:e.lease??t.leasePath,eventLanePath:e.events??t.eventLanePath,sessionKeyHash:e["session-key-hash"]??t.sessionKeyHash,machineIdHash:e["machine-id-hash"]??t.machineIdHash,machineClaimPath:e["machine-claim"]??t.machineClaimPath}}var SB=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(SB){let e=process.argv.slice(2);pB(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
348
+ `),process.exitCode=1})}export{ex as REDSKILLED_HOST_TOKEN_ENV,iB as REDSKILLED_USAGE,Z_ as armRedskilledQueueTransport,tx as resolveRedskilledHostToken,uB as resolveServeGithubBalance,cB as resolveServeQueueDiscovery,af as runDashboard,gB as runGithubSpend,RB as runProvision,xB as runReclaim,pB as runRedskilledCli,kB as runStatusline,bB as runStop,yB as runUnit};
349
349
  /*! Bundled license information:
350
350
 
351
351
  content-type/dist/index.js: