@reddb-io/red-skills 3.12.7 → 3.12.8
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 +328 -328
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +633 -635
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled.bundle.min.mjs +123 -123
- 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 zx=Object.create;var rd=Object.defineProperty;var Jx=Object.getOwnPropertyDescriptor;var Yx=Object.getOwnPropertyNames;var Qx=Object.getPrototypeOf,Xx=Object.prototype.hasOwnProperty;var Zx=(e,t)=>()=>(e&&(t=e(e=0)),t);var Gf=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),eE=(e,t)=>{for(var r in t)rd(e,r,{get:t[r],enumerable:!0})},tE=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Yx(t))!Xx.call(e,o)&&o!==r&&rd(e,o,{get:()=>t[o],enumerable:!(n=Jx(t,o))||n.enumerable});return e};var nd=(e,t,r)=>(r=e!=null?zx(Qx(e)):{},tE(t||!e||!e.__esModule?rd(r,"default",{value:e,enumerable:!0}):r,e));var hh={};eE(hh,{REDSKILLED_BIN_ENV:()=>zd,REDSKILLED_BUNDLE_ASSET:()=>Pr,REDSKILLED_ENTRY_UNRESOLVED:()=>Ts,RedskilledDaemonEntryError:()=>Ps,isRedskilledEntryPath:()=>Yd,isResolvedRedskilledEntry:()=>Ar,redskilledBundleCacheRoot:()=>ca,redskilledServeArgv:()=>dn,requireRedskilledEntry:()=>ua,resolveRedskilledEntry:()=>cn});import{existsSync as US,readdirSync as qS}from"node:fs";import{homedir as KS}from"node:os";import{basename as Vd,dirname as Kd,join as Vt,resolve as da}from"node:path";function Ar(e){return"command"in e}function dn(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 ca(e=process.env){return gh(e)}function cn(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??US,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[zd];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Yd(i))return a(da(i),"caller-entry");let d=[];for(let[c,u]of YS(i,t.rootDir,r,t.listDir??ZS))if(d.push(c),n(c))return a(c,u);return{diagnostic:Ts,searched:d,...i?{callerEntry:da(i)}:{}}}function ua(e={},t={}){let r=cn(e,t);if(Ar(r))return r;throw new Ps(r)}function Yd(e){let t=Vd(e);return t===Pr||Jd.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:JS(da(e))}function JS(e){let t=Kd(e);for(let r=0;r<4;r++){if(Vd(t)==="redskilled")return!0;let n=Kd(t);if(n===t)return!1;t=n}return!1}function*YS(e,t,r,n){if(e){let s=Kd(da(e));yield[Vt(s,Pr),"caller-sibling-bundle"];let i=VS.exec(Vd(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 zS){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=gh(r);yield[Vt(o,Pr),"bundle-cache"];for(let s of QS(o,n))yield[Vt(o,s),"bundle-cache"]}function gh(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vt(e.HOME||KS(),".cache");return Vt(t,"red-skills","bundles")}function QS(e,t){return t(e).filter(r=>Jd.test(r)).sort((r,n)=>XS(fh(n),fh(r)))}function fh(e){return Jd.exec(e)?.[1]??""}function XS(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 ZS(e){try{return qS(e)}catch{return[]}}var Pr,Ts,zd,Ps,VS,Jd,zS,Kr=Zx(()=>{"use strict";Pr="redskilled.bundle.min.mjs",Ts="redskilled-daemon-entry-unresolved",zd="REDSKILLED_BIN";Ps=class extends Error{code=Ts;searched;callerEntry;constructor(t){super(`${Ts}: 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)}};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
|
|
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
|
|
9
|
-
`),e.push(" order: ",
|
|
10
|
-
`),e.push(" discriminator: ",
|
|
6
|
+
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};VS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Jd=/^redskilled-(.+)\.bundle\.min\.mjs$/,zS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var Ec=Gf((_c,xc)=>{(function(e,t){typeof _c=="object"&&typeof xc<"u"?xc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(_c,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(J){return J&&J.default||J}var r=function(J,C,w={}){var F,L,B;for(F in C)B=C[F],w[F]=(L=J[F])!=null?L:B;return w},n=function(J,C,w={}){var F,L;for(F in J)L=J[F],C[F]!==void 0&&(w[F]=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,F;for(C=this._first,F=[];C!=null;)F.push((w=C,C=C.next,w.value));return F}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,F,L,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(F=w.prev)!=null?F.value:void 0,next:(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,F)=>this._addListener(w,"many",F),this.instance.once=(w,F)=>this._addListener(w,"once",F),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,F){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:F,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var F,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(xe){return K=xe,this.trigger("error",K),null}}}),(await Promise.all(L)).find(function(B){return B!=null}))}catch(B){return F=B,this.trigger("error",F),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var F,L,B;for(B=[],w=F=1,L=C;1<=L?F<=L:F>=L;w=1<=L?++F:--F)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,F,L;for(w=0,F=C.length;w<F;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,F,L,B,K,X,xe){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=xe,this.options=$.load(F,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,F,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(xe){return B=xe,this._onFailure(B,K,w,F,L)}}doExpire(C,w,F){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,F)}async _onFailure(C,w,F,L,B){var K,X;if(F())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,H;H=o,M=f,N=class{constructor(C,w,F){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),H.load(F,F,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,F,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,F=L!=null?Math.min(w,L-K):w,F>0))return this.storeOptions.reservoir+=F,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,F){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),H.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,F){var 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 F,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),F=this.strategyIsBlock()&&(B||this.isBlocked(L)),F&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:F,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,I,W;I=f,W=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,F;if(w=this._jobs[C],F=w+1,w!=null&&F<this.status.length)return this.counts[w]--,this.counts[F]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,F,L,B,K;if(C!=null){if(F=this.status.indexOf(C),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(w in L)K=L[w],K===F&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,F)=>(C[this.status[F]]=w,C),{})}};var 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,F,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(xe){return F=xe,function(){return L(F)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var F,L,B;return B=L=null,F=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:w,resolve:B,reject:L}),this._tryToRun(),F}};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."),ke=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Y=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,Re,De,ve,we,Se;Se=o,de=l,ve=Ee,De=ke,we=Y,Re=function(){class J{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=Ce,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 De(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var F;return(F=this.instances[w])!=null?F:(()=>{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 F,L;return L=this.instances[w],this.connection&&(F=await this.connection.__runCommand__(["del",...we.allKeys(`${this.id}-${w}`)])),L!=null&&(delete this.instances[w],await L.disconnect()),L!=null||F>0}limiters(){var w,F,L,B;F=this.instances,L=[];for(w in F)B=F[w],L.push({key:w,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,F,L,B,K,X,xe,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,F=9;w!==0;)for([je,L]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,xe=L.length;B<xe;B++)K=L[B],X.push(K.slice(Be,-F));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var F,L,B,K,X,xe;X=Date.now(),B=this.instances,K=[];for(L in B){xe=B[L];try{await xe._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){F=je,K.push(xe.Events.trigger("error",F))}}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 F;if(!this.sharedConnection)return(F=this.connection)!=null?F.disconnect(w):void 0}}return J.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},J}.call(e);var fe=Re,ie,_e,Fe;Fe=o,_e=l,ie=function(){class J{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new _e(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,F)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var F;return this._arr.push(w),F=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),F}}return J.prototype.defaults={maxTime:null,maxSize:null,Promise},J}.call(e);var at=ie,Gt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),tn=t(Ae),rn,go,ce,Wt,ct,Ze,_t,lt,ut,xt,Et,Gr=[].splice;Ze=10,go=5,Et=o,_t=p,Wt=D,ct=G,lt=Gt,ce=l,ut=q,xt=se,rn=function(){class J{constructor(w={},...F){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,F),Et.load(w,this.instanceDefaults,this),this._queues=new _t(Ze),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ce(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 J.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,F){if(!(w!=null&&typeof w=="object"&&F.length===0))throw new J.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,F,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(xe){return K=xe,this.Events.trigger("error",K)}}_run(w,F,L){var B,K,X;return F.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,F),K=this._free.bind(this,w,F),this._scheduled[w]={timeout:setTimeout(()=>F.doExecute(this._limiter,B,X,K),L),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire(B,X,K)},L+F.options.expiration):void 0,job:F}}_drainOne(w){return this._registerLock.schedule(()=>{var F,L,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:F}=B=X.first(),w!=null&&K.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:F,options:K}),L=this._randomIndex(),this._store.__register__(L,K.weight,K.expiration).then(({success:xe,wait:je,reservoir:Be})=>{var Lt;return this.Events.trigger("debug",`Drained ${K.id}`,{success:xe,args:F,options:K}),xe?(X.shift(),Lt=this.empty(),Lt&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",Lt),this._run(L,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(w,F=0){return this._drainOne(w).then(L=>{var B;return L!=null?(B=w!=null?w-L:w,this._drainAll(B,F+L)):this.Promise.resolve(F)}).catch(L=>this.Events.trigger("error",L))}_dropAllQueued(w){return this._queues.shiftAll(function(F){return F.doDrop({message:w})})}stop(w={}){var F,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,xe)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},F=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:Ze-1,weight:0},()=>L(1)),this._receive=function(B){return B._reject(new J.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new J.prototype.BottleneckError("stop() has already been called")),F}async _addToQueue(w){var F,L,B,K,X,xe,je;({args:F,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:F,options:K,error:B}),w.doDrop({error:B}),!1}return L?(w.doDrop(),!0):X&&(xe=je===J.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===J.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===J.prototype.strategy.OVERFLOW?w:void 0,xe?.doDrop(),xe==null||je===J.prototype.strategy.OVERFLOW)?(xe==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 J.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var F,L,B,K,X,xe,je;return typeof w[0]=="function"?(X=w,[L,...w]=X,[F]=Gr.call(w,-1),K=Et.load({},this.jobDefaults)):(xe=w,[K,L,...w]=xe,[F]=Gr.call(w,-1),K=Et.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(Lt,nn){return L(...Be,function(...Rr){return(Rr[0]!=null?nn:Lt)(Rr)})}),B=new Wt(je,w,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof F=="function"?F(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof F=="function"?F(...Be):void 0:typeof F=="function"?F(Be):void 0}),this._receive(B)}schedule(...w){var F,L,B;return typeof w[0]=="function"?([B,...w]=w,L={}):[L,B,...w]=w,F=new Wt(B,w,L,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(F),F.promise}wrap(w){var F,L;return F=this.schedule.bind(this),L=function(...B){return F(w.bind(this),...B)},L.withOptions=function(B,...K){return F(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 J.default=J,J.Events=ce,J.version=J.prototype.version=tn.version,J.strategy=J.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},J.BottleneckError=J.prototype.BottleneckError=f,J.Group=J.prototype.Group=fe,J.RedisConnection=J.prototype.RedisConnection=Ee,J.IORedisConnection=J.prototype.IORedisConnection=ke,J.Batcher=J.prototype.Batcher=at,J.prototype.jobDefaults={priority:go,weight:1,expiration:null,id:"<no-id>"},J.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:J.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},J.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},J.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},J.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},J.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},J}.call(e);var Ce=rn,Le=Ce;return Le})});var ub=Gf(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.format=xA;Ta.parse=EA;var wA=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,ib=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,RA=/[\\"]/g,_A=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,ab=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function xA(e){let{type:t,parameters:r}=e;if(!t||!_A.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!ib.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${PA(r[o])}`}return n}function EA(e,t){let r=e.length,n=Cc(e,0,r),o=n;n=Ac(e,n,r);let s=Dc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new ab:TA(e,n,r);return{type:i,parameters:a}}var lb=32,db=9,cb=59,vA=61,sb=34,SA=92;function TA(e,t,r){let n=new ab;e:for(;t<r;){t=Cc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===cb)continue e;if(s===vA){let i=Dc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Cc(e,t+1,r),t<r&&e.charCodeAt(t)===sb){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===sb){t=Ac(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===SA&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Ac(e,t,r),n[a]===void 0){let d=Dc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Ac(e,t,r){for(;t<r&&e.charCodeAt(t)!==cb;)t++;return t}function Cc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==lb&&n!==db)break;t++}return t}function Dc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==lb&&n!==db)break;r--}return r}function PA(e){if(ib.test(e))return e;if(wA.test(e))return`"${e.replace(RA,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as SB}from"node:child_process";import{homedir as Ii}from"node:os";import{join as zl}from"node:path";var Ro=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},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 Ro(e,t)}function Te(e,t){return new In(e,t)}function _o(e){return e instanceof In?e:e instanceof Ro?new In(e.line,e.reason):new In(0,String(e&&e.message?e.message:e))}var Wf=["type","kind","event"],Mn="|",Hf=new Set(["order","discriminator","rows","common"]);var Ve=",";function Vi(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 Kf(e,t);if(e.includes('"'))throw Er(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:rE(e)?Number(e):e}function rr(e,t){let r=e.trim();if(r.startsWith('"'))return[Kf(r,t),!0];if(r.includes('"')||/\s/.test(r))throw V(t,"expected non-empty field name");return[r,!1]}var Uf=/["\\\u0000-\u0008\u000a-\u001f]/g;function Kf(e,t){if(e.charCodeAt(0)!==34)throw Er(t);let r="",n=1;for(;n<e.length;){Uf.lastIndex=n;let o=Uf.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 Vf(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 nr(e,t,r){if(e==="")return[];let n=[],o=0,s=0;for(;s<e.length;){let i=e.indexOf('"',s),a=e.indexOf(t,s);if(a!==-1&&(i===-1||a<i))n.push(e.slice(o,a).trim()),o=a+1,s=a+1;else if(i!==-1)s=Vf(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function Tt(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=Vf(e,o+1,r)}return-1}function rE(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function nE(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function oE(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 Pt(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return oE(e);if(typeof e=="string")return iE(e,t);throw V(0,"not a primitive")}function sE(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return sE(e)?e:zi(e)}function iE(e,t){return od(e,t)?zi(e):e}function od(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||nE(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var qf=/["\\\u0000-\u001f]/g;function zi(e){let t='"',r=0;qf.lastIndex=0;let n;for(;(n=qf.exec(e))!==null;){let o=e.charCodeAt(n.index),s;o===34?s='\\"':o===92?s="\\\\":o===10?s="\\n":o===13?s="\\r":o===9?s="\\t":s=`\\u${o.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+s,r=n.index+1}return`${t}${e.slice(r)}"`}function or(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function zf(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 Jf(e,t){let r=[],n=!1;return Vi(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 Rs(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 Xf(e){if(!nt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=aE(n,1);if(o===void 0)return e;or(t,r,o)}return t}function aE(e,t){if(!nt(e)||!lE(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=dE(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(!Hf.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 sd(t);let f=d.get(u)??0,y=g[f];if(y===void 0)throw sd(t);return d.set(u,f+1),cE(n,u,a[p],y,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw sd(t);return c}function lE(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function dE(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=>gE(c,r));if(a.some(c=>c===""))throw bt(r);let l=fE(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 cE(e,t,r,n,o){let s={};or(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);or(s,i,a)}for(let[i,a]of Object.entries(uE(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);or(s,i,a)}return s}function uE(e,t){let r={};for(let[n,o]of Object.entries(e))pE(r,n.split("."),o,t);return Ji(r,t)}function pE(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 Ji(e,t){return Array.isArray(e)?e.map(r=>Ji(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 Ji(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Ji(n,t)])):e}function fE(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 gE(e,t){try{return decodeURIComponent(e)}catch{throw bt(t)}}function Yf(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 sd(e){return V(e,"cyclic array group length mismatch")}function eg(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=hE(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)kE(n,o,s);return n.join("")}function hE(e){if(!Array.isArray(e)||e.length===0||!e.every(nt))return;let t=mE(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=bE(r);if(n===void 0)return;let o=yE(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)&&!id(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=RE(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 mE(e){return Wf.find(t=>e.every(r=>typeof r[t]=="string"))}function bE(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(Yf).join(","),s=`cycle(${r.map(Yf).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function yE(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(!wE(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>vr(i[s])))break;r.push(s)}return r}function kE(e,t,r){e.push(ft(t),`:
|
|
9
|
+
`),e.push(" order: ",Pt(r.order.encoded,Mn),`
|
|
10
|
+
`),e.push(" discriminator: ",Pt(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 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)){
|
|
12
|
+
`),r.common.length>0&&Qf(e,"common",r.common,r.commonRows);for(let n of r.groups)Qf(e,n.label,n.fields,n.rows)}function Qf(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=>Pt(o[s],Mn)).join(Mn),`
|
|
14
|
+
`)}function wE(e){return e!==""&&ad(e)}function id(e,t,r,n=new Set){if(!ad(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)=>id(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(".")&&id(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function RE(e){let t=Object.keys(e[0]??{});if(e.every(r=>_E(Object.keys(r),t)))return t.every(ad)?t:void 0}function _E(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function ad(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function xo(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function Yi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=Tt(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=EE(p.slice(1,-1),u),g=dd(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 tg(e){let t=Tt(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=Ve;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=xE(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 xE(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(!rg(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(ng(n[l].path,n[d].path)||_s(n[l].path,n[d].path)||_s(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 EE(e,t){if(t!==Ve&&e.includes(Ve)&&(e.includes("[")||e.includes("{")))return ld(e,Ve,t);try{return ld(e,t,t)}catch(r){if(t!==Ve&&r.reason!=="duplicate key")return ld(e,Ve,t);throw r}}function ld(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=vE(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(rg(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=dd(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(ng(a[l].path,a[d].path)||_s(a[l].path,a[d].path)||_s(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function vE(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=Ve;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function dd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?dd(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Qi(e,t,r){return e.listDelimiter===void 0?qt(t,r):nr(t,e.listDelimiter,r).map(n=>qt(n,r))}function rg(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function ng(e,t){return e.length===t.length&&_s(e,t)}function _s(e,t){return t.every((r,n)=>e[n]===r)}function Xi(e,t){return V(t,e.reason??String(e.message))}function Dt(e,t){let r=zf(t),n=Jf(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("[")){Rs(o.content,o.number,r);let d;try{d=Yi(o.content,Tt(o.content,":",o.number))}catch(c){if(r.strict)throw Xi(c,o.number);d=void 0}if(d!==void 0)return PE(d,n,r)}if(s&&Tt(o.content,":",o.number)===-1)return qt(o.content.trim(),o.number);let i={index:0},a=ud(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Xf(a):a}function ud(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}=SE(e,t,r,n);cg(o,i,a,l,n,s.number)}return o}function SE(e,t,r,n){let o=e[t.index],s=o.content,i=Tt(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=Tt(a,"[",o.number),c=Tt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){Rs(a,o.number,n);let f;try{f=tg(a)}catch(h){if(n.strict)throw Xi(h,o.number);t.index+=1;let R=cd(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=TE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:y}}if(d!==-1){Rs(a,o.number,n);let f;try{f=Yi(a,i)}catch(h){if(n.strict)throw Xi(h,o.number);t.index+=1;let R=cd(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=pd(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=cd(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function cd(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?ud(e,t,r+1,s):{}}function TE(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=Tt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=rr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=nr(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw V(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{vo(u,p.path,Qi(p,c[g],i.number),o,i.number)}),cg(s,l,d,u,o,i.number),r.index+=1}return s}function PE(e,t,r){let n=t[0],o=Tt(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=pd(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 pd(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 AE(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 LE(e,r,n,o+1,s)}function AE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&IE(e.fieldTree))return CE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw xo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw V(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw V(l.number,"blank line inside array");if(!Eo(l.content,e.delimiter,l.number))break;let d=nr(l.content,e.delimiter,l.number);if(d.length!==t.length)throw V(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{vo(c,u.path,Qi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw xo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&Eo(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function CE(e,t,r,n,o){return og(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function og(e,t,r,n,o,s,i,a){let l=[],d=ig(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw xo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw V(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw V(u.number,"blank line inside array");if(!Eo(u.content,r,u.number))break;let p=nr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Zi(t),childTableFields:d},f=sg(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(FE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw xo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&Eo(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function sg(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=DE(d,u,t,r,n,o,s,i,a);vo(l,[d.key],p,a,r)}),l}function DE(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=Zi(e.children),u=r[s.cellIndex],p=lg(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+ME(t)):h){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,og(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return sg(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,Qi(e,d,n)}function ig(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=ag(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 ag(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u+=1){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!Eo(p.content,n,p.number))return;let g=nr(p.content,n,p.number),f=OE(t,r,g,n,o,l+1,i+1,a);if(f===void 0||o[f.nextIndex]?.depth>i)return;d+=f.consumedChildRows,l=f.nextIndex}let c=o[l];if(c!==void 0&&c.depth>=i&&Eo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function OE(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=lg(r[l]);if(p===void 0)return;l+=1;let g=ig(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=ag(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Zi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function FE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function lg(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function IE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Zi(e){return e.reduce((t,r)=>t+dg(r),0)}function dg(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Zi(e.children):1}function ME(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+dg(r),0)}function Eo(e,t,r){let n=Tt(e,":",r);if(n===-1)return!0;let o=Tt(e,t,r);return o===-1?!1:o<n}function LE(e,t,r,n,o){let s=[];for(;s.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw xo(t,r.index);if(a.depth>n)throw V(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw V(a.number,"blank line inside array");s.push(jE(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 jE(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=Tt(s,":",o.number);Rs(s,o.number,n);let a;try{a=Yi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return pd(a,l,e,t,r,n)}}if(Tt(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 ud(i,{index:0},r+1,n)}return t.index+=1,qt(s,o.number)}function cg(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(BE)){vo(e,i,n,o,s);return}}vo(e,[t],n,o,s)}function vo(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");or(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw V(o,"path expansion conflict");or(e,s,{})}else i||or(e,s,{});vo(e[s],t.slice(1),r,n,o)}function BE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Ve;if(![Ve,"|"," "].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=eg(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?md(s,void 0,e,0,!1,o):nt(e)?ug(s,e,0,o):s.push(Pt(e,n)),s.join("")}function So(e,t){e.push(" ".repeat(t*2))}function ug(e,t,r,n){Sr(r,0,n);for(let[o,s]of Object.entries(t))So(e,r),gd(e,o,s,r,n)}function gd(e,t,r,n,o){if(Sr(n,0,o),Array.isArray(r)){md(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?NE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",bd(o.delimiter),s.fields.map(i=>wd(i,o.delimiter)).join(o.delimiter),`}:
|
|
15
|
+
`);for(let[i,a]of Object.entries(r)){So(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>Rd(kd(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
|
+
`),ug(e,r,n+1,o);return}e.push(ft(t),": ",Pt(r,o.delimiter),`
|
|
18
|
+
`)}function md(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(vr)){
|
|
22
|
-
`);return}let i=o?void 0:
|
|
23
|
-
`);for(let a of r){
|
|
24
|
-
`),e.push(...l)}return}
|
|
25
|
-
`);for(let a of r)
|
|
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
|
|
34
|
-
`),
|
|
35
|
-
`)),e.positional&&e.positional.length>0){t.push(
|
|
36
|
-
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(
|
|
37
|
-
`),
|
|
38
|
-
`))}t.push(
|
|
39
|
-
`))}if(e.options&&Object.keys(e.options).length>0){t.push(
|
|
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,o),t}function
|
|
21
|
+
`);return}if(r.every(vr)){fd(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>Pt(a,s.delimiter)).join(s.delimiter)),e.push(`
|
|
22
|
+
`);return}let i=o?void 0:pg(r,s,n+1);if(i!==void 0){fd(e,t,r.length,i.fields,s.delimiter),e.push(`
|
|
23
|
+
`);for(let a of r){So(e,n+1);let l=[];e.push(i.paths.map(d=>Rd(kd(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
|
|
24
|
+
`),e.push(...l)}return}fd(e,t,r.length,void 0,s.delimiter),e.push(`
|
|
25
|
+
`);for(let a of r)So(e,n+1),$E(e,a,n+1,s)}function $E(e,t,r,n){if(Sr(r,0,n),Array.isArray(t)){e.push("- "),md(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("- "),gd(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))So(e,r+1),gd(e,s,i,r+1,n);return}e.push("- ",Pt(t,n.delimiter),`
|
|
27
|
+
`)}function fd(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),bd(o),"]"),n!==void 0&&e.push("{",n.map(s=>wd(s,o)).join(o),"}"),e.push(":")}function bd(e){return e===Ve?"":e}function pg(e,t,r){let n=GE(e,t);if(n!==void 0)return n;let o=hd(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:yd(o)}}function NE(e,t,r){let n=Object.values(e);if(!(n.length<2))return pg(n,t,r)}function hd(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=fg(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=hd(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=hd(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function GE(e,t){if(!t.objectArrayColumns)return;let r=fg(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function fg(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 yd(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}]:yd(r.children,n)})}function kd(e,t){let r=e;for(let n of t)r=r[n];return r}function wd(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${bd(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>wd(r,t)).join(t)}}`}function Rd(e,t,r,n,o,s){return t.childFields!==void 0?(WE(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>Pt(i,r)).join(r):t.listDelimiter===void 0?Pt(e,r):e.map(i=>HE(i,r,t.listDelimiter)).join(t.listDelimiter)}function WE(e,t,r,n,o){for(let s of t){So(e,o);let i=[];e.push(yd(r).map(a=>Rd(kd(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
|
|
28
|
+
`),e.push(...i)}}function HE(e,t,r){return typeof e!="string"?Pt(e,t):od(e,t)||e.includes(r)?zi(e):e}var Rg=[Ve,"|"," "];var _g=8,xg=/^[A-Za-z0-9_-]+$/,q$=new TextEncoder,K$=new TextDecoder;function VE(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 Eg(e,t){if(!xg.test(e))throw Te(t,"invalid tag")}function zE(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!xg.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 JE(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(!Rg.includes(i)&&i!=="")throw Te(t,"invalid header delimiter");let a=i===""?Ve: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),Eg(d,t),i!=="")throw Te(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Te(t,"invalid header");let c=l.slice(1,-2),u;try{u=nr(c,a,t).map(p=>rr(p,t)[0])}catch(p){throw _o(p)}if(u.length===0||u.some(p=>p===""))throw Te(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function YE(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 gg(e,t,r,n){let o;try{o=nr(e,t,n)}catch(s){throw _o(s)}if(o.length!==r)throw Te(n,"row arity mismatch");for(let s of o)try{qt(s,n)}catch(i){throw _o(i)}return o}function QE(e,t,r){let n={};return e.forEach((o,s)=>{try{or(n,o,qt(t[s],r))}catch(i){throw _o(i)}}),n}function XE(e,t,r){if(e.startsWith("- "))throw Te(t,"reserved line prefix");let n=VE(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=JE(e,t);if(o!==null)return o.continuation?(YE(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=zE(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:gg(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:gg(e,r.delimiter,r.fields.length,t)}}function ZE(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>=_g)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(Vi(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=XE(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 ZE(e).flatMap(t=>t.rows.map(r=>QE(t.fields,r,0)))}function ev(e){if(!Rg.includes(e))throw Te(0,"invalid header delimiter")}function hg(e,t,r=!1){return`[${`${r?"~":""}${e===Ve?"":e}`}]{${t}}:
|
|
29
|
+
`}function mg(e,t){return`[]<${e}>{${t}}:
|
|
30
|
+
`}function _d(e,t){return t.map(ft).join(e)}function tv(e){if(!Array.isArray(e)||e.length===0)throw Te(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=rr(String(t),0)}catch(n){throw _o(n)}if(r==="")throw Te(0,"TOONL header requires fields");return r})}function bg(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function yg(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Te(0,"TOONL continuation cadence must be positive")}function rv(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function kg(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 nv(e){return JSON.stringify([...e].sort())}function wg(e,t){let r=nv(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function yt({delimiter:e=Ve,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){ev(e),yg(r),yg(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=()=>rv(p,l,d)?(l=0,d=0,hg(e,s,!0)):"",y=h=>{Eg(h,0);let R=c.get(h);if(R===void 0){if(c.size>=_g)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=wg(kg(h),i),T="";(o===null||o.length!==R.length||o.some((M,N)=>M!==R[N]))&&(T+=g(),o=R,s=_d(e,o),a=0,l=0,d=0,T+=hg(e,s));let $=o.map(M=>Pt(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=tv(R),$=_d(Ve,T),D=y(h);return bg(D.fields,T)?"":(D.fields=T,mg(h,$))},pushTagged(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=y(h),$=wg(kg(R),T.fieldsByShape),D=_d(Ve,$),M=$.map(H=>Pt(R[H],Ve)),N="";return bg(T.fields,$)||(T.fields=$,N+=mg(h,D)),`${N}${h}:${M.join(Ve)}
|
|
33
|
+
`},end(){return u?"":(u=!0,g())}}}function xd(e){let t={app:e,version:ov(To("__RED_BUILD_VERSION__",()=>"3.12.8")??"0.0.0-dev"),gitSha:To("__RED_BUILD_GIT_SHA__",()=>"6f3f76e6f885b301566670224a0ec108382a5d9f")??"unknown",buildTime:To("__RED_BUILD_TIME__",()=>"2026-08-09T23:36:29-03:00")??"unknown",bundleAsset:To("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=To("__REDDB_SDK_VERSION__",()=>""),n=To("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function ov(e){return e.startsWith("v")?e.slice(1):e}function vg(e){return`${e.app} ${e.version} ${e.gitSha}`}function To(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Sg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},sv=/^[a-z][a-z0-9+.-]*:\/\//i;function iv(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 av(e=Sg){return Object.entries(e).map(([t,r])=>iv(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function lv(e){return/^-\d+(\.\d+)?$/.test(e)}function xs(e){return!(!e||e.startsWith("-")&&!lv(e))}function ea(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 Tg(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=>Tg(r.trim())):e}function Ln(e,t){switch(t){case"boolean":return dv(e);case"number":return cv(e);case"array":return e.split(",").map(r=>ea(r.trim()));case"string":default:return e}}function dv(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function cv(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 an(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function uv(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Ie(e,t){return{type:e,value:t}}function pv(e){let t=[],r=gv(e);if(t.push(Ie("section-header","Usage:"),Ie("text"," "),Ie("usage-text",r),Ie("newline",`
|
|
34
|
+
`),Ie("newline",`
|
|
35
|
+
`)),e.positional&&e.positional.length>0){t.push(Ie("section-header","Arguments:"),Ie("newline",`
|
|
36
|
+
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Ie("indent"," "),Ie("positional-name",`<${o}>`)),n.required||t.push(Ie("positional-optional"," (optional)")),t.push(Ie("newline",`
|
|
37
|
+
`),Ie("indent"," "),Ie("option-description",n.description),Ie("newline",`
|
|
38
|
+
`))}t.push(Ie("newline",`
|
|
39
|
+
`))}if(e.options&&Object.keys(e.options).length>0){t.push(Ie("section-header","Options:"),Ie("newline",`
|
|
40
|
+
`));let n=hv(e.options);t.push(...n)}return t}function fv(e,t){let r=pv(e);return uv(r,t)}function gv(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 hv(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(Ie("indent"," ")),r.push(Ie(o,d.flags)),d.type&&(r.push(Ie("text"," ")),r.push(Ie(s,d.type))),r.push(Ie("text",u)),r.push(Ie(a,d.desc)),d.default!==void 0&&(r.push(Ie("text"," ")),r.push(Ie(i,`(default: ${d.default})`))),r.push(Ie("newline",`
|
|
41
|
+
`))}return r}function Pg(e){let t=_v(e.options??{},e.autoShort??!1),r=av(e.separators??Sg);return{schema:e,parse(n){return mv(n,e,t,r)},help(){return fv(e,e.formatter)}}}function mv(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=wv(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!Tv(c)){l=Rv(c,l,e,o,r,t);continue}let u=bv(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?Tg(g):an(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 Ev(o,t,r),vv(o,t,a),Sv(o,t,r),o}function bv(e,t){if(sv.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(yv(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(kv(o,s,r))return{key:o,value:s,config:r}}}return null}function yv(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function kv(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 wv(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 ta(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return xs(l)?ta(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 Rv(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=Ed(l,o);return c?ta(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=ea(an(d))),t+1)}if(i.length===1){let a=Ed(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return xs(l)?ta(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(xs(l))return n.options[i]=ea(an(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=Ed(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 ta(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Ln(an(t),i.type):an(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(an(t),i.type):an(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]=ea(an(t)));return r}function _v(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=xv(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 xv(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 Ed(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function Ev(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 vv(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 Sv(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 Tv(e){return/^-\d+(\.\d+)?$/.test(e)}var vd=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 Pv(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 Av(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&&xs(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 ln(e,t,r={}){let o=Pg({options:Pv(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=Av(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 vd(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 Sd=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 Ag(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 Sd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as Nv,mkdirSync as Gv,readFileSync as $g,renameSync as Wv,rmSync as Hv,statSync as Uv,writeFileSync as qv}from"node:fs";import{dirname as Gg,join as Kv}from"node:path";var Cg="RED_WORKER_SCOPE",Dg="RED_WORKER_MEMORY_CEILING",Og="RED_WORKER_SCOPE_DEGRADATION",Pd={scope:null,memory_ceiling:null,scope_degradation:null};function Ad(e){return{scope:Td(e[Cg]),memory_ceiling:Td(e[Dg]),scope_degradation:Td(e[Og])}}function Es(e){let t={};return e.scope!=null&&e.scope!==""&&(t[Cg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(t[Dg]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(t[Og]=e.scope_degradation),t}function Td(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as Ov,readdirSync as Fv,readFileSync as Lg,rmSync as Iv,writeFileSync as Mv}from"node:fs";import{basename as Lv,join as Ao}from"node:path";import{isAbsolute as vN,join as ra,resolve as SN}from"node:path";function Cv(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var Fg="deaths",Ig="deaths.toonl";function na(e){return ra(Cv(e),Fg)}function Po(e){return ra(na(e),Ig)}var vs="live",Mg="attributions.toonl";function oa(e){return ra(na(e),vs)}function Cd(e){return ra(na(e),Mg)}var Od=Ao("sys","kernel","random","boot_id"),jg=1;function Fd(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:jg,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:Bg(Ao(r,Od)),cgroup:jv(r,n),last_phase:e.last_phase}}function Bg(e){try{let t=Lg(e,"utf8").trim();return t===""?null:t}catch{return null}}function jv(e,t){let r=Bg(Ao(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 Id(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Md(e,t){let r=Ao(e,Id(t));try{return Ov(e,{recursive:!0,mode:448}),Mv(r,yt({trailer:!1}).push($v(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function jn(e,t){try{Iv(Ao(e,Id(t)),{force:!0})}catch{}}function Ld(e,t){let r;try{r=Fv(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Ao(e,o);try{let a=Tr(Lg(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(Bv(a))}catch(i){t?.(Lv(s),i instanceof Error?i.message:String(i))}}return n}function Bv(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:Dd(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:Dd(e.pid),ppid:Dd(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 Dd(e){return typeof e=="number"?e:Number(e)}function $v(e){return{...e}}var Vv=1,zv=14*24*60*60*1e3,Jv=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function Yv(e){return typeof e=="string"&&Jv.has(e)}var Qv="startup";function Xv(e,t){return{...e.scope??Pd,version:Vv,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 Zv(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 sa={mkdir(e){Gv(e,{recursive:!0,mode:448})},endsClean(e){let t;try{t=Uv(e).size}catch{return!0}if(t===0)return!0;try{return $g(e,"utf8").endsWith(`
|
|
43
|
+
`)}catch{return!0}},append(e,t){Nv(e,t,{encoding:"utf8",mode:384})},replace(e,t){let r=`${e}.retaining-${process.pid}`;try{qv(r,t,{encoding:"utf8",mode:384}),Wv(r,e)}catch(n){throw Hv(r,{force:!0}),n}},read(e){return $g(e,"utf8")}};function Wg(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function eS(e,t,r=sa){let n=Date.parse(t.ts);Number.isFinite(n)&&Bd(e,n,r);let o=yt({trailer:!1}).push(Wg(t));return r.mkdir(Gg(e)),r.endsClean(e)||r.append(e,`
|
|
44
|
+
`),r.append(e,o),t}function Bd(e,t=Date.now(),r=sa){let n;try{n=$d(r.read(e))}catch(a){if(a.code==="ENOENT")return[];throw a}let o=t-zv,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(Wg(a))).join("")),s}function $d(e){let t=e.endsWith(`
|
|
45
45
|
`)?e:e.slice(0,e.lastIndexOf(`
|
|
46
|
-
`)+1);return t===""?[]:Tr(t).map(
|
|
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(tS)}function tS(e){let t=e.exit_path;if(!Yv(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 Hg(e,t=sa){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return $d(r)}var rS=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],jd=null;function Ug(e){let t=e.host??process,r=e.io??sa,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??Ad(process.env),i=e.phase??Qv,a=null,l=e.presenceDir===void 0?Kv(Gg(e.lanePath),vs):e.presenceDir,d=null,c=()=>{l!==null&&(d=Fd({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Md(l,d))},u=h=>{if(!a){try{a=eS(e.lanePath,Xv({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...h},Zv(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:Ng(h)})},unhandledRejection(h){u({exit_path:"unhandled-rejection",detail:Ng(h)})}},f=[...(e.signals??rS).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),jd===y&&(jd=null)},handlers:p};return e.setActive!==!1&&(jd=y),c(),y}function Ng(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as nS,readdirSync as oS,readFileSync as ia,statSync as sS,writeFileSync as iS}from"node:fs";import{join as zg}from"node:path";var aS=1,lS=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],dS=512*1024;function cS(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??lS,n=[],o=zg(t,Od),s=null;try{let l=ia(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:Nd(l),detail:null})}let i=new Set;try{for(let l of oS(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:Nd(l),detail:null})}let a=[];for(let l of r)try{let c=uS(l,e.tailBytes??dS).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:Nd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Nd(e){return e.code==="ENOENT"?"absent":"unreadable"}function uS(e,t){let r=sS(e).size,n=ia(e,"utf8");return r<=t?n:n.slice(n.length-t)}var pS=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,fS=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,gS=/Killed (\/\S*) due to memory pressure/,hS=/\bopid=(\d+)\b/,qg=/\bsig=(\d+)\b/,mS=/\buid=(\d+)\b/,bS=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,yS={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function kS(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:aS,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=>Kg(u,e.pid,pS)||Kg(u,e.pid,fS));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=gS.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(hS.exec(u)?.[1])===e.pid&&qg.test(u));if(d!==void 0){let u=Number(qg.exec(d)?.[1]),p=mS.exec(d)?.[1];return i("user-signal",o?"medium":"high",yS[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=>bS.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 Kg(e,t,r){return Number(r.exec(e)?.[1])===t}var wS=" | ";function Vg(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(wS)}function RS(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:Vg(e.evidence),checked:Vg(e.checked)}}function _S(e){let t=yt({trailer:!1});return e.map(r=>t.push(RS(r))).join("")}function Jg(e){let t=oa(e.stateRoot),r=Cd(e.stateRoot),o=(e.now??(()=>new Date().toISOString()))(),s=e.evidence??cS({procRoot:e.procRoot,journalPaths:e.journalPaths}),i=[],a=Ld(t,g=>i.push(g)),l=Hg(Po(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(kS(g,s,l,o)),jn(t,g)}let p=Date.parse(o);return Number.isFinite(p)&&Bd(Po(e.stateRoot),p),d.length>0&&xS(r,d),{attributions:d,alive:c,self_recorded:u,skipped:i,laneText:()=>{try{return ia(r,"utf8")}catch{return""}}}}function Yg(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 xS(e,t){try{nS(zg(e,".."),{recursive:!0,mode:448});let r=ES(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
|
+
`;iS(e,`${r}${n}${_S(t)}`,{encoding:"utf8",mode:384})}catch{}}function ES(e){try{return ia(e,"utf8")}catch{return""}}import{join as vS}from"node:path";var SS=[".red","redskilled"],qr=448;function sr(e){return vS(e,...SS)}import{randomUUID as ok}from"node:crypto";import{spawn as eF}from"node:child_process";import{mkdir as tF}from"node:fs/promises";import{dirname as rF}from"node:path";import{createHash as AS}from"node:crypto";import{constants as qd}from"node:fs";import{mkdir as sh,open as CS,readFile as DS,rm as ih,stat as OS}from"node:fs/promises";import{createConnection as FS}from"node:net";import{tmpdir as IS}from"node:os";import{dirname as ah,join as Ss}from"node:path";var TS="toon";function Zg(e){return e.trimStart().startsWith("{")?"json":"toon"}function Wd(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 Hd(e){let t=Zg(e)==="json"?Gd:Qg,r=t===Gd?Qg:Gd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Gd(e){return JSON.parse(e)}function Qg(e){return Dt(e)}function Ud(e,t){if(t==="toon"){let r=PS(e);if(r!==null)return r.endsWith(`
|
|
54
54
|
`)?`${r}
|
|
55
55
|
`:`${r}
|
|
56
56
|
|
|
57
57
|
`}return`${JSON.stringify(e)}
|
|
58
|
-
`}function
|
|
59
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await
|
|
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
|
|
58
|
+
`}function PS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=ot(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function eh(e,t){return!Xg(e)||!Xg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Xg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var th=new Set;function rh(e){return th.has(e)?"json":TS}function nh(e){th.add(e)}var MS=108;async function aa(e,t,r="resident server"){let n=e.wire,o=n??rh(e.socketPath),s=await oh(e,t,r,o);return n||o==="json"||!eh(t,s)?s:(nh(e.socketPath),await oh(e,t,r,"json"))}async function oh(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=FS(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(Ud(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Wd(d);g&&(d=g.rest,u(()=>{try{s(Hd(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 lh(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Wd(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Ud(a,s.dialect))}catch{}};(async()=>{let a;try{a=Hd(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function LS(e){await sh(ah(e),{recursive:!0,mode:448});try{return await CS(e,qd.O_CREAT|qd.O_EXCL|qd.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var jS=6e4,dh="resident-spawn-lock v1",BS=3;async function ch(e,t={}){let r=t.maxAgeMs??jS,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Ye;await sh(ah(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await LS(e);if(l)return await l.writeFile(`${dh} pid=${o} taken=${new Date(n()).toISOString()}
|
|
59
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await NS(e),c=await WS(e,d,n());if(a>=BS||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=$S(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 ih(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function uh(e){await e.handle.close().catch(()=>{}),await ih(e.lockPath,{force:!0})}function $S(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function ph(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 NS(e){try{return GS(await DS(e,"utf8"))}catch{return null}}function GS(e){let t=e.split(`
|
|
60
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(dh))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 WS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await OS(e)).mtimeMs)}catch{return null}}function Ye(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var HS="/tmp";function la(e){let t=e.env??process.env,r=AS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Ss(l,e.socketFileName).length<MS,o=t.XDG_RUNTIME_DIR;if(o){let l=Ss(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Ss(`red-skills-${s}`,r),a=Ss(IS(),i);return n(a)||process.platform==="win32"?a:Ss(HS,i)}Kr();import{homedir as pT}from"node:os";import{join as nc}from"node:path";import{spawnSync as fT}from"node:child_process";import{createHash as gT}from"node:crypto";import{existsSync as hT,readdirSync as mT}from"node:fs";import{mkdir as wh,readFile as bT,rename as yT,writeFile as kT}from"node:fs/promises";import{dirname as wT}from"node:path";var $n="@reddb-io/red-skills",eT="https://registry.npmjs.org",tT="canary",Bn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},rT=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Xd(e){return typeof e=="string"&&rT.test(e.trim())}function mh(e){return`${e}-.bundle.min.mjs`}var nT=".unversioned";function oT(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Xd(t))throw new Bn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${mh(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 pa(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return As(n,oT(t,r,o))}function sT(e){return e==="dev"?["rsp","redskilled"]:[]}function iT(e){return`${e}.bundle.min.mjs`}function aT(e){return As("dist",iT(e))}function lT(e,t="stable"){return`${$n}@${t==="canary"?tT:e}`}function Zd(e=$n){return`${eT}/${e.replace("/","%2F")}`}async function ec(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=pa({plugin:r,version:n,cacheDir:o,channel:s}),a=sT(r),l=a.map(p=>pa({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await cT(e,l))return i;let d=lT(n,s),c=As(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw kh(p,d)}for(let p of[r,...a]){let g=aT(p),f=As(u,g);if(!await e.exists(f))throw new Bn("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:pa({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await dT(e,o,[r,...a]),i}async function dT(e,t,r){if(e.rename)for(let n of r){let o=As(t,mh(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${nT}`)}catch{}}}async function cT(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function bh(e,t,r=$n){let n;try{n=await e.fetchText(Zd(r))}catch(s){throw kh(s,r)}let o=tc(n);return{sameMajor:uT(o,t),newest:rc(o)}}function tc(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 uT(e,t){let r=Qd(t);if(r===null)return null;let n=null;for(let o of e)Qd(o)===r&&(n===null||yh(o,n)>0)&&(n=o);return n}function rc(e){let t=null;for(let r of e){let n=String(r).trim();Qd(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||yh(n,t)>0)&&(t=n)}return t}function Qd(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function yh(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 kh(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 As(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}Kr();var Rh={async materialize(e,t){await wh(t,{recursive:!0});let r=fT("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 nc(t,"node_modules",...$n.split("/"))},async readFile(e){return new Uint8Array(await bT(e))},async writeFile(e,t){await wh(wT(e),{recursive:!0}),await kT(e,t)},async exists(e){return hT(e)},sha256(e){return gT("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 yT(e,t)}},RT="redskilled";function _T(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||nc(e.HOME||pT(),".cache");return nc(t,"red-skills","bundles")}var xT=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function ET(e,t){if(Xd(e.version))return e.version.trim();let r=e.listCacheDir??TT,n=vT(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??Rh).fetchText(Zd());return rc(tc(s))}catch{return null}}function vT(e,t){let r=null;for(let n of e){let o=xT.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||ST(s,r)>0)&&(r=s)}return r}function ST(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t);return Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function TT(e){try{return mT(e)}catch{return[]}}async function PT(e={},t={},r={}){let n=cn(e,t);if(Ar(n))return n;let o=r.env??t.env??process.env,s=_T(o),i=await ET(r,s);if(i===null)return n;try{await ec(r.bundleIO??Rh,{plugin:RT,version:i,cacheDir:s})}catch{return n}return cn(e,t)}async function _h(e={},t={},r={}){let n=await PT(e,t,r);if(Ar(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(Kr(),hh));throw new o(n)}var Co=3e5,xh=1e4,Eh=6e4,vh=15e3,oc=3e4,Sh=oc*2,Th=6e4,Cs=16;function Ph(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 sc(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var Ah="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as Y0}from"node:crypto";import{mkdir as q1,rm as K1}from"node:fs/promises";import{dirname as V1}from"node:path";import{randomUUID as Ch}from"node:crypto";import{rm as AT}from"node:fs/promises";import{connect as CT,createServer as DT}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 ic(e,t=250){return await new Promise(r=>{let n=CT(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 Dh(e,t){for(let r=0;r<2;r++){let n=DT();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 ic(e)!=="unowned")throw new zt(e);if(await t?.())throw new zt(e);await AT(e,{force:!0})}}throw new zt(e)}async function Jt(e,t=250){try{return(await aa({socketPath:e,timeoutMs:t},{id:Ch(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Oh(e,t){lh(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??Ch(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Nh(e){return{generated_at:e.now,hour:Ih("hour",36e5,e),day:Ih("day",864e5,e),history_48h:OT(e)}}function OT(e){let t=un(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=FT(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=>un(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:Fh(i),tickets_per_hour:Fh(l)}}function FT(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=un(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 Fh(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=un(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=un(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function Ih(e,t,r){let n=un(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:un(u.observed_at)})).filter(u=>u.at!=null&&jh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>un(u.ts)).filter(u=>u!=null&&jh(u,o,n)),l=Mh(i,u=>u.tokens,"tokens",s),d=Mh(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:IT(a.length,t,s),runner_share:Lh("runner",i,u=>u.runner,s),model_share:Lh("model",i,u=>u.model,s),unavailable:c}}function Mh(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function IT(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function Lh(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 jh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function un(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Gh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&$h(t.hour)&&$h(t.day)&&(t.history_48h===void 0||MT(t.history_48h))}function MT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Bh(t.tokens_per_hour)&&Bh(t.tickets_per_hour)}function Bh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function $h(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&ac(t.tokens_per_min)&&ac(t.tools_per_min)&&ac(t.issues_per_hour)&&Array.isArray(t.unavailable)}function ac(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 Wh(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 Hh(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 Kh,totalmem as jT}from"node:os";function Ds(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 Uh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Ds(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=Do(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:LT(e.length,n,a,l)}}function LT(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function Do(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 qh(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 Vh="REDSKILLED_MEMORY_CEILING",dc="REDSKILLED_WORKER_CEILING",Qh="REDSKILLED_VALIDATION_CEILING",zh="REDSKILLED_INTERACTIVE_RESERVATION",Os=1,Jh=.7,BT=2*1024**3,$T=2;function Xh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Do(t)}function ga(e){let t=0,r=[];for(let n of e){let o=Xh(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=ga(e.workers),n=Xh(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??Os),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 em(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=ga(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 (${dc} 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 ha(e=process.env,t=jT(),r={}){let n=lc(r.flags?.memoryCeiling,e[Vh],r.config?.memoryCeiling),o=lc(r.flags?.workerCeiling,e[dc],r.config?.workerCeiling),s=lc(r.flags?.validationCeiling,e[Qh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[zh]??"").trim(),d=tm(a),c=l===""?Os:WT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!NT(a)&&(fa(`redskilled: ${cc(o)} ${dc}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=GT(i,t);if(p!==void 0)return Yh({memory_bytes:p,worker_count:d,interactive_reservation:c??Os,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Kh());fa(`redskilled: ${cc(n)} ${Vh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Jh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&fa(`redskilled: ${zh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Os} Worker(s) instead.`),Yh({memory_bytes:Math.floor(t*Jh),worker_count:d,interactive_reservation:c??Os,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Kh())}function Yh(e,t,r){if(t!==void 0){let i=tm(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};fa(`redskilled: ${cc(t)} ${Qh}=${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)/$T)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/BT)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function lc(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 cc(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function NT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var fa=e=>process.stderr.write(`${e}
|
|
61
|
+
`);function GT(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)):Do(e)??void 0}function tm(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 WT(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as HT,mkdir as UT,open as qT,readFile as KT,rename as VT,rm as zT,stat as om,truncate as rm,writeFile as JT}from"node:fs/promises";import{dirname as YT}from"node:path";var QT=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],Oo=["worker-birth","worker-death","worker-budget-kill"],XT=["demand-refusal","daemon-stop"],sm="redskilled.log.toonl",ZT=4*1024*1024;function ma(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 eP="daemon:";function tP(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${eP}${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 rP(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 im(e,t={}){let r=t.maxBytes??ZT,n=yt({trailer:!1}),o=Promise.resolve();async function s(i){let a=o.then(async()=>{await UT(YT(e),{recursive:!0,mode:448}),await sP(e),await HT(e,n.push(lm(i)),{encoding:"utf8",mode:384}),(await om(e)).size>r&&(await nP(e,r),n=yt({trailer:!1}))});return o=a.catch(()=>{}),await a,i}return{path:e,record:i=>s(ma(i)),recordWorker:i=>s(ma(i)),recordDemandRefusal:i=>s(rP(i)),recordDaemonStop:i=>s(tP(i)),read:()=>am(e),flush:async()=>{await o}}}async function nP(e,t){let r=await am(e),n=oP(r,t),o=`${e}.rotate-${process.pid}`;try{await JT(o,uc(n),{encoding:"utf8",mode:384}),await VT(o,e)}finally{await zT(o,{force:!0})}}function oP(e,t){let r=new Set(pc(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=nm(e,n,o.slice(l));Buffer.byteLength(uc(d))<=t?i=l:s=l+1}let a=nm(e,n,o.slice(s));if(Buffer.byteLength(uc(a))>t)throw new Error(`redskilled event-lane baseline exceeds its ${t}-byte ceiling`);return a}function nm(e,t,r){let n=new Set([...t,...r]);return e.filter((o,s)=>n.has(s))}function uc(e){if(e.length===0)return"";let t=yt({trailer:!1});return e.map(r=>t.push(lm(r))).join("")}async function sP(e){let t;try{t=(await om(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await qT(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 rm(e,s-i+l+1);return}}await rm(e,0)}finally{await n.close()}}async function am(e){let t;try{t=await KT(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return iP(t)}function iP(e){let t=e.split(`
|
|
62
62
|
`);return t.pop(),t.length===0?[]:Tr(`${t.join(`
|
|
63
63
|
`)}
|
|
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(`
|
|
64
|
+
`).filter(lP).map(dP)}function pc(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,aP(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function aP(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 lm(e){return{...e}}function lP(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...QT,...XT].includes(t)}function dP(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 dm(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 cm(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function um(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 Fs={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function pm(e,t,r){if(t>=6e4)return Fs;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 fm(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function fc(){return Fs}function cP(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 gm(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>cP(r,n,t)).filter(r=>r!=null)}function mm(e){let t=e.workers.map(uP),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:fP({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function bm(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 uP(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 pP(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 fP(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${pP(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${hm(e.held,"Worker")} across ${hm(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 hm(e,t){return`${e} ${t}${e===1?"":"s"}`}function gc(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 gP,mkdir as hP,readFile as mP,rm as bP,writeFile as yP}from"node:fs/promises";import{dirname as ym,join as _m}from"node:path";import{tmpdir as km}from"node:os";var kP="redskilled.machine.claim.toon",mc="REDSKILLED_MACHINE_DIR",wP=8,Vr=class extends Error{constructor(r,n,o){super(_P(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},wm;function ba(){return wm??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},wm}function RP(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[mc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||km():km();return _m(o,`redskilled-${e.machineIdHash}`)}function Fo(e){return _m(RP(e),kP)}function Is(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){let l;try{l=await mP(e,"utf8")}catch(c){if(c.code==="ENOENT"||hc(c))return;throw c}let d=EP(l);return vP(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 bP(e,{force:!0}),!0}catch(l){if(hc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await hP(ym(e),{recursive:!0,mode:1023})!=null&&await gP(ym(e),1023).catch(()=>{});let c=!1;for(let u=0;u<wP;u+=1){let p=i(l,n());try{return await yP(e,xP(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(hc(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(Rm(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||!Rm(d,l,t.socketPath)?!1:await a()}}}function xm(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 Em(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 _P(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 hc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function Rm(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function xP(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
65
|
+
`}function EP(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function vP(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 SP=["worker_id","slot","workspace_path","log_path"],ya=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${SP.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},vm=/\{\{([a-z_]+)\}\}/g;function TP(e,t){let r=(i,a)=>i.replace(vm,(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 ya(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 Sm(e,t){if(!(e==null||e.trim()===""))return e.replace(vm,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ya(n,"the log path")}})}function ka(e,t,r){let n=TP(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 wa(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 Ra(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 _a(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 PP=3e5,AP=.5,bc=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 Tm(e,t){if(t.held!=null)throw new bc(t.held);let r=Ms(e.project_label,"a project label"),n=Ms(e.selector,"a selector"),o=MP(e.queue_poll,r),s=wa(e.argv,r),i=_a(e.env,r),a=Ra(e.log_path,r),l=OP(e.hooks,r),d=Ms(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:Ms(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Ms(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let u=e.renew_within_ms??PP;if(!Number.isFinite(u)||u<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let p=Date.parse(t.now);if(!Number.isFinite(p))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:d,...c==null?{}:{trunk:c},env:i,...a==null?{}:{log_path:a},...l==null?{}:{hooks:l},target:e.target,registered_at:new Date(p).toISOString(),renew_within_ms:u,renew_by:new Date(p+u).toISOString(),renewed_at:new Date(p).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var Gn=class extends Error{constructor(r,n={kind:"never"}){super(CP(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function CP(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 Pm(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:wa(t.launch.argv,e.project_label),env:_a(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Ra(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 yc(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 DP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Am(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*AP;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 Cm(e,t){let r=[],n=[];for(let o of e)(DP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Ls(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||Dm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||IP(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||Om(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||FP(t.hooks))&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function OP(e,t){if(e==null)return;if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs project hooks to be a map keyed by public host event kind for project ${JSON.stringify(t)}`);let r={};for(let[n,o]of Object.entries(e)){if(!Oo.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${Oo.join(", ")}`);if(o===null||typeof o!="object"||Array.isArray(o))throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} to be a launch template`);let s=o,i=s.mode??"async";if(i!=="async"&&i!=="sync")throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} mode to be "async" or "sync", not ${JSON.stringify(i)}`);if(i==="sync"&&(typeof s.deadline_ms!="number"||!Number.isFinite(s.deadline_ms)||s.deadline_ms<=0))throw new Error(`redskilled cannot register sync ${n} hook for project ${JSON.stringify(t)} without a finite, positive deadline_ms: ${JSON.stringify(s.deadline_ms)} is not a bounded deadline`);r[n]={argv:wa(s.argv,t),env:_a(s.env,t),...s.log_path==null?{}:{log_path:Ra(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function FP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!Oo.includes(t)||r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return Array.isArray(n.argv)&&n.argv.length>0&&n.argv.every(o=>typeof o=="string"&&o!=="")&&(n.env===void 0||Om(n.env))&&(n.log_path===void 0||typeof n.log_path=="string"&&n.log_path!=="")&&(n.mode===void 0||n.mode==="async"||n.mode==="sync")&&(n.mode!=="sync"||typeof n.deadline_ms=="number"&&Number.isFinite(n.deadline_ms)&&n.deadline_ms>0)})}function IP(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 MP(e,t){if(e!==void 0){if(!Dm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function Dm(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 Om(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Ms(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var LP={ping:"host-read","host-state":"host-read","statusline-payload":"host-read",shutdown:"daemon-life","worker-start":"project-write","worker-stop":"project-write","worker-recycle":"project-write","worker-steer":"project-write","worker-heartbeat":"project-write","project-register":"project-write","project-renew":"project-write","project-reset":"project-write","project-deregister":"project-write"};function Fm(e){return`worker-${e}`}function Im(e){let t=LP[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 Mm(e){return e==="single-object"?"rest":"graphql"}function Lm(e,t){return e==="stable-poll"?"rest":Mm(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??Lm(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 jm=[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"),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")],jP=new Map(jm.map(e=>[e.key,e]));function Bm(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 kc(e){let t=Bm(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 xa=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=kc(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 $m(e){return jP.get(kc(e))??null}function Nm(e){let t=$m(e);if(!t)throw new xa(e);return t}function wc(e){return Nm(e).surface}import{appendFile as BP,mkdir as $P,readFile as NP}from"node:fs/promises";import{dirname as GP}from"node:path";function Ea(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=WP(n.operation,n.cost,n.observedAt??t(),n.actor),s=yt().push(UP(o));return r=r.then(async()=>{await $P(GP(e.path),{recursive:!0}),await BP(e.path,s,"utf8")}),r},async report(n){await r;let o=Rc(n.from,"report window start"),s=Rc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await HP(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 WP(e,t,r,n){if(Rc(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 HP(e){let t;try{t=await NP(e,"utf8")}catch(s){if(VP(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
66
66
|
`);for(let s=0;s<o.length;s+=1){let i=o[s];if(i.trim()==="")continue;let a=o[s+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let l;try{l=Tr(`${i}
|
|
67
67
|
${a}
|
|
68
|
-
`)[0]}catch{n+=1,s+=1;continue}if(!
|
|
68
|
+
`)[0]}catch{n+=1,s+=1;continue}if(!qP(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function UP(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 qP(e){return KP(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 Rc(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 KP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function VP(e){return e instanceof Error&&"code"in e}var Wm=nd(Ec(),1);var zr=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 zP="0.0.0-development";function JP(e){return e.request!==void 0}async function Gm(e,t,r,n){if(!JP(r)||!r?.request.request)throw r;if(r.status>=400&&!e.doNotRetry.includes(r.status)){let o=n.request.retries!=null?n.request.retries:e.retries,s=Math.pow((n.request.retryCount||0)+1,2);throw t.retry.retryRequest(r,o,s)}throw r}async function YP(e,t,r,n){let o=new Wm.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(QP.bind(null,e,t,r),n)}async function QP(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 zr(o.data.errors[0].message,500,{request:n,response:o});return Gm(e,t,s,n)}return o}function vc(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",Gm.bind(null,r,n)),e.hook.wrap("request",YP.bind(null,r,n))),n}vc.VERSION=zP;var Um=nd(Ec(),1),XP="0.0.0-development",Sc=()=>Promise.resolve();function ZP(e,t,r){return e.retryLimiter.schedule(eA,e,t,r)}async function eA(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=tA(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,Sc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,Sc),i&&await e.search.key(e.id).schedule(d,Sc);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 tA(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 rA=["/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 nA(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var Hm=nA(rA),qm=Hm.test.bind(Hm),ir={},oA=function(e,t){ir.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ir.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ir.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ir.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ir.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function va(e,t){let{enabled:r=!0,Bottleneck:n=Um.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:qm,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)+
|
|
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,ir.global==null&&oA(n,a),l.global=l.global??ir.global,l.auth=l.auth??ir.auth,l.search=l.search??ir.search,l.write=l.write??ir.write,l.notifications=l.notifications??ir.notifications,l.retryLimiter=l.retryLimiter??new n;let u={},p=new n.Events(u);u.on("secondary-limit",l.onSecondaryRateLimit),u.on("rate-limit",l.onRateLimit),u.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),l.retryLimiter.on("failed",async function(g,f){let[y,h,R]=f.args,{pathname:T}=new URL(R.url,"http://github.test");if(!(T.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let D=~~h.retryCount;h.retryCount=D,R.request.retryCount=D;let{wantRetry:M,retryAfter:N=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let H=Number(g.response.headers["retry-after"])||y.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",H,R,e,D),retryAfter:H}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(H=>H.type==="RATE_LIMITED")){let H=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),G=Math.max(Math.ceil((H-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(),ZP(l,u,p))),{}}va.VERSION=XP;va.triggersNotification=qm;function pn(){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 Sa(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)=>Sa.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 Km(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 Vm(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 zm=Function.bind,Jm=zm.bind(zm);function Ym(e,t,r){let n=Jm(Vm,null).apply(null,r?[t,r]:[t]);e.api={remove:n},e.remove=n,["before","error","after","wrap"].forEach(o=>{let s=r?[t,o,r]:[t,o];e[o]=e.api[o]=Jm(Km,null).apply(null,s)})}function sA(){let e=Symbol("Singular"),t={registry:{}},r=Sa.bind(null,t,e);return Ym(r,t,e),r}function iA(){let e={registry:{}},t=Sa.bind(null,e);return Ym(t,e),t}var Qm={Singular:sA,Collection:iA};var aA="0.0.0-development",lA=`octokit-endpoint.js/${aA} ${pn()}`,dA={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":lA},mediaType:{format:""}};function cA(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function uA(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 eb(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{uA(t[n])?n in e?r[n]=eb(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function Xm(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Pc(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=cA(r.headers),Xm(r),Xm(r.headers);let n=eb(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 pA(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 fA=/\{[^{}}]+\}/g;function gA(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function hA(e){let t=e.match(fA);return t?t.map(gA).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 tb(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 Mo(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function js(e,t,r){return t=e==="+"||e==="#"?tb(t):Mo(t),r?Mo(r)+"="+t:t}function Io(e){return e!=null}function Tc(e){return e===";"||e==="&"||e==="?"}function mA(e,t,r,n){var o=e[r],s=[];if(Io(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(js(t,o,Tc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Io).forEach(function(i){s.push(js(t,i,Tc(t)?r:""))}):Object.keys(o).forEach(function(i){Io(o[i])&&s.push(js(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Io).forEach(function(a){i.push(js(t,a))}):Object.keys(o).forEach(function(a){Io(o[a])&&(i.push(Mo(a)),i.push(js(t,o[a].toString())))}),Tc(t)?s.push(Mo(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Io(o)&&s.push(Mo(r)):o===""&&(t==="&"||t==="?")?s.push(Mo(r)+"="):o===""&&s.push("");return s}function bA(e){return{expand:yA.bind(null,e)}}function yA(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(mA(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 tb(s)}),e==="/"?e:e.replace(/\/$/,"")}function rb(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=hA(r);r=bA(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=pA(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 kA(e,t,r){return rb(Pc(e,t,r))}function nb(e,t){let r=Pc(e,t),n=kA.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:nb.bind(null,r),merge:Pc.bind(null,r),parse:rb})}var ob=nb(null,dA);var _b=nd(ub(),1);var AA=/^-?\d+$/,Aa=/^-?\d+n+$/,fn=JSON.stringify,Oc=JSON.parse,mb=/^-?\d+n$/,pb=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,fb=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Fc=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Ic=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",CA=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let o=typeof t=="function",s=Array.isArray(t)?new Set(t.map(String)):null,i=(f,y,h)=>(h!==null&&typeof h=="object"&&typeof h.toJSON=="function"&&(h=h.toJSON(y)),typeof h=="string"&&Aa.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(Fc(a))return;let l=a===null||typeof a!="object",d=Ic(a);if(l||d)return fn(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(Fc(R))c.push("null"),f.first=!1,f.index++;else{let T=R!==null&&typeof R=="object",$=Ic(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(fn(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(Fc(D))continue;f.first||c.push(","),n?c.push(`
|
|
80
|
+
`+n.repeat(u)+fn(R)+": "):c.push(fn(R)+":");let M=D!==null&&typeof D=="object",N=Ic(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(fn(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("")},bb=(e,t,r)=>{try{return"rawJSON"in JSON?fn(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?fn(e,(a,l)=>typeof l=="string"&&Aa.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(pb,"$1$2$3").replace(fb,"$1$2$3"):fn(e,t,r)}catch(n){if(n instanceof RangeError){let o=CA(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(pb,"$1$2$3").replace(fb,"$1$2$3")}throw n}},Pa=new Map,DA=()=>{let e=JSON.parse.toString();if(Pa.has(e))return Pa.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return Pa.set(e,t),t}catch{return Pa.set(e,!1),!1}},OA=(e,t,r,n)=>typeof t=="string"&&mb.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&Aa.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,FA=(e,t)=>JSON.parse(e,(r,n,o)=>{let s=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=s&&i,l=o&&AA.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),yb=Number.MAX_SAFE_INTEGER.toString(),gb=yb.length,IA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,MA=/^"-?\d+n+"$/,LA=(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"&&(mb.test(a)?a=BigInt(a.slice(0,-1)):Aa.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[""]},hb=e=>e.replace(IA,(t,r,n,o)=>{let s=t[0]==='"';if(s&&MA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<gb||r.length===gb&&r<=yb);return s||a||l?t:'"'+t+'n"'}),kb=(e,t)=>{if(!e)return Oc(e,t);try{if(DA())return FA(e,t);let r=hb(e);return Oc(r,(n,o,s)=>OA(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=hb(e),o=Oc(n);return LA(o,t)}throw r}};var jA="10.0.13",BA={headers:{"user-agent":`octokit-request.js/${jA} ${pn()}`}};function $A(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 wb=()=>"";async function Rb(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=$A(e.body)||Array.isArray(e.body)?bb(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 zr(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 zr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Mc(i),new zr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Mc(i),new zr(GA(c.data),a,{response:c,request:e});return c.data=n?await Mc(i):i.body,c}async function Mc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(wb);let r=(0,_b.parse)(t);if(NA(r)){let n="";try{return n=await e.text(),kb(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(wb):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function NA(e){return e.type==="application/json"||e.type==="application/scim+json"}function GA(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 Lc(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 Rb(r.parse(i));let a=(l,d)=>Rb(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:Lc.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Lc.bind(null,r)})}var Bs=Lc(ob,BA);var WA="0.0.0-development";function HA(e){return`Request failed due to following response errors:
|
|
82
82
|
`+e.errors.map(t=>` - ${t.message}`).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(`
|
|
83
|
+
`)}var UA=class extends Error{constructor(e,t,r){super(HA(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},qA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],KA=["query","method","url"],xb=/\/api\/v3\/?$/;function VA(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(KA.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)=>qA.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 xb.test(s)&&(o.url=s.replace(xb,"/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 UA(o,a,i.data)}return i.data.data})}function jc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>VA(r,o,s),{defaults:jc.bind(null,r),endpoint:r.endpoint})}var qG=jc(Bs,{headers:{"user-agent":`octokit-graphql.js/${WA} ${pn()}`},method:"POST",url:"/graphql"});function Eb(e){return jc(e,{method:"POST",url:"/graphql"})}var Bc="(?:[a-zA-Z0-9_-]+)",vb="\\.",Sb=new RegExp(`^${Bc}${vb}${Bc}${vb}${Bc}$`),zA=Sb.test.bind(Sb);async function JA(e){let t=zA(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function YA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function QA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=YA(e),t(o)}var Tb=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(JA.bind(null,t),{hook:QA.bind(null,t)})};var $c="7.0.7";var Pb=()=>{},XA=console.warn.bind(console),ZA=console.error.bind(console);function eC(e={}){return typeof e.debug!="function"&&(e.debug=Pb),typeof e.info!="function"&&(e.info=Pb),typeof e.warn!="function"&&(e.warn=XA),typeof e.error!="function"&&(e.error=ZA),e}var Ab=`octokit-core.js/${$c} ${pn()}`,Ca=class{static VERSION=$c;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 Qm.Collection,n={baseUrl:Bs.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} ${Ab}`:Ab,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Bs.defaults(n),this.graphql=Eb(this.request).defaults(n),this.log=eC(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=Tb(t.auth);r.wrap("request",s.hook),this.auth=s}let o=this.constructor;for(let s=0;s<o.plugins.length;++s)Object.assign(this,o.plugins[s](this,t))}request;graphql;log;hook;auth};var Cb="6.0.0";function Nc(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})})}Nc.VERSION=Cb;var tC="0.0.0-development";function rC(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 Gc(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=rC(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 Db(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Ob(e,[],Gc(e,t,r)[Symbol.asyncIterator](),n)}function Ob(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:Ob(e,t,r,n)})}var l5=Object.assign(Db,{iterator:Gc});function Wc(e){return{paginate:Object.assign(Db.bind(null,e),{iterator:Gc.bind(null,e)})}}Wc.VERSION=tC;var Hc="17.0.0";var nC={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Fb=nC;var Wn=new Map;for(let[e,t]of Object.entries(Fb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Wn.has(e)||Wn.set(e,new Map),Wn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var oC={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]=sC(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Uc(e){let t={};for(let r of Wn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},oC);return t}function sC(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 iC(e){return{rest:Uc(e)}}iC.VERSION=Hc;function qc(e){let t=Uc(e);return{...t,rest:t}}qc.VERSION=Hc;var Ib="22.0.1";var Mb=Ca.plugin(Nc,qc,Wc).defaults({userAgent:`octokit-rest.js/${Ib}`});function aC(e){return`r${e}`}function Lb(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=aC(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 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
|
|
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 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
|
|
91
|
-
`),e.command,...e.args]}function
|
|
92
|
-
`).
|
|
93
|
-
`)
|
|
94
|
-
`)
|
|
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 jb(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 lC=Mb.plugin(vc,va);function Bb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function $b(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 Lo=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 Kc(e){let t=e.etags??Bb(),r=new lC({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=gn(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=Da(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($s(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=Nb(f),h={...u.headers,...y},R=Da(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 $s(f)===401?new Lo({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=Lb(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=jb(u,p),f=cC(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:uC(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=$s(u)===401?new Lo({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=$b(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,!dC(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 $s(g)===401?new Lo({cause:g}):g}}}}function dC(e){let t=Da(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Ns(e){let t=$s(e),r=Nb(e);return t===429||t===403&&Da(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function $s(e){if(gn(e))return typeof e.status=="number"?e.status:void 0}function Nb(e){return!gn(e)||!gn(e.response)||!gn(e.response.headers)?{}:e.response.headers}function Da(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function gn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function cC(e){let t=gn(e)?e:{},r=gn(t.data)?t.data:t,o=(gn(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 uC(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 Wb="rate_limit",Hb={rest:"core",graphql:"graphql",search:"search"},Jr=["rest","graphql","search"];function Ma(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:[...Jr],detail:t??"no balance has been asked for yet, so none is known"}}var zc=15e3,jo=.15,Fa=[{at_or_below_fraction:0,every_ms:zc,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:jo,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 C5=60*6e4,Vc=2;function Ub(e,t){let r=Gb(e),n=Gb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Jr){let l=Hb[a],d=n[l],c=gC(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Jr.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 ${Jr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Jc(e){try{let t=await e.transport();return Ub(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Ma(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Yc(e){let t=null;for(let r of Jr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function La(e,t){let r=Yc(e);if(r==null)return Ia(jo).every_ms;let n=Ia(r.fraction);if(r.remaining>0)return n.every_ms;let o=Kb(t.now,r.reset_at);return o==null?n.every_ms:Math.max(zc,Math.min(n.every_ms,o))}function Qc(e,t=jo){return Math.ceil(e.limit*t)}function qb(e,t,r=jo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Qc(n,r)?"reserved":"open"}function Xc(e){let t=e.reservedFraction??jo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Ia(t).every_ms*Vc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Ia(t).every_ms,pools:[],unreported_pools:[...Jr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=La(r,{now:e.now}),o=e.stalenessMs??n*Vc,s=Kb(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Jr.map(c=>r.pools[c]).filter(c=>c!=null),l=fC(r,t),d=Yc(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`:pC(l,d,r,t)}}function Zc(e){if(!tu(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 pC(e,t,r,n){if(t==null)return r.detail;let o=Qc(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 fC(e,t){let r="unknown";for(let n of Jr){if(e.pools[n]==null)continue;let o=qb(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Ia(e){for(let t of Fa)if(e<=t.at_or_below_fraction)return t;return Fa[Fa.length-1]}function gC(e,t,r){if(!tu(r))return null;let n=Oa(r.limit),o=Oa(r.remaining),s=Oa(r.used),i=Oa(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 eu(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${Wb}`,{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 Kb(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 Oa(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Gb(e){return tu(e)?e:{}}function tu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as hC}from"node:child_process";import{existsSync as mC,readFileSync as ja,readdirSync as bC}from"node:fs";import{dirname as yC,join as Hn}from"node:path";function Gs(e){let t=Ds(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Do(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Vb(e){let t=[],r=[];for(let n of e.workers){let o=Gs(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Ds(n).memory_max??Ds(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(kC(n,o,s))}}return{terminations:t,unenforceable:r}}function kC(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 wC=4096;function zb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=_C(e,r,t);for(let[u,p]of a){let g=vC(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=PC(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 RC="/sys/fs/cgroup";function _C(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??RC,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=xC(s,r);for(let l of i)for(let d of a){let c=Hn(d,l.unit);if(mC(Hn(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function xC(e,t){let r=t.selfCgroupPath??EC(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Hn(e,s));let a=yC(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 EC(){try{for(let e of ja("/proc/self/cgroup","utf8").split(`
|
|
86
|
+
`))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function vC(e){let t;try{t=ja(Hn(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:SC(e)}}function SC(e){let t;try{t=ja(Hn(e,"cpu.stat"),"utf8")}catch{return null}return TC(t)}function TC(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 PC(e,t){return t.procRoot!=null||e==="linux"?IC(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?OC(AC(t.psTable)):new Map}function AC(e){try{return(e??CC)()}catch{return""}}function CC(){return hC("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var DC=1024;function OC(e){let t=new Map;for(let r of e.split(`
|
|
88
|
+
`)){let n=r.trim().split(/\s+/);if(n.length!==4)continue;let[o,s,i]=n.slice(0,3).map(Number);if(![o,s,i].every(l=>l!=null&&Number.isSafeInteger(l)&&l>=0))continue;let a=FC(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*DC,cpuSeconds:a})}return t}function FC(e){let t=e.indexOf("-"),r=t<0?0:Number(e.slice(0,t));if(!Number.isFinite(r)||r<0)return null;let n=e.slice(t+1).split(":"),o=r*86400,s=1;for(let i=n.length-1;i>=0;i--){let a=Number(n[i]);if(!Number.isFinite(a)||a<0||n[i]==="")return null;o+=a*s,s*=60}return o}function IC(e){let t=new Map,r;try{r=bC(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=ja(Hn(e,n,"stat"),"utf8")}catch{continue}let s=LC(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*wC,cpuSeconds:s.cpuTicks/MC})}return t}var MC=100;function LC(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 jC=["api","graphql"],aW=wc(jC);var Jb=100,nu=6e4,BC=2*nu,$C=7*24*60*60*1e3,ru=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 ou(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new ru(r.project_label,r.token_ref,t)}function ey(e,t={now:new Date(0).toISOString()}){sy(e);let r=t.closedWindowMs??$C,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 NC(e,t,r){let n=Bo(t),o=Bo(n.data),s=Array.isArray(n.errors)?n.errors.map(Bo):[],i=KC(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=>Xb(f.path,l)||Xb(f.path,d));if(Ws(p)){let f=Zb(p.open_pull_requests),y=Zb(p.open_issues),h=VC(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||iy(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: ${Ba(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 GC(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 ty(e){if(e.projects.length===0)return GC(e.now);if(ou(e.projects,e.hostTokenRef),e.transport.conditionalList)return await HC(e);let t=ey(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return NC(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 WC={key:"redskilled repository activity poll",budget:"rest"};async function HC(e){sy(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=ey(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:WC});i+=y.requestCount;let h=p==="open-prs"?y.data:y.data.filter(R=>!Ws(R.pull_request));u.push(p==="recently-closed"?h.filter(R=>Ba(R.closed_at)>=n.closed_since).length:h.length),a=Yb(a,qC(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=Ns(p);a=Yb(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 ry(e){let t=e.stalenessMs??BC,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 ny(e){if(!Ws(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)&&Ws(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function oy(e){let t=e.endpoint==null?void 0:UC(e.endpoint),r=Kc({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 UC(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 qC(e){let t=Qb(e,"x-ratelimit-remaining"),r=Qb(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Yb(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 Qb(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 sy(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 KC(e,t){let r=Bo(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(iy),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 iy(e){if(e==null)return!1;let t=Ba(e.type),r=Ba(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Xb(e,t){return Array.isArray(e)&&e.includes(t)}function Zb(e){let t=Bo(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function VC(e){let t=Bo(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Bo(e){return Ws(e)?e:{}}function Ws(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ba(e){return typeof e=="string"?e:""}function ly(e,t){let r=[...e].sort((i,a)=>(Hs(a.ts)??0)-(Hs(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(ay),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=zC(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:ay(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function ay(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 zC(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===""||Hs(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=Hs(s.ts),a=Math.min(...o.map(d=>Hs(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 su(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 Hs(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var JC=3e4,YC=["logs","vitals","display"];function cy(e,t){if(t===void 0)return e;let r=YC.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:QC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:XC},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var QC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},XC={last_line:null,published_at:null,source:null};function uy(e){let t=e.stalenessMs??JC,r=iu(e.now),n=e.sampledAt==null?null:iu(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=>eD(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=ga(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:oD({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:nD(a),known_projects:rD(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:Xc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:ry({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:ly(e.deaths,e.recentDeathLimit??4)},engine:ZC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function ZC(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 eD(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Gs(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=iu(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:tD(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function tD(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 rD(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 nD(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 oD(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 iu(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function au(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(sD))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(iD))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||ny(t.repository_activity))&&(t.github_balance===void 0||Zc(t.github_balance))&&(t.deaths===void 0||su(t.deaths))&&(t.engine===void 0||aD(t.engine))&&(t.metrics===void 0||Gh(t.metrics))}function sD(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 iD(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 aD(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 py={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 fy(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`,Us=kt("48;2;114;47;55"),lu=kt("48;2;88;36;42"),hn=kt("38;2;255;255;255"),du=kt("38;2;201;150;158"),qs=kt("38;2;255;214;214"),Ks=kt("39"),Bt=kt("38;2;224;138;148"),cu=kt("38;2;240;200;120"),uu=kt("38;2;240;110;120"),pu=kt("38;2;255;214;214"),fu=kt("38;2;146;84;94"),gu=kt("38;2;255;95;95"),Cr=kt("49"),ar=kt("0"),$a=kt("1"),Na=kt("22");var lD=/\x1b\[[0-9;]*m/g,dD=/(\x1b\[[0-9;]*m)/,cD=/^\x1b\[[0-9;]*m$/;function Un(e){return e.replace(lD,"")}function uD(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Qt(e){return[...Un(e)].length}function Qe(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(dD))if(i!==""){if(cD.test(i)){s+=i,o=!uD(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 Vs(e,t){return e+" ".repeat(Math.max(0,t-Qt(e)))}function hu(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 zs(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 mn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return zs(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 bn(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 $o(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Js="!unregistered",mu="!lapsed",Ys="\u21E1",Dr="\u2020",No="\u25D0",Go="\u25EF",bu="\u21B3",yu="redskilled unreachable \u2014 Worker state unknown";function Wo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Ga(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function Qs(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 ku(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 Wa(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 wu(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(Wa(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(Wa(n.cells.iss,"iss=")),runner:Or(Wa(n.cells.run,"run=")),phase:Or(n.cells.phase),progress:Or(n.cells.bar),elapsed:Or(n.cells.elapsed),eta:Wa(Or(n.cells.eta),"eta="),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}}var yn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],$t={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},pD=" ",gy="\u2588",fD="\u25B6",gD="\u2717",hD="\u2591",mD=new Set(["gate","push-pr","merge","cascade"]),bD=new Set(["requeue"]),yD="repair";function Xs(e){return e.display?.origin===yD}function Ho(e,t=$t){let r=Qs(e,t.project),n=Wo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>Ua(y,t,e.generated_at)),i=DD(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:Qe(OD(s[h],i),t.maxWidth)})),l=wu(a,o,t.maxWidth),d=wD(e,t,n,r),c=n.length-o.length,u=[d.line,...SD(e,t),...a.map(y=>y.line)];c>0&&u.push(Qe(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...ED(e,t)),u.push(...xD(e,t));let p=Math.max(1,Math.floor(t.maxHeight??$t.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Qe(`\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:yn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function Ua(e,t,r){let n=e.display??py,o=Xs(e),s=[n.runner,n.model==null?null:hu(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&mD.has(n.phase),a=o||i||n.origin!=null&&bD.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:my(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:bn(fy(e,r)),eta:n.eta==null?"":`eta=${bn(n.eta*1e3)}`,hb:kD(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":CD(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${zs(n.tokens)}`,ctx:n.context==null?"":`ctx=${zs(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 kD(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} ${bn(Math.max(0,n-r))}`}function my(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 gy.repeat(Math.floor(t));let o=e.failed?gD:fD;return`${gy.repeat(n)}${o}${hD.repeat(Math.floor(t)-n-1)}`}function wD(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=AD(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=[RD(l??"host",c,d!=null&&d.current===!1?Ys:"")];(n==="unregistered"||n==="name-only")&&g.push(Js),n==="lapsed"&&g.push(mu);let f=p?.history_48h==null?null:vD(p.history_48h);f!=null&&g.push(Yr(f));let y=e.workers.filter(Xs).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Yr(`workers=${M} coding +`)} ${Us}${hn}${y} repairing${Cr}${Bt}`)}else g.push(Yr(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Yr(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(Yr(PD(i))),a!=null&&g.push(`${Us}${hn}${a}${Cr}${Bt}`),s.open_pull_requests!=null&&g.push(Yr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Yr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Yr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let R=p==null?null:by(p.hour),T=R==null?null:Yr(R);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=$o(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${_D(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&&Qt($)>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:Qe(D,t.maxWidth)}}function RD(e,t,r){return`${lu}${hn}${cu}\xBB${hn} ${$a}${e}${Na} ${du}v${t}${r}${hn}${Cr}${Bt}`}function Yr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${qs}${n}${Ks}${o}${Bt}`)}function _D(e){return bn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function by(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${mn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${mn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${mn(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 xD(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?Go:No,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Qe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function ED(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[Qe(`${Dr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Qe(`${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(Qe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function vD(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${mn(t)} ${Ru(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${mn(r)} ${Ru(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function SD(e,t){let r=e.metrics;return r==null?[Qe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Qe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[hy("tokens",r.history_48h.tokens_per_hour,t),hy("Tickets",r.history_48h.tickets_per_hour,t)]}var Ha=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function hy(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=${mn(o)}/h ${Ru(t.trend)}`.trim();if(r.maxWidth<72)return Qe(`${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 Qe(`${n} 48h ${TD(t)} \xB7 ${a}${l}`,r.maxWidth)}function TD(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?Ha[0]:Ha[Math.min(Ha.length-1,Math.floor(Math.max(0,n.value)/r*(Ha.length-1)))]).join("")}function Ru(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function PD(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 AD(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 DD(e){let t=Object.fromEntries(yn.map(r=>[r,0]));for(let r of e)for(let n of yn)t[n]=Math.max(t[n],Qt(r[n]));return t}function OD(e,t){let r=yn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>qa(o,Vs(e[o],s===r.length-1?Qt(e[o]):t[o])));return`${Cr}${Bt}${n.join(pD)}${ar}`}function qa(e,t){if(e==="wid")return`${$a}${t}${Na}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Us}${hn}${t.trimEnd()}${Cr}${Bt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${uu}${n}`).replace("\u25B6",`${pu}\u25B6`).replace("\u2717",`${gu}\u2717`).replace(/░+/g,n=>`${fu}${n}`)+Bt;let r=t.indexOf("=");return r>0?`${qs}${t.slice(0,r+1)}${Ks}${t.slice(r+1)}${Bt}`:t}function xu(e){return Object.freeze({none:!0,reason:e})}function Ka(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function _u(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=>_u(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=_u(o,t);return Object.freeze(r)}finally{t.delete(e)}}function FD(e){let t=_u(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Uo(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 Ge={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function qn(e,t=Ge){let r=Qs(e,t.project),n=Wo(e,t),o=Ga(e,t),s=$D(e,t.project,r),i=MD(e,t,n,r,s.prose),a=ku({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:UD(i,ID(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Qt(f)<=t.maxWidth)break}let d=Qe(l.line,t.maxWidth),c=l.detail==="workers"?GD(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?WD(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 Tu(e){let t=e.options??Ge,r=Qe(yu,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 ID(e,t){return e==="projects"?t.map(HD):[]}function MD(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${Eu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(Su(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${Eu(r,r.length)}`),s.push(Su(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${Eu(r,r.length)}`),s.push(Su(e,t)),s.push(Js)):s.push(o),s.push(yy(e));let a=LD(e);a!=null&&s.push(a);let l=jD(e);l!=null&&s.push(l),e.staleness.stale&&s.push(ky(e));let d=s.join(" ");return!i||Qt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,yy(e),e.staleness.stale?ky(e):null].filter(c=>c!=null).join(" ")}function Eu(e,t){let r=e.filter(Xs).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function yy(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Ys}`}function LD(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Go} quota spent`:t.posture==="reserved"?`${No} quota band`:null}function jD(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=$o(o.latest_refusal);return`${Dr}${r} boot-refused \xD7${o.count} in ${BD(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Dr}${r} ${n.sender_class}`}function BD(e){return bn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function $D(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return Uo({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:xu("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 Uo({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${vu(n.at)}`}`,repair:Ka()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${vu(n.registered_at)})`;return Uo({state:`project unknown \u2014 ${t} lapsed at ${vu(n.at)}${o}`,repair:Ka()})}return Uo({state:`project unknown \u2014 ${t} lapsed`,repair:Ka()})}return r==="unresolved"?Uo({state:"project unknown \u2014 this directory resolved to no project",repair:xu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function vu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function Su(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 ky(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function ND(e,t,r,n){let o=r.map(s=>qa(s,Vs(e[s],t[s])));return Qe(`${Cr}${Bt}${o.join(" ")}${ar}`,n)}function GD(e,t,r){let n=e.map(a=>Ua(a,t,r)),o=yn.filter(a=>n.some(l=>Qt(l[a])>0)),s=[...o],i=wy(n,s);for(;s.length>1&&Ry(i,s)>t.maxWidth;)s.pop(),i=wy(n,s);return{lines:n.map(a=>ND(a,i,s,t.maxWidth)),degraded:s.length<o.length||Ry(i,s)>t.maxWidth}}function wy(e,t){let r=Object.fromEntries(yn.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 Ry(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function WD(e,t){let r=$o(e.log.last_line);return r==null?null:Qe(` ${bu} ${_y(e,t.mode)}: ${r}`,t.maxWidth)}function _y(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function HD(e){return`${e.project_label} ${e.worker_count}w ${lr(e.observed_rss_bytes)}`}function UD(e,t,r){return[e,...t].join(r)}var Va=1;async function Zs(e,t){return await aa(e,t,"redskilled daemon")}function Ey(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:Va,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:zD(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:Uh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:JD(e)}}function zD(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:Am(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 JD(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 vy(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||eO(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&qh(t.budget_accounting)&&(t.scope===void 0||Em(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Ls))&&(t.demand===void 0||um(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(QD))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(XD))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(ZD))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(YD))&&(t.upgrade===void 0||tO(t.upgrade))}function YD(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 QD(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 XD(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 ZD(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 eO(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 tO(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||rO(t.major_hold))}function rO(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 nO}from"node:crypto";import{mkdir as oO,readFile as sO,rename as iO,writeFile as aO}from"node:fs/promises";import{dirname as lO}from"node:path";function Sy(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await sO(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=dO(s);return cO(i)?i.registrations:[]}async function o(s){await oO(lO(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${nO()}.tmp`,a={version:1,registrations:[...s]};await aO(i,`${ot(a,{keyedMapCollapse:!0})}
|
|
90
|
+
`,{encoding:"utf8",mode:384}),await iO(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 dO(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function cO(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(Ls)}import{randomInt as PO}from"node:crypto";import{spawn as AO}from"node:child_process";import{appendFileSync as CO,mkdirSync as DO}from"node:fs";import{dirname as OO}from"node:path";import{delimiter as Ty,dirname as uO}from"node:path";function pO(e,t=Ty){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function fO(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=uO(t);return r===""||r==="."?null:r}function Py(e,t=process.execPath,r=Ty){let n=pO(e,r),o=fO(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}import{existsSync as Ou}from"node:fs";import{delimiter as _O,join as By}from"node:path";import{join as Ay}from"node:path";import{existsSync as gO}from"node:fs";import{createRequire as hO}from"node:module";var Cy="redskilled-job-object.node",Kn=100;function qo(e){return{available:!1,reason:e}}function mO(e,t,r){return[Ay(r,"prebuilds",`${e}-${t}`,Cy),Ay(r,"native","build","Release",Cy)]}function Dy(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return qo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??yO(),o=e.exists??gO,s=mO(t,r,n),i=s.find(d=>o(d));if(i==null)return qo(`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??hO(import.meta.url),l;try{l=a(i)}catch(d){return qo(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return bO(l)?{available:!0,binding:l}:qo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function bO(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function yO(){return new URL("..",import.meta.url).pathname}function Oy(e){let t=e??{},r=[],n=kO(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 kO(e){return Gs({budget:e})}var za=5,Fy=19;function Pu(e){return{available:!1,reason:e}}var wO="an address-space rlimit is not a resident-memory ceiling: a runtime that reserves address space it never faults in would die under a limit it never used, so no memory rlimit is set and the daemon's RSS sampling floor is the ceiling that actually holds";function My(e,t){let r=e??{},n=[],o;if(!t.canRenice)n.push("nice is not on this host, so no priority control was applied and the Worker competes with interactive work");else if(r.cpu_weight==null)o=za;else if(r.cpu_weight<Kn){let a=Math.round(Fy*(Kn-r.cpu_weight)/Kn);o=Math.min(Fy,Math.max(za,a))}else o=za,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 ${za}`);let s=Iy(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=Iy(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:wO,...n.length>0?{note:n.join("; ")}:{}}}function Ly(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 ${RO(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
|
|
91
|
+
`),e.command,...e.args]}function jy(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 Au(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 Iy(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function RO(e){return`'${e.replace(/'/g,"'\\''")}'`}var $y="REDSKILLED_PLACEMENT",Ja="red-worker",Cu="/bin/sh";function Ny(e=process.env,t=process.platform){let r=Pu(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:Dy({platform:t}),posix:r};let n=qo(`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:xO(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&Ou(By(o,"systemd","private"));return{platform:t,systemdRun:Uy("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function xO(e){return Ou(Cu)?{available:!0,shell:Cu,nice:Uy("nice",e)}:Pu(`no POSIX shell was found at ${Cu}, so there is nothing to apply rlimits or priority in`)}function Gy(e=process.env){let t=(e[$y]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function EO(e,t,r=Ja){return Wy(e,t,r).replace(/\.service$/,"")}function Wy(e,t,r=Ja){return`${Du(r,"red-worker",24)}-${Du(e,"project",32)}-${Du(t,"worker",32)}.service`}function Hy(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:Es({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 ${$y}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return SO(e,t,r,n,o,i);if(e.probes.platform==="darwin")return vO(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=Wy(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=Es({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=Au(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 vO(e,t,r,n,o){let s=e.probes.posix;if(!s.available)return o(`POSIX limit placement unavailable: ${s.reason}. The Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling`);let i=My(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=jy(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:Ly({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Es({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 SO(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=Oy(r),l=EO(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:Es({scope:l,memory_ceiling:n,scope_degradation:null}),...TO(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,Au(e.budget))}}function TO(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function Uy(e,t){for(let r of(t.PATH??"").split(_O)){if(!r)continue;let n=By(r,e);if(Ou(n))return n}return null}function Du(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}var Ko=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},Xt=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},Fu="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",qy=4,FO=Fu.length**qy;function ei(e,t=PO){let r=new Set(e);for(let n=0;n<FO;n+=1){let o="h";for(let s=0;s<qy;s+=1)o+=Fu[t(Fu.length)];if(!r.has(o))return o}throw new Ko("redskilled exhausted the host Worker id space")}function IO(e){if(e==null||e.trim()==="")return{ready:!1};let t=OO(e);try{return DO(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})`}: ${Iu(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function MO(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{CO(t,yt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
|
|
92
|
+
`);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 LO(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 Ko(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new Ko("redskilled worker spec args must be an array")}function jO(e){if(e==null)throw new Xt("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new Xt(e.reason,e)}function Ky(e){let{spec:t,admission:r}=e;jO(r),LO(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||ei(e.liveWorkerIds??[]),i=e.probes??Ny(n),a=Sm(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),l=e.openLog===!1?{ready:!1}:IO(a),d=l.ready,c={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:Py(t.env?.PATH??n.PATH,e.execPath??process.execPath)},u=Hy({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??Gy(n),probes:i,pipeOutput:d}),g=(e.spawnFn??AO)(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&&MO(g,a),g.pid==null)throw g.once("error",()=>{}),new Ko(`redskilled could not spawn ${JSON.stringify(u.command)} for worker ${s}`);let f=u.job!=null?BO(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 BO(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: ${Iu(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)}: ${Iu(i)}. ${o}`}}return{job:s}}function Iu(e){return e instanceof Error?e.message:String(e)}async function $O(e){let t=Date.now();for(;;){if(!e.waiting())return;let r=e.deadlineMs-(Date.now()-t);if(r<=0){e.expire();return}await new Promise(n=>setTimeout(n,Math.min(r,10)))}}function Vy(e){let t=new Set,r=new Set;function n(o,s){let i=e.registration(s.project_label)?.hooks?.[o];if(i!=null)try{let a=ka(i,{worker_id:ei(e.liveWorkerIds()),slot:0,workspace_path:s.workspace_path},{project_label:s.project_label}),l=e.admit(a);if(!l.admitted)throw new Xt(l.reason,l);let d=e.start(a,l);if(t.add(d.worker_id),i.mode==="sync"){let c=i.deadline_ms,u=$O({deadlineMs:c,waiting:()=>t.has(d.worker_id),expire:()=>{e.recordExpiry(s.project_label,`project ${JSON.stringify(s.project_label)} sync ${o} hook exceeded its declared ${c}ms deadline; redskilled stopped waiting and proceeded`)}});r.add(u),u.finally(()=>r.delete(u))}}catch(a){let l=a instanceof Error?a.message:String(a);e.refuse(s.project_label,`project ${JSON.stringify(s.project_label)} registered an async ${o} hook, but redskilled refused it before launch: ${l}`)}}return{track:o=>t.add(o),onEvent(o,s){let i=t.has(s.worker_id);!i&&Oo.includes(o)&&n(o,s),i&&(o==="worker-death"||o==="worker-budget-kill")&&t.delete(s.worker_id)},async waitForSettled(){for(;r.size>0;)await Promise.all(r)}}}import{spawnSync as Ya}from"node:child_process";async function Mu(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}var zy=3e4;function Jy(e){return e.unit!=null&&e.unit!==""?NO(e.unit):Ye(e.pid)}function NO(e){let t=Ya("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var GO="REDSKILLED_UNIT_DISCOVERY",Yy="(unowned)";function Qy(e){let t=Ya("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[GO]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function Xy(e,t,r=process.env){return WO(r)&&e===t}function Zy(e=Ja){let t=Ya("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(`
|
|
93
|
+
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function e0(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:Yy,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 t0(e){return e.project_label.trim()!==""?e:{...e,project_label:Yy,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 r0(e){if(e.unit!=null&&e.unit!==""){let t=Ya("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 ni=50,ju=15e3,RU=2*ju;function HO(e,t=ni){if(Bu(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 o0(e,t={}){let r=t.batchSize??ni;if(Bu(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(`
|
|
94
|
+
`),aliases:n}}function s0(e,t){let r=ri(t),n=ri(r.data),o=Array.isArray(r.errors)?r.errors.map(ri):[],s=zO(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=YO(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=>JO(u.path,a));return s.exhausted||l0(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: ${Lu(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function UO(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:ni,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function i0(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:ni,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 a0(e){if(e.projects.length===0)return UO(e.now);if(e.transport.conditionalList)return await KO(e);let t=e.batchSize??ni,r=HO(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=o0(s,{batchSize:t});try{let a=await e.transport(i.query),l=s0(i,a);n.push(...l.projects),o=ti(o,l.rate_limit)}catch(a){let l=a instanceof Error?a.message:String(a),d=/rate limit|secondary rate|429/i.test(l);o=ti(o,{remaining:null,reset_at:null,exhausted:d});for(let c of s)n.push({project_label:c.project_label,outcome:d?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(c.project_label)} answered: ${l}`})}}return{version:1,fetched_at:e.now,request_count:r.length,project_count:n.length,batch_size:t,rate_limit:o,projects:n}}var qO={key:"redskilled queue poll",budget:"rest"};async function KO(e){Bu(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=o0([s],{batchSize:1}),d=s0(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=ti(n,d.rate_limit);continue}let i=await t({cacheKey:`queue:${s.project_label}:${JSON.stringify(s.poll)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:{owner:s.poll.owner,repo:s.poll.repo,state:"open",labels:s.poll.labels.join(","),...s.poll.creator==null?{}:{creator:s.poll.creator}},operation:qO});o+=i.requestCount;let a=i.data.filter(l=>!d0(l.pull_request)).length;n=ti(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=Ns(i);n=ti(n,{remaining:null,reset_at:null,exhausted:a}),r.push({project_label:s.project_label,outcome:a?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(s.project_label)} answered: ${i instanceof Error?i.message:String(i)}`})}return{version:1,fetched_at:e.now,request_count:o,project_count:r.length,batch_size:1,rate_limit:n,projects:r}}function Bu(e){if(e.length===0)throw new Error("redskilled queue discovery needs at least one registered project");let t=new Set;for(let r of e){if(typeof r.project_label!="string"||r.project_label==="")throw new Error("redskilled queue discovery needs a project label for every registered project");if(typeof r.selector!="string"||r.selector==="")throw new Error(`redskilled queue discovery needs a selector for project ${JSON.stringify(r.project_label)}: a project that names no work has no queue to discover`);if(t.has(r.project_label))throw new Error(`redskilled holds one selector per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function ti(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted}}function VO(e){let t=n0(e,"x-ratelimit-remaining"),r=n0(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function n0(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 zO(e,t){let r=ri(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(l0)||n===0}}function l0(e){return e==null?!1:Lu(e.type)==="RATE_LIMITED"||/rate limit/i.test(Lu(e.message))}function JO(e,t){return Array.isArray(e)&&e.includes(t)}function YO(e){let t=ri(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function ri(e){return d0(e)?e:{}}function d0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Lu(e){return typeof e=="string"?e:""}function c0(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(QO,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=XO?Math.max(t,3e4):o<=ZO?Math.max(t,2e4):t}var QO=1e5,XO=250,ZO=1e3;var e1={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},t1=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],r1=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function u0(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...e1};for(let n of t1){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of r1){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{execFile as n1}from"node:child_process";var o1="refs/heads/red-trunk";function $u(e){return`${e.workspace_path}\0${e.trunk.remote}\0${e.trunk.branch}`}function p0(e,t,r){let n=r instanceof Error?r.message:String(r);return{...e,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(t.trunk.remote)} could not refresh branch ${JSON.stringify(t.trunk.branch)}: ${n}`}}function Qa(e,t){return new Promise((r,n)=>{n1("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function f0(e){await Qa(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Qa(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 Qa(e.workspace_path,["update-ref",o1,t]),t}async function g0(e){let t=await Qa(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 s1,stat as i1}from"node:fs/promises";var a1=16*1024;async function h0(e,t=a1){let r;try{r=(await i1(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await s1(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 l1(o)}function l1(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 v1}from"node:child_process";import{existsSync as S1,readdirSync as T1}from"node:fs";import{dirname as P1,join as S0,resolve as A1}from"node:path";var d1="<version>";function kn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():d1;return[`npx -y -p ${$n}@${n}`,e,...t].join(" ")}function dr(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}:null}function Nu(e,t){let r=dr(e),n=dr(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var FU=4*60*60*1e3;Kr();Kr();import{spawnSync as c1}from"node:child_process";import{randomUUID as u1}from"node:crypto";import{mkdir as p1,rm as f1,writeFile as g1}from"node:fs/promises";import{existsSync as h1,mkdirSync as m1,renameSync as b1,writeFileSync as y1}from"node:fs";import{homedir as k1}from"node:os";import{dirname as m0,join as oi}from"node:path";var Zt="redskilled.service",Gu="REDSKILLED_SUPERVISED",w1="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function R1(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||oi(e.HOME?.trim()||k1(),".config");return oi(t,"systemd","user")}function Vo(e=process.env){return oi(R1(e),Zt)}function b0(e,t={}){let r=t.env??process.env,n=ua(t.override??{},t.entryLookup??{}),o=[...n.args,...dn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:Zt,unitPath:Vo(r),command:n.command,args:o,text:_1(n.command,o,e)}}function _1(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${w1}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(w0).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${Gu}=1"`,`Environment="REDSKILLED_SESSION=${R0(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
|
|
96
|
+
`)}function x1(e=process.env){return oi(`${Vo(e)}.d`,"10-current-entry.conf")}function y0(e){return oi(`${e}.d`,"10-current-entry.conf")}function k0(e,t,r={}){let n=x1(r.env??process.env),o=`${n}.${process.pid}.${u1()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...dn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(w0).join(" ")}`,""].join(`
|
|
97
|
+
`);m1(m0(n),{recursive:!0,mode:448}),y1(o,i,{encoding:"utf8",mode:384}),b1(o,n);let a=(r.run??Za)(["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 w0(e){return/[\s"'\\$%]/.test(e)?`"${R0(e)}"`:e}function R0(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function _0(e,t={}){let r=t.writeFile??E1,n=t.removeFile??v0,o=t.run??Za,s=[];return await r(e.unitPath,e.text),await n(y0(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Xa("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Xa("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function x0(e={}){let t=e.removeFile??v0,r=e.run??Za,n=Vo(e.env??process.env),o=[Xa("disable",r,["systemctl","--user","disable","--now",Zt])];return await t(n),await t(y0(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Xa("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function E0(e={}){let t=e.exists??h1,r=e.run??Za,n=Vo(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Zt]).status===0,i=o&&r(["systemctl","--user","is-active",Zt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Zt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Zt}`}]:[];return{unitName:Zt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Xa(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 E1(e,t){await p1(m0(e),{recursive:!0}),await g1(e,t,{encoding:"utf8",mode:420})}async function v0(e){await f1(e,{force:!0})}function Za(e){let t=c1(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 T0=75,A0=9e5,P0="redskilled-replacement-entry-unresolved",C1="REDSKILLED_NO_REGISTRY_PROBE",C0="REDSKILLED_BORN_BY_REPLACEMENT";function D0(e=process.env){return e[C0]==="1"}function O0(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function F0(e){let t=e.running.trim();if(si(t))return null;let r=e.newest?.trim()??"",n=dr(r),o=dr(t);return n===null||o===null||n.major<=o.major?null:{version:r,running_major:o.major,held_major:n.major,reason:`redskilled ${r} is published and this daemon runs ${t}; a major version is deliberately never adopted by the background check, because a breaking change must not arrive on a machine that is holding Workers`,action:D1(n.major,e.supervised)}}function D1(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: ${kn("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 I0(e){let t=e.running.trim();if(si(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||dr(r)===null?{act:"hold",reason:"published-unknown"}:Nu(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function si(e){let t=e.trim();return dr(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function M0(e=process.env){return e[Gu]==="1"}var Wu=class extends Error{code=P0;searched;constructor(t,r){super(`${P0}: 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 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
|
|
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 O1(e,t={}){let r=t.env??process.env,n=t.exists??S1,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=[[S0(ca(r),i),"bundle-cache"]];s&&l.push([S0(P1(A1(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 Wu(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 L0(e,t={},r,n){let s=(t.resolveEntry??(i=>O1(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>k0(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 j0(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??I1)(T0),{...e,exitCode:T0};let o=[...e.entry.args,...dn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??F1(n.env))(e.entry,o),e}function F1(e){return(t,r)=>{let n=v1(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[C0]:"1"}});n.on("error",()=>{}),n.unref()}}function I1(e){process.exitCode=e,process.exit(e)}async function B0(e,t=process.env,r=M1){let n=N0(t),o=G0(e,t);if(t[C1]==="1")return{version:o,newest:n};let s=dr(e)===null?"0.0.0":e;try{let i=await bh({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function $0(e,t=process.env,r){let n=r??Hu;return{version:G0(e,t,n),newest:N0(t,n)}}function N0(e=process.env,t=Hu){return H0(W0(e,t))}function G0(e,t=process.env,r=Hu){let n=dr(e.trim())?.major;return n===void 0?null:H0(W0(t,r).filter(o=>dr(o)?.major===n))}function W0(e,t){let r=[];for(let n of t(ca(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||dr(o)===null||r.push(o)}return r}function H0(e){let t=null;for(let r of e)(t===null||Nu(r,t)>0)&&(t=r);return t}function Hu(e){try{return T1(e)}catch{return[]}}async function M1(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 L1,readFile as j1,rename as B1,rm as Uu,writeFile as U0}from"node:fs/promises";import{randomUUID as $1}from"node:crypto";import{dirname as N1}from"node:path";var el=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function zo(e){let t;try{t=await j1(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=G1(t);return W1(r)?r:void 0}var q0;function V0(){return q0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},q0}function z0(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){return await zo(e)}async function i(l){let d=`${e}.${l.pid}.${$1()}.tmp`;await U0(d,K0(l),{encoding:"utf8",mode:384}),await B1(d,e)}function a(l,d){return{version:1,pid:l.pid,start_time:l.startTime,session_key_hash:t.sessionKeyHash,machine_id_hash:t.machineIdHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}return{read:s,async acquire(l){await L1(N1(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await U0(e,K0(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 Uu(e,{force:!0}),d=!0;continue}if(qu(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await Uu(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!qu(d,l))throw new el(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!qu(d,l))throw new el(e);return await Uu(e,{force:!0}),!0}}}function qu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function K0(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
101
|
+
`}function G1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function W1(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 Q0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Co,o=e.clock??(()=>new Date().toISOString()),s=e.launch??Ky,i=e.refreshTrunk??f0,a=e.countBaseMovement??g0,l=e.ceiling??ha();e.repositoryActivity!=null&&ou(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??V0(),c=e.leaseStore??z0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??ba(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Is(t.machineClaimPath,p,{clock:o});await q1(V1(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>=Sh&&await ic(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 Vr(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 Dh(t.socketPath,async()=>{let[b,P]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return b!=null&&b.pid!==d.pid&&Ye(b.pid)?!0:P!=null&&P.socket_path===t.socketPath&&P.pid!==u.pid&&Ye(P.pid)})}catch(b){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),b}let N=o(),H=e.eventLane??im(t.eventLanePath),G=e.registrationIntentStore??Sy(t.registrationIntentPath),I=e.liveness??Jy,W=e.livenessGraceMs??zy,q=e.stopWorker??r0,oe=e.unitInventory??(()=>Xy(t.machineClaimPath,Fo({machineIdHash:t.machineIdHash}))?Zy():[]),ae=e.unitMainPid??Qy,se=e.treeSampler??zb,Z=e.readLogTail??h0,pe=e.sampleMs??vh,Ae=e.leaseRenewMs??oc,Ee=e.registrationSustainMs??Th,ke=e.publishedVersion??(b=>B0(b)),Y=e.replaceCheckMs??A0,de=e.publishedProbeTimeoutMs??xh,Re=e.localPublishedEvidence??(b=>$0(b,e.replacementIO?.env??process.env)),De=e.bornByReplacement??D0(),ve=e.replaceBootCheckMs??Eh,we=e.supervised??M0(),Se=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??nu,_e=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??fe?.transport,Gt=Fe?.unconfiguredReason??Ah,tn=Fe?.intervalMs??ju,rn=e.demandMs??15e3,go=e.demandBackoffMs??3e4,ce=new Map,Wt=new Map,ct=new Set,Ze=new Map,_t=new Map,lt=[],ut=[],xt=e.deaths===void 0?void 0:[...e.deaths],Et=await G.read().catch(()=>[]),Gr=Date.parse(N),Ce=new Map,Le=new Map;for(let b of Et){let P=Date.parse(b.renew_by);!Number.isFinite(Gr)||!Number.isFinite(P)||P>=Gr?Ce.set(b.project_label,b):Gr-P<=b.renew_within_ms&&Le.set(b.project_label,b)}let J=Vy({registration:b=>Ce.get(b),liveWorkerIds:()=>ce.keys(),admit:yo,start:(b,P)=>bs(b,{admission:P,hook:!0}).worker,refuse:(b,P)=>void H.recordDemandRefusal({ts:o(),projectLabel:b,detail:P}).catch(()=>{}),recordExpiry:(b,P)=>void H.recordDemandRefusal({ts:o(),projectLabel:b,detail:P}).catch(()=>{})}),C=Promise.resolve();function w(b){let P=C.then(async()=>{await J.waitForSettled();let j=await b();return await J.waitForSettled(),j});return C=P.then(()=>{},()=>{}),P}let F=new Set,L={},B=null,K=null,X=null,xe=!1,je=0,Be=null,Lt="none",nn=null,Rr=null,on=null,_r=null,vt=null,re=null,me=[],$e=[],Ht=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),jt=null,et={},ho=!1,sn,Tn,Pn,Ne,An,Cn,Dn,xr,Wr,Me,tt=!1,Hr=!1,On=null,kf,Jl=new Promise(b=>{kf=b});function mo(b){wf(b);let P=Date.parse(b),j=Cm(Ce.values(),P);for(let U of j.lapsed){Ce.delete(U.project_label);let z=vt?.projects.find(le=>le.project_label===U.project_label),ne=[...ce.values()].some(le=>le.project_label===U.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(U.project_label,U),Rx(U,P)}return j.lapsed.length>0&&bo(),j.lapsed}function bo(){let b=new Map(Le);for(let[P,j]of Ce)b.set(P,j);G.replace([...b.values()]).catch(()=>{})}function Rx(b,P){let j=Number.isFinite(P)?new Date(P).toISOString():b.renew_by;me.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`}),me.length>Cs&&me.splice(0,me.length-Cs)}function wf(b){if(Ce.size===0)return;let P=Date.parse(b);if(!Number.isFinite(P))return;let j={};for(let le of ce.values())j[le.project_label]=(j[le.project_label]??0)+1;let U=vt==null?Number.NaN:Date.parse(vt.fetched_at),z=new Map((vt?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...Ce.values()]){let Je=Number.isFinite(U)&&P-U<=le.renew_within_ms?z.get(le.project_label):void 0,ko=yc(le,{now:b,...Je==null?{}:{queue:{outcome:Je.outcome,depth:Je.depth}},liveWorkers:j[le.project_label]??0});ko.registration!==le&&(Ce.set(le.project_label,ko.registration),ne=!0)}ne&&bo()}function Rf(b){if(Le.size===0)return;let P=Date.parse(b);if(!Number.isFinite(P))return;let j=new Map((vt?.projects??[]).map(z=>[z.project_label,z])),U=!1;for(let[z,ne]of[...Le]){if(P-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),U=!0;continue}let le=j.get(z),rt=yc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ce.values()].filter(Je=>Je.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(Ce.set(z,rt.registration),Le.delete(z),U=!0):rt.verdict==="drained"&&(Le.delete(z),U=!0)}U&&bo()}function Li(){let b=o();return mo(b),Ey({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:xm(g.claimPath,p,u),workers:[...ce.values()],registrations:[...Ce.values()],demand:re,lapses:me,stops:$e,orphanedRegistrations:[...Ht.values()],birthLatches:gm(et,Date.parse(b)),queue:vt,published:{version:K,checkedAt:X,newer:xe,replacement:Lt,newest:nn,majorHold:Rr,checks:je,holdReason:Be}})}function ji(){return uy({hostState:Li(),ceiling:l,rss:L,sampledAt:B,logLines:Object.fromEntries(Ze),displays:Object.fromEntries(_t),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:on,githubBalance:_r,...xt===void 0?{}:{deaths:xt},metrics:Nh({observations:lt,outcomes:ut,now:o()})})}function _x(b,P){let j=Wh(lt,b,P,o());lt=j.observations,H.recordWorker(j.record).catch(()=>{})}function xx(b){ut=Nn([...ut,b],P=>P.ts,{now:o()})}async function Yl(){return fe==null||fe.projects.length===0?null:(on=await ty({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),on)}async function _f(){return _e==null?null:(_r=await Jc({transport:_e.transport,now:o()}),_r)}function Ex(){if(tt||Wr!=null||_e==null)return;let b=()=>{Wr=void 0,_f().catch(()=>{}).then(()=>{if(tt)return;let P=_e.intervalMsOverride??La(_r??vx(),{now:o()});Wr=setTimeout(b,P),Wr.unref()})};b()}function vx(){return Ma(o())}function Sx(){if(!(at!=null||Fe?.armTransport==null))try{let b=Fe.armTransport();if(b.transport!=null){at=b.transport;return}b.unconfiguredReason!=null&&(Gt=b.unconfiguredReason)}catch(b){Gt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function xf(){let b=o();mo(b);let P=Date.parse(b);for(let[ne,le]of[...Le])Number.isFinite(P)&&P-Date.parse(le.renew_by)>le.renew_within_ms&&Le.delete(ne);let U=[...new Map([...Le,...Ce]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,le)=>ne.project_label.localeCompare(le.project_label));if(U.length===0)return null;if(Sx(),at==null)return vt=i0(U,b,Gt),vt;vt=await a0({projects:U,transport:at,now:b,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return Rf(z),wf(z),vt}async function Ef(){let b=o();if(ho)return re??cm(b);ho=!0;try{await Xl().catch(()=>{});let P={};for(let be of ce.values())P[be.project_label]=(P[be.project_label]??0)+1;let j={};for(let be of vt?.projects??[])j[be.project_label]=be.depth;let U=Date.parse(b),z=Number.isFinite(U)?U:0;for(let[be,St]of Object.entries(et)){if(St.probeWorkerId==null)continue;let Ui=ce.get(St.probeWorkerId);Ui!=null&&z-Date.parse(Ui.started_at)>=6e4&&(et[be]=fc())}let ne=dm({projects:[...Ce.values()].map(be=>({project_label:be.project_label,selector:be.selector,argv:be.argv,workspace_path:be.workspace_path,target:be.target})),queue:j,live:P,nowMs:z,backoffUntilMs:jt,birthHealth:et}),le=[],rt=new Map,Je=null;for(let be of ne.births){let St,Ui=ei(ce.keys()),wo=Ce.get(be.project_label),qi=ka({argv:be.argv,...wo?.env==null?{}:{env:wo.env},...wo?.log_path==null?{}:{log_path:wo.log_path}},{worker_id:Ui,slot:be.index,workspace_path:be.workspace_path},{project_label:be.project_label});try{if(wo?.trunk==null)St=await w(()=>bs(qi));else{let Ur={workspace_path:be.workspace_path,trunk:wo.trunk},ys=yo(qi);if(!ys.admitted)throw new Xt(ys.reason,ys);let Nf=$u(Ur),Ki=rt.get(Nf);Ki==null&&(Ki=Ql(Ur),rt.set(Nf,Ki)),St=await w(()=>Df(qi,Ur,Ki,ys))}}catch(Ur){Je=Ur instanceof Error?Ur.message:String(Ur),Ur instanceof Xt&&Ur.admission?.verdict==="refused-unreachable-trunk-remote"||(jt=(Number.isFinite(U)?U:Date.now())+go);break}le.push({project_label:be.project_label,worker_id:St.worker.worker_id,pid:St.worker.pid,...St.fork_sha==null?{}:{fork_sha:St.fork_sha},warnings:qi.log_path==null?[...St.warnings,`project ${JSON.stringify(be.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(St.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:St.warnings});let td=et[be.project_label];td?.haltUntilMs!=null&&z>=td.haltUntilMs&&(et[be.project_label]=fm(td,St.worker.worker_id))}Je==null&&ne.births.length>0&&(jt=null);let ko=new Set(le.map(be=>be.project_label));for(let be of ne.intents){if(be.queue_depth==null||be.queue_depth<=0||be.live>=be.target||ko.has(be.project_label))continue;let St=Je!=null&&(be.outcome==="asking"||be.outcome==="half-open-probe")?`project ${JSON.stringify(be.project_label)} was birth-eligible but the host refused it: ${Je}`:be.detail;await H.recordDemandRefusal({ts:b,projectLabel:be.project_label,detail:St}).catch(()=>{})}return re={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Je,retry_after:jt==null?null:new Date(jt).toISOString(),projects:ne.intents},re}finally{ho=!1}}function Tx(b){return qn(ji(),{...Ge,mode:b?.mode??Ge.mode,project:b?.project??Ge.project,maxWorkers:b?.max_workers??Ge.maxWorkers,maxProjects:b?.max_projects??Ge.maxProjects,maxWidth:b?.max_width??Ge.maxWidth,verbose:b?.verbose??Ge.verbose})}function Px(b){return Ho(ji(),{mode:b?.mode??$t.mode,project:b?.project??$t.project,maxWidth:b?.max_width??$t.maxWidth,maxRows:b?.max_rows??$t.maxRows,maxHeight:b?.max_height??$t.maxHeight,showDeathDetails:b?.show_death_details??$t.showDeathDetails})}function Fn(b,P,j){return Im({op:b,sessionProject:P??null,targetProject:j})}async function Ax(b){let P=ce.get(b.worker_id),j=Fn(Fm(b.command),b.session_project,P?.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 U=P!=null&&await Ix(P,b.detail??"stopped by its own project");return{version:1,command:b.command,worker_id:b.worker_id,applied:U,reach:j,detail:U?`redskilled stopped Worker ${JSON.stringify(b.worker_id)} of project ${JSON.stringify(P.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to stop`}}function Bi(b){ce.delete(b),ct.delete(b),Ze.delete(b),_t.delete(b)}function vf(b){let P=ce.get(b.worker_id),j=Fn("worker-heartbeat",b.session_project,P?.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(P==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 U=o();Ze.set(b.worker_id,{line:b.last_log_line,published_at:U,source:"heartbeat"});let z=b.display===void 0?null:u0(b.display);if(z!=null){let ne=_t.get(b.worker_id)?.display,le={display:z,published_at:U};_t.set(b.worker_id,le),_x(le,P),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ut("worker-activity",P,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ut("worker-heal",P,`${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:U,detail:`redskilled stored a line for Worker ${JSON.stringify(b.worker_id)} without reading it`}}async function Cx(b,P,j){let U=`exit code=${P??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await Ox(b)){Fx(b,`its launch client ended (${U}) 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:sc(await Z(b.log_path).catch(()=>null));Bi(b.worker_id),Ut("worker-death",b,z==null?U:`session-error: ${z}`,{exitCode:P,signal:j,refusal:z}),pt()}function Dx(b,P){if(!Number.isFinite(P)||P<0){et[b]=Fs;return}let j=et[b]??Fs,U=pm(j,P,Date.parse(o()));et[b]=U,U.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(b)} lost ${U.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(U.haltUntilMs).toISOString()}
|
|
102
|
+
`)}function Sf(b,P){let j=Fn("project-reset",P,b);if(!j.permitted)throw new Error(j.reason);let U=et[b]?.haltUntilMs!=null||et[b]?.probeWorkerId!=null;return et[b]=fc(),{version:1,project_label:b,latch:"project-birth-breaker",reset:U,reach:j,detail:U?`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 Ox(b){try{return await I(b)===!0}catch{return!1}}function Fx(b,P){let j=b.unit==null?null:ae(b.unit);ce.set(b.worker_id,{...b,...j!=null&&j>0?{pid:j}:{},warnings:[...b.warnings,P]}),ct.add(b.worker_id),pt()}function Tf(b,P){let j=Fn("project-register",P,b.project_label);if(!j.permitted)throw new Error(j.reason);let U=o();mo(U);let z=Tm(b,{now:U,held:Ce.get(b.project_label)});return Ce.set(z.project_label,z),bo(),Cf(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 Pf(b,P={}){let j=Fn("project-renew",P.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let U=o();mo(U);let z=Ce.get(b);if(z==null){if(Ht.has(b))throw new Gn(b,{kind:"orphaned"});let le=[...$e].reverse().find(Je=>Je.project_label===b);if(le!=null)throw new Gn(b,{kind:"stopped",at:le.at});let rt=[...me].reverse().find(Je=>Je.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=Pm(z,{now:U,...P.renewWithinMs==null?{}:{renew_within_ms:P.renewWithinMs},...P.launch==null?{}:{launch:P.launch}});return Ce.set(ne.project_label,ne),bo(),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}`+(P.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function Af(b,P){let j=Fn("project-deregister",P,b);if(!j.permitted)throw new Error(j.reason);let U=Ce.get(b)??Le.get(b),z=Ce.delete(b),ne=Le.delete(b),le=z||ne;if(U!=null){let rt=`redskilled released the registration for project ${JSON.stringify(b)}`;Cf(b),$e.push({project_label:b,registered_at:U.registered_at,at:o(),detail:rt}),$e.length>Cs&&$e.splice(0,$e.length-Cs)}return le&&bo(),{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 Cf(b){Le.delete(b);for(let P=me.length-1;P>=0;P-=1)me[P].project_label===b&&me.splice(P,1);for(let P=$e.length-1;P>=0;P-=1)$e[P].project_label===b&&$e.splice(P,1);Ht.delete(b)}async function Ix(b,P){try{await q(b)}catch{}return Bi(b.worker_id),Ut("worker-death",b,P),pt(),!0}function yo(b){return Zh({ceiling:l,workers:[...ce.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function Ql(b){let P=$u(b),j=Wt.get(P);if(j!=null)return j;let U=i(b).finally(()=>{Wt.get(P)===U&&Wt.delete(P)});return Wt.set(P,U),U}async function Df(b,P,j,U){let z=U??yo(b);if(!z.admitted)throw new Xt(z.reason,z);let ne;try{ne=await(j??Ql(P))}catch(rt){let Je=p0(z,P,rt);throw new Xt(Je.reason,Je)}let le=yo(b);if(!le.admitted)throw new Xt(le.reason,le);return bs(b,{admission:le,forkSha:ne})}function bs(b,P={}){let j=em({ceiling:l,workers:[...ce.values()],budget:b.budget}),U=s({spec:b,admission:P.admission??yo(b),...P.forkSha==null?{}:{forkSha:P.forkSha},memoryCeiling:j,liveWorkerIds:ce.keys(),clock:o,onExit:(rt,Je,ko)=>{let be=ce.get(rt);if(be==null){pt();return}Cx(be,Je,ko).catch(()=>{})}}),z=P.forkSha??U.fork_sha??U.worker.fork_sha,ne=z==null||z===""?U.worker:{...U.worker,fork_sha:z},le={...U,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ce.set(ne.worker_id,ne),P.hook===!0&&J.track(ne.worker_id),Ut("worker-birth",ne,null,{admissionVerdict:P.admission?.verdict??U.admission.verdict}),pt(),le}function Ut(b,P,j,U={}){if(tt)return;let z=o(),ne={kind:b,worker:P,ts:z,detail:j,...U};(b==="worker-death"||b==="worker-budget-kill")&&(xx({worker_id:P.worker_id,ts:z,outcome:b}),Of(ma(ne),{startedAt:P.started_at,...U.refusal==null?{}:{refusal:U.refusal}}),Dx(P.project_label,Date.parse(z)-Date.parse(P.started_at))),H.recordWorker(ne).catch(()=>{}),J.onEvent(b,P)}function Of(b,P={}){let j=Ph(b,P);if(j==null)return;let U=[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(U,z=>z.ts,{now:o()})}async function Xl(){let b=Date.parse(o()),P=[...ce.values()].filter(U=>{if(ct.has(U.worker_id))return!0;let z=Date.parse(U.started_at);return!Number.isFinite(z)||b-z>=W});if(P.length===0)return[];let{dead:j}=await Mu(P,I);for(let U of j)Bi(U.worker_id),Ut("worker-death",U,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function Ff(b,P){let j=ce.get(b);if(!j)return!1;try{await q(j)}catch{}return Bi(b),Ut("worker-budget-kill",j,P),pt(),!0}async function If(){let b=[...ce.values()];if(b.length===0)return[];let P;try{P=await se(b)}catch{return[]}let j=P.rss;L=j,B=o(),Mx(P.cpu_seconds,B);let{terminations:U}=Vb({workers:b,rss:j}),z=[];for(let ne of U)await Ff(ne.worker_id,ne.reason)&&z.push(ne);return z}function Mx(b,P){for(let[j,U]of Object.entries(b)){if(typeof U!="number"||!Number.isFinite(U))continue;let z=ce.get(j);z&&ce.set(j,{...z,cpu:{cpu_seconds:U,sampled_at:P}})}}async function Lx(){try{return de<=0?await ke(r):await new Promise(b=>{let P=setTimeout(()=>b(Zl()),de);P.unref(),ke(r).then(j=>{clearTimeout(P),b(j)},()=>{clearTimeout(P),b(Zl())})})}catch{return Zl()}}function Zl(){try{return Re(r)}catch{return null}}async function Mf(){if(si(r))return je+=1,X=o(),Be="local-build",{act:"hold",reason:"local-build"};let b=O0(await Lx()),P=b.version;K=P,nn=b.newest??null,X=o(),Rr=F0({running:r,newest:nn,supervised:we});let j=I0({running:r,published:P,supervised:we});return xe=j.act==="replace",je+=1,Be=j.act==="hold"?j.reason:null,Lt!=="in-progress"&&(Lt=j.act==="replace"?"pending":"none"),j}async function $i(){let b=await Mf();if(b.act!=="replace"||Lt==="in-progress")return b;let P=L0(b,Se,t,n);return Lt="in-progress",await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Gi({reason:"replaced"}),j0(P,t,{...n==null?{}:{idleMs:n},io:Se}),b}function jx(){tt||Cn!=null||Y<=0||(!De&&ve>0&&(Dn=setTimeout(()=>{$i().catch(()=>{})},ve),Dn.unref()),Cn=setInterval(()=>{$i().catch(()=>{})},Y),Cn.unref())}async function Lf(){return await c.renew(d).catch(()=>null)}function Bx(){tt||Pn!=null||Ae<=0||(Pn=setInterval(()=>{Lf()},Ae),Pn.unref())}function $x(){tt||Ne!=null||Ee<=0||(Ne=setInterval(()=>{mo(o())},Ee),Ne.unref())}function Nx(){tt||Tn!=null||pe<=0||(Tn=setInterval(()=>{If().catch(()=>{})},pe),Tn.unref())}function Gx(){tt||xr!=null||fe==null||fe.projects.length===0||ie<=0||(Yl().catch(()=>{}),xr=setInterval(()=>{Yl().catch(()=>{})},ie),xr.unref())}function Wx(){if(tt||Me!=null||tn<=0)return;let b=P=>{Me=setTimeout(()=>{Me=void 0,jf().then(()=>xf()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());b(c0(vt,tn,Number.isFinite(j)?j:Date.now()))})},P),Me.unref()};b(tn)}async function jf(){await Promise.allSettled([...Ce.values()].filter(b=>b.trunk!=null).map(async b=>{let P=await Ql({workspace_path:b.workspace_path,trunk:b.trunk}),j=[...ce.values()].filter(U=>U.project_label===b.project_label&&U.fork_sha!=null&&U.fork_sha!=="");await Promise.allSettled(j.map(async U=>{let z=await a({workspace_path:b.workspace_path,fork_sha:U.fork_sha,head_sha:P}),ne=ce.get(U.worker_id);if(ne==null||ne.fork_sha!==U.fork_sha)return;let le={...ne,base_head_sha:P,base_commits_ahead:z};ce.set(U.worker_id,le),(ne.base_head_sha!==P||ne.base_commits_ahead!==z)&&Ut("worker-drift",le,null,{baseHeadSha:P,baseCommitsAhead:z})}))}))}function Hx(){tt||An!=null||rn<=0||(An=setInterval(()=>{Ef().catch(()=>{})},rn),An.unref())}function pt(){tt||(sn&&clearTimeout(sn),sn=setTimeout(()=>{Xl().catch(()=>{}).then(()=>Bf())},n),sn.unref())}function Bf(){return ce.size>0?(pt(),"held-by-workers"):(mo(o()),Ce.size>0?(pt(),"held-by-registrations"):(Ux(),"exited"))}async function Ux(){if(!si(r)){if((await $i().catch(()=>null))?.act==="replace"||Hr||tt)return;if(ce.size>0||Ce.size>0){pt();return}}await Gi({reason:"idle"})}function Ni(b){return mm({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ce.values()],projects:[...Ce.keys()]})}function $f(b){if(On!=null)return On;let P=b.reason??"requested",j=b.note?.trim();return On=H.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:P,detail:j==null||j===""?Ni(P).detail:`${Ni(P).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),On}async function Gi(b={}){if(Hr)return await Jl;Hr=!0,await $f(b),tt=!0,sn&&clearTimeout(sn),Tn&&clearInterval(Tn),Pn&&clearInterval(Pn),Ne&&clearInterval(Ne),Cn&&clearInterval(Cn),Dn&&clearTimeout(Dn),xr&&clearInterval(xr),Wr&&clearTimeout(Wr),Me&&clearTimeout(Me),An&&clearInterval(An),await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let P of F)P.destroy();return await new Promise(P=>M.once("close",()=>P())),await K1(t.socketPath,{force:!0}),kf(),await Jl}let Wi=await H.read().catch(()=>[]),Hi=new Map;for(let b of Wi){if(b.event==="worker-birth"){Hi.set(b.worker_id,b.ts);continue}let P=sc(b.detail);Of(b,{...Hi.get(b.worker_id)==null?{}:{startedAt:Hi.get(b.worker_id)},...P==null?{}:{refusal:P}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Hi.delete(b.worker_id)}ut=Nn(Wi.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=Hh(Wi,o());let qx=pc(Wi),ed=await Mu(qx,I);for(let b of ed.alive){let P=t0(b),j=P.unit==null||Ye(P.pid)?null:ae(P.unit);ce.set(P.worker_id,j!=null&&j>0?{...P,pid:j}:P),ct.add(P.worker_id)}for(let b of ed.dead)Ut("worker-death",b,"the Worker ended while no daemon was watching");let Kx=e0({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ce.values()],mainPid:ae,now:N});for(let b of Kx)ce.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");Rf(o());for(let b of ed.alive){if(b.log_path==null||Ze.has(b.worker_id))continue;let P=await Z(b.log_path).catch(()=>null);P==null||P.trim()===""||Ze.set(b.worker_id,{line:P,published_at:o(),source:"rehydrated"})}M.on("connection",b=>{F.add(b),b.once("close",()=>F.delete(b)),pt(),Oh(b,async(P,j)=>{pt();let U=await Vx(P);j(U),P.op==="shutdown"&&setImmediate(()=>void Gi({reason:"requested"}).catch(()=>{}))})});async function Vx(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:Va,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Li()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:cy(ji(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:Tx(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:Px(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:vf(b.heartbeat)};if(b.op==="project-register"){let j=Tf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=Pf(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=Af(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:Sf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await Ax(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 U=await w(()=>b.spec.trunk==null?bs(b.spec):Df(b.spec,{workspace_path:b.spec.workspace_path,trunk:b.spec.trunk}));return await H.flush().catch(()=>{}),{id:b.id,ok:!0,value:{worker:U.worker,admission:U.admission,fork_sha:U.fork_sha,warnings:U.warnings}}}if(b.op==="shutdown"){let j=Ni("requested");return await $f({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let P=b;return{id:P.id??Y0(),ok:!1,error:`unsupported redskilled op: ${P.op??"unknown"}`}}catch(P){return{id:b.id??Y0(),ok:!1,error:P instanceof Error?P.message:String(P)}}}return pt(),Nx(),Bx(),$x(),jx(),Gx(),Ex(),Wx(),Hx(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:Jl,startWorker:bs,admit:yo,ceiling:()=>l,killWorkerOverBudget:Ff,sampleMemoryBudgets:If,renewLease:Lf,pollRepositoryActivity:Yl,pollGithubBalance:_f,githubBalance:()=>_r,pollQueueDiscovery:xf,queueDiscovery:()=>vt,driveDemand:Ef,demand:()=>re,sweepWorkerLiveness:Xl,publishWorkerHeartbeat:vf,reattached:()=>[...ct].map(b=>ce.get(b)).filter(b=>b!=null),flushEvents:async()=>{await C,await J.waitForSettled(),await H.flush()},trackWorker(b){ce.set(b.worker_id,b),Ut("worker-birth",b,null),pt()},releaseWorker(b){let P=ce.get(b),j=ce.delete(b);return ct.delete(b),Ze.delete(b),_t.delete(b),P&&Ut("worker-death",P,"released by the daemon"),pt(),j},workerCount:()=>ce.size,registerProject:Tf,renewProject:Pf,resetProjectBirthBreaker:Sf,deregisterProject:Af,registrations:()=>Li().registrations??[],hostState:Li,refreshRegisteredTrunks:jf,statuslinePayload:ji,evaluateIdle:Bf,observePublishedVersion:Mf,checkForReplacement:$i,stopReport:Ni,stop:Gi}}function Ku(e){let t=e.socketPath,r=z1(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 ${X0(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 \`${kn("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 \`${kn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Vu(e){return`${e.reason} ${e.repair}`}function z1(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:J1(t.acquired_at,e.now??new Date().toISOString())}}function J1(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 X0(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 Y1}from"node:child_process";import{existsSync as Q1}from"node:fs";import{basename as Z0,dirname as X1,join as ek}from"node:path";async function ii(e){let r=await Is(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==ba().uid||!Ye(r.pid))return{paths:e,joined:!1};let n=X1(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:ek(n,Z0(e.lockPath)),leasePath:ek(n,Z0(e.leasePath))}}}async function tk(e){let r=await Is(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Ye(r.pid)))throw new Vr(e.machineClaimPath,"held",r)}async function rk(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[mc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Fo({env:n,machineIdHash:e.machineIdHash}))||!(o??Q1(Vo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=Y1("systemctl",["--user","start",Zt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Zt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await Z1(e,t,r),!0}async function Z1(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ii(e);if(await Jt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Zt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}Kr();var Ju=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"?`. ${Vu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},zu=class extends Vn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},tl=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function rl(e,t={}){let r=t.answers??await Jt(e.socketPath),n=await zo(e.leasePath).catch(()=>{});return Ku({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Ye(n.pid)})}async function Yu(e,t={}){let r=await ii(e);try{let n=await nF(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Vr||n instanceof Vn)throw n;let o=await rl(r.paths).catch(()=>{});throw new Vn(r.paths.socketPath,n,o)}}async function nF(e,t){if(await tF(rF(e.socketPath),{recursive:!0,mode:448}),await Jt(e.socketPath))return"already-running";await tk(e);let r=await sF(e,t);if(r!=null)return r;if(await rk(e,t,Ju))return"joined";let n=await ch(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??oF});if(!n.acquired)return await nk(e,t,void 0,n),"joined";try{if(await Jt(e.socketPath))return"already-running";let o=await aF(e,t);return await nk(e,t,o),"spawned"}finally{await uh(n)}}function oF(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 sF(e,t){let r=await rl(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Ju,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 rl(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new zu(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 sk(e,t,r={}){await Yu(e,r);let n=(await ii(e)).paths,o;try{o=await Zs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:ok()})}catch(s){throw new Vn(n.socketPath,s,await rl(n).catch(()=>{}))}if(!o.ok)throw new tl(o.error);return o.value}async function ik(e,t={},r={}){let n=(await ii(e)).paths;if(!await Jt(n.socketPath))return bm(n.socketPath);let o;try{o=await Zs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:ok(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Vn(n.socketPath,a)}if(!o.ok)throw new tl(o.error);if(!gc(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await iF(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 iF(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 zo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Ye(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function ak(e,t={}){let r=await sk(e,{op:"host-state"},t);if(!vy(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function lk(e,t={},r){let n=await sk(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!au(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function dk(e,t=Ge,r={}){let n=await lk(e,r,{vitals:!0,logs:t.verbose,display:!0});return qn(n,t)}async function ck(e,t={},r={}){let n=await lk(e,r,{vitals:!0,logs:!0,display:!0});return Ho(n,{...$t,...t})}async function nk(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Ju);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 ${ph(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 aF(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await _h({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...dn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=eF(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}Kr();import{readFile as lF}from"node:fs/promises";import{homedir as dF,totalmem as cF}from"node:os";import{join as uF}from"node:path";var pF="REDSKILLED_IDLE_MS",fF=".red/config.yaml";async function pk(e=dF()){let t=uF(e,fF),r;try{r=await lF(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Qu(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${uk(n)}`),{})}try{let n=hF(r);return{...nl(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...nl(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...nl(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...nl(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Qu(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${uk(n)}`),{}}}function fk(e={}){let t=e.env??process.env,r=e.config??{},n=ha(t,e.totalMemoryBytes??cF(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=gF(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[pF],r.idleMs);if(o==null)return{ceiling:n,idleMs:Co,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Qu(`redskilled: ${yF(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Co}ms instead.`),{ceiling:n,idleMs:Co,idleMsSource:"derived-default"})}function gF(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 nl(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function hF(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=mF(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(".")]=bF(c.trim())}return t}function mF(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 bF(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function yF(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function uk(e){return e instanceof Error?e.message:String(e)}function Qu(e){process.stderr.write(`${e}
|
|
104
|
+
`)}import{chmod as Rk,mkdir as xk,readFile as Ek,stat as FF,writeFile as vk}from"node:fs/promises";import{homedir as ep}from"node:os";import{dirname as Sk,join as ol}from"node:path";import{join as xF}from"node:path";import{existsSync as kF,readFileSync as J3}from"node:fs";import{dirname as wF,join as RF}from"node:path";function gk(e,t){let r=e;for(let n=0;n<16;n++){let o=RF(r,t);if(kF(o))return o;let s=wF(r);if(s===r)break;r=s}return null}function _F(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Jo(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 _F(d)}}var hk=["local","tmp","host"],EF="local",ai="plugins.dev.workspace.target";var Xu=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function bk(e){let t=Jo(e,ai),r=TF(t??"").trim();return r===""?void 0:r}function yk(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:EF};let r=hk.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 Xu(`${ai}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${hk.join(", ")}) or an absolute parent directory for Workers.`)}function kk(e,t){return e.kind==="preset"?e.preset==="host":SF(vF(e.parentDir,t),sr(t))}function vF(e,t){return e==="~"?mk(t):e.startsWith("~/")?xF(t,e.slice(2)):mk(e)}function SF(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function mk(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function TF(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}Kr();import{createHash as PF}from"node:crypto";import{hostname as AF}from"node:os";import{join as li}from"node:path";var Yo="redskilled.sock",CF="REDSKILLED_SESSION";function DF(e={}){let t=e.env??process.env,r=t[CF]?.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 OF(e={}){return wk(e.host??AF())}function cr(e={}){let t=DF(e),r=e.runtimeDir??la({key:`redskilled:${t}`,socketFileName:Yo,env:e.env,uid:e.uid}),n=OF(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:wk(t),machineIdHash:n,runtimeDir:r,socketPath:li(r,Yo),lockPath:li(r,"redskilled.spawn.lock"),leasePath:li(r,"redskilled.lease.toon"),eventLanePath:li(sr(o),sm),registrationIntentPath:li(sr(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Fo({env:e.env,machineIdHash:n,platform:e.platform})}}function wk(e){return PF("sha256").update(e).digest("hex").slice(0,12)}var Zu=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${kn("red-skills-redskilled",["provision"])}\` directly`,IF=`# 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 Tk(e=ep()){let t=sr(e),r=ol(Sk(t),"config.yaml"),n=await rp(t),o=!1,s=!1;n===void 0?(await xk(t,{recursive:!0,mode:qr}),await Rk(t,qr),o=!0):n!==qr&&(await Rk(t,qr),s=!0);let i=!1;try{await vk(r,IF,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:qr,configPath:r,configCreated:i}}var Pk={needed:!1,declaredBy:`no ${ai} in view`};async function tp(e={}){let t=e.homeDir??ep(),r=e.declaredTarget?.trim();if(r)return _k(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return Pk;let o=ol(n,".red","config.yaml"),s=await Ek(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=bk(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:_k(i,t,o)}function _k(e,t,r){let n=`${ai}: ${e} (${r})`;try{return{needed:kk(yk(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function Ak(e){let t=[MF(e),LF(e),jF(e),BF(e)],r=t.filter(o=>o.verdict!=="ok");return{verdict:r.some(o=>o.verdict==="missing")?"missing":r.length>0?"degraded":"ok",rows:t,findings:r}}function MF(e){let t=e.homeNeed??Pk;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??qr;return r!==qr?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${qr.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 LF(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 \`${kn("red-skills-redskilled",["provision"])}\``}}function jF(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 BF(e){return{check:"supervisor-unit",verdict:"ok",evidence:e.supervisorUnit==="installed"?"redskilled.service is installed (optional supervision, Restart=always)":e.supervisorUnit==="unsupported"?"optional: this host has no systemd --user session; auto-spawn is the only start path":"optional: not installed; auto-spawn already starts the daemon on first use",fix:""}}async function Ck(e={}){let t=e.env??process.env,r=e.homeDir??ep(),n=e.paths??cr({env:t}),o=sr(r),[s,i,a]=await Promise.all([rp(o),Jt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):tp({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:cn(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await NF(GF(e,t,r),t)}}var $F="redskilled.service";function Dk(e){return ol(e,"systemd","user",$F)}function Ok(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 Fk(e){let t=Dk(e.configHome);return await rp(t)!==void 0?{path:t,status:"already-present"}:(await xk(Sk(t),{recursive:!0}),await vk(t,e.unit,"utf8"),{path:t,status:"installed"})}async function NF(e,t){if(process.platform!=="linux")return"unsupported";try{return await Ek(Dk(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function GF(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??ol(r,".config")}async function rp(e){try{return(await FF(e)).mode&511}catch{return}}import{readdir as Mk,rm as WF,stat as HF}from"node:fs/promises";import{dirname as UF,join as np}from"node:path";var qF=5*6e4,KF="redskilled.";function VF(e={}){let t=e.env??process.env,r=i=>UF(la({key:"redskilled:reclaim-probe",socketFileName:Yo,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 Lk(e={}){let t=e.roots??VF(e),r=e.graceMs??qF,n=e.now??Date.now,o=e.isPidAlive??Ye,s=e.answers??QF,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await Mk(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await zF(np(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 zF(e,t){let r;try{r=(await Mk(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:jk(i),removed:[]}}let n=r.filter(i=>i.startsWith(KF));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await JF(np(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 Ik(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(Yo)&&await t.answers(np(e,Yo)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await YF(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 Ik(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function Ik(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await WF(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:jk(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function JF(e){try{return await zo(e)}catch{return}}async function YF(e,t){try{return Math.max(0,t()-(await HF(e)).mtimeMs)}catch{return}}async function QF(e){try{return(await Zs({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function jk(e){return e instanceof Error?e.message:String(e)}var XF="plugins.dev.statusline",ZF="dev.statusline";function eI(e){let t=[],r=a=>{for(let l of[XF,ZF]){let d=`${l}.${a}`,c=Jo(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 tI={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 sl(e){let{values:t,positionals:r}=ln(e,tI),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 il(e={}){let t=e.configText==null?{config:{},warnings:[]}:eI(e.configText),r=e.flags??{};return{options:{...Ge,mode:r.mode??t.config.mode??Ge.mode,project:r.project!==void 0?r.project:e.project??Ge.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Ge.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Ge.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Ge.maxWidth,verbose:r.verbose??t.config.verbose??Ge.verbose},warnings:t.warnings}}var al,ll=new Map,rI=256;function Gk(){if(al!==void 0)return al;let e=Intl.Segmenter;return al=e?new e(void 0,{granularity:"grapheme"}):null,al}function op(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 Bk(e){let t=ll.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return ll.size>=rI&&ll.clear(),ll.set(e,r),r}function $k(e){return e>=127462&&e<=127487}function Nk(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function nI(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function oI(e,t,r){if(Bk(t)||nI(t)||Nk(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(op(n)||Bk(n)||Nk(n)||$k(t)&&$k(n)||t===13&&n===10)}function sI(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&&!op(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function Wk(e){let t=Gk();if(!t)return sI(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 sp(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(oI(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=Gk();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&&!op(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var Qo="\x1B",iI="\x07",I6=`${Qo}\\`;function aI(e){return e>=64&&e<=126}function lI(e,t){for(let r=t;r<e.length;r++){if(e[r]===iI)return r+1;if(e[r]===Qo&&e[r+1]==="\\")return r+2}return e.length}function zn(e,t){if(e[t]!==Qo)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:Qo,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!aI(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=lI(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 Hk(e){return e<=31||e>=127&&e<=159}function Xo(e){let t="",r=0;for(;r<e.length;){if(e[r]===Qo){let o=zn(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!Hk(n)||e[r]===`
|
|
115
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function ip(e){let t="",r=0;for(;r<e.length;){if(e[r]===Qo){let o=zn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!Hk(n)||e[r]===`
|
|
116
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function Uk(e){return ip(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var Kk="\x1B",qk=/^[\x20-\x7e]*$/,dl=new Map,dI=256;function cI(e){return ip(e)}function ye(e){if(qk.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return Vk(t);let r=cI(e);if(qk.test(r))return r.length;let n=0;for(let{segment:o}of Wk(r))n+=uI(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=sp(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function uI(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?Vk(t[0]):t.every(o=>o<=31||o>=127&&o<=159||zk(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(Jk)?2:1}function Vk(e){let t=dl.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||zk(e)?r=0:r=Jk(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,dl.size>=dI&&dl.clear(),dl.set(e,r),r}function zk(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 Jk(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||pI(e)}function pI(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(...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
|
-
`)}},
|
|
118
|
+
`)){if(r==="truncate"||r==="truncate-end"){n.push(Qr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Qr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Qr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...fI(o,t))}return n}function fI(e,t){if(ye(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(ye(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),ye(o)<=t){n=o;continue}let i=gI(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function gI(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===Kk){let l=zn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Jn(e,s);if(!i)break;let a=ye(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Qr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(ye(e)<=t)return e;if(t<ye(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=ye(l);return n==="start"?hI(e,t,l,d,i):n==="middle"?bI(e,t,l,d,i):mI(e,t,l,d,i)}function hI(e,t,r,n,o){let s=t-n,i=Zo(e,ye(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function mI(e,t,r,n,o){let s=t-n,i=Zo(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 bI(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Zo(e,0,i),d=Zo(e,ye(e)-a);if(o){let c=l.lastIndexOf(" ");c!==-1&&l.length-c<4&&(l=l.slice(0,c));let u=d.indexOf(" ");u!==-1&&u<4&&(d=d.slice(u+1))}return l+r+d}function Zo(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]===Kk){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=sp(e,l);if(!c){l++;continue}let u=ye(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function di(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function ap(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 di(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return di(dt(e,105),t.toString());case"string":return di(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=ap(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=di(dt(n,107),i),n=dt(n,58),n=ap(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return di(dt(e,63),String(t))}}function Ft(e,t={}){return ap(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as yI}from"node:async_hooks";var Fr=Symbol("tuiuiu.runtime-resource-dispose"),Yk=new yI,cl=new Set,kI=1,es={id:0,resources:new Map};function Qk(){let e={id:kI++,resources:new Map};return cl.add(e),e}function wI(e){cl.delete(e)}function Xk(e){if(e!==null&&typeof e=="object"&&Fr in e)try{e[Fr]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function RI(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)Xk(r)}function ts(e){wI(e),RI(e)}function qe(e,t){return Yk.run(e,t)}function Xr(e,t){return(...r)=>qe(e,()=>t(...r))}function lp(){return Yk.getStore()??null}function We(e){if(e)return e;let t=lp();return t||(cl.size===1?cl.values().next().value??es:es)}function Ir(){return es}function Oe(e,t,r){let n=We(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function It(e,t){return es.resources.has(e)||es.resources.set(e,t()),es.resources.get(e)}function ul(e,t){let r=We(t),n=r.resources.get(e);r.resources.delete(e),Xk(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 dp(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function _I(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 cp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=dp();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=dp()}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&&_I(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=dp()}},xI=Symbol("tuiuiu.dirty-registry");function Mr(e){return Oe(xI,()=>new cp,e)}function Zk(e){Mr().beginFrame(e)}function ew(e,t){Mr().registerNode(e,t)}function wn(e,t=Pe.CONTENT){Mr().markDirty(e,t)}function tw(e){Mr().markLayoutClean(e)}function ci(e){Mr().noteReuse(e)}function Qn(e){Mr().noteFresh(e)}function pl(e){return Mr().canReuseSubtree(e)}function rw(){return Mr().getDiagnostics()}function ui(){Mr().clearGlobalDirty()}function rs(e){Mr().markClean(e.node);for(let r of e.children)rs(r)}var nw=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 fl(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 At=e=>e==="auto"?0:wt(e,"margin"),EI=new Set(["layoutRef","__scrollQuery"]),vI=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 TI(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function ns(e){let t=e.props??{},r=e.type==="text"?SI:vI,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ft(n,{ignoreKeys:EI})}function PI(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 AI(e,t){if(!pl(e)){Qn("layout");return}let r=nw.get(e);if(!r){Qn("layout");return}if(r.ctxKey!==t){wn(e,Pe.LAYOUT),Qn("layout");return}let n=ns(e);if(r.propsKey!==n||!PI(e,r.childRefs)){wn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Qn("layout");return}return ci("layout"),r.layout}function pi(e,t,r,n){nw.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),tw(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 ow(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 sw(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=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)sw(u,d,c)}function iw(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)),Zk(e);let n=Lr(e,{x:0,y:0,width:t,height:r},null);return sw(n),n}function CI(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=>ye(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function DI(e,t){let r=typeof e.props.height=="number"?e.props.height:1;return{x:t.x,y:t.y,width:t.width,height:Math.min(r,t.height),node:e,children:[]}}function OI(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function Lr(e,t,r){ew(e,r);let n=TI(t),o=AI(e,n);if(o)return Mt(e,o),o;let s;if(e.type==="text")return s=CI(e,t),pi(e,n,ns(e),s),s;if(e.type==="spacer")return s=DI(e,t),pi(e,n,ns(e),s),s;if(e.type==="newline")return s=OI(e,t),pi(e,n,ns(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),pi(e,n,ns(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=At(i.marginTop??i.marginY??i.margin),p=At(i.marginBottom??i.marginY??i.margin),g=At(i.marginLeft??i.marginX??i.margin),f=At(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,h=fi(i.width,t.width),R=fi(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,H=[],G=i.flexDirection??"column",I=G==="row"||G==="row-reverse",W=G==="row-reverse"||G==="column-reverse",q=wt(I?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],ae=[];if(e.children.length>0){for(let ie of e.children)ie.props.position==="absolute"?oe.push(ie):ae.push(ie);let fe=W?[...ae].reverse():ae;I?H.push(...aw(fe,D,N,q,i,$,e)):H.push(...II(fe,D,N,q,i,e))}let se=0,Z=0;if(I)for(let fe of H){let ie=fe.node.props,_e=At(ie.marginRight??ie.marginX??ie.margin),Fe=At(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.x+fe.width+_e),Z=Math.max(Z,fe.y+fe.height+Fe)}else for(let fe of H){let ie=fe.node.props,_e=At(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+_e)}let Ae=fl(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,ke=T?h:Ae?t.width:Ee,Y=$?R:Z+a+l+y*2,de=wt(i.minWidth,"minWidth"),Re=wt(i.minHeight,"minHeight");if(ke=Math.max(ke,de),Y=Math.max(Y,Re),i.maxWidth!==void 0&&(ke=Math.min(ke,wt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(Y=Math.min(Y,wt(i.maxHeight,"maxHeight"))),I&&i.alignItems==="stretch"){let fe=Math.max(0,Y-a-l-y*2);for(let ie=0;ie<H.length;ie++){let _e=H[ie],Fe=_e.node.props;Fe.height===void 0&&(H[ie]=ow(_e,Math.max(_e.height,fe),Fe),Mt(_e.node,H[ie]))}}let De=t.x+g,ve=t.y+u,we=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(Y,Math.max(0,t.height-u-p)));for(let fe of oe){let ie=fe.props,_e=Lr(fe,{x:0,y:0,width:D,height:N},e),Fe=De+d+y,at=ve+a+y;ie.left!==void 0?Fe=De+d+y+ie.left:ie.right!==void 0&&(Fe=De+we-c-y-_e.width-ie.right),ie.top!==void 0?at=ve+a+y+ie.top:ie.bottom!==void 0&&(at=ve+Se-l-y-_e.height-ie.bottom);let Gt=ht(_e,{x:Fe,y:at});Mt(fe,Gt),H.push(Gt)}return s={x:De,y:ve,width:we,height:Se,node:e,children:H},Mt(e,s),pi(e,n,ns(e),s),s}function aw(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return FI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let G of e){let I=G.props,W=I.flexGrow;W===void 0?W=I.width==="fill"||G.type==="spacer"?1:0:W=fl(W,"flexGrow");let q=wt(I.minWidth,"minWidth"),oe=I.flexBasis==="content"?Lr(G,{x:0,y:0,width:t,height:r},i).width:I.flexBasis===void 0||I.flexBasis==="auto"?q:fi(I.flexBasis,t),ae=I.flexShrink===void 0?1:fl(I.flexShrink,"flexShrink"),se=At(I.marginLeft??I.marginX??I.margin),Z=At(I.marginRight??I.marginX??I.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=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?fi(I.width,t)+se+Z:t,Ee=Lr(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),I=Math.ceil(p);for(;I>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=I*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(I-=ae,I<=0)break;oe.sort((Z,pe)=>pe.fraction-Z.fraction||pe.weight-Z.weight||pe.capacity-Z.capacity);let se=!1;for(let Z of oe){if(I<=0)break;G[Z.index]<Z.maxReduction&&(G[Z.index]+=1,I-=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 I=u[G],q=(I.targetWidth??(I.flex>0?I.basis+Math.floor(f*I.flex):I.basis))+I.marginLeft+I.marginRight,oe=I.layout&&I.measuredCtxWidth===q?ht(I.layout,{x:I.layout.x+y}):Lr(I.node,{x:y,y:0,width:q,height:r},i),ae=I.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),y+=I.marginLeft+oe.width+I.marginRight,h==="space-between"&&G<u.length-1?y+=$:h==="space-around"?y+=D*2:h==="space-evenly"?y+=$:y+=n}let H=s?r:M;for(let G of N){let{style:I}=G,{layout:W}=G,q=I.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(I.height===void 0&&(se=Math.max(W.height,H)),ae=0):oe==="center"?ae=Math.floor((H-W.height)/2):oe==="flex-end"?ae=H-W.height:oe==="baseline"&&(ae=0),W=ow(W,se,I),W=ht(W,{y:ae}),Mt(W.node,W),a.push(W)}return a}function FI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=At(M.marginLeft??M.marginX??M.margin),H=At(M.marginRight??M.marginX??M.margin),G=Lr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:fi(M.flexBasis,t))+N+H,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=aw(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((H,G)=>Math.max(H,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 II(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=At(R.marginTop??R.marginY??R.margin),$=At(R.marginBottom??R.marginY??R.margin),D=R.flexGrow;D===void 0?D=R.height==="fill"||h.type==="spacer"?1:0:D=fl(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 H=Lr(h,{x:0,y:0,width:t,height:r},s);g+=H.height+T+$,y.push({node:h,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$,layout:H})}}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,H=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=Lr(D.node,{x:0,y:T,width:t,height:q},s),G=ht(G,{height:q})}G||(G=Lr(D.node,{x:0,y:T,width:t,height:r},s));let I=G.x,W=G.width;H==="center"?I=Math.floor((t-G.width)/2):H==="flex-end"?I=t-G.width:H==="stretch"&&(W=t),G=ht(G,{x:I,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=At(y.marginTop??y.marginY??y.margin),R=At(y.marginBottom??y.marginY??y.margin),T=Lr(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 H=ht(T,{x:M,width:N});Mt(H.node,H),i.push(H),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 fi(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 lw={background:0,normal:1,modal:2,critical:3};var dw=new Set;function uw(e,t){process.env.NODE_ENV==="production"||dw.has(e)||(dw.add(e),console.warn(`[tuiuiu] ${t}`))}var MI=Symbol("tuiuiu.hook-runtime-state"),up=new WeakMap;function LI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function ze(e){return Oe(MI,LI,e)}function pp(e){return up.get(e)??null}function pw(e="hooks"){let t=ze();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function fw(){let e=ze();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&uw("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++){mw(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(gi(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function gw(){return ze().isRendering}function hw(){return ze().renderPhaseMode}function ur(e){let t=ze();t.isRendering||uw("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){ze().hookState.state[e]=t}function jr(e){return ze().hookState.state[e]}function er(){return ze().hookIndex-1}function Xn(e,t=er()){let r=ze(),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 mw(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 gl(e){let t=We(e),r=ze(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))mw(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 Zr(e){return ze(e).appContext}function fp(e,t){let r=We(t),n=ze(r),o=n.appContext;n.appContext=e,o&&o!==e&&up.delete(o),e&&up.set(e,r)}function hl(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=ze(),s=o.handlerIdCounter++,i={handler:e,priorityValue:lw[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 gi(e){let t=ze(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function bw(e,t,r){let o=[...ze().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 yw(e){let t=ze(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function gp(e,t){ze(t).focusManager=e}function kw(e){let t=ze(),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 ww(e){let t=ze(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var jI=300,cw=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<jI&&Math.abs(t.x-n.x)<=cw&&Math.abs(t.y-n.y)<=cw?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function Rw(e,t){let r=[...ze().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 _w(e){let t=ze(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var hi=[],bl=!1,hp=!1,ml=0,mi=null,bi=null;function xw(){if(!hp){hp=!0;for(let e=hi.length-1;e>=0;e--)try{hi[e]()}catch{}hp=!1}}function en(e){return hi.push(e),()=>{let t=hi.indexOf(e);t!==-1&&hi.splice(t,1)}}function Ew(){ml++,bl||(bl=!0,mi=()=>{xw()},bi=()=>{xw()},process.on("exit",mi),process.on("uncaughtExceptionMonitor",bi));let e=!1;return()=>{e||(e=!0,ml=Math.max(0,ml-1),ml===0&&$I())}}function $I(){bl&&(mi&&process.off("exit",mi),bi&&process.off("uncaughtExceptionMonitor",bi),mi=null,bi=null,bl=!1)}var vw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Sw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,Tw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Pw=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function yl(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 Aw(e){let t=vw.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=yl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Sw.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=yl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=Tw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=yl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Pw.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=yl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function Cw(e){return vw.test(e)||Sw.test(e)||Tw.test(e)||Pw.test(e)}var NI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Dw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",GI=Symbol("tuiuiu.mouse-runtime-state");function yi(e){return Oe(GI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function mp(e){return Zr(e)?.stdout??process.stdout}function bp(e){return"isTTY"in e&&!!e.isTTY}function ki(e){return Aw(e)}function yp(e){return Cw(e)}function os(e){let t=We(e),r=yi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,WI(t);let n=mp(t);r.outputStream=n,bp(n)&&n.write(NI)}}function Zn(e){let t=We(e),r=yi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??mp(t);bp(n)&&n.write(Dw),r.outputStream=null}}function kl(e){let t=We(e),r=yi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??mp(t);bp(n)&&n.write(Dw),r.outputStream=null}}function WI(e){let t=yi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=en(Xr(e,()=>kl(e))))}function Ow(e){let t=yi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as qI}from"node:zlib";var He={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},HI={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...He,...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:{...He,...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:{...He,...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:{...He,...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:{...He,...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:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...He,...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:{...He,...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:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...He,...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:{...He,...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:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...He,...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:{...He,...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:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...He,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:He}};function UI(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 Fw(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 wl(e=process.env){let t=UI(e),r=HI[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var $w=Symbol("tuiuiu.graphics-runtime-state");function Nw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:It($w,()=>Nw(Ir())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function _p(){let e=We();return Oe($w,()=>Nw(e),e)}var Iw={width:10,height:20};function Rl(e){return{width:Math.max(1,Math.round(e?.width??Iw.width)),height:Math.max(1,Math.round(e?.height??Iw.height))}}function KI(){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 Gw(){return KI()?"halfblock":"braille"}function ss(e){return e==="none"?Gw():e}function Ww(e){let t=ss(e);return t==="halfblock"||t==="braille"}function Hw(e){let t=ss(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function Mw(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function Uw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&YI(e)?e:null}function qw(){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 Kw(){return wl(process.env).knownCaps.preferredGraphics||null}function Vw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function VI(){let e=Uw();if(e)return e;let t=qw();if(t)return t;let r=Kw();return r||Vw()}function zI(e){return Uw()===e||qw()===e?"env":Kw()===e?"profile":Vw()===e?"env":"fallback"}function is(){let e=_p();if(e.manualOverride)return Mw(e.manualOverride,"manual",Rl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=JI();return Mw(t,zI(t),Rl())}function JI(){let e=_p();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=VI()??Gw()),e.detectedProtocol)}function YI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function zw(){let e=_p();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:Rl(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 QI(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 Jw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function Ri(e){return Jw(e)?e:xl(e)}function Lw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function xl(e,t={}){let r=Rl(t.cellSize??is().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:QI(e)}}function _i(e,t={}){let r=Jw(e)?e:xl(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=Lw(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=Lw(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 as={transmit(e,t={}){let r=Ri(e),n=_i(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=nM(r),l=Yw(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\\"}},XI={display(e,t={}){let{pixels:r}=Ri(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Yw(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`}},ZI={encode(e,t={}){let r=Ri(e),n=_i(r,t),o=t.width!==void 0||t.height!==void 0?Qw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=oM(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];sM([$,D,M],l)===u&&(y|=1<<h,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function jw(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 kp(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 Bw={render(e,t={}){let r=Ri(e),n=_i(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Qw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=jw(i,u,l),g=jw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=kp(p,g)):p.a>0?(f="\u2580",y=kp(p)):g.a>0&&(f="\u2584",y=kp(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
|
+
`)}},wi=10240,eM={render(e,t={}){let{width:r,height:n,pixels:o}=Ri(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&&iM(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(wi+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>=
|
|
121
|
+
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=wi&&n<wi+256){let o=wi+(255-(n-wi));t+=String.fromCharCode(o)}else t+=r}return t}};function El(e,t,r={}){switch(ss(e)){case"kitty":return as.transmit(t,r);case"iterm2":return XI.display(t,r);case"sixel":return ZI.encode(t,r);case"halfblock":return Bw.render(t,r);case"braille":return eM.render(t,r);default:return Bw.render(t,r)}}function vl(e){switch(ss(e)){case"kitty":return as.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var wp=null;function tM(){if(wp)return wp;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 wp=e,e}function rM(e){let t=tM(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function _l(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 Rp(e,t){let r=new Uint8Array(8+t.length+4);_l(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 _l(r,rM(n),8+t.length),r}function nM(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);_l(s,t,0),_l(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=Rp("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=qI(Buffer.from(l)),c=Rp("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=Rp("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 Yw(e){return Buffer.from(e).toString("base64")}function oM(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 sM(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 iM(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 Qw(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 Ep(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 Sl(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,H=typeof T.__scrollOffsetY=="number"&&Number.isFinite(T.__scrollOffsetY)?Math.max(0,Math.floor(T.__scrollOffsetY)):0,G=g+$+M-H,I=T.overflow==="hidden"||T.overflowX==="hidden",W=T.overflow==="hidden"||T.overflowY==="hidden",q={x:I?p:s?.x??Number.MIN_SAFE_INTEGER,y:W?g:s?.y??Number.MIN_SAFE_INTEGER,width:I?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:W?c:s?.height??Number.MAX_SAFE_INTEGER*2},oe=I||W?aM(s,q):s;for(let ae of u)Sl(ae,t,N,G,i,oe)}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 Xw(e){let t=[],r=0;return Sl(e,(n,o,s,i,a)=>{Ep(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var xp=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),Ep(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){Sl(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=is().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=is().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,os(),this.inputHandler=r=>{let n=ki(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]}},lM=Symbol("tuiuiu.hit-test-registry");function ls(e){return Oe(lM,()=>new xp,e)}function vp(e,t=0){let r=ls();if(r.clear(),t===0){r.registerFromLayout(e);return}Sl(e,(n,o,s,i,a,l)=>{Ep(n)&&r.register(n,o,s+t,i,a,l)})}import tr from"node:path";import{fileURLToPath as rR}from"node:url";var dM=[{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=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
|
-
`):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/
|
|
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=
|
|
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(`
|
|
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 cM(e){let t=dM.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function uM(e){return`docs/resources/common-mistakes.md#${cM(e).anchor}`}function Zw(e){return`See ${uM(e)} or tuiuiu://guide/common-mistakes.`}var eR=new Set,nR=tr.normalize(rR(import.meta.url)),pM=tr.dirname(tr.dirname(nR)),fM=tr.dirname(pM),Tl=0;function oR(){return process.env.NODE_ENV!=="production"}function tR(e){return e.startsWith("file://")?tr.normalize(rR(e)):tr.normalize(e)}function gM(e){let t=tr.normalize(e);return t.startsWith(fM)?t.includes(`${tr.sep}src${tr.sep}`)||t.includes(`${tr.sep}dist${tr.sep}`):!1}function hM(e){let t=tr.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function mM(e,t=[]){if(!e)return[];let r=new Set([nR,...t.map(tR)]),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=tR(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function bM(e,t){!oR()||eR.has(e)||(eR.add(e),console.warn(`[tuiuiu] ${t}`))}function xi(e){Tl++;try{return e()}finally{Tl=Math.max(0,Tl-1)}}function sR(e,t){if(!oR()||Tl>0||!gw()||hw()!=="component")return;let r=mM(e,[t])[0];if(!r||gM(r.filePath))return;let n=hM(r);bM(`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(). ${Zw("signals-inside-component-render")}`)}var Rn=null,vi=new Set,Ei=!1,Tp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return Rn&&Rn._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 _n){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 _n){let r=this._subs;Ei?vi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ei?vi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof _n){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)}}},Sp=null;var Pp=!1,Pl=new Set;function yM(e){Pl.add(e),Pp||(Pp=!0,queueMicrotask(kM))}function kM(){Pp=!1;let e=[...Pl];Pl.clear(),iR(e,t=>t.run())}function iR(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 _n=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?yM(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=Sp;Sp=this._cleanups;let r=Rn;Rn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{Rn=r,Sp=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,Pl.delete(this),vi.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){sR(new Error().stack,import.meta.url);let t=new Tp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function aR(e,t={}){let r=new _n(e,t);return()=>r.dispose()}function Nt(e){let t=Ei;Ei=!0;try{e()}finally{if(Ei=t,!t){let r=[...vi];vi.clear(),iR(r,n=>n.notify())}}}function ds(e){let t=Rn;Rn=null;try{return e()}finally{Rn=t}}var wM=Symbol("tuiuiu.terminal-focus-state");function RM(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function Ap(e){return Oe(wM,RM,e)}function hr(e){return Ap(e).read()}function Cp(e,t){let r=Ap(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Al(e,t){let r=Ap(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function Dp(e){Cp(!0,e)}var eo={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},dR=Symbol("tuiuiu.motion-runtime-state");function cR(e){let t=e.id===0?null:It(dR,()=>cR(Ir())),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,[Fr](){pR(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function Fp(){let e=We();return Oe(dR,()=>cR(e),e)}function Cl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function Op(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function _M(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 uR(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function xM(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Al(Xr(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}Dl(e)})))}function Ip(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 lR(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:hr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function EM(e,t){let r=hr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=Ip(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 pR(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function fR(e){if(e.schedulerTimer||!uR(e))return;xM(e);let t=EM(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(Xr(e.scope,()=>vM(e)),t))}function vM(e){if(e.schedulerTimer=null,!uR(e))return;let t=Date.now(),r=hr(e.scope),n=Ip(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=lR(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(lR(e,t,n,Math.max(s.intervalMs,i))))}fR(e)}function Dl(e){pR(e),fR(e)}function gR(e){let t=Fp(),r=Cl(e.targetFps??t.config.targetFps,eo.targetFps),n=Cl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Cl(e.unfocusedFps??t.config.unfocusedFps,eo.unfocusedFps),frameBudgetMs:Op(e.frameBudgetMs??t.config.frameBudgetMs,eo.frameBudgetMs),recoveryFrames:Cl(e.recoveryFrames??t.config.recoveryFrames,eo.recoveryFrames),elevatedFrameBudgetFactor:Op(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,eo.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:Op(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,eo.criticalFrameBudgetFactor)},Dl(t)}function Ol(){let e=Fp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:hr(e.scope),targetFrameMs:Ip(e),recommendedPresentationIntervalMs:_M(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 TM(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 hR(e){let t=Fp();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"),Dl(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):TM(t),Dl(t),t.qualityTier}function xn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function mR(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function bR(e){return e?Ft({key:e.key,transforms:e.transforms}):null}function Si(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 PM(e,t){let r=Si(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function AM(e,t){let r=xn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Si(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function CM(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 DM(e,t,r){let n=xn(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=Si(e);return a.clip=CM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function OM(e,t,r,n){let o=e.x;return(e.type==="text"?e.x+Math.max(1,e.maxWidth):e.x+Math.max(1,e.width))>r&&o<n&&e.y>=t.y&&e.y<t.y+t.height}function FM(e,t,r){if(e.type!=="text")return e;let n=xn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*xn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!OM(e,r,o,s))return e;let i=Si(e);return i.style={...i.style,bold:!0,inverse:!0},i}function IM(e,t,r){let n=xn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Si(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 H=Math.max(0,M-$),G=Math.max(H,N-$);return o.text=Zo(o.text,H,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 MM(e,t,r){let n=Ol().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&xn(s.opacity)<=0||s.kind==="scale"&&xn(s.scale)<=0||s.kind==="reveal"&&xn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=PM(o,s);break;case"fade":o=AM(o,s);break;case"scale":o=DM(o,s,r);break;case"shimmer":o=FM(o,s,r);break;case"reveal":o=IM(o,s,r);break}}return o}function yR(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=MM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var LM=1,jM=Symbol("tuiuiu.frame-runtime-state");function Lp(e){return Oe(jM,()=>({committedFrameSnapshot:null}),e)}var BM=new Set(["__terminalImage","__compositor"]),$M=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),NM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Mp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Fl=new WeakMap,vn=new Map,RR=4096;function En(){return typeof performance<"u"?performance.now():Date.now()}function GM(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 WM(e){return{eagerHitTargets:e?.eagerHitTargets??Mp.eagerHitTargets,eagerQueries:e?.eagerQueries??Mp.eagerQueries,eagerWarnings:e?.eagerWarnings??Mp.eagerWarnings}}function HM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,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 UM(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 qM(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&&UM(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 KM(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 cs(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function kR(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 VM(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 zM(e,t,r,n,o){return{getElement:s=>{let i=kR(e,s);return i.status==="missing"?cs(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"&&cs(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=kR(e,s);return!i.found||!i.bounds?(i.status==="missing"?cs(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"&&cs(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=VM(t,s);return i.status==="missing"?cs(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"&&cs(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 JM(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 YM(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 QM(e,t){let r=e.type==="text"?NM:$M,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 XM(e,t,r,n,o,s){return Ft([t,r,bR(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function ZM(e,t,r){if(!pl(e.node))return;let n=Fl.get(e);if(!n)return;if(n.cacheKey!==t){wn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){wn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){wn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){wn(e.node,Pe.CHILDREN);return}return n}function wR(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Fl.set(e,i),i}function eL(e){return e.map((t,r)=>({...t,order:r}))}function _R(e,t){return t?`${e}|motion:${Ol().qualityTier}`:e}function tL(){let e=Math.max(1,Math.ceil(RR*.1)),t=vn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;vn.delete(n.value)}}function rL(e){return vn.get(e)}function nL(e,t,r){let n=vn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!vn.has(e)&&vn.size>=RR&&tL(),vn.set(e,o),o}function oL(e,t,r){let n=vn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function sL(e,t){for(let r of t)e.push(r)}function iL(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function aL(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function xR(e){let t=e.props;return mR(t?.__compositor)?t.__compositor:null}function ER(e,t=new Map){let r=xR(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)ER(n,t);return t}function lL(e,t,r,n,o,s){if(!aL(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=is(),R=iL(y.source)?y.source:xl(y.source,{cellSize:h.cellSize}),T=y.options?.protocol??h.protocol,$=ss(T),D=_i(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:Ww($),protocolState:y.protocolState}}function dL(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 vR(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=xR(i),h=y?[...o,y.key]:[...o],R=y!==null,T=lL(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=JM(t,r,n,h,s)+$,M,N=()=>(M===void 0&&(M=QM(i,T)),M),H=ZM(e,D,N);if(H)return ci("draw"),{commands:H.commands,hasCompositor:H.hasCompositor,subtreeSignature:H.subtreeSignature};let G=N(),I=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,ke=W??n,Y=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",Re={x:Y?p:s?.x??Number.MIN_SAFE_INTEGER,y:de?g:s?.y??Number.MIN_SAFE_INTEGER,width:Y?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:de?c:s?.height??Number.MAX_SAFE_INTEGER*2},De=Y||de?YM(s,Re):s;for(let ie of u){let _e=vR(ie,pe,Ee,ke,h,De);q.push(_e),R||=_e.hasCompositor,oe.push(_e.subtreeSignature)}let ve=XM(e,D,G,y,h,oe),we=rL(ve);if(we){ci("draw");let ie=wR(e,D,G,we.commands,we.hasCompositor,ve),_e=_R(ve,we.hasCompositor);return we.materialized&&we.materializedSignature===_e&&(ie.materialized=we.materialized,ie.materializedSignature=_e),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let _e=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:I,nodeType:i.type,compositorKeys: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:_e,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ie=String(f.children??""),_e=Math.max(1,ye(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
|
|
193
|
+
`):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/_e)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>ie).join(`
|
|
194
|
+
`):ie;Se.push({type:"text",id:I,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)sL(Se,ie.commands);Qn("draw");let fe=wR(e,D,G,Se,R,ve);return nL(ve,fe.commands,R),{commands:fe.commands,hasCompositor:R,subtreeSignature:ve}}function cL(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 uL(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=cL(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function pL(e){let t=vR(e),r=Fl.get(e),n=_R(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=eL(t.commands),s=t.hasCompositor?yR(o,ER(e)):o,i=uL(s),a=Fl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),oL(t.subtreeSignature,i,n),i}function SR(e,t,r={}){let n=WM(r),o=GM(t),s=Date.now(),i=En(),a=En(),l=iw(e,o.width,o.height),d=En()-a,c=En(),u=pL(l),p=dL(u),g=En()-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=rw();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=HM(l)),h),N=()=>(R||(R=qM(l)),R),H=()=>{if(!T){let ae=En();T=Xw(l),f.phases.hitTargetRegistrationMs=En()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...KM(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&H();let I=zM(M,N,o,$,f),W=Date.now(),q=En()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:LM++,committedAt:W,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:I,metrics:f,get hitTargets(){return H()},get warnings(){return G()}}}function TR(e,t){Lp(t).committedFrameSnapshot=e}function PR(e){return Lp(e).committedFrameSnapshot}function AR(e){Lp(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 Ct(e,t,r){e.metrics.structural[t]=r}function CR(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 OR=Symbol("tuiuiu.progressive-runtime-state");function DR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function fL(e){if(e.id===0)return DR();let t=It(OR,DR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function jp(){let e=We();return Oe(OR,()=>fL(e),e)}function FR(){return jp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function IR(){return jp().capabilityOverrides}function Bp(){return jp().progressiveVersion}function gL(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=wl(t),a=Fw(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=FR(),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},H=IR();return H&&Object.assign(N,H),N}var MR=Symbol("tuiuiu.capability-runtime-state");function LR(e){let t=e.id===0?"auto":ds(It(MR,()=>LR(Ir())).renderModeSignal),[r,n]=gr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Fr](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function Ti(e){let t=We(e);return Oe(MR,()=>LR(t),t)}function jR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function hL(e){return gL({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Il(e){return e.cachedCapabilities=hL(e),e.cachedProgressiveVersion=Bp(),e.cachedCapabilities}function BR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Il(e);let r=jR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function $R(e){let t=Ti(),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,BR(t)}function Br(){let e=Ti(),t=Bp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Il(e),e.cachedCapabilities??Il(e)}function NR(){return Il(Ti())}function GR(){return jR(Ti())}function WR(e){let t=Ti();return t.resizeHandlers.add(e),BR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var HR={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},mL={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},bL=512,to=new Map,UR=4e6;function $r(){return{char:" ",attrs:{}}}function Np(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 yL(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&&Np(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function qR(e,t){return e.char===t.char&&Np(e.fg,t.fg)&&Np(e.bg,t.bg)&&yL(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Ml(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Nr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>UR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${UR} 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($r());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||ye(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,ye(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=$r(),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]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&ye(s.char)>1&&(this.cells[r][t-1]=$r(),this.addDamage(t-1,r,1,1))}return}let o=ye(n.char);if(!(o<=1)){this.cells[r][t]=$r(),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]=$r(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=ye(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=Jn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
195
|
+
`)continue;if(a>=this.width)break;let c=ye(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(ye(o)!==1){let c=ye(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(ye(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=$r();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,Ml(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];qR(a,l)||r.push({x:i,y:s,cell:Ml(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=kL(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];qR(d,c)||n.push({x:l,y:i.y,cell:Ml(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Ml(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}${VR(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function kL(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||wL(o)?KR(s,i,o):RL(s,i,o)}function wL(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 KR(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 RL(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 Pi=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Nr(t,r),this.back=new Nr(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 Nr(t,r),this.back=new Nr(t,r)}};function Gp(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(HR[e]!==void 0){let n=t?40:30,o=HR[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 _L(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(mL[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=xL(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 xL(e){let t=Gp(e,!1);if(!t)return"";if(t.startsWith("38;"))return`58;${t.slice(3)}`;let r=Number.parseInt(t,10);return Number.isNaN(r)?"":r>=30&&r<=37?`58;5;${r-30}`:r>=90&&r<=97?`58;5;${r-82}`:""}function $p(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function VR(e,t,r){return[r.bold?"1":"0",r.dim?"1":"0",r.italic?"1":"0",r.underline===void 0||r.underline===!1?"0":String(r.underline),$p(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",$p(e),$p(t)].join("|")}function zR(e,t,r){let n=VR(e,t,r),o=to.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(..._L(r));let i=Gp(e,!1),a=Gp(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>=bL){let d=to.keys().next();d.done||to.delete(d.value)}return to.set(n,l),l===""?null:l}function EL(e){return e.length===1&&e.charCodeAt(0)<=127?1:ye(e)}function Ll(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=zR(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 Wp(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=zR(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+(EL(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function jl(e,t){let r=t??Br().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 vL="\x1B[?2026h",SL="\x1B[?2026l";function JR(e){let t=e??Br();return t.synchronizedOutput?jl(vL,t.multiplexer):""}function YR(e){let t=e??Br();return t.synchronizedOutput?jl(SL,t.multiplexer):""}var Hp={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 XR="\x1B[?25h",TL="\x1B[?25l",Bl=!1,QR=!1,PL=null,Up=null;function qp(e){return"isTTY"in e&&!!e.isTTY}function AL(){let e=Up??process.stdout;qp(e)&&Bl&&(e.write(XR),Bl=!1)}function CL(){QR||(QR=!0,PL=en(AL))}function us(e=process.stdout){qp(e)&&(Up=e,Bl=!1,e.write(XR))}function ps(e=process.stdout){qp(e)&&(Up=e,CL(),Bl=!0,e.write(TL))}var DL="#ffffff",OL="#000000",FL="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},IL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},ML={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"},Ue={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ue={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},LL={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"},jL={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"},$L={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},NL={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Xe={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},GL={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"},WL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},HL={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},UL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},qL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},KL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},VL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},ZR={white:DL,black:OL,transparent:FL,slate:k,gray:IL,zinc:ML,neutral:m,stone:Ue,red:ue,orange:LL,amber:ge,yellow:jL,lime:BL,green:he,emerald:$L,teal:NL,cyan:Xe,sky:GL,blue:te,indigo:WL,violet:HL,purple:UL,fuchsia:qL,pink:KL,rose:VL};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:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},Kp={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:Xe[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:Xe[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:Xe[900],fg:Xe[100],border:Xe[600],iconFg:Xe[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 Q={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:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},e_={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Q,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:ue[600],info:Xe[600],highlight:Q.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Q.primary[600],ring:{color:Q.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Q.primary[100],fg:Q.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Q.primary[600],danger:Q.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Q.primary[600],fg:"#ffffff",hoverBg:Q.primary[700],activeBg:Q.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Q.primary[600],hoverBg:Q.primary[50],activeBg:Q.primary[100],border:Q.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:Q.primary[100],selectedBg:Q.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Q.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Q.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Q.primary[600],invalidBorder:Q.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Q.primary[600]},radio:{bg:"#ffffff",dotColor:Q.primary[600],border:k[300],checkedBorder:Q.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:Q.success[100],fg:Q.success[800]},warning:{bg:Q.warning[100],fg:Q.warning[800]},danger:{bg:Q.danger[100],fg:Q.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Q.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Q.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Q.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.success[700]},warning:{bg:Q.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Q.warning[600]},danger:{bg:Q.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Q.primary[600],fg:"#ffffff"},info:{bg:Xe[600],fg:"#ffffff"},success:{bg:Q.success[600],fg:"#ffffff"},warning:{bg:Q.warning[500],fg:k[900]},danger:{bg:Q.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Q.primary[700],subtitleFg:k[600],border:Q.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:Q.primary[100],headerFg:Q.primary[900],contentBg:"#ffffff",border:Q.primary[200],iconFg:Q.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:Q.primary[100],itemSelectedFg:Q.primary[900],highlightFg:Q.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Q.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Q.success[50],fg:Q.success[900],border:Q.success[200],iconFg:Q.success[600]},error:{bg:Q.danger[50],fg:Q.danger[900],border:Q.danger[200],iconFg:Q.danger[600]},warning:{bg:Q.warning[50],fg:Q.warning[900],border:Q.warning[200],iconFg:Q.warning[600]},info:{bg:Xe[50],fg:Xe[900],border:Xe[200],iconFg:Xe[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Q.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Q.primary[600],titleBarFg:"#ffffff",border:Q.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Q.success[600],titleBarFg:"#ffffff",border:Q.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Q.warning[500],titleBarFg:k[900],border:Q.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Q.danger[600],titleBarFg:"#ffffff",border:Q.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:Ue[50],100:Ue[100],200:Ue[200],300:Ue[300],400:Ue[400],500:Ue[500],600:Ue[600],700:Ue[700],800:Ue[800],900:Ue[900]},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"}},t_={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 A={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"}},r_={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:A.background,subtle:A.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:A.comment,popover:A.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:A.foreground,secondary:"#E8E8E2",muted:A.comment,disabled:"#565869",inverse:{base:A.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:A.green,warning:A.yellow,critical:A.red,info:A.cyan,highlight:A.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:A.purple,ring:{color:A.purple,width:2}},disabled:{opacity:.4,bg:A.currentLine,fg:"#565869"},selected:{bg:A.currentLine,fg:A.foreground}},borders:{default:A.comment,subtle:A.currentLine,strong:A.purple,accent:A.purple,danger:A.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:A.purple,fg:A.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:A.currentLine,fg:A.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:A.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:A.purple},ghost:{bg:"transparent",fg:A.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:A.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:A.comment},menu:{bg:A.currentLine,border:A.comment,item:{fg:A.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:A.currentLine,border:A.comment,tab:{fg:A.comment,activeFg:A.foreground,activeBg:A.background,hoverFg:"#E8E8E2",indicator:A.purple}},dropdown:{bg:A.currentLine,border:A.comment,item:{fg:A.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:A.currentLine,fg:A.foreground,placeholder:A.comment,border:A.comment,focusBorder:A.purple,invalidBorder:A.red},checkbox:{bg:A.currentLine,border:A.comment,checkColor:A.foreground,checkedBg:A.purple},radio:{bg:A.currentLine,dotColor:A.purple,border:A.comment,checkedBorder:A.purple},tooltip:{bg:"#4D4F5F",fg:A.foreground},modal:{bg:A.currentLine,border:A.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:A.comment,fg:A.foreground},success:{bg:A.green,fg:A.background},warning:{bg:A.yellow,fg:A.background},danger:{bg:A.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:A.currentLine,selectedBg:"#4D4F5F",fg:A.foreground}},header:{default:{bg:A.currentLine,fg:A.foreground,titleFg:A.foreground,subtitleFg:A.comment,border:A.comment},primary:{bg:A.purple,fg:A.foreground,titleFg:A.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:A.foreground,titleFg:A.foreground,subtitleFg:A.comment,border:"#565869"},success:{bg:A.green,fg:A.background,titleFg:A.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:A.yellow,fg:A.background,titleFg:A.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:A.orange},danger:{bg:A.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:A.currentLine,fg:A.comment},primary:{bg:A.purple,fg:A.foreground},info:{bg:A.cyan,fg:A.background},success:{bg:A.green,fg:A.background},warning:{bg:A.yellow,fg:A.background},danger:{bg:A.red,fg:"#ffffff"}},page:{default:{bg:A.background,titleFg:A.foreground,subtitleFg:A.comment,border:A.comment},primary:{bg:A.background,titleFg:A.purple,subtitleFg:A.comment,border:A.purple},secondary:{bg:A.background,titleFg:"#E8E8E2",subtitleFg:A.comment,border:A.currentLine}},appshell:{bg:"#21222C",dividerFg:A.comment,sidebarBg:A.background,asideBg:A.background},collapsible:{default:{headerBg:A.currentLine,headerFg:A.foreground,contentBg:A.background,border:A.comment,iconFg:A.comment},primary:{headerBg:"#4D4F5F",headerFg:A.purple,contentBg:A.background,border:A.purple,iconFg:A.purple},secondary:{headerBg:"#4D4F5F",headerFg:A.foreground,contentBg:A.currentLine,border:"#565869",iconFg:A.comment}},commandPalette:{bg:A.currentLine,border:A.comment,inputBg:A.background,inputFg:A.foreground,inputPlaceholder:A.comment,itemFg:A.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:A.foreground,highlightFg:A.purple,categoryFg:A.comment},splitPanel:{bg:A.background,dividerBg:A.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:A.purple,border:A.comment,titleFg:A.comment},toast:{success:{bg:no.success[900],fg:no.success[100],border:A.green,iconFg:A.green},error:{bg:no.danger[900],fg:no.danger[100],border:A.red,iconFg:A.red},warning:{bg:no.warning[900],fg:no.warning[100],border:A.yellow,iconFg:A.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:A.cyan,iconFg:A.cyan}},window:{default:{bg:A.background,fg:A.foreground,titleBarBg:A.currentLine,titleBarFg:A.foreground,border:A.comment,buttonFg:A.comment,closeFg:A.red},primary:{bg:A.background,fg:A.foreground,titleBarBg:A.purple,titleBarFg:A.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:A.foreground},success:{bg:A.background,fg:A.foreground,titleBarBg:A.green,titleBarFg:A.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:A.background},warning:{bg:A.background,fg:A.foreground,titleBarBg:A.yellow,titleBarFg:A.background,border:A.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:A.background},danger:{bg:A.background,fg:A.foreground,titleBarBg:A.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"}},n_={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"}},o_={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:Ue[50],100:Ue[100],200:Ue[200],300:Ue[300],400:Ue[400],500:Ue[500],600:Ue[600],700:Ue[700],800:Ue[800],900:Ue[900]},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}},s_={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"}},i_={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}},a_={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:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50: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]}},l_={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:ue[400],info:Xe[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:ue[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:ue[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:ue[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:ue[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ue[300]}},statusbar:{default:{bg:m[950],fg:m[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Xe[500],fg:"#000000"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ue[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:ue[400],iconFg:ue[400]},warning:{bg:co.warning[900],fg:co.warning[100],border:ge[400],iconFg:ge[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Xe[400],iconFg:Xe[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:m[950],titleBarFg:"#ffffff",border:m[500],buttonFg:m[300],closeFg:ue[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:ue[500],titleBarFg:"#ffffff",border:ue[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var zL={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]}},d_={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:zL,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 u_=Symbol("tuiuiu.theme-runtime-state");function c_(){let[e,t]=gr(Kp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function JL(e){if(e.id===0)return c_();let t=It(u_,c_),[r,n]=gr(ds(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function p_(){let e=We();return Oe(u_,()=>JL(e),e)}function f_(){return ds(p_().currentTheme)}var YL={dark:Kp,light:e_,monokai:t_,dracula:r_,nord:n_,solarizedDark:o_,gruvbox:s_,tokyoNight:i_,catppuccin:a_,highContrastDark:l_,monochrome:d_},M9=Object.keys(YL);function QL(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("#")&&QL(e)>.4?"black":"white"}function XL(e,t=500){let r=ZR[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var ZL={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 g_(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=ds(p_().currentTheme),r=ZL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return XL(o,i)}return e}var ej={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},h_=Symbol("tuiuiu.perf-inspector-runtime-state");function tj(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function m_(e){let t=e.id===0?null:It(h_,()=>m_(Ir())),r=tj(t?.config??ej);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function b_(){let e=We();return Oe(h_,()=>m_(e),e)}function rj(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function nj(e,t){let r=ij().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 oj(e,t){e.ring.length!==e.config.maxFrames&&nj(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 sj(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 y_(e,t={}){let r=b_(),n=rj(e),o=Math.max(0,n-r.config.budget.frameMs),s=sj(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;hR({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(oj(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function ij(){let e=b_(),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 aj={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function uo(e,t){return SR(e,t,aj)}function Vp(e){TR(e)}function Sn(e,t){CR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),y_(e,{renderer:t.renderer})}var lj=.4,dj=64;function po(){return typeof performance<"u"?performance.now():Date.now()}var k_=new WeakMap;function cj(){let e=f_(),t=k_.get(e);return t||(t=new Map,k_.set(e,t)),t}function uj(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&&pj(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 pj(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 __(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 x_(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 fj(e,t,r){let n=e.map(s=>x_(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(!(__(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 gj(e,t,r){let n=new Map;for(let i of e){let a=x_(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 E_(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 Pi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function h(I){H(t.columns||80,t.rows||24);let W=uo(I,{width:s,height:i});R(W)}function R(I){H(I.info.viewport.width,I.info.viewport.height),G(I),rs(I.layout),ui(),c=I.root,u=I}function T(){l=!0,c?h(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Pi(s,i),l=!0}function D(){!r&&d&&(us(t),d=!1)}function M(){let I=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:y,totalCells:I,updatePercentage:I>0?y/I*100:0}}function N(I,W){s=I,i=W,a.resize(s,i),l=!0}function H(I,W){!r&&!d&&(ps(t),d=!0),(I!==s||W!==i)&&N(I,W)}function G(I){let W=po(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=Ej(u,I),Ae=Br(),Ee=JR(Ae),ke=YR(Ae),Y=Re=>{let De=po();t.write(Re),q+=po()-De,oe+=typeof Re=="string"?Buffer.byteLength(Re):Re.byteLength};if(!l&&n&&u){let{renderRects:Re,diffRects:De}=mj(u.drawCommands,I.drawCommands,s,i);if(Ct(I,"dirtyRectCount",Re.length),Ct(I,"diffRectCount",De.length),Re.length===0){pe&&Y(pe),y=0,Ct(I,"patchCount",0),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}let ve=bj(Re);if(!(Re.length>dj||ve>Z*lj)){Ee&&Y(Ee),yj(se,Re),wj(I.drawCommands,Re,se,I.reservedRegions);let Se=ae.diffRects(se,De);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,Ct(I,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${Re.length}, patches: ${Se.length}, cells: ${Z}`),pe&&Y(pe),Se.length>0){let fe=Wp(Se,s,!0);Y(fe),g++}ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}}Ee&&Y(Ee),se.clear(),T_(I.drawCommands,se,I.reservedRegions);let de=a.swap();if(y=de.length,Ct(I,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let Re=Ll(a.getFrontBuffer());pe&&Y(pe),Y("\x1B[H"),Y(Re),f++,l=!1,ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}if(pe&&Y(pe),de.length>0){let Re=Wp(de,s,!0);Y(Re),g++}l=!1,ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"})}return{render:h,renderFrame:R,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function hj(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,ye(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function zp(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:hj(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 mj(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&&uj(a,l)||(a&&o.push(zp(a)),l&&o.push(zp(l)))}return{renderRects:fj(o,r,n),diffRects:gj(o,r,n)}}function bj(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function yj(e,t){let r=$r();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function v_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function br(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,ye(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||v_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function kj(e,t,r,n,o,s,i,a,l={},d){for(let c=0;c<o;c++)(!d||r+c>=d.x&&r+c<d.x+d.width&&n>=d.y&&n<d.y+d.height)&&!v_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function S_(e,t,r){switch(e.type){case"box":Rj(e,t,r);break;case"text":O_(e,t,r);break;case"terminal-image":_j(e,t);break}}function wj(e,t,r,n){for(let o of e){let s=zp(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(__(s,i)){S_(o,r,n);break}}}}function T_(e,t,r){for(let n of e)S_(n,t,r)}function P_(e,t=new Nr(e.info.viewport.width,e.info.viewport.height)){return T_(e.drawCommands,t,e.reservedRegions),t}function Rj(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,H=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let I=0;I<G;I++)kj(t,r,M,N+I,H,l,void 0,R,{},h)}if(d&&d!=="none"){let D=Hp[d]??Hp.single,M={},N=u?.top!==!1,H=u?.bottom!==!1,G=u?.left!==!1,I=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=I?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=` ${Qr(Uk(p),q,{truncationCharacter:""})} `,se=ye(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ae=0,Ee=pe;for(;Ae<ae.length&&Ee<n+s-1;){let ke=Jn(ae,Ae);if(!ke)break;Ae=ke.nextIndex;let Y=ye(ke.symbol);Y<=0||Ee+Y>n+s-1||(br(t,r,Ee,o,ke.symbol,$,void 0,y?{...M,bold:!0}:M,h),Ee+=Y)}}}for(let W=1;W<i-1;W++)G&&br(t,r,n,o+W,D.left,T,void 0,M,h),I&&s>1&&br(t,r,n+s-1,o+W,D.right,T,void 0,M,h);if(H&&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=I?D.bottomRight:D.bottom;br(t,r,n+s-1,o+i-1,q,T,void 0,M,h)}}}}function _j(e,t){e.cellRender&&O_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:D_(e),style:{},clip:e.clip},t,[])}function A_(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 C_(e){let t=A_(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 Ai(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${C_(e)}:${e.x}:${e.y}`)}function fs(e){return[Ai(e),e.x,e.y,C_(e)].join(":")}function D_(e){let t=A_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:El(e.protocol,e.source,t)}function w_(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 xj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ai(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ai(s));if(!i||fs(s)!==fs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=as.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${vl("kitty")}\x1B8`}}return o}function Ej(e,t){let r=w_(e),n=w_(t),o=r.map(fs).join("|"),s=n.map(fs).join("|");if(e&&o===s)return"";let i=xj(r,n),a=new Map(r.map(l=>[Ai(l),l]));for(let l of n){let d=a.get(Ai(l));d&&fs(d)===fs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=D_(l),i+="\x1B8")}return i}function gs(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 vj(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=gs(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(gs);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=gs(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[gs(e[t+2]),gs(e[t+3]),gs(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var R_={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function Tj(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 R_&&(a.underline=R_[R])}else if(h===38||h===48||h===58){let R=vj(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 O_(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=Tj(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=
|
|
198
|
+
`){R++,h=0,$=D.nextIndex;continue}let N=ye(M);N>0&&(br(t,r,n+h,o+R,M,T.fg,T.bg,T.attrs,e.clip),h+=N),$=D.nextIndex}}}else for(let y=0;y<f.length;y++){let h=0,R=0;for(;R<f[y].length;){let T=Jn(f[y],R);if(!T)break;let $=T.symbol;if(h>=s)break;let D=ye($);D>0&&(br(t,r,n+h,o+y,$,c,u,p,e.clip),h+=D),R=T.nextIndex}}}function fo(e){let t=cj(),r=t.get(e);if(r)return r;let n=g_(e);return t.set(e,n),n}var tq=Symbol("tuiuiu.delta-renderer-state");function F_(){return typeof performance<"u"?performance.now():Date.now()}function M_(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=M_(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function Pj(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 Yp(e,t={}){let r=F_(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=M_(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Nr(e.info.viewport.width,u);P_(e,p);let g=Ll(p,n),f=Dj(e,o);return it(e,"ansiRenderMs",F_()-r),f+g}function L_(e,t,r){let n=Pj(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 Yp(i,{fullHeight:n.fullHeight})}function j_(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 B_(e){let t=j_(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 Ci(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${B_(e)}:${e.x}:${e.y}`)}function hs(e){return[Ci(e),e.x,e.y,B_(e)].join(":")}function Aj(e){let t=j_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:El(e.protocol,e.source,t)}function I_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Jp(e,t){if(!Hw(t))return e;let r=Br();return r.multiplexer?jl(e,r.multiplexer):e}function Cj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ci(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ci(s));if(!i||hs(s)!==hs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Jp(`\x1B7\x1B[H${as.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Jp(`\x1B7\x1B[H${vl("kitty")}\x1B8`,"kitty")}}return o}function Dj(e,t){let r=I_(e);if(r.length===0&&!t)return"";let n=I_(t),o=n.map(hs).join("|"),s=r.map(hs).join("|");if(t&&o===s)return"";let i=Cj(n,r),a=new Map(n.map(l=>[Ci(l),l]));for(let l of r){let d=a.get(Ci(l));if(d&&hs(d)===hs(l))continue;let c=Aj(l);i+=Jp(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function $l(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=xi(()=>gr(e)),o=er();return pr(o,n),n}return t}function $_(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=xi(e);return pr(er(),n),n}return t}function Di(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=er(),o={effect:null,fn:e,dispose:null};pr(n,o);let s=new _n(()=>{let a=jr(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 Rq=Symbol("tuiuiu.keyboard-protocol-runtime-state");function N_(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 Qp="\x1B[200~",ms="\x1B[201~",Oj="\x1B[I",Fj="\x1B[O";function G_(){return"\x1B[?2004h"}function W_(){return"\x1B[?2004l"}function H_(){return"\x1B[?1004h"}function U_(){return"\x1B[?1004l"}function q_(e){return e===Oj?{focused:!0}:e===Fj?{focused:!1}:null}function K_(){return"\x1B[?1049h"}function Xp(){return"\x1B[?1049l"}var Ij={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},Mj=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),Lj=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),jj=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,Bj=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,$j=/^\x1b\[27;(\d+);(\d+)~/;function Nj(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 z_(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function V_(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!z_(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function Gj(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=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,`
|
|
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=N_(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=V_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=$j.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(Nj(r,d)&&z_(c))return n=V_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=jj.exec(t);if(i&&i.index===0){let d=[...t];d[0]==="\x1B"&&d[1]==="\x1B"&&(r.option=!0);let c=[i[1],i[2],i[4],i[6]].filter(Boolean).join(""),u=(i[3]||i[5]||1)-1;r.ctrl=!!(u&4),r.meta=!!(u&10),r.shift=!!(u&1);let p=Ij[c];return p&&Gj(r,p),Mj.has(c)&&(r.shift=!0),Lj.has(c)&&(r.ctrl=!0),{input:n,key:r,length:i[0].length}}let a=/^(?:)([a-zA-Z0-9])/.exec(t);if(a)return r.meta=!0,r.shift=/^[A-Z]$/.test(a[1]),n=a[1].toLowerCase(),{input:n,key:r,length:2};let l=/^[^\x00-\x1f\x7f]+/u.exec(t);if(l){let d=l[0];return d.length===1&&d>="A"&&d<="Z"?(r.shift=!0,n=d.toLowerCase(),{input:n,key:r,length:1}):(n=d,{input:n,key:r,length:d.length})}return{input:n,key:r,length:t.length}}function ef(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 jr(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=er();pr(d,l),r&&(l.handlerId=hl(a,{priority:n,stopPropagation:o})),Xn(()=>{l.handlerId!==null&&(gi(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=hl(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(gi(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&gi(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=hl(s.wrapper,{priority:n,stopPropagation:o}))}}function J_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(J_):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function yr(e,...t){return{type:"box",props:{...e},children:J_(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 Wj=0,Y_=Symbol("tuiuiu.focus-zone-manager"),tf=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(Y_,()=>new e)}static reset(){ul(Y_)}[Fr](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Wj++}`,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 Q_(){return tf.getInstance()}var Oi=class{zoneManager=Q_();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as Hj}from"node:string_decoder";function X_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function Uj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function qj(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 Kj(e){let t=qj(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function Vj(e){let t=Math.min(e.length,ms.length-1);for(let r=t;r>0;r--)if(e.endsWith(ms.slice(0,r)))return r;return 0}var rf=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new Hj("utf8");pendingInput="";pasteBuffer=null;pasteBufferBytes=0;pasteOverflowed=!1;pasteTerminatorPrefix="";disposed=!1;constructor(t={}){this.maxPasteBytes=t.maxPasteBytes??1024*1024,this.maxPendingEscapeBytes=t.maxPendingEscapeBytes??4096,this.pasteHeuristicThreshold=t.pasteHeuristicThreshold??32,X_(this.maxPasteBytes,"maxPasteBytes"),X_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),Uj(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}=Kj(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&&ms.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(ms);if(o===-1){let s=Vj(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+ms.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(Qp);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+Qp.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 Z_(e={}){return new rf(e)}function ex(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(H_()),a&&o&&u(G_()))},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(U_())),a&&o&&h(()=>u(W_())),y)throw y}}}function Wl(){let e=Zr();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Nl=new WeakSet,Gl=new WeakSet;function nf(e,t,r={}){let n=lp();if(n&&Zr(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(Nl.has(e)||Gl.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=Qk();Nl.add(e),Gl.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,h=!1,R=o,T,$=qe(u,()=>($R({stdout:t}),!!(e.isTTY&&p&&Br().focusEvents))),D=ex({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(Y){Nl.delete(e),Gl.delete(t);try{D.dispose()}finally{ts(u)}throw Y}Dp(u);let H=qe(u,()=>new Oi);gp(H,u);let G=Z_({maxPasteBytes:a,maxPendingEscapeBytes:l}),I=null,W=null,q=()=>{I&&(clearTimeout(I),I=null)},oe=()=>{q(),I=setTimeout(()=>{G.abortPaste(),I=null},Math.max(0,c))},ae=Y=>{let de=Y;for(;de.length>0;){let Re=q_(de.slice(0,3));if(Re){Nt(()=>{Cp(Re.focused)}),de=de.slice(3);continue}if(yp(de)){let fe=ki(de);if(fe){Nt(()=>{ls().handleMouseEvent(fe.event),kw(fe.event)}),de=de.slice(fe.length);continue}}let{input:De,key:ve,length:we}=Zp(de),Se=we>0?we:1;if(de=de.slice(Se),s&&ve.ctrl&&De==="c"){ke();return}if(R){if(ve.tab&&!ve.shift){Nt(()=>{H.focusNext()});continue}if(ve.tab&&ve.shift){Nt(()=>{H.focusPrevious()});continue}if(ve.escape&&H.getActiveId()!==void 0){Nt(()=>{H.blur()});continue}}Nt(()=>{bw(De,ve)})}},se=Y=>{for(let de of Y){if(h)return;de.type==="paste"?Nt(()=>{Rw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{h||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!h&&(se(G.flushPendingInput()),Z())},Ae=Xr(u,Y=>{h||(se(G.push(Y)),Z())});e.on("data",Ae);let Ee=()=>{if(h)return;h=!0;let Y=de=>{try{de()}catch(Re){console.error("[tuiuiu] Error while disposing app state:",Re)}};try{Y(()=>e.off("data",Ae)),W&&(clearTimeout(W),W=null),q(),Y(()=>G.dispose()),Y(()=>D.dispose()),Y(()=>gl(u)),Y(()=>Dp(u)),Y(()=>yw(u)),Y(()=>_w(u)),Y(()=>ww(u)),Y(()=>kl(u)),Y(()=>Ow(u)),Y(()=>gp(null,u)),Y(()=>{Zr(u)===T&&fp(null,u)})}finally{Nl.delete(e),Gl.delete(t),g.clear(),ts(u)}},ke=Y=>{if(f)return;f=!0,y=Y;let de=[...g];g.clear(),Ee();for(let Re of de)try{Re(Y)}catch(De){console.error("[tuiuiu] Error in app exit callback:",De)}Y&&console.error(Y),i&&process.exit(Y?1:0)};return T={exit:ke,dispose:Ee,stdin:e,stdout:t,writeLine:Y=>{let de=Xo(String(Y)).replace(/\r\n?/g,`
|
|
201
201
|
`);t.write(`${de.replace(/\n+$/u,"")}
|
|
202
|
-
`)},onExit:
|
|
202
|
+
`)},onExit:Y=>{if(f){try{Y(y)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(Y),()=>{g.delete(Y)}},autoTabNavigation:R,setAutoTabNavigation:Y=>{R=Y},setRawMode:M,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>hr(u),enqueueExternalUpdate:Y=>{Nt(()=>{Y()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},fp(T,u),T}function of(e){let t=Zr();t&&(t.clearScreen=e)}function Hl(e){let t=Zr();t&&(t.writeLine=e??(r=>{let n=Xo(String(r)).replace(/\r\n?/g,`
|
|
203
203
|
`);t.stdout.write(`${n.replace(/\n+$/u,"")}
|
|
204
|
-
`)}))}function
|
|
204
|
+
`)}))}function Ul(e){let t=Zr();if(t){if(!e){t.enqueueExternalUpdate=r=>{Nt(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function sf(){let[e,t]=$_(()=>gr(GR()));return Di(()=>WR(n=>{t(n)})),e()}function af(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=ur(null);if(i||s===null){let a=er(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=jr(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=jr(a);c&&c.callback()},d.delay))},stop:()=>{let d=jr(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>jr(a)?.running??!1};return pr(a,l),Xn(l.stop,a),n&&(o&&e(),l.start()),{start:l.start,stop:l.stop,isRunning:l.isRunning}}else return s.callback=e,s.delay=t,n!==s.enabled&&(s.enabled=n,n?s.start():s.stop()),{start:s.start,stop:s.stop,isRunning:s.isRunning}}var kr="\x1B[",lf=`${kr}H`,Fi=`${kr}J`,ql=`${kr}K`,tx=e=>{let t="";for(let r=0;r<e;r++)t+=kr+"2K",r<e-1&&(t+=kr+"1A");return e>0&&(t+="\r"),t},rx=e=>e>0?`${kr}${e}A`:"",zj=`${kr}1E`,Jj=`${kr}2K`;function Yj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${kr}${n+1}H`:lf,d=c=>{!r&&!a&&(ps(e),a=!0);let u=c+`
|
|
205
205
|
`;if(u===o)return;let p=c.split(`
|
|
206
|
-
`),g=p.map(T=>
|
|
207
|
-
`+
|
|
206
|
+
`),g=p.map(T=>ye(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($+ql):y.push($)}let h=s-f,R="";if(h>0)for(let T=0;T<h;T++)R+=`
|
|
207
|
+
`+ql;o=u,s=f,i=g,e.write(l+y.join(`
|
|
208
208
|
`)+R+`
|
|
209
|
-
`+
|
|
209
|
+
`+Fi)};return d.clear=()=>{e.write(l+Fi),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(us(e),a=!1)},d.sync=c=>{let u=c.split(`
|
|
210
210
|
`);o=c+`
|
|
211
|
-
`,s=u.length,i=u.map(p=>
|
|
211
|
+
`,s=u.length,i=u.map(p=>ye(p))},d}function Qj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${kr}${n+1}H`:lf,l=d=>{!r&&!i&&(ps(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+
|
|
214
|
+
`||s.length===0){e.write(a+tx(u)+c),s=c,o=p;return}let y=[];g<u?y.push(tx(u-g+1),rx(f)):y.push(rx(u-1));for(let h=0;h<f;h++){if(p[h]===o[h]){y.push(zj);continue}y.push(Jj+p[h]+`
|
|
215
|
+
`)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Fi),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(us(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 Xj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${kr}${n+1}H`:lf,l=d=>{!r&&!i&&(ps(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+ql).join(`
|
|
219
219
|
`),s>p){let y=s-p;for(let h=0;h<y;h++)g+=`
|
|
220
|
-
`+
|
|
221
|
-
`).length},l}function
|
|
220
|
+
`+ql}e.write(a+g+Fi),o=c,s=p};return l.clear=()=>{e.write(a+Fi),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(us(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
|
|
221
|
+
`).length},l}function df(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?Xj(e,t):r?Qj(e,t):Yj(e,t)}function nx(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 ox=Symbol("tuiuiu.overlay-runtime-state");function Zj(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function sx(e){let t=e.id===0?null:It(ox,()=>sx(Ir())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Fr](){Zj(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function eB(){let e=We();return Oe(ox,()=>sx(e),e)}function cf(e,t){let r=eB();r.terminalSize={width:e,height:t}}function ix(e){return"__reactive"in e}function tB(e){let t=e.__reactive(),r=Ft(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function ax(e){let t=0,r=n=>{ix(n)&&tB(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function lx(e){let t=new Set,r=n=>{ix(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function rB(e){return!!e.props.__static}function nB(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Ft(e.children??[])}`}function oB(e){let t=[];function r(o){if(rB(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 uf={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},sB={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function pf(e,t={}){let r=t.screenMode?sB[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=nf(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=pp(D);if(!M)throw D.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,H=()=>{},G=[];try{H=Ew(),G.push(en(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),G.push(en(()=>{n.write("\x1B[?1004l")})),G.push(en(()=>{n.write("\x1B[?2004l")})),$&&(n.write(K_()),G.push(en(()=>{n.write(Xp())})))}catch(re){for(let me of G.splice(0))try{me()}catch{}try{H()}catch{}throw D.dispose(),ts(N),re}let I=typeof e=="function"?e:()=>e,W=!1,q=0,oe=0,ae=0,se,Z,pe=()=>{W=!1,xe()},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}),ke=re=>{let me=q>0?performance.now():0,$e=n.write(re);return q>0&&(ae+=performance.now()-me,oe+=typeof re=="string"?Buffer.byteLength(re):re.byteLength),!$e&&!W&&!we&&(W=!0,n.once("drain",pe)),$e},Y={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(re){return ke(re)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},de=df(Y,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),Re=0,De=null,ve="",we=!1,Se=[],fe,ie,_e,Fe=new Set,at=0,Gt=()=>{Re=at,de=df(Y,{showCursor:g,incremental:!1,fullScreen:T,topOffset:Re}),ve=""},tn=()=>{de.clear(),ke(uf.clearTerminal),ve="",Fe.clear(),at=0,Se=[],Gt()},rn=re=>{de.clear(),ke(`${re}
|
|
222
222
|
`),at+=re.split(`
|
|
223
|
-
`).length,
|
|
224
|
-
`).replace(/\n+$/u,"");Se.push(
|
|
225
|
-
`))}
|
|
226
|
-
`):de(
|
|
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??
|
|
223
|
+
`).length,Gt()};qe(N,()=>of(tn)),fe=new Promise((re,me)=>{ie=re,_e=me});let go=D.dispose;D.dispose=()=>{if(we){go();return}_r(),ie()};let ce=p>0?Math.ceil(1e3/p):0;qe(N,()=>{gR({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:ce>0?ce:16.67}),cf(n.columns||80,n.rows||24)});let Wt=0,ct=!1,Ze=null,_t=null,lt=null,ut=0,xt=0,Et=0,Gr=0,Ce=null,Le=[],J=!1,C=null;y&&(C=E_({stdout:Y,showCursor:g,useDelta:!0})),R&&!s&&ke(uf.clearTerminal);let w=ce>0?ce:16,L=nx(()=>{Le.length!==0&&Nt(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let me of re)me()}})},w);qe(N,()=>Ul({enqueue(re){we||(Le.push(re),L.schedule())},flush(){we||L.flush()},isPending(){return Le.length>0||L.isPending()}}));let B=()=>{let re=performance.now();Z=Date.now(),pw("component");try{De=I(),ax(De)}finally{fw(),se=performance.now()-re}},K=()=>qe(N,()=>{B(),on()});function X(re){we||(_t=re,!W&&xe())}function xe(){if(ct||we||W||!_t)return;let me=Date.now()-Wt,$e=Wt===0||me>=ce?0:ce-me,Ht=()=>{let jt=_t;if(_t=null,ct=!1,Ze=null,!we)try{jt?.()}catch(et){D.exit(et instanceof Error?et:new Error(String(et)))}};if(ct=!0,$e===0){queueMicrotask(Ht);return}Ze=setTimeout(Ht,$e)}let je=re=>qe(N,()=>{if(we)return;let me=Xo(String(re)).replace(/\r\n?/g,`
|
|
224
|
+
`).replace(/\n+$/u,"");Se.push(me),X(on)});qe(N,()=>Hl(je));function Be(){if(!h||we||(h.pauseWhenUnfocused??!0)&&!hr())return;let me=1e3/Math.max(1,h.updateFps),$e=Math.max(0,Math.ceil(me-ut));lt=setTimeout(Lt,$e)}function Lt(){if(!(!h||we))try{if((h.pauseWhenUnfocused??!0)&&!hr()){lt=null,ut=0,xt=Date.now();return}let me=1e3/h.updateFps,$e=h.maxCatchUpUpdates??5,Ht=Date.now();ut+=Ht-xt,xt=Ht;let jt=0;for(;ut>=me&&jt<$e;)ut-=me,Et++,Gr+=me,Nt(()=>{h.onUpdate({deltaTimeMs:me,step:Et,elapsedMs:Gr})}),jt++;ut>=me&&(ut%=me),Be()}catch(re){lt=null,D.exit(re instanceof Error?re:new Error(String(re)))}}let nn=Xr(N,()=>{we||(NR(),cf(n.columns||80,n.rows||24),zw(),X(K))});n.on("resize",nn);let Rr=()=>{};D.onExit(re=>qe(N,()=>{_r(),Rr(),re?_e(re):ie()}));function on(){if(we||!De)return;Wt=Date.now();let re=Z??Date.now(),me=n.columns||80,$e=n.rows||24,Ht=oB(De),jt=()=>{C&&(C.cleanup(),C=null,ke(uf.clearTerminal),Fe.clear(),at=0,Gt())};if(Se.length>0){jt();let Me=Se;Se=[],rn(Me.join(`
|
|
225
|
+
`))}Ht.staticNodes.length>0&&jt();let et=Math.max(1,$e-at);if(C&&!s){let Me=uo(De,{width:me,height:et});Me.metrics.runtimeStartAt=re,se!==void 0&&it(Me,"vnodeEvalMs",se);let tt=performance.now();Vp(Me),vp(Me.layout,at);let Hr=ls();Hr.hasClickableElements()&&!J?(os(),J=!0):!Hr.hasClickableElements()&&J&&(Zn(),J=!1),it(Me,"frameCommitMs",performance.now()-tt),Ct(Me,"reservedRegionCount",Me.reservedRegions.length),C.renderFrame(Me),se=void 0,Z=void 0;return}let{staticNodes:ho,interactiveNode:sn}=Ht,Tn=performance.now();Ae();for(let Me=0;Me<ho.length;Me++){let tt=ho[Me],Hr=nB(tt,Me);if(!Fe.has(Hr)){let On=L_(tt,me);On.trim()&&(rn(On),Fe.add(Hr))}}let Pn=PR(),Ne=uo(sn,{width:me,height:et});Ne.metrics.runtimeStartAt=re,se!==void 0&&it(Ne,"vnodeEvalMs",se);let An=performance.now()-Tn;it(Ne,"staticRenderMs",An);let Cn=performance.now();Vp(Ne),vp(Ne.layout,at);let Dn=ls();Dn.hasClickableElements()&&!J?(os(),J=!0):!Dn.hasClickableElements()&&J&&(Zn(),J=!1),it(Ne,"frameCommitMs",performance.now()-Cn),Ct(Ne,"reservedRegionCount",Ne.reservedRegions.length);let xr=Yp(Ne,{fullHeight:T,previousFrame:Pn});if(xr===ve&&!s){let Me=Ee();it(Ne,"outputWriteMs",Me.writeMs),Ct(Ne,"outputByteCount",Me.bytes),Sn(Ne,{renderer:"ansi",runtimeStartAt:re}),rs(Ne.layout),ui(),se=void 0,Z=void 0;return}s?ke(xr+`
|
|
226
|
+
`):de(xr);let Wr=Ee();it(Ne,"outputWriteMs",Wr.writeMs),Ct(Ne,"outputByteCount",Wr.bytes),Sn(Ne,{renderer:"ansi",runtimeStartAt:re}),rs(Ne.layout),ui(),ve=xr,se=void 0,Z=void 0}function _r(){return qe(N,vt)}function vt(){if(we)return;we=!0;let re=me=>{try{me()}catch($e){console.error("[tuiuiu] Error while cleaning up the render loop:",$e)}};Ze&&(clearTimeout(Ze),Ze=null),lt&&(clearTimeout(lt),lt=null),Ce?.(),Ce=null,W=!1,re(()=>n.off("drain",pe)),_t=null,ct=!1,L.cancel(),Le=[],Ul(null),Hl(null),J&&(re(()=>Zn()),J=!1),re(()=>n.off("resize",nn)),re(C?()=>C?.cleanup():()=>de.done()),$&&re(()=>{n.write(Xp())}),W=!1,re(()=>n.off("drain",pe)),re(()=>gl(N)),De&&re(()=>lx(De)),re(()=>D.dispose());for(let me of G.splice(0))re(me);re(H),re(()=>AR()),re(()=>ts(N))}try{Rr=qe(N,()=>aR(()=>{K()},{scheduler:X})),qe(N,()=>{h&&(xt=Date.now(),(h.pauseWhenUnfocused??!0)&&(Ce=Al(re=>{if(!(we||!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{Rr()}catch(me){console.error("[tuiuiu] Error while rolling back the render effect:",me)}throw _r(),re}return{rerender:re=>qe(N,()=>{I=()=>re,X(K)}),unmount:()=>qe(N,()=>{_r(),Rr(),s||ke(`
|
|
227
|
+
`),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(Ze&&(clearTimeout(Ze),Ze=null),_t=null,ct=!1,tn(),W?X(()=>{on()}):on())}),writeLine:je}}var iB={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 ff(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function aB(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=ye(d.header);for(let p of t){let g=p[d.key];d.format&&(g=d.format(g,p));let f=String(g??"");c=Math.max(c,ye(f))}let u=ff(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:ff(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+(ff(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 dx(e,t,r){let n=Qr(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=ye(n);if(o>=t)return n;let s=t-o;switch(r){case"right":return" ".repeat(s)+n;case"center":let i=Math.floor(s/2),a=s-i;return" ".repeat(i)+n+" ".repeat(a);default:return n+" ".repeat(s)}}function lB(e,t){return Qr(e,t,{truncationCharacter:"\u2026"})}function dB(){try{return process.stdout.columns||80}catch{return 80}}function gf(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=iB[n],R=n!=="none",T=p??dB(),$=aB(t,r,u,y,T),D=[],M=(N,H,G,I)=>{if(!R)return yr({});let W=[N];for(let q=0;q<$.length;q++)W.push(I.repeat($[q]+y*2)),q<$.length-1&&W.push(H);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 H=0;H<t.length;H++){let G=t[H],I=" ".repeat(y),W=G.headerAlign??G.align??"left",q=dx(G.header,$[H],W);N.push(mt({color:o},I),mt({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":H+1},q),mt({color:o},I)),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 H=r[N],G=a&&N%2===1,I=t.map((oe,ae)=>{let se=H[oe.key];oe.format&&(se=oe.format(se,H));let Z=String(se??"");if(oe.wrap)return Yn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Qr(pe,$[ae],{truncationCharacter:""}):lB(pe,$[ae])]}),W=Math.max(1,...I.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=dx(I[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 Kl(e,t){return mt({wrap:"truncate-end"},t?Un(e):e)}function cB(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>Kl(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=>Kl(c,r)),gf({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=>Kl(c,r))]}function uB(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=>Kl(a,s)):cB(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 cx(e){let t=!1;function r(){let o=Wl(),s=sf(),[i,a]=$l({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=$l(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 Di(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),af(c,e.refreshMs??1e3),ef((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))}),uB({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await pf(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as RB}from"node:child_process";import{readFileSync as _B}from"node:fs";import{dirname as mx,join as xB}from"node:path";import{createHash as pB}from"node:crypto";var fB="project.name";function px(e){let t=Jo(e,fB)?.trim();return t===void 0||t===""?void 0:t}var gB=8,fx="project";function gx(e){let t=kB(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:hB(e.remoteUrl)??{name:mB(e.checkoutPath,t),source:"basename"},o=yB(t??hf(e.checkoutPath));return{name:n.name,slug:`${bB(n.name)}-${o}`,hash:o,source:n.source}}function hx(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 hB(e){let t=hx(e);return t===void 0?void 0:{name:t,source:"remote"}}function mB(e,t){let r=t===void 0?"":ux(wB(t));if(r!=="")return r;let n=ux(hf(e));return n===""?fx:n}function bB(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?fx:r}function yB(e){return pB("sha256").update(e).digest("hex").slice(0,gB)}function kB(e){let t=hf(e??"");return t===""?void 0:t}function hf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function ux(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function wB(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var EB=2e3;function bx(e){return vB(e).name}function vB(e){let t=bf(e),r=mf(e,["rev-parse","--absolute-git-dir"])??mf(e,["rev-parse","--git-common-dir"]),n=mf(e,["remote","get-url","origin"]);return gx({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function bf(e){let t=gk(e,xB(".red","config.yaml"));if(t==null)return{};let r;try{r=_B(t,"utf8")}catch{return{}}let n=px(r),o=mx(mx(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function mf(e,t){try{let r=RB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:EB}).trim();return r===""?void 0:r}catch{return}}function Vl(e){let t=bf(e);return t.configText==null?{label:null}:{configText:t.configText,label:bx(e)}}async function yf(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=sl(e),s=Vl(t.cwd??process.cwd()),i=il({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
|
|
228
|
+
`);let a=t.paths??cr(),l=t.readDashboard??ck,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??cx)({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 TB=`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
|
+
`,PB={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 AB(e){return e==="--help"||e==="-h"||e==="help"}var CB={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)}},kx="REDSKILLED_HOST_TOKEN";function Mi(){try{let t=SB("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function wx(e=process.env,t=Mi){let r=(e[kx]??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 DB(e,t=process.env,r=Mi,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...yx(e,t,r,n),armTransport:()=>yx(e,t,r,n)}}function OB(e,t=process.env,r=Mi){let n=wx(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:eu({token:n.token,...o?{origin:o}:{}})}}function yx(e,t=process.env,r=Mi,n){let o=wx(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${kx}, 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:oy({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function FB(e){if(e[0]==="--version"||e[0]==="-v"){let o=xd("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
|
|
333
|
+
`:`${vg(o)}
|
|
334
|
+
`),0}if(AB(e[0]))return process.stdout.write(TB),0;let{command:t,args:r}=Ag(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(PB[t]),0;if(t==="serve"){let{values:o}=ln(r,CB),s=await pk(Ii()),i=fk({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=zl(sr(Ii()),"state"),l=Ea({path:zl(a,"github","spend.toonl")}),d=DB(o,process.env,Mi,l),c=OB(o),u=Jg({stateRoot:a});process.stderr.write(`${Yg(u)}
|
|
335
|
+
`);let p=Ug({lanePath:Po(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g;try{g=await Q0({paths:KB(o),idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??xd("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 BB(r);if(t==="statusline")return await NB(r);if(t==="dashboard")return await yf(r);if(t==="github-spend")return await MB(r);if(t==="unit")return await $B(r);if(t==="provision")return await WB(r);if(t==="reclaim")return await UB(r);let n=await ak(cr());return process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
336
|
+
`),0}var IB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function MB(e,t={}){let{values:r}=ln(e,IB,{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:LB(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??Ea({path:zl(sr(t.homeDir??Ii()),"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 LB(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 jB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function BB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=ln(e,jB),o=await ik(t.paths??cr(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${ot({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,survives:s.survives})),detail:o.detail})}
|
|
338
|
+
`),o.running&&!o.stopped?1:0}async function $B(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??cr(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(E0(t.unitIO??{}),null,2)}
|
|
339
|
+
`),0;if(o==="install"){let s=await _0(b0(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
|
|
340
|
+
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await x0(t.unitIO??{}),null,2)}
|
|
341
|
+
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function NB(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=sl(e),s=Vl(t.cwd??process.cwd()),i=il({...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 dk(t.paths??cr(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
|
|
343
|
+
`),a=Tu({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 GB={"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 WB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=ln(e,GB),o=t.paths??cr(),s=t.homeDir??Ii(),i=await tp({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await Tk(s),l;if(!n.check&&!n["no-start"])try{await Yu(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await Ck({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 Fk({configHome:t.configHome??qB(),unit:Ok({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=Ak(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 HB={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function UB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=ln(e,HB),o=await Lk({...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 qB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:zl(Ii(),".config")}function KB(e){let t=cr();return{...t,socketPath:e.socket??t.socketPath,leasePath:e.lease??t.leasePath,eventLanePath:e.events??t.eventLanePath,sessionKeyHash:e["session-key-hash"]??t.sessionKeyHash,machineIdHash:e["machine-id-hash"]??t.machineIdHash,machineClaimPath:e["machine-claim"]??t.machineClaimPath}}var VB=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(VB){let e=process.argv.slice(2);FB(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{kx as REDSKILLED_HOST_TOKEN_ENV,TB as REDSKILLED_USAGE,yx as armRedskilledQueueTransport,wx as resolveRedskilledHostToken,OB as resolveServeGithubBalance,DB as resolveServeQueueDiscovery,yf as runDashboard,MB as runGithubSpend,WB as runProvision,UB as runReclaim,FB as runRedskilledCli,NB as runStatusline,BB as runStop,$B as runUnit};
|
|
349
349
|
/*! Bundled license information:
|
|
350
350
|
|
|
351
351
|
content-type/dist/index.js:
|