@reddb-io/red-skills 3.12.6 → 3.12.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.bundle.min.mjs +1 -1
- package/dist/castle-mcp.bundle.min.mjs +340 -340
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +622 -620
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled.bundle.min.mjs +118 -118
- package/dist/rsp.bundle.min.mjs +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
3
|
+
var Wx=Object.create;var zl=Object.defineProperty;var Hx=Object.getOwnPropertyDescriptor;var Ux=Object.getOwnPropertyNames;var qx=Object.getPrototypeOf,Kx=Object.prototype.hasOwnProperty;var Vx=(e,t)=>()=>(e&&(t=e(e=0)),t);var Lf=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),zx=(e,t)=>{for(var r in t)zl(e,r,{get:t[r],enumerable:!0})},Jx=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ux(t))!Kx.call(e,o)&&o!==r&&zl(e,o,{get:()=>t[o],enumerable:!(n=Hx(t,o))||n.enumerable});return e};var Jl=(e,t,r)=>(r=e!=null?Wx(qx(e)):{},Jx(t||!e||!e.__esModule?zl(r,"default",{value:e,enumerable:!0}):r,e));var ch={};zx(ch,{REDSKILLED_BIN_ENV:()=>Nd,REDSKILLED_BUNDLE_ASSET:()=>Pr,REDSKILLED_ENTRY_UNRESOLVED:()=>Es,RedskilledDaemonEntryError:()=>vs,isRedskilledEntryPath:()=>Wd,isResolvedRedskilledEntry:()=>Ar,redskilledBundleCacheRoot:()=>aa,redskilledServeArgv:()=>cn,requireRedskilledEntry:()=>la,resolveRedskilledEntry:()=>un});import{existsSync as BS,readdirSync as $S}from"node:fs";import{homedir as NS}from"node:os";import{basename as $d,dirname as Bd,join as Vt,resolve as ia}from"node:path";function Ar(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 dh(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??BS,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[Nd];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Wd(i))return a(ia(i),"caller-entry");let d=[];for(let[c,u]of US(i,t.rootDir,r,t.listDir??VS))if(d.push(c),n(c))return a(c,u);return{diagnostic:Es,searched:d,...i?{callerEntry:ia(i)}:{}}}function la(e={},t={}){let r=un(e,t);if(Ar(r))return r;throw new vs(r)}function Wd(e){let t=$d(e);return t===Pr||Gd.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:HS(ia(e))}function HS(e){let t=Bd(e);for(let r=0;r<4;r++){if($d(t)==="redskilled")return!0;let n=Bd(t);if(n===t)return!1;t=n}return!1}function*US(e,t,r,n){if(e){let s=Bd(ia(e));yield[Vt(s,Pr),"caller-sibling-bundle"];let i=GS.exec($d(e));i&&(yield[Vt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Vt(s,"..","dist",Pr),"caller-sibling-bundle"]}for(let s of WS){let i=r[s];i&&(yield[Vt(i,"dist",Pr),"plugin-root-bundle"],yield[Vt(i,"..","..","dist",Pr),"plugin-root-bundle"])}t&&(yield[Vt(t,"dist",Pr),"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=dh(r);yield[Vt(o,Pr),"bundle-cache"];for(let s of qS(o,n))yield[Vt(o,s),"bundle-cache"]}function dh(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vt(e.HOME||NS(),".cache");return Vt(t,"red-skills","bundles")}function qS(e,t){return t(e).filter(r=>Gd.test(r)).sort((r,n)=>KS(lh(n),lh(r)))}function lh(e){return Gd.exec(e)?.[1]??""}function KS(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 $S(e)}catch{return[]}}var Pr,Es,Nd,vs,GS,Gd,WS,zr=Vx(()=>{"use strict";Pr="redskilled.bundle.min.mjs",Es="redskilled-daemon-entry-unresolved",Nd="REDSKILLED_BIN";vs=class extends Error{code=Es;searched;callerEntry;constructor(t){super(`${Es}: no published ${Pr} 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)}};DS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,$d=/^redskilled-(.+)\.bundle\.min\.mjs$/,OS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var hc=Of((fc,gc)=>{(function(e,t){typeof fc=="object"&&typeof gc<"u"?gc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(fc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(Q){return Q&&Q.default||Q}var r=function(Q,C,w={}){var I,L,B;for(I in C)B=C[I],w[I]=(L=Q[I])!=null?L:B;return w},n=function(Q,C,w={}){var I,L;for(I in Q)L=Q[I],C[I]!==void 0&&(w[I]=L);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,I;for(C=this._first,I=[];C!=null;)I.push((w=C,C=C.next,w.value));return I}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,I,L,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(I=w.prev)!=null?I.value:void 0,next:(L=w.next)!=null?L.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,I)=>this._addListener(w,"many",I),this.instance.once=(w,I)=>this._addListener(w,"once",I),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,I){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:I,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var I,L;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),L=this._events[C].map(async B=>{var K,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(ye){return K=ye,this.trigger("error",K),null}}}),(await Promise.all(L)).find(function(B){return B!=null}))}catch(B){return I=B,this.trigger("error",I),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var I,L,B;for(B=[],w=I=1,L=C;1<=L?I<=L:I>=L;w=1<=L?++I:--I)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,I,L;for(w=0,I=C.length;w<I;w++)if(L=C[w],L.length>0)return L;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,h,R,T,$;T=10,h=5,$=o,y=f,R=class{constructor(C,w,I,L,B,K,X,ye){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=ye,this.options=$.load(I,L),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===L.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?h:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new y(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new y(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,I,L){var B,K,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),K={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",K);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(ye){return B=ye,this._onFailure(B,K,w,I,L)}}doExpire(C,w,I){var L,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,B,C,w,I)}async _onFailure(C,w,I,L,B){var K,X;if(I())return K=await this.Events.trigger("failed",C,w),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,L(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=R,M,N,U;U=o,M=f,N=class{constructor(C,w,I){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),U.load(I,I,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,I,L,B,K;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,I=L!=null?Math.min(w,L-K):w,I>0))return this.storeOptions.reservoir+=I,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,I){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),U.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,I){var L,B;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-L,0),this._nextRequest=L+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var I,L,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return L=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,L),I=this.strategyIsBlock()&&(B||this.isBlocked(L)),I&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:I,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,F,W;F=f,W=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,I;if(w=this._jobs[C],I=w+1,w!=null&&I<this.status.length)return this.counts[w]--,this.counts[I]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,I,L,B,K;if(C!=null){if(I=this.status.indexOf(C),I<0)throw new F(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(w in L)K=L[w],K===I&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,I)=>(C[this.status[I]]=w,C),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,I,L,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:L}=this._queue.shift(),w=await async function(){try{return K=await X(...C),function(){return B(K)}}catch(ye){return I=ye,function(){return L(I)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var I,L,B;return B=L=null,I=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:w,resolve:B,reject:L}),this._tryToRun(),I}};var se=ae,Z="2.19.5",pe={version:Z},Ae=Object.freeze({version:Z,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),we=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,_e,Ce,ve,Re,Se;Se=o,de=l,ve=Ee,Ce=we,Re=J,_e=function(){class Q{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=De,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ce(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var I;return(I=this.instances[w])!=null?I:(()=>{var L;return L=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",L,w),L})()}async deleteKey(w=""){var I,L;return L=this.instances[w],this.connection&&(I=await this.connection.__runCommand__(["del",...Re.allKeys(`${this.id}-${w}`)])),L!=null&&(delete this.instances[w],await L.disconnect()),L!=null||I>0}limiters(){var w,I,L,B;I=this.instances,L=[];for(w in I)B=I[w],L.push({key:w,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,I,L,B,K,X,ye,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,I=9;w!==0;)for([je,L]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,ye=L.length;B<ye;B++)K=L[B],X.push(K.slice(Be,-I));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var I,L,B,K,X,ye;X=Date.now(),B=this.instances,K=[];for(L in B){ye=B[L];try{await ye._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){I=je,K.push(ye.Events.trigger("error",I))}}return K},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var I;if(!this.sharedConnection)return(I=this.connection)!=null?I.disconnect(w):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var fe=_e,ie,xe,Fe;Fe=o,xe=l,ie=function(){class Q{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new xe(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,I)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var I;return this._arr.push(w),I=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),I}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var at=ie,Nt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),nn=t(Ae),on,go,ue,Gt,ct,et,Rt,lt,ut,_t,xt,Wr=[].splice;et=10,go=5,xt=o,Rt=p,Gt=D,ct=G,lt=Nt,ue=l,ut=q,_t=se,on=function(){class Q{constructor(w={},...I){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,I),xt.load(w,this.instanceDefaults,this),this._queues=new Rt(et),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ue(this),this._submitLock=new _t("submit",this.Promise),this._registerLock=new _t("register",this.Promise),B=xt.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=xt.load(w,this.redisStoreDefaults,{}),new lt(this,B,L);if(this.datastore==="local")return L=xt.load(w,this.localStoreDefaults,{}),new ct(this,B,L);throw new Q.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.ref=="function"?K.ref():void 0}),this._queues.on("zero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.unref=="function"?K.unref():void 0})}_validateOptions(w,I){if(!(w!=null&&typeof w=="object"&&I.length===0))throw new Q.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,I,L,B){var K,X;try{if({running:X}=await this._store.__free__(w,L.weight),this.Events.trigger("debug",`Freed ${L.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(ye){return K=ye,this.Events.trigger("error",K)}}_run(w,I,L){var B,K,X;return I.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,I),K=this._free.bind(this,w,I),this._scheduled[w]={timeout:setTimeout(()=>I.doExecute(this._limiter,B,X,K),L),expiration:I.options.expiration!=null?setTimeout(function(){return I.doExpire(B,X,K)},L+I.options.expiration):void 0,job:I}}_drainOne(w){return this._registerLock.schedule(()=>{var I,L,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:I}=B=X.first(),w!=null&&K.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:I,options:K}),L=this._randomIndex(),this._store.__register__(L,K.weight,K.expiration).then(({success:ye,wait:je,reservoir:Be})=>{var er;return this.Events.trigger("debug",`Drained ${K.id}`,{success:ye,args:I,options:K}),ye?(X.shift(),er=this.empty(),er&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",er),this._run(L,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(w,I=0){return this._drainOne(w).then(L=>{var B;return L!=null?(B=w!=null?w-L:w,this._drainAll(B,I+L)):this.Promise.resolve(I)}).catch(L=>this.Events.trigger("error",L))}_dropAllQueued(w){return this._queues.shiftAll(function(I){return I.doDrop({message:w})})}stop(w={}){var I,L;return w=xt.load(w,this.stopDefaults),L=B=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,ye)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},I=w.dropWaitingJobs?(this._run=function(B,K){return K.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,K,X;K=this._scheduled;for(B in K)X=K[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),L(0)}))):this.schedule({priority:et-1,weight:0},()=>L(1)),this._receive=function(B){return B._reject(new Q.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new Q.prototype.BottleneckError("stop() has already been called")),I}async _addToQueue(w){var I,L,B,K,X,ye,je;({args:I,options:K}=w);try{({reachedHWM:X,blocked:L,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:I,options:K,error:B}),w.doDrop({error:B}),!1}return L?(w.doDrop(),!0):X&&(ye=je===Q.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===Q.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===Q.prototype.strategy.OVERFLOW?w:void 0,ye?.doDrop(),ye==null||je===Q.prototype.strategy.OVERFLOW)?(ye==null&&w.doDrop(),X):(w.doQueue(X,L),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new Q.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var I,L,B,K,X,ye,je;return typeof w[0]=="function"?(X=w,[L,...w]=X,[I]=Wr.call(w,-1),K=xt.load({},this.jobDefaults)):(ye=w,[K,L,...w]=ye,[I]=Wr.call(w,-1),K=xt.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(er,Rr){return L(...Be,function(...Ve){return(Ve[0]!=null?Rr:er)(Ve)})}),B=new Gt(je,w,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof I=="function"?I(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof I=="function"?I(...Be):void 0:typeof I=="function"?I(Be):void 0}),this._receive(B)}schedule(...w){var I,L,B;return typeof w[0]=="function"?([B,...w]=w,L={}):[L,B,...w]=w,I=new Gt(B,w,L,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(I),I.promise}wrap(w){var I,L;return I=this.schedule.bind(this),L=function(...B){return I(w.bind(this),...B)},L.withOptions=function(B,...K){return I(B,w,...K)},L}async updateSettings(w={}){return await this._store.__updateSettings__(xt.overwrite(w,this.storeDefaults)),xt.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return Q.default=Q,Q.Events=ue,Q.version=Q.prototype.version=nn.version,Q.strategy=Q.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},Q.BottleneckError=Q.prototype.BottleneckError=f,Q.Group=Q.prototype.Group=fe,Q.RedisConnection=Q.prototype.RedisConnection=Ee,Q.IORedisConnection=Q.prototype.IORedisConnection=we,Q.Batcher=Q.prototype.Batcher=at,Q.prototype.jobDefaults={priority:go,weight:1,expiration:null,id:"<no-id>"},Q.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Q.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},Q.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},Q.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},Q.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},Q.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},Q}.call(e);var De=on,Le=De;return Le})});var Zm=Of(ka=>{"use strict";Object.defineProperty(ka,"__esModule",{value:!0});ka.format=nA;ka.parse=oA;var eA=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,zm=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,tA=/[\\"]/g,rA=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Jm=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function nA(e){let{type:t,parameters:r}=e;if(!t||!rA.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!zm.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${lA(r[o])}`}return n}function oA(e,t){let r=e.length,n=Rc(e,0,r),o=n;n=wc(e,n,r);let s=_c(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new Jm:aA(e,n,r);return{type:i,parameters:a}}var Ym=32,Qm=9,Xm=59,sA=61,Vm=34,iA=92;function aA(e,t,r){let n=new Jm;e:for(;t<r;){t=Rc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Xm)continue e;if(s===sA){let i=_c(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Rc(e,t+1,r),t<r&&e.charCodeAt(t)===Vm){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===Vm){t=wc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===iA&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=wc(e,t,r),n[a]===void 0){let d=_c(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function wc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Xm;)t++;return t}function Rc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Ym&&n!==Qm)break;t++}return t}function _c(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Ym&&n!==Qm)break;r--}return r}function lA(e){if(zm.test(e))return e;if(eA.test(e))return`"${e.replace(tA,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as sB}from"node:child_process";import{homedir as Ci}from"node:os";import{join as Nl}from"node:path";var ko=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},In=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function V(e,t){return new ko(e,t)}function Te(e,t){return new In(e,t)}function wo(e){return e instanceof In?e:e instanceof ko?new In(e.line,e.reason):new In(0,String(e&&e.message?e.message:e))}var Ff=["type","kind","event"],Mn="|",If=new Set(["order","discriminator","rows","common"]);var ze=",";function Ui(e){let t=e.split(`
|
|
7
|
-
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function
|
|
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
|
|
9
|
-
`),e.push(" order: ",
|
|
10
|
-
`),e.push(" discriminator: ",
|
|
6
|
+
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};GS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Gd=/^redskilled-(.+)\.bundle\.min\.mjs$/,WS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var kc=Lf((bc,yc)=>{(function(e,t){typeof bc=="object"&&typeof yc<"u"?yc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(bc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(Q){return Q&&Q.default||Q}var r=function(Q,C,w={}){var I,L,B;for(I in C)B=C[I],w[I]=(L=Q[I])!=null?L:B;return w},n=function(Q,C,w={}){var I,L;for(I in Q)L=Q[I],C[I]!==void 0&&(w[I]=L);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,I;for(C=this._first,I=[];C!=null;)I.push((w=C,C=C.next,w.value));return I}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,I,L,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(I=w.prev)!=null?I.value:void 0,next:(L=w.next)!=null?L.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,I)=>this._addListener(w,"many",I),this.instance.once=(w,I)=>this._addListener(w,"once",I),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,I){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:I,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var I,L;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),L=this._events[C].map(async B=>{var K,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(ye){return K=ye,this.trigger("error",K),null}}}),(await Promise.all(L)).find(function(B){return B!=null}))}catch(B){return I=B,this.trigger("error",I),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var I,L,B;for(B=[],w=I=1,L=C;1<=L?I<=L:I>=L;w=1<=L?++I:--I)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,I,L;for(w=0,I=C.length;w<I;w++)if(L=C[w],L.length>0)return L;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,h,R,T,$;T=10,h=5,$=o,y=f,R=class{constructor(C,w,I,L,B,K,X,ye){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=ye,this.options=$.load(I,L),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===L.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?h:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new y(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new y(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,I,L){var B,K,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),K={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",K);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(ye){return B=ye,this._onFailure(B,K,w,I,L)}}doExpire(C,w,I){var L,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,B,C,w,I)}async _onFailure(C,w,I,L,B){var K,X;if(I())return K=await this.Events.trigger("failed",C,w),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,L(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=R,M,N,U;U=o,M=f,N=class{constructor(C,w,I){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),U.load(I,I,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,I,L,B,K;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,I=L!=null?Math.min(w,L-K):w,I>0))return this.storeOptions.reservoir+=I,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,I){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),U.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,I){var L,B;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-L,0),this._nextRequest=L+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var I,L,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return L=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,L),I=this.strategyIsBlock()&&(B||this.isBlocked(L)),I&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:I,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,F,W;F=f,W=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,I;if(w=this._jobs[C],I=w+1,w!=null&&I<this.status.length)return this.counts[w]--,this.counts[I]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,I,L,B,K;if(C!=null){if(I=this.status.indexOf(C),I<0)throw new F(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(w in L)K=L[w],K===I&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,I)=>(C[this.status[I]]=w,C),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,I,L,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:L}=this._queue.shift(),w=await async function(){try{return K=await X(...C),function(){return B(K)}}catch(ye){return I=ye,function(){return L(I)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var I,L,B;return B=L=null,I=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:w,resolve:B,reject:L}),this._tryToRun(),I}};var se=ae,Z="2.19.5",pe={version:Z},Ae=Object.freeze({version:Z,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),we=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,_e,Ce,ve,Re,Se;Se=o,de=l,ve=Ee,Ce=we,Re=J,_e=function(){class Q{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=De,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Ce(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var I;return(I=this.instances[w])!=null?I:(()=>{var L;return L=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",L,w),L})()}async deleteKey(w=""){var I,L;return L=this.instances[w],this.connection&&(I=await this.connection.__runCommand__(["del",...Re.allKeys(`${this.id}-${w}`)])),L!=null&&(delete this.instances[w],await L.disconnect()),L!=null||I>0}limiters(){var w,I,L,B;I=this.instances,L=[];for(w in I)B=I[w],L.push({key:w,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,I,L,B,K,X,ye,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,I=9;w!==0;)for([je,L]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,ye=L.length;B<ye;B++)K=L[B],X.push(K.slice(Be,-I));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var I,L,B,K,X,ye;X=Date.now(),B=this.instances,K=[];for(L in B){ye=B[L];try{await ye._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){I=je,K.push(ye.Events.trigger("error",I))}}return K},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var I;if(!this.sharedConnection)return(I=this.connection)!=null?I.disconnect(w):void 0}}return Q.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},Q}.call(e);var fe=_e,ie,xe,Fe;Fe=o,xe=l,ie=function(){class Q{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new xe(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,I)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var I;return this._arr.push(w),I=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),I}}return Q.prototype.defaults={maxTime:null,maxSize:null,Promise},Q}.call(e);var at=ie,Nt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),nn=t(Ae),on,go,ue,Gt,ct,et,_t,lt,ut,xt,Et,Wr=[].splice;et=10,go=5,Et=o,_t=p,Gt=D,ct=G,lt=Nt,ue=l,ut=q,xt=se,on=function(){class Q{constructor(w={},...I){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,I),Et.load(w,this.instanceDefaults,this),this._queues=new _t(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 xt("submit",this.Promise),this._registerLock=new xt("register",this.Promise),B=Et.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=Et.load(w,this.redisStoreDefaults,{}),new lt(this,B,L);if(this.datastore==="local")return L=Et.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 tr;return this.Events.trigger("debug",`Drained ${K.id}`,{success:ye,args:I,options:K}),ye?(X.shift(),tr=this.empty(),tr&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",tr),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=Et.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=Et.load({},this.jobDefaults)):(ye=w,[K,L,...w]=ye,[I]=Wr.call(w,-1),K=Et.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(tr,_r){return L(...Be,function(...Ve){return(Ve[0]!=null?_r:tr)(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__(Et.overwrite(w,this.storeDefaults)),Et.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return Q.default=Q,Q.Events=ue,Q.version=Q.prototype.version=nn.version,Q.strategy=Q.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},Q.BottleneckError=Q.prototype.BottleneckError=f,Q.Group=Q.prototype.Group=fe,Q.RedisConnection=Q.prototype.RedisConnection=Ee,Q.IORedisConnection=Q.prototype.IORedisConnection=we,Q.Batcher=Q.prototype.Batcher=at,Q.prototype.jobDefaults={priority:go,weight:1,expiration:null,id:"<no-id>"},Q.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:Q.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},Q.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},Q.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},Q.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},Q.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},Q}.call(e);var De=on,Le=De;return Le})});var ib=Lf(wa=>{"use strict";Object.defineProperty(wa,"__esModule",{value:!0});wa.format=mA;wa.parse=bA;var fA=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,tb=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,gA=/[\\"]/g,hA=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,rb=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function mA(e){let{type:t,parameters:r}=e;if(!t||!hA.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!tb.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${RA(r[o])}`}return n}function bA(e,t){let r=e.length,n=vc(e,0,r),o=n;n=Ec(e,n,r);let s=Sc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new rb:wA(e,n,r);return{type:i,parameters:a}}var nb=32,ob=9,sb=59,yA=61,eb=34,kA=92;function wA(e,t,r){let n=new rb;e:for(;t<r;){t=vc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===sb)continue e;if(s===yA){let i=Sc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=vc(e,t+1,r),t<r&&e.charCodeAt(t)===eb){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===eb){t=Ec(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===kA&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Ec(e,t,r),n[a]===void 0){let d=Sc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Ec(e,t,r){for(;t<r&&e.charCodeAt(t)!==sb;)t++;return t}function vc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==nb&&n!==ob)break;t++}return t}function Sc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==nb&&n!==ob)break;r--}return r}function RA(e){if(tb.test(e))return e;if(fA.test(e))return`"${e.replace(gA,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as yB}from"node:child_process";import{homedir as Ci}from"node:os";import{join as Gl}from"node:path";var ko=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},In=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function V(e,t){return new ko(e,t)}function Te(e,t){return new In(e,t)}function wo(e){return e instanceof In?e:e instanceof ko?new In(e.line,e.reason):new In(0,String(e&&e.message?e.message:e))}var jf=["type","kind","event"],Mn="|",Bf=new Set(["order","discriminator","rows","common"]);var ze=",";function Ui(e){let t=e.split(`
|
|
7
|
+
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function Er(e){return V(e,"invalid quoted string")}function qt(e,t){if(e==="")return"";if(e.startsWith('"'))return Gf(e,t);if(e.includes('"'))throw Er(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:Yx(e)?Number(e):e}function nr(e,t){let r=e.trim();if(r.startsWith('"'))return[Gf(r,t),!0];if(r.includes('"')||/\s/.test(r))throw V(t,"expected non-empty field name");return[r,!1]}var $f=/["\\\u0000-\u0008\u000a-\u001f]/g;function Gf(e,t){if(e.charCodeAt(0)!==34)throw Er(t);let r="",n=1;for(;n<e.length;){$f.lastIndex=n;let o=$f.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw Er(t)}if(o[0]!=="\\")throw Er(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 Er(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Er(t);r+=String.fromCharCode(a),n+=4;break}default:throw Er(t)}}throw Er(t)}function Wf(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 Er(r);t=o+2;continue}if(n===-1)throw Er(r);return n+1}}function or(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=Wf(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function St(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=Wf(e,o+1,r)}return-1}function Yx(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Qx(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Xx(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 vr(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Tt(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Xx(e);if(typeof e=="string")return eE(e,t);throw V(0,"not a primitive")}function Zx(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return Zx(e)?e:qi(e)}function eE(e,t){return Yl(e,t)?qi(e):e}function Yl(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||Qx(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var Nf=/["\\\u0000-\u001f]/g;function qi(e){let t='"',r=0;Nf.lastIndex=0;let n;for(;(n=Nf.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 sr(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 Hf(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 Uf(e,t){let r=[],n=!1;return Ui(e).forEach((o,s)=>{let i=s+1;if(o.trim()===""){n=!0;return}let a=o.length-o.replace(/^ +/,"").length;if(o[a]===" ")throw V(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw V(i,"invalid indentation");let l=Math.floor(a/t.indent);Sr(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function Sr(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,Sr(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function Vf(e){if(!nt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=tE(n,1);if(o===void 0)return e;sr(t,r,o)}return t}function tE(e,t){if(!nt(e)||!rE(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=nE(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 zf(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Bf.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 Ql(t);let f=d.get(u)??0,y=g[f];if(y===void 0)throw Ql(t);return d.set(u,f+1),oE(n,u,a[p],y,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw Ql(t);return c}function rE(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function nE(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=>lE(c,r));if(a.some(c=>c===""))throw bt(r);let l=aE(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw bt(r);if(d!==t)throw zf(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function oE(e,t,r,n,o){let s={};sr(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);sr(s,i,a)}for(let[i,a]of Object.entries(sE(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);sr(s,i,a)}return s}function sE(e,t){let r={};for(let[n,o]of Object.entries(e))iE(r,n.split("."),o,t);return Ki(r,t)}function iE(e,t,r,n){if(t.some(s=>s===""))throw bt(n);let o=e;for(let s=0;s<t.length;s+=1){let i=t[s];if(s===t.length-1){o[i]=r;return}if(o[i]??={},o=o[i],!nt(o))throw bt(n)}}function Ki(e,t){return Array.isArray(e)?e.map(r=>Ki(r,t)):nt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw bt(t);return Ki(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Ki(n,t)])):e}function aE(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 lE(e,t){try{return decodeURIComponent(e)}catch{throw bt(t)}}function qf(e){return encodeURIComponent(e)}function bt(e){return V(e,"invalid cyclic array wire")}function zf(e){return V(e,"cyclic array length mismatch")}function Ql(e){return V(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=dE(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)fE(n,o,s);return n.join("")}function dE(e){if(!Array.isArray(e)||e.length===0||!e.every(nt))return;let t=cE(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=uE(r);if(n===void 0)return;let o=pE(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)&&!Xl(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=hE(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 cE(e){return jf.find(t=>e.every(r=>typeof r[t]=="string"))}function uE(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(qf).join(","),s=`cycle(${r.map(qf).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function pE(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(!gE(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>vr(i[s])))break;r.push(s)}return r}function fE(e,t,r){e.push(ft(t),`:
|
|
9
|
+
`),e.push(" order: ",Tt(r.order.encoded,Mn),`
|
|
10
|
+
`),e.push(" discriminator: ",Tt(r.discriminator,Mn),`
|
|
11
11
|
`),e.push(" rows: ",String(r.rows.length),`
|
|
12
|
-
`),r.common.length>0&&
|
|
13
|
-
`);for(let o of n)e.push(" ",r.map(s=>
|
|
14
|
-
`)}function aE(e){return e!==""&&Xl(e)}function Ql(e,t,r,n=new Set){if(!Xl(t))return!1;if(Er(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let o=e.every((s,i)=>Ql(s,`${t}.${i}`,r,n));return n.delete(e),o}if(nt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&Ql(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function lE(e){let t=Object.keys(e[0]??{});if(e.every(r=>dE(Object.keys(r),t)))return t.every(Xl)?t:void 0}function dE(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Xl(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function Ro(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function Vi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=vt(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=rr(r.slice(0,n),0)}catch{throw V(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw V(0,"invalid array header");let l=i.slice(0,a),d=/^[0-9]*/.exec(l)[0];if(d===""||d.length>1&&d.startsWith("0"))throw V(0,"invalid array header");let c=Number.parseInt(d,10),u;switch(l.slice(d.length)){case"":u=",";break;case" ":u=" ";break;case"|":u="|";break;default:throw V(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=uE(p.slice(1,-1),u),g=ed(f)}catch(y){throw V(0,y.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw V(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function Kf(e){let t=vt(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=rr(e.slice(0,t),0)}catch{throw V(0,"invalid keyed map header")}if(r===""&&!n)throw V(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=ze;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=cE(o,s,s)}catch(a){throw V(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function cE(e,t,r){let n=[],o=0;function s(l,d){let c=0;for(;o<e.length&&!(d&&e[o]==="}");){if(e[o]===t||e[o]==="}")throw V(0,"invalid array header");let u=o;for(;o<e.length;){let f=e[o];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;o+=1}let[p,g]=rr(e.slice(u,o),0);if(p===""&&!g)throw V(0,"invalid array header");if(c+=1,e[o]==="["){o+=1;let f=o;for(;o<e.length&&e[o]!=="]";)o+=1;if(o>=e.length)throw V(0,"invalid array header");let y=e.slice(f,o);if(!Vf(y,r))throw V(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:y})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw V(0,"invalid array header");o+=1}else n.push({path:[...l,p],listDelimiter:void 0});if(e[o]===t){if(o+=1,o>=e.length||e[o]==="}")throw V(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw V(0,"invalid array header")}if(c===0)throw V(0,"invalid array header")}function i(){for(o+=1;o<e.length;){let l=e[o];if(o+=1,l==="\\")o+=1;else if(l==='"')return}}if(s([],!1),o!==e.length)throw V(0,"invalid array header");let a=new Set;for(let l=0;l<n.length;l+=1)for(let d=l+1;d<n.length;d+=1)if(zf(n[l].path,n[d].path)||ys(n[l].path,n[d].path)||ys(n[d].path,n[l].path))throw V(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw V(0,"duplicate key");a.add(c)}return n}function uE(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return Zl(e,ze,t);try{return Zl(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return Zl(e,ze,t);throw r}}function Zl(e,t,r){let n=0;function o(l){let d=[];for(;n<e.length&&!(l&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw V(0,"invalid array header");let c=n;for(;n<e.length;){let f=e[n];if(f==='"'){s();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[u,p]=rr(e.slice(c,n),0);if(u===""&&!p)throw V(0,"invalid array header");let g={key:u};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw V(0,"invalid array header");let y=e.slice(f,n);n+=1;let h=pE(y);if(h!==void 0){if(h.delimiter!==r)throw V(0,"invalid array header");g.fixedLength=h.len,g.fixedDelimiter=h.delimiter}else if(Vf(y,r))g.listDelimiter=y;else throw V(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw V(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw V(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw V(0,"invalid array header")}if(d.length===0)throw V(0,"invalid array header");return d}function s(){for(n+=1;n<e.length;){let l=e[n];if(n+=1,l==="\\")n+=1;else if(l==='"')return}}let i=o(!1);if(n!==e.length)throw V(0,"invalid array header");let a=ed(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(zf(a[l].path,a[d].path)||ys(a[l].path,a[d].path)||ys(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function pE(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=ze;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function ed(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?ed(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function zi(e,t,r){return e.listDelimiter===void 0?qt(t,r):nr(t,e.listDelimiter,r).map(n=>qt(n,r))}function Vf(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function zf(e,t){return e.length===t.length&&ys(e,t)}function ys(e,t){return t.every((r,n)=>e[n]===r)}function Ji(e,t){return V(t,e.reason??String(e.message))}function Dt(e,t){let r=$f(t),n=Nf(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw V(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){bs(o.content,o.number,r);let d;try{d=Vi(o.content,vt(o.content,":",o.number))}catch(c){if(r.strict)throw Ji(c,o.number);d=void 0}if(d!==void 0)return hE(d,n,r)}if(s&&vt(o.content,":",o.number)===-1)return qt(o.content.trim(),o.number);let i={index:0},a=rd(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Hf(a):a}function rd(e,t,r,n){let o={};for(;t.index<e.length;){let s=e[t.index];if(s.depth<r)break;if(s.depth>r)throw V(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=fE(e,t,r,n);tg(o,i,a,l,n,s.number)}return o}function fE(e,t,r,n){let o=e[t.index],s=o.content,i=vt(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=vt(a,"[",o.number),c=vt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){bs(a,o.number,n);let f;try{f=Kf(a)}catch(h){if(n.strict)throw Ji(h,o.number);t.index+=1;let R=td(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(l.trim()!=="")throw V(o.number,"expected keyed map rows");let y=gE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:y}}if(d!==-1){bs(a,o.number,n);let f;try{f=Vi(a,i)}catch(h){if(n.strict)throw Ji(h,o.number);t.index+=1;let R=td(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(f.key===""&&!f.keyQuoted)throw V(o.number,"expected non-empty field name");let y=nd(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=rr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=td(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function td(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return qt(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?rd(e,t,r+1,s):{}}function gE(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=vt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=rr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=nr(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw V(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{xo(u,p.path,zi(p,c[g],i.number),o,i.number)}),tg(s,l,d,u,o,i.number),r.index+=1}return s}function hE(e,t,r){let n=t[0],o=vt(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=nd(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return a}function nd(e,t,r,n,o,s){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw V(i,"expected tabular rows");return mE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=nr(a,e.delimiter,i).map(d=>qt(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return xE(e,r,n,o+1,s)}function mE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&RE(e.fieldTree))return bE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw Ro(r,n.index);if(l.depth<o)break;if(l.depth>o)throw V(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw V(l.number,"blank line inside array");if(!_o(l.content,e.delimiter,l.number))break;let d=nr(l.content,e.delimiter,l.number);if(d.length!==t.length)throw V(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{xo(c,u.path,zi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw Ro(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&_o(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function bE(e,t,r,n,o){return Jf(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function Jf(e,t,r,n,o,s,i,a){let l=[],d=Qf(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw Ro(n,o.index);if(u.depth<s)break;if(u.depth>s)throw V(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw V(u.number,"blank line inside array");if(!_o(u.content,r,u.number))break;let p=nr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Yi(t),childTableFields:d},f=Yf(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw V(u.number,"array row length mismatch");l.push(wE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw Ro(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&_o(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function Yf(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=yE(d,u,t,r,n,o,s,i,a);xo(l,[d.key],p,a,r)}),l}function yE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw V(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>qt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Yi(e.children),u=r[s.cellIndex],p=Zf(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],y=f!==void 0&&f.depth===i,h=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(h===void 0?p!==void 0&&(y||r.length!==s.flatWidth&&g<c+_E(t)):h){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Jf(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return Yf(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,zi(e,d,n)}function Qf(e,t,r,n,o,s,i){let a=t.filter(c=>c.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let l,d=1<<a.length;for(let c=0;c<d;c+=1){let u=new Set;a.forEach((g,f)=>{c&1<<f&&u.add(g)});let p=Xf(e,t,u,r,n,o,s,i);p!==void 0&&(l===void 0||p.consumedChildRows>l.consumedChildRows||p.consumedChildRows===l.consumedChildRows&&u.size<l.childTableFields.size)&&(l={childTableFields:u,consumedChildRows:p.consumedChildRows})}return l?.childTableFields}function Xf(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u+=1){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!_o(p.content,n,p.number))return;let g=nr(p.content,n,p.number),f=kE(t,r,g,n,o,l+1,i+1,a);if(f===void 0||o[f.nextIndex]?.depth>i)return;d+=f.consumedChildRows,l=f.nextIndex}let c=o[l];if(c!==void 0&&c.depth>=i&&_o(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function kE(e,t,r,n,o,s,i,a){let l=0,d=s,c=0;for(let u of e){if(u.fixedLength!==void 0)l+=u.fixedLength;else if(u.children!==void 0)if(t.has(u)){let p=Zf(r[l]);if(p===void 0)return;l+=1;let g=Qf(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Xf(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Yi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function wE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Zf(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function RE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Yi(e){return e.reduce((t,r)=>t+eg(r),0)}function eg(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Yi(e.children):1}function _E(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+eg(r),0)}function _o(e,t,r){let n=vt(e,":",r);if(n===-1)return!0;let o=vt(e,t,r);return o===-1?!1:o<n}function xE(e,t,r,n,o){let s=[];for(;s.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Ro(t,r.index);if(a.depth>n)throw V(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw V(a.number,"blank line inside array");s.push(EE(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw V(i.number,"array length mismatch");return s}function EE(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=vt(s,":",o.number);bs(s,o.number,n);let a;try{a=Vi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return nd(a,l,e,t,r,n)}}if(vt(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return rd(i,{index:0},r+1,n)}return t.index+=1,qt(s,o.number)}function tg(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(vE)){xo(e,i,n,o,s);return}}xo(e,[t],n,o,s)}function xo(e,t,r,n,o){vr(t.length-1,o,n);let s=t[0],i=Object.prototype.hasOwnProperty.call(e,s);if(t.length===1){if(i&&n.strict)throw V(o,"duplicate key");or(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw V(o,"path expansion conflict");or(e,s,{})}else i||or(e,s,{});xo(e[s],t.slice(1),r,n,o)}function vE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??ze;if(![ze,"|"," "].includes(n))throw V(0,"invalid array header");let o={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(o.cyclicDiscriminatedArrays){let i=qf(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?ad(s,void 0,e,0,!1,o):nt(e)?rg(s,e,0,o):s.push(St(e,n)),s.join("")}function Eo(e,t){e.push(" ".repeat(t*2))}function rg(e,t,r,n){vr(r,0,n);for(let[o,s]of Object.entries(t))Eo(e,r),sd(e,o,s,r,n)}function sd(e,t,r,n,o){if(vr(n,0,o),Array.isArray(r)){ad(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?TE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",ld(o.delimiter),s.fields.map(i=>ud(i,o.delimiter)).join(o.delimiter),`}:
|
|
15
|
-
`);for(let[i,a]of Object.entries(r)){Eo(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>
|
|
12
|
+
`),r.common.length>0&&Kf(e,"common",r.common,r.commonRows);for(let n of r.groups)Kf(e,n.label,n.fields,n.rows)}function Kf(e,t,r,n){e.push(" ",ft(t),"[",String(n.length),Mn,"]{",r.map(ft).join(Mn),`}:
|
|
13
|
+
`);for(let o of n)e.push(" ",r.map(s=>Tt(o[s],Mn)).join(Mn),`
|
|
14
|
+
`)}function gE(e){return e!==""&&Zl(e)}function Xl(e,t,r,n=new Set){if(!Zl(t))return!1;if(vr(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)=>Xl(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(".")&&Xl(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function hE(e){let t=Object.keys(e[0]??{});if(e.every(r=>mE(Object.keys(r),t)))return t.every(Zl)?t:void 0}function mE(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Zl(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function Ro(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function Vi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=St(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=nr(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=yE(p.slice(1,-1),u),g=td(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 Yf(e){let t=St(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=nr(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=bE(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 bE(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]=nr(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(Xf(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 yE(e,t){if(t!==ze&&e.includes(ze)&&(e.includes("[")||e.includes("{")))return ed(e,ze,t);try{return ed(e,t,t)}catch(r){if(t!==ze&&r.reason!=="duplicate key")return ed(e,ze,t);throw r}}function ed(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]=nr(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=kE(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=td(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Xf(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 kE(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 td(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?td(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function zi(e,t,r){return e.listDelimiter===void 0?qt(t,r):or(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 Xf(e,t){return e.length===t.length&&ks(e,t)}function ks(e,t){return t.every((r,n)=>e[n]===r)}function Ji(e,t){return V(t,e.reason??String(e.message))}function Ot(e,t){let r=Hf(t),n=Uf(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=Vi(o.content,St(o.content,":",o.number))}catch(c){if(r.strict)throw Ji(c,o.number);d=void 0}if(d!==void 0)return _E(d,n,r)}if(s&&St(o.content,":",o.number)===-1)return qt(o.content.trim(),o.number);let i={index:0},a=nd(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Vf(a):a}function nd(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}=wE(e,t,r,n);sg(o,i,a,l,n,s.number)}return o}function wE(e,t,r,n){let o=e[t.index],s=o.content,i=St(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=St(a,"[",o.number),c=St(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){ys(a,o.number,n);let f;try{f=Yf(a)}catch(h){if(n.strict)throw Ji(h,o.number);t.index+=1;let R=rd(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=RE(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=Vi(a,i)}catch(h){if(n.strict)throw Ji(h,o.number);t.index+=1;let R=rd(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=od(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=nr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=rd(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function rd(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?nd(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 V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=St(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=nr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=or(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw V(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{xo(u,p.path,zi(p,c[g],i.number),o,i.number)}),sg(s,l,d,u,o,i.number),r.index+=1}return s}function _E(e,t,r){let n=t[0],o=St(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=od(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 od(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 xE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=or(a,e.delimiter,i).map(d=>qt(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return CE(e,r,n,o+1,s)}function xE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&PE(e.fieldTree))return EE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw Ro(r,n.index);if(l.depth<o)break;if(l.depth>o)throw V(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw V(l.number,"blank line inside array");if(!_o(l.content,e.delimiter,l.number))break;let d=or(l.content,e.delimiter,l.number);if(d.length!==t.length)throw V(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{xo(c,u.path,zi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw Ro(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&_o(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function EE(e,t,r,n,o){return Zf(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function Zf(e,t,r,n,o,s,i,a){let l=[],d=tg(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw Ro(n,o.index);if(u.depth<s)break;if(u.depth>s)throw V(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw V(u.number,"blank line inside array");if(!_o(u.content,r,u.number))break;let p=or(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Yi(t),childTableFields:d},f=eg(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(TE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw Ro(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&_o(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function eg(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=vE(d,u,t,r,n,o,s,i,a);xo(l,[d.key],p,a,r)}),l}function vE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw V(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>qt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Yi(e.children),u=r[s.cellIndex],p=ng(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+AE(t)):h){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Zf(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return eg(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,zi(e,d,n)}function tg(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=rg(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 rg(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u+=1){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!_o(p.content,n,p.number))return;let g=or(p.content,n,p.number),f=SE(t,r,g,n,o,l+1,i+1,a);if(f===void 0||o[f.nextIndex]?.depth>i)return;d+=f.consumedChildRows,l=f.nextIndex}let c=o[l];if(c!==void 0&&c.depth>=i&&_o(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function SE(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=ng(r[l]);if(p===void 0)return;l+=1;let g=tg(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=rg(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Yi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function TE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function ng(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function PE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Yi(e){return e.reduce((t,r)=>t+og(r),0)}function og(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Yi(e.children):1}function AE(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+og(r),0)}function _o(e,t,r){let n=St(e,":",r);if(n===-1)return!0;let o=St(e,t,r);return o===-1?!1:o<n}function CE(e,t,r,n,o){let s=[];for(;s.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw Ro(t,r.index);if(a.depth>n)throw V(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw V(a.number,"blank line inside array");s.push(DE(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 DE(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=St(s,":",o.number);ys(s,o.number,n);let a;try{a=Vi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return od(a,l,e,t,r,n)}}if(St(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 nd(i,{index:0},r+1,n)}return t.index+=1,qt(s,o.number)}function sg(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(OE)){xo(e,i,n,o,s);return}}xo(e,[t],n,o,s)}function xo(e,t,r,n,o){Sr(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");sr(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw V(o,"path expansion conflict");sr(e,s,{})}else i||sr(e,s,{});xo(e[s],t.slice(1),r,n,o)}function OE(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=Jf(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?ld(s,void 0,e,0,!1,o):nt(e)?ig(s,e,0,o):s.push(Tt(e,n)),s.join("")}function Eo(e,t){e.push(" ".repeat(t*2))}function ig(e,t,r,n){Sr(r,0,n);for(let[o,s]of Object.entries(t))Eo(e,r),id(e,o,s,r,n)}function id(e,t,r,n,o){if(Sr(n,0,o),Array.isArray(r)){ld(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?IE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",dd(o.delimiter),s.fields.map(i=>pd(i,o.delimiter)).join(o.delimiter),`}:
|
|
15
|
+
`);for(let[i,a]of Object.entries(r)){Eo(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>fd(ud(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
|
|
16
16
|
`),e.push(...l)}return}e.push(ft(t),`:
|
|
17
|
-
`),
|
|
18
|
-
`)}function
|
|
17
|
+
`),ig(e,r,n+1,o);return}e.push(ft(t),": ",Tt(r,o.delimiter),`
|
|
18
|
+
`)}function ld(e,t,r,n,o,s){if(Sr(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(
|
|
22
|
-
`);return}let i=o?void 0:
|
|
23
|
-
`);for(let a of r){Eo(e,n+1);let l=[];e.push(i.paths.map(d=>
|
|
24
|
-
`),e.push(...l)}return}
|
|
25
|
-
`);for(let a of r)Eo(e,n+1),
|
|
26
|
-
`);return}e.push("- "),
|
|
27
|
-
`)}function
|
|
28
|
-
`),e.push(...i)}}function
|
|
29
|
-
`}function
|
|
30
|
-
`}function
|
|
31
|
-
`,f=()=>
|
|
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=
|
|
33
|
-
`},end(){return u?"":(u=!0,g())}}}function
|
|
21
|
+
`);return}if(r.every(vr)){sd(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>Tt(a,s.delimiter)).join(s.delimiter)),e.push(`
|
|
22
|
+
`);return}let i=o?void 0:ag(r,s,n+1);if(i!==void 0){sd(e,t,r.length,i.fields,s.delimiter),e.push(`
|
|
23
|
+
`);for(let a of r){Eo(e,n+1);let l=[];e.push(i.paths.map(d=>fd(ud(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
|
|
24
|
+
`),e.push(...l)}return}sd(e,t,r.length,void 0,s.delimiter),e.push(`
|
|
25
|
+
`);for(let a of r)Eo(e,n+1),FE(e,a,n+1,s)}function FE(e,t,r,n){if(Sr(r,0,n),Array.isArray(t)){e.push("- "),ld(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("- "),id(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))Eo(e,r+1),id(e,s,i,r+1,n);return}e.push("- ",Tt(t,n.delimiter),`
|
|
27
|
+
`)}function sd(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),dd(o),"]"),n!==void 0&&e.push("{",n.map(s=>pd(s,o)).join(o),"}"),e.push(":")}function dd(e){return e===ze?"":e}function ag(e,t,r){let n=ME(e,t);if(n!==void 0)return n;let o=ad(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:cd(o)}}function IE(e,t,r){let n=Object.values(e);if(!(n.length<2))return ag(n,t,r)}function ad(e,t,r){Sr(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})=>vr(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(vr))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=lg(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=ad(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=ad(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function ME(e,t){if(!t.objectArrayColumns)return;let r=lg(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function lg(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(vr)))return{fixedLength:t}}function cd(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}]:cd(r.children,n)})}function ud(e,t){let r=e;for(let n of t)r=r[n];return r}function pd(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${dd(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>pd(r,t)).join(t)}}`}function fd(e,t,r,n,o,s){return t.childFields!==void 0?(LE(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>Tt(i,r)).join(r):t.listDelimiter===void 0?Tt(e,r):e.map(i=>jE(i,r,t.listDelimiter)).join(t.listDelimiter)}function LE(e,t,r,n,o){for(let s of t){Eo(e,o);let i=[];e.push(cd(r).map(a=>fd(ud(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
|
|
28
|
+
`),e.push(...i)}}function jE(e,t,r){return typeof e!="string"?Tt(e,t):Yl(e,t)||e.includes(r)?qi(e):e}var mg=[ze,"|"," "];var bg=8,yg=/^[A-Za-z0-9_-]+$/,j$=new TextEncoder,B$=new TextDecoder;function GE(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 kg(e,t){if(!yg.test(e))throw Te(t,"invalid tag")}function WE(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!yg.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 HE(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(!mg.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),kg(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=or(c,a,t).map(p=>nr(p,t)[0])}catch(p){throw wo(p)}if(u.length===0||u.some(p=>p===""))throw Te(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function UE(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 dg(e,t,r,n){let o;try{o=or(e,t,n)}catch(s){throw wo(s)}if(o.length!==r)throw Te(n,"row arity mismatch");for(let s of o)try{qt(s,n)}catch(i){throw wo(i)}return o}function qE(e,t,r){let n={};return e.forEach((o,s)=>{try{sr(n,o,qt(t[s],r))}catch(i){throw wo(i)}}),n}function KE(e,t,r){if(e.startsWith("- "))throw Te(t,"reserved line prefix");let n=GE(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=HE(e,t);if(o!==null)return o.continuation?(UE(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=WE(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:dg(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:dg(e,r.delimiter,r.fields.length,t)}}function VE(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>=bg)throw Te(y,"too many tagged lanes");h={segments:[],current:null},n.set(g,h),r.push(g)}else h.current!==null&&h.segments.push(h.current);h.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},h.delimiter=f.delimiter,h.fields=f.fields,h.fieldText=f.fieldText}if(Ui(e).forEach((g,f)=>{let y=f+1;if(g==="")return;let h=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},R=KE(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 Tr(e){return VE(e).flatMap(t=>t.rows.map(r=>qE(t.fields,r,0)))}function zE(e){if(!mg.includes(e))throw Te(0,"invalid header delimiter")}function cg(e,t,r=!1){return`[${`${r?"~":""}${e===ze?"":e}`}]{${t}}:
|
|
29
|
+
`}function ug(e,t){return`[]<${e}>{${t}}:
|
|
30
|
+
`}function gd(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]=nr(String(t),0)}catch(n){throw wo(n)}if(r==="")throw Te(0,"TOONL header requires fields");return r})}function pg(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function fg(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Te(0,"TOONL continuation cadence must be positive")}function YE(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function gg(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=>!vr(e[r])))throw Te(0,"TOONL rows must be flat objects");return t}function QE(e){return JSON.stringify([...e].sort())}function hg(e,t){let r=QE(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function yt({delimiter:e=ze,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){zE(e),fg(r),fg(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=()=>YE(p,l,d)?(l=0,d=0,cg(e,s,!0)):"",y=h=>{kg(h,0);let R=c.get(h);if(R===void 0){if(c.size>=bg)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=hg(gg(h),i),T="";(o===null||o.length!==R.length||o.some((M,N)=>M!==R[N]))&&(T+=g(),o=R,s=gd(e,o),a=0,l=0,d=0,T+=cg(e,s));let $=o.map(M=>Tt(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),$=gd(ze,T),D=y(h);return pg(D.fields,T)?"":(D.fields=T,ug(h,$))},pushTagged(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=y(h),$=hg(gg(R),T.fieldsByShape),D=gd(ze,$),M=$.map(U=>Tt(R[U],ze)),N="";return pg(T.fields,$)||(T.fields=$,N+=ug(h,D)),`${N}${h}:${M.join(ze)}
|
|
33
|
+
`},end(){return u?"":(u=!0,g())}}}function hd(e){let t={app:e,version:XE(vo("__RED_BUILD_VERSION__",()=>"3.12.7")??"0.0.0-dev"),gitSha:vo("__RED_BUILD_GIT_SHA__",()=>"b8a07d606ba51cfba953b5e87b8cbfd1c272f657")??"unknown",buildTime:vo("__RED_BUILD_TIME__",()=>"2026-08-08T21:34:25-03:00")??"unknown",bundleAsset:vo("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=vo("__REDDB_SDK_VERSION__",()=>""),n=vo("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function XE(e){return e.startsWith("v")?e.slice(1):e}function wg(e){return`${e.app} ${e.version} ${e.gitSha}`}function vo(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Rg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},ZE=/^[a-z][a-z0-9+.-]*:\/\//i;function ev(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 tv(e=Rg){return Object.entries(e).map(([t,r])=>ev(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function rv(e){return/^-\d+(\.\d+)?$/.test(e)}function ws(e){return!(!e||e.startsWith("-")&&!rv(e))}function Qi(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function _g(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=>_g(r.trim())):e}function Ln(e,t){switch(t){case"boolean":return nv(e);case"number":return ov(e);case"array":return e.split(",").map(r=>Qi(r.trim()));case"string":default:return e}}function nv(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function ov(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 sv(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 iv(e){let t=[],r=lv(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=
|
|
41
|
-
`))}return r}function
|
|
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
|
|
43
|
-
`)}catch{return!0}},append(e,t){
|
|
44
|
-
`),r.append(e,
|
|
40
|
+
`));let n=dv(e.options);t.push(...n)}return t}function av(e,t){let r=iv(e);return sv(r,t)}function lv(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 dv(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 xg(e){let t=mv(e.options??{},e.autoShort??!1),r=tv(e.separators??Rg);return{schema:e,parse(n){return cv(n,e,t,r)},help(){return av(e,e.formatter)}}}function cv(e,t,r,n){let o={positional:{},options:{},errors:[],rest:[]},s=new Set(n.map(c=>c.to));for(let c of s)o[c]={};let i=0,a=t.positional??[],l=0,d=!1;for(;l<e.length;){let c=e[l];if(t.stopEarly&&i>0){o.rest=e.slice(l);break}if(c==="--"&&!d){d=!0,l++;continue}if(d){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;l<e.length;){let f=e[l];g.push(p.type?Ln(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Ln(c,p.type):c;o.positional[p.name]=g,i++,l++}}else t.allowUnknown!==!1&&(o.rest=o.rest??[],o.rest.push(c)),l++;continue}if(c.startsWith("--")){l=gv(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!Rv(c)){l=hv(c,l,e,o,r,t);continue}let u=uv(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?_g(g):ln(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let y=e[l];f.push(p.type?Ln(y,p.type):y),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Ln(c,p.type):c;o.positional[p.name]=g,i++}else t.allowUnknown!==!1?o.rest.push(c):o.errors.push(`Unexpected positional argument: ${c}`);l++}return yv(o,t,r),kv(o,t,a),wv(o,t,r),o}function uv(e,t){if(ZE.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(pv(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(fv(o,s,r))return{key:o,value:s,config:r}}}return null}function pv(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function fv(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 gv(e,t,r,n,o,s){let i=e.slice(2);if(i.startsWith("no-")){let l=i.slice(3),d=o.get(l);if(d?.negatable!==!1&&d?.type==="boolean")return n.options[d.name]=!1,t+1}if(i.includes("=")){let l=i.indexOf("="),d=i.slice(0,l),c=i.slice(l+1);return Xi(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return ws(l)?Xi(a.name,l,t+2,n,o,s):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return s.strict?n.errors.push(`Unknown option: --${i}`):s.allowUnknown!==!1&&(n.options[i]=!0),t+1}function hv(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=md(l,o);return c?Xi(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=Qi(ln(d))),t+1)}if(i.length===1){let a=md(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return ws(l)?Xi(a.name,l,t+2,n,o,s):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(s.strict)n.errors.push(`Unknown option: -${i}`);else if(s.allowUnknown!==!1){let l=r[t+1];if(ws(l))return n.options[i]=Qi(ln(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=md(a,o);l?l.type==="boolean"?n.options[l.name]=!0:n.errors.push(`Option -${a} requires a value`):s.strict?n.errors.push(`Unknown option: -${a}`):s.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function Xi(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Ln(ln(t),i.type):ln(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Ln(ln(t),i.type):ln(t);if(i.type==="array"){let l=n.options[e];Array.isArray(l)?l.push(...a):n.options[e]=a}else n.options[e]=a}else s.strict?n.errors.push(`Unknown option: --${e}`):s.allowUnknown!==!1&&(n.options[e]=Qi(ln(t)));return r}function mv(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=bv(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 bv(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 md(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function yv(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let o=process.env[n.env];e.options[n.name]=n.type?Ln(o,n.type):o}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function kv(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 wv(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 bd=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 _v(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 xv(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=xg({options:_v(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=xv(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 bd(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 yd=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 Eg(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 yd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as Iv,mkdirSync as Mv,readFileSync as Ig,renameSync as Lv,rmSync as jv,statSync as Bv,writeFileSync as $v}from"node:fs";import{dirname as Lg,join as Nv}from"node:path";var vg="RED_WORKER_SCOPE",Sg="RED_WORKER_MEMORY_CEILING",Tg="RED_WORKER_SCOPE_DEGRADATION",wd={scope:null,memory_ceiling:null,scope_degradation:null};function Rd(e){return{scope:kd(e[vg]),memory_ceiling:kd(e[Sg]),scope_degradation:kd(e[Tg])}}function Rs(e){let t={};return e.scope!=null&&e.scope!==""&&(t[vg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(t[Sg]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(t[Tg]=e.scope_degradation),t}function kd(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as Sv,readdirSync as Tv,readFileSync as Dg,rmSync as Pv,writeFileSync as Av}from"node:fs";import{basename as Cv,join as To}from"node:path";import{isAbsolute as b2,join as Zi,resolve as y2}from"node:path";function Ev(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var Pg="deaths",Ag="deaths.toonl";function ea(e){return Zi(Ev(e),Pg)}function So(e){return Zi(ea(e),Ag)}var _s="live",Cg="attributions.toonl";function ta(e){return Zi(ea(e),_s)}function _d(e){return Zi(ea(e),Cg)}var Ed=To("sys","kernel","random","boot_id"),Og=1;function vd(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:Og,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Fg(To(r,Ed)),cgroup:Dv(r,n),last_phase:e.last_phase}}function Fg(e){try{let t=Dg(e,"utf8").trim();return t===""?null:t}catch{return null}}function Dv(e,t){let r=Fg(To(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 Sd(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Td(e,t){let r=To(e,Sd(t));try{return Sv(e,{recursive:!0,mode:448}),Av(r,yt({trailer:!1}).push(Fv(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function jn(e,t){try{Pv(To(e,Sd(t)),{force:!0})}catch{}}function Pd(e,t){let r;try{r=Tv(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=To(e,o);try{let a=Tr(Dg(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(Ov(a))}catch(i){t?.(Cv(s),i instanceof Error?i.message:String(i))}}return n}function Ov(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:xd(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:xd(e.pid),ppid:xd(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 xd(e){return typeof e=="number"?e:Number(e)}function Fv(e){return{...e}}var Gv=1,Wv=14*24*60*60*1e3,Hv=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function Uv(e){return typeof e=="string"&&Hv.has(e)}var qv="startup";function Kv(e,t){return{...e.scope??wd,version:Gv,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 Vv(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 ra={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 Ig(e,"utf8").endsWith(`
|
|
43
|
+
`)}catch{return!0}},append(e,t){Iv(e,t,{encoding:"utf8",mode:384})},replace(e,t){let r=`${e}.retaining-${process.pid}`;try{$v(r,t,{encoding:"utf8",mode:384}),Lv(r,e)}catch(n){throw jv(r,{force:!0}),n}},read(e){return Ig(e,"utf8")}};function jg(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function zv(e,t,r=ra){let n=Date.parse(t.ts);Number.isFinite(n)&&Cd(e,n,r);let o=yt({trailer:!1}).push(jg(t));return r.mkdir(Lg(e)),r.endsClean(e)||r.append(e,`
|
|
44
|
+
`),r.append(e,o),t}function Cd(e,t=Date.now(),r=ra){let n;try{n=Dd(r.read(e))}catch(a){if(a.code==="ENOENT")return[];throw a}let o=t-Wv,s=n.filter(a=>{let l=Date.parse(a.ts);return!Number.isFinite(l)||l>=o});if(s.length===n.length)return s;let i=yt({trailer:!1});return r.replace(e,s.map(a=>i.push(jg(a))).join("")),s}function Dd(e){let t=e.endsWith(`
|
|
45
45
|
`)?e:e.slice(0,e.lastIndexOf(`
|
|
46
|
-
`)+1);return t===""?[]:
|
|
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:
|
|
46
|
+
`)+1);return t===""?[]:Tr(t).map(Jv)}function Jv(e){let t=e.exit_path;if(!Uv(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 Bg(e,t=ra){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return Dd(r)}var Yv=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],Ad=null;function $g(e){let t=e.host??process,r=e.io??ra,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??Rd(process.env),i=e.phase??qv,a=null,l=e.presenceDir===void 0?Nv(Lg(e.lanePath),_s):e.presenceDir,d=null,c=()=>{l!==null&&(d=vd({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Td(l,d))},u=h=>{if(!a){try{a=zv(e.lanePath,Kv({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...h},Vv(t)),r)}catch{}l!==null&&d!==null&&jn(l,d)}},p={signal(h){u({exit_path:"signal",signal:h})},exit(h){u({exit_path:"exit",exit_code:h})},uncaughtException(h){u({exit_path:"uncaught-exception",detail:Mg(h)})},unhandledRejection(h){u({exit_path:"unhandled-rejection",detail:Mg(h)})}},f=[...(e.signals??Yv).map(h=>{let R=()=>{if(p.signal(h),!(t.listenerCount?.(h)!==1||!t.kill)){t.off(h,R);try{t.kill(o,h)}catch{}}};return[h,R]}),["uncaughtException",(...h)=>p.uncaughtException(h[0])],["unhandledRejection",(...h)=>p.unhandledRejection(h[0])],["exit",(...h)=>p.exit(typeof h[0]=="number"?h[0]:null)]];for(let[h,R]of f)t.on(h,R);let y={lanePath:e.lanePath,phase(h){i=h,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[h,R]of f)t.off(h,R);l!==null&&d!==null&&jn(l,d),Ad===y&&(Ad=null)},handlers:p};return e.setActive!==!1&&(Ad=y),c(),y}function Mg(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as Qv,readdirSync as Xv,readFileSync as na,statSync as Zv,writeFileSync as eS}from"node:fs";import{join as Hg}from"node:path";var tS=1,rS=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],nS=512*1024;function oS(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??rS,n=[],o=Hg(t,Ed),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:Od(l),detail:null})}let i=new Set;try{for(let l of Xv(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:Od(l),detail:null})}let a=[];for(let l of r)try{let c=sS(l,e.tailBytes??nS).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:Od(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Od(e){return e.code==="ENOENT"?"absent":"unreadable"}function sS(e,t){let r=Zv(e).size,n=na(e,"utf8");return r<=t?n:n.slice(n.length-t)}var iS=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,aS=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,lS=/Killed (\/\S*) due to memory pressure/,dS=/\bopid=(\d+)\b/,Ng=/\bsig=(\d+)\b/,cS=/\buid=(\d+)\b/,uS=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,pS={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function fS(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:tS,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=>Gg(u,e.pid,iS)||Gg(u,e.pid,aS));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=lS.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(dS.exec(u)?.[1])===e.pid&&Ng.test(u));if(d!==void 0){let u=Number(Ng.exec(d)?.[1]),p=cS.exec(d)?.[1];return i("user-signal",o?"medium":"high",pS[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=>uS.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 Gg(e,t,r){return Number(r.exec(e)?.[1])===t}var gS=" | ";function Wg(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(gS)}function hS(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:Wg(e.evidence),checked:Wg(e.checked)}}function mS(e){let t=yt({trailer:!1});return e.map(r=>t.push(hS(r))).join("")}function Ug(e){let t=ta(e.stateRoot),r=_d(e.stateRoot),o=(e.now??(()=>new Date().toISOString()))(),s=e.evidence??oS({procRoot:e.procRoot,journalPaths:e.journalPaths}),i=[],a=Pd(t,g=>i.push(g)),l=Bg(So(e.stateRoot)),d=[],c=[],u=[];for(let g of a){if(s.live_pids.has(g.pid)){c.push(g);continue}if(l.find(y=>y.pid===g.pid&&y.id===g.id)!==void 0){u.push(g),jn(t,g);continue}d.push(fS(g,s,l,o)),jn(t,g)}let p=Date.parse(o);return Number.isFinite(p)&&Cd(So(e.stateRoot),p),d.length>0&&bS(r,d),{attributions:d,alive:c,self_recorded:u,skipped:i,laneText:()=>{try{return na(r,"utf8")}catch{return""}}}}function qg(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 bS(e,t){try{Qv(Hg(e,".."),{recursive:!0,mode:448});let r=yS(e),n=r===""||r.endsWith(`
|
|
48
48
|
`)?"":`
|
|
49
|
-
`;
|
|
50
|
-
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=
|
|
49
|
+
`;eS(e,`${r}${n}${mS(t)}`,{encoding:"utf8",mode:384})}catch{}}function yS(e){try{return na(e,"utf8")}catch{return""}}import{join as kS}from"node:path";var wS=[".red","redskilled"],Vr=448;function ir(e){return kS(e,...wS)}import{randomUUID as Q0}from"node:crypto";import{spawn as K1}from"node:child_process";import{mkdir as V1}from"node:fs/promises";import{dirname as z1}from"node:path";import{createHash as xS}from"node:crypto";import{constants as jd}from"node:fs";import{mkdir as eh,open as ES,readFile as vS,rm as th,stat as SS}from"node:fs/promises";import{createConnection as TS}from"node:net";import{tmpdir as PS}from"node:os";import{dirname as rh,join as xs}from"node:path";var RS="toon";function zg(e){return e.trimStart().startsWith("{")?"json":"toon"}function Id(e){let t=0;for(;e[t]===`
|
|
50
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=zg(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
|
|
53
|
+
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function Md(e){let t=zg(e)==="json"?Fd:Kg,r=t===Fd?Kg:Fd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Fd(e){return JSON.parse(e)}function Kg(e){return Ot(e)}function Ld(e,t){if(t==="toon"){let r=_S(e);if(r!==null)return r.endsWith(`
|
|
54
54
|
`)?`${r}
|
|
55
55
|
`:`${r}
|
|
56
56
|
|
|
57
57
|
`}return`${JSON.stringify(e)}
|
|
58
|
-
`}function
|
|
59
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await
|
|
60
|
-
`,1)[0]?.trim()??"";if(!t.startsWith(eh))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function SS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await mS(e)).mtimeMs)}catch{return null}}function Qe(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var TS="/tmp";function oa(e){let t=e.env??process.env,r=fS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>xs(l,e.socketFileName).length<kS,o=t.XDG_RUNTIME_DIR;if(o){let l=xs(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=xs(`red-skills-${s}`,r),a=xs(yS(),i);return n(a)||process.platform==="win32"?a:xs(TS,i)}zr();import{homedir as YS}from"node:os";import{join as Vd}from"node:path";import{spawnSync as QS}from"node:child_process";import{createHash as XS}from"node:crypto";import{existsSync as ZS,readdirSync as eT}from"node:fs";import{mkdir as uh,readFile as tT,rename as rT,writeFile as nT}from"node:fs/promises";import{dirname as oT}from"node:path";var $n="@reddb-io/red-skills",BS="https://registry.npmjs.org",$S="canary",Bn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},NS=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Wd(e){return typeof e=="string"&&NS.test(e.trim())}function ah(e){return`${e}-.bundle.min.mjs`}var GS=".unversioned";function WS(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Wd(t))throw new Bn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${ah(e)}, a name no resolver prefers and one whose mere existence satisfies the cache-first test forever (#3153)`);return`${e}-${t.trim()}.bundle.min.mjs`}function la(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return Ss(n,WS(t,r,o))}function HS(e){return e==="dev"?["rsp","redskilled"]:[]}function US(e){return`${e}.bundle.min.mjs`}function qS(e){return Ss("dist",US(e))}function KS(e,t="stable"){return`${$n}@${t==="canary"?$S:e}`}function Hd(e=$n){return`${BS}/${e.replace("/","%2F")}`}async function Ud(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=la({plugin:r,version:n,cacheDir:o,channel:s}),a=HS(r),l=a.map(p=>la({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await zS(e,l))return i;let d=KS(n,s),c=Ss(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw ch(p,d)}for(let p of[r,...a]){let g=qS(p),f=Ss(u,g);if(!await e.exists(f))throw new Bn("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:la({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await VS(e,o,[r,...a]),i}async function VS(e,t,r){if(e.rename)for(let n of r){let o=Ss(t,ah(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${GS}`)}catch{}}}async function zS(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function lh(e,t,r=$n){let n;try{n=await e.fetchText(Hd(r))}catch(s){throw ch(s,r)}let o=qd(n);return{sameMajor:JS(o,t),newest:Kd(o)}}function qd(e){let t;try{t=JSON.parse(e)}catch{return[]}if(typeof t!="object"||t===null)return[];let r=t.versions;return typeof r!="object"||r===null?[]:Object.keys(r)}function JS(e,t){let r=Gd(t);if(r===null)return null;let n=null;for(let o of e)Gd(o)===r&&(n===null||dh(o,n)>0)&&(n=o);return n}function Kd(e){let t=null;for(let r of e){let n=String(r).trim();Gd(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||dh(n,t)>0)&&(t=n)}return t}function Gd(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function dh(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e.trim()),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t.trim());return!r||!n?0:Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function ch(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Bn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Bn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Bn("network",`failed to resolve ${t}: ${r}`,e)}function Ss(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}zr();var ph={async materialize(e,t){await uh(t,{recursive:!0});let r=QS("npm",["install",e,"--prefix",t,"--no-save","--no-audit","--no-fund","--ignore-scripts","--loglevel=error"],{stdio:["ignore","ignore","pipe"],encoding:"utf8"});if(r.error)throw r.error;if(r.status!==0)throw new Error(`npm install ${e} -> ${r.status}: ${(r.stderr||"").trim()}`);return Vd(t,"node_modules",...$n.split("/"))},async readFile(e){return new Uint8Array(await tT(e))},async writeFile(e,t){await uh(oT(e),{recursive:!0}),await nT(e,t)},async exists(e){return ZS(e)},sha256(e){return XS("sha256").update(e).digest("hex")},async fetchText(e){let t=await fetch(e,{redirect:"follow"});if(!t.ok)throw new Error(`GET ${e} -> ${t.status}`);return await t.text()},async rename(e,t){await rT(e,t)}},sT="redskilled";function iT(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vd(e.HOME||YS(),".cache");return Vd(t,"red-skills","bundles")}var aT=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function lT(e,t){if(Wd(e.version))return e.version.trim();let r=e.listCacheDir??uT,n=dT(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??ph).fetchText(Hd());return Kd(qd(s))}catch{return null}}function dT(e,t){let r=null;for(let n of e){let o=aT.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||cT(s,r)>0)&&(r=s)}return r}function cT(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t);return Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function uT(e){try{return eT(e)}catch{return[]}}async function pT(e={},t={},r={}){let n=un(e,t);if(Pr(n))return n;let o=r.env??t.env??process.env,s=iT(o),i=await lT(r,s);if(i===null)return n;try{await Ud(r.bundleIO??ph,{plugin:sT,version:i,cacheDir:s})}catch{return n}return un(e,t)}async function fh(e={},t={},r={}){let n=await pT(e,t,r);if(Pr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(zr(),ih));throw new o(n)}var To=3e5,gh=1e4,hh=6e4,mh=15e3,zd=3e4,bh=zd*2,yh=6e4,Ts=16;function kh(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill"||e.event==="worker-death"&&e.exit_code===0)return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=!r&&!n&&e.signal!=null,s=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,i=t.startedAt==null?null:Date.parse(t.startedAt),a=Date.parse(e.ts),l=i!=null&&Number.isFinite(i)&&Number.isFinite(a)?Math.max(0,a-i)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":o?"user-signal":"unknown",confidence:r||n||o?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n||o?[s]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${s}`],project_label:e.project_label,...l===void 0?{}:{uptime_s:l},detail:t.refusal??e.detail,observed_exit:e.exit_code!=null||e.signal!=null}}function Jd(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var wh="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as L0}from"node:crypto";import{mkdir as E1,rm as v1}from"node:fs/promises";import{dirname as S1}from"node:path";import{randomUUID as Rh}from"node:crypto";import{rm as fT}from"node:fs/promises";import{connect as gT,createServer as hT}from"node:net";var Ar=class extends Error{constructor(r,n){super(`a redskilled daemon already owns ${JSON.stringify(r)}`);this.socketPath=r;this.lease=n;this.name="RedskilledAlreadyRunningError"}};async function Yd(e,t=250){return await new Promise(r=>{let n=gT(e),o=!1,s=a=>{o||(o=!0,clearTimeout(i),n.destroy(),r(a))},i=setTimeout(()=>s("unknown"),t);i.unref?.(),n.once("connect",()=>s("owned")),n.once("error",a=>{s(a.code==="ECONNREFUSED"||a.code==="ENOENT"?"unowned":"unknown")})})}async function _h(e,t){for(let r=0;r<2;r++){let n=hT();try{return await new Promise((o,s)=>{n.once("error",s),n.listen(e,()=>{n.off("error",s),o()})}),n}catch(o){if(n.close(),o.code!=="EADDRINUSE")throw o;if(await Yd(e)!=="unowned")throw new Ar(e);if(await t?.())throw new Ar(e);await fT(e,{force:!0})}}throw new Ar(e)}async function zt(e,t=250){try{return(await na({socketPath:e,timeoutMs:t},{id:Rh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function xh(e,t){Zg(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??Rh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Dh(e){return{generated_at:e.now,hour:vh("hour",36e5,e),day:vh("day",864e5,e),history_48h:mT(e)}}function mT(e){let t=pn(e.now),r=t==null?null:Math.floor(t/36e5)*36e5,n=r==null?null:r-47*36e5,o=Array.from({length:48},(d,c)=>n==null?null:n+c*36e5),s=bT(e.observations,o,t),i=o.map((d,c)=>({hour:d==null?e.now:new Date(d).toISOString(),value:s[c]??null,absent_reason:s[c]==null?"no token samples span this hour":null})),a=e.outcomes.map(d=>pn(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:Eh(i),tickets_per_hour:Eh(l)}}function bT(e,t,r){if(r==null||t.some(i=>i==null))return t.map(()=>null);let n=new Map;for(let i of e){let a=pn(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],y=Math.min(f+36e5,r),h=Math.max(0,Math.min(c.at,y)-Math.max(d.at,f));h!==0&&(a[g].tokens+=p*(h/u),a[g].duration+=h)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function Eh(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Nn(e,t,r){let n=pn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=pn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function vh(e,t,r){let n=pn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:pn(u.observed_at)})).filter(u=>u.at!=null&&Ph(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>pn(u.ts)).filter(u=>u!=null&&Ph(u,o,n)),l=Sh(i,u=>u.tokens,"tokens",s),d=Sh(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:yT(a.length,t,s),runner_share:Th("runner",i,u=>u.runner,s),model_share:Th("model",i,u=>u.model,s),unavailable:c}}function Sh(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function yT(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function Th(e,t,r,n){let o=new Map;for(let d of t){let c=r(d.observation);c!=null?o.set(d.observation.worker_id,c):o.has(d.observation.worker_id)||o.set(d.observation.worker_id,null)}let s=new Map,i=0,a=0;for(let d of o.values()){if(d==null){a+=1;continue}i+=1,s.set(d,(s.get(d)??0)+1)}let l=[...s.entries()].map(([d,c])=>({key:d,worker_count:c,share:c/i})).sort((d,c)=>c.worker_count-d.worker_count||d.key.localeCompare(c.key));return{dimension:e,attributed_workers:i,unattributed_workers:a,shares:l,absent_reason:l.length>0?null:o.size===0?`no Worker was observed in the last ${n}`:`no Worker published a ${e} in the last ${n}`}}function Ph(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function pn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Oh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Ch(t.hour)&&Ch(t.day)&&(t.history_48h===void 0||kT(t.history_48h))}function kT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Ah(t.tokens_per_hour)&&Ah(t.tickets_per_hour)}function Ah(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function Ch(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&Qd(t.tokens_per_min)&&Qd(t.tools_per_min)&&Qd(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Qd(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.value===null||typeof t.value=="number")&&(t.absent_reason===null||typeof t.absent_reason=="string")&&Number.isInteger(t.samples)}function Fh(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Nn([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function Ih(e,t){return Nn(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as jh,totalmem as RT}from"node:os";function Ps(e){if(e.applied_budget!=null)return e.applied_budget;let t=e.budget??{};return t.memory_max==null&&t.memory_high==null&&e.memory_ceiling!=null?{...t,memory_max:e.memory_ceiling}:t}function Mh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Ps(d),u=!1;for(let[p,g]of[[c.memory_high,f=>r+=f],[c.memory_max,f=>n+=f]]){if(p==null)continue;let f=Po(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:wT(e.length,n,a,l)}}function wT(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function Po(e){let t=/^\s*(\d+(?:\.\d+)?)\s*([KMGT]?)(?:B)?\s*$/i.exec(e);if(!t)return null;let r={"":1,k:1024,m:1024**2,g:1024**3,t:1024**4}[t[2].toLowerCase()];return Math.round(Number(t[1])*r)}function Lh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Number.isInteger(t.worker_count)&&typeof t.memory_high_bytes=="number"&&typeof t.memory_max_bytes=="number"&&typeof t.cpu_weight_total=="number"&&Array.isArray(t.unaccounted_workers)&&Array.isArray(t.unisolated_workers)}var Bh="REDSKILLED_MEMORY_CEILING",Zd="REDSKILLED_WORKER_CEILING",Wh="REDSKILLED_VALIDATION_CEILING",$h="REDSKILLED_INTERACTIVE_RESERVATION",As=1,Nh=.7,_T=2*1024**3,xT=2;function Hh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Po(t)}function ca(e){let t=0,r=[];for(let n of e){let o=Hh(n.budget);o===null?r.push(n.worker_id):o!==void 0&&(t+=o)}return{worker_count:e.length,memory_bytes:t,unaccounted_workers:r.sort()}}function Uh(e){let{ceiling:t}=e,r=ca(e.workers),n=Hh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??As),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function qh(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=ca(e.workers),n=e.ceiling.memory_bytes-r.memory_bytes,o=e.ceiling.worker_count,s=o==null?n:Math.floor(e.ceiling.memory_bytes/o),i=Math.min(n,s);if(i<=0)return{memory_max:null,reason:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes is already fully committed to ${r.worker_count} Worker(s), so no positive per-Worker ceiling can be derived; the daemon's RSS sampling floor is the only remaining ceiling`};let a=o==null?`the headroom under this host's memory ceiling of ${e.ceiling.memory_bytes} bytes; this host declares no Worker slot count (${Zd} is unset), so this ceiling is a per-Worker wall and not memory the host sets aside \u2014 N Workers may carry N such walls, and the host ceiling is not enforced host-wide. Declare a slot count to make it divide into shares that sum to it`:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes shared across its ${o} Worker slot(s)`;return{memory_max:String(i),reason:`derived from ${a} (ceiling source: ${e.ceiling.source})`}}function ua(e=process.env,t=RT(),r={}){let n=Xd(r.flags?.memoryCeiling,e[Bh],r.config?.memoryCeiling),o=Xd(r.flags?.workerCeiling,e[Zd],r.config?.workerCeiling),s=Xd(r.flags?.validationCeiling,e[Wh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[$h]??"").trim(),d=Kh(a),c=l===""?As:ST(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!ET(a)&&(da(`redskilled: ${ec(o)} ${Zd}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=vT(i,t);if(p!==void 0)return Gh({memory_bytes:p,worker_count:d,interactive_reservation:c??As,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??jh());da(`redskilled: ${ec(n)} ${Bh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Nh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&da(`redskilled: ${$h}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${As} Worker(s) instead.`),Gh({memory_bytes:Math.floor(t*Nh),worker_count:d,interactive_reservation:c??As,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??jh())}function Gh(e,t,r){if(t!==void 0){let i=Kh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};da(`redskilled: ${ec(t)} ${Wh}=${JSON.stringify(t.value)} is not a positive integer; deriving the validation ceiling from host CPU, memory, and Worker capacity instead.`)}let n=Math.max(1,Math.floor(Math.max(1,r)/xT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/_T)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Xd(e,t,r){if(e?.trim())return{value:e.trim(),source:"flag"};if(t?.trim())return{value:t.trim(),source:"environment"};if(r?.trim())return{value:r.trim(),source:"home-config"}}function ec(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function ET(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var da=e=>process.stderr.write(`${e}
|
|
61
|
-
`);function
|
|
62
|
-
`);return t.pop(),t.length===0?[]:
|
|
58
|
+
`}function _S(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!Vg(e)||!Vg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Vg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Yg=new Set;function Qg(e){return Yg.has(e)?"json":RS}function Xg(e){Yg.add(e)}var AS=108;async function oa(e,t,r="resident server"){let n=e.wire,o=n??Qg(e.socketPath),s=await Zg(e,t,r,o);return n||o==="json"||!Jg(t,s)?s:(Xg(e.socketPath),await Zg(e,t,r,"json"))}async function Zg(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=TS(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(Ld(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Id(d);g&&(d=g.rest,u(()=>{try{s(Md(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 nh(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Id(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Ld(a,s.dialect))}catch{}};(async()=>{let a;try{a=Md(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function CS(e){await eh(rh(e),{recursive:!0,mode:448});try{return await ES(e,jd.O_CREAT|jd.O_EXCL|jd.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var DS=6e4,oh="resident-spawn-lock v1",OS=3;async function sh(e,t={}){let r=t.maxAgeMs??DS,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Qe;await eh(rh(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await CS(e);if(l)return await l.writeFile(`${oh} pid=${o} taken=${new Date(n()).toISOString()}
|
|
59
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await IS(e),c=await LS(e,d,n());if(a>=OS||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=FS(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 th(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function ih(e){await e.handle.close().catch(()=>{}),await th(e.lockPath,{force:!0})}function FS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function ah(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 IS(e){try{return MS(await vS(e,"utf8"))}catch{return null}}function MS(e){let t=e.split(`
|
|
60
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(oh))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 LS(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 SS(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 jS="/tmp";function sa(e){let t=e.env??process.env,r=xS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>xs(l,e.socketFileName).length<AS,o=t.XDG_RUNTIME_DIR;if(o){let l=xs(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=xs(`red-skills-${s}`,r),a=xs(PS(),i);return n(a)||process.platform==="win32"?a:xs(jS,i)}zr();import{homedir as iT}from"node:os";import{join as Jd}from"node:path";import{spawnSync as aT}from"node:child_process";import{createHash as lT}from"node:crypto";import{existsSync as dT,readdirSync as cT}from"node:fs";import{mkdir as hh,readFile as uT,rename as pT,writeFile as fT}from"node:fs/promises";import{dirname as gT}from"node:path";var $n="@reddb-io/red-skills",zS="https://registry.npmjs.org",JS="canary",Bn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},YS=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Ud(e){return typeof e=="string"&&YS.test(e.trim())}function uh(e){return`${e}-.bundle.min.mjs`}var QS=".unversioned";function XS(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Ud(t))throw new Bn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${uh(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 Ss(n,XS(t,r,o))}function ZS(e){return e==="dev"?["rsp","redskilled"]:[]}function eT(e){return`${e}.bundle.min.mjs`}function tT(e){return Ss("dist",eT(e))}function rT(e,t="stable"){return`${$n}@${t==="canary"?JS:e}`}function qd(e=$n){return`${zS}/${e.replace("/","%2F")}`}async function Kd(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=da({plugin:r,version:n,cacheDir:o,channel:s}),a=ZS(r),l=a.map(p=>da({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await oT(e,l))return i;let d=rT(n,s),c=Ss(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw gh(p,d)}for(let p of[r,...a]){let g=tT(p),f=Ss(u,g);if(!await e.exists(f))throw new Bn("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:da({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await nT(e,o,[r,...a]),i}async function nT(e,t,r){if(e.rename)for(let n of r){let o=Ss(t,uh(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${QS}`)}catch{}}}async function oT(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function ph(e,t,r=$n){let n;try{n=await e.fetchText(qd(r))}catch(s){throw gh(s,r)}let o=Vd(n);return{sameMajor:sT(o,t),newest:zd(o)}}function Vd(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 sT(e,t){let r=Hd(t);if(r===null)return null;let n=null;for(let o of e)Hd(o)===r&&(n===null||fh(o,n)>0)&&(n=o);return n}function zd(e){let t=null;for(let r of e){let n=String(r).trim();Hd(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||fh(n,t)>0)&&(t=n)}return t}function Hd(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function fh(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 gh(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Bn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Bn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Bn("network",`failed to resolve ${t}: ${r}`,e)}function Ss(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}zr();var mh={async materialize(e,t){await hh(t,{recursive:!0});let r=aT("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 Jd(t,"node_modules",...$n.split("/"))},async readFile(e){return new Uint8Array(await uT(e))},async writeFile(e,t){await hh(gT(e),{recursive:!0}),await fT(e,t)},async exists(e){return dT(e)},sha256(e){return lT("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 pT(e,t)}},hT="redskilled";function mT(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Jd(e.HOME||iT(),".cache");return Jd(t,"red-skills","bundles")}var bT=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function yT(e,t){if(Ud(e.version))return e.version.trim();let r=e.listCacheDir??RT,n=kT(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??mh).fetchText(qd());return zd(Vd(s))}catch{return null}}function kT(e,t){let r=null;for(let n of e){let o=bT.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||wT(s,r)>0)&&(r=s)}return r}function wT(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 RT(e){try{return cT(e)}catch{return[]}}async function _T(e={},t={},r={}){let n=un(e,t);if(Ar(n))return n;let o=r.env??t.env??process.env,s=mT(o),i=await yT(r,s);if(i===null)return n;try{await Kd(r.bundleIO??mh,{plugin:hT,version:i,cacheDir:s})}catch{return n}return un(e,t)}async function bh(e={},t={},r={}){let n=await _T(e,t,r);if(Ar(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(zr(),ch));throw new o(n)}var Po=3e5,yh=1e4,kh=6e4,wh=15e3,Yd=3e4,Rh=Yd*2,_h=6e4,Ts=16;function xh(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill"||e.event==="worker-death"&&e.exit_code===0)return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=!r&&!n&&e.signal!=null,s=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,i=t.startedAt==null?null:Date.parse(t.startedAt),a=Date.parse(e.ts),l=i!=null&&Number.isFinite(i)&&Number.isFinite(a)?Math.max(0,a-i)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":o?"user-signal":"unknown",confidence:r||n||o?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n||o?[s]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${s}`],project_label:e.project_label,...l===void 0?{}:{uptime_s:l},detail:t.refusal??e.detail,observed_exit:e.exit_code!=null||e.signal!=null}}function Qd(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var Eh="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as H0}from"node:crypto";import{mkdir as j1,rm as B1}from"node:fs/promises";import{dirname as $1}from"node:path";import{randomUUID as vh}from"node:crypto";import{rm as xT}from"node:fs/promises";import{connect as ET,createServer as vT}from"node:net";var zt=class extends Error{constructor(r,n){super(`a redskilled daemon already owns ${JSON.stringify(r)}`);this.socketPath=r;this.lease=n;this.name="RedskilledAlreadyRunningError"}};async function Xd(e,t=250){return await new Promise(r=>{let n=ET(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 Sh(e,t){for(let r=0;r<2;r++){let n=vT();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 Xd(e)!=="unowned")throw new zt(e);if(await t?.())throw new zt(e);await xT(e,{force:!0})}}throw new zt(e)}async function Jt(e,t=250){try{return(await oa({socketPath:e,timeoutMs:t},{id:vh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Th(e,t){nh(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??vh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Mh(e){return{generated_at:e.now,hour:Ah("hour",36e5,e),day:Ah("day",864e5,e),history_48h:ST(e)}}function ST(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=TT(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:Ph(i),tickets_per_hour:Ph(l)}}function TT(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 Ph(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Nn(e,t,r){let n=pn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=pn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function Ah(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&&Oh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>pn(u.ts)).filter(u=>u!=null&&Oh(u,o,n)),l=Ch(i,u=>u.tokens,"tokens",s),d=Ch(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:PT(a.length,t,s),runner_share:Dh("runner",i,u=>u.runner,s),model_share:Dh("model",i,u=>u.model,s),unavailable:c}}function Ch(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 PT(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 Dh(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 Oh(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 Lh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Ih(t.hour)&&Ih(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&&Fh(t.tokens_per_hour)&&Fh(t.tickets_per_hour)}function Fh(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 Ih(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"&&Zd(t.tokens_per_min)&&Zd(t.tools_per_min)&&Zd(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Zd(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 jh(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Nn([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function Bh(e,t){return Nn(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as Gh,totalmem as DT}from"node:os";function Ps(e){if(e.applied_budget!=null)return e.applied_budget;let t=e.budget??{};return t.memory_max==null&&t.memory_high==null&&e.memory_ceiling!=null?{...t,memory_max:e.memory_ceiling}:t}function $h(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Ps(d),u=!1;for(let[p,g]of[[c.memory_high,f=>r+=f],[c.memory_max,f=>n+=f]]){if(p==null)continue;let f=Ao(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:CT(e.length,n,a,l)}}function CT(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 Ao(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 Nh(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 Wh="REDSKILLED_MEMORY_CEILING",tc="REDSKILLED_WORKER_CEILING",Kh="REDSKILLED_VALIDATION_CEILING",Hh="REDSKILLED_INTERACTIVE_RESERVATION",As=1,Uh=.7,OT=2*1024**3,FT=2;function Vh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Ao(t)}function ua(e){let t=0,r=[];for(let n of e){let o=Vh(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 zh(e){let{ceiling:t}=e,r=ua(e.workers),n=Vh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??As),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function 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=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 (${tc} 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=DT(),r={}){let n=ec(r.flags?.memoryCeiling,e[Wh],r.config?.memoryCeiling),o=ec(r.flags?.workerCeiling,e[tc],r.config?.workerCeiling),s=ec(r.flags?.validationCeiling,e[Kh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Hh]??"").trim(),d=Yh(a),c=l===""?As:LT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!IT(a)&&(ca(`redskilled: ${rc(o)} ${tc}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=MT(i,t);if(p!==void 0)return qh({memory_bytes:p,worker_count:d,interactive_reservation:c??As,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Gh());ca(`redskilled: ${rc(n)} ${Wh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Uh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&ca(`redskilled: ${Hh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${As} Worker(s) instead.`),qh({memory_bytes:Math.floor(t*Uh),worker_count:d,interactive_reservation:c??As,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Gh())}function qh(e,t,r){if(t!==void 0){let i=Yh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};ca(`redskilled: ${rc(t)} ${Kh}=${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)/FT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/OT)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function ec(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 rc(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function IT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var ca=e=>process.stderr.write(`${e}
|
|
61
|
+
`);function MT(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)):Ao(e)??void 0}function Yh(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 LT(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as jT,mkdir as BT,open as $T,readFile as NT,rename as GT,rm as WT,stat as Zh,truncate as Qh,writeFile as HT}from"node:fs/promises";import{dirname as UT}from"node:path";var qT=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"];var KT=["demand-refusal","daemon-stop"],em="redskilled.log.toonl",VT=4*1024*1024;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 zT="daemon:";function JT(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${zT}${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 YT(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 tm(e,t={}){let r=t.maxBytes??VT,n=yt({trailer:!1}),o=Promise.resolve();async function s(i){let a=o.then(async()=>{await BT(UT(e),{recursive:!0,mode:448}),await ZT(e),await jT(e,n.push(nm(i)),{encoding:"utf8",mode:384}),(await Zh(e)).size>r&&(await QT(e,r),n=yt({trailer:!1}))});return o=a.catch(()=>{}),await a,i}return{path:e,record:i=>s(fa(i)),recordWorker:i=>s(fa(i)),recordDemandRefusal:i=>s(YT(i)),recordDaemonStop:i=>s(JT(i)),read:()=>rm(e),flush:async()=>{await o}}}async function QT(e,t){let r=await rm(e),n=XT(r,t),o=`${e}.rotate-${process.pid}`;try{await HT(o,nc(n),{encoding:"utf8",mode:384}),await GT(o,e)}finally{await WT(o,{force:!0})}}function XT(e,t){let r=new Set(oc(e).map(l=>l.worker_id)),n=new Set;for(let l=e.length-1;l>=0&&r.size>0;l-=1){let d=e[l];d.kind!=="worker-birth"||!r.has(d.worker_id)||(n.add(l),r.delete(d.worker_id))}let o=e.map((l,d)=>d).filter(l=>!n.has(l)),s=0,i=o.length;for(;s<i;){let l=Math.floor((s+i)/2),d=Xh(e,n,o.slice(l));Buffer.byteLength(nc(d))<=t?i=l:s=l+1}let a=Xh(e,n,o.slice(s));if(Buffer.byteLength(nc(a))>t)throw new Error(`redskilled event-lane baseline exceeds its ${t}-byte ceiling`);return a}function Xh(e,t,r){let n=new Set([...t,...r]);return e.filter((o,s)=>n.has(s))}function nc(e){if(e.length===0)return"";let t=yt({trailer:!1});return e.map(r=>t.push(nm(r))).join("")}async function ZT(e){let t;try{t=(await Zh(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await $T(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 rm(e){let t;try{t=await NT(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return eP(t)}function eP(e){let t=e.split(`
|
|
62
|
+
`);return t.pop(),t.length===0?[]:Tr(`${t.join(`
|
|
63
63
|
`)}
|
|
64
|
-
`).filter(HT).map(UT)}function Yh(e){let t=new Map;for(let r of e)r.kind==="daemon-stop"||r.kind==="demand-refusal"||(r.kind==="worker-birth"?t.set(r.worker_id,GT(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function GT(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function WT(e){return{...e}}function HT(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...FT,...IT].includes(t)}function UT(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function Qh(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target),d)-a);if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,y=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:y,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let h=0;h<y;h+=1)(s[h]??(s[h]=[])).push({project_label:i.project_label,index:a+h,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Xh(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Zh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var Cs={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function em(e,t,r){if(t>=6e4)return Cs;let n=e.shortLifeStreak+1;return!(e.haltUntilMs!=null||e.probeWorkerId!=null)&&n<3?{shortLifeStreak:n,haltUntilMs:null,openedAtMs:null,probeWorkerId:null}:{shortLifeStreak:n,haltUntilMs:r+6e5,openedAtMs:r,probeWorkerId:null}}function tm(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function tc(){return Cs}function qT(e,t,r){if(t.haltUntilMs==null||t.openedAtMs==null)return null;let n=r>=t.haltUntilMs;return{name:"project-birth-breaker",project_label:e,state:n?"half-open":"open",opened_at:new Date(t.openedAtMs).toISOString(),reason:`${t.shortLifeStreak} Workers from this project died before surviving 60000ms`,closes:n?t.probeWorkerId==null?"the next demand tick admits one probe Worker; surviving the short-life window closes the latch":`probe Worker ${JSON.stringify(t.probeWorkerId)} surviving 60000ms closes the latch; a fast death re-opens it with a fresh cooldown`:`the cooldown ends at ${new Date(t.haltUntilMs).toISOString()}, then one probe Worker is admitted; surviving the short-life window closes the latch`,probe_worker_id:t.probeWorkerId,repair:{tool:"project_reset",args:{latch:"project-birth-breaker"},why:"clear the project's birth-breaker history and allow the next demand tick to birth normally"}}}function rm(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>qT(r,n,t)).filter(r=>r!=null)}function om(e){let t=e.workers.map(KT),r=[...new Set([...t.map(o=>o.project_label),...e.projects??[]])].filter(o=>o!=="").sort(),n=t.filter(o=>o.survives).map(o=>o.worker_id);return{version:1,running:!0,stopped:!0,reason:e.reason,socket_path:e.socketPath,daemon_version:e.daemonVersion,pid:e.pid,holding:{workers:t,projects:r},surviving:n,detail:zT({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function sm(e){return{version:1,running:!1,stopped:!1,reason:"not-running",socket_path:e,daemon_version:null,pid:null,holding:{workers:[],projects:[]},surviving:[],detail:`no redskilled daemon is answering on ${JSON.stringify(e)}, so there was nothing to stop`}}function KT(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,survives:!0}}function VT(e){return e==="requested"?"an operator asked for it":e==="signal"?"the daemon was signalled":e==="idle"?"the daemon was idle and held nothing":e==="replaced"?"a newer published bundle is taking the session over":"no daemon was running"}function zT(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${VT(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${nm(e.held,"Worker")} across ${nm(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 a Worker is an init-system unit, so this is a restart and not an evacuation`}function nm(e,t){return`${e} ${t}${e===1?"":"s"}`}function rc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as JT,mkdir as YT,readFile as QT,rm as XT,writeFile as ZT}from"node:fs/promises";import{dirname as im,join as cm}from"node:path";import{tmpdir as am}from"node:os";var eP="redskilled.machine.claim.toon",oc="REDSKILLED_MACHINE_DIR",tP=8,Jr=class extends Error{constructor(r,n,o){super(nP(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},lm;function fa(){return lm??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},lm}function rP(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[oc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||am():am();return cm(o,`redskilled-${e.machineIdHash}`)}function Ao(e){return cm(rP(e),eP)}function Ds(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){let l;try{l=await QT(e,"utf8")}catch(c){if(c.code==="ENOENT"||nc(c))return;throw c}let d=sP(l);return iP(d)?d:void 0}function i(l,d){return{version:1,scope:"machine",pid:l.pid,start_time:l.startTime,uid:l.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}async function a(){try{return await XT(e,{force:!0}),!0}catch(l){if(nc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await YT(im(e),{recursive:!0,mode:1023})!=null&&await JT(im(e),1023).catch(()=>{});let c=!1;for(let u=0;u<tP;u+=1){let p=i(l,n());try{return await ZT(e,oP(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(nc(f))return{claimed:!1,reason:"stale-claim-not-reapable"};throw f}}let g=await s();if(!g){if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable"};c=!0;continue}if(dm(g,l,t.socketPath))return{claimed:!0,reaped:c,claim:g};if(await o(g.pid))return{claimed:!1,reason:"held",claim:g};if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable",claim:g};c=!0}return{claimed:!1,reason:"contended"}},async release(l){let d=await s();return!d||!dm(d,l,t.socketPath)?!1:await a()}}}function um(e,t,r){return{kind:"machine",claim_path:e,owner_uid:r.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath}}function pm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.kind==="machine"&&typeof t.claim_path=="string"&&typeof t.owner_uid=="number"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&typeof t.socket_path=="string"}function nP(e,t,r){let n=r==null?"":` \u2014 held by pid ${r.pid} (uid ${r.uid}) on socket ${JSON.stringify(r.socket_path)}`;return t==="held"?`this machine already has a redskilled daemon${n}; a second one would void the host budget, so none was started. Reach that daemon, or stop it before starting another.`:t==="stale-claim-not-reapable"?`the redskilled machine claim ${JSON.stringify(e)} is stale and cannot be removed by this user${n}; remove it as its owner, then start again. No second daemon was started.`:`the redskilled machine claim ${JSON.stringify(e)} changed hands repeatedly; no daemon was started.`}function nc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function dm(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function oP(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
65
|
-
`}function sP(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function iP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.scope!=="machine"||!Number.isInteger(t.pid)||t.pid<=0||!Number.isInteger(t.uid))return!1;for(let r of["start_time","machine_id_hash","session_key_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}var aP=["worker_id","slot","workspace_path","log_path"],ga=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${aP.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},fm=/\{\{([a-z_]+)\}\}/g;function lP(e,t){let r=(i,a)=>i.replace(fm,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new ga(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function gm(e,t){if(!(e==null||e.trim()===""))return e.replace(fm,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ga(n,"the log path")}})}function hm(e,t,r){let n=lP(e,t),o=n.log_path??t.log_path,[s,...i]=n.argv;if(s===void 0||s==="")throw new Error(`redskilled cannot start a Worker for project ${JSON.stringify(r.project_label)}: its launch expanded to an argv with no command`);return{worker_id:t.worker_id,project_label:r.project_label,workspace_path:t.workspace_path,...o==null||o===""?{}:{log_path:o},command:s,args:i,env:n.env}}function sc(e,t){if(!Array.isArray(e)||e.length===0)throw new Error(`redskilled needs an argv to register project ${JSON.stringify(t)}: a registration with nothing to run is a project the host could never start a Worker for`);return e.map((r,n)=>{if(typeof r!="string"||r==="")throw new Error(`redskilled needs every word of an argv to be a non-empty string, and word ${n} of project ${JSON.stringify(t)} is not`);return r})}function ic(e,t){if(e!=null){if(typeof e!="string"||e.trim()==="")throw new Error(`redskilled needs a declared log path to be a non-empty string to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}: a project that declares an empty path states a Worker whose output no surface can ever show, which reads as a Worker with nothing to say`);return e}}function ac(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}var dP=3e5,cP=.5,lc=class extends Error{constructor(r){super(`redskilled already holds a registration for project ${JSON.stringify(r.project_label)}, registered at ${r.registered_at} for a target of ${r.target} and standing until ${r.renew_by}: a project contributes one registration, so a second one is refused rather than silently replacing the first`);this.held=r;this.name="RedskilledProjectRegisteredError"}};function mm(e,t){if(t.held!=null)throw new lc(t.held);let r=Os(e.project_label,"a project label"),n=Os(e.selector,"a selector"),o=gP(e.queue_poll,r),s=sc(e.argv,r),i=ac(e.env,r),a=ic(e.log_path,r),l=Os(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),d=e.trunk==null?void 0:{remote:Os(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Os(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let c=e.renew_within_ms??dP;if(!Number.isFinite(c)||c<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let u=Date.parse(t.now);if(!Number.isFinite(u))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:l,...d==null?{}:{trunk:d},env:i,...a==null?{}:{log_path:a},target:e.target,registered_at:new Date(u).toISOString(),renew_within_ms:c,renew_by:new Date(u+c).toISOString(),renewed_at:new Date(u).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var Gn=class extends Error{constructor(r,n={kind:"never"}){super(uP(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function uP(e,t){let r=JSON.stringify(e);if(t.kind==="lapsed"){let n=t.registered_at==null?"":` (registered ${t.registered_at})`;return`redskilled holds no registration for project ${r} to renew: it lapsed at ${t.at}${n}; renewal stopped \u2014 find why before registering it again`}return t.kind==="stopped"?`redskilled holds no registration for project ${r} to renew: it was stopped at ${t.at}; this is the requested state, so there is nothing to renew`:t.kind==="orphaned"?`redskilled holds no registration for project ${r} to renew: it is registered on a daemon this socket does not reach \u2014 do not register it again`:`redskilled holds no registration for project ${r} to renew: it was never registered on this host; register it first, stating the selector, the argv and the target`}function bm(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to date a renewal, not ${JSON.stringify(t.now)}`);let n=t.renew_within_ms??e.renew_within_ms;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled needs a positive renewal window to renew project ${JSON.stringify(e.project_label)}, not ${JSON.stringify(t.renew_within_ms)}`);let o=t.launch==null?{env:e.env??{},launch_revision:e.launch_revision??0}:{argv:sc(t.launch.argv,e.project_label),env:ac(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:ic(t.launch.log_path,e.project_label),{log_path:i,...a}=e;return{...a,...s==null?{}:{log_path:s},...o,renew_within_ms:n,renewed_at:new Date(r).toISOString(),renew_by:new Date(r+n).toISOString(),renewals:e.renewals+1,session_renewals:(e.session_renewals??e.renewals)+1}}function dc(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to sustain a registration, not ${JSON.stringify(t.now)}`);let n=JSON.stringify(e.project_label),o=Math.max(0,t.liveWorkers??0),s=t.queue,i=s!=null&&s.outcome==="counted"?s.depth:null,a=i!=null&&i>0?"open-work":o>0?"live-worker":null;if(a==null){let l=i===0?"drained":"uncounted";return{registration:e,verdict:l,detail:l==="drained"?`project ${n} has nothing queued and no Worker running, so nothing holds its registration up and it lapses at ${e.renew_by}`:`no poll counted project ${n}, and an uncounted queue never sustains a registration \u2014 it stands on its own deadline of ${e.renew_by}`}}return{registration:{...e,renew_by:new Date(r+e.renew_within_ms).toISOString(),sustained_at:new Date(r).toISOString(),sustains:(e.sustains??0)+1,sustained_by:a,renewals:e.renewals+1,session_renewals:e.session_renewals??e.renewals},verdict:a,detail:a==="open-work"?`project ${n} has ${i} item(s) queued, so its registration stands past its window`:`project ${n} holds ${o} Worker(s), so its registration stands past its window`}}function pP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function ym(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*cP;if(n(r))return"renewing";let o=e.sustained_at==null?Number.NaN:Date.parse(e.sustained_at);return n(o)?"self-renewing":"running-on"}function km(e,t){let r=[],n=[];for(let o of e)(pP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Fs(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.project_label=="string"&&typeof t.selector=="string"&&(t.queue_poll===void 0||wm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||fP(t.trunk))&&Number.isInteger(t.target)&&typeof t.registered_at=="string"&&typeof t.renew_within_ms=="number"&&typeof t.renew_by=="string"&&(t.renewed_at===void 0||typeof t.renewed_at=="string")&&(t.renewals===void 0||Number.isInteger(t.renewals))&&(t.session_renewals===void 0||Number.isInteger(t.session_renewals))&&(t.env===void 0||hP(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function fP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.remote=="string"&&t.remote.trim()!==""&&typeof t.branch=="string"&&t.branch.trim()!==""}function gP(e,t){if(e!==void 0){if(!wm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function wm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(r=>typeof r=="string"&&r!=="")&&(t.creator===void 0||typeof t.creator=="string")}function hP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Os(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var mP={ping:"host-read","host-state":"host-read","statusline-payload":"host-read",shutdown:"daemon-life","worker-start":"project-write","worker-stop":"project-write","worker-recycle":"project-write","worker-steer":"project-write","worker-heartbeat":"project-write","project-register":"project-write","project-renew":"project-write","project-reset":"project-write","project-deregister":"project-write"};function Rm(e){return`worker-${e}`}function _m(e){let t=mP[e.op]??"project-write",r=e.sessionProject??null,n=e.targetProject??null,o={version:1,op:e.op,reach:t,session_project:r,target_project:n};return t==="host-read"?{...o,permitted:!0,verdict:"permitted-host-read",reason:`redskilled permitted ${e.op}: a session reads the whole host, whichever project it was started in`}:t==="daemon-life"?{...o,permitted:!0,verdict:"permitted-daemon-life",reason:`redskilled permitted ${e.op}: it acts on the daemon's own process, not on any project's Workers`}:r==null||r===""?{...o,permitted:!0,verdict:"permitted-unattributed",reason:`redskilled permitted ${e.op}: the session named no project of its own, so there is nothing to refuse it against`}:n!=null&&n===r?{...o,permitted:!0,verdict:"permitted-own-project",reason:`redskilled permitted ${e.op}: the target belongs to project ${JSON.stringify(r)}, which is this session's own`}:{...o,permitted:!1,verdict:"refused-cross-project",reason:`redskilled refused ${e.op} from a session in project ${JSON.stringify(r)}: ${n==null?"it names no Worker of that project":`the target belongs to project ${JSON.stringify(n)}`}. A session reads the whole host and writes only its own project.`}}function xm(e){return e==="single-object"?"rest":"graphql"}function Em(e,t){return e==="stable-poll"?"rest":xm(t)}function Jt(e){return{none:e}}function st(e,t,r,n,o,s,i){let a=typeof o=="string"?{fallback:o}:{fallback:null,noFallbackBecause:o.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??Em(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ot(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var vm=[st("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),st("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),st("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),st("run view","single-object","stable-poll","rest",Jt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",Jt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),st("pr diff","single-object","one-shot","rest",Jt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),st("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),st("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),st("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),st("release list","multi-node","stable-poll","rest",Jt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",Jt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),st("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),st("issue list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),st("pr list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),st("search issues","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search prs","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search repos","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("api graphql","multi-node","one-shot","graphql",Jt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),st("api rest","single-object","one-shot","rest",Jt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ot("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ot("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ot("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ot("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ot("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ot("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ot("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ot("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ot("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ot("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ot("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ot("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ot("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ot("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],bP=new Map(vm.map(e=>[e.key,e]));function Sm(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function cc(e){let t=Sm(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var ha=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=cc(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}};function Tm(e){return bP.get(cc(e))??null}function Pm(e){let t=Tm(e);if(!t)throw new ha(e);return t}function uc(e){return Pm(e).surface}import{appendFile as yP,mkdir as kP,readFile as wP}from"node:fs/promises";import{dirname as RP}from"node:path";function ma(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=_P(n.operation,n.cost,n.observedAt??t(),n.actor),s=Lt().push(EP(o));return r=r.then(async()=>{await kP(RP(e.path),{recursive:!0}),await yP(e.path,s,"utf8")}),r},async report(n){await r;let o=pc(n.from,"report window start"),s=pc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await xP(e.path),a=new Map;for(let d of i.observations){let c=Date.parse(d.observed_at);if(c<o||c>=s||n.pool!==void 0&&d.pool!==n.pool)continue;let u=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,p=a.get(u);a.set(u,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+d.cost})}let l=[...a.values()].sort((d,c)=>c.cost-d.cost||c.count-d.count||d.operation_key.localeCompare(c.operation_key)||d.pool.localeCompare(c.pool)||(d.actor??"").localeCompare(c.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:l.reduce((d,c)=>d+c.count,0),total_cost:l.reduce((d,c)=>d+c.cost,0),operations:l,unreadable_records:i.unreadable}}}}function _P(e,t,r,n){if(pc(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function xP(e){let t;try{t=await wP(e,"utf8")}catch(s){if(TP(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
66
|
-
`);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=
|
|
64
|
+
`).filter(rP).map(nP)}function oc(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,tP(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function tP(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 nm(e){return{...e}}function rP(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...qT,...KT].includes(t)}function nP(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 om(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 sm(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function im(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var Cs={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function am(e,t,r){if(t>=6e4)return Cs;let n=e.shortLifeStreak+1;return!(e.haltUntilMs!=null||e.probeWorkerId!=null)&&n<3?{shortLifeStreak:n,haltUntilMs:null,openedAtMs:null,probeWorkerId:null}:{shortLifeStreak:n,haltUntilMs:r+6e5,openedAtMs:r,probeWorkerId:null}}function lm(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function sc(){return Cs}function oP(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 dm(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>oP(r,n,t)).filter(r=>r!=null)}function um(e){let t=e.workers.map(sP),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:aP({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function pm(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 sP(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 iP(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 aP(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${iP(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${cm(e.held,"Worker")} across ${cm(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 cm(e,t){return`${e} ${t}${e===1?"":"s"}`}function ic(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 lP,mkdir as dP,readFile as cP,rm as uP,writeFile as pP}from"node:fs/promises";import{dirname as fm,join as bm}from"node:path";import{tmpdir as gm}from"node:os";var fP="redskilled.machine.claim.toon",lc="REDSKILLED_MACHINE_DIR",gP=8,Jr=class extends Error{constructor(r,n,o){super(mP(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},hm;function ga(){return hm??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},hm}function hP(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[lc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||gm():gm();return bm(o,`redskilled-${e.machineIdHash}`)}function Co(e){return bm(hP(e),fP)}function Ds(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){let l;try{l=await cP(e,"utf8")}catch(c){if(c.code==="ENOENT"||ac(c))return;throw c}let d=yP(l);return kP(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 uP(e,{force:!0}),!0}catch(l){if(ac(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await dP(fm(e),{recursive:!0,mode:1023})!=null&&await lP(fm(e),1023).catch(()=>{});let c=!1;for(let u=0;u<gP;u+=1){let p=i(l,n());try{return await pP(e,bP(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(ac(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(mm(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||!mm(d,l,t.socketPath)?!1:await a()}}}function ym(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 km(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 mP(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 ac(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function mm(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function bP(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
65
|
+
`}function yP(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ot(t)}catch{return null}}}function kP(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 wP=["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 ${wP.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},wm=/\{\{([a-z_]+)\}\}/g;function RP(e,t){let r=(i,a)=>i.replace(wm,(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 Rm(e,t){if(!(e==null||e.trim()===""))return e.replace(wm,(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 _m(e,t,r){let n=RP(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 dc(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 cc(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 uc(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 _P=3e5,xP=.5,pc=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 xm(e,t){if(t.held!=null)throw new pc(t.held);let r=Os(e.project_label,"a project label"),n=Os(e.selector,"a selector"),o=TP(e.queue_poll,r),s=dc(e.argv,r),i=uc(e.env,r),a=cc(e.log_path,r),l=Os(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),d=e.trunk==null?void 0:{remote:Os(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Os(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let c=e.renew_within_ms??_P;if(!Number.isFinite(c)||c<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let u=Date.parse(t.now);if(!Number.isFinite(u))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:l,...d==null?{}:{trunk:d},env:i,...a==null?{}:{log_path:a},target:e.target,registered_at:new Date(u).toISOString(),renew_within_ms:c,renew_by:new Date(u+c).toISOString(),renewed_at:new Date(u).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var Gn=class extends Error{constructor(r,n={kind:"never"}){super(EP(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function EP(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 Em(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:dc(t.launch.argv,e.project_label),env:uc(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:cc(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 fc(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 vP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function vm(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*xP;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 Sm(e,t){let r=[],n=[];for(let o of e)(vP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Fs(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.project_label=="string"&&typeof t.selector=="string"&&(t.queue_poll===void 0||Tm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||SP(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||PP(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 SP(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 TP(e,t){if(e!==void 0){if(!Tm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function Tm(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 PP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Os(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var AP={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 Pm(e){return`worker-${e}`}function Am(e){let t=AP[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 Cm(e){return e==="single-object"?"rest":"graphql"}function Dm(e,t){return e==="stable-poll"?"rest":Cm(t)}function Yt(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??Dm(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ft(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 Om=[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",Yt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",Yt("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",Yt("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",Yt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",Yt("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",Yt("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",Yt("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",Yt("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",Yt("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",Yt("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",Yt("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",Yt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ft("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ft("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ft("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ft("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ft("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ft("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ft("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ft("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ft("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ft("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ft("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ft("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ft("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ft("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],CP=new Map(Om.map(e=>[e.key,e]));function Fm(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 gc(e){let t=Fm(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=gc(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 Im(e){return CP.get(gc(e))??null}function Mm(e){let t=Im(e);if(!t)throw new ma(e);return t}function hc(e){return Mm(e).surface}import{appendFile as DP,mkdir as OP,readFile as FP}from"node:fs/promises";import{dirname as IP}from"node:path";function ba(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=MP(n.operation,n.cost,n.observedAt??t(),n.actor),s=yt().push(jP(o));return r=r.then(async()=>{await OP(IP(e.path),{recursive:!0}),await DP(e.path,s,"utf8")}),r},async report(n){await r;let o=mc(n.from,"report window start"),s=mc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await LP(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 MP(e,t,r,n){if(mc(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 LP(e){let t;try{t=await FP(e,"utf8")}catch(s){if(NP(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=Tr(`${i}
|
|
67
67
|
${a}
|
|
68
|
-
`)[0]}catch{n+=1,s+=1;continue}if(!
|
|
68
|
+
`)[0]}catch{n+=1,s+=1;continue}if(!BP(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function jP(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 BP(e){return $P(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 mc(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 $P(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function NP(e){return e instanceof Error&&"code"in e}var jm=Jl(kc(),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 GP="0.0.0-development";function WP(e){return e.request!==void 0}async function Lm(e,t,r,n){if(!WP(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 HP(e,t,r,n){let o=new jm.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(UP.bind(null,e,t,r),n)}async function UP(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 Lm(e,t,s,n)}return o}function wc(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",Lm.bind(null,r,n)),e.hook.wrap("request",HP.bind(null,r,n))),n}wc.VERSION=GP;var $m=Jl(kc(),1),qP="0.0.0-development",Rc=()=>Promise.resolve();function KP(e,t,r){return e.retryLimiter.schedule(VP,e,t,r)}async function VP(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=zP(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,Rc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,Rc),i&&await e.search.key(e.id).schedule(d,Rc);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 zP(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 JP=["/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 YP(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var Bm=YP(JP),Nm=Bm.test.bind(Bm),ar={},QP=function(e,t){ar.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ar.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ar.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ar.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ar.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function ya(e,t){let{enabled:r=!0,Bottleneck:n=$m.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:Nm,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,
|
|
79
|
-
`+n.repeat(u));let h=f.val[f.index],R=i(f.val,String(f.index),h);if(
|
|
80
|
-
`+n.repeat(u)+gn(R)+": "):c.push(gn(R)+":");let M=D!==null&&typeof D=="object",N=
|
|
81
|
-
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},
|
|
78
|
+
`);let d=!1,c=()=>{if(d)return;d=!0,ar.global==null&&QP(n,a),l.global=l.global??ar.global,l.auth=l.auth??ar.auth,l.search=l.search??ar.search,l.write=l.write??ar.write,l.notifications=l.notifications??ar.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(),KP(l,u,p))),{}}ya.VERSION=qP;ya.triggersNotification=Nm;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 Gm(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 Wm(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 Hm=Function.bind,Um=Hm.bind(Hm);function qm(e,t,r){let n=Um(Wm,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]=Um(Gm,null).apply(null,s)})}function XP(){let e=Symbol("Singular"),t={registry:{}},r=ka.bind(null,t,e);return qm(r,t,e),r}function ZP(){let e={registry:{}},t=ka.bind(null,e);return qm(t,e),t}var Km={Singular:XP,Collection:ZP};var eA="0.0.0-development",tA=`octokit-endpoint.js/${eA} ${fn()}`,rA={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":tA},mediaType:{format:""}};function nA(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function oA(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 Jm(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{oA(t[n])?n in e?r[n]=Jm(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Vm(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function xc(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=nA(r.headers),Vm(r),Vm(r.headers);let n=Jm(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 sA(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 iA=/\{[^{}}]+\}/g;function aA(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function lA(e){let t=e.match(iA);return t?t.map(aA).reduce((r,n)=>r.concat(n),[]):[]}function zm(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Ym(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 Oo(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Is(e,t,r){return t=e==="+"||e==="#"?Ym(t):Oo(t),r?Oo(r)+"="+t:t}function Do(e){return e!=null}function _c(e){return e===";"||e==="&"||e==="?"}function dA(e,t,r,n){var o=e[r],s=[];if(Do(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||typeof o=="boolean")o=o.toString(),n&&n!=="*"&&(o=o.substring(0,parseInt(n,10))),s.push(Is(t,o,_c(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Do).forEach(function(i){s.push(Is(t,i,_c(t)?r:""))}):Object.keys(o).forEach(function(i){Do(o[i])&&s.push(Is(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Do).forEach(function(a){i.push(Is(t,a))}):Object.keys(o).forEach(function(a){Do(o[a])&&(i.push(Oo(a)),i.push(Is(t,o[a].toString())))}),_c(t)?s.push(Oo(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Do(o)&&s.push(Oo(r)):o===""&&(t==="&"||t==="?")?s.push(Oo(r)+"="):o===""&&s.push("");return s}function cA(e){return{expand:uA.bind(null,e)}}function uA(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(dA(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 Ym(s)}),e==="/"?e:e.replace(/\/$/,"")}function Qm(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=zm(e,["method","baseUrl","url","headers","request","mediaType"]),i=lA(r);r=cA(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=zm(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=sA(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 pA(e,t,r){return Qm(xc(e,t,r))}function Xm(e,t){let r=xc(e,t),n=pA.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Xm.bind(null,r),merge:xc.bind(null,r),parse:Qm})}var Zm=Xm(null,rA);var bb=Jl(ib(),1);var _A=/^-?\d+$/,_a=/^-?\d+n+$/,gn=JSON.stringify,Tc=JSON.parse,ub=/^-?\d+n$/,ab=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,lb=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Pc=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Ac=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",xA=(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(Pc(a))return;let l=a===null||typeof a!="object",d=Ac(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(Pc(R))c.push("null"),f.first=!1,f.index++;else{let T=R!==null&&typeof R=="object",$=Ac(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(Pc(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=Ac(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("")},pb=(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(ab,"$1$2$3").replace(lb,"$1$2$3"):gn(e,t,r)}catch(n){if(n instanceof RangeError){let o=xA(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(ab,"$1$2$3").replace(lb,"$1$2$3")}throw n}},Ra=new Map,EA=()=>{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}},vA=(e,t,r,n)=>typeof t=="string"&&ub.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,SA=(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&&_A.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),fb=Number.MAX_SAFE_INTEGER.toString(),db=fb.length,TA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,PA=/^"-?\d+n+"$/,AA=(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"&&(ub.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[""]},cb=e=>e.replace(TA,(t,r,n,o)=>{let s=t[0]==='"';if(s&&PA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<db||r.length===db&&r<=fb);return s||a||l?t:'"'+t+'n"'}),gb=(e,t)=>{if(!e)return Tc(e,t);try{if(EA())return SA(e,t);let r=cb(e);return Tc(r,(n,o,s)=>vA(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=cb(e),o=Tc(n);return AA(o,t)}throw r}};var CA="10.0.13",DA={headers:{"user-agent":`octokit-request.js/${CA} ${fn()}`}};function OA(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 hb=()=>"";async function mb(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=OA(e.body)||Array.isArray(e.body)?pb(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 Cc(i),new Yr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Cc(i),new Yr(IA(c.data),a,{response:c,request:e});return c.data=n?await Cc(i):i.body,c}async function Cc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(hb);let r=(0,bb.parse)(t);if(FA(r)){let n="";try{return n=await e.text(),gb(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(hb):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function FA(e){return e.type==="application/json"||e.type==="application/scim+json"}function IA(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 Dc(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 mb(r.parse(i));let a=(l,d)=>mb(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:Dc.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Dc.bind(null,r)})}var Ms=Dc(Zm,DA);var MA="0.0.0-development";function LA(e){return`Request failed due to following response errors:
|
|
82
82
|
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
83
|
-
`)}var EA=class extends Error{constructor(e,t,r){super(xA(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},vA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],SA=["query","method","url"],ub=/\/api\/v3\/?$/;function TA(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(SA.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,o=Object.keys(n).reduce((i,a)=>vA.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),s=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return ub.test(s)&&(o.url=s.replace(ub,"/api/graphql")),e(o).then(i=>{if(i.data.errors){let a={};for(let l of Object.keys(i.headers))a[l]=i.headers[l];throw new EA(o,a,i.data)}return i.data.data})}function Pc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>TA(r,o,s),{defaults:Pc.bind(null,r),endpoint:r.endpoint})}var wG=Pc(Ms,{headers:{"user-agent":`octokit-graphql.js/${_A} ${fn()}`},method:"POST",url:"/graphql"});function pb(e){return Pc(e,{method:"POST",url:"/graphql"})}var Ac="(?:[a-zA-Z0-9_-]+)",fb="\\.",gb=new RegExp(`^${Ac}${fb}${Ac}${fb}${Ac}$`),PA=gb.test.bind(gb);async function AA(e){let t=PA(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function CA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function DA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=CA(e),t(o)}var hb=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(AA.bind(null,t),{hook:DA.bind(null,t)})};var Cc="7.0.7";var mb=()=>{},OA=console.warn.bind(console),FA=console.error.bind(console);function IA(e={}){return typeof e.debug!="function"&&(e.debug=mb),typeof e.info!="function"&&(e.info=mb),typeof e.warn!="function"&&(e.warn=OA),typeof e.error!="function"&&(e.error=FA),e}var bb=`octokit-core.js/${Cc} ${fn()}`,_a=class{static VERSION=Cc;static defaults(t){return class extends this{constructor(...n){let o=n[0]||{};if(typeof t=="function"){super(t(o));return}super(Object.assign({},t,o,o.userAgent&&t.userAgent?{userAgent:`${o.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(o=>!r.includes(o)))}}constructor(t={}){let r=new $m.Collection,n={baseUrl:Ms.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${bb}`:bb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Ms.defaults(n),this.graphql=pb(this.request).defaults(n),this.log=IA(t.log),this.hook=r,t.authStrategy){let{authStrategy:s,...i}=t,a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=hb(t.auth);r.wrap("request",s.hook),this.auth=s}let o=this.constructor;for(let s=0;s<o.plugins.length;++s)Object.assign(this,o.plugins[s](this,t))}request;graphql;log;hook;auth};var yb="6.0.0";function Dc(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),o=e.request.endpoint.parse(r),s=o.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}Dc.VERSION=yb;var MA="0.0.0-development";function LA(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,o=e.data.total_count,s=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=o,e.data.total_commits=s,e}function Oc(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),o=typeof t=="function"?t:e.request,s=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let l=await o({method:s,url:a,headers:i}),d=LA(l);if(a=((d.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in d.data){let c=new URL(d.url),u=c.searchParams,p=parseInt(u.get("page")||"1",10),g=parseInt(u.get("per_page")||"250",10);p*g<d.data.total_commits&&(u.set("page",String(p+1)),a=c.toString())}return{value:d}}catch(l){if(l.status!==409)throw l;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function kb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),wb(e,[],Oc(e,t,r)[Symbol.asyncIterator](),n)}function wb(e,t,r,n){return r.next().then(o=>{if(o.done)return t;let s=!1;function i(){s=!0}return t=t.concat(n?n(o.value,i):o.value.data),s?t:wb(e,t,r,n)})}var jG=Object.assign(kb,{iterator:Oc});function Fc(e){return{paginate:Object.assign(kb.bind(null,e),{iterator:Oc.bind(null,e)})}}Fc.VERSION=MA;var Ic="17.0.0";var jA={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Rb=jA;var Wn=new Map;for(let[e,t]of Object.entries(Rb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Wn.has(e)||Wn.set(e,new Map),Wn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var BA={has({scope:e},t){return Wn.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Wn.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let o=Wn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=$A(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Mc(e){let t={};for(let r of Wn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},BA);return t}function $A(e,t,r,n,o){let s=e.request.defaults(n);function i(...a){let l=s.endpoint.merge(...a);if(o.mapToData)return l=Object.assign({},l,{data:l[o.mapToData],[o.mapToData]:void 0}),s(l);if(o.renamed){let[d,c]=o.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${d}.${c}()`)}if(o.deprecated&&e.log.warn(o.deprecated),o.renamedParameters){let d=s.endpoint.merge(...a);for(let[c,u]of Object.entries(o.renamedParameters))c in d&&(e.log.warn(`"${c}" parameter is deprecated for "octokit.${t}.${r}()". Use "${u}" instead`),u in d||(d[u]=d[c]),delete d[c]);return s(d)}return s(...a)}return Object.assign(i,s)}function NA(e){return{rest:Mc(e)}}NA.VERSION=Ic;function Lc(e){let t=Mc(e);return{...t,rest:t}}Lc.VERSION=Ic;var _b="22.0.1";var xb=_a.plugin(Dc,Lc,Fc).defaults({userAgent:`octokit-rest.js/${_b}`});function GA(e){return`r${e}`}function Eb(e){if(e.length===0)throw new Error("an aliased single-object query needs at least one read");let t=e[0].kind;if(e.some(s=>s.kind!==t))throw new Error("an aliased single-object query may contain only one object kind");let r={},n=t==="pr"?"pullRequest":"issue";return{query:["query CoalescedSingleObjectReads {",...e.map((s,i)=>{if(!Number.isSafeInteger(s.number)||s.number<=0)throw new Error(`an aliased single-object read needs a positive number, got ${s.number}`);let a=s.selection.trim();if(a==="")throw new Error("an aliased single-object read needs a field selection");let l=GA(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
|
|
83
|
+
`)}var jA=class extends Error{constructor(e,t,r){super(LA(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},BA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],$A=["query","method","url"],yb=/\/api\/v3\/?$/;function NA(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($A.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)=>BA.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 yb.test(s)&&(o.url=s.replace(yb,"/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 jA(o,a,i.data)}return i.data.data})}function Oc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>NA(r,o,s),{defaults:Oc.bind(null,r),endpoint:r.endpoint})}var LG=Oc(Ms,{headers:{"user-agent":`octokit-graphql.js/${MA} ${fn()}`},method:"POST",url:"/graphql"});function kb(e){return Oc(e,{method:"POST",url:"/graphql"})}var Fc="(?:[a-zA-Z0-9_-]+)",wb="\\.",Rb=new RegExp(`^${Fc}${wb}${Fc}${wb}${Fc}$`),GA=Rb.test.bind(Rb);async function WA(e){let t=GA(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 HA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function UA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=HA(e),t(o)}var _b=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(WA.bind(null,t),{hook:UA.bind(null,t)})};var Ic="7.0.7";var xb=()=>{},qA=console.warn.bind(console),KA=console.error.bind(console);function VA(e={}){return typeof e.debug!="function"&&(e.debug=xb),typeof e.info!="function"&&(e.info=xb),typeof e.warn!="function"&&(e.warn=qA),typeof e.error!="function"&&(e.error=KA),e}var Eb=`octokit-core.js/${Ic} ${fn()}`,xa=class{static VERSION=Ic;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 Km.Collection,n={baseUrl:Ms.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${Eb}`:Eb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Ms.defaults(n),this.graphql=kb(this.request).defaults(n),this.log=VA(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=_b(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 vb="6.0.0";function Mc(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})})}Mc.VERSION=vb;var zA="0.0.0-development";function JA(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 Lc(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=JA(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 Sb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Tb(e,[],Lc(e,t,r)[Symbol.asyncIterator](),n)}function Tb(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:Tb(e,t,r,n)})}var ZG=Object.assign(Sb,{iterator:Lc});function jc(e){return{paginate:Object.assign(Sb.bind(null,e),{iterator:Lc.bind(null,e)})}}jc.VERSION=zA;var Bc="17.0.0";var YA={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"]}},Pb=YA;var Wn=new Map;for(let[e,t]of Object.entries(Pb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Wn.has(e)||Wn.set(e,new Map),Wn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var QA={has({scope:e},t){return Wn.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Wn.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let o=Wn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=XA(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function $c(e){let t={};for(let r of Wn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},QA);return t}function XA(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 ZA(e){return{rest:$c(e)}}ZA.VERSION=Bc;function Nc(e){let t=$c(e);return{...t,rest:t}}Nc.VERSION=Bc;var Ab="22.0.1";var Cb=xa.plugin(Mc,Nc,jc).defaults({userAgent:`octokit-rest.js/${Ab}`});function eC(e){return`r${e}`}function Db(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=eC(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 vb(e,t){let r=t!==null&&typeof t=="object"?t:{},n=r.data??r,o=n!==null&&typeof n=="object"?n:{};return Object.entries(e.aliases).map(([s,i])=>{let a=o[s];if(a===null||typeof a!="object")return{read:i,value:null};let l=a.object;return{read:i,value:l!==null&&typeof l=="object"&&!Array.isArray(l)?l:null}})}var WA=xb.plugin(mc,ba);function Sb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function Tb(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}var Oo=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}};function jc(e){let t=e.etags??Sb(),r=new WA({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async c=>{let u=t.get(c.cacheKey),p={...c.parameters??{}},g=hn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),y=f.headers,h=xa(y,"etag");return h!==void 0&&t.set(c.cacheKey,{etag:h,data:f.data,headers:y}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:y,quotaFree:!1}}catch(f){if(Ls(f)===304){if(u===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(c.cacheKey)} without a held answer to reuse`,{cause:f});let y=Pb(f),h={...u.headers,...y},R=xa(h,"etag")??u.etag;return t.set(c.cacheKey,{etag:R,data:u.data,headers:h}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:h,quotaFree:!0}}throw Ls(f)===401?new Oo({cause:f}):f}},o=new Map,s=!1,i=async c=>{let u=c.input,p=u.kind==="pr";try{let g=await n({cacheKey:u.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:u.owner,repo:u.repo,...p?{pull_number:u.number}:{issue_number:u.number}},operation:u.operation,actor:u.actor});c.resolve({data:u.project?u.project(g.data,"rest"):g.data,surface:"rest",quotaFree:g.quotaFree})}catch(g){c.reject(g)}},a=async c=>{try{let u=Eb(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=vb(u,p),f=UA(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:qA(c.map(({input:h})=>h.actor))}),g.forEach((h,R)=>{let T=c[R];h.value===null?T.reject(new Error(`GitHub returned no ${h.read.kind} #${h.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(h.value,"graphql"):h.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=Ls(u)===401?new Oo({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=Tb(c);s=!1;let p=[...o.values()];o.clear(),await Promise.all(p.map(async g=>{g.length>u?await a(g):await Promise.all(g.map(i))}))};return{conditionalRest:n,singleObject:c=>t.get(c.cacheKey)!==void 0?new Promise((u,p)=>{i({input:c,resolve:u,reject:p})}):new Promise((u,p)=>{let g=o.get(c.kind)??[];g.push({input:c,resolve:u,reject:p}),o.set(c.kind,g),s||(s=!0,setTimeout(()=>void l(),0))}),async conditionalPaginate(c){let u=[],p={},g=0,f=!0,y=1;for(;;){let h=await n({...c,cacheKey:`${c.cacheKey}:page:${y}`,parameters:{...c.parameters??{},per_page:100,page:y}});if(g+=1,f=f&&h.quotaFree,!Array.isArray(h.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${y}`);if(u.push(...h.data),p=h.headers,!HA(h.headers))break;y+=1}return{data:u,headers:p,requestCount:g,quotaFree:f}},async graphql(c,u={},p){try{let g=await r.graphql(c,u);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),g}catch(g){throw Ls(g)===401?new Oo({cause:g}):g}}}}function HA(e){let t=xa(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function js(e){let t=Ls(e),r=Pb(e);return t===429||t===403&&xa(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Ls(e){if(hn(e))return typeof e.status=="number"?e.status:void 0}function Pb(e){return!hn(e)||!hn(e.response)||!hn(e.response.headers)?{}:e.response.headers}function xa(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function hn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function UA(e){let t=hn(e)?e:{},r=hn(t.data)?t.data:t,o=(hn(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(o)||o<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return o}function qA(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var Cb="rate_limit",Db={rest:"core",graphql:"graphql",search:"search"},Qr=["rest","graphql","search"];function Ta(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Qr],detail:t??"no balance has been asked for yet, so none is known"}}var $c=15e3,Fo=.15,va=[{at_or_below_fraction:0,every_ms:$c,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Fo,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}];var s5=60*6e4,Bc=2;function Ob(e,t){let r=Ab(e),n=Ab(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Qr){let l=Db[a],d=n[l],c=zA(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Qr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${Qr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Nc(e){try{let t=await e.transport();return Ob(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Ta(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Gc(e){let t=null;for(let r of Qr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function Pa(e,t){let r=Gc(e);if(r==null)return Sa(Fo).every_ms;let n=Sa(r.fraction);if(r.remaining>0)return n.every_ms;let o=Ib(t.now,r.reset_at);return o==null?n.every_ms:Math.max($c,Math.min(n.every_ms,o))}function Wc(e,t=Fo){return Math.ceil(e.limit*t)}function Fb(e,t,r=Fo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Wc(n,r)?"reserved":"open"}function Hc(e){let t=e.reservedFraction??Fo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Sa(t).every_ms*Bc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Sa(t).every_ms,pools:[],unreported_pools:[...Qr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=Pa(r,{now:e.now}),o=e.stalenessMs??n*Bc,s=Ib(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Qr.map(c=>r.pools[c]).filter(c=>c!=null),l=VA(r,t),d=Gc(r);return{version:1,origin:"asked",outcome:r.outcome,asked_at:r.asked_at,age_ms:s,threshold_ms:o,stale:i,posture:l,reserved_fraction:t,next_poll_ms:n,pools:a,unreported_pools:r.unreported_pools,reason:i?`this balance is stale: asked ${s==null?"at an unreadable instant":`${s}ms ago`}, past the ${o}ms window, so the posture below is the last one the token confirmed and not the current one`:KA(l,d,r,t)}}function Uc(e){if(!Kc(e))return!1;let t=e;return t.version===1&&t.origin==="asked"&&(t.outcome==="asked"||t.outcome==="unanswered")&&(t.asked_at===null||typeof t.asked_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.posture=="string"&&typeof t.reserved_fraction=="number"&&typeof t.next_poll_ms=="number"&&Array.isArray(t.pools)&&Array.isArray(t.unreported_pools)&&typeof t.reason=="string"}function KA(e,t,r,n){if(t==null)return r.detail;let o=Wc(t,n);switch(e){case"spent":return`the ${t.pool} pool is spent and resets at ${t.reset_at}: work is not queued, it is refused`;case"reserved":return`the ${t.pool} pool has ${t.remaining} of ${t.limit} left, inside the reserved band of ${o}: convenience reads are refused and the claim, a landing and a closing comment still pass`;default:return`the ${t.pool} pool is the tightest at ${t.remaining} of ${t.limit}, above the reserved band of ${o}`}}function VA(e,t){let r="unknown";for(let n of Qr){if(e.pools[n]==null)continue;let o=Fb(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Sa(e){for(let t of va)if(e<=t.at_or_below_fraction)return t;return va[va.length-1]}function zA(e,t,r){if(!Kc(r))return null;let n=Ea(r.limit),o=Ea(r.remaining),s=Ea(r.used),i=Ea(r.reset);return n==null||n<=0||o==null?null:{pool:e,resource:t,limit:n,remaining:o,used:s??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:o/n}}function qc(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${Cb}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function Ib(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function Ea(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Ab(e){return Kc(e)?e:{}}function Kc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as JA}from"node:child_process";import{existsSync as YA,readFileSync as Aa,readdirSync as QA}from"node:fs";import{dirname as XA,join as Hn}from"node:path";function Bs(e){let t=Ps(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Po(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Mb(e){let t=[],r=[];for(let n of e.workers){let o=Bs(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Ps(n).memory_max??Ps(n).memory_high)==null?"this Worker declared no memory budget and the host derived no ceiling for it, so the sampler has none to enforce":"this Worker's declared memory budget cannot be reduced to bytes, so the sampler has no ceiling to enforce"});continue}let s=e.rss[n.worker_id];if(typeof s!="number"||!Number.isFinite(s)){r.push({worker_id:n.worker_id,reason:"the host produced no RSS reading for this Worker on this tick, and an unmeasured Worker is never killed on suspicion"});continue}if(!(s<=o.bytes)){if(e.sources?.[n.worker_id]==="cgroup"&&o.name==="MemoryMax"){r.push({worker_id:n.worker_id,reason:`this Worker's ${o.name} of ${o.declared} is held by the kernel on its own cgroup, and the reading is memory.current \u2014 which counts reclaimable page cache the kernel drops before it kills anything, so the daemon does not duplicate an enforcement that can tell cache from anonymous memory`});continue}t.push(ZA(n,o,s))}}return{terminations:t,unenforceable:r}}function ZA(e,t,r){let n=`Worker ${JSON.stringify(e.worker_id)} of project ${JSON.stringify(e.project_label)}`;return{version:1,worker_id:e.worker_id,project_label:e.project_label,outcome:"terminated-over-memory-budget",classification:"budget-exceeded",stall:!1,budget_name:t.name,budget_declared:t.declared,budget_bytes:t.bytes,observed_rss_bytes:r,workspace_path:e.workspace_path,reason:`redskilled terminated ${n}: its tree RSS of ${r} bytes exceeded its ${t.name} budget of ${t.declared} (${t.bytes} bytes). This is a budget termination, not a stall, and the work in ${JSON.stringify(e.workspace_path)} is handed forward.`}}var eC=4096;function Lb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=rC(e,r,t);for(let[u,p]of a){let g=sC(p);g!=null&&(o[u]=g.memoryBytes,g.cpuSeconds!=null&&(s[u]=g.cpuSeconds),i[u]="cgroup")}let l=e.filter(u=>i[u.worker_id]==null);if(l.length===0)return{rss:o,cpu_seconds:s,sources:i};let d=lC(r,t);if(d.size===0)return{rss:o,cpu_seconds:s,sources:i};let c=new Map;for(let u of d.values()){let p=c.get(u.ppid);p?p.push(u.pid):c.set(u.ppid,[u.pid])}for(let u of l){if(!d.has(u.pid))continue;let p=0,g=0,f=[u.pid],y=new Set;for(;f.length>0;){let h=f.pop();if(y.has(h))continue;y.add(h);let R=d.get(h);if(R){p+=R.rssBytes,g+=R.cpuSeconds;for(let T of c.get(h)??[])f.push(T)}}o[u.worker_id]=p,s[u.worker_id]=g,i[u.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,sources:i}}var tC="/sys/fs/cgroup";function rC(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??tC,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=nC(s,r);for(let l of i)for(let d of a){let c=Hn(d,l.unit);if(YA(Hn(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function nC(e,t){let r=t.selfCgroupPath??oC(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Hn(e,s));let a=XA(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(Hn(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function oC(){try{for(let e of Aa("/proc/self/cgroup","utf8").split(`
|
|
86
|
-
`))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function
|
|
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
|
|
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=
|
|
89
|
-
`),aliases:s,closed_since:o}}function wC(e,t,r){let n=Io(t),o=Io(n.data),s=Array.isArray(n.errors)?n.errors.map(Io):[],i=SC(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,project:c})=>{let u=c.owner+"/"+c.name,p=o[l],g=s.find(f=>Nb(f.path,l)||Nb(f.path,d));if($s(p)){let f=Gb(p.open_pull_requests),y=Gb(p.open_issues),h=TC(o[d]);if(f!=null&&y!=null&&h!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:y,recently_closed:h},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||zb(g)?{project_label:c.project_label,repository:u,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${u} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:c.project_label,repository:u,outcome:"unreachable",counts:null,detail:`${u} is not reachable with the host token: ${Ca(g?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function RC(e){return{version:1,fetched_at:e,request_count:0,project_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[]}}async function Hb(e){if(e.projects.length===0)return RC(e.now);if(Jc(e.projects,e.hostTokenRef),e.transport.conditionalList)return await xC(e);let t=Wb(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return wC(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}var _C={key:"redskilled repository activity poll",budget:"rest"};async function xC(e){Vb(e.projects);let t=Date.parse(e.now),r=Number.isFinite(t)?new Date(Math.floor(t/(60*60*1e3))*60*60*1e3).toISOString():e.now,n=Wb(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let y=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:_C});i+=y.requestCount;let h=p==="open-prs"?y.data:y.data.filter(R=>!$s(R.pull_request));u.push(p==="recently-closed"?h.filter(R=>Ca(R.closed_at)>=n.closed_since).length:h.length),a=Bb(a,vC(y.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=js(p);a=Bb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function Ub(e){let t=e.stalenessMs??yC,r=e.activity;if(r==null)return{version:1,fetched_at:null,age_ms:null,threshold_ms:t,stale:!1,request_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[],reason:"the daemon polls no repository, so there are no counts to age"};let n=Date.parse(e.now),o=Date.parse(r.fetched_at),s=Number.isFinite(n)&&Number.isFinite(o)?Math.max(0,n-o):null,i=s==null||s>t;return{version:1,fetched_at:r.fetched_at,age_ms:s,threshold_ms:t,stale:r.projects.length>0&&i,request_count:r.request_count,rate_limit:r.rate_limit,projects:r.projects.map(a=>({...a,fetched_at:r.fetched_at,age_ms:s,stale:i})),reason:r.projects.length===0?"the daemon polls no repository, so there are no counts to age":s==null?"these counts carry no readable instant, so they cannot be presented as current":i?`these counts are ${s}ms old, past the ${t}ms window`:`fetched ${s}ms ago, within the ${t}ms window`}}function qb(e){if(!$s(e))return!1;let t=e;return t.version===1&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&Number.isInteger(t.request_count)&&$s(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Kb(e){let t=e.endpoint==null?void 0:EC(e.endpoint),r=jc({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n}function EC(e){let t=new URL(e);return/\/api\/graphql\/?$/.test(t.pathname)?t.pathname=t.pathname.replace(/\/api\/graphql\/?$/,"/api/v3"):t.pathname=t.pathname.replace(/\/graphql\/?$/,""),t.search="",t.hash="",t.toString().replace(/\/$/,"")}function vC(e){let t=$b(e,"x-ratelimit-remaining"),r=$b(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Bb(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted,point_cost:null}}function $b(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function Vb(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>jb)throw new Error(`redskilled activity fetch spans at most ${jb} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function SC(e,t){let r=Io(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(zb),i=typeof r.cost=="number"&&Number.isFinite(r.cost)?r.cost:null;return{remaining:n,reset_at:o,exhausted:s||n===0,point_cost:i}}function zb(e){if(e==null)return!1;let t=Ca(e.type),r=Ca(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Nb(e,t){return Array.isArray(e)&&e.includes(t)}function Gb(e){let t=Io(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function TC(e){let t=Io(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Io(e){return $s(e)?e:{}}function $s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ca(e){return typeof e=="string"?e:""}function Yb(e,t){let r=[...e].sort((i,a)=>(Ns(a.ts)??0)-(Ns(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(Jb),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=PC(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:Jb(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function Jb(e){return{kind:e.kind,id:e.id,pid:e.pid,ts:e.ts,last_seen:e.last_seen,last_phase:e.last_phase,sender_class:e.sender_class,confidence:e.confidence,signal:e.signal,evidence:e.evidence[0]??null}}function PC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>2||n.project_label==null||n.project_label===""||Ns(n.ts)==null)continue;let o=t.get(n.project_label)??[];o.push(n),t.set(n.project_label,o)}return[...t.entries()].filter(([,n])=>n.length>=3).map(([n,o])=>{let s=o[0],i=Ns(s.ts),a=Math.min(...o.map(d=>Ns(d.ts))),l=s.detail?.trim()||s.evidence[0]?.trim();return l==null||l===""?null:{project_label:n,count:o.length,span_ms:Math.max(0,i-a),latest_refusal:l}}).filter(n=>n!=null).sort((n,o)=>o.count-n.count||o.span_ms-n.span_ms)[0]??null}function Yc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Number.isInteger(t.count)&&Array.isArray(t.recent)}function Ns(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var AC=3e4,CC=["logs","vitals","display"];function Xb(e,t){if(t===void 0)return e;let r=CC.filter(o=>t[o]!==!0);if(r.length===0)return e;let n=o=>t[o]===!0;return{...e,workers:e.workers.map(o=>({...o,...n("vitals")?{}:{vitals:DC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:OC},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var DC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},OC={last_line:null,published_at:null,source:null};function Zb(e){let t=e.stalenessMs??AC,r=Qc(e.now),n=e.sampledAt==null?null:Qc(e.sampledAt),o=r==null||n==null?null:Math.max(0,r-n),s=o!=null&&o<=t,i=new Set(e.reattachedWorkerIds??[]),a=e.hostState.workers.map(p=>IC(p,{rss:e.rss,sampledAt:e.sampledAt,ageMs:o,sampleFresh:s,nowMs:r,log:e.logLines?.[p.worker_id],display:e.displays?.[p.worker_id],state:i.has(p.worker_id)?"reattached":"running"})),l=a.filter(p=>p.vitals.rss_bytes==null).map(p=>p.worker_id).sort(),d=a.length-l.length,c=a.reduce((p,g)=>p+(g.vitals.rss_bytes??0),0),u=ca(e.hostState.workers);return{version:1,generated_at:e.now,daemon:{pid:e.hostState.pid,daemon_version:e.hostState.daemon_version,protocol_version:e.hostState.protocol_version,started_at:e.hostState.started_at,machine_id_hash:e.hostState.machine_id_hash,session_key_hash:e.hostState.session_key_hash},staleness:BC({sampledAt:e.sampledAt,ageMs:o,threshold:t,workerCount:a.length,measuredCount:d,unmeasured:l}),host:{worker_count:a.length,project_count:e.hostState.projects.length,ceiling:e.ceiling,consumption:u,budget_accounting:e.hostState.budget_accounting,observed_rss_bytes:c,measured_worker_count:d,ceiling_used_fraction:e.ceiling.memory_bytes==null||e.ceiling.memory_bytes<=0?null:u.memory_bytes/e.ceiling.memory_bytes},projects:jC(a),known_projects:LC(e.hostState),registered_projects:(e.hostState.registrations??[]).map(p=>p.project_label).sort((p,g)=>p.localeCompare(g)),lapsed_projects:(e.hostState.lapsed_registrations??[]).map(p=>({project_label:p.project_label,at:p.at,...p.registered_at==null?{}:{registered_at:p.registered_at},reason:p.detail})),stopped_projects:(e.hostState.stopped_registrations??[]).map(p=>({project_label:p.project_label,at:p.at})),orphaned_projects:(e.hostState.orphaned_registrations??[]).map(p=>p.project_label),workers:a,github_balance:Hc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Ub({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:Yb(e.deaths,e.recentDeathLimit??4)},engine:FC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function FC(e){let t=e.upgrade,r=t?.running_version??e.daemon_version,n=t?.published_version??null,o=t?.newest_published_version??null,s=(t?.newer_published??0)>0,i=(t?.major_held??0)>0;return{running_version:r,published_version:n,newer_published:s,major_held:i,current:n==null&&o==null?null:!s&&!i}}function IC(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Bs(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=Qc(e.started_at);return{worker_id:e.worker_id,project_label:e.project_label,workspace_path:e.workspace_path,pid:e.pid,started_at:e.started_at,...e.base_commits_ahead==null?{}:{base_commits_ahead:e.base_commits_ahead},uptime_ms:t.nowMs==null||i==null?null:Math.max(0,t.nowMs-i),state:t.state,isolated:e.isolated,unit:e.unit??null,warnings:[...e.warnings],vitals:{rss_bytes:n,sampled_at:n==null?null:t.sampledAt,age_ms:n==null?null:t.ageMs,fresh:n!=null&&t.sampleFresh,rss_source:n==null?null:e.rss_source??null},budget:{name:o?.name??null,declared:o?.declared??s,bytes:o?.bytes??null,used_bytes:n,used_fraction:o==null||o.bytes<=0||n==null?null:n/o.bytes,enforceable:o!=null},log:MC(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function MC(e){let t={last_line:null,published_at:null,source:null};return e==null||e.line.trim()===""?t:{last_line:e.line,published_at:e.published_at,source:e.source}}function LC(e){let t=new Set;for(let r of e.registrations??[])t.add(r.project_label);for(let r of e.projects)t.add(r.project_label);for(let r of e.lapsed_registrations??[])t.add(r.project_label);for(let r of e.stopped_registrations??[])t.add(r.project_label);for(let r of e.orphaned_registrations??[])t.add(r.project_label);return[...t].sort((r,n)=>r.localeCompare(n))}function jC(e){let t=new Map;for(let r of e){let n=t.get(r.project_label)??{workers:0,declared:0,observed:0,measured:0};n.workers+=1,n.declared+=r.budget.bytes??0,n.observed+=r.vitals.rss_bytes??0,n.measured+=r.vitals.rss_bytes==null?0:1,t.set(r.project_label,n)}return[...t.entries()].map(([r,n])=>({project_label:r,worker_count:n.workers,declared_memory_bytes:n.declared,observed_rss_bytes:n.observed,measured_worker_count:n.measured})).sort((r,n)=>r.project_label.localeCompare(n.project_label))}function BC(e){let t={sampled_at:e.sampledAt,age_ms:e.ageMs,threshold_ms:e.threshold,measured_worker_count:e.measuredCount,unmeasured_workers:e.unmeasured};return e.workerCount===0?{...t,stale:!1,reason:"the host holds no Workers, so there is nothing to measure and nothing to age"}:e.sampledAt==null||e.ageMs==null?{...t,stale:!0,reason:`this answer is stale: the daemon has taken no measurement of its ${e.workerCount} live Worker(s) yet`}:e.ageMs>e.threshold?{...t,stale:!0,reason:`this answer is stale: its measurement is ${e.ageMs}ms old, past the ${e.threshold}ms staleness window`}:{...t,stale:!1,reason:`measured ${e.ageMs}ms ago, within the ${e.threshold}ms staleness window`}}function Qc(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Xc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.daemon,n=t.staleness,o=t.host;return t.version===1&&typeof t.generated_at=="string"&&r!=null&&typeof r=="object"&&Number.isInteger(r.pid)&&typeof r.daemon_version=="string"&&typeof r.protocol_version=="number"&&n!=null&&typeof n=="object"&&typeof n.stale=="boolean"&&typeof n.threshold_ms=="number"&&Array.isArray(n.unmeasured_workers)&&o!=null&&typeof o=="object"&&Number.isInteger(o.worker_count)&&Number.isInteger(o.project_count)&&typeof o.observed_rss_bytes=="number"&&Array.isArray(t.projects)&&Array.isArray(t.workers)&&(t.known_projects===void 0||Array.isArray(t.known_projects)&&t.known_projects.every(s=>typeof s=="string"))&&(t.registered_projects===void 0||Array.isArray(t.registered_projects)&&t.registered_projects.every(s=>typeof s=="string"))&&(t.lapsed_projects===void 0||Array.isArray(t.lapsed_projects)&&t.lapsed_projects.every($C))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(NC))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||qb(t.repository_activity))&&(t.github_balance===void 0||Uc(t.github_balance))&&(t.deaths===void 0||Yc(t.deaths))&&(t.engine===void 0||GC(t.engine))&&(t.metrics===void 0||Oh(t.metrics))}function $C(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.reason=="string"}function NC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"}function GC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")}var ey={runner:null,model:null,effort:null,origin:null,issue:null,phase:null,step:null,phase_index:null,phase_total:null,failed:!1,heartbeat:null,wait_kind:null,wait_subject:null,wait_pid:null,wait_started_at:null,wait_deadline:null,wait_escalation:null,started_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null};function ty(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var yt=e=>`\x1B[${e}m`,Gs=yt("48;2;114;47;55"),Zc=yt("48;2;88;36;42"),mn=yt("38;2;255;255;255"),eu=yt("38;2;201;150;158"),Ws=yt("38;2;255;214;214"),Hs=yt("39"),jt=yt("38;2;224;138;148"),tu=yt("38;2;240;200;120"),ru=yt("38;2;240;110;120"),nu=yt("38;2;255;214;214"),ou=yt("38;2;146;84;94"),su=yt("38;2;255;95;95"),Cr=yt("49"),ar=yt("0"),Da=yt("1"),Oa=yt("22");var WC=/\x1b\[[0-9;]*m/g,HC=/(\x1b\[[0-9;]*m)/,UC=/^\x1b\[[0-9;]*m$/;function Un(e){return e.replace(WC,"")}function qC(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Yt(e){return[...Un(e)].length}function Xe(e,t){if(t<=0)return"";if(Yt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(HC))if(i!==""){if(UC.test(i)){s+=i,o=!qC(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?ar:""}`;s+=a,n+=1}}return`${s}\u2026${o?ar:""}`}function Us(e,t){return e+" ".repeat(Math.max(0,t-Yt(e)))}function iu(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"]){let n=t.indexOf(r);if(n===-1)continue;let s=t.slice(n+r.length).match(/^-(\d+(?:[-.]\d+)*)/)?.[1]?.split(/[-.]/)??[];return/^\d{8}$/.test(s.at(-1)??"")&&s.pop(),s.length===0?r:`${r}-${s.join(".")}`}return e}function lr(e){if(!Number.isFinite(e)||e<=0)return"0B";let t=["B","K","M","G","T"],r=e,n=0;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r>=100||n===0?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")}${t[n]}`}function qs(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function bn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return qs(e);if(e<=0)return"0";let t=(Math.round(e*10)/10).toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function yn(e){if(e==null||!Number.isFinite(e)||e<0)return"\u2014";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function Mo(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Ks="!unregistered",au="!lapsed",Vs="\u21E1",Dr="\u2020",Lo="\u25D0",jo="\u25EF",lu="\u21B3",du="redskilled unreachable \u2014 Worker state unknown";function Bo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Fa(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function zs(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function cu(e){let t=[];return e.workers.length>0&&e.workers.length<=e.maxWorkers&&t.push("workers"),e.mode==="global"&&e.projects.length>0&&e.projects.length<=e.maxProjects&&t.push("projects"),t.push("host"),t}function Ia(e,t){return e.startsWith(t)?e.slice(t.length):e}function Or(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function uu(e,t,r){return r<110?{variant:"compact",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"work",header:"Work",flex:2,minWidth:14,truncate:!0},{key:"state",header:"State",flex:2,minWidth:14,truncate:!0},{key:"activity",header:"Latest activity",flex:3,minWidth:18,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,work:Or(Ia(n.cells.iss,"iss="),n.cells.phase),state:Or(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}:{variant:"operational",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"issue",header:"Issue",width:7},{key:"runner",header:"Runner",flex:1,minWidth:12,truncate:!0},{key:"phase",header:"Phase",flex:2,minWidth:16,truncate:!0},{key:"progress",header:"Progress",width:9},{key:"elapsed",header:"Elapsed",width:9,align:"right"},{key:"eta",header:"ETA",width:8,align:"right"},{key:"activity",header:"Activity",flex:2,minWidth:16,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,issue:Or(Ia(n.cells.iss,"iss=")),runner:Or(Ia(n.cells.run,"run=")),phase:Or(n.cells.phase),progress:Or(n.cells.bar),elapsed:Or(n.cells.elapsed),eta:Ia(Or(n.cells.eta),"eta="),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}}var kn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Bt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},KC=" ",ry="\u2588",VC="\u25B6",zC="\u2717",JC="\u2591",YC=new Set(["gate","push-pr","merge","cascade"]),QC=new Set(["requeue"]),XC="repair";function Js(e){return e.display?.origin===XC}function $o(e,t=Bt){let r=zs(e,t.project),n=Bo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>La(y,t,e.generated_at)),i=uD(s),a=o.map((y,h)=>({worker_id:y.worker_id,project_label:y.project_label,mine:t.project!=null&&y.project_label===t.project,cells:s[h],line:Xe(pD(s[h],i),t.maxWidth)})),l=uu(a,o,t.maxWidth),d=eD(e,t,n,r),c=n.length-o.length,u=[d.line,...iD(e,t),...a.map(y=>y.line)];c>0&&u.push(Xe(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...oD(e,t)),u.push(...nD(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Bt.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Xe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:kn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function La(e,t,r){let n=e.display??ey,o=Js(e),s=[n.runner,n.model==null?null:iu(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&YC.has(n.phase),a=o||i||n.origin!=null&&QC.has(n.origin);return{wid:t.mode==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id,run:o||s===""?"":`run=${s}`,org:o?"lane=repair":i?"org=landing":n.origin==null?"":`org=${n.origin}`,iss:n.issue==null?"":o?`pr=#${n.issue.replace(/^#/,"")}`:`iss=${n.issue}`,bar:oy(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:yn(ty(e,r)),eta:n.eta==null?"":`eta=${yn(n.eta*1e3)}`,hb:ZC(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":cD(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${qs(n.tokens)}`,ctx:n.context==null?"":`ctx=${qs(n.context)}`,tls:a||n.tools==null?"":`tls=${n.tools}`,rsn:a||n.reasoning==null?"":`rsn=${n.reasoning}`,txt:a||n.text==null?"":`txt=${n.text}`}}function ZC(e,t){if(e.wait_kind==null||e.wait_subject==null||e.wait_pid==null||e.wait_pid<=0||e.wait_started_at==null)return null;let r=Date.parse(e.wait_started_at),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:`${e.wait_kind}=${e.wait_subject} ${yn(Math.max(0,n-r))}`}function oy(e){let t=e.phase_total,r=e.phase_index;if(t==null||t<=0||r==null||r<0)return"";let n=Math.min(Math.floor(r),Math.floor(t));if(n>=t)return ry.repeat(Math.floor(t));let o=e.failed?zC:VC;return`${ry.repeat(n)}${o}${JC.repeat(Math.floor(t)-n-1)}`}function eD(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=dD(r),l=o?.repository??t.project,d=e.engine??null,c=d?.running_version??e.daemon.daemon_version,u=e.deaths??null,p=e.metrics??null,g=[tD(l??"host",c,d!=null&&d.current===!1?Vs:"")];(n==="unregistered"||n==="name-only")&&g.push(Ks),n==="lapsed"&&g.push(au);let f=p?.history_48h==null?null:sD(p.history_48h);f!=null&&g.push(Xr(f));let y=e.workers.filter(Js).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Xr(`workers=${M} coding +`)} ${Gs}${mn}${y} repairing${Cr}${jt}`)}else g.push(Xr(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Xr(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(Xr(lD(i))),a!=null&&g.push(`${Gs}${mn}${a}${Cr}${jt}`),s.open_pull_requests!=null&&g.push(Xr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Xr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Xr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let R=p==null?null:sy(p.hour),T=R==null?null:Xr(R);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=Mo(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${rD(M.span_ms)}`+(N==null?"":` \u2014 ${N}`))}if(e.staleness.stale){let M=e.staleness.age_ms;g.push(M==null?"!unmeasured":`!stale ${Math.round(M/1e3)}s`)}let $=`${g.join(" \xB7 ")}${ar}`,D=R!=null&&Yt($)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${ar}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Xe(D,t.maxWidth)}}function tD(e,t,r){return`${Zc}${mn}${tu}\xBB${mn} ${Da}${e}${Oa} ${eu}v${t}${r}${mn}${Cr}${jt}`}function Xr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ws}${n}${Hs}${o}${jt}`)}function rD(e){return yn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function sy(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${bn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${bn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${bn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function nD(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?jo:Lo,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Xe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function oD(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Xe(`${Dr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Xe(`${Dr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Xe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function sD(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${bn(t)} ${pu(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${bn(r)} ${pu(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function iD(e,t){let r=e.metrics;return r==null?[Xe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Xe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[ny("tokens",r.history_48h.tokens_per_hour,t),ny("Tickets",r.history_48h.tickets_per_hour,t)]}var Ma=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function ny(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${bn(o)}/h ${pu(t.trend)}`.trim();if(r.maxWidth<72)return Xe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Xe(`${n} 48h ${aD(t)} \xB7 ${a}${l}`,r.maxWidth)}function aD(e){let t=e.buckets.flatMap(n=>n.value==null?[]:[Math.max(0,n.value)]),r=Math.max(0,...t);return e.buckets.map(n=>n.value==null?"\xB7":r===0?Ma[0]:Ma[Math.min(Ma.length-1,Math.floor(Math.max(0,n.value)/r*(Ma.length-1)))]).join("")}function pu(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function lD(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${lr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${lr(e.memory_used_bytes)}/${lr(e.memory_ceiling_bytes)}${t}`}function dD(e){for(let t of e){let r=t.display;if(r==null)continue;let n=[r.runner,r.model,r.effort].filter(o=>!!o);if(n.length>0)return n.join("\xB7")}return null}function cD(e,t){if(e==null&&t==null)return"";let r=[];return e!=null&&e>0&&r.push(`+${e}`),t!=null&&t>0&&r.push(`-${t}`),`loc=${r.length>0?r.join(" "):"0"}`}function uD(e){let t=Object.fromEntries(kn.map(r=>[r,0]));for(let r of e)for(let n of kn)t[n]=Math.max(t[n],Yt(r[n]));return t}function pD(e,t){let r=kn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>ja(o,Us(e[o],s===r.length-1?Yt(e[o]):t[o])));return`${Cr}${jt}${n.join(KC)}${ar}`}function ja(e,t){if(e==="wid")return`${Da}${t}${Oa}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Gs}${mn}${t.trimEnd()}${Cr}${jt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${ru}${n}`).replace("\u25B6",`${nu}\u25B6`).replace("\u2717",`${su}\u2717`).replace(/░+/g,n=>`${ou}${n}`)+jt;let r=t.indexOf("=");return r>0?`${Ws}${t.slice(0,r+1)}${Hs}${t.slice(r+1)}${jt}`:t}function gu(e){return Object.freeze({none:!0,reason:e})}function Ba(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function fu(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError("repair args must contain only finite JSON numbers");return e}if(t.has(e))throw new TypeError("repair args must not contain cycles");t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(n=>fu(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=fu(o,t);return Object.freeze(r)}finally{t.delete(e)}}function fD(e){let t=fu(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function No(e){if("none"in e.repair)return{prose:`${e.state}; repair: none because ${e.repair.reason}`,repair:"none",repair_reason:e.repair.reason};let t=fD(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ne={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function qn(e,t=Ne){let r=zs(e,t.project),n=Bo(e,t),o=Fa(e,t),s=kD(e,t.project,r),i=hD(e,t,n,r,s.prose),a=cu({mode:t.mode,maxWorkers:t.maxWorkers,maxProjects:t.maxProjects,workers:n,projects:o}),l={detail:"host",line:i};for(let g of a){let f=g==="workers"?i:ED(i,gD(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Yt(f)<=t.maxWidth)break}let d=Xe(l.line,t.maxWidth),c=l.detail==="workers"?RD(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?_D(g,t):null;return y==null?[c.lines[f]]:[c.lines[f],y]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function yu(e){let t=e.options??Ne,r=Xe(du,t.maxWidth);return{version:1,line:r,lines:[r],verbose:t.verbose,mode:t.mode,project:t.project,project_match:"unanswered",detail:"host",degraded:!0,stale:!0,generated_at:e.generated_at}}function gD(e,t){return e==="projects"?t.map(xD):[]}function hD(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${hu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(bu(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${hu(r,r.length)}`),s.push(bu(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${hu(r,r.length)}`),s.push(bu(e,t)),s.push(Ks)):s.push(o),s.push(iy(e));let a=mD(e);a!=null&&s.push(a);let l=bD(e);l!=null&&s.push(l),e.staleness.stale&&s.push(ay(e));let d=s.join(" ");return!i||Yt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,iy(e),e.staleness.stale?ay(e):null].filter(c=>c!=null).join(" ")}function hu(e,t){let r=e.filter(Js).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function iy(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Vs}`}function mD(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${jo} quota spent`:t.posture==="reserved"?`${Lo} quota band`:null}function bD(e){let t=e.deaths;if(t==null)return null;let r=t.sender_attributed_count??t.count,n=t.sender_attributed_count===void 0?t.latest:t.latest_sender_attributed??null;if(r<=0||n==null)return null;let o=t.boot_loop;if(o!=null){let s=Mo(o.latest_refusal);return`${Dr}${r} boot-refused \xD7${o.count} in ${yD(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Dr}${r} ${n.sender_class}`}function yD(e){return yn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function kD(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return No({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:gu("this socket cannot safely replace a registration owned by an unreachable daemon")});if(r==="stopped"){let n=e.stopped_projects?.find(o=>o.project_label===t);return No({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${mu(n.at)}`}`,repair:Ba()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${mu(n.registered_at)})`;return No({state:`project unknown \u2014 ${t} lapsed at ${mu(n.at)}${o}`,repair:Ba()})}return No({state:`project unknown \u2014 ${t} lapsed`,repair:Ba()})}return r==="unresolved"?No({state:"project unknown \u2014 this directory resolved to no project",repair:gu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function mu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function bu(e,t){let r=t.mode==="global"?e.host.observed_rss_bytes:e.projects.filter(o=>o.project_label===t.project).reduce((o,s)=>o+s.observed_rss_bytes,0),n=e.host.ceiling.memory_bytes;return t.mode==="global"&&n!=null&&n>0?`${lr(r)}/${lr(n)}`:lr(r)}function ay(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function wD(e,t,r,n){let o=r.map(s=>ja(s,Us(e[s],t[s])));return Xe(`${Cr}${jt}${o.join(" ")}${ar}`,n)}function RD(e,t,r){let n=e.map(a=>La(a,t,r)),o=kn.filter(a=>n.some(l=>Yt(l[a])>0)),s=[...o],i=ly(n,s);for(;s.length>1&&dy(i,s)>t.maxWidth;)s.pop(),i=ly(n,s);return{lines:n.map(a=>wD(a,i,s,t.maxWidth)),degraded:s.length<o.length||dy(i,s)>t.maxWidth}}function ly(e,t){let r=Object.fromEntries(kn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Yt(n[o]));return r}function dy(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function _D(e,t){let r=Mo(e.log.last_line);return r==null?null:Xe(` ${lu} ${cy(e,t.mode)}: ${r}`,t.maxWidth)}function cy(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function xD(e){return`${e.project_label} ${e.worker_count}w ${lr(e.observed_rss_bytes)}`}function ED(e,t,r){return[e,...t].join(r)}var $a=1;async function Ys(e,t){return await na(e,t,"redskilled daemon")}function py(e){let t=[...e.workers??[]],r=new Map;for(let n of t)r.set(n.project_label,(r.get(n.project_label)??0)+1);return{version:1,protocol_version:$a,daemon_version:e.daemonVersion,machine_id_hash:e.machineIdHash,session_key_hash:e.sessionKeyHash,pid:e.pid,started_at:e.startedAt,...e.ceiling==null?{}:{ceiling:e.ceiling},...e.scope==null?{}:{scope:e.scope},workers:t,projects:[...r.entries()].map(([n,o])=>({project_label:n,worker_count:o})).sort((n,o)=>n.project_label.localeCompare(o.project_label)),registrations:PD(e),...e.demand==null?{}:{demand:e.demand},...e.lapses==null||e.lapses.length===0?{}:{lapsed_registrations:[...e.lapses]},...e.stops==null||e.stops.length===0?{}:{stopped_registrations:[...e.stops]},...e.orphanedRegistrations==null||e.orphanedRegistrations.length===0?{}:{orphaned_registrations:[...e.orphanedRegistrations]},birth_latches:[...e.birthLatches??[]],budget_accounting:Mh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:AD(e)}}function PD(e){let t=e.now==null?Number.NaN:Date.parse(e.now),r=Number.isFinite(t),n=e.queue??null,o=new Map(n==null?[]:n.projects.map(s=>[s.project_label,s]));return[...e.registrations??[]].map(s=>{let i=o.get(s.project_label);return{...s,...r?{renewal:ym(s,t)}:{},...n==null||i==null?{}:{last_poll:{at:n.fetched_at,outcome:i.outcome,depth:i.depth,request_count:n.request_count,detail:i.detail}}}}).sort((s,i)=>s.project_label.localeCompare(i.project_label))}function AD(e){let t=e.daemonVersion,r=e.published?.version??null,n=e.published?.majorHold??null;return{running_version:t,published_version:r,published_unknown:+(r===null),newer_published:+(e.published?.newer===!0),replacement:e.published?.replacement??"none",checked_at:e.published?.checkedAt??null,checks:e.published?.checks??0,hold_reason:e.published?.holdReason??null,newest_published_version:e.published?.newest??null,major_held:+(n!==null),major_hold:n}}function fy(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.protocol_version=="number"&&typeof t.daemon_version=="string"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&Number.isInteger(t.pid)&&typeof t.started_at=="string"&&(t.ceiling===void 0||ID(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Lh(t.budget_accounting)&&(t.scope===void 0||pm(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Fs))&&(t.demand===void 0||Zh(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(DD))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(OD))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(FD))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(CD))&&(t.upgrade===void 0||MD(t.upgrade))}function CD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.repair;return t.name==="project-birth-breaker"&&typeof t.project_label=="string"&&(t.state==="open"||t.state==="half-open")&&typeof t.opened_at=="string"&&typeof t.reason=="string"&&typeof t.closes=="string"&&(t.probe_worker_id===null||typeof t.probe_worker_id=="string")&&r!=null&&r.tool==="project_reset"&&typeof r.args=="object"&&r.args!==null&&typeof r.why=="string"}function DD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.at=="string"&&typeof t.renew_by=="string"&&Number.isInteger(t.renewals)&&Number.isInteger(t.sustains)&&typeof t.detail=="string"}function OD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.registered_at=="string"&&typeof t.at=="string"&&typeof t.detail=="string"}function FD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")}function ID(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=new Set(["flag","environment","home-config","derived-default"]);return(t.memory_bytes===null||typeof t.memory_bytes=="number")&&(t.worker_count===null||typeof t.worker_count=="number")&&(t.validation_count===void 0||Number.isInteger(t.validation_count)&&Number(t.validation_count)>0)&&(t.source==="declared"||t.source==="host-fraction")&&(t.memory_source===void 0||r.has(String(t.memory_source)))&&(t.worker_source===void 0||r.has(String(t.worker_source)))&&(t.validation_source===void 0||r.has(String(t.validation_source)))}function MD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")&&typeof t.published_unknown=="number"&&typeof t.newer_published=="number"&&(t.replacement==="none"||t.replacement==="pending"||t.replacement==="in-progress")&&(t.checked_at===null||typeof t.checked_at=="string")&&(t.newest_published_version===void 0||t.newest_published_version===null||typeof t.newest_published_version=="string")&&(t.major_held===void 0||typeof t.major_held=="number")&&(t.checks===void 0||typeof t.checks=="number")&&(t.hold_reason===void 0||t.hold_reason===null||typeof t.hold_reason=="string")&&(t.major_hold===void 0||t.major_hold===null||LD(t.major_hold))}function LD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{randomUUID as jD}from"node:crypto";import{mkdir as BD,readFile as $D,rename as ND,writeFile as GD}from"node:fs/promises";import{dirname as WD}from"node:path";function gy(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await $D(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=HD(s);return UD(i)?i.registrations:[]}async function o(s){await BD(WD(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${jD()}.tmp`,a={version:1,registrations:[...s]};await GD(i,`${ot(a,{keyedMapCollapse:!0})}
|
|
90
|
-
`,{encoding:"utf8",mode:384}),await
|
|
91
|
-
`),e.command,...e.args]}function
|
|
92
|
-
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function
|
|
93
|
-
`),aliases:n}}function
|
|
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
|
|
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
|
|
96
|
-
`)}function
|
|
97
|
-
`);
|
|
85
|
+
`),aliases:r}}function Ob(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 tC=Cb.plugin(wc,ya);function Fb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function Ib(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 Fo=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 Gc(e){let t=e.etags??Fb(),r=new tC({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(Ls(f)===304){if(u===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(c.cacheKey)} without a held answer to reuse`,{cause:f});let y=Mb(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 Ls(f)===401?new Fo({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=Db(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=Ob(u,p),f=nC(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:oC(c.map(({input:h})=>h.actor))}),g.forEach((h,R)=>{let T=c[R];h.value===null?T.reject(new Error(`GitHub returned no ${h.read.kind} #${h.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(h.value,"graphql"):h.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=Ls(u)===401?new Fo({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=Ib(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,!rC(h.headers))break;y+=1}return{data:u,headers:p,requestCount:g,quotaFree:f}},async graphql(c,u={},p){try{let g=await r.graphql(c,u);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),g}catch(g){throw Ls(g)===401?new Fo({cause:g}):g}}}}function rC(e){let t=Ea(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function js(e){let t=Ls(e),r=Mb(e);return t===429||t===403&&Ea(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Ls(e){if(hn(e))return typeof e.status=="number"?e.status:void 0}function Mb(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 nC(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 oC(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 jb="rate_limit",Bb={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 Hc=15e3,Io=.15,Sa=[{at_or_below_fraction:0,every_ms:Hc,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Io,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 R5=60*6e4,Wc=2;function $b(e,t){let r=Lb(e),n=Lb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Qr){let l=Bb[a],d=n[l],c=aC(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 Uc(e){try{let t=await e.transport();return $b(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 qc(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=qc(e);if(r==null)return Ta(Io).every_ms;let n=Ta(r.fraction);if(r.remaining>0)return n.every_ms;let o=Gb(t.now,r.reset_at);return o==null?n.every_ms:Math.max(Hc,Math.min(n.every_ms,o))}function Kc(e,t=Io){return Math.ceil(e.limit*t)}function Nb(e,t,r=Io){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Kc(n,r)?"reserved":"open"}function Vc(e){let t=e.reservedFraction??Io,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*Wc,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*Wc,s=Gb(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=iC(r,t),d=qc(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`:sC(l,d,r,t)}}function zc(e){if(!Yc(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 sC(e,t,r,n){if(t==null)return r.detail;let o=Kc(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 iC(e,t){let r="unknown";for(let n of Qr){if(e.pools[n]==null)continue;let o=Nb(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 aC(e,t,r){if(!Yc(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 Jc(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${jb}`,{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 Gb(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 Lb(e){return Yc(e)?e:{}}function Yc(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as lC}from"node:child_process";import{existsSync as dC,readFileSync as Ca,readdirSync as cC}from"node:fs";import{dirname as uC,join as Hn}from"node:path";function Bs(e){let t=Ps(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Ao(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Wb(e){let t=[],r=[];for(let n of e.workers){let o=Bs(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Ps(n).memory_max??Ps(n).memory_high)==null?"this Worker declared no memory budget and the host derived no ceiling for it, so the sampler has none to enforce":"this Worker's declared memory budget cannot be reduced to bytes, so the sampler has no ceiling to enforce"});continue}let s=e.rss[n.worker_id];if(typeof s!="number"||!Number.isFinite(s)){r.push({worker_id:n.worker_id,reason:"the host produced no RSS reading for this Worker on this tick, and an unmeasured Worker is never killed on suspicion"});continue}if(!(s<=o.bytes)){if(e.sources?.[n.worker_id]==="cgroup"&&o.name==="MemoryMax"){r.push({worker_id:n.worker_id,reason:`this Worker's ${o.name} of ${o.declared} is held by the kernel on its own cgroup, and the reading is memory.current \u2014 which counts reclaimable page cache the kernel drops before it kills anything, so the daemon does not duplicate an enforcement that can tell cache from anonymous memory`});continue}t.push(pC(n,o,s))}}return{terminations:t,unenforceable:r}}function pC(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 fC=4096;function Hb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=hC(e,r,t);for(let[u,p]of a){let g=yC(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=RC(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 gC="/sys/fs/cgroup";function hC(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??gC,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=mC(s,r);for(let l of i)for(let d of a){let c=Hn(d,l.unit);if(dC(Hn(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function mC(e,t){let r=t.selfCgroupPath??bC(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Hn(e,s));let a=uC(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(Hn(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function bC(){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 yC(e){let t;try{t=Ca(Hn(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:kC(e)}}function kC(e){let t;try{t=Ca(Hn(e,"cpu.stat"),"utf8")}catch{return null}return wC(t)}function wC(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 RC(e,t){return t.procRoot!=null||e==="linux"?TC(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?vC(_C(t.psTable)):new Map}function _C(e){try{return(e??xC)()}catch{return""}}function xC(){return lC("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var EC=1024;function vC(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=SC(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*EC,cpuSeconds:a})}return t}function SC(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 TC(e){let t=new Map,r;try{r=cC(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=Ca(Hn(e,n,"stat"),"utf8")}catch{continue}let s=AC(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*fC,cpuSeconds:s.cpuTicks/PC})}return t}var PC=100;function AC(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 CC=["api","graphql"],X5=hc(CC);var Ub=100,Xc=6e4,DC=2*Xc,OC=7*24*60*60*1e3,Qc=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 Zc(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new Qc(r.project_label,r.token_ref,t)}function Jb(e,t={now:new Date(0).toISOString()}){ey(e);let r=t.closedWindowMs??OC,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 FC(e,t,r){let n=Mo(t),o=Mo(n.data),s=Array.isArray(n.errors)?n.errors.map(Mo):[],i=$C(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=>Vb(f.path,l)||Vb(f.path,d));if($s(p)){let f=zb(p.open_pull_requests),y=zb(p.open_issues),h=NC(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||ty(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 IC(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 Yb(e){if(e.projects.length===0)return IC(e.now);if(Zc(e.projects,e.hostTokenRef),e.transport.conditionalList)return await LC(e);let t=Jb(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return FC(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 MC={key:"redskilled repository activity poll",budget:"rest"};async function LC(e){ey(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=Jb(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:MC});i+=y.requestCount;let h=p==="open-prs"?y.data:y.data.filter(R=>!$s(R.pull_request));u.push(p==="recently-closed"?h.filter(R=>Da(R.closed_at)>=n.closed_since).length:h.length),a=qb(a,BC(y.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=js(p);a=qb(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 Qb(e){let t=e.stalenessMs??DC,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 Xb(e){if(!$s(e))return!1;let t=e;return t.version===1&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&Number.isInteger(t.request_count)&&$s(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Zb(e){let t=e.endpoint==null?void 0:jC(e.endpoint),r=Gc({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 jC(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 BC(e){let t=Kb(e,"x-ratelimit-remaining"),r=Kb(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function qb(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 Kb(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 ey(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Ub)throw new Error(`redskilled activity fetch spans at most ${Ub} 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 $C(e,t){let r=Mo(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(ty),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 ty(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 Vb(e,t){return Array.isArray(e)&&e.includes(t)}function zb(e){let t=Mo(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function NC(e){let t=Mo(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Mo(e){return $s(e)?e:{}}function $s(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Da(e){return typeof e=="string"?e:""}function ny(e,t){let r=[...e].sort((i,a)=>(Ns(a.ts)??0)-(Ns(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(ry),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=GC(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:ry(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function ry(e){return{kind:e.kind,id:e.id,pid:e.pid,ts:e.ts,last_seen:e.last_seen,last_phase:e.last_phase,sender_class:e.sender_class,confidence:e.confidence,signal:e.signal,evidence:e.evidence[0]??null}}function GC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>2||n.project_label==null||n.project_label===""||Ns(n.ts)==null)continue;let o=t.get(n.project_label)??[];o.push(n),t.set(n.project_label,o)}return[...t.entries()].filter(([,n])=>n.length>=3).map(([n,o])=>{let s=o[0],i=Ns(s.ts),a=Math.min(...o.map(d=>Ns(d.ts))),l=s.detail?.trim()||s.evidence[0]?.trim();return l==null||l===""?null:{project_label:n,count:o.length,span_ms:Math.max(0,i-a),latest_refusal:l}}).filter(n=>n!=null).sort((n,o)=>o.count-n.count||o.span_ms-n.span_ms)[0]??null}function eu(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Number.isInteger(t.count)&&Array.isArray(t.recent)}function Ns(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var WC=3e4,HC=["logs","vitals","display"];function sy(e,t){if(t===void 0)return e;let r=HC.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:UC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:qC},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var UC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},qC={last_line:null,published_at:null,source:null};function iy(e){let t=e.stalenessMs??WC,r=tu(e.now),n=e.sampledAt==null?null:tu(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=>VC(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:QC({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:YC(a),known_projects:JC(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:Vc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Qb({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:ny(e.deaths,e.recentDeathLimit??4)},engine:KC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function KC(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 VC(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Bs(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=tu(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:zC(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function zC(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 JC(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 YC(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 QC(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 tu(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function ru(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(XC))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(ZC))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Xb(t.repository_activity))&&(t.github_balance===void 0||zc(t.github_balance))&&(t.deaths===void 0||eu(t.deaths))&&(t.engine===void 0||eD(t.engine))&&(t.metrics===void 0||Lh(t.metrics))}function XC(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 ZC(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 eD(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 ay={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 ly(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 kt=e=>`\x1B[${e}m`,Gs=kt("48;2;114;47;55"),nu=kt("48;2;88;36;42"),mn=kt("38;2;255;255;255"),ou=kt("38;2;201;150;158"),Ws=kt("38;2;255;214;214"),Hs=kt("39"),jt=kt("38;2;224;138;148"),su=kt("38;2;240;200;120"),iu=kt("38;2;240;110;120"),au=kt("38;2;255;214;214"),lu=kt("38;2;146;84;94"),du=kt("38;2;255;95;95"),Cr=kt("49"),lr=kt("0"),Oa=kt("1"),Fa=kt("22");var tD=/\x1b\[[0-9;]*m/g,rD=/(\x1b\[[0-9;]*m)/,nD=/^\x1b\[[0-9;]*m$/;function Un(e){return e.replace(tD,"")}function oD(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Qt(e){return[...Un(e)].length}function Xe(e,t){if(t<=0)return"";if(Qt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(rD))if(i!==""){if(nD.test(i)){s+=i,o=!oD(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?lr:""}`;s+=a,n+=1}}return`${s}\u2026${o?lr:""}`}function Us(e,t){return e+" ".repeat(Math.max(0,t-Qt(e)))}function cu(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 dr(e){if(!Number.isFinite(e)||e<=0)return"0B";let t=["B","K","M","G","T"],r=e,n=0;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r>=100||n===0?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")}${t[n]}`}function qs(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function bn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return qs(e);if(e<=0)return"0";let t=(Math.round(e*10)/10).toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function yn(e){if(e==null||!Number.isFinite(e)||e<0)return"\u2014";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function Lo(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",uu="!lapsed",Vs="\u21E1",Dr="\u2020",jo="\u25D0",Bo="\u25EF",pu="\u21B3",fu="redskilled unreachable \u2014 Worker state unknown";function $o(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 gu(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 hu(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 kn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Bt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},sD=" ",dy="\u2588",iD="\u25B6",aD="\u2717",lD="\u2591",dD=new Set(["gate","push-pr","merge","cascade"]),cD=new Set(["requeue"]),uD="repair";function Js(e){return e.display?.origin===uD}function No(e,t=Bt){let r=zs(e,t.project),n=$o(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>ja(y,t,e.generated_at)),i=ED(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(vD(s[h],i),t.maxWidth)})),l=hu(a,o,t.maxWidth),d=fD(e,t,n,r),c=n.length-o.length,u=[d.line,...kD(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(...bD(e,t)),u.push(...mD(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Bt.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Xe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:kn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function ja(e,t,r){let n=e.display??ay,o=Js(e),s=[n.runner,n.model==null?null:cu(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&dD.has(n.phase),a=o||i||n.origin!=null&&cD.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:uy(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:yn(ly(e,r)),eta:n.eta==null?"":`eta=${yn(n.eta*1e3)}`,hb:pD(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":xD(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 pD(e,t){if(e.wait_kind==null||e.wait_subject==null||e.wait_pid==null||e.wait_pid<=0||e.wait_started_at==null)return null;let r=Date.parse(e.wait_started_at),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:`${e.wait_kind}=${e.wait_subject} ${yn(Math.max(0,n-r))}`}function uy(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 dy.repeat(Math.floor(t));let o=e.failed?aD:iD;return`${dy.repeat(n)}${o}${lD.repeat(Math.floor(t)-n-1)}`}function fD(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=_D(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=[gD(l??"host",c,d!=null&&d.current===!1?Vs:"")];(n==="unregistered"||n==="name-only")&&g.push(Ks),n==="lapsed"&&g.push(uu);let f=p?.history_48h==null?null:yD(p.history_48h);f!=null&&g.push(Xr(f));let y=e.workers.filter(Js).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Xr(`workers=${M} coding +`)} ${Gs}${mn}${y} repairing${Cr}${jt}`)}else g.push(Xr(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Xr(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(Xr(RD(i))),a!=null&&g.push(`${Gs}${mn}${a}${Cr}${jt}`),s.open_pull_requests!=null&&g.push(Xr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Xr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Xr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let R=p==null?null:py(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=Lo(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${hD(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 ")}${lr}`,D=R!=null&&Qt($)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${lr}`:$;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 gD(e,t,r){return`${nu}${mn}${su}\xBB${mn} ${Oa}${e}${Fa} ${ou}v${t}${r}${mn}${Cr}${jt}`}function Xr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ws}${n}${Hs}${o}${jt}`)}function hD(e){return yn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function py(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${bn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${bn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${bn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function mD(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?Bo:jo,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 bD(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 yD(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${bn(t)} ${mu(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${bn(r)} ${mu(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function kD(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)]:[cy("tokens",r.history_48h.tokens_per_hour,t),cy("Tickets",r.history_48h.tickets_per_hour,t)]}var La=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function cy(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${bn(o)}/h ${mu(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 ${wD(t)} \xB7 ${a}${l}`,r.maxWidth)}function wD(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 mu(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function RD(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${dr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${dr(e.memory_used_bytes)}/${dr(e.memory_ceiling_bytes)}${t}`}function _D(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 xD(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 ED(e){let t=Object.fromEntries(kn.map(r=>[r,0]));for(let r of e)for(let n of kn)t[n]=Math.max(t[n],Qt(r[n]));return t}function vD(e,t){let r=kn.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?Qt(e[o]):t[o])));return`${Cr}${jt}${n.join(sD)}${lr}`}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}${mn}${t.trimEnd()}${Cr}${jt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${iu}${n}`).replace("\u25B6",`${au}\u25B6`).replace("\u2717",`${du}\u2717`).replace(/░+/g,n=>`${lu}${n}`)+jt;let r=t.indexOf("=");return r>0?`${Ws}${t.slice(0,r+1)}${Hs}${t.slice(r+1)}${jt}`:t}function yu(e){return Object.freeze({none:!0,reason:e})}function $a(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function bu(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=>bu(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=bu(o,t);return Object.freeze(r)}finally{t.delete(e)}}function SD(e){let t=bu(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Go(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=SD(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ne={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function qn(e,t=Ne){let r=zs(e,t.project),n=$o(e,t),o=Ia(e,t),s=OD(e,t.project,r),i=PD(e,t,n,r,s.prose),a=gu({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:jD(i,TD(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Qt(f)<=t.maxWidth)break}let d=Xe(l.line,t.maxWidth),c=l.detail==="workers"?ID(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?MD(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 _u(e){let t=e.options??Ne,r=Xe(fu,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 TD(e,t){return e==="projects"?t.map(LD):[]}function PD(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${ku(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(Ru(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${ku(r,r.length)}`),s.push(Ru(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${ku(r,r.length)}`),s.push(Ru(e,t)),s.push(Ks)):s.push(o),s.push(fy(e));let a=AD(e);a!=null&&s.push(a);let l=CD(e);l!=null&&s.push(l),e.staleness.stale&&s.push(gy(e));let d=s.join(" ");return!i||Qt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,fy(e),e.staleness.stale?gy(e):null].filter(c=>c!=null).join(" ")}function ku(e,t){let r=e.filter(Js).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function fy(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 AD(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Bo} quota spent`:t.posture==="reserved"?`${jo} quota band`:null}function CD(e){let t=e.deaths;if(t==null)return null;let r=t.sender_attributed_count??t.count,n=t.sender_attributed_count===void 0?t.latest:t.latest_sender_attributed??null;if(r<=0||n==null)return null;let o=t.boot_loop;if(o!=null){let s=Lo(o.latest_refusal);return`${Dr}${r} boot-refused \xD7${o.count} in ${DD(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Dr}${r} ${n.sender_class}`}function DD(e){return yn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function OD(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return Go({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:yu("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 Go({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${wu(n.at)}`}`,repair:$a()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${wu(n.registered_at)})`;return Go({state:`project unknown \u2014 ${t} lapsed at ${wu(n.at)}${o}`,repair:$a()})}return Go({state:`project unknown \u2014 ${t} lapsed`,repair:$a()})}return r==="unresolved"?Go({state:"project unknown \u2014 this directory resolved to no project",repair:yu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function wu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function Ru(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?`${dr(r)}/${dr(n)}`:dr(r)}function gy(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function FD(e,t,r,n){let o=r.map(s=>Ba(s,Us(e[s],t[s])));return Xe(`${Cr}${jt}${o.join(" ")}${lr}`,n)}function ID(e,t,r){let n=e.map(a=>ja(a,t,r)),o=kn.filter(a=>n.some(l=>Qt(l[a])>0)),s=[...o],i=hy(n,s);for(;s.length>1&&my(i,s)>t.maxWidth;)s.pop(),i=hy(n,s);return{lines:n.map(a=>FD(a,i,s,t.maxWidth)),degraded:s.length<o.length||my(i,s)>t.maxWidth}}function hy(e,t){let r=Object.fromEntries(kn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Qt(n[o]));return r}function my(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function MD(e,t){let r=Lo(e.log.last_line);return r==null?null:Xe(` ${pu} ${by(e,t.mode)}: ${r}`,t.maxWidth)}function by(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function LD(e){return`${e.project_label} ${e.worker_count}w ${dr(e.observed_rss_bytes)}`}function jD(e,t,r){return[e,...t].join(r)}var Na=1;async function Ys(e,t){return await oa(e,t,"redskilled daemon")}function ky(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:Na,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:GD(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:$h(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:WD(e)}}function GD(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:vm(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 WD(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 wy(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||VD(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Nh(t.budget_accounting)&&(t.scope===void 0||km(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Fs))&&(t.demand===void 0||im(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(UD))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(qD))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(KD))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(HD))&&(t.upgrade===void 0||zD(t.upgrade))}function HD(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 UD(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 qD(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 KD(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 VD(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 zD(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||JD(t.major_hold))}function JD(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 YD}from"node:crypto";import{mkdir as QD,readFile as XD,rename as ZD,writeFile as eO}from"node:fs/promises";import{dirname as tO}from"node:path";function Ry(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await XD(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=rO(s);return nO(i)?i.registrations:[]}async function o(s){await QD(tO(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${YD()}.tmp`,a={version:1,registrations:[...s]};await eO(i,`${ot(a,{keyedMapCollapse:!0})}
|
|
90
|
+
`,{encoding:"utf8",mode:384}),await ZD(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 rO(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ot(t)}catch{return null}}}function nO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Array.isArray(t.registrations)&&t.registrations.every(Fs)}import{spawnSync as Ha}from"node:child_process";import{existsSync as Tu}from"node:fs";import{delimiter as pO,join as Dy}from"node:path";import{join as _y}from"node:path";import{existsSync as oO}from"node:fs";import{createRequire as sO}from"node:module";var xy="redskilled-job-object.node",Kn=100;function Wo(e){return{available:!1,reason:e}}function iO(e,t,r){return[_y(r,"prebuilds",`${e}-${t}`,xy),_y(r,"native","build","Release",xy)]}function Ey(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??lO(),o=e.exists??oO,s=iO(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??sO(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 aO(l)?{available:!0,binding:l}:Wo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function aO(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function lO(){return new URL("..",import.meta.url).pathname}function vy(e){let t=e??{},r=[],n=dO(t);n==null&&(t.memory_max??t.memory_high)!=null&&r.push("the declared memory budget could not be reduced to bytes, so the job carries no memory ceiling");let o;return t.cpu_weight!=null&&(t.cpu_weight<Kn?o=Math.max(1,Math.min(100,Math.round(t.cpu_weight))):r.push(`cpu_weight=${t.cpu_weight} is at or above the fair share of ${Kn}, and Windows CPU rate control is an absolute cap rather than a share, so no rate limit is set`)),{...n!=null?{memory_limit_bytes:n.bytes,memory_budget_name:n.name,memory_budget_declared:n.declared}:{},...o!=null?{cpu_rate_percent:o}:{},kill_on_close:!0,...r.length>0?{note:r.join("; ")}:{}}}function dO(e){return Bs({budget:e})}var Ga=5,Sy=19;function xu(e){return{available:!1,reason:e}}var cO="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 Py(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=Ga;else if(r.cpu_weight<Kn){let a=Math.round(Sy*(Kn-r.cpu_weight)/Kn);o=Math.min(Sy,Math.max(Ga,a))}else o=Ga,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${Kn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${Ga}`);let s=Ty(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=Ty(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:cO,...n.length>0?{note:n.join("; ")}:{}}}function Ay(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 ${uO(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
|
|
91
|
+
`),e.command,...e.args]}function Cy(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 Eu(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 Ty(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function uO(e){return`'${e.replace(/'/g,"'\\''")}'`}var Oy="REDSKILLED_PLACEMENT",Wa="red-worker",vu="/bin/sh";function Fy(e=process.env,t=process.platform){let r=xu(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:Ey({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:fO(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&Tu(Dy(o,"systemd","private"));return{platform:t,systemdRun:jy("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function fO(e){return Tu(vu)?{available:!0,shell:vu,nice:jy("nice",e)}:xu(`no POSIX shell was found at ${vu}, so there is nothing to apply rlimits or priority in`)}function Iy(e=process.env){let t=(e[Oy]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function gO(e,t,r=Wa){return My(e,t,r).replace(/\.service$/,"")}function My(e,t,r=Wa){return`${Su(r,"red-worker",24)}-${Su(e,"project",32)}-${Su(t,"worker",32)}.service`}function Ly(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 ${Oy}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return mO(e,t,r,n,o,i);if(e.probes.platform==="darwin")return hO(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=My(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=Eu(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 hO(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=Py(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=Cy(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:Ay({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 mO(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=vy(r),l=gO(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}),...bO(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,Eu(e.budget))}}function bO(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function jy(e,t){for(let r of(t.PATH??"").split(pO)){if(!r)continue;let n=Dy(r,e);if(Tu(n))return n}return null}function Su(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function Pu(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 By=3e4;function $y(e){return e.unit!=null&&e.unit!==""?yO(e.unit):Qe(e.pid)}function yO(e){let t=Ha("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var kO="REDSKILLED_UNIT_DISCOVERY",Ny="(unowned)";function Gy(e){let t=Ha("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 wO(e=process.env){let t=(e[kO]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function Wy(e,t,r=process.env){return wO(r)&&e===t}function Hy(e=Wa){let t=Ha("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 Uy(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:Ny,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 qy(e){return e.project_label.trim()!==""?e:{...e,project_label:Ny,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 Ky(e){if(e.unit!=null&&e.unit!==""){let t=Ha("systemctl",["--user","stop",e.unit],{stdio:"ignore"});return t.error==null&&t.status===0}try{return process.kill(e.pid,"SIGTERM"),!0}catch{return!1}}var Zs=50,Cu=15e3,QH=2*Cu;function RO(e,t=Zs){if(Du(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 zy(e,t={}){let r=t.batchSize??Zs;if(Du(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=Xs(t),n=Xs(r.data),o=Array.isArray(r.errors)?r.errors.map(Xs):[],s=SO(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=PO(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=>TO(u.path,a));return s.exhausted||Xy(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: ${Au(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function _O(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:Zs,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function Yy(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:Zs,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:e.map(n=>({project_label:n.project_label,outcome:"unconfigured",depth:null,detail:`project ${JSON.stringify(n.project_label)} was not counted because this host polls no tracker: ${r}`}))}}async function Qy(e){if(e.projects.length===0)return _O(e.now);if(e.transport.conditionalList)return await EO(e);let t=e.batchSize??Zs,r=RO(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=zy(s,{batchSize:t});try{let a=await e.transport(i.query),l=Jy(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 xO={key:"redskilled queue poll",budget:"rest"};async function EO(e){Du(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=zy([s],{batchSize:1}),d=Jy(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:xO});o+=i.requestCount;let a=i.data.filter(l=>!Zy(l.pull_request)).length;n=Qs(n,vO(i.headers)),r.push({project_label:s.project_label,outcome:"counted",depth:a,detail:`project ${JSON.stringify(s.project_label)} has ${a} item(s) matching its selector`})}catch(i){let a=js(i);n=Qs(n,{remaining:null,reset_at:null,exhausted:a}),r.push({project_label:s.project_label,outcome:a?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(s.project_label)} answered: ${i instanceof Error?i.message:String(i)}`})}return{version:1,fetched_at:e.now,request_count:o,project_count:r.length,batch_size:1,rate_limit:n,projects:r}}function Du(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 vO(e){let t=Vy(e,"x-ratelimit-remaining"),r=Vy(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function Vy(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 SO(e,t){let r=Xs(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null;return{remaining:n,reset_at:o,exhausted:t.some(Xy)||n===0}}function Xy(e){return e==null?!1:Au(e.type)==="RATE_LIMITED"||/rate limit/i.test(Au(e.message))}function TO(e,t){return Array.isArray(e)&&e.includes(t)}function PO(e){let t=Xs(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Xs(e){return Zy(e)?e:{}}function Zy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Au(e){return typeof e=="string"?e:""}function e0(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(AO,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=CO?Math.max(t,3e4):o<=DO?Math.max(t,2e4):t}var AO=1e5,CO=250,DO=1e3;var OO={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},FO=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],IO=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function t0(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...OO};for(let n of FO){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of IO){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{randomInt as BO}from"node:crypto";import{spawn as $O}from"node:child_process";import{appendFileSync as NO,mkdirSync as GO}from"node:fs";import{dirname as WO}from"node:path";import{delimiter as r0,dirname as MO}from"node:path";function LO(e,t=r0){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function jO(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=MO(t);return r===""||r==="."?null:r}function n0(e,t=process.execPath,r=r0){let n=LO(e,r),o=jO(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"}},Ou="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",o0=4,HO=Ou.length**o0;function Iu(e,t=BO){let r=new Set(e);for(let n=0;n<HO;n+=1){let o="h";for(let s=0;s<o0;s+=1)o+=Ou[t(Ou.length)];if(!r.has(o))return o}throw new Ho("redskilled exhausted the host Worker id space")}function UO(e){if(e==null||e.trim()==="")return{ready:!1};let t=WO(e);try{return GO(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})`}: ${Fu(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function qO(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{NO(t,yt().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 KO(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 VO(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 s0(e){let{spec:t,admission:r}=e;VO(r),KO(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||Iu(e.liveWorkerIds??[]),i=e.probes??Fy(n),a=Rm(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),l=e.openLog===!1?{ready:!1}:UO(a),d=l.ready,c={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:n0(t.env?.PATH??n.PATH,e.execPath??process.execPath)},u=Ly({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??Iy(n),probes:i,pipeOutput:d}),g=(e.spawnFn??$O)(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&&qO(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?zO(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 zO(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: ${Fu(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)}: ${Fu(i)}. ${o}`}}return{job:s}}function Fu(e){return e instanceof Error?e.message:String(e)}import{execFile as JO}from"node:child_process";var YO="refs/heads/red-trunk";function Ua(e,t){return new Promise((r,n)=>{JO("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function i0(e){await Ua(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Ua(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 Ua(e.workspace_path,["update-ref",YO,t]),t}async function a0(e){let t=await Ua(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 QO,stat as XO}from"node:fs/promises";var ZO=16*1024;async function l0(e,t=ZO){let r;try{r=(await XO(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await QO(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 e1(o)}function e1(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 b1}from"node:child_process";import{existsSync as y1,readdirSync as k1}from"node:fs";import{dirname as w1,join as k0,resolve as R1}from"node:path";var t1="<version>";function wn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():t1;return[`npx -y -p ${$n}@${n}`,e,...t].join(" ")}function cr(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 Mu(e,t){let r=cr(e),n=cr(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var wU=4*60*60*1e3;zr();zr();import{spawnSync as r1}from"node:child_process";import{randomUUID as n1}from"node:crypto";import{mkdir as o1,rm as s1,writeFile as i1}from"node:fs/promises";import{existsSync as a1,mkdirSync as l1,renameSync as d1,writeFileSync as c1}from"node:fs";import{homedir as u1}from"node:os";import{dirname as d0,join as ei}from"node:path";var Xt="redskilled.service",Lu="REDSKILLED_SUPERVISED",p1="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function f1(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||ei(e.HOME?.trim()||u1(),".config");return ei(t,"systemd","user")}function Uo(e=process.env){return ei(f1(e),Xt)}function c0(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:Xt,unitPath:Uo(r),command:n.command,args:o,text:g1(n.command,o,e)}}function g1(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${p1}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(f0).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${Lu}=1"`,`Environment="REDSKILLED_SESSION=${g0(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
|
|
96
|
+
`)}function h1(e=process.env){return ei(`${Uo(e)}.d`,"10-current-entry.conf")}function u0(e){return ei(`${e}.d`,"10-current-entry.conf")}function p0(e,t,r={}){let n=h1(r.env??process.env),o=`${n}.${process.pid}.${n1()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(f0).join(" ")}`,""].join(`
|
|
97
|
+
`);l1(d0(n),{recursive:!0,mode:448}),c1(o,i,{encoding:"utf8",mode:384}),d1(o,n);let a=(r.run??Ka)(["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 f0(e){return/[\s"'\\$%]/.test(e)?`"${g0(e)}"`:e}function g0(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function h0(e,t={}){let r=t.writeFile??m1,n=t.removeFile??y0,o=t.run??Ka,s=[];return await r(e.unitPath,e.text),await n(u0(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(qa("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(qa("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function m0(e={}){let t=e.removeFile??y0,r=e.run??Ka,n=Uo(e.env??process.env),o=[qa("disable",r,["systemctl","--user","disable","--now",Xt])];return await t(n),await t(u0(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(qa("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function b0(e={}){let t=e.exists??a1,r=e.run??Ka,n=Uo(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Xt]).status===0,i=o&&r(["systemctl","--user","is-active",Xt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Xt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Xt}`}]:[];return{unitName:Xt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function qa(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 m1(e,t){await o1(d0(e),{recursive:!0}),await i1(e,t,{encoding:"utf8",mode:420})}async function y0(e){await s1(e,{force:!0})}function Ka(e){let t=r1(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 w0=75,_0=9e5,R0="redskilled-replacement-entry-unresolved",_1="REDSKILLED_NO_REGISTRY_PROBE",x0="REDSKILLED_BORN_BY_REPLACEMENT";function E0(e=process.env){return e[x0]==="1"}function v0(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function S0(e){let t=e.running.trim();if(ti(t))return null;let r=e.newest?.trim()??"",n=cr(r),o=cr(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:x1(n.major,e.supervised)}}function x1(e,t){let r=`install the ${e}.x bundle (update this machine's plugin pin), then `;return t?`${r}re-point the unit and restart it: ${wn("red-skills-redskilled",["unit","install"])} && systemctl --user restart redskilled.service`:`${r}stop this daemon \u2014 the next client start resolves the newly installed bundle`}function T0(e){let t=e.running.trim();if(ti(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||cr(r)===null?{act:"hold",reason:"published-unknown"}:Mu(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function ti(e){let t=e.trim();return cr(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function P0(e=process.env){return e[Lu]==="1"}var ju=class extends Error{code=R0;searched;constructor(t,r){super(`${R0}: 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
|
|
101
|
-
`}function w1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function R1(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||!Number.isInteger(t.pid)||t.pid<=0)return!1;for(let r of["start_time","session_key_hash","machine_id_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}async function j0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??To,o=e.clock??(()=>new Date().toISOString()),s=e.launch??Xy,i=e.refreshTrunk??Zy,a=e.countBaseMovement??e0,l=e.ceiling??ua();e.repositoryActivity!=null&&Jc(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??F0(),c=e.leaseStore??I0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??fa(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Ds(t.machineClaimPath,p,{clock:o});await E1(S1(t.socketPath),{recursive:!0,mode:448});let[f,y]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),h=Date.parse(o()),R=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&y!=null&&f.pid===y.pid&&f.start_time===y.start_time&&f.socket_path===t.socketPath&&y.socket_path===t.socketPath&&Number.isFinite(h)&&Number.isFinite(R)&&h-R>=bh&&await Yd(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:y.pid,startTime:y.start_time,uid:y.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new Ar(t.socketPath):new Jr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new Ar(t.socketPath,D.lease);let M;try{M=await _h(t.socketPath,async()=>{let[b,A]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return b!=null&&b.pid!==d.pid&&Qe(b.pid)?!0:A!=null&&A.socket_path===t.socketPath&&A.pid!==u.pid&&Qe(A.pid)})}catch(b){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),b}let N=o(),U=e.eventLane??Jh(t.eventLanePath),G=e.registrationIntentStore??gy(t.registrationIntentPath),F=e.liveness??Oy,W=e.livenessGraceMs??Dy,q=e.stopWorker??$y,oe=e.unitInventory??(()=>My(t.machineClaimPath,Ao({machineIdHash:t.machineIdHash}))?Ly():[]),ae=e.unitMainPid??Iy,se=e.treeSampler??Lb,Z=e.readLogTail??t0,pe=e.sampleMs??mh,Ae=e.leaseRenewMs??zd,Ee=e.registrationSustainMs??yh,we=e.publishedVersion??(b=>E0(b)),J=e.replaceCheckMs??h0,de=e.publishedProbeTimeoutMs??gh,_e=e.localPublishedEvidence??(b=>v0(b,e.replacementIO?.env??process.env)),Ce=e.bornByReplacement??b0(),ve=e.replaceBootCheckMs??hh,Re=e.supervised??R0(),Se=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??zc,xe=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??fe?.transport,Nt=Fe?.unconfiguredReason??wh,nn=Fe?.intervalMs??Su,on=e.demandMs??15e3,go=e.demandBackoffMs??3e4,ue=new Map,Gt=new Map,ct=new Set,et=new Map,Rt=new Map,lt=[],ut=[],_t=e.deaths===void 0?void 0:[...e.deaths],xt=await G.read().catch(()=>[]),Wr=Date.parse(N),De=new Map,Le=new Map;for(let b of xt){let A=Date.parse(b.renew_by);!Number.isFinite(Wr)||!Number.isFinite(A)||A>=Wr?De.set(b.project_label,b):Wr-A<=b.renew_within_ms&&Le.set(b.project_label,b)}let Q=new Set,C={},w=null,I=null,L=null,B=!1,K=0,X=null,ye="none",je=null,Be=null,er=null,Rr=null,Ve=null,_r=null,At=[],tr=[],re=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),ke=null,Ie={},Wt=!1,Ct,Ht,sn,Pn,An,Cn,Ue,Dn,an,Hr,tt=!1,ho=!1,$e=null,On,Ur=new Promise(b=>{On=b});function qr(b){cf(b);let A=Date.parse(b),j=km(De.values(),A);for(let H of j.lapsed){De.delete(H.project_label);let z=Ve?.projects.find(le=>le.project_label===H.project_label),ne=[...ue.values()].some(le=>le.project_label===H.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(H.project_label,H),ax(H,A)}return j.lapsed.length>0&&mo(),j.lapsed}function mo(){let b=new Map(Le);for(let[A,j]of De)b.set(A,j);G.replace([...b.values()]).catch(()=>{})}function ax(b,A){let j=Number.isFinite(A)?new Date(A).toISOString():b.renew_by;At.push({project_label:b.project_label,registered_at:b.registered_at,at:j,renew_by:b.renew_by,renewals:b.renewals,sustains:b.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(b.project_label)}: it stood until ${b.renew_by} and nothing renewed it \u2014 no session spoke for it, and no poll found it work or a Worker to hold it up`}),At.length>Ts&&At.splice(0,At.length-Ts)}function cf(b){if(De.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j={};for(let le of ue.values())j[le.project_label]=(j[le.project_label]??0)+1;let H=Ve==null?Number.NaN:Date.parse(Ve.fetched_at),z=new Map((Ve?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...De.values()]){let Ye=Number.isFinite(H)&&A-H<=le.renew_within_ms?z.get(le.project_label):void 0,bo=dc(le,{now:b,...Ye==null?{}:{queue:{outcome:Ye.outcome,depth:Ye.depth}},liveWorkers:j[le.project_label]??0});bo.registration!==le&&(De.set(le.project_label,bo.registration),ne=!0)}ne&&mo()}function uf(b){if(Le.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j=new Map((Ve?.projects??[]).map(z=>[z.project_label,z])),H=!1;for(let[z,ne]of[...Le]){if(A-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),H=!0;continue}let le=j.get(z),rt=dc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ue.values()].filter(Ye=>Ye.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(De.set(z,rt.registration),Le.delete(z),H=!0):rt.verdict==="drained"&&(Le.delete(z),H=!0)}H&&mo()}function Oi(){let b=o();return qr(b),py({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:um(g.claimPath,p,u),workers:[...ue.values()],registrations:[...De.values()],demand:_r,lapses:At,stops:tr,orphanedRegistrations:[...re.values()],birthLatches:rm(Ie,Date.parse(b)),queue:Ve,published:{version:I,checkedAt:L,newer:B,replacement:ye,newest:je,majorHold:Be,checks:K,holdReason:X}})}function Fi(){return Zb({hostState:Oi(),ceiling:l,rss:C,sampledAt:w,logLines:Object.fromEntries(et),displays:Object.fromEntries(Rt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:er,githubBalance:Rr,..._t===void 0?{}:{deaths:_t},metrics:Dh({observations:lt,outcomes:ut,now:o()})})}function lx(b,A){let j=Fh(lt,b,A,o());lt=j.observations,U.recordWorker(j.record).catch(()=>{})}function dx(b){ut=Nn([...ut,b],A=>A.ts,{now:o()})}async function Gl(){return fe==null||fe.projects.length===0?null:(er=await Hb({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),er)}async function pf(){return xe==null?null:(Rr=await Nc({transport:xe.transport,now:o()}),Rr)}function cx(){if(tt||an!=null||xe==null)return;let b=()=>{an=void 0,pf().catch(()=>{}).then(()=>{if(tt)return;let A=xe.intervalMsOverride??Pa(Rr??ux(),{now:o()});an=setTimeout(b,A),an.unref()})};b()}function ux(){return Ta(o())}function px(){if(!(at!=null||Fe?.armTransport==null))try{let b=Fe.armTransport();if(b.transport!=null){at=b.transport;return}b.unconfiguredReason!=null&&(Nt=b.unconfiguredReason)}catch(b){Nt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function ff(){let b=o();qr(b);let A=Date.parse(b);for(let[ne,le]of[...Le])Number.isFinite(A)&&A-Date.parse(le.renew_by)>le.renew_within_ms&&Le.delete(ne);let H=[...new Map([...Le,...De]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,le)=>ne.project_label.localeCompare(le.project_label));if(H.length===0)return null;if(px(),at==null)return Ve=Hy(H,b,Nt),Ve;Ve=await Uy({projects:H,transport:at,now:b,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return uf(z),cf(z),Ve}async function gf(){let b=o();if(Wt)return _r??Xh(b);Wt=!0;try{await Hl().catch(()=>{});let A={};for(let me of ue.values())A[me.project_label]=(A[me.project_label]??0)+1;let j={};for(let me of Ve?.projects??[])j[me.project_label]=me.depth;let H=Date.parse(b),z=Number.isFinite(H)?H:0;for(let[me,Et]of Object.entries(Ie)){if(Et.probeWorkerId==null)continue;let Gi=ue.get(Et.probeWorkerId);Gi!=null&&z-Date.parse(Gi.started_at)>=6e4&&(Ie[me]=tc())}let ne=Qh({projects:[...De.values()].map(me=>({project_label:me.project_label,selector:me.selector,argv:me.argv,workspace_path:me.workspace_path,target:me.target})),queue:j,live:A,nowMs:z,backoffUntilMs:ke,birthHealth:Ie}),le=[],rt=new Map,Ye=null;for(let me of ne.births){let Et,Gi=Cu(ue.keys()),yo=De.get(me.project_label),Wi=hm({argv:me.argv,...yo?.env==null?{}:{env:yo.env},...yo?.log_path==null?{}:{log_path:yo.log_path}},{worker_id:Gi,slot:me.index,workspace_path:me.workspace_path},{project_label:me.project_label});try{if(yo?.trunk==null)Et=Mi(Wi);else{let Kr={workspace_path:me.workspace_path,trunk:yo.trunk},gs=fs(Wi);if(!gs.admitted)throw new Fr(gs.reason,gs);let Df=Rf(Kr),Hi=rt.get(Df);Hi==null&&(Hi=Wl(Kr),rt.set(Df,Hi)),Et=await _f(Wi,Kr,Hi,gs)}}catch(Kr){Ye=Kr instanceof Error?Kr.message:String(Kr),Kr instanceof Fr&&Kr.admission?.verdict==="refused-unreachable-trunk-remote"||(ke=(Number.isFinite(H)?H:Date.now())+go);break}le.push({project_label:me.project_label,worker_id:Et.worker.worker_id,pid:Et.worker.pid,...Et.fork_sha==null?{}:{fork_sha:Et.fork_sha},warnings:Wi.log_path==null?[...Et.warnings,`project ${JSON.stringify(me.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(Et.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:Et.warnings});let Kl=Ie[me.project_label];Kl?.haltUntilMs!=null&&z>=Kl.haltUntilMs&&(Ie[me.project_label]=tm(Kl,Et.worker.worker_id))}Ye==null&&ne.births.length>0&&(ke=null);let bo=new Set(le.map(me=>me.project_label));for(let me of ne.intents){if(me.queue_depth==null||me.queue_depth<=0||me.live>=me.target||bo.has(me.project_label))continue;let Et=Ye!=null&&(me.outcome==="asking"||me.outcome==="half-open-probe")?`project ${JSON.stringify(me.project_label)} was birth-eligible but the host refused it: ${Ye}`:me.detail;await U.recordDemandRefusal({ts:b,projectLabel:me.project_label,detail:Et}).catch(()=>{})}return _r={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Ye,retry_after:ke==null?null:new Date(ke).toISOString(),projects:ne.intents},_r}finally{Wt=!1}}function fx(b){return qn(Fi(),{...Ne,mode:b?.mode??Ne.mode,project:b?.project??Ne.project,maxWorkers:b?.max_workers??Ne.maxWorkers,maxProjects:b?.max_projects??Ne.maxProjects,maxWidth:b?.max_width??Ne.maxWidth,verbose:b?.verbose??Ne.verbose})}function gx(b){return $o(Fi(),{mode:b?.mode??Bt.mode,project:b?.project??Bt.project,maxWidth:b?.max_width??Bt.maxWidth,maxRows:b?.max_rows??Bt.maxRows,maxHeight:b?.max_height??Bt.maxHeight,showDeathDetails:b?.show_death_details??Bt.showDeathDetails})}function Fn(b,A,j){return _m({op:b,sessionProject:A??null,targetProject:j})}async function hx(b){let A=ue.get(b.worker_id),j=Fn(Rm(b.command),b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(b.command!=="stop")throw new Error(`redskilled does not implement ${b.command}: it owns birth, death and limits, and ${b.command} is a work decision the project's own bundle makes on top of them`);let H=A!=null&&await wx(A,b.detail??"stopped by its own project");return{version:1,command:b.command,worker_id:b.worker_id,applied:H,reach:j,detail:H?`redskilled stopped Worker ${JSON.stringify(b.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to stop`}}function Ii(b){ue.delete(b),ct.delete(b),et.delete(b),Rt.delete(b)}function hf(b){let A=ue.get(b.worker_id),j=Fn("worker-heartbeat",b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof b.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(A==null)return{version:1,worker_id:b.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to publish a line for`};let H=o();et.set(b.worker_id,{line:b.last_log_line,published_at:H,source:"heartbeat"});let z=b.display===void 0?null:zy(b.display);if(z!=null){let ne=Rt.get(b.worker_id)?.display,le={display:z,published_at:H};Rt.set(b.worker_id,le),lx(le,A),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ut("worker-activity",A,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ut("worker-heal",A,`${b.mechanical_heal.cause}; cycle ${b.mechanical_heal.cycle}/${b.mechanical_heal.cap}; free=${b.mechanical_heal.free}`,{healKind:b.mechanical_heal.heal_kind}),{version:1,worker_id:b.worker_id,accepted:!0,reach:j,published_at:H,detail:`redskilled stored a line for Worker ${JSON.stringify(b.worker_id)} without reading it`}}async function mx(b,A,j){let H=`exit code=${A??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await yx(b)){kx(b,`its launch client ended (${H}) while unit ${JSON.stringify(b.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=b.log_path==null?null:Jd(await Z(b.log_path).catch(()=>null));Ii(b.worker_id),Ut("worker-death",b,z==null?H:`session-error: ${z}`,{exitCode:A,signal:j,refusal:z}),pt()}function bx(b,A){if(!Number.isFinite(A)||A<0){Ie[b]=Cs;return}let j=Ie[b]??Cs,H=em(j,A,Date.parse(o()));Ie[b]=H,H.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(b)} lost ${H.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(H.haltUntilMs).toISOString()}
|
|
102
|
-
`)}function mf(b,A){let j=Fn("project-reset",A,b);if(!j.permitted)throw new Error(j.reason);let H=Ie[b]?.haltUntilMs!=null||Ie[b]?.probeWorkerId!=null;return Ie[b]=tc(),{version:1,project_label:b,latch:"project-birth-breaker",reset:H,reach:j,detail:H?`redskilled cleared project ${JSON.stringify(b)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(b)}; nothing changed`}}async function yx(b){try{return await F(b)===!0}catch{return!1}}function kx(b,A){let j=b.unit==null?null:ae(b.unit);ue.set(b.worker_id,{...b,...j!=null&&j>0?{pid:j}:{},warnings:[...b.warnings,A]}),ct.add(b.worker_id),pt()}function bf(b,A){let j=Fn("project-register",A,b.project_label);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=mm(b,{now:H,held:De.get(b.project_label)});return De.set(z.project_label,z),mo(),wf(z.project_label),pt(),{version:1,registration:z,reach:j,detail:`redskilled holds a registration for project ${JSON.stringify(z.project_label)} at a target of ${z.target} until ${z.renew_by}, and has read neither its selector nor its argv`}}function yf(b,A={}){let j=Fn("project-renew",A.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=De.get(b);if(z==null){if(re.has(b))throw new Gn(b,{kind:"orphaned"});let le=[...tr].reverse().find(Ye=>Ye.project_label===b);if(le!=null)throw new Gn(b,{kind:"stopped",at:le.at});let rt=[...At].reverse().find(Ye=>Ye.project_label===b);throw rt!=null?new Gn(b,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new Gn(b)}let ne=bm(z,{now:H,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return De.set(ne.project_label,ne),mo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(A.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function kf(b,A){let j=Fn("project-deregister",A,b);if(!j.permitted)throw new Error(j.reason);let H=De.get(b)??Le.get(b),z=De.delete(b),ne=Le.delete(b),le=z||ne;if(H!=null){let rt=`redskilled released the registration for project ${JSON.stringify(b)}`;wf(b),tr.push({project_label:b,registered_at:H.registered_at,at:o(),detail:rt}),tr.length>Ts&&tr.splice(0,tr.length-Ts)}return le&&mo(),{version:1,project_label:b,released:le,reach:j,detail:le?`redskilled released the registration for project ${JSON.stringify(b)}`:`redskilled held no registration for project ${JSON.stringify(b)}, so there was nothing to release`}}function wf(b){Le.delete(b);for(let A=At.length-1;A>=0;A-=1)At[A].project_label===b&&At.splice(A,1);for(let A=tr.length-1;A>=0;A-=1)tr[A].project_label===b&&tr.splice(A,1);re.delete(b)}async function wx(b,A){try{await q(b)}catch{}return Ii(b.worker_id),Ut("worker-death",b,A),pt(),!0}function fs(b){return Uh({ceiling:l,workers:[...ue.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function Rf(b){return`${b.workspace_path}\0${b.trunk.remote}\0${b.trunk.branch}`}function Wl(b){let A=Rf(b),j=Gt.get(A);if(j!=null)return j;let H=i(b).finally(()=>{Gt.get(A)===H&&Gt.delete(A)});return Gt.set(A,H),H}function Rx(b,A,j){let H=j instanceof Error?j.message:String(j);return{...b,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(A.trunk.remote)} could not refresh branch ${JSON.stringify(A.trunk.branch)}: ${H}`}}async function _f(b,A,j,H){let z=H??fs(b);if(!z.admitted)throw new Fr(z.reason,z);let ne;try{ne=await(j??Wl(A))}catch(rt){let Ye=Rx(z,A,rt);throw new Fr(Ye.reason,Ye)}let le=fs(b);if(!le.admitted)throw new Fr(le.reason,le);return Mi(b,{admission:le,forkSha:ne})}function Mi(b,A={}){let j=qh({ceiling:l,workers:[...ue.values()],budget:b.budget}),H=s({spec:b,admission:A.admission??fs(b),...A.forkSha==null?{}:{forkSha:A.forkSha},memoryCeiling:j,liveWorkerIds:ue.keys(),clock:o,onExit:(rt,Ye,bo)=>{let me=ue.get(rt);if(me==null){pt();return}mx(me,Ye,bo).catch(()=>{})}}),z=A.forkSha??H.fork_sha??H.worker.fork_sha,ne=z==null||z===""?H.worker:{...H.worker,fork_sha:z},le={...H,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ue.set(ne.worker_id,ne),Ut("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??H.admission.verdict}),pt(),le}function Ut(b,A,j,H={}){if(tt)return;let z=o(),ne={kind:b,worker:A,ts:z,detail:j,...H};(b==="worker-death"||b==="worker-budget-kill")&&(dx({worker_id:A.worker_id,ts:z,outcome:b}),xf(pa(ne),{startedAt:A.started_at,...H.refusal==null?{}:{refusal:H.refusal}}),bx(A.project_label,Date.parse(z)-Date.parse(A.started_at))),U.recordWorker(ne).catch(()=>{})}function xf(b,A={}){let j=kh(b,A);if(j==null)return;let H=[j,...(_t??[]).filter(z=>z.kind!==j.kind||z.id!==j.id||z.ts!==j.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));_t=Nn(H,z=>z.ts,{now:o()})}async function Hl(){let b=Date.parse(o()),A=[...ue.values()].filter(H=>{if(ct.has(H.worker_id))return!0;let z=Date.parse(H.started_at);return!Number.isFinite(z)||b-z>=W});if(A.length===0)return[];let{dead:j}=await Eu(A,F);for(let H of j)Ii(H.worker_id),Ut("worker-death",H,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function Ef(b,A){let j=ue.get(b);if(!j)return!1;try{await q(j)}catch{}return Ii(b),Ut("worker-budget-kill",j,A),pt(),!0}async function vf(){let b=[...ue.values()];if(b.length===0)return[];let A;try{A=await se(b)}catch{return[]}let j=A.rss;C=j,w=o(),_x(A.cpu_seconds,w);let{terminations:H}=Mb({workers:b,rss:j}),z=[];for(let ne of H)await Ef(ne.worker_id,ne.reason)&&z.push(ne);return z}function _x(b,A){for(let[j,H]of Object.entries(b)){if(typeof H!="number"||!Number.isFinite(H))continue;let z=ue.get(j);z&&ue.set(j,{...z,cpu:{cpu_seconds:H,sampled_at:A}})}}async function xx(){try{return de<=0?await we(r):await new Promise(b=>{let A=setTimeout(()=>b(Ul()),de);A.unref(),we(r).then(j=>{clearTimeout(A),b(j)},()=>{clearTimeout(A),b(Ul())})})}catch{return Ul()}}function Ul(){try{return _e(r)}catch{return null}}async function Sf(){if(ti(r))return K+=1,L=o(),X="local-build",{act:"hold",reason:"local-build"};let b=y0(await xx()),A=b.version;I=A,je=b.newest??null,L=o(),Be=k0({running:r,newest:je,supervised:Re});let j=w0({running:r,published:A,supervised:Re});return B=j.act==="replace",K+=1,X=j.act==="hold"?j.reason:null,ye!=="in-progress"&&(ye=j.act==="replace"?"pending":"none"),j}async function Li(){let b=await Sf();if(b.act!=="replace"||ye==="in-progress")return b;let A=_0(b,Se,t,n);return ye="in-progress",await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Bi({reason:"replaced"}),x0(A,t,{...n==null?{}:{idleMs:n},io:Se}),b}function Ex(){tt||Cn!=null||J<=0||(!Ce&&ve>0&&(Ue=setTimeout(()=>{Li().catch(()=>{})},ve),Ue.unref()),Cn=setInterval(()=>{Li().catch(()=>{})},J),Cn.unref())}async function Tf(){return await c.renew(d).catch(()=>null)}function vx(){tt||sn!=null||Ae<=0||(sn=setInterval(()=>{Tf()},Ae),sn.unref())}function Sx(){tt||Pn!=null||Ee<=0||(Pn=setInterval(()=>{qr(o())},Ee),Pn.unref())}function Tx(){tt||Ht!=null||pe<=0||(Ht=setInterval(()=>{vf().catch(()=>{})},pe),Ht.unref())}function Px(){tt||Dn!=null||fe==null||fe.projects.length===0||ie<=0||(Gl().catch(()=>{}),Dn=setInterval(()=>{Gl().catch(()=>{})},ie),Dn.unref())}function Ax(){if(tt||Hr!=null||nn<=0)return;let b=A=>{Hr=setTimeout(()=>{Hr=void 0,Pf().then(()=>ff()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());b(Vy(Ve,nn,Number.isFinite(j)?j:Date.now()))})},A),Hr.unref()};b(nn)}async function Pf(){await Promise.allSettled([...De.values()].filter(b=>b.trunk!=null).map(async b=>{let A=await Wl({workspace_path:b.workspace_path,trunk:b.trunk}),j=[...ue.values()].filter(H=>H.project_label===b.project_label&&H.fork_sha!=null&&H.fork_sha!=="");await Promise.allSettled(j.map(async H=>{let z=await a({workspace_path:b.workspace_path,fork_sha:H.fork_sha,head_sha:A}),ne=ue.get(H.worker_id);if(ne==null||ne.fork_sha!==H.fork_sha)return;let le={...ne,base_head_sha:A,base_commits_ahead:z};ue.set(H.worker_id,le),(ne.base_head_sha!==A||ne.base_commits_ahead!==z)&&Ut("worker-drift",le,null,{baseHeadSha:A,baseCommitsAhead:z})}))}))}function Cx(){tt||An!=null||on<=0||(An=setInterval(()=>{gf().catch(()=>{})},on),An.unref())}function pt(){tt||(Ct&&clearTimeout(Ct),Ct=setTimeout(()=>{Hl().catch(()=>{}).then(()=>Af())},n),Ct.unref())}function Af(){return ue.size>0?(pt(),"held-by-workers"):(qr(o()),De.size>0?(pt(),"held-by-registrations"):(Dx(),"exited"))}async function Dx(){if(!ti(r)){if((await Li().catch(()=>null))?.act==="replace"||ho||tt)return;if(ue.size>0||De.size>0){pt();return}}await Bi({reason:"idle"})}function ji(b){return om({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ue.values()],projects:[...De.keys()]})}function Cf(b){if($e!=null)return $e;let A=b.reason??"requested",j=b.note?.trim();return $e=U.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:j==null||j===""?ji(A).detail:`${ji(A).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),$e}async function Bi(b={}){if(ho)return await Ur;ho=!0,await Cf(b),tt=!0,Ct&&clearTimeout(Ct),Ht&&clearInterval(Ht),sn&&clearInterval(sn),Pn&&clearInterval(Pn),Cn&&clearInterval(Cn),Ue&&clearTimeout(Ue),Dn&&clearInterval(Dn),an&&clearTimeout(an),Hr&&clearTimeout(Hr),An&&clearInterval(An),await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let A of Q)A.destroy();return await new Promise(A=>M.once("close",()=>A())),await v1(t.socketPath,{force:!0}),On(),await Ur}let $i=await U.read().catch(()=>[]),Ni=new Map;for(let b of $i){if(b.event==="worker-birth"){Ni.set(b.worker_id,b.ts);continue}let A=Jd(b.detail);xf(b,{...Ni.get(b.worker_id)==null?{}:{startedAt:Ni.get(b.worker_id)},...A==null?{}:{refusal:A}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Ni.delete(b.worker_id)}ut=Nn($i.filter(b=>b.event==="worker-death"||b.event==="worker-budget-kill").map(b=>({worker_id:b.worker_id,ts:b.ts,outcome:b.event})),b=>b.ts,{now:o()}),lt=Ih($i,o());let Ox=Yh($i),ql=await Eu(Ox,F);for(let b of ql.alive){let A=By(b),j=A.unit==null||Qe(A.pid)?null:ae(A.unit);ue.set(A.worker_id,j!=null&&j>0?{...A,pid:j}:A),ct.add(A.worker_id)}for(let b of ql.dead)Ut("worker-death",b,"the Worker ended while no daemon was watching");let Fx=jy({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ue.values()],mainPid:ae,now:N});for(let b of Fx)ue.set(b.worker_id,b),ct.add(b.worker_id),Ut("worker-birth",b,"adopted from an active unit with no birth on this lane");uf(o());for(let b of ql.alive){if(b.log_path==null||et.has(b.worker_id))continue;let A=await Z(b.log_path).catch(()=>null);A==null||A.trim()===""||et.set(b.worker_id,{line:A,published_at:o(),source:"rehydrated"})}M.on("connection",b=>{Q.add(b),b.once("close",()=>Q.delete(b)),pt(),xh(b,async(A,j)=>{pt();let H=await Ix(A);j(H),A.op==="shutdown"&&setImmediate(()=>void Bi({reason:"requested"}).catch(()=>{}))})});async function Ix(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:$a,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Oi()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:Xb(Fi(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:fx(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:gx(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:hf(b.heartbeat)};if(b.op==="project-register"){let j=bf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=yf(b.project_label,{...b.session_project==null?{}:{sessionProject:b.session_project},...b.renew_within_ms==null?{}:{renewWithinMs:b.renew_within_ms},...b.launch==null?{}:{launch:b.launch}});return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-deregister"){let j=kf(b.project_label,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-reset")return{id:b.id,ok:!0,value:mf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await hx(b.command)};if(b.op==="worker-start"){let j=Fn("worker-start",b.session_project,b.spec.project_label);if(!j.permitted)return{id:b.id,ok:!1,error:j.reason};let H=b.spec.trunk==null?Mi(b.spec):await _f(b.spec,{workspace_path:b.spec.workspace_path,trunk:b.spec.trunk});return await U.flush().catch(()=>{}),{id:b.id,ok:!0,value:{worker:H.worker,admission:H.admission,fork_sha:H.fork_sha,warnings:H.warnings}}}if(b.op==="shutdown"){let j=ji("requested");return await Cf({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let A=b;return{id:A.id??L0(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:b.id??L0(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return pt(),Tx(),vx(),Sx(),Ex(),Px(),cx(),Ax(),Cx(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:Ur,startWorker:Mi,admit:fs,ceiling:()=>l,killWorkerOverBudget:Ef,sampleMemoryBudgets:vf,renewLease:Tf,pollRepositoryActivity:Gl,pollGithubBalance:pf,githubBalance:()=>Rr,pollQueueDiscovery:ff,queueDiscovery:()=>Ve,driveDemand:gf,demand:()=>_r,sweepWorkerLiveness:Hl,publishWorkerHeartbeat:hf,reattached:()=>[...ct].map(b=>ue.get(b)).filter(b=>b!=null),flushEvents:()=>U.flush(),trackWorker(b){ue.set(b.worker_id,b),Ut("worker-birth",b,null),pt()},releaseWorker(b){let A=ue.get(b),j=ue.delete(b);return ct.delete(b),et.delete(b),Rt.delete(b),A&&Ut("worker-death",A,"released by the daemon"),pt(),j},workerCount:()=>ue.size,registerProject:bf,renewProject:yf,resetProjectBirthBreaker:mf,deregisterProject:kf,registrations:()=>Oi().registrations??[],hostState:Oi,refreshRegisteredTrunks:Pf,statuslinePayload:Fi,evaluateIdle:Af,observePublishedVersion:Sf,checkForReplacement:Li,stopReport:ji,stop:Bi}}function ju(e){let t=e.socketPath,r=T1(e);return e.answers?{version:1,kind:"answering",socket_path:t,holder:r,reason:`a redskilled daemon answered on ${JSON.stringify(t)}`,repair:"nothing to repair"}:r!=null?{version:1,kind:"held-unresponsive",socket_path:t,holder:r,reason:`redskilled pid ${r.pid} is alive and has held ${JSON.stringify(t)} since ${r.acquired_at}${r.uptime_ms==null?"":` (up ${B0(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${wn("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${wn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Bu(e){return`${e.reason} ${e.repair}`}function T1(e){let t=e.lease;return t==null||e.holderAlive!==!0||t.socket_path!==e.socketPath?null:{pid:t.pid,socket_path:t.socket_path,acquired_at:t.acquired_at,renewed_at:t.renewed_at,uptime_ms:P1(t.acquired_at,e.now??new Date().toISOString())}}function P1(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function B0(e){let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h${String(n).padStart(2,"0")}m`:n>0?`${n}m${String(o).padStart(2,"0")}s`:`${o}s`}import{spawnSync as A1}from"node:child_process";import{existsSync as C1}from"node:fs";import{basename as $0,dirname as D1,join as N0}from"node:path";async function ri(e){let r=await Ds(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==fa().uid||!Qe(r.pid))return{paths:e,joined:!1};let n=D1(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:N0(n,$0(e.lockPath)),leasePath:N0(n,$0(e.leasePath))}}}async function G0(e){let r=await Ds(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Qe(r.pid)))throw new Jr(e.machineClaimPath,"held",r)}async function W0(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[oc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Ao({env:n,machineIdHash:e.machineIdHash}))||!(o??C1(Ho(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=A1("systemctl",["--user","start",Qt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Qt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await O1(e,t,r),!0}async function O1(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ri(e);if(await zt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Qt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}zr();var Nu=1e4,Vn=class extends Error{constructor(r,n,o){super(`redskilled daemon is unreachable on ${JSON.stringify(r)}, so no Worker was started: ${n instanceof Error?n.message:String(n)}${o!=null&&o.kind==="held-unresponsive"?`. ${Bu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},$u=class extends Vn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},Va=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function za(e,t={}){let r=t.answers??await zt(e.socketPath),n=await Uo(e.leasePath).catch(()=>{});return ju({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Qe(n.pid)})}async function Gu(e,t={}){let r=await ri(e);try{let n=await L1(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Jr||n instanceof Vn)throw n;let o=await za(r.paths).catch(()=>{});throw new Vn(r.paths.socketPath,n,o)}}async function L1(e,t){if(await I1(M1(e.socketPath),{recursive:!0,mode:448}),await zt(e.socketPath))return"already-running";await G0(e);let r=await B1(e,t);if(r!=null)return r;if(await W0(e,t,Nu))return"joined";let n=await th(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??j1});if(!n.acquired)return await H0(e,t,void 0,n),"joined";try{if(await zt(e.socketPath))return"already-running";let o=await N1(e,t);return await H0(e,t,o),"spawned"}finally{await rh(n)}}function j1(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
|
|
103
|
-
`)}async function
|
|
104
|
-
`)}import{chmod as
|
|
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
|
|
100
|
+
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function E1(e,t={}){let r=t.env??process.env,n=t.exists??y1,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=[[k0(aa(r),i),"bundle-cache"]];s&&l.push([k0(w1(R1(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 ju(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 A0(e,t={},r,n){let s=(t.resolveEntry??(i=>E1(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>p0(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 C0(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??S1)(w0),{...e,exitCode:w0};let o=[...e.entry.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??v1(n.env))(e.entry,o),e}function v1(e){return(t,r)=>{let n=b1(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[x0]:"1"}});n.on("error",()=>{}),n.unref()}}function S1(e){process.exitCode=e,process.exit(e)}async function D0(e,t=process.env,r=T1){let n=F0(t),o=I0(e,t);if(t[_1]==="1")return{version:o,newest:n};let s=cr(e)===null?"0.0.0":e;try{let i=await ph({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function O0(e,t=process.env,r){let n=r??Bu;return{version:I0(e,t,n),newest:F0(t,n)}}function F0(e=process.env,t=Bu){return L0(M0(e,t))}function I0(e,t=process.env,r=Bu){let n=cr(e.trim())?.major;return n===void 0?null:L0(M0(t,r).filter(o=>cr(o)?.major===n))}function M0(e,t){let r=[];for(let n of t(aa(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||cr(o)===null||r.push(o)}return r}function L0(e){let t=null;for(let r of e)(t===null||Mu(r,t)>0)&&(t=r);return t}function Bu(e){try{return k1(e)}catch{return[]}}async function T1(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 P1,readFile as A1,rename as C1,rm as $u,writeFile as j0}from"node:fs/promises";import{randomUUID as D1}from"node:crypto";import{dirname as O1}from"node:path";var Va=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 A1(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=F1(t);return I1(r)?r:void 0}var B0;function N0(){return B0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},B0}function G0(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}.${D1()}.tmp`;await j0(d,$0(l),{encoding:"utf8",mode:384}),await C1(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 P1(O1(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await j0(e,$0(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 $u(e,{force:!0}),d=!0;continue}if(Nu(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await $u(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!Nu(d,l))throw new Va(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!Nu(d,l))throw new Va(e);return await $u(e,{force:!0}),!0}}}function Nu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function $0(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
101
|
+
`}function F1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ot(t)}catch{return null}}}function I1(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 U0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Po,o=e.clock??(()=>new Date().toISOString()),s=e.launch??s0,i=e.refreshTrunk??i0,a=e.countBaseMovement??a0,l=e.ceiling??pa();e.repositoryActivity!=null&&Zc(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??N0(),c=e.leaseStore??G0(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??Ds(t.machineClaimPath,p,{clock:o});await j1($1(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>=Rh&&await Xd(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 zt(t.socketPath):new Jr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new zt(t.socketPath,D.lease);let M;try{M=await Sh(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??tm(t.eventLanePath),G=e.registrationIntentStore??Ry(t.registrationIntentPath),F=e.liveness??$y,W=e.livenessGraceMs??By,q=e.stopWorker??Ky,oe=e.unitInventory??(()=>Wy(t.machineClaimPath,Co({machineIdHash:t.machineIdHash}))?Hy():[]),ae=e.unitMainPid??Gy,se=e.treeSampler??Hb,Z=e.readLogTail??l0,pe=e.sampleMs??wh,Ae=e.leaseRenewMs??Yd,Ee=e.registrationSustainMs??_h,we=e.publishedVersion??(b=>D0(b)),J=e.replaceCheckMs??_0,de=e.publishedProbeTimeoutMs??yh,_e=e.localPublishedEvidence??(b=>O0(b,e.replacementIO?.env??process.env)),Ce=e.bornByReplacement??E0(),ve=e.replaceBootCheckMs??kh,Re=e.supervised??P0(),Se=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??Xc,xe=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??fe?.transport,Nt=Fe?.unconfiguredReason??Eh,nn=Fe?.intervalMs??Cu,on=e.demandMs??15e3,go=e.demandBackoffMs??3e4,ue=new Map,Gt=new Map,ct=new Set,et=new Map,_t=new Map,lt=[],ut=[],xt=e.deaths===void 0?void 0:[...e.deaths],Et=await G.read().catch(()=>[]),Wr=Date.parse(N),De=new Map,Le=new Map;for(let b of Et){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,tr=null,_r=null,Ve=null,xr=null,Ct=[],rr=[],re=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),ke=null,Ie={},Wt=!1,Dt,Ht,sn,Pn,An,Cn,Ue,Dn,an,Hr,tt=!1,ho=!1,$e=null,On,Ur=new Promise(b=>{On=b});function qr(b){gf(b);let A=Date.parse(b),j=Sm(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),gx(H,A)}return j.lapsed.length>0&&mo(),j.lapsed}function mo(){let b=new Map(Le);for(let[A,j]of De)b.set(A,j);G.replace([...b.values()]).catch(()=>{})}function gx(b,A){let j=Number.isFinite(A)?new Date(A).toISOString():b.renew_by;Ct.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`}),Ct.length>Ts&&Ct.splice(0,Ct.length-Ts)}function gf(b){if(De.size===0)return;let A=Date.parse(b);if(!Number.isFinite(A))return;let j={};for(let le of ue.values())j[le.project_label]=(j[le.project_label]??0)+1;let H=Ve==null?Number.NaN:Date.parse(Ve.fetched_at),z=new Map((Ve?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...De.values()]){let Ye=Number.isFinite(H)&&A-H<=le.renew_within_ms?z.get(le.project_label):void 0,bo=fc(le,{now:b,...Ye==null?{}:{queue:{outcome:Ye.outcome,depth:Ye.depth}},liveWorkers:j[le.project_label]??0});bo.registration!==le&&(De.set(le.project_label,bo.registration),ne=!0)}ne&&mo()}function hf(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=fc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ue.values()].filter(Ye=>Ye.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(De.set(z,rt.registration),Le.delete(z),H=!0):rt.verdict==="drained"&&(Le.delete(z),H=!0)}H&&mo()}function Oi(){let b=o();return qr(b),ky({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:ym(g.claimPath,p,u),workers:[...ue.values()],registrations:[...De.values()],demand:xr,lapses:Ct,stops:rr,orphanedRegistrations:[...re.values()],birthLatches:dm(Ie,Date.parse(b)),queue:Ve,published:{version:I,checkedAt:L,newer:B,replacement:ye,newest:je,majorHold:Be,checks:K,holdReason:X}})}function Fi(){return iy({hostState:Oi(),ceiling:l,rss:C,sampledAt:w,logLines:Object.fromEntries(et),displays:Object.fromEntries(_t),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:tr,githubBalance:_r,...xt===void 0?{}:{deaths:xt},metrics:Mh({observations:lt,outcomes:ut,now:o()})})}function hx(b,A){let j=jh(lt,b,A,o());lt=j.observations,U.recordWorker(j.record).catch(()=>{})}function mx(b){ut=Nn([...ut,b],A=>A.ts,{now:o()})}async function Wl(){return fe==null||fe.projects.length===0?null:(tr=await Yb({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),tr)}async function mf(){return xe==null?null:(_r=await Uc({transport:xe.transport,now:o()}),_r)}function bx(){if(tt||an!=null||xe==null)return;let b=()=>{an=void 0,mf().catch(()=>{}).then(()=>{if(tt)return;let A=xe.intervalMsOverride??Aa(_r??yx(),{now:o()});an=setTimeout(b,A),an.unref()})};b()}function yx(){return Pa(o())}function kx(){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 bf(){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(kx(),at==null)return Ve=Yy(H,b,Nt),Ve;Ve=await Qy({projects:H,transport:at,now:b,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return hf(z),gf(z),Ve}async function yf(){let b=o();if(Wt)return xr??sm(b);Wt=!0;try{await Ul().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,vt]of Object.entries(Ie)){if(vt.probeWorkerId==null)continue;let Gi=ue.get(vt.probeWorkerId);Gi!=null&&z-Date.parse(Gi.started_at)>=6e4&&(Ie[me]=sc())}let ne=om({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 vt,Gi=Iu(ue.keys()),yo=De.get(me.project_label),Wi=_m({argv:me.argv,...yo?.env==null?{}:{env:yo.env},...yo?.log_path==null?{}:{log_path:yo.log_path}},{worker_id:Gi,slot:me.index,workspace_path:me.workspace_path},{project_label:me.project_label});try{if(yo?.trunk==null)vt=Mi(Wi);else{let Kr={workspace_path:me.workspace_path,trunk:yo.trunk},hs=gs(Wi);if(!hs.admitted)throw new Fr(hs.reason,hs);let Mf=vf(Kr),Hi=rt.get(Mf);Hi==null&&(Hi=Hl(Kr),rt.set(Mf,Hi)),vt=await Sf(Wi,Kr,Hi,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())+go);break}le.push({project_label:me.project_label,worker_id:vt.worker.worker_id,pid:vt.worker.pid,...vt.fork_sha==null?{}:{fork_sha:vt.fork_sha},warnings:Wi.log_path==null?[...vt.warnings,`project ${JSON.stringify(me.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(vt.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:vt.warnings});let Vl=Ie[me.project_label];Vl?.haltUntilMs!=null&&z>=Vl.haltUntilMs&&(Ie[me.project_label]=lm(Vl,vt.worker.worker_id))}Ye==null&&ne.births.length>0&&(ke=null);let bo=new Set(le.map(me=>me.project_label));for(let me of ne.intents){if(me.queue_depth==null||me.queue_depth<=0||me.live>=me.target||bo.has(me.project_label))continue;let vt=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:vt}).catch(()=>{})}return xr={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},xr}finally{Wt=!1}}function wx(b){return qn(Fi(),{...Ne,mode:b?.mode??Ne.mode,project:b?.project??Ne.project,maxWorkers:b?.max_workers??Ne.maxWorkers,maxProjects:b?.max_projects??Ne.maxProjects,maxWidth:b?.max_width??Ne.maxWidth,verbose:b?.verbose??Ne.verbose})}function Rx(b){return No(Fi(),{mode:b?.mode??Bt.mode,project:b?.project??Bt.project,maxWidth:b?.max_width??Bt.maxWidth,maxRows:b?.max_rows??Bt.maxRows,maxHeight:b?.max_height??Bt.maxHeight,showDeathDetails:b?.show_death_details??Bt.showDeathDetails})}function Fn(b,A,j){return Am({op:b,sessionProject:A??null,targetProject:j})}async function _x(b){let A=ue.get(b.worker_id),j=Fn(Pm(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 Tx(A,b.detail??"stopped by its own project");return{version:1,command:b.command,worker_id:b.worker_id,applied:H,reach:j,detail:H?`redskilled stopped Worker ${JSON.stringify(b.worker_id)} of project ${JSON.stringify(A.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to stop`}}function Ii(b){ue.delete(b),ct.delete(b),et.delete(b),_t.delete(b)}function kf(b){let A=ue.get(b.worker_id),j=Fn("worker-heartbeat",b.session_project,A?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof b.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(A==null)return{version:1,worker_id:b.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to publish a line for`};let H=o();et.set(b.worker_id,{line:b.last_log_line,published_at:H,source:"heartbeat"});let z=b.display===void 0?null:t0(b.display);if(z!=null){let ne=_t.get(b.worker_id)?.display,le={display:z,published_at:H};_t.set(b.worker_id,le),hx(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 xx(b,A,j){let H=`exit code=${A??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await vx(b)){Sx(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:Qd(await Z(b.log_path).catch(()=>null));Ii(b.worker_id),Ut("worker-death",b,z==null?H:`session-error: ${z}`,{exitCode:A,signal:j,refusal:z}),pt()}function Ex(b,A){if(!Number.isFinite(A)||A<0){Ie[b]=Cs;return}let j=Ie[b]??Cs,H=am(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 wf(b,A){let j=Fn("project-reset",A,b);if(!j.permitted)throw new Error(j.reason);let H=Ie[b]?.haltUntilMs!=null||Ie[b]?.probeWorkerId!=null;return Ie[b]=sc(),{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 vx(b){try{return await F(b)===!0}catch{return!1}}function Sx(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 Rf(b,A){let j=Fn("project-register",A,b.project_label);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=xm(b,{now:H,held:De.get(b.project_label)});return De.set(z.project_label,z),mo(),Ef(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 _f(b,A={}){let j=Fn("project-renew",A.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let H=o();qr(H);let z=De.get(b);if(z==null){if(re.has(b))throw new Gn(b,{kind:"orphaned"});let le=[...rr].reverse().find(Ye=>Ye.project_label===b);if(le!=null)throw new Gn(b,{kind:"stopped",at:le.at});let rt=[...Ct].reverse().find(Ye=>Ye.project_label===b);throw rt!=null?new Gn(b,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new Gn(b)}let ne=Em(z,{now:H,...A.renewWithinMs==null?{}:{renew_within_ms:A.renewWithinMs},...A.launch==null?{}:{launch:A.launch}});return De.set(ne.project_label,ne),mo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(A.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function xf(b,A){let j=Fn("project-deregister",A,b);if(!j.permitted)throw new Error(j.reason);let H=De.get(b)??Le.get(b),z=De.delete(b),ne=Le.delete(b),le=z||ne;if(H!=null){let rt=`redskilled released the registration for project ${JSON.stringify(b)}`;Ef(b),rr.push({project_label:b,registered_at:H.registered_at,at:o(),detail:rt}),rr.length>Ts&&rr.splice(0,rr.length-Ts)}return le&&mo(),{version:1,project_label:b,released:le,reach:j,detail:le?`redskilled released the registration for project ${JSON.stringify(b)}`:`redskilled held no registration for project ${JSON.stringify(b)}, so there was nothing to release`}}function Ef(b){Le.delete(b);for(let A=Ct.length-1;A>=0;A-=1)Ct[A].project_label===b&&Ct.splice(A,1);for(let A=rr.length-1;A>=0;A-=1)rr[A].project_label===b&&rr.splice(A,1);re.delete(b)}async function Tx(b,A){try{await q(b)}catch{}return Ii(b.worker_id),Ut("worker-death",b,A),pt(),!0}function gs(b){return zh({ceiling:l,workers:[...ue.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function vf(b){return`${b.workspace_path}\0${b.trunk.remote}\0${b.trunk.branch}`}function Hl(b){let A=vf(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 Px(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 Sf(b,A,j,H){let z=H??gs(b);if(!z.admitted)throw new Fr(z.reason,z);let ne;try{ne=await(j??Hl(A))}catch(rt){let Ye=Px(z,A,rt);throw new Fr(Ye.reason,Ye)}let le=gs(b);if(!le.admitted)throw new Fr(le.reason,le);return Mi(b,{admission:le,forkSha:ne})}function Mi(b,A={}){let j=Jh({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,bo)=>{let me=ue.get(rt);if(me==null){pt();return}xx(me,Ye,bo).catch(()=>{})}}),z=A.forkSha??H.fork_sha??H.worker.fork_sha,ne=z==null||z===""?H.worker:{...H.worker,fork_sha:z},le={...H,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ue.set(ne.worker_id,ne),Ut("worker-birth",ne,null,{admissionVerdict:A.admission?.verdict??H.admission.verdict}),pt(),le}function Ut(b,A,j,H={}){if(tt)return;let z=o(),ne={kind:b,worker:A,ts:z,detail:j,...H};(b==="worker-death"||b==="worker-budget-kill")&&(mx({worker_id:A.worker_id,ts:z,outcome:b}),Tf(fa(ne),{startedAt:A.started_at,...H.refusal==null?{}:{refusal:H.refusal}}),Ex(A.project_label,Date.parse(z)-Date.parse(A.started_at))),U.recordWorker(ne).catch(()=>{})}function Tf(b,A={}){let j=xh(b,A);if(j==null)return;let H=[j,...(xt??[]).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));xt=Nn(H,z=>z.ts,{now:o()})}async function Ul(){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 Pu(A,F);for(let H of j)Ii(H.worker_id),Ut("worker-death",H,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function Pf(b,A){let j=ue.get(b);if(!j)return!1;try{await q(j)}catch{}return Ii(b),Ut("worker-budget-kill",j,A),pt(),!0}async function Af(){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(),Ax(A.cpu_seconds,w);let{terminations:H}=Wb({workers:b,rss:j}),z=[];for(let ne of H)await Pf(ne.worker_id,ne.reason)&&z.push(ne);return z}function Ax(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 Cx(){try{return de<=0?await we(r):await new Promise(b=>{let A=setTimeout(()=>b(ql()),de);A.unref(),we(r).then(j=>{clearTimeout(A),b(j)},()=>{clearTimeout(A),b(ql())})})}catch{return ql()}}function ql(){try{return _e(r)}catch{return null}}async function Cf(){if(ti(r))return K+=1,L=o(),X="local-build",{act:"hold",reason:"local-build"};let b=v0(await Cx()),A=b.version;I=A,je=b.newest??null,L=o(),Be=S0({running:r,newest:je,supervised:Re});let j=T0({running:r,published:A,supervised:Re});return B=j.act==="replace",K+=1,X=j.act==="hold"?j.reason:null,ye!=="in-progress"&&(ye=j.act==="replace"?"pending":"none"),j}async function Li(){let b=await Cf();if(b.act!=="replace"||ye==="in-progress")return b;let A=A0(b,Se,t,n);return ye="in-progress",await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Bi({reason:"replaced"}),C0(A,t,{...n==null?{}:{idleMs:n},io:Se}),b}function Dx(){tt||Cn!=null||J<=0||(!Ce&&ve>0&&(Ue=setTimeout(()=>{Li().catch(()=>{})},ve),Ue.unref()),Cn=setInterval(()=>{Li().catch(()=>{})},J),Cn.unref())}async function Df(){return await c.renew(d).catch(()=>null)}function Ox(){tt||sn!=null||Ae<=0||(sn=setInterval(()=>{Df()},Ae),sn.unref())}function Fx(){tt||Pn!=null||Ee<=0||(Pn=setInterval(()=>{qr(o())},Ee),Pn.unref())}function Ix(){tt||Ht!=null||pe<=0||(Ht=setInterval(()=>{Af().catch(()=>{})},pe),Ht.unref())}function Mx(){tt||Dn!=null||fe==null||fe.projects.length===0||ie<=0||(Wl().catch(()=>{}),Dn=setInterval(()=>{Wl().catch(()=>{})},ie),Dn.unref())}function Lx(){if(tt||Hr!=null||nn<=0)return;let b=A=>{Hr=setTimeout(()=>{Hr=void 0,Of().then(()=>bf()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());b(e0(Ve,nn,Number.isFinite(j)?j:Date.now()))})},A),Hr.unref()};b(nn)}async function Of(){await Promise.allSettled([...De.values()].filter(b=>b.trunk!=null).map(async b=>{let A=await Hl({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 jx(){tt||An!=null||on<=0||(An=setInterval(()=>{yf().catch(()=>{})},on),An.unref())}function pt(){tt||(Dt&&clearTimeout(Dt),Dt=setTimeout(()=>{Ul().catch(()=>{}).then(()=>Ff())},n),Dt.unref())}function Ff(){return ue.size>0?(pt(),"held-by-workers"):(qr(o()),De.size>0?(pt(),"held-by-registrations"):(Bx(),"exited"))}async function Bx(){if(!ti(r)){if((await Li().catch(()=>null))?.act==="replace"||ho||tt)return;if(ue.size>0||De.size>0){pt();return}}await Bi({reason:"idle"})}function ji(b){return um({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ue.values()],projects:[...De.keys()]})}function If(b){if($e!=null)return $e;let A=b.reason??"requested",j=b.note?.trim();return $e=U.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:A,detail:j==null||j===""?ji(A).detail:`${ji(A).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),$e}async function Bi(b={}){if(ho)return await Ur;ho=!0,await If(b),tt=!0,Dt&&clearTimeout(Dt),Ht&&clearInterval(Ht),sn&&clearInterval(sn),Pn&&clearInterval(Pn),Cn&&clearInterval(Cn),Ue&&clearTimeout(Ue),Dn&&clearInterval(Dn),an&&clearTimeout(an),Hr&&clearTimeout(Hr),An&&clearInterval(An),await U.flush().catch(()=>{}),await G.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let A of Q)A.destroy();return await new Promise(A=>M.once("close",()=>A())),await B1(t.socketPath,{force:!0}),On(),await Ur}let $i=await U.read().catch(()=>[]),Ni=new Map;for(let b of $i){if(b.event==="worker-birth"){Ni.set(b.worker_id,b.ts);continue}let A=Qd(b.detail);Tf(b,{...Ni.get(b.worker_id)==null?{}:{startedAt:Ni.get(b.worker_id)},...A==null?{}:{refusal:A}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Ni.delete(b.worker_id)}ut=Nn($i.filter(b=>b.event==="worker-death"||b.event==="worker-budget-kill").map(b=>({worker_id:b.worker_id,ts:b.ts,outcome:b.event})),b=>b.ts,{now:o()}),lt=Bh($i,o());let $x=oc($i),Kl=await Pu($x,F);for(let b of Kl.alive){let A=qy(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 Kl.dead)Ut("worker-death",b,"the Worker ended while no daemon was watching");let Nx=Uy({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ue.values()],mainPid:ae,now:N});for(let b of Nx)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");hf(o());for(let b of Kl.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(),Th(b,async(A,j)=>{pt();let H=await Gx(A);j(H),A.op==="shutdown"&&setImmediate(()=>void Bi({reason:"requested"}).catch(()=>{}))})});async function Gx(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:Na,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Oi()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:sy(Fi(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:wx(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:Rx(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:kf(b.heartbeat)};if(b.op==="project-register"){let j=Rf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=_f(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=xf(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:wf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await _x(b.command)};if(b.op==="worker-start"){let j=Fn("worker-start",b.session_project,b.spec.project_label);if(!j.permitted)return{id:b.id,ok:!1,error:j.reason};let H=b.spec.trunk==null?Mi(b.spec):await Sf(b.spec,{workspace_path:b.spec.workspace_path,trunk:b.spec.trunk});return await U.flush().catch(()=>{}),{id:b.id,ok:!0,value:{worker:H.worker,admission:H.admission,fork_sha:H.fork_sha,warnings:H.warnings}}}if(b.op==="shutdown"){let j=ji("requested");return await If({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let A=b;return{id:A.id??H0(),ok:!1,error:`unsupported redskilled op: ${A.op??"unknown"}`}}catch(A){return{id:b.id??H0(),ok:!1,error:A instanceof Error?A.message:String(A)}}}return pt(),Ix(),Ox(),Fx(),Dx(),Mx(),bx(),Lx(),jx(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:Ur,startWorker:Mi,admit:gs,ceiling:()=>l,killWorkerOverBudget:Pf,sampleMemoryBudgets:Af,renewLease:Df,pollRepositoryActivity:Wl,pollGithubBalance:mf,githubBalance:()=>_r,pollQueueDiscovery:bf,queueDiscovery:()=>Ve,driveDemand:yf,demand:()=>xr,sweepWorkerLiveness:Ul,publishWorkerHeartbeat:kf,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),_t.delete(b),A&&Ut("worker-death",A,"released by the daemon"),pt(),j},workerCount:()=>ue.size,registerProject:Rf,renewProject:_f,resetProjectBirthBreaker:wf,deregisterProject:xf,registrations:()=>Oi().registrations??[],hostState:Oi,refreshRegisteredTrunks:Of,statuslinePayload:Fi,evaluateIdle:Ff,observePublishedVersion:Cf,checkForReplacement:Li,stopReport:ji,stop:Bi}}function Gu(e){let t=e.socketPath,r=N1(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 ${q0(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${wn("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${wn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Wu(e){return`${e.reason} ${e.repair}`}function N1(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:G1(t.acquired_at,e.now??new Date().toISOString())}}function G1(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 q0(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 W1}from"node:child_process";import{existsSync as H1}from"node:fs";import{basename as K0,dirname as U1,join as V0}from"node:path";async function ri(e){let r=await Ds(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==ga().uid||!Qe(r.pid))return{paths:e,joined:!1};let n=U1(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:V0(n,K0(e.lockPath)),leasePath:V0(n,K0(e.leasePath))}}}async function z0(e){let r=await Ds(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Qe(r.pid)))throw new Jr(e.machineClaimPath,"held",r)}async function J0(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[lc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Co({env:n,machineIdHash:e.machineIdHash}))||!(o??H1(Uo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=W1("systemctl",["--user","start",Xt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Xt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await q1(e,t,r),!0}async function q1(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ri(e);if(await Jt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Xt} 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 Uu=1e4,Vn=class extends Error{constructor(r,n,o){super(`redskilled daemon is unreachable on ${JSON.stringify(r)}, so no Worker was started: ${n instanceof Error?n.message:String(n)}${o!=null&&o.kind==="held-unresponsive"?`. ${Wu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},Hu=class extends Vn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},za=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function Ja(e,t={}){let r=t.answers??await Jt(e.socketPath),n=await qo(e.leasePath).catch(()=>{});return Gu({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Qe(n.pid)})}async function qu(e,t={}){let r=await ri(e);try{let n=await J1(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Jr||n instanceof Vn)throw n;let o=await Ja(r.paths).catch(()=>{});throw new Vn(r.paths.socketPath,n,o)}}async function J1(e,t){if(await V1(z1(e.socketPath),{recursive:!0,mode:448}),await Jt(e.socketPath))return"already-running";await z0(e);let r=await Q1(e,t);if(r!=null)return r;if(await J0(e,t,Uu))return"joined";let n=await sh(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??Y1});if(!n.acquired)return await Y0(e,t,void 0,n),"joined";try{if(await Jt(e.socketPath))return"already-running";let o=await Z1(e,t);return await Y0(e,t,o),"spawned"}finally{await ih(n)}}function Y1(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 Q1(e,t){let r=await Ja(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Uu,o=Date.now()+n;for(;;){if(await Jt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await Ja(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new Hu(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 X0(e,t,r={}){await qu(e,r);let n=(await ri(e)).paths,o;try{o=await Ys({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:Q0()})}catch(s){throw new Vn(n.socketPath,s,await Ja(n).catch(()=>{}))}if(!o.ok)throw new za(o.error);return o.value}async function Z0(e,t={},r={}){let n=(await ri(e)).paths;if(!await Jt(n.socketPath))return pm(n.socketPath);let o;try{o=await Ys({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:Q0(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Vn(n.socketPath,a)}if(!o.ok)throw new za(o.error);if(!ic(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await X1(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 X1(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await Jt(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 ek(e,t={}){let r=await X0(e,{op:"host-state"},t);if(!wy(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function tk(e,t={},r){let n=await X0(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!ru(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function rk(e,t=Ne,r={}){let n=await tk(e,r,{vitals:!0,logs:t.verbose,display:!0});return qn(n,t)}async function nk(e,t={},r={}){let n=await tk(e,r,{vitals:!0,logs:!0,display:!0});return No(n,{...Bt,...t})}async function Y0(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Uu);for(;;){if(await Jt(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 ${ah(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 Z1(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await bh({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=K1(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 eF}from"node:fs/promises";import{homedir as tF,totalmem as rF}from"node:os";import{join as nF}from"node:path";var oF="REDSKILLED_IDLE_MS",sF=".red/config.yaml";async function sk(e=tF()){let t=nF(e,sF),r;try{r=await eF(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Ku(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${ok(n)}`),{})}try{let n=aF(r);return{...Ya(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...Ya(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...Ya(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...Ya(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Ku(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${ok(n)}`),{}}}function ik(e={}){let t=e.env??process.env,r=e.config??{},n=pa(t,e.totalMemoryBytes??rF(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=iF(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[oF],r.idleMs);if(o==null)return{ceiling:n,idleMs:Po,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Ku(`redskilled: ${cF(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Po}ms instead.`),{ceiling:n,idleMs:Po,idleMsSource:"derived-default"})}function iF(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 Ya(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function aF(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=lF(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(".")]=dF(c.trim())}return t}function lF(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 dF(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function cF(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function ok(e){return e instanceof Error?e.message:String(e)}function Ku(e){process.stderr.write(`${e}
|
|
104
|
+
`)}import{chmod as gk,mkdir as mk,readFile as bk,stat as vF,writeFile as yk}from"node:fs/promises";import{homedir as Ju}from"node:os";import{dirname as kk,join as Qa}from"node:path";import{join as hF}from"node:path";import{existsSync as uF,readFileSync as M3}from"node:fs";import{dirname as pF,join as fF}from"node:path";function ak(e,t){let r=e;for(let n=0;n<16;n++){let o=fF(r,t);if(uF(o))return o;let s=pF(r);if(s===r)break;r=s}return null}function gF(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 gF(d)}}var lk=["local","tmp","host"],mF="local",ni="plugins.dev.workspace.target";var Vu=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function ck(e){let t=Ko(e,ni),r=kF(t??"").trim();return r===""?void 0:r}function uk(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:mF};let r=lk.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 Vu(`${ni}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${lk.join(", ")}) or an absolute parent directory for Workers.`)}function pk(e,t){return e.kind==="preset"?e.preset==="host":yF(bF(e.parentDir,t),ir(t))}function bF(e,t){return e==="~"?dk(t):e.startsWith("~/")?hF(t,e.slice(2)):dk(e)}function yF(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function dk(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function kF(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}zr();import{createHash as wF}from"node:crypto";import{hostname as RF}from"node:os";import{join as oi}from"node:path";var Vo="redskilled.sock",_F="REDSKILLED_SESSION";function xF(e={}){let t=e.env??process.env,r=t[_F]?.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 EF(e={}){return fk(e.host??RF())}function ur(e={}){let t=xF(e),r=e.runtimeDir??sa({key:`redskilled:${t}`,socketFileName:Vo,env:e.env,uid:e.uid}),n=EF(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:fk(t),machineIdHash:n,runtimeDir:r,socketPath:oi(r,Vo),lockPath:oi(r,"redskilled.spawn.lock"),leasePath:oi(r,"redskilled.lease.toon"),eventLanePath:oi(ir(o),em),registrationIntentPath:oi(ir(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Co({env:e.env,machineIdHash:n,platform:e.platform})}}function fk(e){return wF("sha256").update(e).digest("hex").slice(0,12)}var zu=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${wn("red-skills-redskilled",["provision"])}\` directly`,SF=`# 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
|
|
114
|
-
`)}async function
|
|
115
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
116
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
113
|
+
`;async function wk(e=Ju()){let t=ir(e),r=Qa(kk(t),"config.yaml"),n=await Qu(t),o=!1,s=!1;n===void 0?(await mk(t,{recursive:!0,mode:Vr}),await gk(t,Vr),o=!0):n!==Vr&&(await gk(t,Vr),s=!0);let i=!1;try{await yk(r,SF,{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 Rk={needed:!1,declaredBy:`no ${ni} in view`};async function Yu(e={}){let t=e.homeDir??Ju(),r=e.declaredTarget?.trim();if(r)return hk(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return Rk;let o=Qa(n,".red","config.yaml"),s=await bk(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=ck(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:hk(i,t,o)}function hk(e,t,r){let n=`${ni}: ${e} (${r})`;try{return{needed:pk(uk(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function _k(e){let t=[TF(e),PF(e),AF(e),CF(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 TF(e){let t=e.homeNeed??Rk;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:zu}:{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:`${zu} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function PF(e){return Ar(e.entry)?{check:"daemon-entry",verdict:"ok",evidence:`${e.entry.entry??e.entry.command} (resolved as ${e.entry.source})`,fix:""}:{check:"daemon-entry",verdict:"missing",evidence:`no published redskilled bundle; probed ${e.entry.searched.join(", ")||"nothing"}`,fix:`install or warm the RedSkills bundle for this host, then re-run \`${wn("red-skills-redskilled",["provision"])}\``}}function AF(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:`${zu} \u2014 it starts the daemon and waits for the socket`}}function CF(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 xk(e={}){let t=e.env??process.env,r=e.homeDir??Ju(),n=e.paths??ur({env:t}),o=ir(r),[s,i,a]=await Promise.all([Qu(o),Jt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Yu({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 OF(FF(e,t,r),t)}}var DF="redskilled.service";function Ek(e){return Qa(e,"systemd","user",DF)}function vk(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 Sk(e){let t=Ek(e.configHome);return await Qu(t)!==void 0?{path:t,status:"already-present"}:(await mk(kk(t),{recursive:!0}),await yk(t,e.unit,"utf8"),{path:t,status:"installed"})}async function OF(e,t){if(process.platform!=="linux")return"unsupported";try{return await bk(Ek(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function FF(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??Qa(r,".config")}async function Qu(e){try{return(await vF(e)).mode&511}catch{return}}import{readdir as Pk,rm as IF,stat as MF}from"node:fs/promises";import{dirname as LF,join as Xu}from"node:path";var jF=5*6e4,BF="redskilled.";function $F(e={}){let t=e.env??process.env,r=i=>LF(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 Ak(e={}){let t=e.roots??$F(e),r=e.graceMs??jF,n=e.now??Date.now,o=e.isPidAlive??Qe,s=e.answers??HF,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await Pk(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await NF(Xu(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 NF(e,t){let r;try{r=(await Pk(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:Ck(i),removed:[]}}let n=r.filter(i=>i.startsWith(BF));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await GF(Xu(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 Tk(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(Vo)&&await t.answers(Xu(e,Vo)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await WF(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 Tk(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function Tk(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await IF(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:Ck(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function GF(e){try{return await qo(e)}catch{return}}async function WF(e,t){try{return Math.max(0,t()-(await MF(e)).mtimeMs)}catch{return}}async function HF(e){try{return(await Ys({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function Ck(e){return e instanceof Error?e.message:String(e)}var UF="plugins.dev.statusline",qF="dev.statusline";function KF(e){let t=[],r=a=>{for(let l of[UF,qF]){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 VF={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 Xa(e){let{values:t,positionals:r}=dn(e,VF),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:[]}:KF(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 el,tl=new Map,zF=256;function Ik(){if(el!==void 0)return el;let e=Intl.Segmenter;return el=e?new e(void 0,{granularity:"grapheme"}):null,el}function Zu(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 Dk(e){let t=tl.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return tl.size>=zF&&tl.clear(),tl.set(e,r),r}function Ok(e){return e>=127462&&e<=127487}function Fk(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function JF(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function YF(e,t,r){if(Dk(t)||JF(t)||Fk(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Zu(n)||Dk(n)||Fk(n)||Ok(t)&&Ok(n)||t===13&&n===10)}function QF(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&&!Zu(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function Mk(e){let t=Ik();if(!t)return QF(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 ep(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(YF(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=Ik();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&&!Zu(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var zo="\x1B",XF="\x07",w6=`${zo}\\`;function ZF(e){return e>=64&&e<=126}function eI(e,t){for(let r=t;r<e.length;r++){if(e[r]===XF)return r+1;if(e[r]===zo&&e[r+1]==="\\")return r+2}return e.length}function zn(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&&!ZF(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=eI(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 Lk(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=zn(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!Lk(n)||e[r]===`
|
|
115
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function tp(e){let t="",r=0;for(;r<e.length;){if(e[r]===zo){let o=zn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!Lk(n)||e[r]===`
|
|
116
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function jk(e){return tp(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var $k="\x1B",Bk=/^[\x20-\x7e]*$/,rl=new Map,tI=256;function rI(e){return tp(e)}function be(e){if(Bk.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return Nk(t);let r=rI(e);if(Bk.test(r))return r.length;let n=0;for(let{segment:o}of Mk(r))n+=nI(o);return n}function Jn(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=ep(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function nI(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?Nk(t[0]):t.every(o=>o<=31||o>=127&&o<=159||Gk(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(Wk)?2:1}function Nk(e){let t=rl.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||Gk(e)?r=0:r=Wk(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,rl.size>=tI&&rl.clear(),rl.set(e,r),r}function Gk(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 Wk(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||oI(e)}function oI(e){let t=[9986,9989,9992,9993,9994,9995,9996,9997,9999,10002,10004,10006,10024,10035,10036,10052,10055,10060,10062,10067,10068,10069,10071,10083,10084,10133,10134,10135,10145,10160],r=[9728,9729,9730,9731,9732,9742,9745,9748,9749,9752,9757,9760,9762,9763,9766,9770,9774,9775,9784,9785,9786,9792,9794,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9823,9824,9827,9829,9830,9832,9851,9854,9855,9874,9875,9876,9877,9878,9879,9881,9883,9884,9889,9898,9899,9904,9905,9917,9918,9924,9925,9934,9940,9962,9970,9971,9973,9978,9981];return t.includes(e)||r.includes(e)}function Yn(e,t,r){if(t<=0)return e.split(`
|
|
117
117
|
`);let n=[];for(let o of e.split(`
|
|
118
|
-
`)){if(r==="truncate"||r==="truncate-end"){n.push(Zr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Zr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Zr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...KF(o,t))}return n}function KF(e,t){if(be(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(be(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),be(o)<=t){n=o;continue}let i=VF(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function VF(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===Ok){let l=zn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Jn(e,s);if(!i)break;let a=be(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Zr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(be(e)<=t)return e;if(t<be(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=be(l);return n==="start"?zF(e,t,l,d,i):n==="middle"?YF(e,t,l,d,i):JF(e,t,l,d,i)}function zF(e,t,r,n,o){let s=t-n,i=Jo(e,be(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function JF(e,t,r,n,o){let s=t-n,i=Jo(e,0,s);if(o){let a=i.lastIndexOf(" ");if(a!==-1&&i.length-a<4)return i.slice(0,a)+r}return i+r}function YF(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Jo(e,0,i),d=Jo(e,be(e)-a);if(o){let c=l.lastIndexOf(" ");c!==-1&&l.length-c<4&&(l=l.slice(0,c));let u=d.indexOf(" ");u!==-1&&u<4&&(d=d.slice(u+1))}return l+r+d}function Jo(e,t,r){let n=Number.isFinite(t)?Math.max(0,Math.trunc(t)):0,o=r===void 0?void 0:Number.isFinite(r)?Math.max(n,Math.trunc(r)):n,s="",i=0,a="",l=0,d=!1;for(;l<e.length&&(o===void 0||i<o);){if(e[l]===Ok){let f=zn(e,l);if(f){if(l=f.end,f.kind!=="sgr")continue;a=f.value==="\x1B[0m"?"":a+f.value,i>=n&&(o===void 0||i<o)&&(s+=f.value);continue}}let c=Yu(e,l);if(!c){l++;continue}let u=be(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function si(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function Xu(e,t,r){if(t===void 0)return dt(e,117);if(t===null)return dt(e,110);switch(typeof t){case"boolean":return dt(dt(e,98),t?49:48);case"number":return si(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return si(dt(e,105),t.toString());case"string":return si(dt(e,115),t);case"function":return r.ignoreFunctions===!1?dt(e,102):e;case"object":{if(Array.isArray(t)){let i=dt(e,91);for(let a of t)i=Xu(i,a,r),i=dt(i,124);return dt(i,93)}let n=dt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=si(dt(n,107),i),n=dt(n,58),n=Xu(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return si(dt(e,63),String(t))}}function Ft(e,t={}){return Xu(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as QF}from"node:async_hooks";var Ir=Symbol("tuiuiu.runtime-resource-dispose"),Lk=new QF,rl=new Set,XF=1,Yo={id:0,resources:new Map};function jk(){let e={id:XF++,resources:new Map};return rl.add(e),e}function ZF(e){rl.delete(e)}function Bk(e){if(e!==null&&typeof e=="object"&&Ir in e)try{e[Ir]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function eI(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)Bk(r)}function Qo(e){ZF(e),eI(e)}function qe(e,t){return Lk.run(e,t)}function en(e,t){return(...r)=>qe(e,()=>t(...r))}function Zu(){return Lk.getStore()??null}function Ge(e){if(e)return e;let t=Zu();return t||(rl.size===1?rl.values().next().value??Yo:Yo)}function Mr(){return Yo}function Oe(e,t,r){let n=Ge(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function It(e,t){return Yo.resources.has(e)||Yo.resources.set(e,t()),Yo.resources.get(e)}function nl(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),Bk(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function ep(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function tI(e){let t=e.props,r=typeof t.width=="number"&&t.width>0&&t.width!==1/0,n=typeof t.height=="number"&&t.height>0&&t.height!==1/0;return!(!r||!n||(t.flexGrow??0)>0||t.width==="fill"||t.height==="fill")}var tp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=ep();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=ep()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&tI(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Ft({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=ep()}},rI=Symbol("tuiuiu.dirty-registry");function Lr(e){return Oe(rI,()=>new tp,e)}function $k(e){Lr().beginFrame(e)}function Nk(e,t){Lr().registerNode(e,t)}function Rn(e,t=Pe.CONTENT){Lr().markDirty(e,t)}function Gk(e){Lr().markLayoutClean(e)}function ii(e){Lr().noteReuse(e)}function Qn(e){Lr().noteFresh(e)}function ol(e){return Lr().canReuseSubtree(e)}function Wk(){return Lr().getDiagnostics()}function ai(){Lr().clearGlobalDirty()}function Xo(e){Lr().markClean(e.node);for(let r of e.children)Xo(r)}var Hk=new WeakMap;function kt(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function sl(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var Tt=e=>e==="auto"?0:kt(e,"margin"),nI=new Set(["layoutRef","__scrollQuery"]),oI=new Set(["display","position","flexDirection","flexWrap","flexGrow","flexShrink","flexBasis","flex","justifyContent","alignItems","alignSelf","alignContent","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","margin","marginX","marginY","marginTop","marginBottom","marginLeft","marginRight","gap","columnGap","rowGap","width","height","minWidth","minHeight","maxWidth","maxHeight","top","bottom","left","right","borderStyle","borderTop","borderBottom","borderLeft","borderRight","overflow","overflowX","overflowY"]),sI=new Set(["children","wrap"]);function iI(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function Zo(e){let t=e.props??{},r=e.type==="text"?sI:oI,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ft(n,{ignoreKeys:nI})}function aI(e,t){if(e.children.length!==t.length)return!1;for(let r=0;r<t.length;r++)if(e.children[r]!==t[r])return!1;return!0}function lI(e,t){if(!ol(e)){Qn("layout");return}let r=Hk.get(e);if(!r){Qn("layout");return}if(r.ctxKey!==t){Rn(e,Pe.LAYOUT),Qn("layout");return}let n=Zo(e);if(r.propsKey!==n||!aI(e,r.childRefs)){Rn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Qn("layout");return}return ii("layout"),r.layout}function li(e,t,r,n){Hk.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),Gk(e)}function ht(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function Uk(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Mt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function qk(e,t=0,r=0){let n=t+e.x,o=r+e.y;Mt(e.node,{...e,x:n,y:o});let s=e.node.props,i=kt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=kt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)qk(u,d,c)}function Kk(e,t,r=1/0){if(!Number.isFinite(t)||t<0)throw new RangeError("availableWidth must be a finite non-negative number");if(r!==1/0&&(!Number.isFinite(r)||r<0))throw new RangeError("availableHeight must be a non-negative number or Infinity");t=Math.floor(t),r!==1/0&&(r=Math.floor(r)),$k(e);let n=jr(e,{x:0,y:0,width:t,height:r},null);return qk(n),n}function dI(e,t){let r=e.props.__divider;if(r==="horizontal")return{x:t.x,y:t.y,width:t.width,height:Math.min(1,t.height),node:e,children:[]};if(r==="vertical")return{x:t.x,y:t.y,width:Math.min(1,t.width),height:e.props.__splitDivider?Math.min(1,t.height):t.height,node:e,children:[]};let n=Yn(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>be(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function cI(e,t){let r=typeof e.props.height=="number"?e.props.height:1;return{x:t.x,y:t.y,width:t.width,height:Math.min(r,t.height),node:e,children:[]}}function uI(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function jr(e,t,r){Nk(e,r);let n=iI(t),o=lI(e,n);if(o)return Mt(e,o),o;let s;if(e.type==="text")return s=dI(e,t),li(e,n,Zo(e),s),s;if(e.type==="spacer")return s=cI(e,t),li(e,n,Zo(e),s),s;if(e.type==="newline")return s=uI(e,t),li(e,n,Zo(e),s),s;let i=e.props;if(i.display==="none")return s={x:t.x,y:t.y,width:0,height:0,node:e,children:[]},Mt(e,s),li(e,n,Zo(e),s),s;let a=kt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=kt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=kt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=kt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Tt(i.marginTop??i.marginY??i.margin),p=Tt(i.marginBottom??i.marginY??i.margin),g=Tt(i.marginLeft??i.marginX??i.margin),f=Tt(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,h=di(i.width,t.width),R=di(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?h:t.width)-d-c-y*2),M=Math.max(0,($?R:t.height)-a-l-y*2),N=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:M,U=[],G=i.flexDirection??"column",F=G==="row"||G==="row-reverse",W=G==="row-reverse"||G==="column-reverse",q=kt(F?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],ae=[];if(e.children.length>0){for(let ie of e.children)ie.props.position==="absolute"?oe.push(ie):ae.push(ie);let fe=W?[...ae].reverse():ae;F?U.push(...Vk(fe,D,N,q,i,$,e)):U.push(...fI(fe,D,N,q,i,e))}let se=0,Z=0;if(F)for(let fe of U){let ie=fe.node.props,xe=Tt(ie.marginRight??ie.marginX??ie.margin),Fe=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.x+fe.width+xe),Z=Math.max(Z,fe.y+fe.height+Fe)}else for(let fe of U){let ie=fe.node.props,xe=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+xe)}let Ae=sl(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,we=T?h:Ae?t.width:Ee,J=$?R:Z+a+l+y*2,de=kt(i.minWidth,"minWidth"),_e=kt(i.minHeight,"minHeight");if(we=Math.max(we,de),J=Math.max(J,_e),i.maxWidth!==void 0&&(we=Math.min(we,kt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,kt(i.maxHeight,"maxHeight"))),F&&i.alignItems==="stretch"){let fe=Math.max(0,J-a-l-y*2);for(let ie=0;ie<U.length;ie++){let xe=U[ie],Fe=xe.node.props;Fe.height===void 0&&(U[ie]=Uk(xe,Math.max(xe.height,fe),Fe),Mt(xe.node,U[ie]))}}let Ce=t.x+g,ve=t.y+u,Re=Math.max(0,Math.min(we,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let fe of oe){let ie=fe.props,xe=jr(fe,{x:0,y:0,width:D,height:N},e),Fe=Ce+d+y,at=ve+a+y;ie.left!==void 0?Fe=Ce+d+y+ie.left:ie.right!==void 0&&(Fe=Ce+Re-c-y-xe.width-ie.right),ie.top!==void 0?at=ve+a+y+ie.top:ie.bottom!==void 0&&(at=ve+Se-l-y-xe.height-ie.bottom);let Nt=ht(xe,{x:Fe,y:at});Mt(fe,Nt),U.push(Nt)}return s={x:Ce,y:ve,width:Re,height:Se,node:e,children:U},Mt(e,s),li(e,n,Zo(e),s),s}function Vk(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return pI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let G of e){let F=G.props,W=F.flexGrow;W===void 0?W=F.width==="fill"||G.type==="spacer"?1:0:W=sl(W,"flexGrow");let q=kt(F.minWidth,"minWidth"),oe=F.flexBasis==="content"?jr(G,{x:0,y:0,width:t,height:r},i).width:F.flexBasis===void 0||F.flexBasis==="auto"?q:di(F.flexBasis,t),ae=F.flexShrink===void 0?1:sl(F.flexShrink,"flexShrink"),se=Tt(F.marginLeft??F.marginX??F.margin),Z=Tt(F.marginRight??F.marginX??F.margin);if(W>0)c+=W,d+=oe+se+Z,u.push({node:G,flex:W,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:Z});else{let Ae=F.width!==void 0&&F.width!=="auto"&&F.width!=="fill"?di(F.width,t)+se+Z:t,Ee=jr(G,{x:0,y:0,width:Ae,height:r},i);d+=Ee.width+se+Z,u.push({node:G,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:Z,layout:Ee,measuredCtxWidth:Ae})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let G=u.map(()=>0),F=Math.ceil(p);for(;F>0;){let W=u.map((Z,pe)=>{let Ae=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,Ae-G[pe]);return{index:pe,capacity:Ee,maxReduction:Ae,weight:Z.shrink*Z.basis}}).filter(Z=>Z.capacity>0&&Z.weight>0),q=W.reduce((Z,pe)=>Z+pe.weight,0);if(q<=0)break;let oe=W.map(Z=>{let pe=F*Z.weight/q,Ae=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Ae,fraction:pe-Math.floor(pe)}}),ae=0;for(let Z of oe)Z.whole>0&&(G[Z.index]+=Z.whole,ae+=Z.whole);if(F-=ae,F<=0)break;oe.sort((Z,pe)=>pe.fraction-Z.fraction||pe.weight-Z.weight||pe.capacity-Z.capacity);let se=!1;for(let Z of oe){if(F<=0)break;G[Z.index]<Z.maxReduction&&(G[Z.index]+=1,F-=1,se=!0)}if(!se)break}if(G.some(W=>W>0)){for(let W=0;W<u.length;W++){let q=u[W];q.targetWidth=Math.max(q.minWidth,q.basis-G[W])}d=u.reduce((W,q)=>W+(q.targetWidth??q.basis)+q.marginLeft+q.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,y=0,h=o.justifyContent??"flex-start",R=d+(c>0?g:0),T=t-R,$=0,D=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?$=T/(u.length-1):h==="space-around"?(D=T/(u.length*2),y=D):h==="space-evenly"?($=T/(u.length+1),y=$):h==="flex-end"?y=T:h==="center"&&(y=T/2));let M=0,N=[];for(let G=0;G<u.length;G++){let F=u[G],q=(F.targetWidth??(F.flex>0?F.basis+Math.floor(f*F.flex):F.basis))+F.marginLeft+F.marginRight,oe=F.layout&&F.measuredCtxWidth===q?ht(F.layout,{x:F.layout.x+y}):jr(F.node,{x:y,y:0,width:q,height:r},i),ae=F.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),y+=F.marginLeft+oe.width+F.marginRight,h==="space-between"&&G<u.length-1?y+=$:h==="space-around"?y+=D*2:h==="space-evenly"?y+=$:y+=n}let U=s?r:M;for(let G of N){let{style:F}=G,{layout:W}=G,q=F.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(F.height===void 0&&(se=Math.max(W.height,U)),ae=0):oe==="center"?ae=Math.floor((U-W.height)/2):oe==="flex-end"?ae=U-W.height:oe==="baseline"&&(ae=0),W=Uk(W,se,F),W=ht(W,{y:ae}),Mt(W.node,W),a.push(W)}return a}function pI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=Tt(M.marginLeft??M.marginX??M.margin),U=Tt(M.marginRight??M.marginX??M.margin),G=jr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:di(M.flexBasis,t))+N+U,q=c+(d.length>0?n:0)+W;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=kt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let M=Vk(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((U,G)=>Math.max(U,G.y+G.height),0);return{layouts:M,height:N}}),g=p.reduce((D,M)=>D+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",h=0,R=0;y==="flex-end"?h=f:y==="center"?h=Math.floor(f/2):y==="space-between"&&p.length>1?R=f/(p.length-1):y==="space-around"&&p.length>0?(R=f/p.length,h=Math.floor(R/2)):y==="stretch"&&p.length>0&&(R=f/p.length);let T=[],$=h;for(let D of p){for(let M of D.layouts){let N=ht(M,{y:M.y+Math.floor($)});Mt(N.node,N),T.push(N)}$+=D.height+u+R}return T}function fI(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,y=[];for(let h of e){let R=h.props,T=Tt(R.marginTop??R.marginY??R.margin),$=Tt(R.marginBottom??R.marginY??R.margin),D=R.flexGrow;D===void 0?D=R.height==="fill"||h.type==="spacer"?1:0:D=sl(D,"flexGrow");let M=kt(R.minHeight,"minHeight"),N=R.maxHeight===void 0?void 0:kt(R.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,y.push({node:h,flex:D,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$});else{let U=jr(h,{x:0,y:0,width:t,height:r},s);g+=U.height+T+$,y.push({node:h,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$,layout:U})}}if(g+=n*Math.max(0,e.length-1),f>0){let R=Math.max(0,r-g)/f,T=0;for(let $=0;$<y.length;$++){let D=y[$],N=D.node.props.alignSelf,U=N!=="auto"&&N?N:o.alignItems??"flex-start",G=D.layout;if(D.flex>0){let q=Math.floor(R*D.flex);q=Math.max(D.minHeight,q),D.maxHeight!==void 0&&(q=Math.min(D.maxHeight,q)),G=jr(D.node,{x:0,y:T,width:t,height:q},s),G=ht(G,{height:q})}G||(G=jr(D.node,{x:0,y:T,width:t,height:r},s));let F=G.x,W=G.width;U==="center"?F=Math.floor((t-G.width)/2):U==="flex-end"?F=t-G.width:U==="stretch"&&(W=t),G=ht(G,{x:F,y:T,width:W}),Mt(G.node,G),i.push(G),T+=D.marginTop+G.height+D.marginBottom,$<y.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],y=f.props,h=Tt(y.marginTop??y.marginY??y.margin),R=Tt(y.marginBottom??y.marginY??y.margin),T=jr(f,{x:0,y:l,width:t,height:r-l},s),$=y.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",M=T.x,N=T.width;D==="center"?M=Math.floor((t-T.width)/2):D==="flex-end"?M=t-T.width:D==="stretch"&&(N=t);let U=ht(T,{x:M,width:N});Mt(U.node,U),i.push(U),l+=h+T.height+R,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*y)}),Mt(i[y].node,i[y]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),Mt(i[y].node,i[y]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(y+1))}),Mt(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),Mt(i[f].node,i[f])}return i}function di(e,t){if(e===void 0||e==="auto")return 0;if(e==="fill")return t;if(typeof e=="number"){if(!Number.isFinite(e)||e<0)throw new RangeError("Layout size must be a finite non-negative number");return Math.floor(e)}if(e.endsWith("%")){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0)throw new RangeError("Layout percentage must be finite and non-negative");return t===1/0?0:Math.floor(n/100*t)}let r=Number(e);if(!Number.isFinite(r)||r<0)throw new RangeError(`Invalid layout size: ${e}`);return Math.floor(r)}var zk={background:0,normal:1,modal:2,critical:3};var Jk=new Set;function Qk(e,t){process.env.NODE_ENV==="production"||Jk.has(e)||(Jk.add(e),console.warn(`[tuiuiu] ${t}`))}var gI=Symbol("tuiuiu.hook-runtime-state"),rp=new WeakMap;function hI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function Je(e){return Oe(gI,hI,e)}function np(e){return rp.get(e)??null}function Xk(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function Zk(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Qk("hook-count-changed",`Hook count changed between renders (${e.lastMaxHookIndex} \u2192 ${t}). A component with internal hooks (Select, Tabs, Menu, ChatList, ScrollList, etc.) was conditionally added or removed from the render tree. FIX: Keep hook-bearing components always rendered \u2014 use height: 0, isActive: false, or display: "none" to hide them instead of removing them with ternaries or When().`),t<e.lastMaxHookIndex)for(let r=t;r<e.lastMaxHookIndex;r++){rw(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(ci(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function ew(){return Je().isRendering}function tw(){return Je().renderPhaseMode}function ur(e){let t=Je();t.isRendering||Qk("hook-outside-render","A hook (useState, useMemo, useComputed, etc.) was called outside a component render. Hooks must be called inside a component function, not at module scope or in event handlers. Move the hook call inside your component function.");let r=t.hookIndex++;return r>=t.hookState.state.length?(t.hookState.state.push(e),{value:e,isNew:!0}):{value:t.hookState.state[r],isNew:!1}}function pr(e,t){Je().hookState.state[e]=t}function Br(e){return Je().hookState.state[e]}function Xt(){return Je().hookIndex-1}function Xn(e,t=Xt()){let r=Je(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function rw(e,t){let r=t.hookCleanups.get(e);if(r){t.hookCleanups.delete(e);for(let n of[...r].reverse())try{n()}catch(o){console.error("[tuiuiu] Error during hook cleanup:",o)}}}function il(e){let t=Ge(e),r=Je(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))rw(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function tn(e){return Je(e).appContext}function op(e,t){let r=Ge(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&rp.delete(o),e&&rp.set(e,r)}function al(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:zk[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function ci(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function nw(e,t,r){let o=[...Je().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function ow(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function sp(e,t){Je(t).focusManager=e}function sw(e){let t=Je(),r=bI(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function iw(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var mI=300,Yk=2;function bI(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<mI&&Math.abs(t.x-n.x)<=Yk&&Math.abs(t.y-n.y)<=Yk?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function aw(e,t){let r=[...Je().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function lw(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var ui=[],dl=!1,ip=!1,ll=0,pi=null,fi=null;function dw(){if(!ip){ip=!0;for(let e=ui.length-1;e>=0;e--)try{ui[e]()}catch{}ip=!1}}function rn(e){return ui.push(e),()=>{let t=ui.indexOf(e);t!==-1&&ui.splice(t,1)}}function cw(){ll++,dl||(dl=!0,pi=()=>{dw()},fi=()=>{dw()},process.on("exit",pi),process.on("uncaughtExceptionMonitor",fi));let e=!1;return()=>{e||(e=!0,ll=Math.max(0,ll-1),ll===0&&yI())}}function yI(){dl&&(pi&&process.off("exit",pi),fi&&process.off("uncaughtExceptionMonitor",fi),pi=null,fi=null,dl=!1)}var uw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,pw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,fw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,gw=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function cl(e,t,r,n){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||e<0||t<1||r<1)return null;let o=e&3,s=(e&32)!==0,i=(e&64)!==0,a,l;return i?(a=e&1?"scroll-down":"scroll-up",l="click"):(o===0?a="left":o===1?a="middle":o===2?a="right":a="none",s&&o===3?l="move":n||o===3?l="release":s?l="drag":l="click"),{x:t-1,y:r-1,button:a,action:l,modifiers:{shift:(e&4)!==0,alt:(e&8)!==0,ctrl:(e&16)!==0}}}function hw(e){let t=uw.exec(e);if(t){let s=fr(t[1]),i=fr(t[2]),a=fr(t[3]),l=fr(t[4]),d=fr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=cl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=pw.exec(e);if(r){let s=fr(r[1]),i=fr(r[2]),a=fr(r[3]);if(s===null||i===null||a===null)return null;let l=cl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=fw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=cl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=gw.exec(e);if(o){let s=fr(o[1]),i=fr(o[2]),a=fr(o[3]);if(s===null||i===null||a===null)return null;let l=cl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function mw(e){return uw.test(e)||pw.test(e)||fw.test(e)||gw.test(e)}var kI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",bw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",wI=Symbol("tuiuiu.mouse-runtime-state");function gi(e){return Oe(wI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function ap(e){return tn(e)?.stdout??process.stdout}function lp(e){return"isTTY"in e&&!!e.isTTY}function hi(e){return hw(e)}function dp(e){return mw(e)}function es(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,RI(t);let n=ap(t);r.outputStream=n,lp(n)&&n.write(kI)}}function Zn(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??ap(t);lp(n)&&n.write(bw),r.outputStream=null}}function ul(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??ap(t);lp(n)&&n.write(bw),r.outputStream=null}}function RI(e){let t=gi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=rn(en(e,()=>ul(e))))}function yw(e){let t=gi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as EI}from"node:zlib";var We={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},_I={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...We,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...We,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...We,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:We}};function xI(e=process.env){let t=e.TERM_PROGRAM||"",r=e.TERM||"";return e.KITTY_WINDOW_ID?"kitty":e.ALACRITTY_WINDOW_ID||e.ALACRITTY_LOG?"alacritty":e.GHOSTTY_RESOURCES_DIR?"ghostty":e.WEZTERM_PANE||t==="WezTerm"?"wezterm":t==="rio"?"rio":e.WARP_IS_LOCAL_SHELL_SESSION?"warp":r.startsWith("foot")||r==="foot"?"foot":e.CONTOUR_TERMINAL_ID?"contour":e.VSCODE_PID||t==="vscode"?"vscode":t==="iTerm.app"?"iterm2":t==="Apple_Terminal"?"terminal-app":e.WT_SESSION?"windows-terminal":e.KONSOLE_VERSION?"konsole":e.VTE_VERSION?e.TILIX_ID?"tilix":"gnome-terminal":t==="Hyper"?"hyper":e.TERMINOLOGY?"terminology":t==="mlterm"?"mlterm":t==="blackbox"||e.BLACKBOX_THEMES_DIR?"black-box":t==="Bobcat"?"bobcat":r.includes("rxvt-unicode")||r.includes("rxvt")?"rxvt-unicode":r.includes("mlterm")?"mlterm":r==="st-256color"||r==="st"?"st":"unknown"}function kw(e=process.env){return e.TMUX?{type:"tmux",version:e.TMUX?.split(",")[1],needsPassthrough:!0}:e.STY?{type:"screen",version:void 0,needsPassthrough:!0}:e.ZELLIJ?{type:"zellij",version:(e.ZELLIJ_SESSION_NAME,void 0),needsPassthrough:!1}:null}function pl(e=process.env){let t=xI(e),r=_I[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var vw=Symbol("tuiuiu.graphics-runtime-state");function Sw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:It(vw,()=>Sw(Mr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function fp(){let e=Ge();return Oe(vw,()=>Sw(e),e)}var ww={width:10,height:20};function fl(e){return{width:Math.max(1,Math.round(e?.width??ww.width)),height:Math.max(1,Math.round(e?.height??ww.height))}}function vI(){let e=process.env,t=e.TERM?.toLowerCase()||"",r=e.COLORTERM?.toLowerCase()||"",n=e.TERM_PROGRAM?.toLowerCase()||"";return e.FORCE_COLOR==="0"?!1:e.FORCE_COLOR==="2"||e.FORCE_COLOR==="3"?!0:r==="truecolor"||r==="24bit"||t.includes("256color")||t.includes("direct")||n==="iterm.app"||n==="wezterm"||n==="hyper"||!!e.WT_SESSION}function Tw(){return vI()?"halfblock":"braille"}function ts(e){return e==="none"?Tw():e}function Pw(e){let t=ts(e);return t==="halfblock"||t==="braille"}function Aw(e){let t=ts(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function Rw(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function Cw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&AI(e)?e:null}function Dw(){let e=process.env.TERM_PROGRAM?.toLowerCase()||"",t=process.env.KITTY_WINDOW_ID,r=process.env.ITERM_SESSION_ID;return t||e==="kitty"?"kitty":r||e==="iterm.app"?"iterm2":null}function Ow(){return pl(process.env).knownCaps.preferredGraphics||null}function Fw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function SI(){let e=Cw();if(e)return e;let t=Dw();if(t)return t;let r=Ow();return r||Fw()}function TI(e){return Cw()===e||Dw()===e?"env":Ow()===e?"profile":Fw()===e?"env":"fallback"}function rs(){let e=fp();if(e.manualOverride)return Rw(e.manualOverride,"manual",fl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=PI();return Rw(t,TI(t),fl())}function PI(){let e=fp();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=SI()??Tw()),e.detectedProtocol)}function AI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function Iw(){let e=fp();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:fl(void 0)};let r=e.negotiatedCapabilities.cellSize;if(t.width!==r.width||t.height!==r.height)for(let n of[...e.cellSizeChangeListeners])n(r)}}function CI(e){let t=2166136261;t^=e.width,t=Math.imul(t,16777619),t^=e.height,t=Math.imul(t,16777619);for(let r=0;r<e.pixels.length;r++)t^=e.pixels[r],t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function Mw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function bi(e){return Mw(e)?e:hl(e)}function _w(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function hl(e,t={}){let r=fl(t.cellSize??rs().cellSize);return{pixels:e.pixels,width:e.width,height:e.height,cellSize:r,desiredColumns:Math.max(1,Math.ceil(e.width/r.width)),desiredRows:Math.max(1,Math.ceil(e.height/r.height)),hash:CI(e)}}function yi(e,t={}){let r=Mw(e)?e:hl(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=_w(r.desiredRows,r.desiredColumns,l),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(s!==void 0&&o===void 0)d=s,l=_w(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),y=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=y*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var ns={transmit(e,t={}){let r=bi(e),n=yi(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=LI(r),l=Lw(a),d=4096,c=[];for(let u=0;u<l.length;u+=d){let p=l.slice(u,u+d),f=u+d>=l.length?0:1;u===0?c.push(`\x1B_Ga=T,f=100,c=${o},r=${s}${i},m=${f};${p}\x1B\\`):c.push(`\x1B_Gm=${f};${p}\x1B\\`)}return c.join("")},display(e,t,r){return`\x1B_Ga=p,i=${e},p=1,X=${t},Y=${r}\x1B\\`},delete(e){return e!==void 0?`\x1B_Ga=d,d=i,i=${e}\x1B\\`:"\x1B_Ga=d,d=A\x1B\\"},clear(){return"\x1B_Ga=d,d=A\x1B\\"}},DI={display(e,t={}){let{pixels:r}=bi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Lw(r);return`\x1B]1337;File=inline=1;${n};${o}:${s}\x07`},displayFile(e,t={}){let r=t.width?`width=${t.width}`:"width=auto",n=t.height?`height=${t.height}`:"height=auto",o=Buffer.from(e).toString("base64");return`\x1B]1337;File=inline=1;${r};${n}:${o}\x07`}},OI={encode(e,t={}){let r=bi(e),n=yi(r,t),o=t.width!==void 0||t.height!==void 0?jw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=jI(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),y=Math.round(p/255*100),h=Math.round(g/255*100);d+=`#${c};2;${f};${y};${h}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let y=0;for(let h=0;h<6;h++){let R=c+h;if(R>=i)continue;let T=(R*s+f)*4,$=a[T],D=a[T+1],M=a[T+2];BI([$,D,M],l)===u&&(y|=1<<h,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function xw(e,t,r){if(t<0||t>=e.width||r<0||r>=e.height)return{r:0,g:0,b:0,a:0};let n=(r*e.width+t)*4;return{r:e.pixels[n]??0,g:e.pixels[n+1]??0,b:e.pixels[n+2]??0,a:e.pixels[n+3]??0}}function cp(e,t){let r=[];return e&&e.a>0&&r.push(`38;2;${e.r};${e.g};${e.b}`),t&&t.a>0&&r.push(`48;2;${t.r};${t.g};${t.b}`),r.length>0?`\x1B[${r.join(";")}m`:void 0}var Ew={render(e,t={}){let r=bi(e),n=yi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=jw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=xw(i,u,l),g=xw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=cp(p,g)):p.a>0?(f="\u2580",y=cp(p)):g.a>0&&(f="\u2584",y=cp(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
119
|
-
`)}},mi=10240,
|
|
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(...sI(o,t))}return n}function sI(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=iI(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function iI(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===$k){let l=zn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Jn(e,s);if(!i)break;let a=be(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Zr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(be(e)<=t)return e;if(t<be(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=be(l);return n==="start"?aI(e,t,l,d,i):n==="middle"?dI(e,t,l,d,i):lI(e,t,l,d,i)}function aI(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 lI(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 dI(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]===$k){let f=zn(e,l);if(f){if(l=f.end,f.kind!=="sgr")continue;a=f.value==="\x1B[0m"?"":a+f.value,i>=n&&(o===void 0||i<o)&&(s+=f.value);continue}}let c=ep(e,l);if(!c){l++;continue}let u=be(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function si(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function rp(e,t,r){if(t===void 0)return dt(e,117);if(t===null)return dt(e,110);switch(typeof t){case"boolean":return dt(dt(e,98),t?49:48);case"number":return si(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return si(dt(e,105),t.toString());case"string":return si(dt(e,115),t);case"function":return r.ignoreFunctions===!1?dt(e,102):e;case"object":{if(Array.isArray(t)){let i=dt(e,91);for(let a of t)i=rp(i,a,r),i=dt(i,124);return dt(i,93)}let n=dt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=si(dt(n,107),i),n=dt(n,58),n=rp(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return si(dt(e,63),String(t))}}function It(e,t={}){return rp(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as cI}from"node:async_hooks";var Ir=Symbol("tuiuiu.runtime-resource-dispose"),Hk=new cI,nl=new Set,uI=1,Qo={id:0,resources:new Map};function Uk(){let e={id:uI++,resources:new Map};return nl.add(e),e}function pI(e){nl.delete(e)}function qk(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 fI(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)qk(r)}function Xo(e){pI(e),fI(e)}function qe(e,t){return Hk.run(e,t)}function en(e,t){return(...r)=>qe(e,()=>t(...r))}function np(){return Hk.getStore()??null}function Ge(e){if(e)return e;let t=np();return t||(nl.size===1?nl.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 Mt(e,t){return Qo.resources.has(e)||Qo.resources.set(e,t()),Qo.resources.get(e)}function ol(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),qk(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 op(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function gI(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 sp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=op();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=op()}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&&gI(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 It({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=op()}},hI=Symbol("tuiuiu.dirty-registry");function Lr(e){return Oe(hI,()=>new sp,e)}function Kk(e){Lr().beginFrame(e)}function Vk(e,t){Lr().registerNode(e,t)}function Rn(e,t=Pe.CONTENT){Lr().markDirty(e,t)}function zk(e){Lr().markLayoutClean(e)}function ii(e){Lr().noteReuse(e)}function Qn(e){Lr().noteFresh(e)}function sl(e){return Lr().canReuseSubtree(e)}function Jk(){return Lr().getDiagnostics()}function ai(){Lr().clearGlobalDirty()}function Zo(e){Lr().markClean(e.node);for(let r of e.children)Zo(r)}var Yk=new WeakMap;function wt(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 il(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 Pt=e=>e==="auto"?0:wt(e,"margin"),mI=new Set(["layoutRef","__scrollQuery"]),bI=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"]),yI=new Set(["children","wrap"]);function kI(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function es(e){let t=e.props??{},r=e.type==="text"?yI:bI,n={};for(let o of r)o in t&&(n[o]=t[o]);return It(n,{ignoreKeys:mI})}function wI(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 RI(e,t){if(!sl(e)){Qn("layout");return}let r=Yk.get(e);if(!r){Qn("layout");return}if(r.ctxKey!==t){Rn(e,Pe.LAYOUT),Qn("layout");return}let n=es(e);if(r.propsKey!==n||!wI(e,r.childRefs)){Rn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Qn("layout");return}return ii("layout"),r.layout}function li(e,t,r,n){Yk.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),zk(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 Qk(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 Lt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function Xk(e,t=0,r=0){let n=t+e.x,o=r+e.y;Lt(e.node,{...e,x:n,y:o});let s=e.node.props,i=wt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=wt(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)Xk(u,d,c)}function Zk(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)),Kk(e);let n=jr(e,{x:0,y:0,width:t,height:r},null);return Xk(n),n}function _I(e,t){let r=e.props.__divider;if(r==="horizontal")return{x:t.x,y:t.y,width:t.width,height:Math.min(1,t.height),node:e,children:[]};if(r==="vertical")return{x:t.x,y:t.y,width:Math.min(1,t.width),height:e.props.__splitDivider?Math.min(1,t.height):t.height,node:e,children:[]};let n=Yn(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>be(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function xI(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 EI(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){Vk(e,r);let n=kI(t),o=RI(e,n);if(o)return Lt(e,o),o;let s;if(e.type==="text")return s=_I(e,t),li(e,n,es(e),s),s;if(e.type==="spacer")return s=xI(e,t),li(e,n,es(e),s),s;if(e.type==="newline")return s=EI(e,t),li(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:[]},Lt(e,s),li(e,n,es(e),s),s;let a=wt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=wt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=wt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=wt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Pt(i.marginTop??i.marginY??i.margin),p=Pt(i.marginBottom??i.marginY??i.margin),g=Pt(i.marginLeft??i.marginX??i.margin),f=Pt(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,h=di(i.width,t.width),R=di(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?h:t.width)-d-c-y*2),M=Math.max(0,($?R:t.height)-a-l-y*2),N=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:M,U=[],G=i.flexDirection??"column",F=G==="row"||G==="row-reverse",W=G==="row-reverse"||G==="column-reverse",q=wt(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(...ew(fe,D,N,q,i,$,e)):U.push(...SI(fe,D,N,q,i,e))}let se=0,Z=0;if(F)for(let fe of U){let ie=fe.node.props,xe=Pt(ie.marginRight??ie.marginX??ie.margin),Fe=Pt(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=Pt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+xe)}let Ae=il(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=wt(i.minWidth,"minWidth"),_e=wt(i.minHeight,"minHeight");if(we=Math.max(we,de),J=Math.max(J,_e),i.maxWidth!==void 0&&(we=Math.min(we,wt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,wt(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]=Qk(xe,Math.max(xe.height,fe),Fe),Lt(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});Lt(fe,Nt),U.push(Nt)}return s={x:Ce,y:ve,width:Re,height:Se,node:e,children:U},Lt(e,s),li(e,n,es(e),s),s}function ew(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return vI(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=il(W,"flexGrow");let q=wt(F.minWidth,"minWidth"),oe=F.flexBasis==="content"?jr(G,{x:0,y:0,width:t,height:r},i).width:F.flexBasis===void 0||F.flexBasis==="auto"?q:di(F.flexBasis,t),ae=F.flexShrink===void 0?1:il(F.flexShrink,"flexShrink"),se=Pt(F.marginLeft??F.marginX??F.margin),Z=Pt(F.marginRight??F.marginX??F.margin);if(W>0)c+=W,d+=oe+se+Z,u.push({node:G,flex:W,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:Z});else{let Ae=F.width!==void 0&&F.width!=="auto"&&F.width!=="fill"?di(F.width,t)+se+Z:t,Ee=jr(G,{x:0,y:0,width:Ae,height:r},i);d+=Ee.width+se+Z,u.push({node:G,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:Z,layout:Ee,measuredCtxWidth:Ae})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let G=u.map(()=>0),F=Math.ceil(p);for(;F>0;){let W=u.map((Z,pe)=>{let Ae=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,Ae-G[pe]);return{index:pe,capacity:Ee,maxReduction:Ae,weight:Z.shrink*Z.basis}}).filter(Z=>Z.capacity>0&&Z.weight>0),q=W.reduce((Z,pe)=>Z+pe.weight,0);if(q<=0)break;let oe=W.map(Z=>{let pe=F*Z.weight/q,Ae=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Ae,fraction:pe-Math.floor(pe)}}),ae=0;for(let Z of oe)Z.whole>0&&(G[Z.index]+=Z.whole,ae+=Z.whole);if(F-=ae,F<=0)break;oe.sort((Z,pe)=>pe.fraction-Z.fraction||pe.weight-Z.weight||pe.capacity-Z.capacity);let se=!1;for(let Z of oe){if(F<=0)break;G[Z.index]<Z.maxReduction&&(G[Z.index]+=1,F-=1,se=!0)}if(!se)break}if(G.some(W=>W>0)){for(let W=0;W<u.length;W++){let q=u[W];q.targetWidth=Math.max(q.minWidth,q.basis-G[W])}d=u.reduce((W,q)=>W+(q.targetWidth??q.basis)+q.marginLeft+q.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,y=0,h=o.justifyContent??"flex-start",R=d+(c>0?g:0),T=t-R,$=0,D=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?$=T/(u.length-1):h==="space-around"?(D=T/(u.length*2),y=D):h==="space-evenly"?($=T/(u.length+1),y=$):h==="flex-end"?y=T:h==="center"&&(y=T/2));let M=0,N=[];for(let G=0;G<u.length;G++){let F=u[G],q=(F.targetWidth??(F.flex>0?F.basis+Math.floor(f*F.flex):F.basis))+F.marginLeft+F.marginRight,oe=F.layout&&F.measuredCtxWidth===q?ht(F.layout,{x:F.layout.x+y}):jr(F.node,{x:y,y:0,width:q,height:r},i),ae=F.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),y+=F.marginLeft+oe.width+F.marginRight,h==="space-between"&&G<u.length-1?y+=$:h==="space-around"?y+=D*2:h==="space-evenly"?y+=$:y+=n}let U=s?r:M;for(let G of N){let{style:F}=G,{layout:W}=G,q=F.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(F.height===void 0&&(se=Math.max(W.height,U)),ae=0):oe==="center"?ae=Math.floor((U-W.height)/2):oe==="flex-end"?ae=U-W.height:oe==="baseline"&&(ae=0),W=Qk(W,se,F),W=ht(W,{y:ae}),Lt(W.node,W),a.push(W)}return a}function vI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=Pt(M.marginLeft??M.marginX??M.margin),U=Pt(M.marginRight??M.marginX??M.margin),G=jr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:di(M.flexBasis,t))+N+U,q=c+(d.length>0?n:0)+W;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=wt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let M=ew(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($)});Lt(N.node,N),T.push(N)}$+=D.height+u+R}return T}function SI(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=Pt(R.marginTop??R.marginY??R.margin),$=Pt(R.marginBottom??R.marginY??R.margin),D=R.flexGrow;D===void 0?D=R.height==="fill"||h.type==="spacer"?1:0:D=il(D,"flexGrow");let M=wt(R.minHeight,"minHeight"),N=R.maxHeight===void 0?void 0:wt(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}),Lt(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=Pt(y.marginTop??y.marginY??y.margin),R=Pt(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});Lt(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)}),Lt(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))}),Lt(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))}),Lt(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}),Lt(i[f].node,i[f])}return i}function di(e,t){if(e===void 0||e==="auto")return 0;if(e==="fill")return t;if(typeof e=="number"){if(!Number.isFinite(e)||e<0)throw new RangeError("Layout size must be a finite non-negative number");return Math.floor(e)}if(e.endsWith("%")){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0)throw new RangeError("Layout percentage must be finite and non-negative");return t===1/0?0:Math.floor(n/100*t)}let r=Number(e);if(!Number.isFinite(r)||r<0)throw new RangeError(`Invalid layout size: ${e}`);return Math.floor(r)}var tw={background:0,normal:1,modal:2,critical:3};var rw=new Set;function ow(e,t){process.env.NODE_ENV==="production"||rw.has(e)||(rw.add(e),console.warn(`[tuiuiu] ${t}`))}var TI=Symbol("tuiuiu.hook-runtime-state"),ip=new WeakMap;function PI(){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(TI,PI,e)}function ap(e){return ip.get(e)??null}function sw(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function iw(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&ow("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++){dw(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(ci(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function aw(){return Je().isRendering}function lw(){return Je().renderPhaseMode}function pr(e){let t=Je();t.isRendering||ow("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 fr(e,t){Je().hookState.state[e]=t}function Br(e){return Je().hookState.state[e]}function Zt(){return Je().hookIndex-1}function Xn(e,t=Zt()){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 dw(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 al(e){let t=Ge(e),r=Je(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))dw(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 lp(e,t){let r=Ge(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&ip.delete(o),e&&ip.set(e,r)}function ll(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:tw[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function ci(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function cw(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 uw(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function dp(e,t){Je(t).focusManager=e}function pw(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 fw(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var AI=300,nw=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<AI&&Math.abs(t.x-n.x)<=nw&&Math.abs(t.y-n.y)<=nw?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function gw(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 hw(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var ui=[],cl=!1,cp=!1,dl=0,pi=null,fi=null;function mw(){if(!cp){cp=!0;for(let e=ui.length-1;e>=0;e--)try{ui[e]()}catch{}cp=!1}}function rn(e){return ui.push(e),()=>{let t=ui.indexOf(e);t!==-1&&ui.splice(t,1)}}function bw(){dl++,cl||(cl=!0,pi=()=>{mw()},fi=()=>{mw()},process.on("exit",pi),process.on("uncaughtExceptionMonitor",fi));let e=!1;return()=>{e||(e=!0,dl=Math.max(0,dl-1),dl===0&&DI())}}function DI(){cl&&(pi&&process.off("exit",pi),fi&&process.off("uncaughtExceptionMonitor",fi),pi=null,fi=null,cl=!1)}var yw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,kw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,ww=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Rw=/^\x1b\[(\d+);(\d+);(\d+)M/;function gr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function ul(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 _w(e){let t=yw.exec(e);if(t){let s=gr(t[1]),i=gr(t[2]),a=gr(t[3]),l=gr(t[4]),d=gr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=ul(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=kw.exec(e);if(r){let s=gr(r[1]),i=gr(r[2]),a=gr(r[3]);if(s===null||i===null||a===null)return null;let l=ul(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=ww.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=ul(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Rw.exec(e);if(o){let s=gr(o[1]),i=gr(o[2]),a=gr(o[3]);if(s===null||i===null||a===null)return null;let l=ul(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function xw(e){return yw.test(e)||kw.test(e)||ww.test(e)||Rw.test(e)}var OI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Ew="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",FI=Symbol("tuiuiu.mouse-runtime-state");function gi(e){return Oe(FI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function up(e){return tn(e)?.stdout??process.stdout}function pp(e){return"isTTY"in e&&!!e.isTTY}function hi(e){return _w(e)}function fp(e){return xw(e)}function ts(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,II(t);let n=up(t);r.outputStream=n,pp(n)&&n.write(OI)}}function Zn(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??up(t);pp(n)&&n.write(Ew),r.outputStream=null}}function pl(e){let t=Ge(e),r=gi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??up(t);pp(n)&&n.write(Ew),r.outputStream=null}}function II(e){let t=gi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=rn(en(e,()=>pl(e))))}function vw(e){let t=gi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as jI}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},MI={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 LI(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 Sw(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 fl(e=process.env){let t=LI(e),r=MI[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 Ow=Symbol("tuiuiu.graphics-runtime-state");function Fw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Mt(Ow,()=>Fw(Mr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function bp(){let e=Ge();return Oe(Ow,()=>Fw(e),e)}var Tw={width:10,height:20};function gl(e){return{width:Math.max(1,Math.round(e?.width??Tw.width)),height:Math.max(1,Math.round(e?.height??Tw.height))}}function BI(){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 Iw(){return BI()?"halfblock":"braille"}function rs(e){return e==="none"?Iw():e}function Mw(e){let t=rs(e);return t==="halfblock"||t==="braille"}function Lw(e){let t=rs(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function Pw(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 jw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&WI(e)?e:null}function Bw(){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 $w(){return fl(process.env).knownCaps.preferredGraphics||null}function Nw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function $I(){let e=jw();if(e)return e;let t=Bw();if(t)return t;let r=$w();return r||Nw()}function NI(e){return jw()===e||Bw()===e?"env":$w()===e?"profile":Nw()===e?"env":"fallback"}function ns(){let e=bp();if(e.manualOverride)return Pw(e.manualOverride,"manual",gl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=GI();return Pw(t,NI(t),gl())}function GI(){let e=bp();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=$I()??Iw()),e.detectedProtocol)}function WI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function Gw(){let e=bp();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:gl(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 HI(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 Ww(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function bi(e){return Ww(e)?e:ml(e)}function Aw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function ml(e,t={}){let r=gl(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:HI(e)}}function yi(e,t={}){let r=Ww(e)?e:ml(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=Aw(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=Aw(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=bi(e),n=yi(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=JI(r),l=Hw(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\\"}},UI={display(e,t={}){let{pixels:r}=bi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Hw(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`}},qI={encode(e,t={}){let r=bi(e),n=yi(r,t),o=t.width!==void 0||t.height!==void 0?Uw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=YI(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];QI([$,D,M],l)===u&&(y|=1<<h,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function Cw(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 gp(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 Dw={render(e,t={}){let r=bi(e),n=yi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Uw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=Cw(i,u,l),g=Cw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=gp(p,g)):p.a>0?(f="\u2580",y=gp(p)):g.a>0&&(f="\u2584",y=gp(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
119
|
+
`)}},mi=10240,KI={render(e,t={}){let{width:r,height:n,pixels:o}=bi(e),s=t.threshold??128,i=t.dither??!1,a=Math.ceil(r/2),l=Math.ceil(n/4),d=new Float32Array(r*n);for(let u=0;u<r*n;u++){let p=o[u*4],g=o[u*4+1],f=o[u*4+2];d[u]=.299*p+.587*g+.114*f}i&&XI(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,y=[[0,0,0],[0,1,1],[0,2,2],[1,0,3],[1,1,4],[1,2,5],[0,3,6],[1,3,7]];for(let[h,R,T]of y){let $=g*2+h,D=u*4+R;if($<r&&D<n){let M=D*r+$;d[M]<s&&(f|=1<<T)}}p+=String.fromCharCode(mi+f)}c.push(p)}return c.join(`
|
|
120
120
|
`)},invert(e){let t="";for(let r of e){if(r===`
|
|
121
|
-
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=mi&&n<mi+256){let o=mi+(255-(n-mi));t+=String.fromCharCode(o)}else t+=r}return t}};function
|
|
121
|
+
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=mi&&n<mi+256){let o=mi+(255-(n-mi));t+=String.fromCharCode(o)}else t+=r}return t}};function bl(e,t,r={}){switch(rs(e)){case"kitty":return os.transmit(t,r);case"iterm2":return UI.display(t,r);case"sixel":return qI.encode(t,r);case"halfblock":return Dw.render(t,r);case"braille":return KI.render(t,r);default:return Dw.render(t,r)}}function yl(e){switch(rs(e)){case"kitty":return os.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var hp=null;function VI(){if(hp)return hp;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 hp=e,e}function zI(e){let t=VI(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function hl(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 mp(e,t){let r=new Uint8Array(8+t.length+4);hl(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 hl(r,zI(n),8+t.length),r}function JI(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);hl(s,t,0),hl(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=mp("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=jI(Buffer.from(l)),c=mp("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=mp("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 Hw(e){return Buffer.from(e).toString("base64")}function YI(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 QI(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 XI(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 Uw(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 kp(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 kl(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?ZI(s,q):s;for(let ae of u)kl(ae,t,N,G,i,oe)}function ZI(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 qw(e){let t=[],r=0;return kl(e,(n,o,s,i,a)=>{kp(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var yp=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),kp(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){kl(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=hi(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,Zn(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},eM=Symbol("tuiuiu.hit-test-registry");function ss(e){return Oe(eM,()=>new yp,e)}function wp(e,t=0){let r=ss();if(r.clear(),t===0){r.registerFromLayout(e);return}kl(e,(n,o,s,i,a,l)=>{kp(n)&&r.register(n,o,s+t,i,a,l)})}import er from"node:path";import{fileURLToPath as Jw}from"node:url";var tM=[{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
|
|
192
|
-
`).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=Gw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function YI(e,t){!Uw()||Nw.has(e)||(Nw.add(e),console.warn(`[tuiuiu] ${t}`))}function ki(e){kl++;try{return e()}finally{kl=Math.max(0,kl-1)}}function qw(e,t){if(!Uw()||kl>0||!ew()||tw()!=="component")return;let r=JI(e,[t])[0];if(!r||VI(r.filePath))return;let n=zI(r);YI(`create-signal-in-render:${n}`,`createSignal() was called during component render at ${n}. This recreates state every render. Move it to module scope or use useState(). ${$w("signals-inside-component-render")}`)}var _n=null,Ri=new Set,wi=!1,yp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return _n&&_n._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof xn){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof xn){let r=this._subs;wi?Ri.add(r):r.notify();return}let t=[...this._subs];for(let r of t)wi?Ri.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof xn){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},bp=null;var kp=!1,wl=new Set;function QI(e){wl.add(e),kp||(kp=!0,queueMicrotask(XI))}function XI(){kp=!1;let e=[...wl];wl.clear(),Kw(e,t=>t.run())}function Kw(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var xn=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?QI(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=bp;bp=this._cleanups;let r=_n;_n=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{_n=r,bp=t}let n=this.dependencies,o=this._nextDeps;if(this._nextDeps=null,!this._samesDeps(n,o)){for(let s of n)o.has(s)||s.unsubscribe(this);for(let s of o)n.has(s)||s._addSub(this);this.dependencies=o}}finally{this.running=!1}}}_samesDeps(t,r){if(t.size!==r.size)return!1;for(let n of t)if(!r.has(n))return!1;return!0}_runCleanups(){let t=[];this._returnCleanup&&(t.push(this._returnCleanup),this._returnCleanup=void 0),t.push(...this._cleanups.splice(0));let r=[];for(let n of t)try{n()}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive cleanups failed")}dispose(){if(this.disposed)return;this.disposed=!0,wl.delete(this),Ri.delete(this);let t;try{this._runCleanups()}catch(r){t=r}finally{for(let r of this.dependencies)r.unsubscribe(this);this.dependencies.clear()}if(t!==void 0)throw t}};function gr(e){qw(new Error().stack,import.meta.url);let t=new yp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function Vw(e,t={}){let r=new xn(e,t);return()=>r.dispose()}function $t(e){let t=wi;wi=!0;try{e()}finally{if(wi=t,!t){let r=[...Ri];Ri.clear(),Kw(r,n=>n.notify())}}}function ss(e){let t=_n;_n=null;try{return e()}finally{_n=t}}var ZI=Symbol("tuiuiu.terminal-focus-state");function eM(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function wp(e){return Oe(ZI,eM,e)}function hr(e){return wp(e).read()}function Rp(e,t){let r=wp(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Rl(e,t){let r=wp(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function _p(e){Rp(!0,e)}var eo={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},Jw=Symbol("tuiuiu.motion-runtime-state");function Yw(e){let t=e.id===0?null:It(Jw,()=>Yw(Mr())),r={config:{...t?.config??eo},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[Ir](){Xw(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function Ep(){let e=Ge();return Oe(Jw,()=>Yw(e),e)}function _l(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function xp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function tM(e){switch(e.presentationPressure){case"elevated":return e.config.frameBudgetMs*e.config.elevatedFrameBudgetFactor;case"critical":return e.config.frameBudgetMs*e.config.criticalFrameBudgetFactor;case"normal":default:return 0}}function Qw(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function rM(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Rl(en(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}xl(e)})))}function vp(e,t=hr(e.scope)){if(!t)return 1e3/e.config.unfocusedFps;switch(e.qualityTier){case"reduced":return 1e3/e.config.reducedFps;case"skip":return 0;case"full":default:return 1e3/e.config.targetFps}}function zw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:hr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function nM(e,t){let r=hr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=vp(e,r),s=e.lastPresentationAt===0?0:t-e.lastPresentationAt;n=Math.min(n,Math.max(0,o-s))}for(let o of e.intervalSubscriptions.values()){if(!r&&o.pauseWhenUnfocused)continue;let s=t-o.lastRunAt;n=Math.min(n,Math.max(0,o.intervalMs-s))}return Number.isFinite(n)?Math.ceil(n):null}function Xw(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function Zw(e){if(e.schedulerTimer||!Qw(e))return;rM(e);let t=nM(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(en(e.scope,()=>oM(e)),t))}function oM(e){if(e.schedulerTimer=null,!Qw(e))return;let t=Date.now(),r=hr(e.scope),n=vp(e,r),o=e.lastPresentationAt===0?n:t-e.lastPresentationAt;if(e.frameCallbacks.size>0&&o>=n){e.lastPresentationAt=t;let s=[...e.frameCallbacks.values()];e.frameCallbacks.clear();let i=zw(e,t,n,n===0?0:Math.max(n,o));for(let a of s)a(i)}for(let s of e.intervalSubscriptions.values()){if(!r&&s.pauseWhenUnfocused)continue;let i=t-s.lastRunAt;i<s.intervalMs||(s.lastRunAt=t,s.callback(zw(e,t,n,Math.max(s.intervalMs,i))))}Zw(e)}function xl(e){Xw(e),Zw(e)}function eR(e){let t=Ep(),r=_l(e.targetFps??t.config.targetFps,eo.targetFps),n=_l(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:_l(e.unfocusedFps??t.config.unfocusedFps,eo.unfocusedFps),frameBudgetMs:xp(e.frameBudgetMs??t.config.frameBudgetMs,eo.frameBudgetMs),recoveryFrames:_l(e.recoveryFrames??t.config.recoveryFrames,eo.recoveryFrames),elevatedFrameBudgetFactor:xp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,eo.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:xp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,eo.criticalFrameBudgetFactor)},xl(t)}function El(){let e=Ep();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:hr(e.scope),targetFrameMs:vp(e),recommendedPresentationIntervalMs:tM(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function sM(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function iM(e){if(e.presentationPressure==="normal"){e.pressureOnBudgetStreak=0;return}e.pressureOnBudgetStreak++,!(e.pressureOnBudgetStreak<e.config.recoveryFrames)&&(e.presentationPressure==="critical"?e.presentationPressure="elevated":e.presentationPressure="normal",e.pressureOnBudgetStreak=0)}function tR(e){let t=Ep();if(!Number.isFinite(e.totalMs)||e.totalMs<0)return t.qualityTier;let r=e.overBudget??e.totalMs>t.config.frameBudgetMs,n=(e.phaseOverrunCount??0)>0;return r?(t.onBudgetStreak=0,t.qualityTier==="full"?t.qualityTier="reduced":t.qualityTier==="reduced"&&(t.qualityTier="skip"),xl(t)):(t.onBudgetStreak++,t.onBudgetStreak>=t.config.recoveryFrames&&(t.qualityTier==="skip"?(t.qualityTier="reduced",t.onBudgetStreak=0):t.qualityTier==="reduced"&&(t.qualityTier="full",t.onBudgetStreak=0))),r||n?sM(t):iM(t),xl(t),t.qualityTier}function En(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function rR(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function nR(e){return e?Ft({key:e.key,transforms:e.transforms}):null}function _i(e){return e.type==="text"?{...e,style:{...e.style},compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}:{...e,compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}}function aM(e,t){let r=_i(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function lM(e,t){let r=En(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=_i(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function dM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function cM(e,t,r){let n=En(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=_i(e);return a.clip=dM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function uM(e,t,r,n){let o=e.x;return(e.type==="text"?e.x+Math.max(1,e.maxWidth):e.x+Math.max(1,e.width))>r&&o<n&&e.y>=t.y&&e.y<t.y+t.height}function pM(e,t,r){if(e.type!=="text")return e;let n=En(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*En(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!uM(e,r,o,s))return e;let i=_i(e);return i.style={...i.style,bold:!0,inverse:!0},i}function fM(e,t,r){let n=En(t.progress);if(n<=0)return null;if(n>=1)return e;let o=_i(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let $=o.x,D=o.x+Math.max(1,o.maxWidth),M=Math.max($,g),N=Math.min(D,f);if(N<=M)return null;let U=Math.max(0,M-$),G=Math.max(U,N-$);return o.text=Jo(o.text,U,G),o.x=M,o.maxWidth=Math.max(0,N-M),o.maxWidth>0&&o.text.length>0?o:null}let y=o.x,h=o.x+Math.max(1,o.width),R=Math.max(y,g),T=Math.min(h,f);return T<=R?null:(o.x=R,o.width=Math.max(0,T-R),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function gM(e,t,r){let n=El().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&En(s.opacity)<=0||s.kind==="scale"&&En(s.scale)<=0||s.kind==="reveal"&&En(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=aM(o,s);break;case"fade":o=lM(o,s);break;case"scale":o=cM(o,s,r);break;case"shimmer":o=pM(o,s,r);break;case"reveal":o=fM(o,s,r);break}}return o}function oR(e,t){if(e.length===0||t.size===0)return[...e];let r=[];for(let n of e){let o=n.compositorKeys;if(!o||o.length===0){r.push(n);continue}let s=n;for(let i of o){if(!s)break;let a=t.get(i);!a||a.transforms.length===0||(s=gM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var hM=1,mM=Symbol("tuiuiu.frame-runtime-state");function Tp(e){return Oe(mM,()=>({committedFrameSnapshot:null}),e)}var bM=new Set(["__terminalImage","__compositor"]),yM=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),kM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Sp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},vl=new WeakMap,Sn=new Map,aR=4096;function vn(){return typeof performance<"u"?performance.now():Date.now()}function wM(e){return{width:e.width,height:e.height,pointer:e.pointer?{...e.pointer}:void 0,scrollDelta:e.scrollDelta?{...e.scrollDelta}:void 0,deltaTimeMs:e.deltaTimeMs}}function RM(e){return{eagerHitTargets:e?.eagerHitTargets??Sp.eagerHitTargets,eagerQueries:e?.eagerQueries??Sp.eagerQueries,eagerWarnings:e?.eagerWarnings??Sp.eagerWarnings}}function _M(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function xM(e){return!!(e&&typeof e=="object"&&typeof e.getViewport=="function"&&typeof e.getContent=="function"&&typeof e.getOffset=="function"&&typeof e.getMaxOffset=="function"&&typeof e.scrollTo=="function"&&typeof e.scrollBy=="function"&&typeof e.scrollToStart=="function"&&typeof e.scrollToEnd=="function")}function EM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0&&xM(f.__scrollQuery)){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function vM(e){let t=[];for(let[r,n]of e)n.length>1&&t.push({code:"duplicate-id",severity:"warning",id:r,message:`Duplicate explicit id "${r}" was found ${n.length} times in the committed frame.`});return t}function is(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function sR(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r;return{id:t,status:"found",found:!0,ambiguous:!1,bounds:n.bounds,nodeType:n.nodeType}}function SM(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r,o=n.metadata.getViewport(),s=n.metadata.getContent(),i=n.metadata.getOffset(),a=n.metadata.getMaxOffset();return{id:t,status:"found",found:!0,ambiguous:!1,nodeType:n.nodeType,viewport:{width:o.width??n.bounds.width,height:o.height??n.bounds.height},content:{width:s.width??o.width??n.bounds.width,height:s.height??o.height??n.bounds.height},offset:i,maxOffset:a,controls:{scrollTo:l=>n.metadata.scrollTo(l),scrollBy:l=>n.metadata.scrollBy(l),scrollToStart:()=>n.metadata.scrollToStart(),scrollToEnd:()=>n.metadata.scrollToEnd()}}}function TM(e,t,r,n,o){return{getElement:s=>{let i=sR(e,s);return i.status==="missing"?is(n,o,{code:"query-missing",severity:"warning",id:s,message:`Element query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&is(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Element query for explicit id "${s}" matched multiple committed elements in the current frame.`}),i},pointerOver:s=>{if(!r.pointer)return!1;let i=sR(e,s);return!i.found||!i.bounds?(i.status==="missing"?is(n,o,{code:"query-missing",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&is(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" matched multiple committed elements in the current frame.`}),!1):r.pointer.x>=i.bounds.x&&r.pointer.x<i.bounds.x+i.bounds.width&&r.pointer.y>=i.bounds.y&&r.pointer.y<i.bounds.y+i.bounds.height},getScrollContainer:s=>{let i=SM(t,s);return i.status==="missing"?is(n,o,{code:"scroll-target-missing",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" did not match any committed scroll target in the current frame.`}):i.status==="ambiguous"&&is(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" matched multiple committed scroll targets in the current frame.`}),i}}}function PM(e,t,r,n=[],o){let s=n.length>0?Ft(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function AM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function CM(e,t){let r=e.type==="text"?kM:yM,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Ft({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:bM})}function DM(e,t,r,n,o,s){return Ft([t,r,nR(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function OM(e,t,r){if(!ol(e.node))return;let n=vl.get(e);if(!n)return;if(n.cacheKey!==t){Rn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){Rn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){Rn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){Rn(e.node,Pe.CHILDREN);return}return n}function iR(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return vl.set(e,i),i}function FM(e){return e.map((t,r)=>({...t,order:r}))}function lR(e,t){return t?`${e}|motion:${El().qualityTier}`:e}function IM(){let e=Math.max(1,Math.ceil(aR*.1)),t=Sn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Sn.delete(n.value)}}function MM(e){return Sn.get(e)}function LM(e,t,r){let n=Sn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Sn.has(e)&&Sn.size>=aR&&IM(),Sn.set(e,o),o}function jM(e,t,r){let n=Sn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function BM(e,t){for(let r of t)e.push(r)}function $M(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function NM(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function dR(e){let t=e.props;return rR(t?.__compositor)?t.__compositor:null}function cR(e,t=new Map){let r=dR(e.node);r&&t.set(r.key,{...r,bounds:{x:e.x,y:e.y,width:e.width,height:e.height}});for(let n of e.children)cR(n,t);return t}function GM(e,t,r,n,o,s){if(!NM(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let y=s.__terminalImage,h=rs(),R=$M(y.source)?y.source:hl(y.source,{cellSize:h.cellSize}),T=y.options?.protocol??h.protocol,$=ts(T),D=yi(R,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,D.renderColumns)),N=Math.max(0,Math.min(f,D.renderRows));return M<=0||N<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:M,height:N,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:R,fit:D.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:$,cellRender:Pw($),protocolState:y.protocolState}}function WM(e){return e.flatMap(t=>t.type!=="terminal-image"||t.cellRender||t.clip&&(t.x<t.clip.x||t.y<t.clip.y||t.x+t.width>t.clip.x+t.clip.width||t.y+t.height>t.clip.y+t.clip.height)?[]:[{type:"terminal-image",id:t.id,protocol:t.protocol,x:t.x,y:t.y,width:t.width,height:t.height}])}function uR(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,y=dR(i),h=y?[...o,y.key]:[...o],R=y!==null,T=GM(e,p,g,d,c,f),$=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",D=PM(t,r,n,h,s)+$,M,N=()=>(M===void 0&&(M=CM(i,T)),M),U=OM(e,D,N);if(U)return ii("draw"),{commands:U.commands,hasCompositor:U.hasCompositor,subtreeSignature:U.subtreeSignature};let G=N(),F=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,q=[],oe=[],ae=f.paddingTop??f.paddingY??f.padding??0,se=f.paddingLeft??f.paddingX??f.padding??0,Z=f.borderStyle&&f.borderStyle!=="none"?1:0,pe=p+se+Z,Ae=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-Ae,we=W??n,J=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",_e={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:de?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:de?c:s?.height??Number.MAX_SAFE_INTEGER*2},Ce=J||de?AM(s,_e):s;for(let ie of u){let xe=uR(ie,pe,Ee,we,h,Ce);q.push(xe),R||=xe.hasCompositor,oe.push(xe.subtreeSignature)}let ve=DM(e,D,G,y,h,oe),Re=MM(ve);if(Re){ii("draw");let ie=iR(e,D,G,Re.commands,Re.hasCompositor,ve),xe=lR(ve,Re.hasCompositor);return Re.materialized&&Re.materializedSignature===xe&&(ie.materialized=Re.materialized,ie.materializedSignature=xe),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let xe=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:g,width:d,height:c,backgroundColor:W,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:xe,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ie=String(f.children??""),xe=Math.max(1,be(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
|
|
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 rM(e){let t=tM.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function nM(e){return`docs/resources/common-mistakes.md#${rM(e).anchor}`}function Kw(e){return`See ${nM(e)} or tuiuiu://guide/common-mistakes.`}var Vw=new Set,Yw=er.normalize(Jw(import.meta.url)),oM=er.dirname(er.dirname(Yw)),sM=er.dirname(oM),wl=0;function Qw(){return process.env.NODE_ENV!=="production"}function zw(e){return e.startsWith("file://")?er.normalize(Jw(e)):er.normalize(e)}function iM(e){let t=er.normalize(e);return t.startsWith(sM)?t.includes(`${er.sep}src${er.sep}`)||t.includes(`${er.sep}dist${er.sep}`):!1}function aM(e){let t=er.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function lM(e,t=[]){if(!e)return[];let r=new Set([Yw,...t.map(zw)]),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=zw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function dM(e,t){!Qw()||Vw.has(e)||(Vw.add(e),console.warn(`[tuiuiu] ${t}`))}function ki(e){wl++;try{return e()}finally{wl=Math.max(0,wl-1)}}function Xw(e,t){if(!Qw()||wl>0||!aw()||lw()!=="component")return;let r=lM(e,[t])[0];if(!r||iM(r.filePath))return;let n=aM(r);dM(`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(). ${Kw("signals-inside-component-render")}`)}var _n=null,Ri=new Set,wi=!1,_p=class{_value;_subs=null;constructor(t){this._value=t}get value(){return _n&&_n._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof xn){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof xn){let r=this._subs;wi?Ri.add(r):r.notify();return}let t=[...this._subs];for(let r of t)wi?Ri.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof xn){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},Rp=null;var xp=!1,Rl=new Set;function cM(e){Rl.add(e),xp||(xp=!0,queueMicrotask(uM))}function uM(){xp=!1;let e=[...Rl];Rl.clear(),Zw(e,t=>t.run())}function Zw(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var xn=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?cM(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=Rp;Rp=this._cleanups;let r=_n;_n=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{_n=r,Rp=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,Rl.delete(this),Ri.delete(this);let t;try{this._runCleanups()}catch(r){t=r}finally{for(let r of this.dependencies)r.unsubscribe(this);this.dependencies.clear()}if(t!==void 0)throw t}};function hr(e){Xw(new Error().stack,import.meta.url);let t=new _p(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function eR(e,t={}){let r=new xn(e,t);return()=>r.dispose()}function $t(e){let t=wi;wi=!0;try{e()}finally{if(wi=t,!t){let r=[...Ri];Ri.clear(),Zw(r,n=>n.notify())}}}function is(e){let t=_n;_n=null;try{return e()}finally{_n=t}}var pM=Symbol("tuiuiu.terminal-focus-state");function fM(){let[e,t]=hr(!0);return{read:e,write:t,listeners:new Set}}function Ep(e){return Oe(pM,fM,e)}function mr(e){return Ep(e).read()}function vp(e,t){let r=Ep(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function _l(e,t){let r=Ep(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function Sp(e){vp(!0,e)}var eo={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},rR=Symbol("tuiuiu.motion-runtime-state");function nR(e){let t=e.id===0?null:Mt(rR,()=>nR(Mr())),r={config:{...t?.config??eo},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[Ir](){sR(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function Pp(){let e=Ge();return Oe(rR,()=>nR(e),e)}function xl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function Tp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function gM(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 oR(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function hM(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=_l(en(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}El(e)})))}function Ap(e,t=mr(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 tR(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:mr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function mM(e,t){let r=mr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=Ap(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 sR(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function iR(e){if(e.schedulerTimer||!oR(e))return;hM(e);let t=mM(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(en(e.scope,()=>bM(e)),t))}function bM(e){if(e.schedulerTimer=null,!oR(e))return;let t=Date.now(),r=mr(e.scope),n=Ap(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=tR(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(tR(e,t,n,Math.max(s.intervalMs,i))))}iR(e)}function El(e){sR(e),iR(e)}function aR(e){let t=Pp(),r=xl(e.targetFps??t.config.targetFps,eo.targetFps),n=xl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:xl(e.unfocusedFps??t.config.unfocusedFps,eo.unfocusedFps),frameBudgetMs:Tp(e.frameBudgetMs??t.config.frameBudgetMs,eo.frameBudgetMs),recoveryFrames:xl(e.recoveryFrames??t.config.recoveryFrames,eo.recoveryFrames),elevatedFrameBudgetFactor:Tp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,eo.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:Tp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,eo.criticalFrameBudgetFactor)},El(t)}function vl(){let e=Pp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:mr(e.scope),targetFrameMs:Ap(e),recommendedPresentationIntervalMs:gM(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function yM(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function kM(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 lR(e){let t=Pp();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"),El(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?yM(t):kM(t),El(t),t.qualityTier}function En(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function dR(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function cR(e){return e?It({key:e.key,transforms:e.transforms}):null}function _i(e){return e.type==="text"?{...e,style:{...e.style},compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}:{...e,compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}}function wM(e,t){let r=_i(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function RM(e,t){let r=En(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=_i(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function _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,r){let n=En(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=_i(e);return a.clip=_M(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function EM(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 vM(e,t,r){if(e.type!=="text")return e;let n=En(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*En(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!EM(e,r,o,s))return e;let i=_i(e);return i.style={...i.style,bold:!0,inverse:!0},i}function SM(e,t,r){let n=En(t.progress);if(n<=0)return null;if(n>=1)return e;let o=_i(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let $=o.x,D=o.x+Math.max(1,o.maxWidth),M=Math.max($,g),N=Math.min(D,f);if(N<=M)return null;let U=Math.max(0,M-$),G=Math.max(U,N-$);return o.text=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 TM(e,t,r){let n=vl().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&En(s.opacity)<=0||s.kind==="scale"&&En(s.scale)<=0||s.kind==="reveal"&&En(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=wM(o,s);break;case"fade":o=RM(o,s);break;case"scale":o=xM(o,s,r);break;case"shimmer":o=vM(o,s,r);break;case"reveal":o=SM(o,s,r);break}}return o}function uR(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=TM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var PM=1,AM=Symbol("tuiuiu.frame-runtime-state");function Dp(e){return Oe(AM,()=>({committedFrameSnapshot:null}),e)}var CM=new Set(["__terminalImage","__compositor"]),DM=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),OM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Cp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Sl=new WeakMap,Sn=new Map,gR=4096;function vn(){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 IM(e){return{eagerHitTargets:e?.eagerHitTargets??Cp.eagerHitTargets,eagerQueries:e?.eagerQueries??Cp.eagerQueries,eagerWarnings:e?.eagerWarnings??Cp.eagerWarnings}}function MM(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 LM(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 jM(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&&LM(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 BM(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 pR(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 $M(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 NM(e,t,r,n,o){return{getElement:s=>{let i=pR(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=pR(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=$M(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 GM(e,t,r,n=[],o){let s=n.length>0?It(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function WM(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 HM(e,t){let r=e.type==="text"?OM:DM,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return It({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 UM(e,t,r,n,o,s){return It([t,r,cR(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function qM(e,t,r){if(!sl(e.node))return;let n=Sl.get(e);if(!n)return;if(n.cacheKey!==t){Rn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){Rn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){Rn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){Rn(e.node,Pe.CHILDREN);return}return n}function fR(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Sl.set(e,i),i}function KM(e){return e.map((t,r)=>({...t,order:r}))}function hR(e,t){return t?`${e}|motion:${vl().qualityTier}`:e}function VM(){let e=Math.max(1,Math.ceil(gR*.1)),t=Sn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Sn.delete(n.value)}}function zM(e){return Sn.get(e)}function JM(e,t,r){let n=Sn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Sn.has(e)&&Sn.size>=gR&&VM(),Sn.set(e,o),o}function YM(e,t,r){let n=Sn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function QM(e,t){for(let r of t)e.push(r)}function XM(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function ZM(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function mR(e){let t=e.props;return dR(t?.__compositor)?t.__compositor:null}function bR(e,t=new Map){let r=mR(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)bR(n,t);return t}function eL(e,t,r,n,o,s){if(!ZM(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=XM(y.source)?y.source:ml(y.source,{cellSize:h.cellSize}),T=y.options?.protocol??h.protocol,$=rs(T),D=yi(R,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,D.renderColumns)),N=Math.max(0,Math.min(f,D.renderRows));return M<=0||N<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:M,height:N,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:R,fit:D.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:$,cellRender:Mw($),protocolState:y.protocolState}}function tL(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 yR(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=mR(i),h=y?[...o,y.key]:[...o],R=y!==null,T=eL(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=GM(t,r,n,h,s)+$,M,N=()=>(M===void 0&&(M=HM(i,T)),M),U=qM(e,D,N);if(U)return ii("draw"),{commands:U.commands,hasCompositor:U.hasCompositor,subtreeSignature:U.subtreeSignature};let G=N(),F=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,q=[],oe=[],ae=f.paddingTop??f.paddingY??f.padding??0,se=f.paddingLeft??f.paddingX??f.padding??0,Z=f.borderStyle&&f.borderStyle!=="none"?1:0,pe=p+se+Z,Ae=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-Ae,we=W??n,J=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",_e={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:de?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:de?c:s?.height??Number.MAX_SAFE_INTEGER*2},Ce=J||de?WM(s,_e):s;for(let ie of u){let xe=yR(ie,pe,Ee,we,h,Ce);q.push(xe),R||=xe.hasCompositor,oe.push(xe.subtreeSignature)}let ve=UM(e,D,G,y,h,oe),Re=zM(ve);if(Re){ii("draw");let ie=fR(e,D,G,Re.commands,Re.hasCompositor,ve),xe=hR(ve,Re.hasCompositor);return Re.materialized&&Re.materializedSignature===xe&&(ie.materialized=Re.materialized,ie.materializedSignature=xe),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let xe=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:g,width:d,height:c,backgroundColor:W,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:xe,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ie=String(f.children??""),xe=Math.max(1,be(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
|
|
193
193
|
`):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/xe)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>ie).join(`
|
|
194
|
-
`):ie;Se.push({type:"text",id:F,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:h.length>0?[...h]:void 0,clip:s});for(let ie of q)BM(Se,ie.commands);Qn("draw");let fe=iR(e,D,G,Se,R,ve);return LM(ve,fe.commands,R),{commands:fe.commands,hasCompositor:R,subtreeSignature:ve}}function HM(e){if(e.type==="text"){let s=Math.round(e.x),i=Math.round(e.y),a=Math.max(0,Math.round(e.maxWidth));return s===e.x&&i===e.y&&a===e.maxWidth?e:{...e,x:s,y:i,maxWidth:a}}let t=Math.round(e.x),r=Math.round(e.y),n=Math.max(0,Math.round(e.width)),o=Math.max(0,Math.round(e.height));return t===e.x&&r===e.y&&n===e.width&&o===e.height?e:{...e,x:t,y:r,width:n,height:o}}function UM(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=HM(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function qM(e){let t=uR(e),r=vl.get(e),n=lR(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=FM(t.commands),s=t.hasCompositor?oR(o,cR(e)):o,i=UM(s),a=vl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),jM(t.subtreeSignature,i,n),i}function pR(e,t,r={}){let n=RM(r),o=wM(t),s=Date.now(),i=vn(),a=vn(),l=Kk(e,o.width,o.height),d=vn()-a,c=vn(),u=qM(l),p=WM(u),g=vn()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},y=Wk();f.structural.layoutReuseCount=y.layoutReuseCount,f.structural.layoutFreshCount=y.layoutFreshCount,f.structural.drawReuseCount=y.drawReuseCount,f.structural.drawFreshCount=y.drawFreshCount,f.structural.invalidationEscalationCount=y.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=y.absorbedLayoutDirtyCount;let h,R,T,$=[],D=!1,M=()=>(h||(h=_M(l)),h),N=()=>(R||(R=EM(l)),R),U=()=>{if(!T){let ae=vn();T=Bw(l),f.phases.hitTargetRegistrationMs=vn()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...vM(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&U();let F=TM(M,N,o,$,f),W=Date.now(),q=vn()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:hM++,committedAt:W,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:F,metrics:f,get hitTargets(){return U()},get warnings(){return G()}}}function fR(e,t){Tp(t).committedFrameSnapshot=e}function gR(e){return Tp(e).committedFrameSnapshot}function hR(e){Tp(e).committedFrameSnapshot=null}function it(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Pt(e,t,r){e.metrics.structural[t]=r}function mR(e,t,r=Date.now()){e.metrics.runtimeStartAt=t,e.metrics.runtimeEndAt=r,e.metrics.runtimeTotalMs=Math.max(0,r-t),e.metrics.frameEndAt=r}var yR=Symbol("tuiuiu.progressive-runtime-state");function bR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function KM(e){if(e.id===0)return bR();let t=It(yR,bR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function Pp(){let e=Ge();return Oe(yR,()=>KM(e),e)}function kR(){return Pp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function wR(){return Pp().capabilityOverrides}function Ap(){return Pp().progressiveVersion}function VM(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=pl(t),a=kw(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",y=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",h=l.strikethrough||y,R=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,$=T.columns||80,D=T.rows||24,M=kR(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:h,hyperlinks:R,terminalName:c,isCI:d,columns:$,rows:D,profile:i,synchronizedOutput:l.synchronizedOutput,styledUnderlines:l.styledUnderlines,coloredUnderlines:l.coloredUnderlines,clipboard:l.clipboard,notifications:l.notifications,multiplexer:a,cursorStyleControl:l.cursorStyleControl,windowTitle:l.windowTitle,gpuAccelerated:i.gpuAccelerated,kittyKeyboard:l.kittyKeyboard,focusEvents:l.focusEvents,nerdFonts:M},U=wR();return U&&Object.assign(N,U),N}var RR=Symbol("tuiuiu.capability-runtime-state");function _R(e){let t=e.id===0?"auto":ss(It(RR,()=>_R(Mr())).renderModeSignal),[r,n]=gr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Ir](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function xi(e){let t=Ge(e);return Oe(RR,()=>_R(t),t)}function xR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function zM(e){return VM({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Sl(e){return e.cachedCapabilities=zM(e),e.cachedProgressiveVersion=Ap(),e.cachedCapabilities}function ER(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Sl(e);let r=xR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function vR(e){let t=xi(),r=t.source.stdout??process.stdout;t.resizeListener&&(r.off("resize",t.resizeListener),t.resizeListener=null),t.source={...e},t.cachedCapabilities=null,t.cachedProgressiveVersion=-1,ER(t)}function $r(){let e=xi(),t=Ap();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Sl(e),e.cachedCapabilities??Sl(e)}function SR(){return Sl(xi())}function TR(){return xR(xi())}function PR(e){let t=xi();return t.resizeHandlers.add(e),ER(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var AR={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,gray:8,grey:8,blackBright:8,redBright:9,greenBright:10,yellowBright:11,blueBright:12,magentaBright:13,cyanBright:14,whiteBright:15},JM={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},YM=512,to=new Map,CR=4e6;function Nr(){return{char:" ",attrs:{}}}function Dp(e,t){if(e===t)return!0;if(e===void 0||t===void 0)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="object"&&typeof t=="object"){if("r"in e&&"r"in t)return e.r===t.r&&e.g===t.g&&e.b===t.b;if("ansi256"in e&&"ansi256"in t)return e.ansi256===t.ansi256}return!1}function QM(e,t){let r=e.underline||!1,n=t.underline||!1;return!!e.bold==!!t.bold&&!!e.dim==!!t.dim&&!!e.italic==!!t.italic&&r===n&&Dp(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function DR(e,t){return e.char===t.char&&Dp(e.fg,t.fg)&&Dp(e.bg,t.bg)&&QM(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Tl(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Gr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>CR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${CR} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push(Nr());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||be(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,be(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}if(this.cells[r][t]=n,this.invalidateRow(r),!n.isWide&&o>1&&t+o<=this.width)for(let s=1;s<o;s++)this.clearWideFootprint(t+s,r),this.cells[r][t+s]={char:"",fg:n.fg,bg:n.bg,attrs:n.attrs,isWide:!0};this.addDamage(t,r,Math.min(o,this.width-t),1)}}clearWideFootprint(t,r){if(!Number.isInteger(t)||!Number.isInteger(r)||t<0||t>=this.width||r<0||r>=this.height)return;let n=this.cells[r][t];if(n.isWide){if(this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&be(s.char)>1&&(this.cells[r][t-1]=Nr(),this.addDamage(t-1,r,1,1))}return}let o=be(n.char);if(!(o<=1)){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);for(let s=1;s<o&&t+s<this.width;s++)this.cells[r][t+s]?.isWide&&(this.cells[r][t+s]=Nr(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=be(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=Jn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
195
|
-
`)continue;if(a>=this.width)break;let c=be(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(be(o)!==1){let c=be(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(be(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=Nr();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,
|
|
196
|
-
`)}function Fp(e,t,r=!1){if(e.length===0)return"";r||e.sort((d,c)=>d.y!==c.y?d.y-c.y:d.x-c.x);let n=[],o=-1,s=-1,i=null,a="",l=()=>{a.length>0&&(n.push(a),a="")};for(let d of e){let{x:c,y:u,cell:p}=d;if(p.isWide||c<0||c>=t||u<0)continue;(u!==s||c!==o+1)&&(l(),n.push(`\x1B[${u+1};${c+1}H`));let g=IR(p.fg,p.bg,p.attrs);g!==i&&(l(),i!==null&&n.push("\x1B[0m"),g!==null&&n.push(`\x1B[${g}m`),i=g),a+=p.char,o=c+(nL(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Al(e,t){let r=t??$r().multiplexer;if(!r)return e;switch(r.type){case"tmux":return`\x1BPtmux;${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"screen":return`\x1BP${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"zellij":return e}}var oL="\x1B[?2026h",sL="\x1B[?2026l";function MR(e){let t=e??$r();return t.synchronizedOutput?Al(oL,t.multiplexer):""}function LR(e){let t=e??$r();return t.synchronizedOutput?Al(sL,t.multiplexer):""}var Ip={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",top:"\u2550",bottom:"\u2550",left:"\u2551",right:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2558",bottomRight:"\u255B",top:"\u2550",bottom:"\u2550",left:"\u2502",right:"\u2502"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},asciiDouble:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"=",bottom:"=",left:"|",right:"|"},markdown:{topLeft:"|",topRight:"|",bottomLeft:"|",bottomRight:"|",top:"-",bottom:"-",left:"|",right:"|"},arrow:{topLeft:"\u2198",topRight:"\u2199",bottomLeft:"\u2197",bottomRight:"\u2196",top:"\u2193",bottom:"\u2191",left:"\u2192",right:"\u2190"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u254C",bottom:"\u254C",left:"\u254E",right:"\u254E"},dashedHeavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u254D",bottom:"\u254D",left:"\u254F",right:"\u254F"},heavyHead:{topLeft:"\u250E",topRight:"\u2512",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2501",bottom:"\u2500",left:"\u2502",right:"\u2502"},doubleHead:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2550",bottom:"\u2500",left:"\u2502",right:"\u2502"},heavyEdge:{topLeft:"\u250D",topRight:"\u2511",bottomLeft:"\u2515",bottomRight:"\u2519",top:"\u2500",bottom:"\u2500",left:"\u2503",right:"\u2503"},doubleEdge:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},minimal:{topLeft:"\u2500",topRight:"\u2500",bottomLeft:"\u2500",bottomRight:"\u2500",top:"\u2500",bottom:"\u2500",left:" ",right:" "},minimalHeavy:{topLeft:"\u2501",topRight:"\u2501",bottomLeft:"\u2501",bottomRight:"\u2501",top:"\u2501",bottom:"\u2501",left:" ",right:" "},minimalDouble:{topLeft:"\u2550",topRight:"\u2550",bottomLeft:"\u2550",bottomRight:"\u2550",top:"\u2550",bottom:"\u2550",left:" ",right:" "},horizontals:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:"\u2500",bottom:"\u2500",left:" ",right:" "},inner:{topLeft:"\u2597",topRight:"\u2596",bottomLeft:"\u259D",bottomRight:"\u2598",top:"\u2584",bottom:"\u2580",left:"\u2590",right:"\u258C"},outer:{topLeft:"\u259B",topRight:"\u259C",bottomLeft:"\u2599",bottomRight:"\u259F",top:"\u2580",bottom:"\u2584",left:"\u258C",right:"\u2590"},thick:{topLeft:"\u2588",topRight:"\u2588",bottomLeft:"\u2588",bottomRight:"\u2588",top:"\u2580",bottom:"\u2584",left:"\u2588",right:"\u2588"},block:{topLeft:"\u2584",topRight:"\u2584",bottomLeft:"\u2580",bottomRight:"\u2580",top:"\u2584",bottom:"\u2580",left:"\u2588",right:"\u2588"},hkey:{topLeft:"\u2594",topRight:"\u2594",bottomLeft:"\u2581",bottomRight:"\u2581",top:"\u2594",bottom:"\u2581",left:" ",right:" "},vkey:{topLeft:"\u258F",topRight:"\u2595",bottomLeft:"\u258F",bottomRight:"\u2595",top:" ",bottom:" ",left:"\u258F",right:"\u2595"},tall:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2594",bottom:"\u2581",left:"\u258A",right:"\u258E"},panel:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2588",bottom:"\u2581",left:"\u258A",right:"\u258E"},tab:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},wide:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},hidden:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},blank:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "}};var BR="\x1B[?25h",iL="\x1B[?25l",Cl=!1,jR=!1,aL=null,Mp=null;function Lp(e){return"isTTY"in e&&!!e.isTTY}function lL(){let e=Mp??process.stdout;Lp(e)&&Cl&&(e.write(BR),Cl=!1)}function dL(){jR||(jR=!0,aL=rn(lL))}function as(e=process.stdout){Lp(e)&&(Mp=e,Cl=!1,e.write(BR))}function ls(e=process.stdout){Lp(e)&&(Mp=e,dL(),Cl=!0,e.write(iL))}var cL="#ffffff",uL="#000000",pL="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},fL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},gL={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},m={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},He={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ce={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},hL={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ge={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},mL={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},bL={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},he={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},yL={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},kL={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Ze={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},wL={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},te={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},RL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},_L={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},xL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},EL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},vL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},SL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},$R={white:cL,black:uL,transparent:pL,slate:k,gray:fL,zinc:gL,neutral:m,stone:He,red:ce,orange:hL,amber:ge,yellow:mL,lime:bL,green:he,emerald:yL,teal:kL,cyan:Ze,sky:wL,blue:te,indigo:RL,violet:_L,purple:xL,fuchsia:EL,pink:vL,rose:SL};var ee={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},jp={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:ee,background:{lowest:k[950],base:k[900],subtle:k[800],surface:k[700],raised:k[600],elevated:k[500],popover:k[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:k[50],secondary:k[200],muted:k[400],disabled:k[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:ee.success[500],warning:ee.warning[500],critical:ee.danger[500],info:Ze[500],highlight:ee.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:ee.primary[400],ring:{color:ee.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:ee.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:ee.primary[500],danger:ee.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:ee.primary[500],fg:"#ffffff",hoverBg:ee.primary[400],activeBg:ee.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:ee.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:ee.primary[500]},ghost:{bg:"transparent",fg:k[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:k[800],headerBg:k[700],footerBg:k[700],border:k[700]},menu:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],activeBg:ee.primary[700],selectedBg:ee.primary[600],disabledFg:k[500]}},tabs:{bg:k[800],border:k[700],tab:{fg:k[400],activeFg:k[50],activeBg:k[700],hoverFg:k[200],indicator:ee.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:ee.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:ee.primary[500],invalidBorder:ee.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:ee.primary[500]},radio:{bg:k[800],dotColor:ee.primary[500],border:k[600],checkedBorder:ee.primary[500]},tooltip:{bg:k[700],fg:k[50]},modal:{bg:k[800],border:k[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:k[700],fg:k[50]},success:{bg:ee.success[500],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:ee.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:ee.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:ee.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.success[700]},warning:{bg:ee.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:ee.warning[600]},danger:{bg:ee.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:ee.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:ee.success[600],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:ee.primary[400],subtitleFg:k[400],border:ee.primary[700]},secondary:{bg:k[900],titleFg:k[200],subtitleFg:k[500],border:k[700]}},appshell:{bg:k[950],dividerFg:k[700],sidebarBg:k[900],asideBg:k[900]},collapsible:{default:{headerBg:k[800],headerFg:k[50],contentBg:k[900],border:k[700],iconFg:k[400]},primary:{headerBg:ee.primary[700],headerFg:"#ffffff",contentBg:k[900],border:ee.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:k[700],headerFg:k[50],contentBg:k[800],border:k[600],iconFg:k[400]}},commandPalette:{bg:k[800],border:k[700],inputBg:k[900],inputFg:k[50],inputPlaceholder:k[500],itemFg:k[50],itemHoverBg:k[700],itemSelectedBg:ee.primary[700],itemSelectedFg:"#ffffff",highlightFg:ee.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:ee.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:ee.success[900],fg:ee.success[100],border:ee.success[600],iconFg:ee.success[400]},error:{bg:ee.danger[900],fg:ee.danger[100],border:ee.danger[600],iconFg:ee.danger[400]},warning:{bg:ee.warning[900],fg:ee.warning[100],border:ee.warning[500],iconFg:ee.warning[400]},info:{bg:Ze[900],fg:Ze[100],border:Ze[600],iconFg:Ze[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:ee.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:ee.primary[600],titleBarFg:"#ffffff",border:ee.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:ee.success[600],titleBarFg:"#ffffff",border:ee.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:ee.warning[500],titleBarFg:k[900],border:ee.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:ee.danger[600],titleBarFg:"#ffffff",border:ee.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},NR={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:he[600],warning:ge[600],critical:ce[600],info:Ze[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:k[300],checkedBorder:Y.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Y.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:k[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:k[600],border:Y.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Y.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:Ze[50],fg:Ze[900],border:Ze[200],iconFg:Ze[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Y.warning[500],titleBarFg:k[900],border:Y.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},ro={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},GR={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:ro,background:{lowest:O.backgroundDark,base:O.background,subtle:O.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:O.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:O.foreground,secondary:"#E8E8E2",muted:O.comment,disabled:"#5B5A4F",inverse:{base:O.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:O.green,warning:O.yellow,critical:O.pink,info:O.cyan,highlight:O.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:O.green,ring:{color:O.green,width:2}},disabled:{opacity:.4,bg:O.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:O.foreground}},borders:{default:"#49483E",subtle:O.backgroundLight,strong:O.comment,accent:O.green,danger:O.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:O.green,fg:O.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:O.foreground,hoverBg:"#5B5A4F",activeBg:O.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:O.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:O.green},ghost:{bg:"transparent",fg:O.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:O.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:O.backgroundLight,border:"#49483E",tab:{fg:O.comment,activeFg:O.foreground,activeBg:O.background,hoverFg:"#E8E8E2",indicator:O.green}},dropdown:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:O.backgroundLight,fg:O.foreground,placeholder:O.comment,border:"#49483E",focusBorder:O.green,invalidBorder:O.pink},checkbox:{bg:O.backgroundLight,border:"#5B5A4F",checkColor:O.background,checkedBg:O.green},radio:{bg:O.backgroundLight,dotColor:O.green,border:"#5B5A4F",checkedBorder:O.green},tooltip:{bg:"#49483E",fg:O.foreground},modal:{bg:O.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:O.foreground},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:O.backgroundLight,selectedBg:"#49483E",fg:O.foreground}},header:{default:{bg:O.backgroundLight,fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#5B5A4F"},success:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:O.yellow,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:O.orange},danger:{bg:O.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:O.backgroundLight,fg:O.comment},primary:{bg:O.green,fg:O.background},info:{bg:O.cyan,fg:O.background},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},page:{default:{bg:O.background,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.background,titleFg:O.green,subtitleFg:O.comment,border:O.green},secondary:{bg:O.background,titleFg:"#E8E8E2",subtitleFg:O.comment,border:"#49483E"}},appshell:{bg:O.backgroundDark,dividerFg:"#49483E",sidebarBg:O.background,asideBg:O.background},collapsible:{default:{headerBg:O.backgroundLight,headerFg:O.foreground,contentBg:O.background,border:"#49483E",iconFg:O.comment},primary:{headerBg:"#49483E",headerFg:O.green,contentBg:O.background,border:O.green,iconFg:O.green},secondary:{headerBg:"#49483E",headerFg:O.foreground,contentBg:O.backgroundLight,border:"#5B5A4F",iconFg:O.comment}},commandPalette:{bg:O.backgroundLight,border:"#49483E",inputBg:O.background,inputFg:O.foreground,inputPlaceholder:O.comment,itemFg:O.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:O.foreground,highlightFg:O.green,categoryFg:O.comment},splitPanel:{bg:O.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:O.green,border:"#49483E",titleFg:O.comment},toast:{success:{bg:ro.success[900],fg:ro.success[100],border:O.green,iconFg:O.green},error:{bg:ro.danger[900],fg:ro.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:ro.warning[900],fg:ro.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},no={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},WR={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:no,background:{lowest:"#21222C",base:P.background,subtle:P.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:P.comment,popover:P.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:P.foreground,secondary:"#E8E8E2",muted:P.comment,disabled:"#565869",inverse:{base:P.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:P.purple,ring:{color:P.purple,width:2}},disabled:{opacity:.4,bg:P.currentLine,fg:"#565869"},selected:{bg:P.currentLine,fg:P.foreground}},borders:{default:P.comment,subtle:P.currentLine,strong:P.purple,accent:P.purple,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:P.purple,fg:P.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:P.currentLine,fg:P.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:P.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:P.purple},ghost:{bg:"transparent",fg:P.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:P.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:P.comment},menu:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:P.currentLine,border:P.comment,tab:{fg:P.comment,activeFg:P.foreground,activeBg:P.background,hoverFg:"#E8E8E2",indicator:P.purple}},dropdown:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:P.currentLine,fg:P.foreground,placeholder:P.comment,border:P.comment,focusBorder:P.purple,invalidBorder:P.red},checkbox:{bg:P.currentLine,border:P.comment,checkColor:P.foreground,checkedBg:P.purple},radio:{bg:P.currentLine,dotColor:P.purple,border:P.comment,checkedBorder:P.purple},tooltip:{bg:"#4D4F5F",fg:P.foreground},modal:{bg:P.currentLine,border:P.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:P.comment,fg:P.foreground},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.currentLine,selectedBg:"#4D4F5F",fg:P.foreground}},header:{default:{bg:P.currentLine,fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.purple,fg:P.foreground,titleFg:P.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:"#565869"},success:{bg:P.green,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:P.yellow,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.currentLine,fg:P.comment},primary:{bg:P.purple,fg:P.foreground},info:{bg:P.cyan,fg:P.background},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.background,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.background,titleFg:P.purple,subtitleFg:P.comment,border:P.purple},secondary:{bg:P.background,titleFg:"#E8E8E2",subtitleFg:P.comment,border:P.currentLine}},appshell:{bg:"#21222C",dividerFg:P.comment,sidebarBg:P.background,asideBg:P.background},collapsible:{default:{headerBg:P.currentLine,headerFg:P.foreground,contentBg:P.background,border:P.comment,iconFg:P.comment},primary:{headerBg:"#4D4F5F",headerFg:P.purple,contentBg:P.background,border:P.purple,iconFg:P.purple},secondary:{headerBg:"#4D4F5F",headerFg:P.foreground,contentBg:P.currentLine,border:"#565869",iconFg:P.comment}},commandPalette:{bg:P.currentLine,border:P.comment,inputBg:P.background,inputFg:P.foreground,inputPlaceholder:P.comment,itemFg:P.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:P.foreground,highlightFg:P.purple,categoryFg:P.comment},splitPanel:{bg:P.background,dividerBg:P.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:P.purple,border:P.comment,titleFg:P.comment},toast:{success:{bg:no.success[900],fg:no.success[100],border:P.green,iconFg:P.green},error:{bg:no.danger[900],fg:no.danger[100],border:P.red,iconFg:P.red},warning:{bg:no.warning[900],fg:no.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.background,fg:P.foreground,titleBarBg:P.currentLine,titleBarFg:P.foreground,border:P.comment,buttonFg:P.comment,closeFg:P.red},primary:{bg:P.background,fg:P.foreground,titleBarBg:P.purple,titleBarFg:P.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:P.foreground},success:{bg:P.background,fg:P.foreground,titleBarBg:P.green,titleBarFg:P.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},warning:{bg:P.background,fg:P.foreground,titleBarBg:P.yellow,titleBarFg:P.background,border:P.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},danger:{bg:P.background,fg:P.foreground,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={nord0:"#2E3440",nord1:"#3B4252",nord2:"#434C5E",nord3:"#4C566A",nord4:"#D8DEE9",nord5:"#E5E9F0",nord6:"#ECEFF4",nord7:"#8FBCBB",nord8:"#88C0D0",nord9:"#81A1C1",nord10:"#5E81AC",nord11:"#BF616A",nord12:"#D08770",nord13:"#EBCB8B",nord14:"#A3BE8C",nord15:"#B48EAD"},oo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:E.nord8,400:E.nord8,500:E.nord8,600:E.nord9,700:E.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:E.nord14,500:E.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:E.nord13,400:E.nord13,500:E.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:E.nord11,500:E.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:E.nord6,100:E.nord5,200:E.nord4,300:"#A3ADB8",400:"#7A8694",500:E.nord3,600:E.nord2,700:E.nord1,800:E.nord0,900:"#242933"}},HR={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:oo,background:{lowest:"#242933",base:E.nord0,subtle:E.nord1,surface:E.nord2,raised:E.nord3,elevated:"#5E6779",popover:E.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:E.nord6,secondary:E.nord5,muted:E.nord4,disabled:E.nord3,inverse:{base:E.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:E.nord14,warning:E.nord13,critical:E.nord11,info:E.nord9,highlight:E.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.nord8,ring:{color:E.nord8,width:2}},disabled:{opacity:.4,bg:E.nord1,fg:E.nord3},selected:{bg:E.nord1,fg:E.nord6}},borders:{default:E.nord3,subtle:E.nord1,strong:E.nord4,accent:E.nord8,danger:E.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:E.nord8,fg:E.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:E.nord2,fg:E.nord6,hoverBg:E.nord3,activeBg:E.nord1,border:"transparent"},outline:{bg:"transparent",fg:E.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:E.nord8},ghost:{bg:"transparent",fg:E.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.nord1,headerBg:E.nord2,footerBg:E.nord2,border:E.nord3},menu:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,activeBg:E.nord3,selectedBg:E.nord2,disabledFg:E.nord3}},tabs:{bg:E.nord1,border:E.nord3,tab:{fg:E.nord4,activeFg:E.nord6,activeBg:E.nord0,hoverFg:E.nord5,indicator:E.nord8}},dropdown:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,selectedBg:E.nord3}},input:{bg:E.nord1,fg:E.nord6,placeholder:E.nord4,border:E.nord3,focusBorder:E.nord8,invalidBorder:E.nord11},checkbox:{bg:E.nord1,border:E.nord3,checkColor:E.nord0,checkedBg:E.nord8},radio:{bg:E.nord1,dotColor:E.nord8,border:E.nord3,checkedBorder:E.nord8},tooltip:{bg:E.nord2,fg:E.nord6},modal:{bg:E.nord1,border:E.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:E.nord3,fg:E.nord6},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.nord1,selectedBg:E.nord2,fg:E.nord6}},header:{default:{bg:E.nord1,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord8,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:E.nord9},secondary:{bg:E.nord2,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},success:{bg:E.nord14,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:E.nord13,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:E.nord12},danger:{bg:E.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:E.nord1,fg:E.nord4},primary:{bg:E.nord8,fg:E.nord0},info:{bg:E.nord9,fg:"#ffffff"},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},page:{default:{bg:E.nord0,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord0,titleFg:E.nord8,subtitleFg:E.nord4,border:E.nord8},secondary:{bg:E.nord0,titleFg:E.nord5,subtitleFg:E.nord4,border:E.nord1}},appshell:{bg:"#242933",dividerFg:E.nord3,sidebarBg:E.nord0,asideBg:E.nord0},collapsible:{default:{headerBg:E.nord1,headerFg:E.nord6,contentBg:E.nord0,border:E.nord3,iconFg:E.nord4},primary:{headerBg:E.nord2,headerFg:E.nord8,contentBg:E.nord0,border:E.nord8,iconFg:E.nord8},secondary:{headerBg:E.nord2,headerFg:E.nord6,contentBg:E.nord1,border:E.nord3,iconFg:E.nord4}},commandPalette:{bg:E.nord1,border:E.nord3,inputBg:E.nord0,inputFg:E.nord6,inputPlaceholder:E.nord4,itemFg:E.nord6,itemHoverBg:E.nord2,itemSelectedBg:E.nord3,itemSelectedFg:E.nord6,highlightFg:E.nord8,categoryFg:E.nord4},splitPanel:{bg:E.nord0,dividerBg:E.nord3,dividerHoverBg:E.nord2,dividerActiveBg:E.nord8,border:E.nord3,titleFg:E.nord4},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:oo.danger[900],fg:oo.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:oo.warning[900],fg:oo.warning[100],border:E.nord13,iconFg:E.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.nord9,iconFg:E.nord9}},window:{default:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord1,titleBarFg:E.nord6,border:E.nord3,buttonFg:E.nord4,closeFg:E.nord11},primary:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord8,titleBarFg:E.nord0,border:E.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},success:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord14,titleBarFg:E.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},warning:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord13,titleBarFg:E.nord0,border:E.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},danger:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},so={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:S.blue,500:S.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:S.green,500:S.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:S.yellow,500:S.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.red,500:S.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.base3,100:S.base2,200:S.base1,300:S.base0,400:S.base00,500:S.base01,600:"#4A5A60",700:S.base02,800:S.base03,900:"#001E26"}},UR={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:so,background:{lowest:"#001E26",base:S.base03,subtle:S.base02,surface:"#094652",raised:"#0B5A66",elevated:S.base01,popover:S.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.base0,secondary:S.base1,muted:S.base00,disabled:S.base01,inverse:{base:S.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:S.green,warning:S.yellow,critical:S.red,info:S.cyan,highlight:S.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.blue,ring:{color:S.blue,width:2}},disabled:{opacity:.4,bg:S.base02,fg:S.base01},selected:{bg:S.base02,fg:S.base1}},borders:{default:S.base01,subtle:S.base02,strong:S.base0,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:S.base02,fg:S.base1,hoverBg:"#094652",activeBg:S.base03,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.base02,headerBg:"#094652",footerBg:"#094652",border:S.base01},menu:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:S.base01}},tabs:{bg:S.base02,border:S.base01,tab:{fg:S.base00,activeFg:S.base1,activeBg:S.base03,hoverFg:S.base0,indicator:S.blue}},dropdown:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:S.base02,fg:S.base0,placeholder:S.base00,border:S.base01,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.base02,border:S.base01,checkColor:S.base3,checkedBg:S.blue},radio:{bg:S.base02,dotColor:S.blue,border:S.base01,checkedBorder:S.blue},tooltip:{bg:"#094652",fg:S.base1},modal:{bg:S.base02,border:S.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.base01,fg:S.base1},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.base02,selectedBg:"#094652",fg:S.base0}},header:{default:{bg:S.base02,fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.blue,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:"#0B5A66"},success:{bg:S.green,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.base03,titleFg:S.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.base02,fg:S.base00},primary:{bg:S.blue,fg:S.base3},info:{bg:S.cyan,fg:S.base03},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.base03,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.base03,titleFg:S.blue,subtitleFg:S.base00,border:S.blue},secondary:{bg:S.base03,titleFg:S.base0,subtitleFg:S.base00,border:S.base02}},appshell:{bg:"#001E26",dividerFg:S.base01,sidebarBg:S.base03,asideBg:S.base03},collapsible:{default:{headerBg:S.base02,headerFg:S.base1,contentBg:S.base03,border:S.base01,iconFg:S.base00},primary:{headerBg:"#094652",headerFg:S.blue,contentBg:S.base03,border:S.blue,iconFg:S.blue},secondary:{headerBg:"#094652",headerFg:S.base1,contentBg:S.base02,border:"#0B5A66",iconFg:S.base00}},commandPalette:{bg:S.base02,border:S.base01,inputBg:S.base03,inputFg:S.base0,inputPlaceholder:S.base00,itemFg:S.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:S.base1,highlightFg:S.blue,categoryFg:S.base00},splitPanel:{bg:S.base03,dividerBg:S.base01,dividerHoverBg:"#094652",dividerActiveBg:S.blue,border:S.base01,titleFg:S.base00},toast:{success:{bg:so.success[900],fg:so.success[100],border:S.green,iconFg:S.green},error:{bg:so.danger[900],fg:so.danger[100],border:S.red,iconFg:S.red},warning:{bg:so.warning[900],fg:so.warning[100],border:S.yellow,iconFg:S.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.cyan,iconFg:S.cyan}},window:{default:{bg:S.base03,fg:S.base0,titleBarBg:S.base02,titleBarFg:S.base1,border:S.base01,buttonFg:S.base00,closeFg:S.red},primary:{bg:S.base03,fg:S.base0,titleBarBg:S.blue,titleBarFg:S.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},success:{bg:S.base03,fg:S.base0,titleBarBg:S.green,titleBarFg:S.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},warning:{bg:S.base03,fg:S.base0,titleBarBg:S.yellow,titleBarFg:S.base03,border:S.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:S.base03},danger:{bg:S.base03,fg:S.base0,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},io={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:_.red,500:_.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:_.fg0,100:_.fg1,200:_.fg2,300:_.fg3,400:_.fg4,500:_.gray,600:_.bg4,700:_.bg3,800:_.bg2,900:_.bg1}},qR={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:io,background:{lowest:_.bg0_h,base:_.bg0,subtle:_.bg1,surface:_.bg2,raised:_.bg3,elevated:_.bg4,popover:_.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.fg1,secondary:_.fg2,muted:_.gray,disabled:_.bg3,inverse:{base:_.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.blue,highlight:_.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.green,ring:{color:_.green,width:2}},disabled:{opacity:.4,bg:_.bg1,fg:_.bg3},selected:{bg:_.bg2,fg:_.fg1}},borders:{default:_.bg3,subtle:_.bg2,strong:_.gray,accent:_.green,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.green,fg:_.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:_.bg2,fg:_.fg1,hoverBg:_.bg3,activeBg:_.bg1,border:"transparent"},outline:{bg:"transparent",fg:_.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:_.green},ghost:{bg:"transparent",fg:_.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.bg1,headerBg:_.bg2,footerBg:_.bg2,border:_.bg3},menu:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,activeBg:_.bg3,selectedBg:_.bg2,disabledFg:_.bg3}},tabs:{bg:_.bg1,border:_.bg3,tab:{fg:_.gray,activeFg:_.fg1,activeBg:_.bg0,hoverFg:_.fg2,indicator:_.green}},dropdown:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,selectedBg:_.bg3}},input:{bg:_.bg1,fg:_.fg1,placeholder:_.gray,border:_.bg3,focusBorder:_.green,invalidBorder:_.red},checkbox:{bg:_.bg1,border:_.bg3,checkColor:_.bg0,checkedBg:_.green},radio:{bg:_.bg1,dotColor:_.green,border:_.bg3,checkedBorder:_.green},tooltip:{bg:_.bg2,fg:_.fg1},modal:{bg:_.bg1,border:_.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.bg3,fg:_.fg1},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.bg1,selectedBg:_.bg2,fg:_.fg1}},header:{default:{bg:_.bg1,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:_.bg2,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},success:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:_.yellow,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:_.orange},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:_.bg1,fg:_.gray},primary:{bg:_.green,fg:_.bg0},info:{bg:_.blue,fg:_.bg0},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.bg0,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.bg0,titleFg:_.green,subtitleFg:_.gray,border:_.green},secondary:{bg:_.bg0,titleFg:_.fg2,subtitleFg:_.gray,border:_.bg2}},appshell:{bg:_.bg0_h,dividerFg:_.bg3,sidebarBg:_.bg0,asideBg:_.bg0},collapsible:{default:{headerBg:_.bg1,headerFg:_.fg1,contentBg:_.bg0,border:_.bg3,iconFg:_.gray},primary:{headerBg:_.bg2,headerFg:_.green,contentBg:_.bg0,border:_.green,iconFg:_.green},secondary:{headerBg:_.bg2,headerFg:_.fg1,contentBg:_.bg1,border:_.bg3,iconFg:_.gray}},commandPalette:{bg:_.bg1,border:_.bg3,inputBg:_.bg0,inputFg:_.fg1,inputPlaceholder:_.gray,itemFg:_.fg1,itemHoverBg:_.bg2,itemSelectedBg:_.bg3,itemSelectedFg:_.fg1,highlightFg:_.green,categoryFg:_.gray},splitPanel:{bg:_.bg0,dividerBg:_.bg3,dividerHoverBg:_.bg2,dividerActiveBg:_.green,border:_.bg3,titleFg:_.gray},toast:{success:{bg:io.success[900],fg:io.success[100],border:_.green,iconFg:_.green},error:{bg:io.danger[900],fg:io.danger[100],border:_.red,iconFg:_.red},warning:{bg:io.warning[900],fg:io.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.blue,iconFg:_.blue}},window:{default:{bg:_.bg0,fg:_.fg1,titleBarBg:_.bg1,titleBarFg:_.fg1,border:_.bg3,buttonFg:_.gray,closeFg:_.red},primary:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},success:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},warning:{bg:_.bg0,fg:_.fg1,titleBarBg:_.yellow,titleBarFg:_.bg0,border:_.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},danger:{bg:_.bg0,fg:_.fg1,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={bg:"#1A1B26",bgDark:"#16161E",bgHighlight:"#24283B",bgPopup:"#2F3549",fg:"#A9B1D6",fgDark:"#9AA5CE",blue:"#7AA2F7",cyan:"#7DCFFF",green:"#9ECE6A",magenta:"#BB9AF7",orange:"#FF9E64",purple:"#9D7CD8",red:"#F7768E",teal:"#73DACA",yellow:"#E0AF68",comment:"#565F89",dark3:"#414868",dark5:"#737AA2"},ao={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:v.blue,500:v.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:v.green,500:v.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:v.yellow,500:v.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:v.red,500:v.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},KR={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:ao,background:{lowest:v.bgDark,base:v.bg,subtle:v.bgHighlight,surface:v.bgPopup,raised:v.dark3,elevated:v.comment,popover:v.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:v.fg,secondary:v.fgDark,muted:v.comment,disabled:v.dark3,inverse:{base:v.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:v.green,warning:v.yellow,critical:v.red,info:v.cyan,highlight:v.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.blue,ring:{color:v.blue,width:2}},disabled:{opacity:.4,bg:v.bgHighlight,fg:v.dark3},selected:{bg:v.bgHighlight,fg:v.fg}},borders:{default:v.dark3,subtle:v.bgHighlight,strong:v.comment,accent:v.blue,danger:v.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:v.blue,fg:v.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:v.bgHighlight,fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,border:"transparent"},outline:{bg:"transparent",fg:v.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:v.blue},ghost:{bg:"transparent",fg:v.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.bgHighlight,headerBg:v.bgPopup,footerBg:v.bgPopup,border:v.dark3},menu:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,selectedBg:v.bgPopup,disabledFg:v.dark3}},tabs:{bg:v.bgHighlight,border:v.dark3,tab:{fg:v.comment,activeFg:v.fg,activeBg:v.bg,hoverFg:v.fgDark,indicator:v.blue}},dropdown:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,selectedBg:v.dark3}},input:{bg:v.bgHighlight,fg:v.fg,placeholder:v.comment,border:v.dark3,focusBorder:v.blue,invalidBorder:v.red},checkbox:{bg:v.bgHighlight,border:v.dark3,checkColor:v.bg,checkedBg:v.blue},radio:{bg:v.bgHighlight,dotColor:v.blue,border:v.dark3,checkedBorder:v.blue},tooltip:{bg:v.bgPopup,fg:v.fg},modal:{bg:v.bgHighlight,border:v.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:v.dark3,fg:v.fg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.bgHighlight,selectedBg:v.bgPopup,fg:v.fg}},header:{default:{bg:v.bgHighlight,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.blue,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:v.bgPopup,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},success:{bg:v.green,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:v.yellow,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:v.orange},danger:{bg:v.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:v.bgHighlight,fg:v.comment},primary:{bg:v.blue,fg:v.bg},info:{bg:v.cyan,fg:v.bg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},page:{default:{bg:v.bg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.bg,titleFg:v.blue,subtitleFg:v.comment,border:v.blue},secondary:{bg:v.bg,titleFg:v.fgDark,subtitleFg:v.comment,border:v.bgHighlight}},appshell:{bg:v.bgDark,dividerFg:v.dark3,sidebarBg:v.bg,asideBg:v.bg},collapsible:{default:{headerBg:v.bgHighlight,headerFg:v.fg,contentBg:v.bg,border:v.dark3,iconFg:v.comment},primary:{headerBg:v.bgPopup,headerFg:v.blue,contentBg:v.bg,border:v.blue,iconFg:v.blue},secondary:{headerBg:v.bgPopup,headerFg:v.fg,contentBg:v.bgHighlight,border:v.dark3,iconFg:v.comment}},commandPalette:{bg:v.bgHighlight,border:v.dark3,inputBg:v.bg,inputFg:v.fg,inputPlaceholder:v.comment,itemFg:v.fg,itemHoverBg:v.bgPopup,itemSelectedBg:v.dark3,itemSelectedFg:v.fg,highlightFg:v.blue,categoryFg:v.comment},splitPanel:{bg:v.bg,dividerBg:v.dark3,dividerHoverBg:v.bgPopup,dividerActiveBg:v.blue,border:v.dark3,titleFg:v.comment},toast:{success:{bg:ao.success[900],fg:ao.success[100],border:v.green,iconFg:v.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:v.red,iconFg:v.red},warning:{bg:ao.warning[900],fg:ao.warning[100],border:v.yellow,iconFg:v.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.cyan,iconFg:v.cyan}},window:{default:{bg:v.bg,fg:v.fg,titleBarBg:v.bgHighlight,titleBarFg:v.fg,border:v.dark3,buttonFg:v.comment,closeFg:v.red},primary:{bg:v.bg,fg:v.fg,titleBarBg:v.blue,titleBarFg:v.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},success:{bg:v.bg,fg:v.fg,titleBarBg:v.green,titleBarFg:v.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},warning:{bg:v.bg,fg:v.fg,titleBarBg:v.yellow,titleBarFg:v.bg,border:v.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},danger:{bg:v.bg,fg:v.fg,titleBarBg:v.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},lo={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:x.mauve,500:x.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.green,500:x.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:x.yellow,500:x.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:x.red,500:x.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:x.text,100:x.subtext1,200:x.subtext0,300:x.overlay2,400:x.overlay1,500:x.overlay0,600:x.surface2,700:x.surface1,800:x.surface0,900:x.base}},VR={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:lo,background:{lowest:x.crust,base:x.base,subtle:x.surface0,surface:x.surface1,raised:x.surface2,elevated:x.overlay0,popover:x.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.text,secondary:x.subtext1,muted:x.overlay0,disabled:x.surface2,inverse:{base:x.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.sky,highlight:x.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.mauve,ring:{color:x.mauve,width:2}},disabled:{opacity:.4,bg:x.surface0,fg:x.surface2},selected:{bg:x.surface0,fg:x.text}},borders:{default:x.overlay0,subtle:x.surface1,strong:x.subtext1,accent:x.mauve,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.mauve,fg:x.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:x.surface0,fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,border:"transparent"},outline:{bg:"transparent",fg:x.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:x.mauve},ghost:{bg:"transparent",fg:x.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.surface0,headerBg:x.surface1,footerBg:x.surface1,border:x.overlay0},menu:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,selectedBg:x.surface1,disabledFg:x.surface2}},tabs:{bg:x.surface0,border:x.overlay0,tab:{fg:x.overlay0,activeFg:x.text,activeBg:x.base,hoverFg:x.subtext1,indicator:x.mauve}},dropdown:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,selectedBg:x.surface2}},input:{bg:x.surface0,fg:x.text,placeholder:x.overlay0,border:x.overlay0,focusBorder:x.mauve,invalidBorder:x.red},checkbox:{bg:x.surface0,border:x.overlay0,checkColor:x.base,checkedBg:x.mauve},radio:{bg:x.surface0,dotColor:x.mauve,border:x.overlay0,checkedBorder:x.mauve},tooltip:{bg:x.surface1,fg:x.text},modal:{bg:x.surface0,border:x.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.surface2,fg:x.text},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.surface0,selectedBg:x.surface1,fg:x.text}},header:{default:{bg:x.surface0,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.mauve,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:x.surface1,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.surface2},success:{bg:x.green,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:x.yellow,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:x.peach},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:x.surface0,fg:x.overlay0},primary:{bg:x.mauve,fg:x.base},info:{bg:x.sky,fg:x.base},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.base,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.base,titleFg:x.mauve,subtitleFg:x.overlay0,border:x.mauve},secondary:{bg:x.base,titleFg:x.subtext1,subtitleFg:x.overlay0,border:x.surface0}},appshell:{bg:x.crust,dividerFg:x.overlay0,sidebarBg:x.base,asideBg:x.base},collapsible:{default:{headerBg:x.surface0,headerFg:x.text,contentBg:x.base,border:x.overlay0,iconFg:x.overlay0},primary:{headerBg:x.surface1,headerFg:x.mauve,contentBg:x.base,border:x.mauve,iconFg:x.mauve},secondary:{headerBg:x.surface1,headerFg:x.text,contentBg:x.surface0,border:x.surface2,iconFg:x.overlay0}},commandPalette:{bg:x.surface0,border:x.overlay0,inputBg:x.base,inputFg:x.text,inputPlaceholder:x.overlay0,itemFg:x.text,itemHoverBg:x.surface1,itemSelectedBg:x.surface2,itemSelectedFg:x.text,highlightFg:x.mauve,categoryFg:x.overlay0},splitPanel:{bg:x.base,dividerBg:x.overlay0,dividerHoverBg:x.surface1,dividerActiveBg:x.mauve,border:x.overlay0,titleFg:x.overlay0},toast:{success:{bg:lo.success[900],fg:lo.success[100],border:x.green,iconFg:x.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:x.red,iconFg:x.red},warning:{bg:lo.warning[900],fg:lo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.sky,iconFg:x.sky}},window:{default:{bg:x.base,fg:x.text,titleBarBg:x.surface0,titleBarFg:x.text,border:x.overlay0,buttonFg:x.overlay0,closeFg:x.red},primary:{bg:x.base,fg:x.text,titleBarBg:x.mauve,titleBarFg:x.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},success:{bg:x.base,fg:x.text,titleBarBg:x.green,titleBarFg:x.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},warning:{bg:x.base,fg:x.text,titleBarBg:x.yellow,titleBarFg:x.base,border:x.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},danger:{bg:x.base,fg:x.text,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var co={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},zR={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:co,background:{lowest:"#000000",base:"#000000",subtle:m[950],surface:m[900],raised:m[800],elevated:m[700],popover:m[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:m[100],muted:m[300],disabled:m[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:he[400],warning:ge[400],critical:ce[400],info:Ze[400],highlight:te[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:te[400],ring:{color:te[400],width:3}},disabled:{opacity:.5,bg:m[900],fg:m[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:m[500],subtle:m[700],strong:m[300],accent:te[400],danger:ce[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:te[500],fg:"#ffffff",hoverBg:te[400],activeBg:te[600],border:te[300]},secondary:{bg:m[800],fg:"#ffffff",hoverBg:m[700],activeBg:m[900],border:m[500]},outline:{bg:"transparent",fg:te[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:te[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:m[950],headerBg:m[900],footerBg:m[900],border:m[500]},menu:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],activeBg:te[800],selectedBg:te[900],disabledFg:m[500]}},tabs:{bg:m[950],border:m[500],tab:{fg:m[300],activeFg:"#ffffff",activeBg:m[800],hoverFg:m[100],indicator:te[400]}},dropdown:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:m[400],border:m[500],focusBorder:te[400],invalidBorder:ce[400]},checkbox:{bg:"#000000",border:m[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:m[400],checkedBorder:te[400]},tooltip:{bg:m[800],fg:"#ffffff"},modal:{bg:m[950],border:m[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:m[700],fg:"#ffffff"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:m[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:m[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:m[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},success:{bg:he[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:he[300]},warning:{bg:ge[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[600]},danger:{bg:ce[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ce[300]}},statusbar:{default:{bg:m[950],fg:m[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Ze[500],fg:"#000000"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:m[300],border:te[400]},secondary:{bg:"#000000",titleFg:m[100],subtitleFg:m[400],border:m[700]}},appshell:{bg:"#000000",dividerFg:m[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:m[950],headerFg:"#ffffff",contentBg:"#000000",border:m[500],iconFg:m[300]},primary:{headerBg:m[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:m[900],headerFg:"#ffffff",contentBg:m[950],border:m[500],iconFg:m[300]}},commandPalette:{bg:m[950],border:m[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:m[400],itemFg:"#ffffff",itemHoverBg:m[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:m[400]},splitPanel:{bg:"#000000",dividerBg:m[500],dividerHoverBg:m[400],dividerActiveBg:te[400],border:m[500],titleFg:m[300]},toast:{success:{bg:co.success[900],fg:co.success[100],border:he[400],iconFg:he[400]},error:{bg:co.danger[900],fg:co.danger[100],border:ce[400],iconFg:ce[400]},warning:{bg:co.warning[900],fg:co.warning[100],border:ge[400],iconFg:ge[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Ze[400],iconFg:Ze[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:m[950],titleBarFg:"#ffffff",border:m[500],buttonFg:m[300],closeFg:ce[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:te[500],titleBarFg:"#ffffff",border:te[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:he[500],titleBarFg:"#000000",border:he[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[400],titleBarFg:"#000000",border:ge[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ce[500],titleBarFg:"#ffffff",border:ce[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var TL={primary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},warning:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},danger:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},JR={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:TL,background:{lowest:m[950],base:m[900],subtle:m[800],surface:m[700],raised:m[600],elevated:m[500],popover:m[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:m[50],secondary:m[200],muted:m[400],disabled:m[500],inverse:{base:m[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:m[300],warning:m[400],critical:m[200],info:m[300],highlight:m[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:m[400],ring:{color:m[400],width:2}},disabled:{opacity:.4,bg:m[800],fg:m[500]},selected:{bg:m[700],fg:m[50]}},borders:{default:m[600],subtle:m[700],strong:m[400],accent:m[400],danger:m[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:m[300],fg:m[900],hoverBg:m[200],activeBg:m[400],border:"transparent"},secondary:{bg:m[700],fg:m[50],hoverBg:m[600],activeBg:m[800],border:"transparent"},outline:{bg:"transparent",fg:m[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:m[400]},ghost:{bg:"transparent",fg:m[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:m[800],headerBg:m[700],footerBg:m[700],border:m[600]},menu:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],activeBg:m[600],selectedBg:m[700],disabledFg:m[500]}},tabs:{bg:m[800],border:m[600],tab:{fg:m[400],activeFg:m[50],activeBg:m[700],hoverFg:m[200],indicator:m[300]}},dropdown:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],selectedBg:m[600]}},input:{bg:m[800],fg:m[50],placeholder:m[500],border:m[600],focusBorder:m[400],invalidBorder:m[300]},checkbox:{bg:m[800],border:m[500],checkColor:m[900],checkedBg:m[300]},radio:{bg:m[800],dotColor:m[300],border:m[500],checkedBorder:m[300]},tooltip:{bg:m[700],fg:m[50]},modal:{bg:m[800],border:m[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:m[700],fg:m[50]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},list:{item:{bg:"transparent",hoverBg:m[800],selectedBg:m[700],fg:m[50]}},header:{default:{bg:m[800],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]},secondary:{bg:m[700],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},success:{bg:m[400],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[500]},warning:{bg:m[500],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[600]},danger:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]}},statusbar:{default:{bg:m[800],fg:m[400]},primary:{bg:m[300],fg:m[900]},info:{bg:m[400],fg:m[900]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},page:{default:{bg:m[900],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[900],titleFg:m[200],subtitleFg:m[400],border:m[500]},secondary:{bg:m[900],titleFg:m[300],subtitleFg:m[500],border:m[700]}},appshell:{bg:m[950],dividerFg:m[600],sidebarBg:m[900],asideBg:m[900]},collapsible:{default:{headerBg:m[800],headerFg:m[50],contentBg:m[900],border:m[600],iconFg:m[400]},primary:{headerBg:m[700],headerFg:m[200],contentBg:m[900],border:m[500],iconFg:m[300]},secondary:{headerBg:m[700],headerFg:m[50],contentBg:m[800],border:m[600],iconFg:m[400]}},commandPalette:{bg:m[800],border:m[600],inputBg:m[900],inputFg:m[50],inputPlaceholder:m[500],itemFg:m[50],itemHoverBg:m[700],itemSelectedBg:m[600],itemSelectedFg:m[50],highlightFg:m[200],categoryFg:m[500]},splitPanel:{bg:m[900],dividerBg:m[600],dividerHoverBg:m[500],dividerActiveBg:m[300],border:m[600],titleFg:m[400]},toast:{success:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]},error:{bg:m[800],fg:m[100],border:m[300],iconFg:m[200]},warning:{bg:m[800],fg:m[100],border:m[500],iconFg:m[400]},info:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]}},window:{default:{bg:m[900],fg:m[50],titleBarBg:m[800],titleBarFg:m[50],border:m[600],buttonFg:m[400],closeFg:m[300]},primary:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},success:{bg:m[900],fg:m[50],titleBarBg:m[400],titleBarFg:m[900],border:m[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},warning:{bg:m[900],fg:m[50],titleBarBg:m[500],titleBarFg:m[900],border:m[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},danger:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]}}},borderRadius:"none"};var QR=Symbol("tuiuiu.theme-runtime-state");function YR(){let[e,t]=gr(jp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function PL(e){if(e.id===0)return YR();let t=It(QR,YR),[r,n]=gr(ss(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function XR(){let e=Ge();return Oe(QR,()=>PL(e),e)}function ZR(){return ss(XR().currentTheme)}var AL={dark:jp,light:NR,monokai:GR,dracula:WR,nord:HR,solarizedDark:UR,gruvbox:qR,tokyoNight:KR,catppuccin:VR,highContrastDark:zR,monochrome:JR},s9=Object.keys(AL);function CL(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function wt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&CL(e)>.4?"black":"white"}function DL(e,t=500){let r=$R[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var OL={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>wt(e.palette.primary[500]),"primary-foreground":e=>wt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>wt(e.palette.secondary[500]),"secondary-foreground":e=>wt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>wt(e.accents.positive),"success-foreground":e=>wt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>wt(e.accents.warning),"warning-foreground":e=>wt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>wt(e.accents.critical),"danger-foreground":e=>wt(e.accents.critical),errorForeground:e=>wt(e.accents.critical),destructiveForeground:e=>wt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>wt(e.accents.info),"info-foreground":e=>wt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>wt(e.palette.primary[400]),"accent-foreground":e=>wt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function e_(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=ss(XR().currentTheme),r=OL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return DL(o,i)}return e}var FL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},t_=Symbol("tuiuiu.perf-inspector-runtime-state");function IL(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function r_(e){let t=e.id===0?null:It(t_,()=>r_(Mr())),r=IL(t?.config??FL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function n_(){let e=Ge();return Oe(t_,()=>r_(e),e)}function ML(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function LL(e,t){let r=$L().slice(-t);e.ring=new Array(t),e.start=0,e.count=r.length;for(let n=0;n<r.length;n++)e.ring[n]=r[n]}function jL(e,t){e.ring.length!==e.config.maxFrames&&LL(e,e.config.maxFrames);let r=(e.start+e.count)%e.ring.length;if(e.ring[r]=t,e.count<e.ring.length){e.count++;return}e.start=(e.start+1)%e.ring.length}function BL(e,t){let r={};if(!t)return r;for(let[n,o]of Object.entries(t)){if(!Number.isFinite(o)||o<0)continue;let s=e[n];if(typeof s!="number")continue;let i=s-o;i>0&&(r[n]=i)}return r}function o_(e,t={}){let r=n_(),n=ML(e),o=Math.max(0,n-r.config.budget.frameMs),s=BL(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;tR({totalMs:n,overBudget:o>0,phaseOverrunCount:i});let l={frameId:e.info.frameId,committedAt:e.info.committedAt,renderer:t.renderer??(e.metrics.phases.deltaRenderMs!==void 0?"delta":"ansi"),totalMs:n,budgetOverrunMs:o,phaseBudgetOverruns:s,overBudgetPhaseCount:i,slow:a,phases:{...e.metrics.phases},structural:{...e.metrics.structural}};if(!r.config.enabled)return null;if(jL(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function $L(){let e=n_(),t=[];for(let r=0;r<e.count;r++){let n=e.ring[(e.start+r)%e.ring.length];n&&t.push(n)}return t}var NL={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function uo(e,t){return pR(e,t,NL)}function Bp(e){fR(e)}function Tn(e,t){mR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),o_(e,{renderer:t.renderer})}var GL=.4,WL=64;function po(){return typeof performance<"u"?performance.now():Date.now()}var s_=new WeakMap;function HL(){let e=ZR(),t=s_.get(e);return t||(t=new Map,s_.set(e,t)),t}function UL(e,t){return e.type!==t.type||e.order!==t.order||e.zIndex!==t.zIndex||e.id!==t.id||e.nodeType!==t.nodeType||e.clip?.x!==t.clip?.x||e.clip?.y!==t.clip?.y||e.clip?.width!==t.clip?.width||e.clip?.height!==t.clip?.height?!1:e.type==="box"&&t.type==="box"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.backgroundColor===t.backgroundColor&&e.fillChar===t.fillChar&&e.borderStyle===t.borderStyle&&e.borderColor===t.borderColor&&e.borderText===t.borderText&&e.borderTextAlign===t.borderTextAlign&&e.borderTextColor===t.borderTextColor&&e.borderTextBold===t.borderTextBold&&e.borderSides?.top===t.borderSides?.top&&e.borderSides?.bottom===t.borderSides?.bottom&&e.borderSides?.left===t.borderSides?.left&&e.borderSides?.right===t.borderSides?.right:e.type==="text"&&t.type==="text"?e.x===t.x&&e.y===t.y&&e.maxWidth===t.maxWidth&&e.text===t.text&&e.inheritedBackgroundColor===t.inheritedBackgroundColor&&qL(e.style,t.style):e.type==="terminal-image"&&t.type==="terminal-image"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.protocol===t.protocol&&e.fit===t.fit&&e.threshold===t.threshold&&e.dither===t.dither&&e.preserveAspectRatio===t.preserveAspectRatio&&e.cellRender===t.cellRender&&e.source.hash===t.source.hash:!1}function qL(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o of r)if(e[o]!==t[o])return!1;return!0}function l_(e,t){return!(e.x+e.width<=t.x||t.x+t.width<=e.x||e.y+e.height<=t.y||t.y+t.height<=e.y)}function d_(e,t,r){let n=Math.max(0,e.x),o=Math.max(0,e.y),s=Math.min(t,e.x+e.width),i=Math.min(r,e.y+e.height);return s<=n||i<=o?null:{x:n,y:o,width:s-n,height:i-o}}function KL(e,t,r){let n=e.map(s=>d_(s,t,r)).filter(s=>s!==null).sort((s,i)=>s.y-i.y||s.x-i.x);if(n.length<=1)return n;let o=[];for(let s of n){let i=o[o.length-1];if(!i){o.push({...s});continue}if(!(l_(i,s)||s.y<=i.y+i.height&&s.x<=i.x+i.width)){o.push({...s});continue}let l=Math.min(i.x,s.x),d=Math.min(i.y,s.y),c=Math.max(i.x+i.width,s.x+s.width),u=Math.max(i.y+i.height,s.y+s.height);i.x=l,i.y=d,i.width=c-l,i.height=u-d}return o}function VL(e,t,r){let n=new Map;for(let i of e){let a=d_(i,t,r);if(!a)continue;let l=a.x,d=a.x+a.width,c=a.y+a.height;for(let u=a.y;u<c;u++){let p=n.get(u);p?p.push({x1:l,x2:d}):n.set(u,[{x1:l,x2:d}])}}let o=[...n.keys()].sort((i,a)=>i-a),s=[];for(let i of o){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1}),l=c}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1})}return s}function c_(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new Ei(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function h(F){U(t.columns||80,t.rows||24);let W=uo(F,{width:s,height:i});R(W)}function R(F){U(F.info.viewport.width,F.info.viewport.height),G(F),Xo(F.layout),ai(),c=F.root,u=F}function T(){l=!0,c?h(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Ei(s,i),l=!0}function D(){!r&&d&&(as(t),d=!1)}function M(){let F=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:y,totalCells:F,updatePercentage:F>0?y/F*100:0}}function N(F,W){s=F,i=W,a.resize(s,i),l=!0}function U(F,W){!r&&!d&&(ls(t),d=!0),(F!==s||W!==i)&&N(F,W)}function G(F){let W=po(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=nj(u,F),Ae=$r(),Ee=MR(Ae),we=LR(Ae),J=_e=>{let Ce=po();t.write(_e),q+=po()-Ce,oe+=typeof _e=="string"?Buffer.byteLength(_e):_e.byteLength};if(!l&&n&&u){let{renderRects:_e,diffRects:Ce}=JL(u.drawCommands,F.drawCommands,s,i);if(Pt(F,"dirtyRectCount",_e.length),Pt(F,"diffRectCount",Ce.length),_e.length===0){pe&&J(pe),y=0,Pt(F,"patchCount",0),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}let ve=YL(_e);if(!(_e.length>WL||ve>Z*GL)){Ee&&J(Ee),QL(se,_e),ZL(F.drawCommands,_e,se,F.reservedRegions);let Se=ae.diffRects(se,Ce);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,Pt(F,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${_e.length}, patches: ${Se.length}, cells: ${Z}`),pe&&J(pe),Se.length>0){let fe=Fp(Se,s,!0);J(fe),g++}we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}}Ee&&J(Ee),se.clear(),f_(F.drawCommands,se,F.reservedRegions);let de=a.swap();if(y=de.length,Pt(F,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let _e=Pl(a.getFrontBuffer());pe&&J(pe),J("\x1B[H"),J(_e),f++,l=!1,we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}if(pe&&J(pe),de.length>0){let _e=Fp(de,s,!0);J(_e),g++}l=!1,we&&J(we),Pt(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"})}return{render:h,renderFrame:R,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function zL(e){if(e.maxWidth<=0||e.text.length===0)return{x:e.x,y:e.y,width:0,height:0};let t=0,r=-1,n=Yn(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,be(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function $p(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:zL(e);if(!e.clip)return t;let r=Math.max(t.x,e.clip.x),n=Math.max(t.y,e.clip.y),o=Math.min(t.x+t.width,e.clip.x+e.clip.width),s=Math.min(t.y+t.height,e.clip.y+e.clip.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function JL(e,t,r,n){let o=[],s=Math.max(e.length,t.length);for(let i=0;i<s;i++){let a=e[i],l=t[i];a&&l&&UL(a,l)||(a&&o.push($p(a)),l&&o.push($p(l)))}return{renderRects:KL(o,r,n),diffRects:VL(o,r,n)}}function YL(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function QL(e,t){let r=Nr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function u_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function br(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,be(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||u_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function XL(e,t,r,n,o,s,i,a,l={},d){for(let c=0;c<o;c++)(!d||r+c>=d.x&&r+c<d.x+d.width&&n>=d.y&&n<d.y+d.height)&&!u_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function p_(e,t,r){switch(e.type){case"box":ej(e,t,r);break;case"text":y_(e,t,r);break;case"terminal-image":tj(e,t);break}}function ZL(e,t,r,n){for(let o of e){let s=$p(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(l_(s,i)){p_(o,r,n);break}}}}function f_(e,t,r){for(let n of e)p_(n,t,r)}function g_(e,t=new Gr(e.info.viewport.width,e.info.viewport.height)){return f_(e.drawCommands,t,e.reservedRegions),t}function ej(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:y,clip:h}=e,R=a?fo(a):void 0,T=c?fo(c):void 0,$=f?fo(f):T;if(R||l!==" "){let D=d&&d!=="none"?1:0,M=n+D,N=o+D,U=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let F=0;F<G;F++)XL(t,r,M,N+F,U,l,void 0,R,{},h)}if(d&&d!=="none"){let D=Ip[d]??Ip.single,M={},N=u?.top!==!1,U=u?.bottom!==!1,G=u?.left!==!1,F=u?.right!==!1;if(N){let W=G?D.topLeft:D.top;br(t,r,n,o,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o,D.top,T,void 0,M,h);if(s>1){let q=F?D.topRight:D.top;br(t,r,n+s-1,o,q,T,void 0,M,h)}if(p&&s>4){let q=s-4,ae=` ${Zr(Ck(p),q,{truncationCharacter:""})} `,se=be(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ae=0,Ee=pe;for(;Ae<ae.length&&Ee<n+s-1;){let we=Jn(ae,Ae);if(!we)break;Ae=we.nextIndex;let J=be(we.symbol);J<=0||Ee+J>n+s-1||(br(t,r,Ee,o,we.symbol,$,void 0,y?{...M,bold:!0}:M,h),Ee+=J)}}}for(let W=1;W<i-1;W++)G&&br(t,r,n,o+W,D.left,T,void 0,M,h),F&&s>1&&br(t,r,n+s-1,o+W,D.right,T,void 0,M,h);if(U&&i>1){let W=G?D.bottomLeft:D.bottom;br(t,r,n,o+i-1,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o+i-1,D.bottom,T,void 0,M,h);if(s>1){let q=F?D.bottomRight:D.bottom;br(t,r,n+s-1,o+i-1,q,T,void 0,M,h)}}}}function tj(e,t){e.cellRender&&y_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:b_(e),style:{},clip:e.clip},t,[])}function h_(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function m_(e){let t=h_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function vi(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${m_(e)}:${e.x}:${e.y}`)}function ds(e){return[vi(e),e.x,e.y,m_(e)].join(":")}function b_(e){let t=h_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:ml(e.protocol,e.source,t)}function i_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender&&(!t.clip||t.x>=t.clip.x&&t.y>=t.clip.y&&t.x+t.width<=t.clip.x+t.clip.width&&t.y+t.height<=t.clip.y+t.clip.height)):[]}function rj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[vi(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(vi(s));if(!i||ds(s)!==ds(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=ns.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${bl("kitty")}\x1B8`}}return o}function nj(e,t){let r=i_(e),n=i_(t),o=r.map(ds).join("|"),s=n.map(ds).join("|");if(e&&o===s)return"";let i=rj(r,n),a=new Map(r.map(l=>[vi(l),l]));for(let l of n){let d=a.get(vi(l));d&&ds(d)===ds(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=b_(l),i+="\x1B8")}return i}function cs(e){if(e===void 0||!/^\d{1,3}$/u.test(e))return null;let t=Number(e);return t>=0&&t<=255?t:null}function oj(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=cs(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(cs);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function sj(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=cs(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[cs(e[t+2]),cs(e[t+3]),cs(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var a_={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function ij(e,t,r,n={}){let o=[],s=t,i=r,a={...n},l="",d=0;for(;d<e.length;){if(e[d]==="\x1B"){let c=zn(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let y=p[g].split(":"),h=Number(y[0]||0);if(y.length>1){if(h===4){let R=Number(y[1]||0);R in a_&&(a.underline=a_[R])}else if(h===38||h===48||h===58){let R=oj(y);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R)}continue}if(h===0)s=t,i=r,a={...n};else if(h===1)a.bold=!0;else if(h===2)a.dim=!0;else if(h===3)a.italic=!0;else if(h===4)a.underline=!0;else if(h===5)a.blink=!0;else if(h===7)a.inverse=!0;else if(h===8)a.hidden=!0;else if(h===9)a.strikethrough=!0;else if(h===21)a.underline="double";else if(h===22)a.bold=!1,a.dim=!1;else if(h===23)a.italic=!1;else if(h===24)a.underline=!1;else if(h===25)a.blink=!1;else if(h===27)a.inverse=!1;else if(h===28)a.hidden=!1;else if(h===29)a.strikethrough=!1;else if(h>=30&&h<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][h-30];else if(h===39)s=t;else if(h>=40&&h<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][h-40];else if(h===49)i=r;else if(h===59)a.underlineColor=n.underlineColor;else if(h>=90&&h<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-90];else if(h>=100&&h<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-100];else if(h===38||h===48||h===58){let{color:R,consumed:T}=sj(p,g);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function y_(e,t,r){let{x:n,y:o,maxWidth:s,text:i,style:a,inheritedBackgroundColor:l}=e;if(s<=0)return;let d=e.prebuiltAnsi===!0,c=d?void 0:a.color?fo(a.color):void 0,u=d?void 0:a.backgroundColor?fo(a.backgroundColor):l?fo(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?fo(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Yn(i,s,a.wrap);if(g){let y=ij(f.join(`
|
|
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)QM(Se,ie.commands);Qn("draw");let fe=fR(e,D,G,Se,R,ve);return JM(ve,fe.commands,R),{commands:fe.commands,hasCompositor:R,subtreeSignature:ve}}function rL(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 nL(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=rL(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function oL(e){let t=yR(e),r=Sl.get(e),n=hR(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=KM(t.commands),s=t.hasCompositor?uR(o,bR(e)):o,i=nL(s),a=Sl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),YM(t.subtreeSignature,i,n),i}function kR(e,t,r={}){let n=IM(r),o=FM(t),s=Date.now(),i=vn(),a=vn(),l=Zk(e,o.width,o.height),d=vn()-a,c=vn(),u=oL(l),p=tL(u),g=vn()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},y=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=MM(l)),h),N=()=>(R||(R=jM(l)),R),U=()=>{if(!T){let ae=vn();T=qw(l),f.phases.hitTargetRegistrationMs=vn()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...BM(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&U();let F=NM(M,N,o,$,f),W=Date.now(),q=vn()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:PM++,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 wR(e,t){Dp(t).committedFrameSnapshot=e}function RR(e){return Dp(e).committedFrameSnapshot}function _R(e){Dp(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 At(e,t,r){e.metrics.structural[t]=r}function xR(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 vR=Symbol("tuiuiu.progressive-runtime-state");function ER(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function sL(e){if(e.id===0)return ER();let t=Mt(vR,ER);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function Op(){let e=Ge();return Oe(vR,()=>sL(e),e)}function SR(){return Op().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function TR(){return Op().capabilityOverrides}function Fp(){return Op().progressiveVersion}function iL(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=fl(t),a=Sw(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=SR(),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=TR();return U&&Object.assign(N,U),N}var PR=Symbol("tuiuiu.capability-runtime-state");function AR(e){let t=e.id===0?"auto":is(Mt(PR,()=>AR(Mr())).renderModeSignal),[r,n]=hr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Ir](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function xi(e){let t=Ge(e);return Oe(PR,()=>AR(t),t)}function CR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function aL(e){return iL({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Tl(e){return e.cachedCapabilities=aL(e),e.cachedProgressiveVersion=Fp(),e.cachedCapabilities}function DR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Tl(e);let r=CR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function OR(e){let t=xi(),r=t.source.stdout??process.stdout;t.resizeListener&&(r.off("resize",t.resizeListener),t.resizeListener=null),t.source={...e},t.cachedCapabilities=null,t.cachedProgressiveVersion=-1,DR(t)}function $r(){let e=xi(),t=Fp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Tl(e),e.cachedCapabilities??Tl(e)}function FR(){return Tl(xi())}function IR(){return CR(xi())}function MR(e){let t=xi();return t.resizeHandlers.add(e),DR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var LR={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},lL={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},dL=512,to=new Map,jR=4e6;function Nr(){return{char:" ",attrs:{}}}function Mp(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 cL(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&&Mp(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function BR(e,t){return e.char===t.char&&Mp(e.fg,t.fg)&&Mp(e.bg,t.bg)&&cL(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Pl(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>jR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${jR} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push(Nr());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||be(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,be(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}if(this.cells[r][t]=n,this.invalidateRow(r),!n.isWide&&o>1&&t+o<=this.width)for(let s=1;s<o;s++)this.clearWideFootprint(t+s,r),this.cells[r][t+s]={char:"",fg:n.fg,bg:n.bg,attrs:n.attrs,isWide:!0};this.addDamage(t,r,Math.min(o,this.width-t),1)}}clearWideFootprint(t,r){if(!Number.isInteger(t)||!Number.isInteger(r)||t<0||t>=this.width||r<0||r>=this.height)return;let n=this.cells[r][t];if(n.isWide){if(this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&be(s.char)>1&&(this.cells[r][t-1]=Nr(),this.addDamage(t-1,r,1,1))}return}let o=be(n.char);if(!(o<=1)){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);for(let s=1;s<o&&t+s<this.width;s++)this.cells[r][t+s]?.isWide&&(this.cells[r][t+s]=Nr(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=be(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=Jn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
195
|
+
`)continue;if(a>=this.width)break;let c=be(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(be(o)!==1){let c=be(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(be(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=Nr();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,Pl(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];BR(a,l)||r.push({x:i,y:s,cell:Pl(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=uL(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];BR(d,c)||n.push({x:l,y:i.y,cell:Pl(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Pl(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}${NR(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function uL(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||pL(o)?$R(s,i,o):fL(s,i,o)}function pL(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 $R(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 fL(e,t,r){let n=new Map;for(let i of r){let a=Math.max(0,i.x),l=Math.max(0,i.y),d=Math.min(e,i.x+i.width),c=Math.min(t,i.y+i.height);if(!(d<=a||c<=l))for(let u=l;u<c;u++){let p=n.get(u);p?p.push({x1:a,x2:d}):n.set(u,[{x1:a,x2:d}])}}let o=[],s=[...n.keys()].sort((i,a)=>i-a);for(let i of s){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}o.push({y:i,x1:l.x1,x2:l.x2}),l=c}o.push({y:i,x1:l.x1,x2:l.x2})}return o}var Ei=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}getBackBuffer(){return this.back}getFrontBuffer(){return this.front}swap(){let t=this.front.diff(this.back),r=this.front;return this.front=this.back,this.back=r,this.back.clearDamage(),t}swapDirty(t){let r=this.front.diffRects(this.back,t),n=this.front;return this.front=this.back,this.back=n,this.back.clearDamage(),r}resize(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}};function Lp(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(LR[e]!==void 0){let n=t?40:30,o=LR[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 gL(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(lL[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=hL(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 hL(e){let t=Lp(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 Ip(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function NR(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),Ip(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",Ip(e),Ip(t)].join("|")}function GR(e,t,r){let n=NR(e,t,r),o=to.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...gL(r));let i=Lp(e,!1),a=Lp(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(to.has(n))to.delete(n);else if(to.size>=dL){let d=to.keys().next();d.done||to.delete(d.value)}return to.set(n,l),l===""?null:l}function mL(e){return e.length===1&&e.charCodeAt(0)<=127?1:be(e)}function Al(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=GR(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 jp(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=GR(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+(mL(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Cl(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 bL="\x1B[?2026h",yL="\x1B[?2026l";function WR(e){let t=e??$r();return t.synchronizedOutput?Cl(bL,t.multiplexer):""}function HR(e){let t=e??$r();return t.synchronizedOutput?Cl(yL,t.multiplexer):""}var Bp={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 qR="\x1B[?25h",kL="\x1B[?25l",Dl=!1,UR=!1,wL=null,$p=null;function Np(e){return"isTTY"in e&&!!e.isTTY}function RL(){let e=$p??process.stdout;Np(e)&&Dl&&(e.write(qR),Dl=!1)}function _L(){UR||(UR=!0,wL=rn(RL))}function ls(e=process.stdout){Np(e)&&($p=e,Dl=!1,e.write(qR))}function ds(e=process.stdout){Np(e)&&($p=e,_L(),Dl=!0,e.write(kL))}var xL="#ffffff",EL="#000000",vL="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},SL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},TL={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"},PL={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"},AL={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"},he={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},DL={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},OL={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"},te={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},IL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},ML={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},LL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},jL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},BL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},$L={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},KR={white:xL,black:EL,transparent:vL,slate:k,gray:SL,zinc:TL,neutral:m,stone:He,red:ce,orange:PL,amber:ge,yellow:AL,lime:CL,green:he,emerald:DL,teal:OL,cyan:Ze,sky:FL,blue:te,indigo:IL,violet:ML,purple:LL,fuchsia:jL,pink:BL,rose:$L};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]}},Gp={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]}},VR={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:he[600],warning:ge[600],critical:ce[600],info:Ze[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:k[300],checkedBorder:Y.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Y.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:k[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:k[600],border:Y.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Y.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:Ze[50],fg:Ze[900],border:Ze[200],iconFg:Ze[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Y.warning[500],titleBarFg:k[900],border:Y.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},ro={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},zR={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:ro,background:{lowest:O.backgroundDark,base:O.background,subtle:O.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:O.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:O.foreground,secondary:"#E8E8E2",muted:O.comment,disabled:"#5B5A4F",inverse:{base:O.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:O.green,warning:O.yellow,critical:O.pink,info:O.cyan,highlight:O.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:O.green,ring:{color:O.green,width:2}},disabled:{opacity:.4,bg:O.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:O.foreground}},borders:{default:"#49483E",subtle:O.backgroundLight,strong:O.comment,accent:O.green,danger:O.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:O.green,fg:O.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:O.foreground,hoverBg:"#5B5A4F",activeBg:O.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:O.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:O.green},ghost:{bg:"transparent",fg:O.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:O.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:O.backgroundLight,border:"#49483E",tab:{fg:O.comment,activeFg:O.foreground,activeBg:O.background,hoverFg:"#E8E8E2",indicator:O.green}},dropdown:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:O.backgroundLight,fg:O.foreground,placeholder:O.comment,border:"#49483E",focusBorder:O.green,invalidBorder:O.pink},checkbox:{bg:O.backgroundLight,border:"#5B5A4F",checkColor:O.background,checkedBg:O.green},radio:{bg:O.backgroundLight,dotColor:O.green,border:"#5B5A4F",checkedBorder:O.green},tooltip:{bg:"#49483E",fg:O.foreground},modal:{bg:O.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:O.foreground},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:O.backgroundLight,selectedBg:"#49483E",fg:O.foreground}},header:{default:{bg:O.backgroundLight,fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#5B5A4F"},success:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:O.yellow,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:O.orange},danger:{bg:O.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:O.backgroundLight,fg:O.comment},primary:{bg:O.green,fg:O.background},info:{bg:O.cyan,fg:O.background},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},page:{default:{bg:O.background,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.background,titleFg:O.green,subtitleFg:O.comment,border:O.green},secondary:{bg:O.background,titleFg:"#E8E8E2",subtitleFg:O.comment,border:"#49483E"}},appshell:{bg:O.backgroundDark,dividerFg:"#49483E",sidebarBg:O.background,asideBg:O.background},collapsible:{default:{headerBg:O.backgroundLight,headerFg:O.foreground,contentBg:O.background,border:"#49483E",iconFg:O.comment},primary:{headerBg:"#49483E",headerFg:O.green,contentBg:O.background,border:O.green,iconFg:O.green},secondary:{headerBg:"#49483E",headerFg:O.foreground,contentBg:O.backgroundLight,border:"#5B5A4F",iconFg:O.comment}},commandPalette:{bg:O.backgroundLight,border:"#49483E",inputBg:O.background,inputFg:O.foreground,inputPlaceholder:O.comment,itemFg:O.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:O.foreground,highlightFg:O.green,categoryFg:O.comment},splitPanel:{bg:O.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:O.green,border:"#49483E",titleFg:O.comment},toast:{success:{bg:ro.success[900],fg:ro.success[100],border:O.green,iconFg:O.green},error:{bg:ro.danger[900],fg:ro.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:ro.warning[900],fg:ro.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},no={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},JR={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:no,background:{lowest:"#21222C",base:P.background,subtle:P.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:P.comment,popover:P.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:P.foreground,secondary:"#E8E8E2",muted:P.comment,disabled:"#565869",inverse:{base:P.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:P.purple,ring:{color:P.purple,width:2}},disabled:{opacity:.4,bg:P.currentLine,fg:"#565869"},selected:{bg:P.currentLine,fg:P.foreground}},borders:{default:P.comment,subtle:P.currentLine,strong:P.purple,accent:P.purple,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:P.purple,fg:P.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:P.currentLine,fg:P.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:P.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:P.purple},ghost:{bg:"transparent",fg:P.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:P.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:P.comment},menu:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:P.currentLine,border:P.comment,tab:{fg:P.comment,activeFg:P.foreground,activeBg:P.background,hoverFg:"#E8E8E2",indicator:P.purple}},dropdown:{bg:P.currentLine,border:P.comment,item:{fg:P.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:P.currentLine,fg:P.foreground,placeholder:P.comment,border:P.comment,focusBorder:P.purple,invalidBorder:P.red},checkbox:{bg:P.currentLine,border:P.comment,checkColor:P.foreground,checkedBg:P.purple},radio:{bg:P.currentLine,dotColor:P.purple,border:P.comment,checkedBorder:P.purple},tooltip:{bg:"#4D4F5F",fg:P.foreground},modal:{bg:P.currentLine,border:P.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:P.comment,fg:P.foreground},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.currentLine,selectedBg:"#4D4F5F",fg:P.foreground}},header:{default:{bg:P.currentLine,fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.purple,fg:P.foreground,titleFg:P.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:P.foreground,titleFg:P.foreground,subtitleFg:P.comment,border:"#565869"},success:{bg:P.green,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:P.yellow,fg:P.background,titleFg:P.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.currentLine,fg:P.comment},primary:{bg:P.purple,fg:P.foreground},info:{bg:P.cyan,fg:P.background},success:{bg:P.green,fg:P.background},warning:{bg:P.yellow,fg:P.background},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.background,titleFg:P.foreground,subtitleFg:P.comment,border:P.comment},primary:{bg:P.background,titleFg:P.purple,subtitleFg:P.comment,border:P.purple},secondary:{bg:P.background,titleFg:"#E8E8E2",subtitleFg:P.comment,border:P.currentLine}},appshell:{bg:"#21222C",dividerFg:P.comment,sidebarBg:P.background,asideBg:P.background},collapsible:{default:{headerBg:P.currentLine,headerFg:P.foreground,contentBg:P.background,border:P.comment,iconFg:P.comment},primary:{headerBg:"#4D4F5F",headerFg:P.purple,contentBg:P.background,border:P.purple,iconFg:P.purple},secondary:{headerBg:"#4D4F5F",headerFg:P.foreground,contentBg:P.currentLine,border:"#565869",iconFg:P.comment}},commandPalette:{bg:P.currentLine,border:P.comment,inputBg:P.background,inputFg:P.foreground,inputPlaceholder:P.comment,itemFg:P.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:P.foreground,highlightFg:P.purple,categoryFg:P.comment},splitPanel:{bg:P.background,dividerBg:P.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:P.purple,border:P.comment,titleFg:P.comment},toast:{success:{bg:no.success[900],fg:no.success[100],border:P.green,iconFg:P.green},error:{bg:no.danger[900],fg:no.danger[100],border:P.red,iconFg:P.red},warning:{bg:no.warning[900],fg:no.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.background,fg:P.foreground,titleBarBg:P.currentLine,titleBarFg:P.foreground,border:P.comment,buttonFg:P.comment,closeFg:P.red},primary:{bg:P.background,fg:P.foreground,titleBarBg:P.purple,titleBarFg:P.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:P.foreground},success:{bg:P.background,fg:P.foreground,titleBarBg:P.green,titleBarFg:P.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},warning:{bg:P.background,fg:P.foreground,titleBarBg:P.yellow,titleBarFg:P.background,border:P.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:P.background},danger:{bg:P.background,fg:P.foreground,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={nord0:"#2E3440",nord1:"#3B4252",nord2:"#434C5E",nord3:"#4C566A",nord4:"#D8DEE9",nord5:"#E5E9F0",nord6:"#ECEFF4",nord7:"#8FBCBB",nord8:"#88C0D0",nord9:"#81A1C1",nord10:"#5E81AC",nord11:"#BF616A",nord12:"#D08770",nord13:"#EBCB8B",nord14:"#A3BE8C",nord15:"#B48EAD"},oo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:E.nord8,400:E.nord8,500:E.nord8,600:E.nord9,700:E.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:E.nord14,500:E.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:E.nord13,400:E.nord13,500:E.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:E.nord11,500:E.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:E.nord6,100:E.nord5,200:E.nord4,300:"#A3ADB8",400:"#7A8694",500:E.nord3,600:E.nord2,700:E.nord1,800:E.nord0,900:"#242933"}},YR={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:oo,background:{lowest:"#242933",base:E.nord0,subtle:E.nord1,surface:E.nord2,raised:E.nord3,elevated:"#5E6779",popover:E.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:E.nord6,secondary:E.nord5,muted:E.nord4,disabled:E.nord3,inverse:{base:E.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:E.nord14,warning:E.nord13,critical:E.nord11,info:E.nord9,highlight:E.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.nord8,ring:{color:E.nord8,width:2}},disabled:{opacity:.4,bg:E.nord1,fg:E.nord3},selected:{bg:E.nord1,fg:E.nord6}},borders:{default:E.nord3,subtle:E.nord1,strong:E.nord4,accent:E.nord8,danger:E.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:E.nord8,fg:E.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:E.nord2,fg:E.nord6,hoverBg:E.nord3,activeBg:E.nord1,border:"transparent"},outline:{bg:"transparent",fg:E.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:E.nord8},ghost:{bg:"transparent",fg:E.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.nord1,headerBg:E.nord2,footerBg:E.nord2,border:E.nord3},menu:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,activeBg:E.nord3,selectedBg:E.nord2,disabledFg:E.nord3}},tabs:{bg:E.nord1,border:E.nord3,tab:{fg:E.nord4,activeFg:E.nord6,activeBg:E.nord0,hoverFg:E.nord5,indicator:E.nord8}},dropdown:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,selectedBg:E.nord3}},input:{bg:E.nord1,fg:E.nord6,placeholder:E.nord4,border:E.nord3,focusBorder:E.nord8,invalidBorder:E.nord11},checkbox:{bg:E.nord1,border:E.nord3,checkColor:E.nord0,checkedBg:E.nord8},radio:{bg:E.nord1,dotColor:E.nord8,border:E.nord3,checkedBorder:E.nord8},tooltip:{bg:E.nord2,fg:E.nord6},modal:{bg:E.nord1,border:E.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:E.nord3,fg:E.nord6},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.nord1,selectedBg:E.nord2,fg:E.nord6}},header:{default:{bg:E.nord1,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord8,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:E.nord9},secondary:{bg:E.nord2,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},success:{bg:E.nord14,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:E.nord13,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:E.nord12},danger:{bg:E.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:E.nord1,fg:E.nord4},primary:{bg:E.nord8,fg:E.nord0},info:{bg:E.nord9,fg:"#ffffff"},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},page:{default:{bg:E.nord0,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord0,titleFg:E.nord8,subtitleFg:E.nord4,border:E.nord8},secondary:{bg:E.nord0,titleFg:E.nord5,subtitleFg:E.nord4,border:E.nord1}},appshell:{bg:"#242933",dividerFg:E.nord3,sidebarBg:E.nord0,asideBg:E.nord0},collapsible:{default:{headerBg:E.nord1,headerFg:E.nord6,contentBg:E.nord0,border:E.nord3,iconFg:E.nord4},primary:{headerBg:E.nord2,headerFg:E.nord8,contentBg:E.nord0,border:E.nord8,iconFg:E.nord8},secondary:{headerBg:E.nord2,headerFg:E.nord6,contentBg:E.nord1,border:E.nord3,iconFg:E.nord4}},commandPalette:{bg:E.nord1,border:E.nord3,inputBg:E.nord0,inputFg:E.nord6,inputPlaceholder:E.nord4,itemFg:E.nord6,itemHoverBg:E.nord2,itemSelectedBg:E.nord3,itemSelectedFg:E.nord6,highlightFg:E.nord8,categoryFg:E.nord4},splitPanel:{bg:E.nord0,dividerBg:E.nord3,dividerHoverBg:E.nord2,dividerActiveBg:E.nord8,border:E.nord3,titleFg:E.nord4},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:oo.danger[900],fg:oo.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:oo.warning[900],fg:oo.warning[100],border:E.nord13,iconFg:E.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.nord9,iconFg:E.nord9}},window:{default:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord1,titleBarFg:E.nord6,border:E.nord3,buttonFg:E.nord4,closeFg:E.nord11},primary:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord8,titleBarFg:E.nord0,border:E.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},success:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord14,titleBarFg:E.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},warning:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord13,titleBarFg:E.nord0,border:E.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},danger:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},so={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:S.blue,500:S.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:S.green,500:S.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:S.yellow,500:S.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.red,500:S.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.base3,100:S.base2,200:S.base1,300:S.base0,400:S.base00,500:S.base01,600:"#4A5A60",700:S.base02,800:S.base03,900:"#001E26"}},QR={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:so,background:{lowest:"#001E26",base:S.base03,subtle:S.base02,surface:"#094652",raised:"#0B5A66",elevated:S.base01,popover:S.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.base0,secondary:S.base1,muted:S.base00,disabled:S.base01,inverse:{base:S.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:S.green,warning:S.yellow,critical:S.red,info:S.cyan,highlight:S.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.blue,ring:{color:S.blue,width:2}},disabled:{opacity:.4,bg:S.base02,fg:S.base01},selected:{bg:S.base02,fg:S.base1}},borders:{default:S.base01,subtle:S.base02,strong:S.base0,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:S.base02,fg:S.base1,hoverBg:"#094652",activeBg:S.base03,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.base02,headerBg:"#094652",footerBg:"#094652",border:S.base01},menu:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:S.base01}},tabs:{bg:S.base02,border:S.base01,tab:{fg:S.base00,activeFg:S.base1,activeBg:S.base03,hoverFg:S.base0,indicator:S.blue}},dropdown:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:S.base02,fg:S.base0,placeholder:S.base00,border:S.base01,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.base02,border:S.base01,checkColor:S.base3,checkedBg:S.blue},radio:{bg:S.base02,dotColor:S.blue,border:S.base01,checkedBorder:S.blue},tooltip:{bg:"#094652",fg:S.base1},modal:{bg:S.base02,border:S.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.base01,fg:S.base1},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.base02,selectedBg:"#094652",fg:S.base0}},header:{default:{bg:S.base02,fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.blue,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:"#0B5A66"},success:{bg:S.green,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.base03,titleFg:S.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.base02,fg:S.base00},primary:{bg:S.blue,fg:S.base3},info:{bg:S.cyan,fg:S.base03},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.base03,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.base03,titleFg:S.blue,subtitleFg:S.base00,border:S.blue},secondary:{bg:S.base03,titleFg:S.base0,subtitleFg:S.base00,border:S.base02}},appshell:{bg:"#001E26",dividerFg:S.base01,sidebarBg:S.base03,asideBg:S.base03},collapsible:{default:{headerBg:S.base02,headerFg:S.base1,contentBg:S.base03,border:S.base01,iconFg:S.base00},primary:{headerBg:"#094652",headerFg:S.blue,contentBg:S.base03,border:S.blue,iconFg:S.blue},secondary:{headerBg:"#094652",headerFg:S.base1,contentBg:S.base02,border:"#0B5A66",iconFg:S.base00}},commandPalette:{bg:S.base02,border:S.base01,inputBg:S.base03,inputFg:S.base0,inputPlaceholder:S.base00,itemFg:S.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:S.base1,highlightFg:S.blue,categoryFg:S.base00},splitPanel:{bg:S.base03,dividerBg:S.base01,dividerHoverBg:"#094652",dividerActiveBg:S.blue,border:S.base01,titleFg:S.base00},toast:{success:{bg:so.success[900],fg:so.success[100],border:S.green,iconFg:S.green},error:{bg:so.danger[900],fg:so.danger[100],border:S.red,iconFg:S.red},warning:{bg:so.warning[900],fg:so.warning[100],border:S.yellow,iconFg:S.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.cyan,iconFg:S.cyan}},window:{default:{bg:S.base03,fg:S.base0,titleBarBg:S.base02,titleBarFg:S.base1,border:S.base01,buttonFg:S.base00,closeFg:S.red},primary:{bg:S.base03,fg:S.base0,titleBarBg:S.blue,titleBarFg:S.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},success:{bg:S.base03,fg:S.base0,titleBarBg:S.green,titleBarFg:S.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},warning:{bg:S.base03,fg:S.base0,titleBarBg:S.yellow,titleBarFg:S.base03,border:S.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:S.base03},danger:{bg:S.base03,fg:S.base0,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},io={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:He[50],100:He[100],200:He[200],300:He[300],400:He[400],500:He[500],600:He[600],700:He[700],800:He[800],900:He[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:_.red,500:_.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:_.fg0,100:_.fg1,200:_.fg2,300:_.fg3,400:_.fg4,500:_.gray,600:_.bg4,700:_.bg3,800:_.bg2,900:_.bg1}},XR={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:io,background:{lowest:_.bg0_h,base:_.bg0,subtle:_.bg1,surface:_.bg2,raised:_.bg3,elevated:_.bg4,popover:_.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.fg1,secondary:_.fg2,muted:_.gray,disabled:_.bg3,inverse:{base:_.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.blue,highlight:_.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.green,ring:{color:_.green,width:2}},disabled:{opacity:.4,bg:_.bg1,fg:_.bg3},selected:{bg:_.bg2,fg:_.fg1}},borders:{default:_.bg3,subtle:_.bg2,strong:_.gray,accent:_.green,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.green,fg:_.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:_.bg2,fg:_.fg1,hoverBg:_.bg3,activeBg:_.bg1,border:"transparent"},outline:{bg:"transparent",fg:_.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:_.green},ghost:{bg:"transparent",fg:_.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.bg1,headerBg:_.bg2,footerBg:_.bg2,border:_.bg3},menu:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,activeBg:_.bg3,selectedBg:_.bg2,disabledFg:_.bg3}},tabs:{bg:_.bg1,border:_.bg3,tab:{fg:_.gray,activeFg:_.fg1,activeBg:_.bg0,hoverFg:_.fg2,indicator:_.green}},dropdown:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,selectedBg:_.bg3}},input:{bg:_.bg1,fg:_.fg1,placeholder:_.gray,border:_.bg3,focusBorder:_.green,invalidBorder:_.red},checkbox:{bg:_.bg1,border:_.bg3,checkColor:_.bg0,checkedBg:_.green},radio:{bg:_.bg1,dotColor:_.green,border:_.bg3,checkedBorder:_.green},tooltip:{bg:_.bg2,fg:_.fg1},modal:{bg:_.bg1,border:_.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.bg3,fg:_.fg1},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.bg1,selectedBg:_.bg2,fg:_.fg1}},header:{default:{bg:_.bg1,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:_.bg2,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},success:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:_.yellow,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:_.orange},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:_.bg1,fg:_.gray},primary:{bg:_.green,fg:_.bg0},info:{bg:_.blue,fg:_.bg0},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.bg0,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.bg0,titleFg:_.green,subtitleFg:_.gray,border:_.green},secondary:{bg:_.bg0,titleFg:_.fg2,subtitleFg:_.gray,border:_.bg2}},appshell:{bg:_.bg0_h,dividerFg:_.bg3,sidebarBg:_.bg0,asideBg:_.bg0},collapsible:{default:{headerBg:_.bg1,headerFg:_.fg1,contentBg:_.bg0,border:_.bg3,iconFg:_.gray},primary:{headerBg:_.bg2,headerFg:_.green,contentBg:_.bg0,border:_.green,iconFg:_.green},secondary:{headerBg:_.bg2,headerFg:_.fg1,contentBg:_.bg1,border:_.bg3,iconFg:_.gray}},commandPalette:{bg:_.bg1,border:_.bg3,inputBg:_.bg0,inputFg:_.fg1,inputPlaceholder:_.gray,itemFg:_.fg1,itemHoverBg:_.bg2,itemSelectedBg:_.bg3,itemSelectedFg:_.fg1,highlightFg:_.green,categoryFg:_.gray},splitPanel:{bg:_.bg0,dividerBg:_.bg3,dividerHoverBg:_.bg2,dividerActiveBg:_.green,border:_.bg3,titleFg:_.gray},toast:{success:{bg:io.success[900],fg:io.success[100],border:_.green,iconFg:_.green},error:{bg:io.danger[900],fg:io.danger[100],border:_.red,iconFg:_.red},warning:{bg:io.warning[900],fg:io.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.blue,iconFg:_.blue}},window:{default:{bg:_.bg0,fg:_.fg1,titleBarBg:_.bg1,titleBarFg:_.fg1,border:_.bg3,buttonFg:_.gray,closeFg:_.red},primary:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},success:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},warning:{bg:_.bg0,fg:_.fg1,titleBarBg:_.yellow,titleBarFg:_.bg0,border:_.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},danger:{bg:_.bg0,fg:_.fg1,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={bg:"#1A1B26",bgDark:"#16161E",bgHighlight:"#24283B",bgPopup:"#2F3549",fg:"#A9B1D6",fgDark:"#9AA5CE",blue:"#7AA2F7",cyan:"#7DCFFF",green:"#9ECE6A",magenta:"#BB9AF7",orange:"#FF9E64",purple:"#9D7CD8",red:"#F7768E",teal:"#73DACA",yellow:"#E0AF68",comment:"#565F89",dark3:"#414868",dark5:"#737AA2"},ao={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:v.blue,500:v.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:v.green,500:v.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:v.yellow,500:v.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:v.red,500:v.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},ZR={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:ao,background:{lowest:v.bgDark,base:v.bg,subtle:v.bgHighlight,surface:v.bgPopup,raised:v.dark3,elevated:v.comment,popover:v.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:v.fg,secondary:v.fgDark,muted:v.comment,disabled:v.dark3,inverse:{base:v.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:v.green,warning:v.yellow,critical:v.red,info:v.cyan,highlight:v.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.blue,ring:{color:v.blue,width:2}},disabled:{opacity:.4,bg:v.bgHighlight,fg:v.dark3},selected:{bg:v.bgHighlight,fg:v.fg}},borders:{default:v.dark3,subtle:v.bgHighlight,strong:v.comment,accent:v.blue,danger:v.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:v.blue,fg:v.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:v.bgHighlight,fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,border:"transparent"},outline:{bg:"transparent",fg:v.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:v.blue},ghost:{bg:"transparent",fg:v.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.bgHighlight,headerBg:v.bgPopup,footerBg:v.bgPopup,border:v.dark3},menu:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,selectedBg:v.bgPopup,disabledFg:v.dark3}},tabs:{bg:v.bgHighlight,border:v.dark3,tab:{fg:v.comment,activeFg:v.fg,activeBg:v.bg,hoverFg:v.fgDark,indicator:v.blue}},dropdown:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,selectedBg:v.dark3}},input:{bg:v.bgHighlight,fg:v.fg,placeholder:v.comment,border:v.dark3,focusBorder:v.blue,invalidBorder:v.red},checkbox:{bg:v.bgHighlight,border:v.dark3,checkColor:v.bg,checkedBg:v.blue},radio:{bg:v.bgHighlight,dotColor:v.blue,border:v.dark3,checkedBorder:v.blue},tooltip:{bg:v.bgPopup,fg:v.fg},modal:{bg:v.bgHighlight,border:v.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:v.dark3,fg:v.fg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.bgHighlight,selectedBg:v.bgPopup,fg:v.fg}},header:{default:{bg:v.bgHighlight,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.blue,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:v.bgPopup,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},success:{bg:v.green,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:v.yellow,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:v.orange},danger:{bg:v.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:v.bgHighlight,fg:v.comment},primary:{bg:v.blue,fg:v.bg},info:{bg:v.cyan,fg:v.bg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},page:{default:{bg:v.bg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.bg,titleFg:v.blue,subtitleFg:v.comment,border:v.blue},secondary:{bg:v.bg,titleFg:v.fgDark,subtitleFg:v.comment,border:v.bgHighlight}},appshell:{bg:v.bgDark,dividerFg:v.dark3,sidebarBg:v.bg,asideBg:v.bg},collapsible:{default:{headerBg:v.bgHighlight,headerFg:v.fg,contentBg:v.bg,border:v.dark3,iconFg:v.comment},primary:{headerBg:v.bgPopup,headerFg:v.blue,contentBg:v.bg,border:v.blue,iconFg:v.blue},secondary:{headerBg:v.bgPopup,headerFg:v.fg,contentBg:v.bgHighlight,border:v.dark3,iconFg:v.comment}},commandPalette:{bg:v.bgHighlight,border:v.dark3,inputBg:v.bg,inputFg:v.fg,inputPlaceholder:v.comment,itemFg:v.fg,itemHoverBg:v.bgPopup,itemSelectedBg:v.dark3,itemSelectedFg:v.fg,highlightFg:v.blue,categoryFg:v.comment},splitPanel:{bg:v.bg,dividerBg:v.dark3,dividerHoverBg:v.bgPopup,dividerActiveBg:v.blue,border:v.dark3,titleFg:v.comment},toast:{success:{bg:ao.success[900],fg:ao.success[100],border:v.green,iconFg:v.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:v.red,iconFg:v.red},warning:{bg:ao.warning[900],fg:ao.warning[100],border:v.yellow,iconFg:v.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.cyan,iconFg:v.cyan}},window:{default:{bg:v.bg,fg:v.fg,titleBarBg:v.bgHighlight,titleBarFg:v.fg,border:v.dark3,buttonFg:v.comment,closeFg:v.red},primary:{bg:v.bg,fg:v.fg,titleBarBg:v.blue,titleBarFg:v.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},success:{bg:v.bg,fg:v.fg,titleBarBg:v.green,titleBarFg:v.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},warning:{bg:v.bg,fg:v.fg,titleBarBg:v.yellow,titleBarFg:v.bg,border:v.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},danger:{bg:v.bg,fg:v.fg,titleBarBg:v.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},lo={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:x.mauve,500:x.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.green,500:x.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:x.yellow,500:x.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:x.red,500:x.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:x.text,100:x.subtext1,200:x.subtext0,300:x.overlay2,400:x.overlay1,500:x.overlay0,600:x.surface2,700:x.surface1,800:x.surface0,900:x.base}},e_={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:lo,background:{lowest:x.crust,base:x.base,subtle:x.surface0,surface:x.surface1,raised:x.surface2,elevated:x.overlay0,popover:x.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.text,secondary:x.subtext1,muted:x.overlay0,disabled:x.surface2,inverse:{base:x.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.sky,highlight:x.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.mauve,ring:{color:x.mauve,width:2}},disabled:{opacity:.4,bg:x.surface0,fg:x.surface2},selected:{bg:x.surface0,fg:x.text}},borders:{default:x.overlay0,subtle:x.surface1,strong:x.subtext1,accent:x.mauve,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.mauve,fg:x.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:x.surface0,fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,border:"transparent"},outline:{bg:"transparent",fg:x.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:x.mauve},ghost:{bg:"transparent",fg:x.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.surface0,headerBg:x.surface1,footerBg:x.surface1,border:x.overlay0},menu:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,selectedBg:x.surface1,disabledFg:x.surface2}},tabs:{bg:x.surface0,border:x.overlay0,tab:{fg:x.overlay0,activeFg:x.text,activeBg:x.base,hoverFg:x.subtext1,indicator:x.mauve}},dropdown:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,selectedBg:x.surface2}},input:{bg:x.surface0,fg:x.text,placeholder:x.overlay0,border:x.overlay0,focusBorder:x.mauve,invalidBorder:x.red},checkbox:{bg:x.surface0,border:x.overlay0,checkColor:x.base,checkedBg:x.mauve},radio:{bg:x.surface0,dotColor:x.mauve,border:x.overlay0,checkedBorder:x.mauve},tooltip:{bg:x.surface1,fg:x.text},modal:{bg:x.surface0,border:x.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.surface2,fg:x.text},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.surface0,selectedBg:x.surface1,fg:x.text}},header:{default:{bg:x.surface0,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.mauve,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:x.surface1,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.surface2},success:{bg:x.green,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:x.yellow,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:x.peach},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:x.surface0,fg:x.overlay0},primary:{bg:x.mauve,fg:x.base},info:{bg:x.sky,fg:x.base},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.base,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.base,titleFg:x.mauve,subtitleFg:x.overlay0,border:x.mauve},secondary:{bg:x.base,titleFg:x.subtext1,subtitleFg:x.overlay0,border:x.surface0}},appshell:{bg:x.crust,dividerFg:x.overlay0,sidebarBg:x.base,asideBg:x.base},collapsible:{default:{headerBg:x.surface0,headerFg:x.text,contentBg:x.base,border:x.overlay0,iconFg:x.overlay0},primary:{headerBg:x.surface1,headerFg:x.mauve,contentBg:x.base,border:x.mauve,iconFg:x.mauve},secondary:{headerBg:x.surface1,headerFg:x.text,contentBg:x.surface0,border:x.surface2,iconFg:x.overlay0}},commandPalette:{bg:x.surface0,border:x.overlay0,inputBg:x.base,inputFg:x.text,inputPlaceholder:x.overlay0,itemFg:x.text,itemHoverBg:x.surface1,itemSelectedBg:x.surface2,itemSelectedFg:x.text,highlightFg:x.mauve,categoryFg:x.overlay0},splitPanel:{bg:x.base,dividerBg:x.overlay0,dividerHoverBg:x.surface1,dividerActiveBg:x.mauve,border:x.overlay0,titleFg:x.overlay0},toast:{success:{bg:lo.success[900],fg:lo.success[100],border:x.green,iconFg:x.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:x.red,iconFg:x.red},warning:{bg:lo.warning[900],fg:lo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.sky,iconFg:x.sky}},window:{default:{bg:x.base,fg:x.text,titleBarBg:x.surface0,titleBarFg:x.text,border:x.overlay0,buttonFg:x.overlay0,closeFg:x.red},primary:{bg:x.base,fg:x.text,titleBarBg:x.mauve,titleBarFg:x.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},success:{bg:x.base,fg:x.text,titleBarBg:x.green,titleBarFg:x.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},warning:{bg:x.base,fg:x.text,titleBarBg:x.yellow,titleBarFg:x.base,border:x.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},danger:{bg:x.base,fg:x.text,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var co={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ce[50],100:ce[100],200:ce[200],300:ce[300],400:ce[400],500:ce[500],600:ce[600],700:ce[700],800:ce[800],900:ce[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},t_={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:co,background:{lowest:"#000000",base:"#000000",subtle:m[950],surface:m[900],raised:m[800],elevated:m[700],popover:m[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:m[100],muted:m[300],disabled:m[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:he[400],warning:ge[400],critical:ce[400],info:Ze[400],highlight:te[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:te[400],ring:{color:te[400],width:3}},disabled:{opacity:.5,bg:m[900],fg:m[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:m[500],subtle:m[700],strong:m[300],accent:te[400],danger:ce[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:te[500],fg:"#ffffff",hoverBg:te[400],activeBg:te[600],border:te[300]},secondary:{bg:m[800],fg:"#ffffff",hoverBg:m[700],activeBg:m[900],border:m[500]},outline:{bg:"transparent",fg:te[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:te[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:m[950],headerBg:m[900],footerBg:m[900],border:m[500]},menu:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],activeBg:te[800],selectedBg:te[900],disabledFg:m[500]}},tabs:{bg:m[950],border:m[500],tab:{fg:m[300],activeFg:"#ffffff",activeBg:m[800],hoverFg:m[100],indicator:te[400]}},dropdown:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:m[400],border:m[500],focusBorder:te[400],invalidBorder:ce[400]},checkbox:{bg:"#000000",border:m[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:m[400],checkedBorder:te[400]},tooltip:{bg:m[800],fg:"#ffffff"},modal:{bg:m[950],border:m[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:m[700],fg:"#ffffff"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:m[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:m[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:m[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},success:{bg:he[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:he[300]},warning:{bg:ge[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[600]},danger:{bg:ce[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ce[300]}},statusbar:{default:{bg:m[950],fg:m[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Ze[500],fg:"#000000"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ce[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:m[300],border:te[400]},secondary:{bg:"#000000",titleFg:m[100],subtitleFg:m[400],border:m[700]}},appshell:{bg:"#000000",dividerFg:m[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:m[950],headerFg:"#ffffff",contentBg:"#000000",border:m[500],iconFg:m[300]},primary:{headerBg:m[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:m[900],headerFg:"#ffffff",contentBg:m[950],border:m[500],iconFg:m[300]}},commandPalette:{bg:m[950],border:m[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:m[400],itemFg:"#ffffff",itemHoverBg:m[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:m[400]},splitPanel:{bg:"#000000",dividerBg:m[500],dividerHoverBg:m[400],dividerActiveBg:te[400],border:m[500],titleFg:m[300]},toast:{success:{bg:co.success[900],fg:co.success[100],border:he[400],iconFg:he[400]},error:{bg:co.danger[900],fg:co.danger[100],border:ce[400],iconFg:ce[400]},warning:{bg:co.warning[900],fg:co.warning[100],border:ge[400],iconFg:ge[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Ze[400],iconFg:Ze[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:m[950],titleBarFg:"#ffffff",border:m[500],buttonFg:m[300],closeFg:ce[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:te[500],titleBarFg:"#ffffff",border:te[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:he[500],titleBarFg:"#000000",border:he[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[400],titleBarFg:"#000000",border:ge[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ce[500],titleBarFg:"#ffffff",border:ce[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var NL={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]}},r_={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:NL,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 o_=Symbol("tuiuiu.theme-runtime-state");function n_(){let[e,t]=hr(Gp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function GL(e){if(e.id===0)return n_();let t=Mt(o_,n_),[r,n]=hr(is(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function s_(){let e=Ge();return Oe(o_,()=>GL(e),e)}function i_(){return is(s_().currentTheme)}var WL={dark:Gp,light:VR,monokai:zR,dracula:JR,nord:YR,solarizedDark:QR,gruvbox:XR,tokyoNight:ZR,catppuccin:e_,highContrastDark:t_,monochrome:r_},R9=Object.keys(WL);function HL(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 Rt(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("#")&&HL(e)>.4?"black":"white"}function UL(e,t=500){let r=KR[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var qL={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=>Rt(e.palette.primary[500]),"primary-foreground":e=>Rt(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=>Rt(e.palette.secondary[500]),"secondary-foreground":e=>Rt(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=>Rt(e.accents.positive),"success-foreground":e=>Rt(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=>Rt(e.accents.warning),"warning-foreground":e=>Rt(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=>Rt(e.accents.critical),"danger-foreground":e=>Rt(e.accents.critical),errorForeground:e=>Rt(e.accents.critical),destructiveForeground:e=>Rt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>Rt(e.accents.info),"info-foreground":e=>Rt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>Rt(e.palette.primary[400]),"accent-foreground":e=>Rt(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 a_(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=is(s_().currentTheme),r=qL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return UL(o,i)}return e}var KL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},l_=Symbol("tuiuiu.perf-inspector-runtime-state");function VL(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function d_(e){let t=e.id===0?null:Mt(l_,()=>d_(Mr())),r=VL(t?.config??KL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function c_(){let e=Ge();return Oe(l_,()=>d_(e),e)}function zL(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function JL(e,t){let r=XL().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 YL(e,t){e.ring.length!==e.config.maxFrames&&JL(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 QL(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 u_(e,t={}){let r=c_(),n=zL(e),o=Math.max(0,n-r.config.budget.frameMs),s=QL(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;lR({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(YL(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function XL(){let e=c_(),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 ZL={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function uo(e,t){return kR(e,t,ZL)}function Wp(e){wR(e)}function Tn(e,t){xR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),u_(e,{renderer:t.renderer})}var ej=.4,tj=64;function po(){return typeof performance<"u"?performance.now():Date.now()}var p_=new WeakMap;function rj(){let e=i_(),t=p_.get(e);return t||(t=new Map,p_.set(e,t)),t}function nj(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&&oj(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 oj(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 h_(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 m_(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 sj(e,t,r){let n=e.map(s=>m_(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(!(h_(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 ij(e,t,r){let n=new Map;for(let i of e){let a=m_(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 b_(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new Ei(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function h(F){U(t.columns||80,t.rows||24);let W=uo(F,{width:s,height:i});R(W)}function R(F){U(F.info.viewport.width,F.info.viewport.height),G(F),Zo(F.layout),ai(),c=F.root,u=F}function T(){l=!0,c?h(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Ei(s,i),l=!0}function D(){!r&&d&&(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=po(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=mj(u,F),Ae=$r(),Ee=WR(Ae),we=HR(Ae),J=_e=>{let Ce=po();t.write(_e),q+=po()-Ce,oe+=typeof _e=="string"?Buffer.byteLength(_e):_e.byteLength};if(!l&&n&&u){let{renderRects:_e,diffRects:Ce}=lj(u.drawCommands,F.drawCommands,s,i);if(At(F,"dirtyRectCount",_e.length),At(F,"diffRectCount",Ce.length),_e.length===0){pe&&J(pe),y=0,At(F,"patchCount",0),At(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}let ve=dj(_e);if(!(_e.length>tj||ve>Z*ej)){Ee&&J(Ee),cj(se,_e),pj(F.drawCommands,_e,se,F.reservedRegions);let Se=ae.diffRects(se,Ce);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,At(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=jp(Se,s,!0);J(fe),g++}we&&J(we),At(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}}Ee&&J(Ee),se.clear(),w_(F.drawCommands,se,F.reservedRegions);let de=a.swap();if(y=de.length,At(F,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let _e=Al(a.getFrontBuffer());pe&&J(pe),J("\x1B[H"),J(_e),f++,l=!1,we&&J(we),At(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"});return}if(pe&&J(pe),de.length>0){let _e=jp(de,s,!0);J(_e),g++}l=!1,we&&J(we),At(F,"outputByteCount",oe),it(F,"outputWriteMs",q),it(F,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(F,{renderer:"delta"})}return{render:h,renderFrame:R,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function aj(e){if(e.maxWidth<=0||e.text.length===0)return{x:e.x,y:e.y,width:0,height:0};let t=0,r=-1,n=Yn(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,be(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function Hp(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:aj(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 lj(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&&nj(a,l)||(a&&o.push(Hp(a)),l&&o.push(Hp(l)))}return{renderRects:sj(o,r,n),diffRects:ij(o,r,n)}}function dj(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function cj(e,t){let r=Nr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function y_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function yr(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)||y_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function uj(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)&&!y_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function k_(e,t,r){switch(e.type){case"box":fj(e,t,r);break;case"text":v_(e,t,r);break;case"terminal-image":gj(e,t);break}}function pj(e,t,r,n){for(let o of e){let s=Hp(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(h_(s,i)){k_(o,r,n);break}}}}function w_(e,t,r){for(let n of e)k_(n,t,r)}function R_(e,t=new Gr(e.info.viewport.width,e.info.viewport.height)){return w_(e.drawCommands,t,e.reservedRegions),t}function fj(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:y,clip:h}=e,R=a?fo(a):void 0,T=c?fo(c):void 0,$=f?fo(f):T;if(R||l!==" "){let D=d&&d!=="none"?1:0,M=n+D,N=o+D,U=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let F=0;F<G;F++)uj(t,r,M,N+F,U,l,void 0,R,{},h)}if(d&&d!=="none"){let D=Bp[d]??Bp.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;yr(t,r,n,o,W,T,void 0,M,h);for(let q=1;q<s-1;q++)yr(t,r,n+q,o,D.top,T,void 0,M,h);if(s>1){let q=F?D.topRight:D.top;yr(t,r,n+s-1,o,q,T,void 0,M,h)}if(p&&s>4){let q=s-4,ae=` ${Zr(jk(p),q,{truncationCharacter:""})} `,se=be(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ae=0,Ee=pe;for(;Ae<ae.length&&Ee<n+s-1;){let we=Jn(ae,Ae);if(!we)break;Ae=we.nextIndex;let J=be(we.symbol);J<=0||Ee+J>n+s-1||(yr(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&&yr(t,r,n,o+W,D.left,T,void 0,M,h),F&&s>1&&yr(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;yr(t,r,n,o+i-1,W,T,void 0,M,h);for(let q=1;q<s-1;q++)yr(t,r,n+q,o+i-1,D.bottom,T,void 0,M,h);if(s>1){let q=F?D.bottomRight:D.bottom;yr(t,r,n+s-1,o+i-1,q,T,void 0,M,h)}}}}function gj(e,t){e.cellRender&&v_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:E_(e),style:{},clip:e.clip},t,[])}function __(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 x_(e){let t=__(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function vi(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${x_(e)}:${e.x}:${e.y}`)}function cs(e){return[vi(e),e.x,e.y,x_(e)].join(":")}function E_(e){let t=__(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:bl(e.protocol,e.source,t)}function f_(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 hj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[vi(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(vi(s));if(!i||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${yl("kitty")}\x1B8`}}return o}function mj(e,t){let r=f_(e),n=f_(t),o=r.map(cs).join("|"),s=n.map(cs).join("|");if(e&&o===s)return"";let i=hj(r,n),a=new Map(r.map(l=>[vi(l),l]));for(let l of n){let d=a.get(vi(l));d&&cs(d)===cs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=E_(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 bj(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 yj(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 g_={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function kj(e,t,r,n={}){let o=[],s=t,i=r,a={...n},l="",d=0;for(;d<e.length;){if(e[d]==="\x1B"){let c=zn(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let y=p[g].split(":"),h=Number(y[0]||0);if(y.length>1){if(h===4){let R=Number(y[1]||0);R in g_&&(a.underline=g_[R])}else if(h===38||h===48||h===58){let R=bj(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}=yj(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 v_(e,t,r){let{x:n,y:o,maxWidth:s,text:i,style:a,inheritedBackgroundColor:l}=e;if(s<=0)return;let d=e.prebuiltAnsi===!0,c=d?void 0:a.color?fo(a.color):void 0,u=d?void 0:a.backgroundColor?fo(a.backgroundColor):l?fo(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?fo(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Yn(i,s,a.wrap);if(g){let y=kj(f.join(`
|
|
197
197
|
`),c,u,p),h=0,R=0;for(let T of y){let $=0;for(;$<T.text.length;){let D=Jn(T.text,$);if(!D)break;let M=D.symbol;if(M===`
|
|
198
|
-
`){R++,h=0,$=D.nextIndex;continue}let N=be(M);N>0&&(
|
|
198
|
+
`){R++,h=0,$=D.nextIndex;continue}let N=be(M);N>0&&(yr(t,r,n+h,o+R,M,T.fg,T.bg,T.attrs,e.clip),h+=N),$=D.nextIndex}}}else for(let y=0;y<f.length;y++){let h=0,R=0;for(;R<f[y].length;){let T=Jn(f[y],R);if(!T)break;let $=T.symbol;if(h>=s)break;let D=be($);D>0&&(yr(t,r,n+h,o+y,$,c,u,p,e.clip),h+=D),R=T.nextIndex}}}function fo(e){let t=rj(),r=t.get(e);if(r)return r;let n=a_(e);return t.set(e,n),n}var G9=Symbol("tuiuiu.delta-renderer-state");function S_(){return typeof performance<"u"?performance.now():Date.now()}function P_(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=P_(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function wj(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 qp(e,t={}){let r=S_(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=P_(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);R_(e,p);let g=Al(p,n),f=xj(e,o);return it(e,"ansiRenderMs",S_()-r),f+g}function A_(e,t,r){let n=wj(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=uo(e,{width:n.width,height:s});return qp(i,{fullHeight:n.fullHeight})}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 D_(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}:${D_(e)}:${e.x}:${e.y}`)}function ps(e){return[Si(e),e.x,e.y,D_(e)].join(":")}function Rj(e){let t=C_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:bl(e.protocol,e.source,t)}function T_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Up(e,t){if(!Lw(t))return e;let r=$r();return r.multiplexer?Cl(e,r.multiplexer):e}function _j(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||ps(s)!==ps(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Up(`\x1B7\x1B[H${os.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Up(`\x1B7\x1B[H${yl("kitty")}\x1B8`,"kitty")}}return o}function xj(e,t){let r=T_(e);if(r.length===0&&!t)return"";let n=T_(t),o=n.map(ps).join("|"),s=r.map(ps).join("|");if(t&&o===s)return"";let i=_j(n,r),a=new Map(n.map(l=>[Si(l),l]));for(let l of r){let d=a.get(Si(l));if(d&&ps(d)===ps(l))continue;let c=Rj(l);i+=Up(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Ol(e){let{value:t,isNew:r}=pr(null);if(r||t===null){let n=ki(()=>hr(e)),o=Zt();return fr(o,n),n}return t}function O_(e){let{value:t,isNew:r}=pr(null);if(r||t===null){let n=ki(e);return fr(Zt(),n),n}return t}function Ti(e){let{value:t,isNew:r}=pr(null);if(r||t===null){let n=Zt(),o={effect:null,fn:e,dispose:null};fr(n,o);let s=new xn(()=>{let a=Br(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,Xn(i,n),i}else return t.fn=e,t.dispose}var aq=Symbol("tuiuiu.keyboard-protocol-runtime-state");function F_(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 Kp="\x1B[200~",fs="\x1B[201~",Ej="\x1B[I",vj="\x1B[O";function I_(){return"\x1B[?2004h"}function M_(){return"\x1B[?2004l"}function L_(){return"\x1B[?1004h"}function j_(){return"\x1B[?1004l"}function B_(e){return e===Ej?{focused:!0}:e===vj?{focused:!1}:null}function $_(){return"\x1B[?1049h"}function Vp(){return"\x1B[?1049l"}var Sj={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"},Tj=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),Pj=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),Aj=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Cj=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,Dj=/^\x1b\[27;(\d+);(\d+)~/;function Oj(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 G_(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function N_(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!G_(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 zp(e){let t=e.toString();Buffer.isBuffer(e)&&e[0]!==void 0&&e[0]>127&&e[1]===void 0&&(t="\x1B"+String.fromCharCode(e[0]-128));let r={upArrow:!1,downArrow:!1,leftArrow:!1,rightArrow:!1,pageUp:!1,pageDown:!1,home:!1,end:!1,insert:!1,return:!1,escape:!1,tab:!1,backspace:!1,delete:!1,clear:!1,ctrl:!1,shift:!1,meta:!1,option:!1,f1:!1,f2:!1,f3:!1,f4:!1,f5:!1,f6:!1,f7:!1,f8:!1,f9:!1,f10:!1,f11:!1,f12:!1},n="";if(t==="\r")return r.return=!0,{input:n,key:r,length:1};if(t===`
|
|
199
199
|
`)return r.return=!0,{input:n,key:r,length:1};if(t==="\x1B\r"||t===`\x1B
|
|
200
|
-
`)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=bj.exec(t);if(o){let d=S_(o[0]);if(d){r.shift=d.modifiers.shift,r.option=d.modifiers.alt,r.ctrl=d.modifiers.ctrl,r.meta=d.modifiers.alt||d.modifiers.super||d.modifiers.hyper||d.modifiers.meta,r.eventType=d.eventType;let c=o[0].split(";").length>=3;return n=F_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=yj.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(kj(r,d)&&I_(c))return n=F_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=mj.exec(t);if(i&&i.index===0){let d=[...t];d[0]==="\x1B"&&d[1]==="\x1B"&&(r.option=!0);let c=[i[1],i[2],i[4],i[6]].filter(Boolean).join(""),u=(i[3]||i[5]||1)-1;r.ctrl=!!(u&4),r.meta=!!(u&10),r.shift=!!(u&1);let p=fj[c];return p&&wj(r,p),gj.has(c)&&(r.shift=!0),hj.has(c)&&(r.ctrl=!0),{input:n,key:r,length:i[0].length}}let a=/^(?:)([a-zA-Z0-9])/.exec(t);if(a)return r.meta=!0,r.shift=/^[A-Z]$/.test(a[1]),n=a[1].toLowerCase(),{input:n,key:r,length:2};let l=/^[^\x00-\x1f\x7f]+/u.exec(t);if(l){let d=l[0];return d.length===1&&d>="A"&&d<="Z"?(r.shift=!0,n=d.toLowerCase(),{input:n,key:r,length:1}):(n=d,{input:n,key:r,length:d.length})}return{input:n,key:r,length:t.length}}function qp(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=ur(null);if(i||s===null){let c=function(){return Br(d)},a=(u,p,g)=>{let f=c();if(f&&f.registered)return f.handler(u,p,g)},l={handler:e,wrapper:a,registered:r,handlerId:null,priority:n,stopPropagation:o},d=Xt();pr(d,l),r&&(l.handlerId=al(a,{priority:n,stopPropagation:o})),Xn(()=>{l.handlerId!==null&&(ci(l.handlerId),l.handlerId=null),l.registered=!1},d)}else{let a=s.registered;s.handler=e,s.registered=r;let l=s.priority!==n,d=s.stopPropagation!==o;r&&!a?(s.priority=n,s.stopPropagation=o,s.handlerId=al(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(ci(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&ci(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=al(s.wrapper,{priority:n,stopPropagation:o}))}}function M_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(M_):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function yr(e,...t){return{type:"box",props:{...e},children:M_(t.length>0?t:e.children)}}function mt(e,...t){let r=t.filter(o=>o!=null),n=r.length>0?r.join(""):Array.isArray(e.children)?e.children.filter(o=>o!=null).join(""):String(e.children??"");return{type:"text",props:{...e,children:n},children:[]}}var Rj=0,L_=Symbol("tuiuiu.focus-zone-manager"),Kp=class e{zones=new Map;stack=[];activeZoneId=null;rootZoneId=null;maxStackDepth=10;listeners=new Set;constructor(){this.createZone({id:"__root__"}),this.rootZoneId="__root__",this.activeZoneId="__root__"}static getInstance(){return Oe(L_,()=>new e)}static reset(){nl(L_)}[Ir](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Rj++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function j_(){return Kp.getInstance()}var Pi=class{zoneManager=j_();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as _j}from"node:string_decoder";function B_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function xj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function Ej(e){let t=0;for(;t<e.length;){let r=e.indexOf("\x1B",t);if(r===-1)return-1;if(r+1>=e.length)return r;let n=e[r+1];if(n==="["){let o=r+2;for(;o<e.length;){let s=e.charCodeAt(o);if(s>=64&&s<=126)break;o++}if(o>=e.length)return r;t=o+1;continue}if(n==="]"||n==="P"||n==="^"||n==="_"){let o=r+2,s=!1;for(;o<e.length;){if(n==="]"&&e.charCodeAt(o)===7){o++,s=!0;break}if(e[o]==="\x1B"&&e[o+1]==="\\"){o+=2,s=!0;break}o++}if(!s)return r;t=o;continue}if(n==="O"&&r+2>=e.length)return r;t=Math.min(e.length,r+(n==="O"?3:2))}return-1}function vj(e){let t=Ej(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function Sj(e){let t=Math.min(e.length,ps.length-1);for(let r=t;r>0;r--)if(e.endsWith(ps.slice(0,r)))return r;return 0}var Vp=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new _j("utf8");pendingInput="";pasteBuffer=null;pasteBufferBytes=0;pasteOverflowed=!1;pasteTerminatorPrefix="";disposed=!1;constructor(t={}){this.maxPasteBytes=t.maxPasteBytes??1024*1024,this.maxPendingEscapeBytes=t.maxPendingEscapeBytes??4096,this.pasteHeuristicThreshold=t.pasteHeuristicThreshold??32,B_(this.maxPasteBytes,"maxPasteBytes"),B_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),xj(this.pasteHeuristicThreshold,"pasteHeuristicThreshold")}get status(){return{pendingEscapeBytes:Buffer.byteLength(this.pendingInput,"utf8"),pasteBytes:this.pasteBufferBytes,pasteActive:this.pasteBuffer!==null,pasteOverflowed:this.pasteOverflowed}}push(t){if(this.disposed)return[];let r=typeof t=="string"?t:this.decoder.write(t);if(!r&&!this.pendingInput)return[];let n=this.pendingInput+r;this.pendingInput="";let{complete:o,pending:s}=vj(n),i=o?this.processCompleteInput(o):[];return s&&(Buffer.byteLength(s,"utf8")>this.maxPendingEscapeBytes?i.push(...this.processCompleteInput(s)):this.pendingInput=s),i}flushPendingInput(){if(this.disposed||!this.pendingInput)return[];let t=this.pendingInput;return this.pendingInput="",this.processCompleteInput(t)}abortPaste(){let t=this.pasteBuffer!==null;this.pasteBuffer=null,this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="",t&&ps.startsWith(this.pendingInput)&&(this.pendingInput="")}dispose(){this.disposed||(this.disposed=!0,this.pendingInput="",this.abortPaste(),this.decoder.end())}appendPaste(t){if(this.pasteBuffer===null||this.pasteOverflowed||!t)return;let r=Buffer.byteLength(t,"utf8");if(this.pasteBufferBytes+r>this.maxPasteBytes){this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!0;return}this.pasteBuffer+=t,this.pasteBufferBytes+=r}consumeActivePaste(t,r){let n=this.pasteTerminatorPrefix+t;this.pasteTerminatorPrefix="";let o=n.indexOf(ps);if(o===-1){let s=Sj(n),i=n.length-s;return this.appendPaste(n.slice(0,i)),this.pasteTerminatorPrefix=n.slice(i),null}return this.appendPaste(n.slice(0,o)),!this.pasteOverflowed&&this.pasteBuffer!==null&&r.push({type:"paste",text:this.pasteBuffer,bracketed:!0}),this.abortPaste(),n.slice(o+ps.length)}processCompleteInput(t){let r=[],n=t;if(this.pasteBuffer!==null){let o=this.consumeActivePaste(n,r);if(o===null||(n=o,!n))return r}for(;n.length>0;){let o=n.indexOf(Wp);if(o!==-1){let s=n.slice(0,o);s&&r.push({type:"input",input:s}),this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="";let i=this.consumeActivePaste(n.slice(o+Wp.length),r);if(i===null)return r;n=i;continue}return n.length>this.pasteHeuristicThreshold&&!n.includes("\x1B")?(Buffer.byteLength(n,"utf8")<=this.maxPasteBytes&&r.push({type:"paste",text:n,bracketed:!1}),r):(r.push({type:"input",input:n}),r)}return r}};function $_(e={}){return new Vp(e)}function N_(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=y=>{typeof r.write=="function"&&r.write(y)},p=y=>{if(!(d||!t.isTTY||!t.setRawMode)){if(y){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(A_()),a&&o&&u(T_()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let y,h=R=>{try{R()}catch(T){y??=T}};if(c=0,h(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),h(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&h(()=>u(C_())),a&&o&&h(()=>u(P_())),y)throw y}}}function Il(){let e=tn();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Ol=new WeakSet,Fl=new WeakSet;function zp(e,t,r={}){let n=Zu();if(n&&tn(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(Ol.has(e)||Fl.has(t))throw new Error("[tuiuiu] A terminal stream cannot be shared by simultaneous apps. Use distinct stdin/stdout pairs or dispose the current owner first.");let u=jk();Ol.add(e),Fl.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,h=!1,R=o,T,$=qe(u,()=>(vR({stdout:t}),!!(e.isTTY&&p&&$r().focusEvents))),D=N_({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(J){Ol.delete(e),Fl.delete(t);try{D.dispose()}finally{Qo(u)}throw J}_p(u);let U=qe(u,()=>new Pi);sp(U,u);let G=$_({maxPasteBytes:a,maxPendingEscapeBytes:l}),F=null,W=null,q=()=>{F&&(clearTimeout(F),F=null)},oe=()=>{q(),F=setTimeout(()=>{G.abortPaste(),F=null},Math.max(0,c))},ae=J=>{let de=J;for(;de.length>0;){let _e=D_(de.slice(0,3));if(_e){$t(()=>{Rp(_e.focused)}),de=de.slice(3);continue}if(dp(de)){let fe=hi(de);if(fe){$t(()=>{os().handleMouseEvent(fe.event),sw(fe.event)}),de=de.slice(fe.length);continue}}let{input:Ce,key:ve,length:Re}=Up(de),Se=Re>0?Re:1;if(de=de.slice(Se),s&&ve.ctrl&&Ce==="c"){we();return}if(R){if(ve.tab&&!ve.shift){$t(()=>{U.focusNext()});continue}if(ve.tab&&ve.shift){$t(()=>{U.focusPrevious()});continue}if(ve.escape&&U.getActiveId()!==void 0){$t(()=>{U.blur()});continue}}$t(()=>{nw(Ce,ve)})}},se=J=>{for(let de of J){if(h)return;de.type==="paste"?$t(()=>{aw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{h||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!h&&(se(G.flushPendingInput()),Z())},Ae=en(u,J=>{h||(se(G.push(J)),Z())});e.on("data",Ae);let Ee=()=>{if(h)return;h=!0;let J=de=>{try{de()}catch(_e){console.error("[tuiuiu] Error while disposing app state:",_e)}};try{J(()=>e.off("data",Ae)),W&&(clearTimeout(W),W=null),q(),J(()=>G.dispose()),J(()=>D.dispose()),J(()=>il(u)),J(()=>_p(u)),J(()=>ow(u)),J(()=>lw(u)),J(()=>iw(u)),J(()=>ul(u)),J(()=>yw(u)),J(()=>sp(null,u)),J(()=>{tn(u)===T&&op(null,u)})}finally{Ol.delete(e),Fl.delete(t),g.clear(),Qo(u)}},we=J=>{if(f)return;f=!0,y=J;let de=[...g];g.clear(),Ee();for(let _e of de)try{_e(J)}catch(Ce){console.error("[tuiuiu] Error in app exit callback:",Ce)}J&&console.error(J),i&&process.exit(J?1:0)};return T={exit:we,dispose:Ee,stdin:e,stdout:t,writeLine:J=>{let de=zo(String(J)).replace(/\r\n?/g,`
|
|
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=F_(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=N_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=Dj.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(Oj(r,d)&&G_(c))return n=N_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=Aj.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=Sj[c];return p&&Fj(r,p),Tj.has(c)&&(r.shift=!0),Pj.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}=pr(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=Zt();fr(d,l),r&&(l.handlerId=ll(a,{priority:n,stopPropagation:o})),Xn(()=>{l.handlerId!==null&&(ci(l.handlerId),l.handlerId=null),l.registered=!1},d)}else{let a=s.registered;s.handler=e,s.registered=r;let l=s.priority!==n,d=s.stopPropagation!==o;r&&!a?(s.priority=n,s.stopPropagation=o,s.handlerId=ll(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(ci(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&ci(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=ll(s.wrapper,{priority:n,stopPropagation:o}))}}function W_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(W_):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function kr(e,...t){return{type:"box",props:{...e},children:W_(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 Ij=0,H_=Symbol("tuiuiu.focus-zone-manager"),Yp=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(H_,()=>new e)}static reset(){ol(H_)}[Ir](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Ij++}`,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 U_(){return Yp.getInstance()}var Pi=class{zoneManager=U_();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 Mj}from"node:string_decoder";function q_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function Lj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function jj(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 Bj(e){let t=jj(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function $j(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 Mj("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,q_(this.maxPasteBytes,"maxPasteBytes"),q_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),Lj(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}=Bj(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=$j(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(Kp);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+Kp.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 K_(e={}){return new Qp(e)}function V_(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(L_()),a&&o&&u(I_()))},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(j_())),a&&o&&h(()=>u(M_())),y)throw y}}}function Ml(){let e=tn();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Fl=new WeakSet,Il=new WeakSet;function Xp(e,t,r={}){let n=np();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(Fl.has(e)||Il.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=Uk();Fl.add(e),Il.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,h=!1,R=o,T,$=qe(u,()=>(OR({stdout:t}),!!(e.isTTY&&p&&$r().focusEvents))),D=V_({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(J){Fl.delete(e),Il.delete(t);try{D.dispose()}finally{Xo(u)}throw J}Sp(u);let U=qe(u,()=>new Pi);dp(U,u);let G=K_({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=B_(de.slice(0,3));if(_e){$t(()=>{vp(_e.focused)}),de=de.slice(3);continue}if(fp(de)){let fe=hi(de);if(fe){$t(()=>{ss().handleMouseEvent(fe.event),pw(fe.event)}),de=de.slice(fe.length);continue}}let{input:Ce,key:ve,length:Re}=zp(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(()=>{cw(Ce,ve)})}},se=J=>{for(let de of J){if(h)return;de.type==="paste"?$t(()=>{gw(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(()=>al(u)),J(()=>Sp(u)),J(()=>uw(u)),J(()=>hw(u)),J(()=>fw(u)),J(()=>pl(u)),J(()=>vw(u)),J(()=>dp(null,u)),J(()=>{tn(u)===T&&lp(null,u)})}finally{Fl.delete(e),Il.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
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:()=>
|
|
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:()=>mr(u),enqueueExternalUpdate:J=>{$t(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},lp(T,u),T}function Zp(e){let t=tn();t&&(t.clearScreen=e)}function Ll(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
|
|
204
|
+
`)}))}function jl(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 ef(){let[e,t]=O_(()=>hr(IR()));return Ti(()=>MR(n=>{t(n)})),e()}function tf(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=pr(null);if(i||s===null){let a=Zt(),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 fr(a,l),Xn(l.stop,a),n&&(o&&e(),l.start()),{start:l.start,stop:l.stop,isRunning:l.isRunning}}else return s.callback=e,s.delay=t,n!==s.enabled&&(s.enabled=n,n?s.start():s.stop()),{start:s.start,stop:s.stop,isRunning:s.isRunning}}var wr="\x1B[",rf=`${wr}H`,Ai=`${wr}J`,Bl=`${wr}K`,z_=e=>{let t="";for(let r=0;r<e;r++)t+=wr+"2K",r<e-1&&(t+=wr+"1A");return e>0&&(t+="\r"),t},J_=e=>e>0?`${wr}${e}A`:"",Nj=`${wr}1E`,Gj=`${wr}2K`;function Wj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${wr}${n+1}H`:rf,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=>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($+
|
|
207
|
-
`+
|
|
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($+Bl):y.push($)}let h=s-f,R="";if(h>0)for(let T=0;T<h;T++)R+=`
|
|
207
|
+
`+Bl;o=u,s=f,i=g,e.write(l+y.join(`
|
|
208
208
|
`)+R+`
|
|
209
|
-
`+Ai)};return d.clear=()=>{e.write(l+Ai),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(
|
|
209
|
+
`+Ai)};return d.clear=()=>{e.write(l+Ai),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=>be(p))},d}function
|
|
211
|
+
`,s=u.length,i=u.map(p=>be(p))},d}function Hj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${wr}${n+1}H`:rf,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+
|
|
215
|
-
`)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Ai),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(
|
|
214
|
+
`||s.length===0){e.write(a+z_(u)+c),s=c,o=p;return}let y=[];g<u?y.push(z_(u-g+1),J_(f)):y.push(J_(u-1));for(let h=0;h<f;h++){if(p[h]===o[h]){y.push(Nj);continue}y.push(Gj+p[h]+`
|
|
215
|
+
`)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Ai),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(ls(e),i=!1)},l.sync=d=>{let c=d+`
|
|
216
216
|
`;s=c,o=c.split(`
|
|
217
|
-
`)},l}function
|
|
218
|
-
`),p=u.length,g=c;if(g=u.map(y=>y+
|
|
217
|
+
`)},l}function Uj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${wr}${n+1}H`:rf,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+Bl).join(`
|
|
219
219
|
`),s>p){let y=s-p;for(let h=0;h<y;h++)g+=`
|
|
220
|
-
`+
|
|
221
|
-
`).length},l}function
|
|
220
|
+
`+Bl}e.write(a+g+Ai),o=c,s=p};return l.clear=()=>{e.write(a+Ai),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(ls(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
|
|
221
|
+
`).length},l}function nf(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?Uj(e,t):r?Hj(e,t):Wj(e,t)}function Y_(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 Q_=Symbol("tuiuiu.overlay-runtime-state");function qj(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function X_(e){let t=e.id===0?null:Mt(Q_,()=>X_(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](){qj(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function Kj(){let e=Ge();return Oe(Q_,()=>X_(e),e)}function of(e,t){let r=Kj();r.terminalSize={width:e,height:t}}function Z_(e){return"__reactive"in e}function Vj(e){let t=e.__reactive(),r=It(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function ex(e){let t=0,r=n=>{Z_(n)&&Vj(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function tx(e){let t=new Set,r=n=>{Z_(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function zj(e){return!!e.props.__static}function Jj(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${It(e.children??[])}`}function Yj(e){let t=[];function r(o){if(zj(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 sf={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},Qj={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function af(e,t={}){let r=t.screenMode?Qj[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=Xp(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=ap(D);if(!M)throw D.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,U=()=>{},G=[];try{U=bw(),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($_()),G.push(rn(()=>{n.write(Vp())})))}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=nf(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=nf(J,{showCursor:g,incremental:!1,fullScreen:T,topOffset:_e}),ve=""},nn=()=>{de.clear(),we(sf.clearTerminal),ve="",Fe.clear(),at=0,Se=[],Nt()},on=re=>{de.clear(),we(`${re}
|
|
222
222
|
`),at+=re.split(`
|
|
223
|
-
`).length,Nt()};qe(N,()=>
|
|
224
|
-
`).replace(/\n+$/u,"");Se.push(ke),X(
|
|
225
|
-
`))}Wt.staticNodes.length>0&&
|
|
226
|
-
`):de(tt);let ho=Ee();it(Ue,"outputWriteMs",ho.writeMs),
|
|
227
|
-
`),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(et&&(clearTimeout(et),et=null),Rt=null,ct=!1,nn(),W?X(()=>{_r()}):_r())}),writeLine:je}}var $j={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topMid:"\u2566",bottomMid:"\u2569",leftMid:"\u2560",rightMid:"\u2563",midMid:"\u256C"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topMid:"\u2533",bottomMid:"\u253B",leftMid:"\u2523",rightMid:"\u252B",midMid:"\u254B"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",topMid:"+",bottomMid:"+",leftMid:"+",rightMid:"+",midMid:"+"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",topMid:"",bottomMid:"",leftMid:"",rightMid:"",midMid:""}};function wr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function nf(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function Nj(e,t,r,n=1,o){let s=[],i=wr(n,1),a=o===void 0?void 0:wr(o,0);for(let d of e){let c=be(d.header);for(let p of t){let g=p[d.key];d.format&&(g=d.format(g,p));let f=String(g??"");c=Math.max(c,be(f))}let u=nf(d);d.width!==void 0?c=wr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):wr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,wr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,wr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:nf(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((y,h,R)=>y+(nf(e[R])>0?0:h),0),p=l.reduce((y,h)=>y+s[h.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let y=l.reduce((h,R)=>h+R.flex,0);for(let h of l){let R=Math.floor(h.flex/y*f);s[h.index]=s[h.index]+R,h.col.maxWidth!==void 0&&(s[h.index]=Math.min(s[h.index],wr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=wr(r,0),c=e.length*i*2,u=e.length+1,p=s.reduce((g,f)=>g+f,0)+c+u;if(p>d){let g=p-d,f=s.map((h,R)=>{let T=wr(e[R].minWidth,3);return Math.max(0,h-T)}),y=f.reduce((h,R)=>h+R,0);if(y>0)for(let h=0;h<s.length;h++){let R=Math.floor(f[h]/y*g);s[h]=Math.max(wr(e[h].minWidth,3),s[h]-R)}}}return s}function J_(e,t,r){let n=Zr(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=be(n);if(o>=t)return n;let s=t-o;switch(r){case"right":return" ".repeat(s)+n;case"center":let i=Math.floor(s/2),a=s-i;return" ".repeat(i)+n+" ".repeat(a);default:return n+" ".repeat(s)}}function Gj(e,t){return Zr(e,t,{truncationCharacter:"\u2026"})}function Wj(){try{return process.stdout.columns||80}catch{return 80}}function of(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,y=g?0:wr(d,1),h=$j[n],R=n!=="none",T=p??Wj(),$=Nj(t,r,u,y,T),D=[],M=(N,U,G,F)=>{if(!R)return yr({});let W=[N];for(let q=0;q<$.length;q++)W.push(F.repeat($[q]+y*2)),q<$.length-1&&W.push(U);return W.push(G),yr({flexDirection:"row"},mt({color:o},W.join("")))};if(R&&D.push(M(h.topLeft,h.topMid,h.topRight,h.horizontal)),s){let N=[];R&&N.push(mt({color:o},h.vertical));for(let U=0;U<t.length;U++){let G=t[U],F=" ".repeat(y),W=G.headerAlign??G.align??"left",q=J_(G.header,$[U],W);N.push(mt({color:o},F),mt({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":U+1},q),mt({color:o},F)),R&&N.push(mt({color:o},h.vertical))}D.push(yr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let N=0;N<r.length;N++){let U=r[N],G=a&&N%2===1,F=t.map((oe,ae)=>{let se=U[oe.key];oe.format&&(se=oe.format(se,U));let Z=String(se??"");if(oe.wrap)return Yn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Zr(pe,$[ae],{truncationCharacter:""}):Gj(pe,$[ae])]}),W=Math.max(1,...F.map(oe=>oe.length)),q=[];for(let oe=0;oe<W;oe++){let ae=[];R&&ae.push(mt({color:o},h.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(y),Ae=J_(F[se]?.[oe]??"",$[se],Z.align??"left"),Ee=Z.color??(G?l:void 0);ae.push(mt({color:o},pe),mt({color:Ee,dim:G,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Ae),mt({color:o},pe)),R&&ae.push(mt({color:o},h.vertical))}q.push(yr({flexDirection:"row"},...ae))}D.push(yr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}return R&&D.push(M(h.bottomLeft,h.bottomMid,h.bottomRight,h.horizontal)),yr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...D)}function Bl(e,t){return mt({wrap:"truncate-end"},t?Un(e):e)}function Hj(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>Bl(c,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(c=>({...c})),l=e.table.rows.map(c=>Object.fromEntries(Object.entries(c).map(([u,p])=>[u,r?Un(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>Bl(c,r)),of({columns:a,data:l,borderStyle:"none",availableWidth:d,maxWidth:d,compact:!1,padding:1,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!0,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(c=>Bl(c,r))]}function Uj(e){let t=Math.max(1,Math.floor(e.columns)),r=Math.max(1,Math.floor(e.rows)),n=Math.max(0,r-1),o=`q quit \xB7 r refresh \xB7 v deaths: ${e.showDeathDetails?"details":"summary"} \xB7 live 1s`,s=e.noColor===!0,i=e.frame.dashboard==null?e.frame.lines.map(a=>Bl(a,s)):Hj(e.frame.dashboard,t,s);return yr({flexDirection:"column",width:t,height:r,overflow:"hidden"},yr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function Y_(e){let t=!1;function r(){let o=Il(),s=Yp(),[i,a]=Dl({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Dl(e.initialShowDeathDetails),c=()=>{t||(t=!0,e.readFrame({columns:Math.max(1,s.columns||80),rows:Math.max(1,(s.rows||24)-1),showDeathDetails:l()}).then(a).catch(u=>{a({lines:[`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`]})}).finally(()=>{t=!1}))};return Ti(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Qp(c,e.refreshMs??1e3),qp((u,p)=>{let g=u.toLowerCase();if(g==="q"||p.escape){o.exit();return}if(g==="r"){c();return}g==="v"&&(d(f=>!f),setTimeout(c,0))}),Uj({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await rf(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as eB}from"node:child_process";import{readFileSync as tB}from"node:fs";import{dirname as rx,join as rB}from"node:path";import{createHash as qj}from"node:crypto";var Kj="project.name";function X_(e){let t=qo(e,Kj)?.trim();return t===void 0||t===""?void 0:t}var Vj=8,Z_="project";function ex(e){let t=Xj(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:zj(e.remoteUrl)??{name:Jj(e.checkoutPath,t),source:"basename"},o=Qj(t??sf(e.checkoutPath));return{name:n.name,slug:`${Yj(n.name)}-${o}`,hash:o,source:n.source}}function tx(e){let t=(e??"").trim();if(t==="")return;let r=t.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,""),n=/^[^/]*?:(?!\d)(.+)$/.exec(r),s=(n?n[1]:r.replace(/^[^/]*/,"")).replace(/\.git$/,"").split("/").map(i=>i.trim()).filter(i=>i!=="");if(s.length!==0)return s.slice(-2).join("/")}function zj(e){let t=tx(e);return t===void 0?void 0:{name:t,source:"remote"}}function Jj(e,t){let r=t===void 0?"":Q_(Zj(t));if(r!=="")return r;let n=Q_(sf(e));return n===""?Z_:n}function Yj(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?Z_:r}function Qj(e){return qj("sha256").update(e).digest("hex").slice(0,Vj)}function Xj(e){let t=sf(e??"");return t===""?void 0:t}function sf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function Q_(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function Zj(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var nB=2e3;function nx(e){return oB(e).name}function oB(e){let t=lf(e),r=af(e,["rev-parse","--absolute-git-dir"])??af(e,["rev-parse","--git-common-dir"]),n=af(e,["remote","get-url","origin"]);return ex({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function lf(e){let t=ek(e,rB(".red","config.yaml"));if(t==null)return{};let r;try{r=tB(t,"utf8")}catch{return{}}let n=X_(r),o=rx(rx(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function af(e,t){try{let r=eB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:nB}).trim();return r===""?void 0:r}catch{return}}function $l(e){let t=lf(e);return t.configText==null?{label:null}:{configText:t.configText,label:nx(e)}}async function df(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Qa(e),s=$l(t.cwd??process.cwd()),i=Xa({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
|
|
228
|
-
`);let a=t.paths??
|
|
223
|
+
`).length,Nt()};qe(N,()=>Zp(nn)),fe=new Promise((re,ke)=>{ie=re,xe=ke});let go=D.dispose;D.dispose=()=>{if(Re){go();return}Ct(),ie()};let ue=p>0?Math.ceil(1e3/p):0;qe(N,()=>{aR({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:ue>0?ue:16.67}),of(n.columns||80,n.rows||24)});let Gt=0,ct=!1,et=null,_t=null,lt=null,ut=0,xt=0,Et=0,Wr=0,De=null,Le=[],Q=!1,C=null;y&&(C=b_({stdout:J,showCursor:g,useDelta:!0})),R&&!s&&we(sf.clearTerminal);let w=ue>0?ue:16,L=Y_(()=>{Le.length!==0&&$t(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let ke of re)ke()}})},w);qe(N,()=>jl({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(),sw("component");try{Ce=F(),ex(Ce)}finally{iw(),se=performance.now()-re}},K=()=>qe(N,()=>{B(),xr()});function X(re){Re||(_t=re,!W&&ye())}function ye(){if(ct||Re||W||!_t)return;let ke=Date.now()-Gt,Ie=Gt===0||ke>=ue?0:ue-ke,Wt=()=>{let Dt=_t;if(_t=null,ct=!1,et=null,!Re)try{Dt?.()}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(xr)});qe(N,()=>Ll(je));function Be(){if(!h||Re||(h.pauseWhenUnfocused??!0)&&!mr())return;let ke=1e3/Math.max(1,h.updateFps),Ie=Math.max(0,Math.ceil(ke-ut));lt=setTimeout(tr,Ie)}function tr(){if(!(!h||Re))try{if((h.pauseWhenUnfocused??!0)&&!mr()){lt=null,ut=0,xt=Date.now();return}let ke=1e3/h.updateFps,Ie=h.maxCatchUpUpdates??5,Wt=Date.now();ut+=Wt-xt,xt=Wt;let Dt=0;for(;ut>=ke&&Dt<Ie;)ut-=ke,Et++,Wr+=ke,$t(()=>{h.onUpdate({deltaTimeMs:ke,step:Et,elapsedMs:Wr})}),Dt++;ut>=ke&&(ut%=ke),Be()}catch(re){lt=null,D.exit(re instanceof Error?re:new Error(String(re)))}}let _r=en(N,()=>{Re||(FR(),of(n.columns||80,n.rows||24),Gw(),X(K))});n.on("resize",_r);let Ve=()=>{};D.onExit(re=>qe(N,()=>{Ct(),Ve(),re?xe(re):ie()}));function xr(){if(Re||!Ce)return;Gt=Date.now();let re=Z??Date.now(),ke=n.columns||80,Ie=n.rows||24,Wt=Yj(Ce),Dt=()=>{C&&(C.cleanup(),C=null,we(sf.clearTerminal),Fe.clear(),at=0,Nt())};if(Se.length>0){Dt();let $e=Se;Se=[],on($e.join(`
|
|
225
|
+
`))}Wt.staticNodes.length>0&&Dt();let Ht=Math.max(1,Ie-at);if(C&&!s){let $e=uo(Ce,{width:ke,height:Ht});$e.metrics.runtimeStartAt=re,se!==void 0&&it($e,"vnodeEvalMs",se);let On=performance.now();Wp($e),wp($e.layout,at);let Ur=ss();Ur.hasClickableElements()&&!Q?(ts(),Q=!0):!Ur.hasClickableElements()&&Q&&(Zn(),Q=!1),it($e,"frameCommitMs",performance.now()-On),At($e,"reservedRegionCount",$e.reservedRegions.length),C.renderFrame($e),se=void 0,Z=void 0;return}let{staticNodes:sn,interactiveNode:Pn}=Wt,An=performance.now();Ae();for(let $e=0;$e<sn.length;$e++){let On=sn[$e],Ur=Jj(On,$e);if(!Fe.has(Ur)){let qr=A_(On,ke);qr.trim()&&(on(qr),Fe.add(Ur))}}let Cn=RR(),Ue=uo(Pn,{width:ke,height:Ht});Ue.metrics.runtimeStartAt=re,se!==void 0&&it(Ue,"vnodeEvalMs",se);let Dn=performance.now()-An;it(Ue,"staticRenderMs",Dn);let an=performance.now();Wp(Ue),wp(Ue.layout,at);let Hr=ss();Hr.hasClickableElements()&&!Q?(ts(),Q=!0):!Hr.hasClickableElements()&&Q&&(Zn(),Q=!1),it(Ue,"frameCommitMs",performance.now()-an),At(Ue,"reservedRegionCount",Ue.reservedRegions.length);let tt=qp(Ue,{fullHeight:T,previousFrame:Cn});if(tt===ve&&!s){let $e=Ee();it(Ue,"outputWriteMs",$e.writeMs),At(Ue,"outputByteCount",$e.bytes),Tn(Ue,{renderer:"ansi",runtimeStartAt:re}),Zo(Ue.layout),ai(),se=void 0,Z=void 0;return}s?we(tt+`
|
|
226
|
+
`):de(tt);let ho=Ee();it(Ue,"outputWriteMs",ho.writeMs),At(Ue,"outputByteCount",ho.bytes),Tn(Ue,{renderer:"ansi",runtimeStartAt:re}),Zo(Ue.layout),ai(),ve=tt,se=void 0,Z=void 0}function Ct(){return qe(N,rr)}function rr(){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)),_t=null,ct=!1,L.cancel(),Le=[],jl(null),Ll(null),Q&&(re(()=>Zn()),Q=!1),re(()=>n.off("resize",_r)),re(C?()=>C?.cleanup():()=>de.done()),$&&re(()=>{n.write(Vp())}),W=!1,re(()=>n.off("drain",pe)),re(()=>al(N)),Ce&&re(()=>tx(Ce)),re(()=>D.dispose());for(let ke of G.splice(0))re(ke);re(U),re(()=>_R()),re(()=>Xo(N))}try{Ve=qe(N,()=>eR(()=>{K()},{scheduler:X})),qe(N,()=>{h&&(xt=Date.now(),(h.pauseWhenUnfocused??!0)&&(De=_l(re=>{if(!(Re||!h)){if(!re){lt&&(clearTimeout(lt),lt=null),ut=0,xt=Date.now();return}ut=0,xt=Date.now(),lt||Be()}})),Be())})}catch(re){try{Ve()}catch(ke){console.error("[tuiuiu] Error while rolling back the render effect:",ke)}throw Ct(),re}return{rerender:re=>qe(N,()=>{F=()=>re,X(K)}),unmount:()=>qe(N,()=>{Ct(),Ve(),s||we(`
|
|
227
|
+
`),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(et&&(clearTimeout(et),et=null),_t=null,ct=!1,nn(),W?X(()=>{xr()}):xr())}),writeLine:je}}var Xj={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 Rr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function lf(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function Zj(e,t,r,n=1,o){let s=[],i=Rr(n,1),a=o===void 0?void 0:Rr(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=lf(d);d.width!==void 0?c=Rr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):Rr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,Rr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,Rr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:lf(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+(lf(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],Rr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=Rr(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=Rr(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(Rr(e[h].minWidth,3),s[h]-R)}}}return s}function rx(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 eB(e,t){return Zr(e,t,{truncationCharacter:"\u2026"})}function tB(){try{return process.stdout.columns||80}catch{return 80}}function df(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:Rr(d,1),h=Xj[n],R=n!=="none",T=p??tB(),$=Zj(t,r,u,y,T),D=[],M=(N,U,G,F)=>{if(!R)return kr({});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),kr({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=rx(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(kr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let N=0;N<r.length;N++){let U=r[N],G=a&&N%2===1,F=t.map((oe,ae)=>{let se=U[oe.key];oe.format&&(se=oe.format(se,U));let Z=String(se??"");if(oe.wrap)return Yn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Zr(pe,$[ae],{truncationCharacter:""}):eB(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=rx(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(kr({flexDirection:"row"},...ae))}D.push(kr({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)),kr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...D)}function $l(e,t){return mt({wrap:"truncate-end"},t?Un(e):e)}function rB(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>$l(c,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(c=>({...c})),l=e.table.rows.map(c=>Object.fromEntries(Object.entries(c).map(([u,p])=>[u,r?Un(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>$l(c,r)),df({columns:a,data:l,borderStyle:"none",availableWidth:d,maxWidth:d,compact:!1,padding:1,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!0,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(c=>$l(c,r))]}function nB(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=>$l(a,s)):rB(e.frame.dashboard,t,s);return kr({flexDirection:"column",width:t,height:r,overflow:"hidden"},kr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function nx(e){let t=!1;function r(){let o=Ml(),s=ef(),[i,a]=Ol({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Ol(e.initialShowDeathDetails),c=()=>{t||(t=!0,e.readFrame({columns:Math.max(1,s.columns||80),rows:Math.max(1,(s.rows||24)-1),showDeathDetails:l()}).then(a).catch(u=>{a({lines:[`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`]})}).finally(()=>{t=!1}))};return Ti(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),tf(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))}),nB({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await af(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as fB}from"node:child_process";import{readFileSync as gB}from"node:fs";import{dirname as dx,join as hB}from"node:path";import{createHash as oB}from"node:crypto";var sB="project.name";function sx(e){let t=Ko(e,sB)?.trim();return t===void 0||t===""?void 0:t}var iB=8,ix="project";function ax(e){let t=uB(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:aB(e.remoteUrl)??{name:lB(e.checkoutPath,t),source:"basename"},o=cB(t??cf(e.checkoutPath));return{name:n.name,slug:`${dB(n.name)}-${o}`,hash:o,source:n.source}}function lx(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 aB(e){let t=lx(e);return t===void 0?void 0:{name:t,source:"remote"}}function lB(e,t){let r=t===void 0?"":ox(pB(t));if(r!=="")return r;let n=ox(cf(e));return n===""?ix:n}function dB(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?ix:r}function cB(e){return oB("sha256").update(e).digest("hex").slice(0,iB)}function uB(e){let t=cf(e??"");return t===""?void 0:t}function cf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function ox(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function pB(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var mB=2e3;function cx(e){return bB(e).name}function bB(e){let t=pf(e),r=uf(e,["rev-parse","--absolute-git-dir"])??uf(e,["rev-parse","--git-common-dir"]),n=uf(e,["remote","get-url","origin"]);return ax({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function pf(e){let t=ak(e,hB(".red","config.yaml"));if(t==null)return{};let r;try{r=gB(t,"utf8")}catch{return{}}let n=sx(r),o=dx(dx(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function uf(e,t){try{let r=fB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:mB}).trim();return r===""?void 0:r}catch{return}}function Nl(e){let t=pf(e);return t.configText==null?{label:null}:{configText:t.configText,label:cx(e)}}async function ff(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Xa(e),s=Nl(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??ur(),l=t.readDashboard??nk,d=t.terminal===void 0?process.stdout.isTTY===!0:t.terminal===!0,c=(t.env??process.env).NO_COLOR!==void 0,u={...i.options.project==null?{}:{project:i.options.project},mode:i.options.mode,showDeathDetails:i.options.verbose},p=async(g,f=!0)=>{try{let y=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:y,lines:c?y.lines.map(Un):y.lines}}catch(y){let h=y instanceof Error?y.message:String(y);return f&&n(`redskilled dashboard: ${h}
|
|
229
229
|
`),{lines:[`redskilled unreachable \u2014 ${h}`]}}};if(!d){let g=await p({...u,...i.options.maxWidth==null?{}:{maxWidth:i.options.maxWidth}});return r(`${g.lines.join(`
|
|
230
230
|
`)}
|
|
231
|
-
`),0}return await(t.runTui??
|
|
231
|
+
`),0}return await(t.runTui??nx)({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 kB=`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
|
-
`,
|
|
245
|
+
`,wB={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
|
|
333
|
-
`:`${
|
|
334
|
-
`),0}if(
|
|
335
|
-
`);let p
|
|
336
|
-
`),0}var
|
|
337
|
-
`),0}function
|
|
338
|
-
`),o.running&&!o.stopped?1:0}async function
|
|
339
|
-
`),0;if(o==="install"){let s=await
|
|
340
|
-
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await
|
|
341
|
-
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function
|
|
342
|
-
`);let a;try{a=await
|
|
343
|
-
`),a=
|
|
332
|
+
`};function RB(e){return e==="--help"||e==="-h"||e==="help"}var _B={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)}},px="REDSKILLED_HOST_TOKEN";function Di(){try{let t=yB("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function fx(e=process.env,t=Di){let r=(e[px]??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 xB(e,t=process.env,r=Di,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...ux(e,t,r,n),armTransport:()=>ux(e,t,r,n)}}function EB(e,t=process.env,r=Di){let n=fx(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:Jc({token:n.token,...o?{origin:o}:{}})}}function ux(e,t=process.env,r=Di,n){let o=fx(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${px}, 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:Zb({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function vB(e){if(e[0]==="--version"||e[0]==="-v"){let o=hd("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
|
|
333
|
+
`:`${wg(o)}
|
|
334
|
+
`),0}if(RB(e[0]))return process.stdout.write(kB),0;let{command:t,args:r}=Eg(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(wB[t]),0;if(t==="serve"){let{values:o}=dn(r,_B),s=await sk(Ci()),i=ik({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=Gl(ir(Ci()),"state"),l=ba({path:Gl(a,"github","spend.toonl")}),d=xB(o,process.env,Di,l),c=EB(o),u=Ug({stateRoot:a});process.stderr.write(`${qg(u)}
|
|
335
|
+
`);let p=$g({lanePath:So(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g;try{g=await U0({paths:BB(o),idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??hd("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}})}catch(f){if(!(f instanceof zt))throw f;return p.uninstall(),0}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 CB(r);if(t==="statusline")return await OB(r);if(t==="dashboard")return await ff(r);if(t==="github-spend")return await TB(r);if(t==="unit")return await DB(r);if(t==="provision")return await IB(r);if(t==="reclaim")return await LB(r);let n=await ek(ur());return process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
336
|
+
`),0}var SB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function TB(e,t={}){let{values:r}=dn(e,SB,{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:PB(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:Gl(ir(t.homeDir??Ci()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${ot({version:c.version,origin:c.origin,window:{from:c.window.from,to:c.window.to},pool:c.pool,total_count:c.total_count,total_cost:c.total_cost,operations:c.operations.map(u=>({operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:u.count,cost:u.cost})),unreadable_records:c.unreadable_records})}
|
|
337
|
+
`),0}function PB(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 AB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function CB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,AB),o=await Z0(t.paths??ur(),{...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 DB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??ur(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(b0(t.unitIO??{}),null,2)}
|
|
339
|
+
`),0;if(o==="install"){let s=await h0(c0(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
|
|
340
|
+
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await m0(t.unitIO??{}),null,2)}
|
|
341
|
+
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function OB(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Xa(e),s=Nl(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 rk(t.paths??ur(),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=_u({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
|
|
344
344
|
`)}
|
|
345
|
-
`),0}var
|
|
346
|
-
`),u.verdict==="ok"?0:1}var
|
|
347
|
-
`),o.entries.some(s=>s.verdict==="failed")?1:0}function
|
|
348
|
-
`),process.exitCode=1})}export{
|
|
345
|
+
`),0}var FB={"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 IB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=dn(e,FB),o=t.paths??ur(),s=t.homeDir??Ci(),i=await Yu({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await wk(s),l;if(!n.check&&!n["no-start"])try{await qu(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await xk({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"]&&Ar(d.entry)?await Sk({configHome:t.configHome??jB(),unit:vk({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=_k(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 MB={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function LB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,MB),o=await Ak({...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 jB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:Gl(Ci(),".config")}function BB(e){let t=ur();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 $B=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if($B){let e=process.argv.slice(2);vB(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{px as REDSKILLED_HOST_TOKEN_ENV,kB as REDSKILLED_USAGE,ux as armRedskilledQueueTransport,fx as resolveRedskilledHostToken,EB as resolveServeGithubBalance,xB as resolveServeQueueDiscovery,ff as runDashboard,TB as runGithubSpend,IB as runProvision,LB as runReclaim,vB as runRedskilledCli,OB as runStatusline,CB as runStop,DB as runUnit};
|
|
349
349
|
/*! Bundled license information:
|
|
350
350
|
|
|
351
351
|
content-type/dist/index.js:
|