@reddb-io/red-skills 3.17.2 → 3.17.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.bundle.min.mjs +1 -1
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +577 -575
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled-mcp.bundle.min.mjs +360 -359
- package/dist/redskilled.bundle.min.mjs +134 -126
- package/dist/rsp-core.bundle.min.mjs +188 -186
- package/dist/rsp.bundle.min.mjs +6 -6
- package/package.json +1 -1
|
@@ -1,61 +1,61 @@
|
|
|
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 gT=Object.create;var Zd=Object.defineProperty;var mT=Object.getOwnPropertyDescriptor;var hT=Object.getOwnPropertyNames;var yT=Object.getPrototypeOf,bT=Object.prototype.hasOwnProperty;var kT=(e,t)=>()=>(e&&(t=e(e=0)),t);var Sm=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),RT=(e,t)=>{for(var r in t)Zd(e,r,{get:t[r],enumerable:!0})},wT=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of hT(t))!bT.call(e,o)&&o!==r&&Zd(e,o,{get:()=>t[o],enumerable:!(n=mT(t,o))||n.enumerable});return e};var ec=(e,t,r)=>(r=e!=null?gT(yT(e)):{},wT(t||!e||!e.__esModule?Zd(r,"default",{value:e,enumerable:!0}):r,e));var My={};RT(My,{REDSKILLED_BIN_ENV:()=>Xc,REDSKILLED_BUNDLE_ASSET:()=>Fr,REDSKILLED_ENTRY_UNRESOLVED:()=>Xs,RedskilledDaemonEntryError:()=>Zs,isRedskilledEntryPath:()=>eu,isResolvedRedskilledEntry:()=>Ir,redskilledBundleCacheRoot:()=>Ha,redskilledServeArgv:()=>tn,requireRedskilledEntry:()=>Ua,resolveRedskilledEntry:()=>Rn});import{existsSync as GO,readdirSync as WO}from"node:fs";import{homedir as HO}from"node:os";import{basename as Qc,dirname as Yc,join as er,resolve as Wa}from"node:path";function Ir(e){return"command"in e}function tn(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 Ha(e=process.env){return Iy(e)}function Rn(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??GO,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[Xc];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&eu(i))return a(Wa(i),"caller-entry");let d=[];for(let[c,u]of VO(i,t.rootDir,r,t.listDir??YO))if(d.push(c),n(c))return a(c,u);return{diagnostic:Xs,searched:d,...i?{callerEntry:Wa(i)}:{}}}function Ua(e={},t={}){let r=Rn(e,t);if(Ir(r))return r;throw new Zs(r)}function eu(e){let t=Qc(e);return t===Fr||Zc.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:KO(Wa(e))}function KO(e){let t=Yc(e);for(let r=0;r<4;r++){if(Qc(t)==="redskilled")return!0;let n=Yc(t);if(n===t)return!1;t=n}return!1}function*VO(e,t,r,n){if(e){let s=Yc(Wa(e));yield[er(s,Fr),"caller-sibling-bundle"];let i=UO.exec(Qc(e));i&&!/^mcp([.-]|$)/.test(i[2])&&(yield[er(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[er(s,"..","dist",Fr),"caller-sibling-bundle"]}for(let s of qO){let i=r[s];i&&(yield[er(i,"dist",Fr),"plugin-root-bundle"],yield[er(i,"..","..","dist",Fr),"plugin-root-bundle"])}t&&(yield[er(t,"dist",Fr),"repo-bundle"],yield[er(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[er(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=Iy(r);yield[er(o,Fr),"bundle-cache"];for(let s of zO(o,n))yield[er(o,s),"bundle-cache"]}function Iy(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||er(e.HOME||HO(),".cache");return er(t,"red-skills","bundles")}function zO(e,t){return t(e).filter(r=>Zc.test(r)).sort((r,n)=>JO(Fy(n),Fy(r)))}function Fy(e){return Zc.exec(e)?.[1]??""}function JO(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 YO(e){try{return WO(e)}catch{return[]}}var Fr,Xs,Xc,Zs,UO,Zc,qO,rn=kT(()=>{"use strict";Fr="redskilled.bundle.min.mjs",Xs="redskilled-daemon-entry-unresolved",Xc="REDSKILLED_BIN";Zs=class extends Error{code=Xs;searched;callerEntry;constructor(t){super(`${Xs}: no published ${Fr} 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)}};DO=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Qc=/^redskilled-(?!mcp[.-])(.+)\.bundle\.min\.mjs$/,FO=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var Iu=_m((Du,Fu)=>{(function(e,t){typeof Du=="object"&&typeof Fu<"u"?Fu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Du,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(V){return V&&V.default||V}var r=function(V,I,R={}){var j,N,H;for(j in I)H=I[j],R[j]=(N=V[j])!=null?N:H;return R},n=function(V,I,R={}){var j,N;for(j in V)N=V[j],I[j]!==void 0&&(R[j]=N);return R},o={load:r,overwrite:n},s;s=class{constructor(I,R){this.incr=I,this.decr=R,this._first=null,this._last=null,this.length=0}push(I){var R;this.length++,typeof this.incr=="function"&&this.incr(),R={value:I,prev:this._last,next:null},this._last!=null?(this._last.next=R,this._last=R):this._first=this._last=R}shift(){var I;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),I=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,I}first(){if(this._first!=null)return this._first.value}getArray(){var I,R,j;for(I=this._first,j=[];I!=null;)j.push((R=I,I=I.next,R.value));return j}forEachShift(I){var R;for(R=this.shift();R!=null;)I(R),R=this.shift()}debug(){var I,R,j,N,H;for(I=this._first,H=[];I!=null;)H.push((R=I,I=I.next,{value:R.value,prev:(j=R.prev)!=null?j.value:void 0,next:(N=R.next)!=null?N.value:void 0}));return H}};var i=s,a;a=class{constructor(I){if(this.instance=I,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(R,j)=>this._addListener(R,"many",j),this.instance.once=(R,j)=>this._addListener(R,"once",j),this.instance.removeAllListeners=(R=null)=>R!=null?delete this._events[R]:this._events={}}_addListener(I,R,j){var N;return(N=this._events)[I]==null&&(N[I]=[]),this._events[I].push({cb:j,status:R}),this.instance}listenerCount(I){return this._events[I]!=null?this._events[I].length:0}async trigger(I,...R){var j,N;try{return I!=="debug"&&this.trigger("debug",`Event triggered: ${I}`,R),this._events[I]==null?void 0:(this._events[I]=this._events[I].filter(function(H){return H.status!=="none"}),N=this._events[I].map(async H=>{var K,X;if(H.status!=="none"){H.status==="once"&&(H.status="none");try{return X=typeof H.cb=="function"?H.cb(...R):void 0,typeof X?.then=="function"?await X:X}catch(we){return K=we,this.trigger("error",K),null}}}),(await Promise.all(N)).find(function(H){return H!=null}))}catch(H){return j=H,this.trigger("error",j),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(I){var R;this.Events=new c(this),this._length=0,this._lists=function(){var j,N,H;for(H=[],R=j=1,N=I;1<=N?j<=N:j>=N;R=1<=N?++j:--j)H.push(new d(()=>this.incr(),()=>this.decr()));return H}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(I){return this._lists[I.options.priority].push(I)}queued(I){return I!=null?this._lists[I].length:this._length}shiftAll(I){return this._lists.forEach(function(R){return R.forEachShift(I)})}getFirst(I=this._lists){var R,j,N;for(R=0,j=I.length;R<j;R++)if(N=I[R],N.length>0)return N;return[]}shiftLastFrom(I){return this.getFirst(this._lists.slice(I).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,b,y,_,w,O;w=10,y=5,O=o,b=f,_=class{constructor(I,R,j,N,H,K,X,we){this.task=I,this.args=R,this.rejectOnDrop=H,this.Events=K,this._states=X,this.Promise=we,this.options=O.load(j,N),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===N.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Me)=>{this._resolve=je,this._reject=Me}),this.retryCount=0}_sanitizePriority(I){var R;return R=~~I!==I?y:I,R<0?0:R>w-1?w-1:R}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:I,message:R="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(I??new b(R)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(I){var R;if(R=this._states.jobStatus(this.options.id),!(R===I||I==="DONE"&&R===null))throw new b(`Invalid job status ${R}, expected ${I}. 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(I,R){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:I,blocked:R})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(I,R,j,N){var H,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(I!=null?I.schedule(this.options,this.task,...this.args):this.task(...this.args)),R())return this.doDone(K),await N(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(we){return H=we,this._onFailure(H,K,R,j,N)}}doExpire(I,R,j){var N,H;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),H={args:this.args,options:this.options,retryCount:this.retryCount},N=new b(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(N,H,I,R,j)}async _onFailure(I,R,j,N,H){var K,X;if(j())return K=await this.Events.trigger("failed",I,R),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,R),this.retryCount++,N(X)):(this.doDone(R),await H(this.options,R),this._assertStatus("DONE"),this._reject(I))}doDone(I){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",I)}};var v=_,A,$,L;L=o,A=f,$=class{constructor(I,R,j){this.instance=I,this.storeOptions=R,this.clientId=this.instance._randomIndex(),L.load(j,j,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 I;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(I=this.heartbeat=setInterval(()=>{var R,j,N,H,K;if(H=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&H>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=H,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&H>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:R,reservoirIncreaseMaximum:N,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=H,j=N!=null?Math.min(R,N-K):R,j>0))return this.storeOptions.reservoir+=j,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?I.unref():void 0:clearInterval(this.heartbeat)}async __publish__(I){return await this.yieldLoop(),this.instance.Events.trigger("message",I.toString())}async __disconnect__(I){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(I=0){return new this.Promise(function(R,j){return setTimeout(R,I)})}computePenalty(){var I;return(I=this.storeOptions.penalty)!=null?I:15*this.storeOptions.minTime||5e3}async __updateSettings__(I){return await this.yieldLoop(),L.overwrite(I,I,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__(I){return await this.yieldLoop(),this._nextRequest+this.timeout<I}computeCapacity(){var I,R;return{maxConcurrent:I,reservoir:R}=this.storeOptions,I!=null&&R!=null?Math.min(I-this._running,R):I!=null?I-this._running:R??null}conditionsCheck(I){var R;return R=this.computeCapacity(),R==null||I<=R}async __incrementReservoir__(I){var R;return await this.yieldLoop(),R=this.storeOptions.reservoir+=I,this.instance._drainAll(this.computeCapacity()),R}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(I){return this._unblockTime>=I}check(I,R){return this.conditionsCheck(I)&&this._nextRequest-R<=0}async __check__(I){var R;return await this.yieldLoop(),R=Date.now(),this.check(I,R)}async __register__(I,R,j){var N,H;return await this.yieldLoop(),N=Date.now(),this.conditionsCheck(R)?(this._running+=R,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=R),H=Math.max(this._nextRequest-N,0),this._nextRequest=N+H+this.storeOptions.minTime,{success:!0,wait:H,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(I,R){var j,N,H;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&R>this.storeOptions.maxConcurrent)throw new A(`Impossible to add a job having a weight of ${R} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return N=Date.now(),H=this.storeOptions.highWater!=null&&I===this.storeOptions.highWater&&!this.check(R,N),j=this.strategyIsBlock()&&(H||this.isBlocked(N)),j&&(this._unblockTime=N+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:H,blocked:j,strategy:this.storeOptions.strategy}}async __free__(I,R){return await this.yieldLoop(),this._running-=R,this._done+=R,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var B=$,F,W;F=f,W=class{constructor(I){this.status=I,this._jobs={},this.counts=this.status.map(function(){return 0})}next(I){var R,j;if(R=this._jobs[I],j=R+1,R!=null&&j<this.status.length)return this.counts[R]--,this.counts[j]++,this._jobs[I]++;if(R!=null)return this.counts[R]--,delete this._jobs[I]}start(I){var R;return R=0,this._jobs[I]=R,this.counts[R]++}remove(I){var R;return R=this._jobs[I],R!=null&&(this.counts[R]--,delete this._jobs[I]),R!=null}jobStatus(I){var R;return(R=this.status[this._jobs[I]])!=null?R:null}statusJobs(I){var R,j,N,H,K;if(I!=null){if(j=this.status.indexOf(I),j<0)throw new F(`status must be one of ${this.status.join(", ")}`);N=this._jobs,H=[];for(R in N)K=N[R],K===j&&H.push(R);return H}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((I,R,j)=>(I[this.status[j]]=R,I),{})}};var U=W,oe,se;oe=i,se=class{constructor(I,R){this.schedule=this.schedule.bind(this),this.name=I,this.Promise=R,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var I,R,j,N,H,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:I,resolve:H,reject:N}=this._queue.shift(),R=await async function(){try{return K=await X(...I),function(){return H(K)}}catch(we){return j=we,function(){return N(j)}}}(),this._running--,this._tryToRun(),R()}schedule(I,...R){var j,N,H;return H=N=null,j=new this.Promise(function(K,X){return H=K,N=X}),this._queue.push({task:I,args:R,resolve:H,reject:N}),this._tryToRun(),j}};var te=se,Q="2.19.5",le={version:Q},Se=Object.freeze({version:Q,default:le}),ve=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ke=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ce,Re,Pe,Te,_e,Ae;Ae=o,ce=l,Te=ve,Pe=ke,_e=J,Re=function(){class V{constructor(R={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=R,Ae.load(this.limiterOptions,this.defaults,this),this.Events=new ce(this),this.instances={},this.Bottleneck=Jr,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Te(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Pe(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(R=""){var j;return(j=this.instances[R])!=null?j:(()=>{var N;return N=this.instances[R]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${R}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",N,R),N})()}async deleteKey(R=""){var j,N;return N=this.instances[R],this.connection&&(j=await this.connection.__runCommand__(["del",..._e.allKeys(`${this.id}-${R}`)])),N!=null&&(delete this.instances[R],await N.disconnect()),N!=null||j>0}limiters(){var R,j,N,H;j=this.instances,N=[];for(R in j)H=j[R],N.push({key:R,limiter:H});return N}keys(){return Object.keys(this.instances)}async clusterKeys(){var R,j,N,H,K,X,we,je,Me;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],R=null,Me=`b_${this.id}-`.length,j=9;R!==0;)for([je,N]=await this.connection.__runCommand__(["scan",R??0,"match",`b_${this.id}-*_settings`,"count",1e4]),R=~~je,H=0,we=N.length;H<we;H++)K=N[H],X.push(K.slice(Me,-j));return X}_startAutoCleanup(){var R;return clearInterval(this.interval),typeof(R=this.interval=setInterval(async()=>{var j,N,H,K,X,we;X=Date.now(),H=this.instances,K=[];for(N in H){we=H[N];try{await we._store.__groupCheck__(X)?K.push(this.deleteKey(N)):K.push(void 0)}catch(je){j=je,K.push(we.Events.trigger("error",j))}}return K},this.timeout/2)).unref=="function"?R.unref():void 0}updateSettings(R={}){if(Ae.overwrite(R,this.defaults,this),Ae.overwrite(R,R,this.limiterOptions),R.timeout!=null)return this._startAutoCleanup()}disconnect(R=!0){var j;if(!this.sharedConnection)return(j=this.connection)!=null?j.disconnect(R):void 0}}return V.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},V}.call(e);var ye=Re,ae,be,Ye;Ye=o,be=l,ae=function(){class V{constructor(R={}){this.options=R,Ye.load(this.options,this.defaults,this),this.Events=new be(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((R,j)=>this._resolve=R)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(R){var j;return this._arr.push(R),j=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),j}}return V.prototype.defaults={maxTime:null,maxSize:null,Promise},V}.call(e);var Ue=ae,ft=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Tr=t(Se),Vr,cn,Gt,zr,ue,gt,rt,Qe,at,vt,lt,Pr=[].splice;gt=10,cn=5,lt=o,rt=p,zr=v,ue=B,Qe=ft,Gt=l,at=U,vt=te,Vr=function(){class V{constructor(R={},...j){var N,H;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(R,j),lt.load(R,this.instanceDefaults,this),this._queues=new rt(gt),this._scheduled={},this._states=new at(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Gt(this),this._submitLock=new vt("submit",this.Promise),this._registerLock=new vt("register",this.Promise),H=lt.load(R,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return N=lt.load(R,this.redisStoreDefaults,{}),new Qe(this,H,N);if(this.datastore==="local")return N=lt.load(R,this.localStoreDefaults,{}),new ue(this,H,N);throw new V.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(R,j){if(!(R!=null&&typeof R=="object"&&j.length===0))throw new V.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(R){return this._store.__publish__(R)}disconnect(R=!0){return this._store.__disconnect__(R)}chain(R){return this._limiter=R,this}queued(R){return this._queues.queued(R)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(R){return this._states.jobStatus(R)}jobs(R){return this._states.statusJobs(R)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(R=1){return this._store.__check__(R)}_clearGlobalState(R){return this._scheduled[R]!=null?(clearTimeout(this._scheduled[R].expiration),delete this._scheduled[R],!0):!1}async _free(R,j,N,H){var K,X;try{if({running:X}=await this._store.__free__(R,N.weight),this.Events.trigger("debug",`Freed ${N.id}`,H),X===0&&this.empty())return this.Events.trigger("idle")}catch(we){return K=we,this.Events.trigger("error",K)}}_run(R,j,N){var H,K,X;return j.doRun(),H=this._clearGlobalState.bind(this,R),X=this._run.bind(this,R,j),K=this._free.bind(this,R,j),this._scheduled[R]={timeout:setTimeout(()=>j.doExecute(this._limiter,H,X,K),N),expiration:j.options.expiration!=null?setTimeout(function(){return j.doExpire(H,X,K)},N+j.options.expiration):void 0,job:j}}_drainOne(R){return this._registerLock.schedule(()=>{var j,N,H,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:j}=H=X.first(),R!=null&&K.weight>R?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:j,options:K}),N=this._randomIndex(),this._store.__register__(N,K.weight,K.expiration).then(({success:we,wait:je,reservoir:Me})=>{var ar;return this.Events.trigger("debug",`Drained ${K.id}`,{success:we,args:j,options:K}),we?(X.shift(),ar=this.empty(),ar&&this.Events.trigger("empty"),Me===0&&this.Events.trigger("depleted",ar),this._run(N,H,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(R,j=0){return this._drainOne(R).then(N=>{var H;return N!=null?(H=R!=null?R-N:R,this._drainAll(H,j+N)):this.Promise.resolve(j)}).catch(N=>this.Events.trigger("error",N))}_dropAllQueued(R){return this._queues.shiftAll(function(j){return j.doDrop({message:R})})}stop(R={}){var j,N;return R=lt.load(R,this.stopDefaults),N=H=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===H},new this.Promise((X,we)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},j=R.dropWaitingJobs?(this._run=function(H,K){return K.doDrop({message:R.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var H,K,X;K=this._scheduled;for(H in K)X=K[H],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:R.dropErrorMessage}));return this._dropAllQueued(R.dropErrorMessage),N(0)}))):this.schedule({priority:gt-1,weight:0},()=>N(1)),this._receive=function(H){return H._reject(new V.prototype.BottleneckError(R.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new V.prototype.BottleneckError("stop() has already been called")),j}async _addToQueue(R){var j,N,H,K,X,we,je;({args:j,options:K}=R);try{({reachedHWM:X,blocked:N,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch(Me){return H=Me,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:j,options:K,error:H}),R.doDrop({error:H}),!1}return N?(R.doDrop(),!0):X&&(we=je===V.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===V.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===V.prototype.strategy.OVERFLOW?R:void 0,we?.doDrop(),we==null||je===V.prototype.strategy.OVERFLOW)?(we==null&&R.doDrop(),X):(R.doQueue(X,N),this._queues.push(R),await this._drainAll(),X)}_receive(R){return this._states.jobStatus(R.options.id)!=null?(R._reject(new V.prototype.BottleneckError(`A job with the same id already exists (id=${R.options.id})`)),!1):(R.doReceive(),this._submitLock.schedule(this._addToQueue,R))}submit(...R){var j,N,H,K,X,we,je;return typeof R[0]=="function"?(X=R,[N,...R]=X,[j]=Pr.call(R,-1),K=lt.load({},this.jobDefaults)):(we=R,[K,N,...R]=we,[j]=Pr.call(R,-1),K=lt.load(K,this.jobDefaults)),je=(...Me)=>new this.Promise(function(ar,Ar){return N(...Me,function(...lr){return(lr[0]!=null?Ar:ar)(lr)})}),H=new zr(je,R,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),H.promise.then(function(Me){return typeof j=="function"?j(...Me):void 0}).catch(function(Me){return Array.isArray(Me)?typeof j=="function"?j(...Me):void 0:typeof j=="function"?j(Me):void 0}),this._receive(H)}schedule(...R){var j,N,H;return typeof R[0]=="function"?([H,...R]=R,N={}):[N,H,...R]=R,j=new zr(H,R,N,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(j),j.promise}wrap(R){var j,N;return j=this.schedule.bind(this),N=function(...H){return j(R.bind(this),...H)},N.withOptions=function(H,...K){return j(H,R,...K)},N}async updateSettings(R={}){return await this._store.__updateSettings__(lt.overwrite(R,this.storeDefaults)),lt.overwrite(R,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(R=0){return this._store.__incrementReservoir__(R)}}return V.default=V,V.Events=Gt,V.version=V.prototype.version=Tr.version,V.strategy=V.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},V.BottleneckError=V.prototype.BottleneckError=f,V.Group=V.prototype.Group=ye,V.RedisConnection=V.prototype.RedisConnection=ve,V.IORedisConnection=V.prototype.IORedisConnection=ke,V.Batcher=V.prototype.Batcher=Ue,V.prototype.jobDefaults={priority:cn,weight:1,expiration:null,id:"<no-id>"},V.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:V.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},V.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},V.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},V.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},V.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},V}.call(e);var Jr=Vr,xe=Jr;return xe})});var $0=_m(dl=>{"use strict";Object.defineProperty(dl,"__esModule",{value:!0});dl.format=aF;dl.parse=lF;var oF=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,F0=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,sF=/[\\"]/g,iF=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,I0=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function aF(e){let{type:t,parameters:r}=e;if(!t||!iF.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!F0.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${pF(r[o])}`}return n}function lF(e,t){let r=e.length,n=Nu(e,0,r),o=n;n=Bu(e,n,r);let s=Gu(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new I0:uF(e,n,r);return{type:i,parameters:a}}var M0=32,L0=9,j0=59,dF=61,D0=34,cF=92;function uF(e,t,r){let n=new I0;e:for(;t<r;){t=Nu(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===j0)continue e;if(s===dF){let i=Gu(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Nu(e,t+1,r),t<r&&e.charCodeAt(t)===D0){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===D0){t=Bu(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===cF&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Bu(e,t,r),n[a]===void 0){let d=Gu(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Bu(e,t,r){for(;t<r&&e.charCodeAt(t)!==j0;)t++;return t}function Nu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==M0&&n!==L0)break;t++}return t}function Gu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==M0&&n!==L0)break;r--}return r}function pF(e){if(F0.test(e))return e;if(oF.test(e))return`"${e.replace(sF,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as L5}from"node:child_process";import{homedir as sa}from"node:os";import{join as js}from"node:path";var Lo=class extends SyntaxError{line;source;reason;constructor(t,r={}){let n=r.line===void 0||r.line===0?"":`Line ${r.line}: `;super(n+t,r.cause===void 0?void 0:{cause:r.cause}),this.name="ToonDecodeError",this.line=r.line,this.source=r.source,this.reason=t}},fn=class extends SyntaxError{line;source;reason;constructor(t,r,n={}){super(t===0?r:`line ${t}: ${r}`,n.cause===void 0?void 0:{cause:n.cause}),this.name="ToonError",this.line=t,this.source=n.source,this.reason=r}},Hn=class extends Error{line;reason;constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function ie(e,t,r={}){return new fn(e,t,r)}function Oe(e,t){return new Hn(e,t)}function jo(e){return e instanceof Hn?e:e instanceof fn?new Hn(e.line,e.reason):new Hn(0,String(e&&e.message?e.message:e))}var cT=/(?:^\uFEFF?|\n) *#/,Zd=class{value;constructor(t){if(cT.test(t))throw new TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(t)}`);this.value=t}};function Un(e){return e instanceof Zd}var Xr=",";function vm(e){let t=e.split(`
|
|
7
|
-
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function
|
|
8
|
-
`;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw Cr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Cr(t);r+=String.fromCharCode(a),n+=4;break}default:throw Cr(t)}}throw Cr(t)}function Tm(e,t,r){for(;;){let n=e.indexOf('"',t),o=e.indexOf("\\",t);if(o!==-1&&(n===-1||o<n)){if(o===e.length-1)throw Cr(r);t=o+2;continue}if(n===-1)throw Cr(r);return n+1}}function qn(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=Tm(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function ur(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=Tm(e,o+1,r)}return-1}function uT(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function pT(e){return/^[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function fT(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw ie(0,"number is not representable in TOON");return String(e)}function qs(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function kt(e,t){if(Un(e))return e.value;if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return fT(e);if(typeof e=="string")return mT(e,t);throw ie(0,"not a primitive")}function gT(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function Rt(e){return gT(e)?e:ba(e)}function mT(e,t){return ec(e,t)?ba(e):e}function ec(e,t){return e===""||/^[ \t]|[ \t]$/.test(e)||e==="true"||e==="false"||e==="null"||pT(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")||e.startsWith("#")}var Em=/["\\\u0000-\u001f]/g;function ba(e){return`"${Pm(e)}"`}function Pm(e){let t="",r=0;Em.lastIndex=0;let n;for(;(n=Em.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 Kn(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Am={comma:",",tab:" ",pipe:"|"},hT=Am.comma;var Ks=1e3,Om=["type","kind","event"],Vn="|",Cm=new Set(["order","discriminator","rows","common"]);function*Fm(e,t,r,n,o,s,i){yield*Im(r,e,n,t,{index:0},o,i,!0,s)}function*Im(e,t,r,n,o,s,i,a,l){let d=jm(e,t,r,n,o.index,s,i),c=0;for(;c<e;){let p=n[o.index];if(p===void 0||p.depth<s)break;if(p.depth>s)throw ie(p.number,"invalid indentation");if(p.blankBefore&&i.strict)throw ie(p.number,"blank line inside array");if(!ka(p.content,r,p.number))break;let g=qn(p.content,r,p.number),f={cellIndex:0,nextIndex:o.index+1,flatWidth:Ra(t),childTableFields:d};if(a&&t.length===1&&t[0].fixedLength!==void 0?yield*Lm(t[0],g,f,p.number):(yield{type:"startObject",line:p.number},yield*Mm(t,g,p,n,f,s+1,r,i),yield{type:"endObject",line:p.number}),f.cellIndex!==g.length)throw ie(p.number,"array row length mismatch");o.index=f.nextIndex,c++}if(c!==e)throw RT(n,o.index,l);let u=n[o.index];if(u!==void 0&&u.depth>=s&&ka(u.content,r,u.number))throw ie(u.number,"array length mismatch")}function*Mm(e,t,r,n,o,s,i,a){for(let l=0;l<e.length;l++){let d=e[l];yield{type:"key",key:d.name,line:r.number},yield*yT(d,e.slice(l+1),t,r,n,o,s,i,a)}}function*yT(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){yield*Lm(e,r,s,n.number);return}if(e.listDelimiter!==void 0){let c=Dm(r,s,n.number),u=qn(c,e.listDelimiter,n.number);yield{type:"startArray",length:u.length,line:n.number};for(let p of u)yield{type:"primitive",value:Ft(p,n.number),line:n.number};yield{type:"endArray",line:n.number};return}if(e.children!==void 0){let c=Ra(e.children),u=r[s.cellIndex],p=Bm(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],b=f!==void 0&&f.depth===i;if(s.childTableFields?.has(e)??(p!==void 0&&(b||r.length!==s.flatWidth&&g<c+kT(t)))){if(!l.objectArrayColumns||p===void 0)throw ie(n.number,"array row length mismatch");s.cellIndex++,yield{type:"startArray",length:p,line:n.number};let w={index:s.nextIndex};yield*Im(p,e.children,a,o,w,i,l,!1,n.number),s.nextIndex=w.index,yield{type:"endArray",line:o[s.nextIndex-1]?.number??n.number};return}yield{type:"startObject",line:n.number},yield*Mm(e.children,r,n,o,s,i,a,l),yield{type:"endObject",line:n.number};return}let d=Dm(r,s,n.number);yield{type:"primitive",value:Ft(d,n.number),line:n.number}}function*Lm(e,t,r,n){let o=e.fixedLength;if(r.cellIndex+o>t.length)throw ie(n,"array row length mismatch");yield{type:"startArray",length:o,line:n};for(let s of t.slice(r.cellIndex,r.cellIndex+o))yield{type:"primitive",value:Ft(s,n),line:n};r.cellIndex+=o,yield{type:"endArray",line:n}}function Dm(e,t,r){let n=e[t.cellIndex];if(n===void 0)throw ie(r,"array row length mismatch");return t.cellIndex++,n}function jm(e,t,r,n,o,s,i){let a=t.filter(d=>d.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let l;for(let d=0;d<1<<a.length;d++){let c=new Set;a.forEach((p,g)=>{d&1<<g&&c.add(p)});let u=$m(e,t,c,r,n,o,s,i);u!==void 0&&(l===void 0||u.consumed>l.consumed||u.consumed===l.consumed&&c.size<l.fields.size)&&(l={fields:c,consumed:u.consumed})}return l?.fields}function $m(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u++){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!ka(p.content,n,p.number))return;let g=bT(t,r,qn(p.content,n,p.number),n,o,l+1,i+1,a);if(g===void 0||o[g.nextIndex]?.depth>i)return;l=g.nextIndex,d+=g.consumed}let c=o[l];if(c!==void 0&&c.depth>=i&&ka(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumed:d}}function bT(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=Bm(r[l]);if(p===void 0)return;l++;let g=jm(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=$m(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumed}else l+=Ra(u.children);else l++;if(l>r.length)return}return l===r.length?{nextIndex:d,consumed:c}:void 0}function Bm(e){return e!==void 0&&/^(0|[1-9][0-9]*)$/.test(e)?Number(e):void 0}function Ra(e){return e.reduce((t,r)=>t+Nm(r),0)}function Nm(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Ra(e.children):1}function kT(e){return e.reduce((t,r)=>t+(r.children===void 0?Nm(r):1),0)}function ka(e,t,r){let n=ur(e,":",r);if(n===-1)return!0;let o=ur(e,t,r);return o!==-1&&o<n}function RT(e,t,r){return ie(e[t]?.number??e[e.length-1]?.number??r,"array length mismatch")}function wT(e){let t=0;for(;t<e.length&&e[t]===" ";)t++;return e[t]==="#"}var _a=class{ctx;sourceByLine=new Map;number=0;blankPending=!1;firstLine=!0;constructor(t){this.ctx=t}push(t){let r=t;if(this.number++,this.sourceByLine.set(this.number,t),this.firstLine&&(r.startsWith("\uFEFF")&&(r=r.slice(1)),this.firstLine=!1),r.endsWith("\r")&&(r=r.slice(0,-1)),r=r.replace(/ +$/,""),r.trim()===""){this.blankPending=!0;return}if(wT(r))return;let n=0,o=0,s=0;for(;n<r.length&&(r[n]===" "||r[n]===" ");){if(r[n]===" "){if(this.ctx.strict)throw ie(this.number,"tab used as indentation");o++}else s++;n++}let i;if(s%this.ctx.indentSize===0)i=s/this.ctx.indentSize;else{if(this.ctx.strict)throw ie(this.number,"invalid indentation");i=Math.floor(s/this.ctx.indentSize)}i+=o,Qm(i,this.number,this.ctx);let a={number:this.number,depth:i,content:r.slice(n),blankBefore:this.blankPending};return this.blankPending=!1,a}};function*_T(e,t){for(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}async function*xT(e,t){for await(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}var ET=/^(0|[1-9]\d*)$/;function sc(e,t){let r=ur(e,"[",t);if(r===-1)return null;let n=ur(e,":",t);if(n!==-1&&n<r)return null;let o=e.slice(0,r);if(o!==""&&/\s$/.test(o))throw ie(t,"whitespace between key and bracket segment");let s=e.indexOf("]",r);if(s===-1)return null;let i=e.slice(r+1,s),a=!1,l=",",d=i.indexOf(":");if(d!==-1){let b=i.slice(d+1);if(i=i.slice(0,d),a=!0,b===" "||b==="|")l=b;else if(b!=="")throw ie(t,"malformed bracket segment")}else(i.endsWith(" ")||i.endsWith("|"))&&(l=i.slice(-1),i=i.slice(0,-1));if(!ET.test(i))throw ie(t,"malformed array header length");let c=Number(i),u=e.slice(s+1),p;if(u.startsWith("{")){let b=Wm(u,t);p=vT(u.slice(1,b),l,t),u=u.slice(b+1)}if(a&&p===void 0)throw ie(t,"keyed header requires a field list");if(!u.startsWith(":"))throw ie(t,"expected colon after array header");let g=Dr(u.slice(1));if((p!==void 0||a)&&g!=="")throw ie(t,"unexpected content after fields-bearing header colon");return{key:o===""?void 0:gn(o,t)[0],length:c,delimiter:l,fields:p,keyed:a,inline:g===""?void 0:g}}function Wm(e,t){let r=0,n=!1;for(let o=0;o<e.length;o++){let s=e[o];if(n){s==="\\"?o++:s==='"'&&(n=!1);continue}if(s==='"')n=!0;else if(s==="{")r++;else if(s==="}"&&(r--,r===0))return o}throw ie(t,"malformed tabular header fields")}function vT(e,t,r){if(t!==","&&e.includes(",")&&(e.includes("[")||e.includes("{")))return wa(e,",",t,r);try{return wa(e,t,t,r)}catch(n){if(t===",")throw n;return wa(e,",",t,r)}}function wa(e,t,r,n){let o=[],s=0,i=0,a=0,l=!1,d=c=>{o.push(ST(c,t,r,n))};for(let c=0;c<e.length;c++){let u=e[c];if(l){u==="\\"?c++:u==='"'&&(l=!1);continue}u==='"'?l=!0:u==="{"?i++:u==="}"?i--:u==="["?a++:u==="]"?a--:u===t&&i===0&&a===0&&(d(e.slice(s,c)),s=c+1)}return d(e.slice(s)),o}function ST(e,t,r,n){let o=Dr(e);if(o==="")throw ie(n,"empty field entry in header");let s=o.startsWith('"')?TT(o,n)+1:0,i=o.indexOf("{",s),a=o.indexOf("[",s),l=i===-1?a:a===-1?i:Math.min(i,a);if(l===-1)return{name:gn(o,n)[0]};let d=gn(o.slice(0,l),n)[0];if(l===a){let p=o.indexOf("]",a);if(p===-1||p!==o.length-1)throw ie(n,"invalid array header");let g=o.slice(a+1,p),f=/^(0|[1-9]\d*)(\t|\|)?$/.exec(g);if(f!==null){if((f[2]??",")!==r)throw ie(n,"invalid array header");return{name:d,fixedLength:Number(f[1])}}if(g.length!==1||g===r||/[ \t\r\n"[\]{}:]/.test(g))throw ie(n,"invalid array header");return{name:d,listDelimiter:g}}let c=Wm(o.slice(i),n)+i;if(c!==o.length-1)throw ie(n,"malformed tabular header fields");if(c===i+1)throw ie(n,"invalid array header");let u=wa(o.slice(i+1,c),t,r,n);return{name:d,children:u}}function TT(e,t){for(let r=1;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]==='"')return r;throw ie(t,"invalid quoted string")}function ic(e){let t=0;for(let r of e)t+=r.children===void 0?1:ic(r.children);return t}function ac(e,t,r){let n=new Set;for(let o of e){if(n.has(o.name)&&r.strict)throw ie(t,"duplicate field name in header");n.add(o.name),o.children!==void 0&&ac(o.children,t,r)}}function Dr(e){let t=0,r=e.length;for(;t<r&&e[t]===" ";)t++;for(;r>t&&e[r-1]===" ";)r--;return e.slice(t,r)}function lc(e,t,r){if(Dr(e)==="")return[];let n=[],o=0,s=!1;for(let i=0;i<e.length;i++){let a=e[i];if(s){a==="\\"?i++:a==='"'&&(s=!1);continue}a==='"'?s=!0:a===t&&(n.push(Dr(e.slice(o,i))),o=i+1)}return n.push(Dr(e.slice(o))),n}var dc=Symbol("need line"),Gm=2,rc=class{lines=[];ended=!1;previous;spanActive=0;*peek(t=0){if(t>=Gm)throw new Error(`decoder lookahead exceeds ${Gm} classified lines`);for(;!this.ended&&this.lines.length<=t;){let r=yield dc;r===void 0?this.ended=!0:this.lines.push(r)}return this.lines[t]}*take(t){let r=yield*this.peek();if(r===void 0)throw new Error("decoder attempted to read past end of input");if(this.lines.shift(),t.strict&&this.spanActive>0&&r.blankBefore)throw ie(r.number,"blank line inside a header span");return this.previous=r,r}lastNumber(t){return this.previous===void 0?t:this.previous.number}stop(){this.lines.length=0,this.ended=!0}};function Hm(e,t){return ur(e,":",t)!==-1}function Um(e,t){try{return gn(e,t)[0]}catch(r){if(e.startsWith('"'))throw r;return e}}function qm(e){let t=e?.maxDepth??Ks;return{indentSize:e?.indentSize??e?.indent??2,strict:e?.strict??!0,objectArrayColumns:e?.objectArrayColumns??!0,maxDepth:t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t))}}function*Km(e){let t=new rc,r=yield*t.peek();if(r===void 0){yield{type:"startObject",line:1},yield{type:"endObject",line:1};return}if(r.depth!==0)throw ie(r.number,"invalid indentation");if(yield*t.peek(1),r.content==="[]"){yield*t.take(e),yield{type:"startArray",length:0,line:r.number},yield{type:"endArray",line:r.number},yield*tc(t,e);return}let n=null,o=!1;try{n=sc(r.content,r.number)}catch(s){if(e.strict)throw s;o=!0}if(n!=null&&xa(n.fields,r.number,e),n!=null&&!o&&n.key===void 0){yield*t.take(e),n.keyed?yield*Ym(t,r,n,e):yield*cc(t,r,n,e),yield*tc(t,e);return}if((n===null||o)&&!Hm(r.content,r.number)&&(yield*t.peek(1))===void 0){yield*t.take(e),yield{type:"primitive",value:Ft(Dr(r.content),r.number),line:r.number};return}yield*Vm(t,0,r.number,e),yield*tc(t,e)}function*tc(e,t){let r=yield*e.peek();if(r!==void 0&&t.strict)throw ie(r.number,"expected end of document");e.stop()}function*Vm(e,t,r,n){yield{type:"startObject",line:r};let o=new Set;for(;;){let s=yield*e.peek();if(s===void 0||s.depth<t)break;if(s.depth>t)throw ie(s.number,"over-indented line");yield*e.take(n),yield*nc(e,s,s.content,t,n,o)}yield{type:"endObject",line:e.lastNumber(r)}}function*nc(e,t,r,n,o,s){let i=null;try{i=sc(r,t.number)}catch(c){if(o.strict)throw c;i=null}if(i!=null)if(xa(i.fields,t.number,o),i.key===void 0){if(o.strict)throw ie(t.number,"keyless header is only valid at the root or as a list item");i=null}else{oc(s,i.key,t.number,o),yield{type:"key",key:i.key,line:t.number},i.keyed?yield*Ym(e,{...t,depth:n},i,o):yield*cc(e,{...t,depth:n},i,o);return}let a=ur(r,":",t.number);if(a===-1)throw ie(t.number,"expected key-value line");let l=Um(Dr(r.slice(0,a)),t.number),d=Dr(r.slice(a+1));if(oc(s,l,t.number,o),yield{type:"key",key:l,line:t.number},d===""){let c=yield*e.peek();if(c!==void 0&&c.depth>n){if(c.depth!==n+1)throw ie(c.number,"over-indented line");yield*Vm(e,n+1,c.number,o)}else yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}if(d==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}yield{type:"primitive",value:Ft(d,t.number),line:t.number}}function oc(e,t,r,n){if(e.has(t)&&n.strict)throw ie(r,"duplicate object key");e.add(t)}function*cc(e,t,r,n){if(yield{type:"startArray",length:r.length,line:t.number},r.fields!==void 0){if(ac(r.fields,t.number,n),zm(r.fields,n)){if(!n.objectArrayColumns&&Jm(r.fields))throw ie(t.number,"invalid array header");let i=[];for(;;){let a=yield*e.peek();if(a===void 0||a.depth<=t.depth)break;i.push(yield*e.take(n))}yield*Fm(r.fields,i,r.length,r.delimiter,t.depth+1,t.number,n),yield{type:"endArray",line:e.lastNumber(t.number)};return}yield*AT(e,t,r,n);return}if(r.inline!==void 0){let i=lc(r.inline,r.delimiter,t.number);pc(i.length,r.length,t.number,"inline-form values",n);for(let a of i)yield{type:"primitive",value:Ft(a,t.number),line:t.number};yield{type:"endArray",line:t.number};return}let o=0;for(;;){let i=yield*e.peek();if(i===void 0||i.depth<=t.depth)break;if(i.depth!==t.depth+1)throw ie(i.number,"over-indented line");if(!i.content.startsWith("- ")&&i.content!=="-")break;yield*e.take(n),o===0&&e.spanActive++,o++,yield*PT(e,i,n)}o>0&&e.spanActive--;let s=e.lastNumber(t.number);if(n.strict&&o!==r.length)throw ie(s,`expected ${r.length} list items, but got ${o}`);yield{type:"endArray",line:s}}function zm(e,t){return e.some(r=>r.listDelimiter!==void 0||r.fixedLength!==void 0||t.objectArrayColumns&&r.children!==void 0||r.children!==void 0&&zm(r.children,t))}function Jm(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0&&Jm(t.children))}function*PT(e,t,r){if(t.content==="-"){yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}let n=Dr(t.content.slice(2));if(n==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}let o=null;try{o=sc(n,t.number)}catch(s){if(r.strict)throw s;o=null}if(o!=null&&o.key===void 0){if(xa(o.fields,t.number,r),o.keyed||o.fields!==void 0){if(r.strict)throw ie(t.number,"keyless fields-bearing header is only valid at the root");yield{type:"primitive",value:Ft(n,t.number),line:t.number};return}yield*cc(e,t,o,r);return}if(o!=null&&o.key!==void 0||Hm(n,t.number)){yield{type:"startObject",line:t.number};let s=new Set;for(yield*nc(e,t,n,t.depth+1,r,s);;){let i=yield*e.peek();if(i===void 0||i.depth!==t.depth+1||i.content.startsWith("- ")||i.content==="-")break;yield*e.take(r),yield*nc(e,i,i.content,t.depth+1,r,s)}yield{type:"endObject",line:e.lastNumber(t.number)};return}yield{type:"primitive",value:Ft(n,t.number),line:t.number}}function*AT(e,t,r,n){let o=r.fields,s=ic(o),i=t.depth+1,a=0;for(;;){let d=yield*e.peek();if(d===void 0||d.depth<=t.depth)break;if(d.depth!==i)throw ie(d.number,"over-indented line");if(!OT(d.content,r.delimiter,d.number))break;yield*e.take(n),a===0&&e.spanActive++,a++;let c=lc(d.content,r.delimiter,d.number);pc(c.length,s,d.number,"row cells",n),yield*uc(o,c,{next:0},d.number)}a>0&&e.spanActive--;let l=e.lastNumber(t.number);if(n.strict&&a!==r.length)throw ie(l,`expected ${r.length} tabular rows, but got ${a}`);yield{type:"endArray",line:l}}function OT(e,t,r){let n=ur(e,":",r);if(n===-1)return!0;let o=ur(e,t,r);return o===-1?!1:o<n}function*uc(e,t,r,n){yield{type:"startObject",line:n};for(let o of e)if(yield{type:"key",key:o.name,line:n},o.children===void 0){let s=t[r.next++]??"";yield{type:"primitive",value:Ft(s,n),line:n}}else yield*uc(o.children,t,r,n);yield{type:"endObject",line:n}}function*Ym(e,t,r,n){let o=r.fields;ac(o,t.number,n);let s=ic(o),i=t.depth+1;yield{type:"startObject",line:t.number};let a=new Set,l=0;for(;;){let c=yield*e.peek();if(c===void 0||c.depth<=t.depth)break;if(c.depth!==i)throw ie(c.number,"over-indented line");let u=ur(c.content,":",c.number);if(u===-1){if(n.strict)throw ie(c.number,"expected a keyed entry row");yield*e.take(n);continue}yield*e.take(n),l===0&&e.spanActive++,l++;let p=Um(Dr(c.content.slice(0,u)),c.number);oc(a,p,c.number,n),yield{type:"key",key:p,line:c.number};let g=lc(c.content.slice(u+1),r.delimiter,c.number);pc(g.length,s,c.number,"entry row cells",n),yield*uc(o,g,{next:0},c.number)}l>0&&e.spanActive--;let d=e.lastNumber(t.number);if(n.strict&&l!==r.length)throw ie(d,`expected ${r.length} entry rows, but got ${l}`);yield{type:"endObject",line:d}}function pc(e,t,r,n,o){if(o.strict&&e!==t)throw ie(r,`expected ${t} ${n}, but got ${e}`)}function Qm(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw ie(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function xa(e,t,r,n=1){if(e!==void 0){Qm(n,t,r);for(let o of e)o.children!==void 0&&xa(o.children,t,r,n+1)}}function*Xm(e,t){let r=qm(t),n=new _a(r),o=_T(e,n),s=Km(r),i=s.next();try{for(;!i.done;)if(i.value===dc){let a=o.next();i=s.next(a.done?void 0:a.value)}else yield i.value,i=s.next()}catch(a){throw eh(a,n)}finally{s.return(),o.return(void 0)}}async function*Zm(e,t){let r=qm(t),n=new _a(r),o=xT(e,n),s=Km(r),i=s.next();try{for(;!i.done;)if(i.value===dc){let a=await o.next();i=s.next(a.done?void 0:a.value)}else yield i.value,i=s.next()}catch(a){throw eh(a,n)}finally{s.return(),await o.return(void 0)}}function eh(e,t){return!(e instanceof fn)||e.source!==void 0?e:new Lo(e.reason,{line:e.line,source:t.sourceByLine.get(e.line),cause:e})}function fc(e,t){return Symbol.asyncIterator in e?Zm(e,t):Xm(e,t)}var CT=/[\uD800-\uDFFF]/;function Wt(e){if(e===null)return null;if(Un(e))return e;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return Wt(t)}if(typeof e=="string")return th(e,"string value"),e;if(typeof e=="boolean")return e;if(typeof e=="number")return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Wt);if(e instanceof Set)return Array.from(e,Wt);if(e instanceof Map){let t={};for(let[r,n]of e)$o(t,String(r),Wt(n));return t}if(Be(e)){let t={};for(let r of Object.keys(e))th(r,"object key"),$o(t,r,Wt(e[r]));return t}return null}function th(e,t){if(CT.test(e))for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n<55296||n>57343)continue;let o=e.charCodeAt(r+1);if(n<=56319&&o>=56320&&o<=57343){r+=1;continue}throw new TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${n.toString(16).toUpperCase()} at index ${r}`)}}function Be(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Jt(e){return e===null||Un(e)||["string","number","boolean"].includes(typeof e)}function $o(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function oh(e){if(!Be(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=DT(n,1);if(o===void 0)return e;Kn(t,r,o)}return t}function DT(e,t){if(!Be(e)||!FT(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw wt(t);let s=IT(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(Be))throw sh(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Cm.has(u)){if(!Array.isArray(p)||!p.every(Be))throw wt(t);l.set(u,p)}if(l.size===0)throw wt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw gc(t);let f=d.get(u)??0,b=g[f];if(b===void 0)throw gc(t);return d.set(u,f+1),MT(n,u,a[p],b,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw gc(t);return c}function FT(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function IT(e,t,r){if(!e.startsWith("cycle("))throw wt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw wt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw wt(r);let a=s.split(",").map(c=>BT(c,r));if(a.some(c=>c===""))throw wt(r);let l=$T(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw wt(r);if(d!==t)throw sh(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function MT(e,t,r,n,o){let s={};Kn(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw wt(o);Kn(s,i,a)}for(let[i,a]of Object.entries(LT(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw wt(o);Kn(s,i,a)}return s}function LT(e,t){let r={};for(let[n,o]of Object.entries(e))jT(r,n.split("."),o,t);return Ea(r,t)}function jT(e,t,r,n){if(t.some(s=>s===""))throw wt(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],!Be(o))throw wt(n)}}function Ea(e,t){return Array.isArray(e)?e.map(r=>Ea(r,t)):Be(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw wt(t);return Ea(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Ea(n,t)])):e}function $T(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw wt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw wt(t);return r}function BT(e,t){try{return decodeURIComponent(e)}catch{throw wt(t)}}function rh(e){return encodeURIComponent(e)}function wt(e){return ie(e,"invalid cyclic array wire")}function sh(e){return ie(e,"cyclic array length mismatch")}function gc(e){return ie(e,"cyclic array group length mismatch")}function ih(e){if(!Be(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=NT(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)UT(n,o,s);return n.join("")}function NT(e){if(!Array.isArray(e)||e.length===0||!e.every(Be))return;let t=GT(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=WT(r);if(n===void 0)return;let o=HT(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)&&!mc(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=KT(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 GT(e){return Om.find(t=>e.every(r=>typeof r[t]=="string"))}function WT(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(rh).join(","),s=`cycle(${r.map(rh).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function HT(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(!qT(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>qs(i[s])))break;r.push(s)}return r}function UT(e,t,r){e.push(Rt(t),`:
|
|
9
|
-
`),e.push(" order: ",
|
|
10
|
-
`),e.push(" discriminator: ",
|
|
6
|
+
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};UO=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Zc=/^redskilled-(?!mcp[.-])(.+)\.bundle\.min\.mjs$/,qO=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var Lu=Sm((Iu,Mu)=>{(function(e,t){typeof Iu=="object"&&typeof Mu<"u"?Mu.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Iu,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(V){return V&&V.default||V}var r=function(V,I,R={}){var j,N,H;for(j in I)H=I[j],R[j]=(N=V[j])!=null?N:H;return R},n=function(V,I,R={}){var j,N;for(j in V)N=V[j],I[j]!==void 0&&(R[j]=N);return R},o={load:r,overwrite:n},s;s=class{constructor(I,R){this.incr=I,this.decr=R,this._first=null,this._last=null,this.length=0}push(I){var R;this.length++,typeof this.incr=="function"&&this.incr(),R={value:I,prev:this._last,next:null},this._last!=null?(this._last.next=R,this._last=R):this._first=this._last=R}shift(){var I;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),I=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,I}first(){if(this._first!=null)return this._first.value}getArray(){var I,R,j;for(I=this._first,j=[];I!=null;)j.push((R=I,I=I.next,R.value));return j}forEachShift(I){var R;for(R=this.shift();R!=null;)I(R),R=this.shift()}debug(){var I,R,j,N,H;for(I=this._first,H=[];I!=null;)H.push((R=I,I=I.next,{value:R.value,prev:(j=R.prev)!=null?j.value:void 0,next:(N=R.next)!=null?N.value:void 0}));return H}};var i=s,a;a=class{constructor(I){if(this.instance=I,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(R,j)=>this._addListener(R,"many",j),this.instance.once=(R,j)=>this._addListener(R,"once",j),this.instance.removeAllListeners=(R=null)=>R!=null?delete this._events[R]:this._events={}}_addListener(I,R,j){var N;return(N=this._events)[I]==null&&(N[I]=[]),this._events[I].push({cb:j,status:R}),this.instance}listenerCount(I){return this._events[I]!=null?this._events[I].length:0}async trigger(I,...R){var j,N;try{return I!=="debug"&&this.trigger("debug",`Event triggered: ${I}`,R),this._events[I]==null?void 0:(this._events[I]=this._events[I].filter(function(H){return H.status!=="none"}),N=this._events[I].map(async H=>{var K,X;if(H.status!=="none"){H.status==="once"&&(H.status="none");try{return X=typeof H.cb=="function"?H.cb(...R):void 0,typeof X?.then=="function"?await X:X}catch(we){return K=we,this.trigger("error",K),null}}}),(await Promise.all(N)).find(function(H){return H!=null}))}catch(H){return j=H,this.trigger("error",j),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(I){var R;this.Events=new c(this),this._length=0,this._lists=function(){var j,N,H;for(H=[],R=j=1,N=I;1<=N?j<=N:j>=N;R=1<=N?++j:--j)H.push(new d(()=>this.incr(),()=>this.decr()));return H}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(I){return this._lists[I.options.priority].push(I)}queued(I){return I!=null?this._lists[I].length:this._length}shiftAll(I){return this._lists.forEach(function(R){return R.forEachShift(I)})}getFirst(I=this._lists){var R,j,N;for(R=0,j=I.length;R<j;R++)if(N=I[R],N.length>0)return N;return[]}shiftLastFrom(I){return this.getFirst(this._lists.slice(I).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,b,h,_,w,A;w=10,h=5,A=o,b=f,_=class{constructor(I,R,j,N,H,K,X,we){this.task=I,this.args=R,this.rejectOnDrop=H,this.Events=K,this._states=X,this.Promise=we,this.options=A.load(j,N),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===N.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Ie)=>{this._resolve=je,this._reject=Ie}),this.retryCount=0}_sanitizePriority(I){var R;return R=~~I!==I?h:I,R<0?0:R>w-1?w-1:R}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:I,message:R="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(I??new b(R)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(I){var R;if(R=this._states.jobStatus(this.options.id),!(R===I||I==="DONE"&&R===null))throw new b(`Invalid job status ${R}, expected ${I}. 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(I,R){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:I,blocked:R})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(I,R,j,N){var H,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(I!=null?I.schedule(this.options,this.task,...this.args):this.task(...this.args)),R())return this.doDone(K),await N(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(we){return H=we,this._onFailure(H,K,R,j,N)}}doExpire(I,R,j){var N,H;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),H={args:this.args,options:this.options,retryCount:this.retryCount},N=new b(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(N,H,I,R,j)}async _onFailure(I,R,j,N,H){var K,X;if(j())return K=await this.Events.trigger("failed",I,R),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,R),this.retryCount++,N(X)):(this.doDone(R),await H(this.options,R),this._assertStatus("DONE"),this._reject(I))}doDone(I){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",I)}};var x=_,O,$,L;L=o,O=f,$=class{constructor(I,R,j){this.instance=I,this.storeOptions=R,this.clientId=this.instance._randomIndex(),L.load(j,j,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 I;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(I=this.heartbeat=setInterval(()=>{var R,j,N,H,K;if(H=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&H>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=H,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&H>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:R,reservoirIncreaseMaximum:N,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=H,j=N!=null?Math.min(R,N-K):R,j>0))return this.storeOptions.reservoir+=j,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?I.unref():void 0:clearInterval(this.heartbeat)}async __publish__(I){return await this.yieldLoop(),this.instance.Events.trigger("message",I.toString())}async __disconnect__(I){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(I=0){return new this.Promise(function(R,j){return setTimeout(R,I)})}computePenalty(){var I;return(I=this.storeOptions.penalty)!=null?I:15*this.storeOptions.minTime||5e3}async __updateSettings__(I){return await this.yieldLoop(),L.overwrite(I,I,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__(I){return await this.yieldLoop(),this._nextRequest+this.timeout<I}computeCapacity(){var I,R;return{maxConcurrent:I,reservoir:R}=this.storeOptions,I!=null&&R!=null?Math.min(I-this._running,R):I!=null?I-this._running:R??null}conditionsCheck(I){var R;return R=this.computeCapacity(),R==null||I<=R}async __incrementReservoir__(I){var R;return await this.yieldLoop(),R=this.storeOptions.reservoir+=I,this.instance._drainAll(this.computeCapacity()),R}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(I){return this._unblockTime>=I}check(I,R){return this.conditionsCheck(I)&&this._nextRequest-R<=0}async __check__(I){var R;return await this.yieldLoop(),R=Date.now(),this.check(I,R)}async __register__(I,R,j){var N,H;return await this.yieldLoop(),N=Date.now(),this.conditionsCheck(R)?(this._running+=R,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=R),H=Math.max(this._nextRequest-N,0),this._nextRequest=N+H+this.storeOptions.minTime,{success:!0,wait:H,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(I,R){var j,N,H;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&R>this.storeOptions.maxConcurrent)throw new O(`Impossible to add a job having a weight of ${R} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return N=Date.now(),H=this.storeOptions.highWater!=null&&I===this.storeOptions.highWater&&!this.check(R,N),j=this.strategyIsBlock()&&(H||this.isBlocked(N)),j&&(this._unblockTime=N+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:H,blocked:j,strategy:this.storeOptions.strategy}}async __free__(I,R){return await this.yieldLoop(),this._running-=R,this._done+=R,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var B=$,F,W;F=f,W=class{constructor(I){this.status=I,this._jobs={},this.counts=this.status.map(function(){return 0})}next(I){var R,j;if(R=this._jobs[I],j=R+1,R!=null&&j<this.status.length)return this.counts[R]--,this.counts[j]++,this._jobs[I]++;if(R!=null)return this.counts[R]--,delete this._jobs[I]}start(I){var R;return R=0,this._jobs[I]=R,this.counts[R]++}remove(I){var R;return R=this._jobs[I],R!=null&&(this.counts[R]--,delete this._jobs[I]),R!=null}jobStatus(I){var R;return(R=this.status[this._jobs[I]])!=null?R:null}statusJobs(I){var R,j,N,H,K;if(I!=null){if(j=this.status.indexOf(I),j<0)throw new F(`status must be one of ${this.status.join(", ")}`);N=this._jobs,H=[];for(R in N)K=N[R],K===j&&H.push(R);return H}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((I,R,j)=>(I[this.status[j]]=R,I),{})}};var U=W,oe,se;oe=i,se=class{constructor(I,R){this.schedule=this.schedule.bind(this),this.name=I,this.Promise=R,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var I,R,j,N,H,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:I,resolve:H,reject:N}=this._queue.shift(),R=await async function(){try{return K=await X(...I),function(){return H(K)}}catch(we){return j=we,function(){return N(j)}}}(),this._running--,this._tryToRun(),R()}schedule(I,...R){var j,N,H;return H=N=null,j=new this.Promise(function(K,X){return H=K,N=X}),this._queue.push({task:I,args:R,resolve:H,reject:N}),this._tryToRun(),j}};var re=se,Q="2.19.5",ae={version:Q},Se=Object.freeze({version:Q,default:ae}),ve=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ke=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),J=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ce,Re,Pe,Te,_e,Ae;Ae=o,ce=l,Te=ve,Pe=ke,_e=J,Re=function(){class V{constructor(R={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=R,Ae.load(this.limiterOptions,this.defaults,this),this.Events=new ce(this),this.instances={},this.Bottleneck=zr,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Te(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new Pe(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(R=""){var j;return(j=this.instances[R])!=null?j:(()=>{var N;return N=this.instances[R]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${R}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",N,R),N})()}async deleteKey(R=""){var j,N;return N=this.instances[R],this.connection&&(j=await this.connection.__runCommand__(["del",..._e.allKeys(`${this.id}-${R}`)])),N!=null&&(delete this.instances[R],await N.disconnect()),N!=null||j>0}limiters(){var R,j,N,H;j=this.instances,N=[];for(R in j)H=j[R],N.push({key:R,limiter:H});return N}keys(){return Object.keys(this.instances)}async clusterKeys(){var R,j,N,H,K,X,we,je,Ie;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],R=null,Ie=`b_${this.id}-`.length,j=9;R!==0;)for([je,N]=await this.connection.__runCommand__(["scan",R??0,"match",`b_${this.id}-*_settings`,"count",1e4]),R=~~je,H=0,we=N.length;H<we;H++)K=N[H],X.push(K.slice(Ie,-j));return X}_startAutoCleanup(){var R;return clearInterval(this.interval),typeof(R=this.interval=setInterval(async()=>{var j,N,H,K,X,we;X=Date.now(),H=this.instances,K=[];for(N in H){we=H[N];try{await we._store.__groupCheck__(X)?K.push(this.deleteKey(N)):K.push(void 0)}catch(je){j=je,K.push(we.Events.trigger("error",j))}}return K},this.timeout/2)).unref=="function"?R.unref():void 0}updateSettings(R={}){if(Ae.overwrite(R,this.defaults,this),Ae.overwrite(R,R,this.limiterOptions),R.timeout!=null)return this._startAutoCleanup()}disconnect(R=!0){var j;if(!this.sharedConnection)return(j=this.connection)!=null?j.disconnect(R):void 0}}return V.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},V}.call(e);var ye=Re,le,be,Ye;Ye=o,be=l,le=function(){class V{constructor(R={}){this.options=R,Ye.load(this.options,this.defaults,this),this.Events=new be(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((R,j)=>this._resolve=R)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(R){var j;return this._arr.push(R),j=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),j}}return V.prototype.defaults={maxTime:null,maxSize:null,Promise},V}.call(e);var He=le,pt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Tr=t(Se),Kr,un,Nt,Vr,ue,ft,rt,Qe,at,Et,lt,Pr=[].splice;ft=10,un=5,lt=o,rt=p,Vr=x,ue=B,Qe=pt,Nt=l,at=U,Et=re,Kr=function(){class V{constructor(R={},...j){var N,H;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(R,j),lt.load(R,this.instanceDefaults,this),this._queues=new rt(ft),this._scheduled={},this._states=new at(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new Nt(this),this._submitLock=new Et("submit",this.Promise),this._registerLock=new Et("register",this.Promise),H=lt.load(R,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return N=lt.load(R,this.redisStoreDefaults,{}),new Qe(this,H,N);if(this.datastore==="local")return N=lt.load(R,this.localStoreDefaults,{}),new ue(this,H,N);throw new V.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(R,j){if(!(R!=null&&typeof R=="object"&&j.length===0))throw new V.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(R){return this._store.__publish__(R)}disconnect(R=!0){return this._store.__disconnect__(R)}chain(R){return this._limiter=R,this}queued(R){return this._queues.queued(R)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(R){return this._states.jobStatus(R)}jobs(R){return this._states.statusJobs(R)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(R=1){return this._store.__check__(R)}_clearGlobalState(R){return this._scheduled[R]!=null?(clearTimeout(this._scheduled[R].expiration),delete this._scheduled[R],!0):!1}async _free(R,j,N,H){var K,X;try{if({running:X}=await this._store.__free__(R,N.weight),this.Events.trigger("debug",`Freed ${N.id}`,H),X===0&&this.empty())return this.Events.trigger("idle")}catch(we){return K=we,this.Events.trigger("error",K)}}_run(R,j,N){var H,K,X;return j.doRun(),H=this._clearGlobalState.bind(this,R),X=this._run.bind(this,R,j),K=this._free.bind(this,R,j),this._scheduled[R]={timeout:setTimeout(()=>j.doExecute(this._limiter,H,X,K),N),expiration:j.options.expiration!=null?setTimeout(function(){return j.doExpire(H,X,K)},N+j.options.expiration):void 0,job:j}}_drainOne(R){return this._registerLock.schedule(()=>{var j,N,H,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:j}=H=X.first(),R!=null&&K.weight>R?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:j,options:K}),N=this._randomIndex(),this._store.__register__(N,K.weight,K.expiration).then(({success:we,wait:je,reservoir:Ie})=>{var dr;return this.Events.trigger("debug",`Drained ${K.id}`,{success:we,args:j,options:K}),we?(X.shift(),dr=this.empty(),dr&&this.Events.trigger("empty"),Ie===0&&this.Events.trigger("depleted",dr),this._run(N,H,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(R,j=0){return this._drainOne(R).then(N=>{var H;return N!=null?(H=R!=null?R-N:R,this._drainAll(H,j+N)):this.Promise.resolve(j)}).catch(N=>this.Events.trigger("error",N))}_dropAllQueued(R){return this._queues.shiftAll(function(j){return j.doDrop({message:R})})}stop(R={}){var j,N;return R=lt.load(R,this.stopDefaults),N=H=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===H},new this.Promise((X,we)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},j=R.dropWaitingJobs?(this._run=function(H,K){return K.doDrop({message:R.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var H,K,X;K=this._scheduled;for(H in K)X=K[H],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:R.dropErrorMessage}));return this._dropAllQueued(R.dropErrorMessage),N(0)}))):this.schedule({priority:ft-1,weight:0},()=>N(1)),this._receive=function(H){return H._reject(new V.prototype.BottleneckError(R.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new V.prototype.BottleneckError("stop() has already been called")),j}async _addToQueue(R){var j,N,H,K,X,we,je;({args:j,options:K}=R);try{({reachedHWM:X,blocked:N,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch(Ie){return H=Ie,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:j,options:K,error:H}),R.doDrop({error:H}),!1}return N?(R.doDrop(),!0):X&&(we=je===V.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===V.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===V.prototype.strategy.OVERFLOW?R:void 0,we?.doDrop(),we==null||je===V.prototype.strategy.OVERFLOW)?(we==null&&R.doDrop(),X):(R.doQueue(X,N),this._queues.push(R),await this._drainAll(),X)}_receive(R){return this._states.jobStatus(R.options.id)!=null?(R._reject(new V.prototype.BottleneckError(`A job with the same id already exists (id=${R.options.id})`)),!1):(R.doReceive(),this._submitLock.schedule(this._addToQueue,R))}submit(...R){var j,N,H,K,X,we,je;return typeof R[0]=="function"?(X=R,[N,...R]=X,[j]=Pr.call(R,-1),K=lt.load({},this.jobDefaults)):(we=R,[K,N,...R]=we,[j]=Pr.call(R,-1),K=lt.load(K,this.jobDefaults)),je=(...Ie)=>new this.Promise(function(dr,cr){return N(...Ie,function(...Ar){return(Ar[0]!=null?cr:dr)(Ar)})}),H=new Vr(je,R,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),H.promise.then(function(Ie){return typeof j=="function"?j(...Ie):void 0}).catch(function(Ie){return Array.isArray(Ie)?typeof j=="function"?j(...Ie):void 0:typeof j=="function"?j(Ie):void 0}),this._receive(H)}schedule(...R){var j,N,H;return typeof R[0]=="function"?([H,...R]=R,N={}):[N,H,...R]=R,j=new Vr(H,R,N,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(j),j.promise}wrap(R){var j,N;return j=this.schedule.bind(this),N=function(...H){return j(R.bind(this),...H)},N.withOptions=function(H,...K){return j(H,R,...K)},N}async updateSettings(R={}){return await this._store.__updateSettings__(lt.overwrite(R,this.storeDefaults)),lt.overwrite(R,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(R=0){return this._store.__incrementReservoir__(R)}}return V.default=V,V.Events=Nt,V.version=V.prototype.version=Tr.version,V.strategy=V.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},V.BottleneckError=V.prototype.BottleneckError=f,V.Group=V.prototype.Group=ye,V.RedisConnection=V.prototype.RedisConnection=ve,V.IORedisConnection=V.prototype.IORedisConnection=ke,V.Batcher=V.prototype.Batcher=He,V.prototype.jobDefaults={priority:un,weight:1,expiration:null,id:"<no-id>"},V.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:V.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},V.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},V.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},V.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},V.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},V}.call(e);var zr=Kr,xe=zr;return xe})});var W0=Sm(pl=>{"use strict";Object.defineProperty(pl,"__esModule",{value:!0});pl.format=kF;pl.parse=RF;var hF=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,j0=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,yF=/[\\"]/g,bF=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,$0=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function kF(e){let{type:t,parameters:r}=e;if(!t||!bF.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!j0.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${EF(r[o])}`}return n}function RF(e,t){let r=e.length,n=Wu(e,0,r),o=n;n=Gu(e,n,r);let s=Hu(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new $0:xF(e,n,r);return{type:i,parameters:a}}var B0=32,N0=9,G0=59,wF=61,L0=34,_F=92;function xF(e,t,r){let n=new $0;e:for(;t<r;){t=Wu(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===G0)continue e;if(s===wF){let i=Hu(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Wu(e,t+1,r),t<r&&e.charCodeAt(t)===L0){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===L0){t=Gu(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===_F&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Gu(e,t,r),n[a]===void 0){let d=Hu(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Gu(e,t,r){for(;t<r&&e.charCodeAt(t)!==G0;)t++;return t}function Wu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==B0&&n!==N0)break;t++}return t}function Hu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==B0&&n!==N0)break;r--}return r}function EF(e){if(j0.test(e))return e;if(hF.test(e))return`"${e.replace(yF,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as Q5}from"node:child_process";import{homedir as aa}from"node:os";import{join as $s}from"node:path";var jo=class extends SyntaxError{line;source;reason;constructor(t,r={}){let n=r.line===void 0||r.line===0?"":`Line ${r.line}: `;super(n+t,r.cause===void 0?void 0:{cause:r.cause}),this.name="ToonDecodeError",this.line=r.line,this.source=r.source,this.reason=t}},hn=class extends SyntaxError{line;source;reason;constructor(t,r,n={}){super(t===0?r:`line ${t}: ${r}`,n.cause===void 0?void 0:{cause:n.cause}),this.name="ToonError",this.line=t,this.source=n.source,this.reason=r}},Un=class extends Error{line;reason;constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function ie(e,t,r={}){return new hn(e,t,r)}function Oe(e,t){return new Un(e,t)}function $o(e){return e instanceof Un?e:e instanceof hn?new Un(e.line,e.reason):new Un(0,String(e&&e.message?e.message:e))}var _T=/(?:^\uFEFF?|\n) *#/,tc=class{value;constructor(t){if(_T.test(t))throw new TypeError(`Raw string must not contain a line starting with "#": ${JSON.stringify(t)}`);this.value=t}};function qn(e){return e instanceof tc}var Xr=",";function Am(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 Dr(e){return ie(e,"invalid quoted string")}function Ct(e,t){if(e==="")return"";if(e.startsWith('"'))return Om(e,t);if(e.includes('"'))throw Dr(t);if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;if(xT(e)){let r=Number(e);return Object.is(r,-0)?0:r}return e}function yn(e,t){let r=e.trim();if(r.startsWith('"'))return[Om(r,t),!0];if(r.includes('"')||/\s/.test(r))throw ie(t,"expected non-empty field name");return[r,!1]}var Tm=/["\\\u0000-\u0008\u000a-\u001f]/g;function Om(e,t){if(e.charCodeAt(0)!==34)throw Dr(t);let r="",n=1;for(;n<e.length;){Tm.lastIndex=n;let o=Tm.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw Dr(t)}if(o[0]!=="\\")throw Dr(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 Dr(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Dr(t);r+=String.fromCharCode(a),n+=4;break}default:throw Dr(t)}}throw Dr(t)}function Dm(e,t,r){for(;;){let n=e.indexOf('"',t),o=e.indexOf("\\",t);if(o!==-1&&(n===-1||o<n)){if(o===e.length-1)throw Dr(r);t=o+2;continue}if(n===-1)throw Dr(r);return n+1}}function Kn(e,t,r){if(e==="")return[];let n=[],o=0,s=0;for(;s<e.length;){let i=e.indexOf('"',s),a=e.indexOf(t,s);if(a!==-1&&(i===-1||a<i))n.push(e.slice(o,a).trim()),o=a+1,s=a+1;else if(i!==-1)s=Dm(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function ur(e,t,r){let n=0;for(;n<e.length;){let o=e.indexOf('"',n),s=e.indexOf(t,n);if(s!==-1&&(o===-1||s<o))return s;if(o===-1)return-1;n=Dm(e,o+1,r)}return-1}function xT(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function ET(e){return/^[+-]?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function vT(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw ie(0,"number is not representable in TOON");return String(e)}function Ks(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function bt(e,t){if(qn(e))return e.value;if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return vT(e);if(typeof e=="string")return TT(e,t);throw ie(0,"not a primitive")}function ST(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function kt(e){return ST(e)?e:Ra(e)}function TT(e,t){return rc(e,t)?Ra(e):e}function rc(e,t){return e===""||/^[ \t]|[ \t]$/.test(e)||e==="true"||e==="false"||e==="null"||ET(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")||e.startsWith("#")}var Pm=/["\\\u0000-\u001f]/g;function Ra(e){return`"${Cm(e)}"`}function Cm(e){let t="",r=0;Pm.lastIndex=0;let n;for(;(n=Pm.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 Vn(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}var Fm={comma:",",tab:" ",pipe:"|"},PT=Fm.comma;var Vs=1e3,Im=["type","kind","event"],zn="|",Mm=new Set(["order","discriminator","rows","common"]);function*jm(e,t,r,n,o,s,i){yield*$m(r,e,n,t,{index:0},o,i,!0,s)}function*$m(e,t,r,n,o,s,i,a,l){let d=Gm(e,t,r,n,o.index,s,i),c=0;for(;c<e;){let p=n[o.index];if(p===void 0||p.depth<s)break;if(p.depth>s)throw ie(p.number,"invalid indentation");if(p.blankBefore&&i.strict)throw ie(p.number,"blank line inside array");if(!wa(p.content,r,p.number))break;let g=Kn(p.content,r,p.number),f={cellIndex:0,nextIndex:o.index+1,flatWidth:_a(t),childTableFields:d};if(a&&t.length===1&&t[0].fixedLength!==void 0?yield*Nm(t[0],g,f,p.number):(yield{type:"startObject",line:p.number},yield*Bm(t,g,p,n,f,s+1,r,i),yield{type:"endObject",line:p.number}),f.cellIndex!==g.length)throw ie(p.number,"array row length mismatch");o.index=f.nextIndex,c++}if(c!==e)throw CT(n,o.index,l);let u=n[o.index];if(u!==void 0&&u.depth>=s&&wa(u.content,r,u.number))throw ie(u.number,"array length mismatch")}function*Bm(e,t,r,n,o,s,i,a){for(let l=0;l<e.length;l++){let d=e[l];yield{type:"key",key:d.name,line:r.number},yield*AT(d,e.slice(l+1),t,r,n,o,s,i,a)}}function*AT(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){yield*Nm(e,r,s,n.number);return}if(e.listDelimiter!==void 0){let c=Lm(r,s,n.number),u=Kn(c,e.listDelimiter,n.number);yield{type:"startArray",length:u.length,line:n.number};for(let p of u)yield{type:"primitive",value:Ct(p,n.number),line:n.number};yield{type:"endArray",line:n.number};return}if(e.children!==void 0){let c=_a(e.children),u=r[s.cellIndex],p=Hm(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],b=f!==void 0&&f.depth===i;if(s.childTableFields?.has(e)??(p!==void 0&&(b||r.length!==s.flatWidth&&g<c+DT(t)))){if(!l.objectArrayColumns||p===void 0)throw ie(n.number,"array row length mismatch");s.cellIndex++,yield{type:"startArray",length:p,line:n.number};let w={index:s.nextIndex};yield*$m(p,e.children,a,o,w,i,l,!1,n.number),s.nextIndex=w.index,yield{type:"endArray",line:o[s.nextIndex-1]?.number??n.number};return}yield{type:"startObject",line:n.number},yield*Bm(e.children,r,n,o,s,i,a,l),yield{type:"endObject",line:n.number};return}let d=Lm(r,s,n.number);yield{type:"primitive",value:Ct(d,n.number),line:n.number}}function*Nm(e,t,r,n){let o=e.fixedLength;if(r.cellIndex+o>t.length)throw ie(n,"array row length mismatch");yield{type:"startArray",length:o,line:n};for(let s of t.slice(r.cellIndex,r.cellIndex+o))yield{type:"primitive",value:Ct(s,n),line:n};r.cellIndex+=o,yield{type:"endArray",line:n}}function Lm(e,t,r){let n=e[t.cellIndex];if(n===void 0)throw ie(r,"array row length mismatch");return t.cellIndex++,n}function Gm(e,t,r,n,o,s,i){let a=t.filter(d=>d.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let l;for(let d=0;d<1<<a.length;d++){let c=new Set;a.forEach((p,g)=>{d&1<<g&&c.add(p)});let u=Wm(e,t,c,r,n,o,s,i);u!==void 0&&(l===void 0||u.consumed>l.consumed||u.consumed===l.consumed&&c.size<l.fields.size)&&(l={fields:c,consumed:u.consumed})}return l?.fields}function Wm(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u++){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!wa(p.content,n,p.number))return;let g=OT(t,r,Kn(p.content,n,p.number),n,o,l+1,i+1,a);if(g===void 0||o[g.nextIndex]?.depth>i)return;l=g.nextIndex,d+=g.consumed}let c=o[l];if(c!==void 0&&c.depth>=i&&wa(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumed:d}}function OT(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=Hm(r[l]);if(p===void 0)return;l++;let g=Gm(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Wm(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumed}else l+=_a(u.children);else l++;if(l>r.length)return}return l===r.length?{nextIndex:d,consumed:c}:void 0}function Hm(e){return e!==void 0&&/^(0|[1-9][0-9]*)$/.test(e)?Number(e):void 0}function _a(e){return e.reduce((t,r)=>t+Um(r),0)}function Um(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?_a(e.children):1}function DT(e){return e.reduce((t,r)=>t+(r.children===void 0?Um(r):1),0)}function wa(e,t,r){let n=ur(e,":",r);if(n===-1)return!0;let o=ur(e,t,r);return o!==-1&&o<n}function CT(e,t,r){return ie(e[t]?.number??e[e.length-1]?.number??r,"array length mismatch")}function FT(e){let t=0;for(;t<e.length&&e[t]===" ";)t++;return e[t]==="#"}var Ea=class{ctx;sourceByLine=new Map;number=0;blankPending=!1;firstLine=!0;constructor(t){this.ctx=t}push(t){let r=t;if(this.number++,this.sourceByLine.set(this.number,t),this.firstLine&&(r.startsWith("\uFEFF")&&(r=r.slice(1)),this.firstLine=!1),r.endsWith("\r")&&(r=r.slice(0,-1)),r=r.replace(/ +$/,""),r.trim()===""){this.blankPending=!0;return}if(FT(r))return;let n=0,o=0,s=0;for(;n<r.length&&(r[n]===" "||r[n]===" ");){if(r[n]===" "){if(this.ctx.strict)throw ie(this.number,"tab used as indentation");o++}else s++;n++}let i;if(s%this.ctx.indentSize===0)i=s/this.ctx.indentSize;else{if(this.ctx.strict)throw ie(this.number,"invalid indentation");i=Math.floor(s/this.ctx.indentSize)}i+=o,th(i,this.number,this.ctx);let a={number:this.number,depth:i,content:r.slice(n),blankBefore:this.blankPending};return this.blankPending=!1,a}};function*IT(e,t){for(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}async function*MT(e,t){for await(let r of e){let n=t.push(r);n!==void 0&&(yield n)}}var LT=/^(0|[1-9]\d*)$/;function ac(e,t){let r=ur(e,"[",t);if(r===-1)return null;let n=ur(e,":",t);if(n!==-1&&n<r)return null;let o=e.slice(0,r);if(o!==""&&/\s$/.test(o))throw ie(t,"whitespace between key and bracket segment");let s=e.indexOf("]",r);if(s===-1)return null;let i=e.slice(r+1,s),a=!1,l=",",d=i.indexOf(":");if(d!==-1){let b=i.slice(d+1);if(i=i.slice(0,d),a=!0,b===" "||b==="|")l=b;else if(b!=="")throw ie(t,"malformed bracket segment")}else(i.endsWith(" ")||i.endsWith("|"))&&(l=i.slice(-1),i=i.slice(0,-1));if(!LT.test(i))throw ie(t,"malformed array header length");let c=Number(i),u=e.slice(s+1),p;if(u.startsWith("{")){let b=Km(u,t);p=jT(u.slice(1,b),l,t),u=u.slice(b+1)}if(a&&p===void 0)throw ie(t,"keyed header requires a field list");if(!u.startsWith(":"))throw ie(t,"expected colon after array header");let g=Cr(u.slice(1));if((p!==void 0||a)&&g!=="")throw ie(t,"unexpected content after fields-bearing header colon");return{key:o===""?void 0:yn(o,t)[0],length:c,delimiter:l,fields:p,keyed:a,inline:g===""?void 0:g}}function Km(e,t){let r=0,n=!1;for(let o=0;o<e.length;o++){let s=e[o];if(n){s==="\\"?o++:s==='"'&&(n=!1);continue}if(s==='"')n=!0;else if(s==="{")r++;else if(s==="}"&&(r--,r===0))return o}throw ie(t,"malformed tabular header fields")}function jT(e,t,r){if(t!==","&&e.includes(",")&&(e.includes("[")||e.includes("{")))return xa(e,",",t,r);try{return xa(e,t,t,r)}catch(n){if(t===",")throw n;return xa(e,",",t,r)}}function xa(e,t,r,n){let o=[],s=0,i=0,a=0,l=!1,d=c=>{o.push($T(c,t,r,n))};for(let c=0;c<e.length;c++){let u=e[c];if(l){u==="\\"?c++:u==='"'&&(l=!1);continue}u==='"'?l=!0:u==="{"?i++:u==="}"?i--:u==="["?a++:u==="]"?a--:u===t&&i===0&&a===0&&(d(e.slice(s,c)),s=c+1)}return d(e.slice(s)),o}function $T(e,t,r,n){let o=Cr(e);if(o==="")throw ie(n,"empty field entry in header");let s=o.startsWith('"')?BT(o,n)+1:0,i=o.indexOf("{",s),a=o.indexOf("[",s),l=i===-1?a:a===-1?i:Math.min(i,a);if(l===-1)return{name:yn(o,n)[0]};let d=yn(o.slice(0,l),n)[0];if(l===a){let p=o.indexOf("]",a);if(p===-1||p!==o.length-1)throw ie(n,"invalid array header");let g=o.slice(a+1,p),f=/^(0|[1-9]\d*)(\t|\|)?$/.exec(g);if(f!==null){if((f[2]??",")!==r)throw ie(n,"invalid array header");return{name:d,fixedLength:Number(f[1])}}if(g.length!==1||g===r||/[ \t\r\n"[\]{}:]/.test(g))throw ie(n,"invalid array header");return{name:d,listDelimiter:g}}let c=Km(o.slice(i),n)+i;if(c!==o.length-1)throw ie(n,"malformed tabular header fields");if(c===i+1)throw ie(n,"invalid array header");let u=xa(o.slice(i+1,c),t,r,n);return{name:d,children:u}}function BT(e,t){for(let r=1;r<e.length;r++)if(e[r]==="\\")r++;else if(e[r]==='"')return r;throw ie(t,"invalid quoted string")}function lc(e){let t=0;for(let r of e)t+=r.children===void 0?1:lc(r.children);return t}function dc(e,t,r){let n=new Set;for(let o of e){if(n.has(o.name)&&r.strict)throw ie(t,"duplicate field name in header");n.add(o.name),o.children!==void 0&&dc(o.children,t,r)}}function Cr(e){let t=0,r=e.length;for(;t<r&&e[t]===" ";)t++;for(;r>t&&e[r-1]===" ";)r--;return e.slice(t,r)}function cc(e,t,r){if(Cr(e)==="")return[];let n=[],o=0,s=!1;for(let i=0;i<e.length;i++){let a=e[i];if(s){a==="\\"?i++:a==='"'&&(s=!1);continue}a==='"'?s=!0:a===t&&(n.push(Cr(e.slice(o,i))),o=i+1)}return n.push(Cr(e.slice(o))),n}var uc=Symbol("need line"),qm=2,oc=class{lines=[];ended=!1;previous;spanActive=0;*peek(t=0){if(t>=qm)throw new Error(`decoder lookahead exceeds ${qm} classified lines`);for(;!this.ended&&this.lines.length<=t;){let r=yield uc;r===void 0?this.ended=!0:this.lines.push(r)}return this.lines[t]}*take(t){let r=yield*this.peek();if(r===void 0)throw new Error("decoder attempted to read past end of input");if(this.lines.shift(),t.strict&&this.spanActive>0&&r.blankBefore)throw ie(r.number,"blank line inside a header span");return this.previous=r,r}lastNumber(t){return this.previous===void 0?t:this.previous.number}stop(){this.lines.length=0,this.ended=!0}};function Vm(e,t){return ur(e,":",t)!==-1}function zm(e,t){try{return yn(e,t)[0]}catch(r){if(e.startsWith('"'))throw r;return e}}function Jm(e){let t=e?.maxDepth??Vs;return{indentSize:e?.indentSize??e?.indent??2,strict:e?.strict??!0,objectArrayColumns:e?.objectArrayColumns??!0,maxDepth:t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t))}}function*Ym(e){let t=new oc,r=yield*t.peek();if(r===void 0){yield{type:"startObject",line:1},yield{type:"endObject",line:1};return}if(r.depth!==0)throw ie(r.number,"invalid indentation");if(yield*t.peek(1),r.content==="[]"){yield*t.take(e),yield{type:"startArray",length:0,line:r.number},yield{type:"endArray",line:r.number},yield*nc(t,e);return}let n=null,o=!1;try{n=ac(r.content,r.number)}catch(s){if(e.strict)throw s;o=!0}if(n!=null&&va(n.fields,r.number,e),n!=null&&!o&&n.key===void 0){yield*t.take(e),n.keyed?yield*eh(t,r,n,e):yield*pc(t,r,n,e),yield*nc(t,e);return}if((n===null||o)&&!Vm(r.content,r.number)&&(yield*t.peek(1))===void 0){yield*t.take(e),yield{type:"primitive",value:Ct(Cr(r.content),r.number),line:r.number};return}yield*Qm(t,0,r.number,e),yield*nc(t,e)}function*nc(e,t){let r=yield*e.peek();if(r!==void 0&&t.strict)throw ie(r.number,"expected end of document");e.stop()}function*Qm(e,t,r,n){yield{type:"startObject",line:r};let o=new Set;for(;;){let s=yield*e.peek();if(s===void 0||s.depth<t)break;if(s.depth>t)throw ie(s.number,"over-indented line");yield*e.take(n),yield*sc(e,s,s.content,t,n,o)}yield{type:"endObject",line:e.lastNumber(r)}}function*sc(e,t,r,n,o,s){let i=null;try{i=ac(r,t.number)}catch(c){if(o.strict)throw c;i=null}if(i!=null)if(va(i.fields,t.number,o),i.key===void 0){if(o.strict)throw ie(t.number,"keyless header is only valid at the root or as a list item");i=null}else{ic(s,i.key,t.number,o),yield{type:"key",key:i.key,line:t.number},i.keyed?yield*eh(e,{...t,depth:n},i,o):yield*pc(e,{...t,depth:n},i,o);return}let a=ur(r,":",t.number);if(a===-1)throw ie(t.number,"expected key-value line");let l=zm(Cr(r.slice(0,a)),t.number),d=Cr(r.slice(a+1));if(ic(s,l,t.number,o),yield{type:"key",key:l,line:t.number},d===""){let c=yield*e.peek();if(c!==void 0&&c.depth>n){if(c.depth!==n+1)throw ie(c.number,"over-indented line");yield*Qm(e,n+1,c.number,o)}else yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}if(d==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}yield{type:"primitive",value:Ct(d,t.number),line:t.number}}function ic(e,t,r,n){if(e.has(t)&&n.strict)throw ie(r,"duplicate object key");e.add(t)}function*pc(e,t,r,n){if(yield{type:"startArray",length:r.length,line:t.number},r.fields!==void 0){if(dc(r.fields,t.number,n),Xm(r.fields,n)){if(!n.objectArrayColumns&&Zm(r.fields))throw ie(t.number,"invalid array header");let i=[];for(;;){let a=yield*e.peek();if(a===void 0||a.depth<=t.depth)break;i.push(yield*e.take(n))}yield*jm(r.fields,i,r.length,r.delimiter,t.depth+1,t.number,n),yield{type:"endArray",line:e.lastNumber(t.number)};return}yield*GT(e,t,r,n);return}if(r.inline!==void 0){let i=cc(r.inline,r.delimiter,t.number);gc(i.length,r.length,t.number,"inline-form values",n);for(let a of i)yield{type:"primitive",value:Ct(a,t.number),line:t.number};yield{type:"endArray",line:t.number};return}let o=0;for(;;){let i=yield*e.peek();if(i===void 0||i.depth<=t.depth)break;if(i.depth!==t.depth+1)throw ie(i.number,"over-indented line");if(!i.content.startsWith("- ")&&i.content!=="-")break;yield*e.take(n),o===0&&e.spanActive++,o++,yield*NT(e,i,n)}o>0&&e.spanActive--;let s=e.lastNumber(t.number);if(n.strict&&o!==r.length)throw ie(s,`expected ${r.length} list items, but got ${o}`);yield{type:"endArray",line:s}}function Xm(e,t){return e.some(r=>r.listDelimiter!==void 0||r.fixedLength!==void 0||t.objectArrayColumns&&r.children!==void 0||r.children!==void 0&&Xm(r.children,t))}function Zm(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0&&Zm(t.children))}function*NT(e,t,r){if(t.content==="-"){yield{type:"startObject",line:t.number},yield{type:"endObject",line:t.number};return}let n=Cr(t.content.slice(2));if(n==="[]"){yield{type:"startArray",length:0,line:t.number},yield{type:"endArray",line:t.number};return}let o=null;try{o=ac(n,t.number)}catch(s){if(r.strict)throw s;o=null}if(o!=null&&o.key===void 0){if(va(o.fields,t.number,r),o.keyed||o.fields!==void 0){if(r.strict)throw ie(t.number,"keyless fields-bearing header is only valid at the root");yield{type:"primitive",value:Ct(n,t.number),line:t.number};return}yield*pc(e,t,o,r);return}if(o!=null&&o.key!==void 0||Vm(n,t.number)){yield{type:"startObject",line:t.number};let s=new Set;for(yield*sc(e,t,n,t.depth+1,r,s);;){let i=yield*e.peek();if(i===void 0||i.depth!==t.depth+1||i.content.startsWith("- ")||i.content==="-")break;yield*e.take(r),yield*sc(e,i,i.content,t.depth+1,r,s)}yield{type:"endObject",line:e.lastNumber(t.number)};return}yield{type:"primitive",value:Ct(n,t.number),line:t.number}}function*GT(e,t,r,n){let o=r.fields,s=lc(o),i=t.depth+1,a=0;for(;;){let d=yield*e.peek();if(d===void 0||d.depth<=t.depth)break;if(d.depth!==i)throw ie(d.number,"over-indented line");if(!WT(d.content,r.delimiter,d.number))break;yield*e.take(n),a===0&&e.spanActive++,a++;let c=cc(d.content,r.delimiter,d.number);gc(c.length,s,d.number,"row cells",n),yield*fc(o,c,{next:0},d.number)}a>0&&e.spanActive--;let l=e.lastNumber(t.number);if(n.strict&&a!==r.length)throw ie(l,`expected ${r.length} tabular rows, but got ${a}`);yield{type:"endArray",line:l}}function WT(e,t,r){let n=ur(e,":",r);if(n===-1)return!0;let o=ur(e,t,r);return o===-1?!1:o<n}function*fc(e,t,r,n){yield{type:"startObject",line:n};for(let o of e)if(yield{type:"key",key:o.name,line:n},o.children===void 0){let s=t[r.next++]??"";yield{type:"primitive",value:Ct(s,n),line:n}}else yield*fc(o.children,t,r,n);yield{type:"endObject",line:n}}function*eh(e,t,r,n){let o=r.fields;dc(o,t.number,n);let s=lc(o),i=t.depth+1;yield{type:"startObject",line:t.number};let a=new Set,l=0;for(;;){let c=yield*e.peek();if(c===void 0||c.depth<=t.depth)break;if(c.depth!==i)throw ie(c.number,"over-indented line");let u=ur(c.content,":",c.number);if(u===-1){if(n.strict)throw ie(c.number,"expected a keyed entry row");yield*e.take(n);continue}yield*e.take(n),l===0&&e.spanActive++,l++;let p=zm(Cr(c.content.slice(0,u)),c.number);ic(a,p,c.number,n),yield{type:"key",key:p,line:c.number};let g=cc(c.content.slice(u+1),r.delimiter,c.number);gc(g.length,s,c.number,"entry row cells",n),yield*fc(o,g,{next:0},c.number)}l>0&&e.spanActive--;let d=e.lastNumber(t.number);if(n.strict&&l!==r.length)throw ie(d,`expected ${r.length} entry rows, but got ${l}`);yield{type:"endObject",line:d}}function gc(e,t,r,n,o){if(o.strict&&e!==t)throw ie(r,`expected ${t} ${n}, but got ${e}`)}function th(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw ie(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function va(e,t,r,n=1){if(e!==void 0){th(n,t,r);for(let o of e)o.children!==void 0&&va(o.children,t,r,n+1)}}function*rh(e,t){let r=Jm(t),n=new Ea(r),o=IT(e,n),s=Ym(r),i=s.next();try{for(;!i.done;)if(i.value===uc){let a=o.next();i=s.next(a.done?void 0:a.value)}else yield i.value,i=s.next()}catch(a){throw oh(a,n)}finally{s.return(),o.return(void 0)}}async function*nh(e,t){let r=Jm(t),n=new Ea(r),o=MT(e,n),s=Ym(r),i=s.next();try{for(;!i.done;)if(i.value===uc){let a=await o.next();i=s.next(a.done?void 0:a.value)}else yield i.value,i=s.next()}catch(a){throw oh(a,n)}finally{s.return(),await o.return(void 0)}}function oh(e,t){return!(e instanceof hn)||e.source!==void 0?e:new jo(e.reason,{line:e.line,source:t.sourceByLine.get(e.line),cause:e})}function mc(e,t){return Symbol.asyncIterator in e?nh(e,t):rh(e,t)}var HT=/[\uD800-\uDFFF]/;function Wt(e){if(e===null)return null;if(qn(e))return e;if(typeof e=="object"&&e!==null&&"toJSON"in e&&typeof e.toJSON=="function"){let t=e.toJSON();if(t!==e)return Wt(t)}if(typeof e=="string")return sh(e,"string value"),e;if(typeof e=="boolean")return e;if(typeof e=="number")return Object.is(e,-0)?0:Number.isFinite(e)?e:null;if(typeof e=="bigint")return e>=Number.MIN_SAFE_INTEGER&&e<=Number.MAX_SAFE_INTEGER?Number(e):e.toString();if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(Wt);if(e instanceof Set)return Array.from(e,Wt);if(e instanceof Map){let t={};for(let[r,n]of e)Bo(t,String(r),Wt(n));return t}if($e(e)){let t={};for(let r of Object.keys(e))sh(r,"object key"),Bo(t,r,Wt(e[r]));return t}return null}function sh(e,t){if(HT.test(e))for(let r=0;r<e.length;r+=1){let n=e.charCodeAt(r);if(n<55296||n>57343)continue;let o=e.charCodeAt(r+1);if(n<=56319&&o>=56320&&o<=57343){r+=1;continue}throw new TypeError(`Cannot encode ${t} containing an unpaired surrogate U+${n.toString(16).toUpperCase()} at index ${r}`)}}function $e(e){if(e===null||typeof e!="object")return!1;let t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function Qt(e){return e===null||qn(e)||["string","number","boolean"].includes(typeof e)}function Bo(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function lh(e){if(!$e(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=UT(n,1);if(o===void 0)return e;Vn(t,r,o)}return t}function UT(e,t){if(!$e(e)||!qT(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw Rt(t);let s=KT(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every($e))throw dh(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Mm.has(u)){if(!Array.isArray(p)||!p.every($e))throw Rt(t);l.set(u,p)}if(l.size===0)throw Rt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw hc(t);let f=d.get(u)??0,b=g[f];if(b===void 0)throw hc(t);return d.set(u,f+1),VT(n,u,a[p],b,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw hc(t);return c}function qT(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function KT(e,t,r){if(!e.startsWith("cycle("))throw Rt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw Rt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw Rt(r);let a=s.split(",").map(c=>QT(c,r));if(a.some(c=>c===""))throw Rt(r);let l=YT(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw Rt(r);if(d!==t)throw dh(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function VT(e,t,r,n,o){let s={};Vn(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw Rt(o);Vn(s,i,a)}for(let[i,a]of Object.entries(zT(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw Rt(o);Vn(s,i,a)}return s}function zT(e,t){let r={};for(let[n,o]of Object.entries(e))JT(r,n.split("."),o,t);return Sa(r,t)}function JT(e,t,r,n){if(t.some(s=>s===""))throw Rt(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],!$e(o))throw Rt(n)}}function Sa(e,t){return Array.isArray(e)?e.map(r=>Sa(r,t)):$e(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw Rt(t);return Sa(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Sa(n,t)])):e}function YT(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw Rt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw Rt(t);return r}function QT(e,t){try{return decodeURIComponent(e)}catch{throw Rt(t)}}function ih(e){return encodeURIComponent(e)}function Rt(e){return ie(e,"invalid cyclic array wire")}function dh(e){return ie(e,"cyclic array length mismatch")}function hc(e){return ie(e,"cyclic array group length mismatch")}function ch(e){if(!$e(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=XT(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)rP(n,o,s);return n.join("")}function XT(e){if(!Array.isArray(e)||e.length===0||!e.every($e))return;let t=ZT(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=eP(r);if(n===void 0)return;let o=tP(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)&&!yc(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=oP(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 ZT(e){return Im.find(t=>e.every(r=>typeof r[t]=="string"))}function eP(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(ih).join(","),s=`cycle(${r.map(ih).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function tP(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(!nP(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>Ks(i[s])))break;r.push(s)}return r}function rP(e,t,r){e.push(kt(t),`:
|
|
9
|
+
`),e.push(" order: ",bt(r.order.encoded,zn),`
|
|
10
|
+
`),e.push(" discriminator: ",bt(r.discriminator,zn),`
|
|
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
|
|
15
|
-
`,t);if(r===-1){yield e.slice(t);return}yield e.slice(t,r),t=r+1}}function
|
|
16
|
-
`)}function
|
|
17
|
-
`)}return
|
|
18
|
-
`}function
|
|
19
|
-
`}function
|
|
20
|
-
`,f=()=>
|
|
21
|
-
`;return w+=
|
|
22
|
-
`},end(){return u?"":(u=!0,g())}}}var
|
|
23
|
-
`),
|
|
24
|
-
`)),e.positional&&e.positional.length>0){t.push(
|
|
25
|
-
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(
|
|
26
|
-
`),
|
|
27
|
-
`))}t.push(
|
|
28
|
-
`))}if(e.options&&Object.keys(e.options).length>0){t.push(
|
|
29
|
-
`));let n=
|
|
30
|
-
`))}return r}function
|
|
31
|
-
`),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
|
|
12
|
+
`),r.common.length>0&&ah(e,"common",r.common,r.commonRows);for(let n of r.groups)ah(e,n.label,n.fields,n.rows)}function ah(e,t,r,n){e.push(" ",kt(t),"[",String(n.length),zn,"]{",r.map(kt).join(zn),`}:
|
|
13
|
+
`);for(let o of n)e.push(" ",r.map(s=>bt(o[s],zn)).join(zn),`
|
|
14
|
+
`)}function nP(e){return e!==""&&bc(e)}function yc(e,t,r,n=new Set){if(!bc(t))return!1;if(Ks(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)=>yc(s,`${t}.${i}`,r,n));return n.delete(e),o}if($e(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&yc(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function oP(e){let t=Object.keys(e[0]??{});if(e.every(r=>sP(Object.keys(r),t)))return t.every(bc)?t:void 0}function sP(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function bc(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function kc(e,t){let r=Rc(e,t,[]),n=t("",r,[]);return n===void 0?r:Wt(n)}function Rc(e,t,r){return Array.isArray(e)?aP(e,t,r):$e(e)?iP(e,t,r):e}function iP(e,t,r){let n={};for(let[o,s]of Object.entries(e)){if(s===void 0)continue;let i=[...r,o],a=t(o,Rc(s,t,i),i);a!==void 0&&Bo(n,o,Wt(a))}return n}function aP(e,t,r){let n=[];for(let o=0;o<e.length;o+=1){let s=[...r,o],i=t(String(o),Rc(e[o],t,s),s);i!==void 0&&n.push(Wt(i))}return n}var uh=Symbol("unset");function ph(e){let t=[],r,n=uh,o=s=>{let i=t[t.length-1];i===void 0?n=s:Array.isArray(i)?i.push(s):Object.defineProperty(i,r,{value:s,enumerable:!0,writable:!0,configurable:!0})};for(let s of e)switch(s.type){case"startObject":{let i={};o(i),t.push(i);break}case"startArray":{let i=[];o(i),t.push(i);break}case"endObject":case"endArray":t.pop();break;case"key":r=s.key;break;case"primitive":o(s.value);break}return n===uh?{}:n}function fh(e,t){let r=ph(mc(e,t));return t?.reviver?kc(r,t.reviver):r}function wc(e,t){let{reviver:r,...n}=t??{},o=fh(lP(e),n),s=t?.cyclicDiscriminatedArrays===!0?lh(o):o;return r?kc(s,r):s}function*lP(e){let t=0;for(;;){let r=e.indexOf(`
|
|
15
|
+
`,t);if(r===-1){yield e.slice(t);return}yield e.slice(t,r),t=r+1}}function gh(e,t){let r=t("",e,[]);return r===void 0?_c(e,t,[]):xc(e,r,t,[])}function xc(e,t,r,n){return qn(t)&&(Array.isArray(e)||$e(e))?_c(e,r,n):_c(Wt(t),r,n)}function _c(e,t,r){return Array.isArray(e)?cP(e,t,r):$e(e)?dP(e,t,r):e}function dP(e,t,r){let n={};for(let[o,s]of Object.entries(e)){let i=[...r,o],a=t(o,s,i);a!==void 0&&Bo(n,o,xc(s,a,t,i))}return n}function cP(e,t,r){let n=[];for(let o=0;o<e.length;o+=1){let s=[...r,o],i=t(String(o),e[o],s);i!==void 0&&n.push(xc(e[o],i,t,s))}return n}function No(e,t={}){if(t.objectArrayColumns===!0){let o=mh(e);if(o!==void 0)return[{name:"values",fixedLength:o,self:!0}]}let r=Object.keys(e[0]??{});if(r.length===0)return;for(let o of e)if(!$e(o)||Object.keys(o).length!==r.length||r.some(s=>!Object.prototype.hasOwnProperty.call(o,s)))return;let n=[];for(let o of r){let s=e.map(a=>a[o]);if(s.every(Qt)){n.push({name:o});continue}if(t.primitiveArrayColumns===!0&&s.every(a=>Array.isArray(a)&&a.every(Qt))){n.push({name:o,listDelimiter:";"});continue}if(t.objectArrayColumns===!0&&s.every(Array.isArray)){let a=mh(s);if(a!==void 0){n.push({name:o,fixedLength:a});continue}let l=s.flat(),d=No(l,t);if(d!==void 0){n.push({name:o,children:d,childTable:!0});continue}}if(!s.every(a=>$e(a)&&Object.keys(a).length>0))return;let i=No(s,t);if(i===void 0)return;n.push({name:o,children:i})}return n}function Ta(e,t={}){let r=Object.values(e);if(!(r.length<2)&&r.every(n=>$e(n)&&Object.keys(n).length>0))return No(r,t)}function mh(e){let t=Array.isArray(e[0])?e[0].length:0;if(t!==0)return e.every(r=>Array.isArray(r)&&r.length===t&&r.every(Qt))?t:void 0}function Ze(e,t={}){return Array.from(hh(e,t)).join(`
|
|
16
|
+
`)}function hh(e,t={}){let r=t.delimiter??",";if(![",","|"," "].includes(r))throw new TypeError("invalid delimiter");let n=t.indentSize??t.indent??2,o=t.maxDepth??Vs,s=o===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(o)),i=Wt(e),a=t.replacer?gh(i,t.replacer):i,l={delimiter:r,indentSize:n,maxDepth:s,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0};if(t.cyclicDiscriminatedArrays===!0){let d=ch(a);if(d!==void 0)return d.trimEnd().split(`
|
|
17
|
+
`)}return uP(a,l)}function uP(e,t){if(Qt(e))return[bt(e,t.delimiter)];if(Array.isArray(e))return bh(void 0,e,0,t);let r=Ta(e,t);return r===void 0?Pa(e,0,t):yh(void 0,e,r,0,t)}function Pa(e,t,r){return Wo(t,r),Object.entries(e).flatMap(([n,o])=>pP(n,o,t,r))}function pP(e,t,r,n){let o=ct(r,n)+kt(e);if(Qt(t))return[`${o}: ${bt(t,n.delimiter)}`];if(Array.isArray(t))return bh(e,t,r,n);let s=Ta(t,n);if(s!==void 0)return yh(e,t,s,r,n);let i=[`${o}:`];return Object.keys(t).length>0&&i.push(...Pa(t,r+1,n)),i}function yh(e,t,r,n,o){Wo(n,o);let s=Object.entries(t);zs(r,n+1,o);let i=[ct(n,o)+pr(e,s.length,r,o.delimiter,!0)];for(let[a,l]of s){let d=Go(l,r,n+2,o);i.push(ct(n+1,o)+kt(a)+": "+d.cells),i.push(...d.children)}return i}function bh(e,t,r,n){Wo(r,n);let o=ct(r,n);if(t.length===0)return[e===void 0?`${o}[]`:`${o}${kt(e)}: []`];if(t.every(Qt))return[o+pr(e,t.length,void 0,n.delimiter)+" "+vc(t,n.delimiter)];let s=No(t,n);if(s!==void 0)return fP(e,t,s,r,n);let i=[o+pr(e,t.length,void 0,n.delimiter)];for(let a of t)i.push(...Ec(a,r+1,n));return i}function fP(e,t,r,n,o){zs(r,n+1,o);let s=[ct(n,o)+pr(e,t.length,r,o.delimiter)];for(let i of t){let a=Go(i,r,n+2,o);s.push(ct(n+1,o)+a.cells),s.push(...a.children)}return s}function Ec(e,t,r){Wo(t,r);let n=ct(t,r)+"-";if(Qt(e))return[`${n} ${bt(e,r.delimiter)}`];if(Array.isArray(e)){if(e.length===0)return[`${n} ${pr(void 0,0,void 0,r.delimiter)}`];if(e.every(Qt))return[`${n} ${pr(void 0,e.length,void 0,r.delimiter)} ${vc(e,r.delimiter)}`];let o=[`${n} ${pr(void 0,e.length,void 0,r.delimiter)}`];for(let s of e)o.push(...Ec(s,t+1,r));return o}return gP(e,t,r)}function gP(e,t,r){Wo(t,r);let n=Object.entries(e);if(n.length===0)return[ct(t,r)+"-"];let[[o,s],...i]=n,a=mP(o,s,t,r),l;if(a!==void 0)l=a;else if(Qt(s))l=[ct(t,r)+"- "+kt(o)+": "+bt(s,r.delimiter)];else if(Array.isArray(s))if(s.length===0)l=[ct(t,r)+"- "+kt(o)+": []"];else{l=[ct(t,r)+"- "+pr(o,s.length,void 0,r.delimiter)];for(let d of s)l.push(...Ec(d,t+2,r))}else l=[ct(t,r)+"- "+kt(o)+":"],Object.keys(s).length>0&&l.push(...Pa(s,t+2,r));return i.length>0&&l.push(...Pa(Object.fromEntries(i),t+1,r)),l}function mP(e,t,r,n){if(Array.isArray(t)&&t.length>0&&t.every(Qt))return[ct(r,n)+"- "+pr(e,t.length,void 0,n.delimiter)+" "+vc(t,n.delimiter)];if(Array.isArray(t)&&t.every($e)){let o=No(t,n);if(o!==void 0){zs(o,r+1,n);let s=[ct(r,n)+"- "+pr(e,t.length,o,n.delimiter)];for(let i of t){let a=Go(i,o,r+3,n);s.push(ct(r+2,n)+a.cells),s.push(...a.children)}return s}}if($e(t)){let o=Ta(t,n);if(o!==void 0){zs(o,r+1,n);let s=Object.entries(t),i=[ct(r,n)+"- "+pr(e,s.length,o,n.delimiter,!0)];for(let[a,l]of s){let d=Go(l,o,r+3,n);i.push(ct(r+2,n)+kt(a)+": "+d.cells),i.push(...d.children)}return i}}}function pr(e,t,r,n,o=!1){let s=e===void 0?"":kt(e),i=o?":":"",a=n===","?"":n,l=r===void 0?"":`{${kh(r,n)}}`;return`${s}[${t}${i}${a}]${l}:`}function kh(e,t){return e.map(r=>{let n=kt(r.name);if(r.listDelimiter!==void 0)return`${n}[${r.listDelimiter}]`;if(r.fixedLength!==void 0){let o=t===","?"":t;return`${n}[${r.fixedLength}${o}]`}return n+(r.children===void 0?"":`{${kh(r.children,t)}}`)}).join(t)}function Go(e,t,r,n){let o=[],s=[];for(let i of t){let a=i.self===!0?e:e[i.name];if(i.childTable===!0){o.push(String(a.length));for(let l of a){let d=Go(l,i.children??[],r+1,n);s.push(ct(r,n)+d.cells,...d.children)}}else if(i.fixedLength!==void 0)o.push(...a.map(l=>bt(l,n.delimiter)));else if(i.listDelimiter!==void 0)o.push(a.map(l=>hP(l,n.delimiter,i.listDelimiter)).join(i.listDelimiter));else if(i.children!==void 0){let l=Go(a,i.children,r,n);o.push(l.cells),s.push(...l.children)}else o.push(bt(a,n.delimiter))}return{cells:o.join(n.delimiter),children:s}}function hP(e,t,r){return typeof e!="string"?bt(e,t):rc(e,t)||e.includes(r)?Ra(e):e}function vc(e,t){return e.map(r=>bt(r,t)).join(t)}function ct(e,t){return" ".repeat(e*t.indentSize)}function Wo(e,t){if(t.maxDepth!==0&&e>t.maxDepth)throw ie(0,`maximum nesting depth exceeded (maxDepth ${t.maxDepth})`)}function zs(e,t,r){Wo(t,r);for(let n of e)n.children!==void 0&&zs(n.children,t+1,r)}var Th=[Xr,"|"," "];var Ph=8,Ah=/^[A-Za-z0-9_-]+$/,yH=new TextEncoder,bH=new TextDecoder;function bP(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Oe(t,"invalid trailer count");return Number.parseInt(r,10)}function Oh(e,t){if(!Ah.test(e))throw Oe(t,"invalid tag")}function kP(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!Ah.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Oe(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function RP(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Oe(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(!Th.includes(i)&&i!=="")throw Oe(t,"invalid header delimiter");let a=i===""?Xr:i,l=r.slice(n+1),d=null;if(!s&&l.startsWith("<")){let p=l.indexOf(">");if(p===-1)throw Oe(t,"invalid tag");if(d=l.slice(1,p),Oh(d,t),i!=="")throw Oe(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Oe(t,"invalid header");let c=l.slice(1,-2),u;try{u=Kn(c,a,t).map(p=>yn(p,t)[0])}catch(p){throw $o(p)}if(u.length===0||u.some(p=>p===""))throw Oe(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function wP(e,t,r){if(e===null||e.delimiter===void 0)throw Oe(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Oe(r,"continuation header mismatch")}function Rh(e,t,r,n){let o;try{o=Kn(e,t,n)}catch(s){throw $o(s)}if(o.length!==r)throw Oe(n,"row arity mismatch");for(let s of o)try{Ct(s,n)}catch(i){throw $o(i)}return o}function _P(e,t,r){let n={};return e.forEach((o,s)=>{try{Vn(n,o,Ct(t[s],r))}catch(i){throw $o(i)}}),n}function xP(e,t,r){if(e.startsWith("- "))throw Oe(t,"reserved line prefix");let n=bP(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Oe(t,"trailer without header");if(r.rowCount!==n)throw Oe(t,"trailer count mismatch");return{kind:"trailer"}}let o=RP(e,t);if(o!==null)return o.continuation?(wP(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=kP(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Oe(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:Rh(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Oe(t,"row before header");return{kind:"row",cells:Rh(e,r.delimiter,r.fields.length,t)}}function EP(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let b=s.at(-1);if(b!==void 0&&b.lane===g.lane&&b.delimiter===g.delimiter&&b.fieldText===g.fieldText){b.rows.push(f);return}s.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function c(){i!==null&&o.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function u(g,f,b){let h=n.get(g);if(h===void 0){if(n.size>=Ph)throw Oe(b,"too many tagged lanes");h={segments:[],current:null},n.set(g,h),r.push(g)}else h.current!==null&&h.segments.push(h.current);h.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},h.delimiter=f.delimiter,h.fields=f.fields,h.fieldText=f.fieldText}if(Am(e).forEach((g,f)=>{let b=f+1;if(g==="")return;let h=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},_=xP(g,b,h);if(_.kind==="trailer"){c(),i=null;return}if(_.kind!=="continuation"){if(_.kind==="tag-header"){l=!0,u(_.header.tag,_.header,b);return}if(_.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:_.header.delimiter,fields:_.header.fields,fieldText:_.header.fieldText,rows:[]};return}if(_.kind==="tagged-row"){l=!0;let w=n.get(_.tag).current;w.rows.push(_.cells),d(w,_.cells);return}if(i===null)throw Oe(b,"row before header");i.rows.push(_.cells),d(i,_.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 wt(e){return EP(e).flatMap(t=>t.rows.map(r=>_P(t.fields,r,0)))}function vP(e){if(!Th.includes(e))throw Oe(0,"invalid header delimiter")}function wh(e,t,r=!1){return`[${`${r?"~":""}${e===Xr?"":e}`}]{${t}}:
|
|
18
|
+
`}function _h(e,t){return`[]<${e}>{${t}}:
|
|
19
|
+
`}function Sc(e,t){return t.map(kt).join(e)}function SP(e){if(!Array.isArray(e)||e.length===0)throw Oe(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=yn(String(t),0)}catch(n){throw $o(n)}if(r==="")throw Oe(0,"TOONL header requires fields");return r})}function xh(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Eh(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Oe(0,"TOONL continuation cadence must be positive")}function TP(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function vh(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Oe(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Oe(0,"TOONL output requires object rows");if(t.some(r=>!Ks(e[r])))throw Oe(0,"TOONL rows must be flat objects");return t}function PP(e){return JSON.stringify([...e].sort())}function Sh(e,t){let r=PP(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function Ue({delimiter:e=Xr,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){vP(e),Eh(r),Eh(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}]
|
|
20
|
+
`,f=()=>TP(p,l,d)?(l=0,d=0,wh(e,s,!0)):"",b=h=>{Oh(h,0);let _=c.get(h);if(_===void 0){if(c.size>=Ph)throw Oe(0,"too many tagged lanes");_={fields:null,fieldsByShape:new Map},c.set(h,_)}return _};return{push(h){if(u)throw Oe(0,"TOONL encoder is closed");let _=Sh(vh(h),i),w="";(o===null||o.length!==_.length||o.some((O,$)=>O!==_[$]))&&(w+=g(),o=_,s=Sc(e,o),a=0,l=0,d=0,w+=wh(e,s));let A=o.map(O=>bt(h[O],e));w+=f();let x=`${A.join(e)}
|
|
21
|
+
`;return w+=x,a+=1,l+=1,d+=x.length,w},declareLane(h,_){if(u)throw Oe(0,"TOONL encoder is closed");let w=SP(_),A=Sc(Xr,w),x=b(h);return xh(x.fields,w)?"":(x.fields=w,_h(h,A))},pushTagged(h,_){if(u)throw Oe(0,"TOONL encoder is closed");let w=b(h),A=Sh(vh(_),w.fieldsByShape),x=Sc(Xr,A),O=A.map(L=>bt(_[L],Xr)),$="";return xh(w.fields,A)||(w.fields=A,$+=_h(h,x)),`${$}${h}:${O.join(Xr)}
|
|
22
|
+
`},end(){return u?"":(u=!0,g())}}}var Xt=wc;function Aa(e){let t={app:e,version:AP(Ho("__RED_BUILD_VERSION__",()=>"3.17.5")??"0.0.0-dev"),gitSha:Ho("__RED_BUILD_GIT_SHA__",()=>"1b8c7bb79f64279b5e326439de06c5c0d7ea8db9")??"unknown",buildTime:Ho("__RED_BUILD_TIME__",()=>"2026-08-12T19:33:46-03:00")??"unknown",bundleAsset:Ho("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=Ho("__REDDB_SDK_VERSION__",()=>""),n=Ho("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function AP(e){return e.startsWith("v")?e.slice(1):e}function Dh(e){return`${e.app} ${e.version} ${e.gitSha}`}function Ho(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Ch={"=":"data",":=":{to:"data",typed:!0},":":"meta"},OP=/^[a-z][a-z0-9+.-]*:\/\//i;function DP(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 CP(e=Ch){return Object.entries(e).map(([t,r])=>DP(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function FP(e){return/^-\d+(\.\d+)?$/.test(e)}function Js(e){return!(!e||e.startsWith("-")&&!FP(e))}function Oa(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 Fh(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=>Fh(r.trim())):e}function Jn(e,t){switch(t){case"boolean":return IP(e);case"number":return MP(e);case"array":return e.split(",").map(r=>Oa(r.trim()));case"string":default:return e}}function IP(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function MP(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 bn(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function LP(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Fe(e,t){return{type:e,value:t}}function jP(e){let t=[],r=BP(e);if(t.push(Fe("section-header","Usage:"),Fe("text"," "),Fe("usage-text",r),Fe("newline",`
|
|
23
|
+
`),Fe("newline",`
|
|
24
|
+
`)),e.positional&&e.positional.length>0){t.push(Fe("section-header","Arguments:"),Fe("newline",`
|
|
25
|
+
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Fe("indent"," "),Fe("positional-name",`<${o}>`)),n.required||t.push(Fe("positional-optional"," (optional)")),t.push(Fe("newline",`
|
|
26
|
+
`),Fe("indent"," "),Fe("option-description",n.description),Fe("newline",`
|
|
27
|
+
`))}t.push(Fe("newline",`
|
|
28
|
+
`))}if(e.options&&Object.keys(e.options).length>0){t.push(Fe("section-header","Options:"),Fe("newline",`
|
|
29
|
+
`));let n=NP(e.options);t.push(...n)}return t}function $P(e,t){let r=jP(e);return LP(r,t)}function BP(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 NP(e,t=!1){let r=[],n=[],o=t?"global-option-flag":"option-flag",s=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[d,c]of Object.entries(e)){if(c.hidden)continue;let u=[],p=b=>{u.includes(b)||u.push(b)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let b of c.aliases??[])b.length===1?p(`-${b}`):p(`--${b}`);let g=u.join(", "),f=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:g,type:f,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(d=>d.flags.length+(d.type?d.type.length+1:0)),20);for(let d of n){let c=d.flags.length+(d.type?d.type.length+1:0),u=" ".repeat(l-c+2);r.push(Fe("indent"," ")),r.push(Fe(o,d.flags)),d.type&&(r.push(Fe("text"," ")),r.push(Fe(s,d.type))),r.push(Fe("text",u)),r.push(Fe(a,d.desc)),d.default!==void 0&&(r.push(Fe("text"," ")),r.push(Fe(i,`(default: ${d.default})`))),r.push(Fe("newline",`
|
|
30
|
+
`))}return r}function Ih(e){let t=VP(e.options??{},e.autoShort??!1),r=CP(e.separators??Ch);return{schema:e,parse(n){return GP(n,e,t,r)},help(){return $P(e,e.formatter)}}}function GP(e,t,r,n){let o={positional:{},options:{},errors:[],rest:[]},s=new Set(n.map(c=>c.to));for(let c of s)o[c]={};let i=0,a=t.positional??[],l=0,d=!1;for(;l<e.length;){let c=e[l];if(t.stopEarly&&i>0){o.rest=e.slice(l);break}if(c==="--"&&!d){d=!0,l++;continue}if(d){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;l<e.length;){let f=e[l];g.push(p.type?Jn(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Jn(c,p.type):c;o.positional[p.name]=g,i++,l++}}else t.allowUnknown!==!1&&(o.rest=o.rest??[],o.rest.push(c)),l++;continue}if(c.startsWith("--")){l=qP(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!XP(c)){l=KP(c,l,e,o,r,t);continue}let u=WP(c,n);if(u){let{key:p,value:g,config:f}=u,b=o,h=b[f.to]??(b[f.to]={});h[p]=f.typed?Fh(g):bn(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let b=e[l];f.push(p.type?Jn(b,p.type):b),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Jn(c,p.type):c;o.positional[p.name]=g,i++}else t.allowUnknown!==!1?o.rest.push(c):o.errors.push(`Unexpected positional argument: ${c}`);l++}return JP(o,t,r),YP(o,t,a),QP(o,t,r),o}function WP(e,t){if(OP.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(HP(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(UP(o,s,r))return{key:o,value:s,config:r}}}return null}function HP(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function UP(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 qP(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 Da(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return Js(l)?Da(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 KP(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=Tc(l,o);return c?Da(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=Oa(bn(d))),t+1)}if(i.length===1){let a=Tc(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return Js(l)?Da(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(Js(l))return n.options[i]=Oa(bn(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=Tc(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 Da(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Jn(bn(t),i.type):bn(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Jn(bn(t),i.type):bn(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]=Oa(bn(t)));return r}function VP(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=zP(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 zP(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 Tc(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function JP(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let o=process.env[n.env];e.options[n.name]=n.type?Jn(o,n.type):o}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function YP(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 QP(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 XP(e){return/^-\d+(\.\d+)?$/.test(e)}var Pc=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 ZP(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 eA(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&&Js(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 Zr(e,t,r={}){let o=Ih({options:ZP(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=eA(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 Pc(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 Ac=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 Mh(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 Ac(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as IA,closeSync as MA,mkdirSync as LA,openSync as jA,readFileSync as $A,readSync as BA,statSync as NA}from"node:fs";import{dirname as Zh,join as GA}from"node:path";var Lh="RED_WORKER_SCOPE",jh="RED_WORKER_MEMORY_CEILING",$h="RED_WORKER_SCOPE_DEGRADATION",tA="RED_WORKER_ID",rA="RED_WORKER_BORN_AT",Dc={scope:null,memory_ceiling:null,scope_degradation:null};function Cc(e){return{scope:Oc(e[Lh]),memory_ceiling:Oc(e[jh]),scope_degradation:Oc(e[$h])}}function Bh(e,t){let r={};return t!=null&&(r[tA]=t.worker_id,r[rA]=t.born_at),e.scope!=null&&e.scope!==""&&(r[Lh]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(r[jh]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(r[$h]=e.scope_degradation),r}function Oc(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as sA,readdirSync as iA,readFileSync as Hh,rmSync as aA,writeFileSync as lA}from"node:fs";import{basename as dA,join as qo}from"node:path";import{isAbsolute as aU,join as Ca,resolve as lU}from"node:path";function nA(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var Nh="deaths",Gh="deaths.toonl";function Fa(e){return Ca(nA(e),Nh)}function Uo(e){return Ca(Fa(e),Gh)}var Ys="live",Wh="attributions.toonl";function Ia(e){return Ca(Fa(e),Ys)}function Fc(e){return Ca(Fa(e),Wh)}var Mc=qo("sys","kernel","random","boot_id"),Uh=1;function Lc(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:Uh,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:qh(qo(r,Mc)),cgroup:cA(r,n),last_phase:e.last_phase}}function qh(e){try{let t=Hh(e,"utf8").trim();return t===""?null:t}catch{return null}}function cA(e,t){let r=qh(qo(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
|
|
31
|
+
`),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 jc(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function $c(e,t){let r=qo(e,jc(t));try{return sA(e,{recursive:!0,mode:448}),lA(r,Ue({trailer:!1}).push(pA(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function Yn(e,t){try{aA(qo(e,jc(t)),{force:!0})}catch{}}function Bc(e,t){let r;try{r=iA(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=qo(e,o);try{let a=wt(Hh(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(uA(a))}catch(i){t?.(dA(s),i instanceof Error?i.message:String(i))}}return n}function uA(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:Ic(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:Ic(e.pid),ppid:Ic(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 Ic(e){return typeof e=="number"?e:Number(e)}function pA(e){return{...e}}import{execFile as fA}from"node:child_process";import{renameSync as gA,rmSync as mA,statSync as yU,writeFileSync as hA}from"node:fs";import{readdir as yA,readFile as bA,rename as kA,rm as Vh,stat as RA,writeFile as wA}from"node:fs/promises";import{join as _A}from"node:path";import{promisify as xA}from"node:util";var EA=xA(fA),fr=.5,vA=5e3,_U=256*1024*1024,kn=1024*1024,Kh=14*24*60*60*1e3,Tt={"process-deaths":{maxBytes:4*kn,maxAgeMs:Kh,targetRatio:fr},"github-spend":{maxBytes:8*kn,targetRatio:fr},"github-balance":{maxBytes:64*1024,targetRatio:fr},"github-balance-history":{maxBytes:2*kn,targetRatio:fr},"castle-singleton-events":{maxBytes:2*kn,targetRatio:fr},"rsp-telemetry-spool":{maxBytes:8*kn,targetRatio:fr},"rsp-telemetry-corrections":{maxBytes:kn,targetRatio:fr},"death-attributions":{maxBytes:kn,maxAgeMs:Kh,targetRatio:fr},"worker-log":{maxLines:5e4,targetRatio:fr},"worker-liveness":{maxBytes:kn,targetRatio:fr},"castle-history":{maxLines:1e4,targetRatio:fr}};function zh(e){let t=e.maxBytes;if(t!==void 0&&(!Number.isSafeInteger(t)||t<0))throw new Error("lane retention maxBytes must be a non-negative safe integer");return t}function Jh(e){return e.code==="ENOENT"}async function Ma(e,t,r,n=RA){let o=zh(r);if(o===void 0)return!1;let s=0;try{s=(await n(e)).size}catch(i){if(!Jh(i))throw i}return s+t>o}function Yh(e,t,r){let n=zh(r);return n!==void 0&&e+t>n}async function SA(e,t,r){try{return await EA("tq",["trim","--keep-last",String(t),"--in-place",e],{timeout:r,windowsHide:!0}),!0}catch{return!1}}function TA(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("lane retention keepLast must be a non-negative safe integer")}function PA(e){if(e.length===0)return"";let t=Ue({trailer:!1});return e.map(r=>t.push(r)).join("")}async function AA(e,t){let r=`${e}.retaining-${process.pid}`;try{await wA(r,t,{encoding:"utf8",mode:384}),await kA(r,e)}finally{await Vh(r,{force:!0})}}function La(e,t){let r=`${e}.retaining-${process.pid}`;try{hA(r,t,{encoding:"utf8",mode:384}),gA(r,e)}finally{mA(r,{force:!0})}}async function ja(e,t,r={}){TA(t);let n=r.timeoutMs??vA;if(await(r.runTq??SA)(e,t,n))return"tq";let s=await bA(e,"utf8"),i=s.endsWith(`
|
|
32
32
|
`)?s:s.slice(0,s.lastIndexOf(`
|
|
33
|
-
`)+1),a=i===""?[]:
|
|
34
|
-
`),r.append(e,n),t}function
|
|
33
|
+
`)+1),a=i===""?[]:wt(i),l=t===0?[]:a.slice(-t);return await AA(e,PA(l)),"js"}function OA(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}var DA=/\.(?:rotate|retaining)-(\d+)(?:-|$)/,CA=/rsp-telemetry\.spool\.(?:toonl|jsonl)\.(\d+)\.\d+\.drain$/;function FA(e){let t=DA.exec(e)??CA.exec(e);return t===null?null:Number(t[1])}async function Qh(e,t={}){let r=[],n=[],o=t.isPidAlive??OA,s=async i=>{let a;try{a=await yA(i,{withFileTypes:!0})}catch(l){if(Jh(l))return;throw l}for(let l of a){let d=_A(i,l.name);if(l.isDirectory()){await s(d);continue}if(!l.isFile())continue;let c=FA(l.name);if(c!==null){if(await o(c)){n.push(d);continue}await Vh(d,{force:!0}),r.push(d)}}};return await s(e),r.sort(),n.sort(),{removed:r,preserved:n}}var WA=1,HA=Tt["process-deaths"].maxAgeMs,Gc=Tt["process-deaths"].maxBytes,ey=Tt["process-deaths"].targetRatio,UA=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function qA(e){return typeof e=="string"&&UA.has(e)}var KA="startup";function VA(e,t){return{...e.scope??Dc,version:WA,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 zA(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 $a={mkdir(e){LA(e,{recursive:!0,mode:448})},inspect(e){let t;try{t=NA(e).size}catch(n){if(n.code==="ENOENT")return{size:0,endsClean:!0};throw n}if(t===0)return{size:t,endsClean:!0};let r;try{r=jA(e,"r");let n=Buffer.allocUnsafe(1);return BA(r,n,0,1,t-1),{size:t,endsClean:n[0]===10}}catch{return{size:t,endsClean:!0}}finally{r!==void 0&&MA(r)}},append(e,t){IA(e,t,{encoding:"utf8",mode:384})},replace(e,t){La(e,t)},read(e){return $A(e,"utf8")}};function ty(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function JA(e,t,r=$a){let n=Ue({trailer:!1}).push(ty(t)),o=Buffer.byteLength(n),s=r.inspect(e),i=s.endsClean?0:1,a=Date.parse(t.ts),l=Number.isFinite(a)?a:Date.now(),d=!1;if(Yh(s.size,i+o,Tt["process-deaths"])){let c=Math.max(0,Math.floor(Gc*ey)-o);ny(e,l,r,c),d=!0}return r.mkdir(Zh(e)),!d&&!s.endsClean&&s.size>0&&r.append(e,`
|
|
34
|
+
`),r.append(e,n),t}function ry(e,t=Date.now(),r=$a){return ny(e,t,r)}function ny(e,t,r,n){let o,s;try{o=r.read(e),s=Wc(o)}catch(u){if(u.code==="ENOENT")return[];throw u}let i=t-HA,a=s.filter(u=>{let p=Date.parse(u.ts);return!Number.isFinite(p)||p>=i}),l=Buffer.byteLength(o)>Gc,d=n??(l?Math.floor(Gc*ey):void 0),c=d===void 0?a:YA(a,d);return n===void 0&&!l&&c.length===s.length||r.replace(e,oy(c)),c}function YA(e,t){let r=new Set,n=[];e.forEach((a,l)=>{Number.isFinite(Date.parse(a.ts))?n.push(l):r.add(l)});let o=0,s=n.length;for(;o<s;){let a=Math.floor((o+s)/2),l=new Set([...r,...n.slice(a)]),d=e.filter((c,u)=>l.has(u));Buffer.byteLength(oy(d))<=t?s=a:o=a+1}let i=new Set([...r,...n.slice(o)]);return e.filter((a,l)=>i.has(l))}function oy(e){if(e.length===0)return"";let t=Ue({trailer:!1});return e.map(r=>t.push(ty(r))).join("")}function Wc(e){let t=e.endsWith(`
|
|
35
35
|
`)?e:e.slice(0,e.lastIndexOf(`
|
|
36
|
-
`)+1);return t===""?[]:
|
|
37
|
-
`).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:
|
|
36
|
+
`)+1);return t===""?[]:wt(t).map(QA)}function QA(e){let t=e.exit_path;if(!qA(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:Zt(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:Zt(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:Zt(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:Zt(e.uptime_s),rss_kb:Zt(e.rss_kb),max_rss_kb:Zt(e.max_rss_kb),user_cpu_us:Zt(e.user_cpu_us),system_cpu_us:Zt(e.system_cpu_us),minor_page_faults:Zt(e.minor_page_faults),major_page_faults:Zt(e.major_page_faults),voluntary_ctx_switches:Zt(e.voluntary_ctx_switches),involuntary_ctx_switches:Zt(e.involuntary_ctx_switches)}}function Zt(e){return typeof e=="number"?e:Number(e)}function sy(e,t=$a){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return Wc(r)}var XA=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],Nc=null;function iy(e){let t=e.host??process,r=e.io??$a,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??Cc(process.env),i=e.phase??KA,a=null,l=e.presenceDir===void 0?GA(Zh(e.lanePath),Ys):e.presenceDir,d=null,c=()=>{l!==null&&(d=Lc({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),$c(l,d))},u=h=>{if(!a){try{a=JA(e.lanePath,VA({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...h},zA(t)),r)}catch{}l!==null&&d!==null&&Yn(l,d)}},p={signal(h){u({exit_path:"signal",signal:h})},exit(h){u({exit_path:"exit",exit_code:h})},uncaughtException(h){u({exit_path:"uncaught-exception",detail:Xh(h)})},unhandledRejection(h){u({exit_path:"unhandled-rejection",detail:Xh(h)})}},f=[...(e.signals??XA).map(h=>{let _=()=>{if(p.signal(h),!(t.listenerCount?.(h)!==1||!t.kill)){t.off(h,_);try{t.kill(o,h)}catch{}}};return[h,_]}),["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,_]of f)t.on(h,_);let b={lanePath:e.lanePath,phase(h){i=h,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[h,_]of f)t.off(h,_);l!==null&&d!==null&&Yn(l,d),Nc===b&&(Nc=null)},handlers:p};return e.setActive!==!1&&(Nc=b),c(),b}function Xh(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as ZA,readdirSync as eO,readFileSync as Ba,statSync as tO}from"node:fs";import{join as fy}from"node:path";var rO=1,nO=Tt["death-attributions"].maxAgeMs,ay=Tt["death-attributions"].maxBytes,oO=Tt["death-attributions"].targetRatio,sO=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],iO=512*1024;function aO(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??sO,n=[],o=fy(t,Mc),s=null;try{let l=Ba(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:Hc(l),detail:null})}let i=new Set;try{for(let l of eO(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:Hc(l),detail:null})}let a=[];for(let l of r)try{let c=lO(l,e.tailBytes??iO).split(`
|
|
37
|
+
`).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:Hc(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Hc(e){return e.code==="ENOENT"?"absent":"unreadable"}function lO(e,t){let r=tO(e).size,n=Ba(e,"utf8");return r<=t?n:n.slice(n.length-t)}var dO=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,cO=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,uO=/Killed (\/\S*) due to memory pressure/,pO=/\bopid=(\d+)\b/,ly=/\bsig=(\d+)\b/,fO=/\buid=(\d+)\b/,gO=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,mO={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function hO(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:rO,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=>dy(u,e.pid,dO)||dy(u,e.pid,cO));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=uO.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(pO.exec(u)?.[1])===e.pid&&ly.test(u));if(d!==void 0){let u=Number(ly.exec(d)?.[1]),p=fO.exec(d)?.[1];return i("user-signal",o?"medium":"high",mO[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=>gO.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 dy(e,t,r){return Number(r.exec(e)?.[1])===t}var gy=" | ";function cy(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(gy)}function uy(e){return e===""?[]:e.split(gy)}function yO(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:cy(e.evidence),checked:cy(e.checked)}}function Uc(e){let t=Ue({trailer:!1});return e.map(r=>t.push(yO(r))).join("")}function bO(e){let t=e.endsWith(`
|
|
38
38
|
`)?e:e.slice(0,e.lastIndexOf(`
|
|
39
|
-
`)+1);return t===""?[]:
|
|
40
|
-
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=
|
|
39
|
+
`)+1);return t===""?[]:wt(t).map(r=>{let n=r.kind;if(n!=="launcher"&&n!=="worker"&&n!=="daemon")throw new Error(`attribution has unknown kind ${String(n)}`);return{version:py(r.version),ts:String(r.ts),kind:n,id:String(r.id),pid:py(r.pid),last_seen:String(r.last_seen),last_phase:String(r.last_phase),sender_class:String(r.sender_class),confidence:String(r.confidence),signal:r.signal==null?null:String(r.signal),host_boot_changed:r.host_boot_changed===!0||r.host_boot_changed==="true",evidence:uy(String(r.evidence??"")),checked:uy(String(r.checked??""))}})}function my(e){let t=Ia(e.stateRoot),r=Fc(e.stateRoot),o=(e.now??(()=>new Date().toISOString()))(),s=e.evidence??aO({procRoot:e.procRoot,journalPaths:e.journalPaths}),i=[],a=Bc(t,g=>i.push(g)),l=sy(Uo(e.stateRoot)),d=[],c=[],u=[];for(let g of a){if(s.live_pids.has(g.pid)){c.push(g);continue}if(l.find(b=>b.pid===g.pid&&b.id===g.id)!==void 0){u.push(g),Yn(t,g);continue}d.push(hO(g,s,l,o)),Yn(t,g)}let p=Date.parse(o);return Number.isFinite(p)&&ry(Uo(e.stateRoot),p),d.length>0&&kO(r,d,Number.isFinite(p)?p:Date.now()),{attributions:d,alive:c,self_recorded:u,skipped:i,laneText:()=>{try{return Ba(r,"utf8")}catch{return""}}}}function hy(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 kO(e,t,r){try{ZA(fy(e,".."),{recursive:!0,mode:448});let n=wO(e),o=[...bO(n),...t],s=RO(o,r);La(e,Uc(s))}catch{}}function RO(e,t){let r=t-nO,n=e.filter(c=>{let u=Date.parse(c.ts);return!Number.isFinite(u)||u>=r});if(Buffer.byteLength(Uc(n))<=ay)return n;let o=Math.floor(ay*oO),s=new Set,i=[];n.forEach((c,u)=>{Number.isFinite(Date.parse(c.ts))?i.push(u):s.add(u)});let a=0,l=i.length;for(;a<l;){let c=Math.floor((a+l)/2),u=new Set([...s,...i.slice(c)]),p=n.filter((g,f)=>u.has(f));Buffer.byteLength(Uc(p))<=o?l=c:a=c+1}let d=new Set([...s,...i.slice(a)]);return n.filter((c,u)=>d.has(u))}function wO(e){try{return Ba(e,"utf8")}catch{return""}}function py(e){return typeof e=="number"?e:Number(e)}import{join as _O}from"node:path";var xO=[".red","redskilled"],en=448;function Ft(e){return _O(e,...xO)}import{randomUUID as A_}from"node:crypto";import{spawn as v$}from"node:child_process";import{mkdir as S$}from"node:fs/promises";import{dirname as T$}from"node:path";import{createHash as SO}from"node:crypto";import{constants as Jc}from"node:fs";import{mkdir as vy,open as TO,readFile as PO,rm as Sy,stat as AO}from"node:fs/promises";import{createConnection as OO}from"node:net";import{tmpdir as DO}from"node:os";import{dirname as Ty,join as Qs}from"node:path";var EO="toon";function ky(e){return e.trimStart().startsWith("{")?"json":"toon"}function Kc(e){let t=0;for(;e[t]===`
|
|
40
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=ky(r);if(n==="json"){let s=r.indexOf(`
|
|
41
41
|
`);return s<0?null:{frame:r.slice(0,s),dialect:n,rest:r.slice(s+1)}}let o=r.indexOf(`
|
|
42
42
|
|
|
43
|
-
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function
|
|
43
|
+
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function Vc(e){let t=ky(e)==="json"?qc:yy,r=t===qc?yy:qc;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function qc(e){return JSON.parse(e)}function yy(e){return Xt(e)}function zc(e,t){if(t==="toon"){let r=vO(e);if(r!==null)return r.endsWith(`
|
|
44
44
|
`)?`${r}
|
|
45
45
|
`:`${r}
|
|
46
46
|
|
|
47
47
|
`}return`${JSON.stringify(e)}
|
|
48
|
-
`}function
|
|
49
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await
|
|
50
|
-
`,1)[0]?.trim()??"";if(!t.startsWith(vy))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 TO(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 yO(e)).mtimeMs)}catch{return null}}function Ke(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var PO="/tmp";function Ba(e){let t=e.env??process.env,r=gO("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Ys(l,e.socketFileName).length<RO,o=t.XDG_RUNTIME_DIR;if(o){let l=Ys(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Ys(`red-skills-${s}`,r),a=Ys(kO(),i);return n(a)||process.platform==="win32"?a:Ys(PO,i)}tn();import{homedir as QO}from"node:os";import{join as su}from"node:path";import{spawnSync as XO}from"node:child_process";import{createHash as ZO}from"node:crypto";import{existsSync as eC,readdirSync as tC}from"node:fs";import{mkdir as Ly,readFile as rC,rename as nC,writeFile as oC}from"node:fs/promises";import{dirname as sC}from"node:path";var Qn="@reddb-io/red-skills",BO="https://registry.npmjs.org",NO="canary",Yn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},GO=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function eu(e){return typeof e=="string"&&GO.test(e.trim())}function Dy(e){return`${e}-.bundle.min.mjs`}var WO=".unversioned";function HO(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!eu(t))throw new Yn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Dy(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 Ha(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return Zs(n,HO(t,r,o))}function UO(e){return e==="dev"?["rsp","rsp-core","redskilled"]:[]}function qO(e){return`${e}.bundle.min.mjs`}function KO(e){return Zs("dist",qO(e))}function VO(e,t="stable"){return`${Qn}@${t==="canary"?NO:e}`}function tu(e=Qn){return`${BO}/${e.replace("/","%2F")}`}async function ru(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=Ha({plugin:r,version:n,cacheDir:o,channel:s}),a=UO(r),l=a.map(p=>Ha({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await JO(e,l))return i;let d=VO(n,s),c=Zs(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw My(p,d)}for(let p of[r,...a]){let g=KO(p),f=Zs(u,g);if(!await e.exists(f))throw new Yn("bundle-missing",`npm package ${d} has no ${g}`);let b=p===r?i:Ha({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(b,await e.readFile(f))}return await zO(e,o,[r,...a]),i}async function zO(e,t,r){if(e.rename)for(let n of r){let o=Zs(t,Dy(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${WO}`)}catch{}}}async function JO(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function Fy(e,t,r=Qn){let n;try{n=await e.fetchText(tu(r))}catch(s){throw My(s,r)}let o=nu(n);return{sameMajor:YO(o,t),newest:ou(o)}}function nu(e){let t;try{t=JSON.parse(e)}catch{return[]}if(typeof t!="object"||t===null)return[];let r=t.versions;return typeof r!="object"||r===null?[]:Object.keys(r)}function YO(e,t){let r=Zc(t);if(r===null)return null;let n=null;for(let o of e)Zc(o)===r&&(n===null||Iy(o,n)>0)&&(n=o);return n}function ou(e){let t=null;for(let r of e){let n=String(r).trim();Zc(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||Iy(n,t)>0)&&(t=n)}return t}function Zc(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function Iy(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 My(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Yn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Yn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Yn("network",`failed to resolve ${t}: ${r}`,e)}function Zs(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}tn();var jy={async materialize(e,t){await Ly(t,{recursive:!0});let r=XO("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 su(t,"node_modules",...Qn.split("/"))},async readFile(e){return new Uint8Array(await rC(e))},async writeFile(e,t){await Ly(sC(e),{recursive:!0}),await oC(e,t)},async exists(e){return eC(e)},sha256(e){return ZO("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 nC(e,t)}},iC="redskilled";function aC(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||su(e.HOME||QO(),".cache");return su(t,"red-skills","bundles")}var lC=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function dC(e,t){if(eu(e.version))return e.version.trim();let r=e.listCacheDir??pC,n=cC(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??jy).fetchText(tu());return ou(nu(s))}catch{return null}}function cC(e,t){let r=null;for(let n of e){let o=lC.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||uC(s,r)>0)&&(r=s)}return r}function uC(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 pC(e){try{return tC(e)}catch{return[]}}async function fC(e={},t={},r={}){let n=bn(e,t);if(Ir(n))return n;let o=r.env??t.env??process.env,s=aC(o),i=await dC(r,s);if(i===null)return n;try{await ru(r.bundleIO??jy,{plugin:iC,version:i,cacheDir:s})}catch{return n}return bn(e,t)}async function $y(e={},t={},r={}){let n=await fC(e,t,r);if(Ir(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(tn(),Cy));throw new o(n)}var qo=3e5,By=1e4,Ny=6e4,Gy=15e3,iu=3e4,Wy=iu*2,Hy=6e4,ei=16;function Uy(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 au(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var qy="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as s_}from"node:crypto";import{mkdir as Zj,rm as e$}from"node:fs/promises";import{dirname as t$}from"node:path";var gC=["worker_id","slot","workspace_path","log_path"],Ua=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${gC.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},Ky=/\{\{([a-z_]+)\}\}/g;function mC(e,t){let r=(i,a)=>i.replace(Ky,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new Ua(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function Vy(e,t){if(!(e==null||e.trim()===""))return e.replace(Ky,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new Ua(n,"the log path")}})}function qa(e,t,r){let n=mC(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 Ka(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 Va(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 za(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}import{appendFile as hC,mkdir as yC,open as bC,readFile as kC,rename as RC,rm as wC,stat as Zy,truncate as Yy,writeFile as _C}from"node:fs/promises";import{dirname as xC}from"node:path";var zy="daemon:";function lu(e){return uu("daemon-stop",e,e.reason,e.signal)}function du(e){return uu("daemon-start",e,"started",null)}function cu(e){return uu("daemon-death",e,e.reason??"silent-death",null)}function uu(e,t,r,n){return{version:1,ts:t.ts,kind:e,event:e,worker_id:`${zy}${t.pid}`,project_label:"",pid:t.pid,workspace_path:t.socketPath,fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:t.detail,exit_code:null,signal:n??null,reason:r}}function Jy(e){let t=[],r=[],n=null;for(let[o,s]of e.entries()){if(/^\[\d*\]\{.*\}:$/.test(s)){n=s;continue}if(n==null){r.push(o+1);continue}try{t.push(..._t(`${n}
|
|
48
|
+
`}function vO(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=Ze(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function Ry(e,t){return!by(e)||!by(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function by(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var wy=new Set;function _y(e){return wy.has(e)?"json":EO}function xy(e){wy.add(e)}var CO=108;async function Na(e,t,r="resident server"){let n=e.wire,o=n??_y(e.socketPath),s=await Ey(e,t,r,o);return n||o==="json"||!Ry(t,s)?s:(xy(e.socketPath),await Ey(e,t,r,"json"))}async function Ey(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=OO(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(zc(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Kc(d);g&&(d=g.rest,u(()=>{try{s(Vc(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 Py(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Kc(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(zc(a,s.dialect))}catch{}};(async()=>{let a;try{a=Vc(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function FO(e){await vy(Ty(e),{recursive:!0,mode:448});try{return await TO(e,Jc.O_CREAT|Jc.O_EXCL|Jc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var IO=6e4,Ay="resident-spawn-lock v1",MO=3;async function Oy(e,t={}){let r=t.maxAgeMs??IO,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??qe;await vy(Ty(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await FO(e);if(l)return await l.writeFile(`${Ay} pid=${o} taken=${new Date(n()).toISOString()}
|
|
49
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await jO(e),c=await BO(e,d,n());if(a>=MO||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=LO(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 Sy(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function Dy(e){await e.handle.close().catch(()=>{}),await Sy(e.lockPath,{force:!0})}function LO(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function Cy(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 jO(e){try{return $O(await PO(e,"utf8"))}catch{return null}}function $O(e){let t=e.split(`
|
|
50
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(Ay))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 BO(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 AO(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 NO="/tmp";function Ga(e){let t=e.env??process.env,r=SO("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Qs(l,e.socketFileName).length<CO,o=t.XDG_RUNTIME_DIR;if(o){let l=Qs(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Qs(`red-skills-${s}`,r),a=Qs(DO(),i);return n(a)||process.platform==="win32"?a:Qs(NO,i)}rn();import{homedir as dD}from"node:os";import{join as au}from"node:path";import{spawnSync as cD}from"node:child_process";import{createHash as uD}from"node:crypto";import{existsSync as pD,readdirSync as fD}from"node:fs";import{mkdir as Ny,readFile as gD,rename as mD,writeFile as hD}from"node:fs/promises";import{dirname as yD}from"node:path";var Xn="@reddb-io/red-skills",QO="https://registry.npmjs.org",XO="canary",Qn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},ZO=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function ru(e){return typeof e=="string"&&ZO.test(e.trim())}function Ly(e){return`${e}-.bundle.min.mjs`}var eD=".unversioned";function tD(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!ru(t))throw new Qn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Ly(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 qa(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return ei(n,tD(t,r,o))}function rD(e){return e==="dev"?["rsp","rsp-core","redskilled"]:[]}function nD(e){return`${e}.bundle.min.mjs`}function oD(e){return ei("dist",nD(e))}function sD(e,t="stable"){return`${Xn}@${t==="canary"?XO:e}`}function nu(e=Xn){return`${QO}/${e.replace("/","%2F")}`}async function ou(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=qa({plugin:r,version:n,cacheDir:o,channel:s}),a=rD(r),l=a.map(p=>qa({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await aD(e,l))return i;let d=sD(n,s),c=ei(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw By(p,d)}for(let p of[r,...a]){let g=oD(p),f=ei(u,g);if(!await e.exists(f))throw new Qn("bundle-missing",`npm package ${d} has no ${g}`);let b=p===r?i:qa({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(b,await e.readFile(f))}return await iD(e,o,[r,...a]),i}async function iD(e,t,r){if(e.rename)for(let n of r){let o=ei(t,Ly(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${eD}`)}catch{}}}async function aD(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function jy(e,t,r=Xn){let n;try{n=await e.fetchText(nu(r))}catch(s){throw By(s,r)}let o=su(n);return{sameMajor:lD(o,t),newest:iu(o)}}function su(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 lD(e,t){let r=tu(t);if(r===null)return null;let n=null;for(let o of e)tu(o)===r&&(n===null||$y(o,n)>0)&&(n=o);return n}function iu(e){let t=null;for(let r of e){let n=String(r).trim();tu(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||$y(n,t)>0)&&(t=n)}return t}function tu(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function $y(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 By(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Qn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Qn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Qn("network",`failed to resolve ${t}: ${r}`,e)}function ei(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}rn();var Gy={async materialize(e,t){await Ny(t,{recursive:!0});let r=cD("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 au(t,"node_modules",...Xn.split("/"))},async readFile(e){return new Uint8Array(await gD(e))},async writeFile(e,t){await Ny(yD(e),{recursive:!0}),await hD(e,t)},async exists(e){return pD(e)},sha256(e){return uD("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 mD(e,t)}},bD="redskilled";function kD(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||au(e.HOME||dD(),".cache");return au(t,"red-skills","bundles")}var RD=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function wD(e,t){if(ru(e.version))return e.version.trim();let r=e.listCacheDir??ED,n=_D(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??Gy).fetchText(nu());return iu(su(s))}catch{return null}}function _D(e,t){let r=null;for(let n of e){let o=RD.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||xD(s,r)>0)&&(r=s)}return r}function xD(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 ED(e){try{return fD(e)}catch{return[]}}async function vD(e={},t={},r={}){let n=Rn(e,t);if(Ir(n))return n;let o=r.env??t.env??process.env,s=kD(o),i=await wD(r,s);if(i===null)return n;try{await ou(r.bundleIO??Gy,{plugin:bD,version:i,cacheDir:s})}catch{return n}return Rn(e,t)}async function Wy(e={},t={},r={}){let n=await vD(e,t,r);if(Ir(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(rn(),My));throw new o(n)}var Ko=3e5,Hy=1e4,Uy=6e4,qy=15e3,lu=3e4,Ky=lu*2,Vy=6e4,ti=16;function zy(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 du(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var Jy="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as y_}from"node:crypto";import{mkdir as g$,rm as m$}from"node:fs/promises";import{dirname as h$}from"node:path";var SD=["worker_id","slot","workspace_path","log_path"],Ka=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${SD.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},Yy=/\{\{([a-z_]+)\}\}/g;function TD(e,t){let r=(i,a)=>i.replace(Yy,(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 Ka(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 Qy(e,t){if(!(e==null||e.trim()===""))return e.replace(Yy,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new Ka(n,"the log path")}})}function Va(e,t,r){let n=TD(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 za(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 Ja(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 Ya(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}import{appendFile as PD,mkdir as AD,open as OD,readFile as DD,rename as CD,rm as FD,stat as nb,truncate as eb,writeFile as ID}from"node:fs/promises";import{dirname as MD}from"node:path";var Xy="daemon:";function cu(e){return Qa("daemon-stop",e,e.reason,e.signal)}function uu(e){return Qa("daemon-start",e,"started",null)}function pu(e){return Qa("daemon-death",e,e.reason??"silent-death",null)}function fu(e){return Qa("daemon-takeover-failed",e,"successor-boot-failed",null)}function Qa(e,t,r,n){return{version:1,ts:t.ts,kind:e,event:e,worker_id:`${Xy}${t.pid}`,project_label:"",pid:t.pid,workspace_path:t.socketPath,fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:t.detail,exit_code:null,signal:n??null,reason:r}}function Zy(e){let t=[],r=[],n=null;for(let[o,s]of e.entries()){if(/^\[\d*\]\{.*\}:$/.test(s)){n=s;continue}if(n==null){r.push(o+1);continue}try{t.push(...wt(`${n}
|
|
51
51
|
${s}
|
|
52
|
-
`))}catch{r.push(o+1)}}return{records:t,malformed:r}}var
|
|
53
|
-
`);if(t.pop(),t.length===0)return[];let{records:r,malformed:n}=Jy(t);return n.length>0&&console.warn(`redskilled event lane skipped ${n.length} malformed row(s) at line ${n.join(", ")}`),r.filter(FC).map(IC)}function Ya(e){let t=new Map;for(let r of e)eb.includes(r.kind)||(r.kind==="worker-birth"?t.set(r.worker_id,DC(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function DC(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,...e.pgid==null?{}:{pgid:e.pgid},...e.proc_start_time==null?{}:{proc_start_time:e.proc_start_time},started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function ob(e){return{...e}}function FC(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...EC,...eb].includes(t)}function IC(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:ot(e.project_label)??"",pid:Number(e.pid??0),...e.pgid==null||e.pgid===""?{}:{pgid:Number(e.pgid)},...ot(e.proc_start_time)==null?{}:{proc_start_time:ot(e.proc_start_time)},workspace_path:ot(e.workspace_path)??"",fork_sha:ot(e.fork_sha),log_path:ot(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:ot(e.unit),memory_high:ot(e.memory_high),memory_max:ot(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:ot(e.admission_verdict),phase:ot(e.phase),step:ot(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:ot(e.runner),model:ot(e.model),base_head_sha:ot(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:ot(e.heal_kind),detail:ot(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:ot(e.signal),reason:ot(e.reason)}}function ot(e){return e==null||e===""?null:String(e)}function sb(e,t){if(e!==void 0){if(!fu(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function fu(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.counter_labels;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(n=>typeof n=="string"&&n!=="")&&(t.creator===void 0||typeof t.creator=="string")&&(r===void 0||r!==null&&typeof r=="object"&&typeof r.ready=="string"&&r.ready!==""&&typeof r.human=="string"&&r.human!=="")}var MC=3e5,LC=.5,gu=class extends Error{constructor(r){super(`redskilled already holds a registration for project ${JSON.stringify(r.project_label)}, registered at ${r.registered_at} for a target of ${r.target} and standing until ${r.renew_by}: a project contributes one registration, so a second one is refused rather than silently replacing the first`);this.held=r;this.name="RedskilledProjectRegisteredError"}};function ib(e,t){if(t.held!=null)throw new gu(t.held);let r=ti(e.project_label,"a project label"),n=ti(e.selector,"a selector"),o=sb(e.queue_poll,r),s=Ka(e.argv,r),i=za(e.env,r),a=Va(e.log_path,r),l=BC(e.hooks,r),d=ti(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:ti(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:ti(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)}`);if(e.standing!==void 0&&typeof e.standing!="boolean")throw new Error(`redskilled needs standing intent for project ${JSON.stringify(r)} to be boolean, not ${JSON.stringify(e.standing)}`);let u=e.renew_within_ms??MC;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,...e.standing===!0?{standing:!0}:{},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 Xn=class extends Error{constructor(r,n={kind:"never"}){super(jC(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function jC(e,t){let r=JSON.stringify(e);if(t.kind==="lapsed"){let n=t.registered_at==null?"":` (registered ${t.registered_at})`;return`redskilled holds no registration for project ${r} to renew: it lapsed at ${t.at}${n}; renewal stopped \u2014 find why before registering it again`}return t.kind==="stopped"?`redskilled holds no registration for project ${r} to renew: it was stopped at ${t.at}; this is the requested state, so there is nothing to renew`:t.kind==="orphaned"?`redskilled holds no registration for project ${r} to renew: it is registered on a daemon this socket does not reach \u2014 do not register it again`:`redskilled holds no registration for project ${r} to renew: it was never registered on this host; register it first, stating the selector, the argv and the target`}function ab(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to date a renewal, not ${JSON.stringify(t.now)}`);let n=t.renew_within_ms??e.renew_within_ms;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled needs a positive renewal window to renew project ${JSON.stringify(e.project_label)}, not ${JSON.stringify(t.renew_within_ms)}`);let o=t.launch==null?{env:e.env??{},launch_revision:e.launch_revision??0}:{argv:Ka(t.launch.argv,e.project_label),env:za(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Va(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 mu(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 $C(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Vo(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*LC;if(n(r))return"renewing";let o=e.sustained_at==null?Number.NaN:Date.parse(e.sustained_at);return n(o)?"self-renewing":"running-on"}function lb(e,t){let r=[],n=[];for(let o of e)($C(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function ri(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||fu(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||GC(t.trunk))&&Number.isInteger(t.target)&&(t.standing===void 0||typeof t.standing=="boolean")&&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||db(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||NC(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 BC(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(!Ko.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${Ko.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:Ka(s.argv,t),env:za(s.env,t),...s.log_path==null?{}:{log_path:Va(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function NC(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!Ko.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||db(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 GC(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 db(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function ti(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}function cb(e,t,r){let n=Date.parse(r),o=new Set([...t].map(l=>l.project_label)),s=[],i=[],a=[];for(let l of e){let d=Date.parse(l.renew_by),c=Number.isFinite(n)?Vo(l,n):"renewing";if(!Number.isFinite(d)||c!=="running-on"||o.has(l.project_label)){s.push(l);continue}a.push(l),(l.standing===!0||!Number.isFinite(n)||n-d<=l.renew_within_ms)&&i.push(l)}return{live:s,recoverable:i,abandoned:a}}async function ub(e){let t=[...e.laneEvents].reverse().find(o=>o.kind==="daemon-start"||o.kind==="daemon-death"||o.kind==="daemon-stop"),r=t?.kind==="daemon-start"?{pid:t.pid,socketPath:t.workspace_path}:t==null&&e.heldLease!=null&&e.heldLease.pid!==e.ownerPid?{pid:e.heldLease.pid,socketPath:e.heldLease.socket_path}:null;r!=null&&await e.eventLane.recordDaemonDeath({ts:e.startedAt,pid:r.pid,socketPath:r.socketPath,detail:`redskilled recovered after daemon ${r.pid} left no stop record`,reason:"silent-death"}),(e.recovery.live.length+e.recovery.abandoned.length>0||r!=null)&&await e.eventLane.recordDaemonStart({ts:e.startedAt,pid:e.ownerPid,socketPath:e.socketPath,detail:`redskilled boot read the host registration intent store: recovered ${e.recovery.live.length} live, lapsed ${e.recovery.abandoned.length} abandoned`})}import{randomUUID as pb}from"node:crypto";import{rm as WC}from"node:fs/promises";import{connect as HC,createServer as UC}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 hu(e,t=250){return await new Promise(r=>{let n=HC(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 fb(e,t){for(let r=0;r<2;r++){let n=UC();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 hu(e)!=="unowned")throw new Zt(e);if(await t?.())throw new Zt(e);await WC(e,{force:!0})}}throw new Zt(e)}async function Ht(e,t=250){try{return(await $a({socketPath:e,timeoutMs:t},{id:pb(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function gb(e,t){Ey(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??pb(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function mb(e){let t=new Map;return function(n,o){let s=t.get(n.worker_id);if(s!=null)return s;let i=(async()=>{let a=!1;try{a=await e(n)===!0}catch{}return o(a),a})().finally(()=>{t.get(n.worker_id)===i&&t.delete(n.worker_id)});return t.set(n.worker_id,i),i}}function xb(e){return{generated_at:e.now,hour:yb("hour",36e5,e),day:yb("day",864e5,e),history_48h:qC(e)}}function qC(e){let t=kn(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=KC(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=>kn(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:hb(i),tickets_per_hour:hb(l)}}function KC(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=kn(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],b=Math.min(f+36e5,r),y=Math.max(0,Math.min(c.at,b)-Math.max(d.at,f));y!==0&&(a[g].tokens+=p*(y/u),a[g].duration+=y)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function hb(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Zn(e,t,r){let n=kn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=kn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function yb(e,t,r){let n=kn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:kn(u.observed_at)})).filter(u=>u.at!=null&&Rb(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>kn(u.ts)).filter(u=>u!=null&&Rb(u,o,n)),l=bb(i,u=>u.tokens,"tokens",s),d=bb(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:VC(a.length,t,s),runner_share:kb("runner",i,u=>u.runner,s),model_share:kb("model",i,u=>u.model,s),unavailable:c}}function bb(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function VC(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function kb(e,t,r,n){let o=new Map;for(let d of t){let c=r(d.observation);c!=null?o.set(d.observation.worker_id,c):o.has(d.observation.worker_id)||o.set(d.observation.worker_id,null)}let s=new Map,i=0,a=0;for(let d of o.values()){if(d==null){a+=1;continue}i+=1,s.set(d,(s.get(d)??0)+1)}let l=[...s.entries()].map(([d,c])=>({key:d,worker_count:c,share:c/i})).sort((d,c)=>c.worker_count-d.worker_count||d.key.localeCompare(c.key));return{dimension:e,attributed_workers:i,unattributed_workers:a,shares:l,absent_reason:l.length>0?null:o.size===0?`no Worker was observed in the last ${n}`:`no Worker published a ${e} in the last ${n}`}}function Rb(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function kn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Eb(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&_b(t.hour)&&_b(t.day)&&(t.history_48h===void 0||zC(t.history_48h))}function zC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&wb(t.tokens_per_hour)&&wb(t.tickets_per_hour)}function wb(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function _b(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&yu(t.tokens_per_min)&&yu(t.tools_per_min)&&yu(t.issues_per_hour)&&Array.isArray(t.unavailable)}function yu(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.value===null||typeof t.value=="number")&&(t.absent_reason===null||typeof t.absent_reason=="string")&&Number.isInteger(t.samples)}function vb(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Zn([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function Sb(e,t){return Zn(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as Ab,totalmem as YC}from"node:os";function zo(e){if(e.applied_budget!=null)return e.applied_budget;let t=e.budget??{};return t.memory_max==null&&t.memory_high==null&&e.memory_ceiling!=null?{...t,memory_max:e.memory_ceiling}:t}function Tb(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=zo(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=Jo(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:JC(e.length,n,a,l)}}function JC(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 Jo(e){let t=/^\s*(\d+(?:\.\d+)?)\s*([KMGT]?)(?:B)?\s*$/i.exec(e);if(!t)return null;let r={"":1,k:1024,m:1024**2,g:1024**3,t:1024**4}[t[2].toLowerCase()];return Math.round(Number(t[1])*r)}function Pb(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Number.isInteger(t.worker_count)&&typeof t.memory_high_bytes=="number"&&typeof t.memory_max_bytes=="number"&&typeof t.cpu_weight_total=="number"&&Array.isArray(t.unaccounted_workers)&&Array.isArray(t.unisolated_workers)}var Ob="REDSKILLED_MEMORY_CEILING",ku="REDSKILLED_WORKER_CEILING",Ib="REDSKILLED_VALIDATION_CEILING",Cb="REDSKILLED_INTERACTIVE_RESERVATION",ni=1,Db=.7,QC=2*1024**3,XC=2;function Mb(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Jo(t)}function Xa(e){let t=0,r=[];for(let n of e){let o=Mb(n.budget);o===null?r.push(n.worker_id):o!==void 0&&(t+=o)}return{worker_count:e.length,memory_bytes:t,unaccounted_workers:r.sort()}}function Lb(e){let{ceiling:t}=e,r=Xa(e.workers),n=Mb(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??ni),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function jb(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=Xa(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 (${ku} 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 Za(e=process.env,t=YC(),r={}){let n=bu(r.flags?.memoryCeiling,e[Ob],r.config?.memoryCeiling),o=bu(r.flags?.workerCeiling,e[ku],r.config?.workerCeiling),s=bu(r.flags?.validationCeiling,e[Ib],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Cb]??"").trim(),d=$b(a),c=l===""?ni:tD(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!ZC(a)&&(Qa(`redskilled: ${Ru(o)} ${ku}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=eD(i,t);if(p!==void 0)return Fb({memory_bytes:p,worker_count:d,interactive_reservation:c??ni,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Ab());Qa(`redskilled: ${Ru(n)} ${Ob}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Db*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&Qa(`redskilled: ${Cb}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${ni} Worker(s) instead.`),Fb({memory_bytes:Math.floor(t*Db),worker_count:d,interactive_reservation:c??ni,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Ab())}function Fb(e,t,r){if(t!==void 0){let i=$b(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};Qa(`redskilled: ${Ru(t)} ${Ib}=${JSON.stringify(t.value)} is not a positive integer; deriving the validation ceiling from host CPU, memory, and Worker capacity instead.`)}let n=Math.max(1,Math.floor(Math.max(1,r)/XC)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/QC)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function bu(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 Ru(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function ZC(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var Qa=e=>process.stderr.write(`${e}
|
|
54
|
-
`);function eD(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)):Jo(e)??void 0}function $b(e){if(e===""||["infinity","none","off","unbounded"].includes(e.toLowerCase()))return null;let t=Number(e);return Number.isSafeInteger(t)&&t>0?t:null}function tD(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}function Bb(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target-a),d));if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,b=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:b,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let y=0;y<b;y+=1)(s[y]??(s[y]=[])).push({project_label:i.project_label,index:a+y,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Nb(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Gb(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var oi={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Wb(e,t,r){if(t>=6e4)return oi;let n=e.shortLifeStreak+1;return!(e.haltUntilMs!=null||e.probeWorkerId!=null)&&n<3?{shortLifeStreak:n,haltUntilMs:null,openedAtMs:null,probeWorkerId:null}:{shortLifeStreak:n,haltUntilMs:r+6e5,openedAtMs:r,probeWorkerId:null}}function Hb(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function wu(){return oi}function rD(e,t,r){if(t.haltUntilMs==null||t.openedAtMs==null)return null;let n=r>=t.haltUntilMs;return{name:"project-birth-breaker",project_label:e,state:n?"half-open":"open",opened_at:new Date(t.openedAtMs).toISOString(),reason:`${t.shortLifeStreak} Workers from this project died before surviving 60000ms`,closes:n?t.probeWorkerId==null?"the next demand tick admits one probe Worker; surviving the short-life window closes the latch":`probe Worker ${JSON.stringify(t.probeWorkerId)} surviving 60000ms closes the latch; a fast death re-opens it with a fresh cooldown`:`the cooldown ends at ${new Date(t.haltUntilMs).toISOString()}, then one probe Worker is admitted; surviving the short-life window closes the latch`,probe_worker_id:t.probeWorkerId,repair:{tool:"project_reset",args:{latch:"project-birth-breaker"},why:"clear the project's birth-breaker history and allow the next demand tick to birth normally"}}}function Ub(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>rD(r,n,t)).filter(r=>r!=null)}function qb(e){let t=e.workers.map(nD),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:sD({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length,uncontained:t.filter(o=>o.survives&&!o.contained).length})}}function Kb(e){return{version:1,running:!1,stopped:!1,reason:"not-running",socket_path:e,daemon_version:null,pid:null,holding:{workers:[],projects:[]},surviving:[],detail:`no redskilled daemon is answering on ${JSON.stringify(e)}, so there was nothing to stop`}}function Vb(e){let t=e.stopped?"SIGTERM stopped that holder and released the socket":`SIGTERM was sent, but the holder did not finish stopping${e.pending==null||e.pending.length===0?"":`: ${e.pending.join(", ")}`}`;return{version:1,running:!0,stopped:e.stopped,reason:"unreachable",socket_path:e.socketPath,daemon_version:null,pid:e.pid,holding:{workers:[],projects:[]},surviving:[],detail:`redskilled pid ${e.pid} was alive and held ${JSON.stringify(e.socketPath)}, but it did not answer a ping, so stop signalled it directly; ${t}. Its held Workers and version could not be read`}}function nD(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,contained:e.isolated,survives:!0}}function oD(e){return e==="requested"?"an operator asked for it":e==="signal"?"the daemon was signalled":e==="idle"?"the daemon was idle and held nothing":e==="replaced"?"a newer published bundle is taking the session over":e==="unreachable"?"the daemon held the socket but could not be reached":"no daemon was running"}function sD(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${oD(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${_u(e.held,"Worker")} across ${_u(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 ${_u(e.uncontained,"uncontained survivor")} ${e.uncontained===1?"runs":"run"} as detached process groups outside an init-system unit`}function _u(e,t){return`${e} ${t}${e===1?"":"s"}`}function xu(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&r.workers.every(n=>n!=null&&typeof n=="object"&&!Array.isArray(n)&&typeof n.contained=="boolean")&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as iD,mkdir as aD,readFile as lD,rm as dD,writeFile as cD}from"node:fs/promises";import{dirname as zb,join as Xb}from"node:path";import{tmpdir as Jb}from"node:os";var uD="redskilled.machine.claim.toon",vu="REDSKILLED_MACHINE_DIR",pD=8,rn=class extends Error{constructor(r,n,o){super(gD(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},Yb;function el(){return Yb??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},Yb}function fD(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[vu]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||Jb():Jb();return Xb(o,`redskilled-${e.machineIdHash}`)}function tl(e){return Xb(fD(e),uD)}function si(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ke;async function s(){let l;try{l=await lD(e,"utf8")}catch(c){if(c.code==="ENOENT"||Eu(c))return;throw c}let d=hD(l);return yD(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 dD(e,{force:!0}),!0}catch(l){if(Eu(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await aD(zb(e),{recursive:!0,mode:1023})!=null&&await iD(zb(e),1023).catch(()=>{});let c=!1;for(let u=0;u<pD;u+=1){let p=i(l,n());try{return await cD(e,mD(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Eu(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(Qb(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||!Qb(d,l,t.socketPath)?!1:await a()}}}function Zb(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 e0(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 gD(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 Eu(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function Qb(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function mD(e){return`${Ze(e)}
|
|
55
|
-
`}function hD(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Yt(t)}catch{return null}}}function yD(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 bD={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 t0(e){return`worker-${e}`}function r0(e){let t=bD[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 n0(e){return e==="single-object"?"rest":"graphql"}function o0(e,t){return e==="stable-poll"?"rest":n0(t)}function er(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??o0(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Mt(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 s0=[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",er("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",er("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",er("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",er("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",er("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",er("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",er("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",er("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",er("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",er("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",er("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",er("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Mt("issue create","rest","rest","the write plan POSTs to `repos/{o}/{r}/issues` so filing shares the REST mutation rail"),Mt("issue edit","rest","rest","the write plan PATCHes labels and body at `repos/{o}/{r}/issues/{n}`"),Mt("issue close","rest","rest","the write plan PATCHes issue state and state reason at `repos/{o}/{r}/issues/{n}`"),Mt("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Mt("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Mt("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Mt("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Mt("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Mt("pr merge","rest","rest","the default merge uses PUT `repos/{o}/{r}/pulls/{n}/merge` so a dry GraphQL pool cannot strand a finished Worker"),Mt("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Mt("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Mt("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Mt("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Mt("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],kD=new Map(s0.map(e=>[e.key,e]));function i0(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 Su(e){let t=i0(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 rl=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=Su(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 a0(e){return kD.get(Su(e))??null}function l0(e){let t=a0(e);if(!t)throw new rl(e);return t}function Tu(e){return l0(e).surface}var Pu="RED_GITHUB_REQUEST_TIMEOUT_MS",Yo=class extends Error{subject;timeoutMs;constructor(t,r,n){super(`GitHub ${t} passed its ${r}ms deadline and was abandoned; raise ${Pu} if this host is genuinely this slow`,n),this.name="GithubTimeoutError",this.subject=t,this.timeoutMs=r}};function d0(e){return e instanceof Yo}function nl(e=process.env){let t=e[Pu];if(t===void 0||t.trim()==="")return 3e4;let r=Number(t);return!Number.isFinite(r)||r<0?3e4:Math.trunc(r)}async function ol(e,t,r){if(!Number.isFinite(t)||t<=0)return await r();let n,o=new Promise((i,a)=>{n=setTimeout(()=>a(new Yo(e,t)),t),n.unref?.()}),s=Promise.resolve().then(r);s.catch(()=>{});try{return await Promise.race([s,o])}finally{n!==void 0&&clearTimeout(n)}}function ii(e={}){let t=e.fetchImpl??fetch,r=e.timeoutMs??nl();return!Number.isFinite(r)||r<=0?t:async(n,o)=>{let s=AbortSignal.timeout(r),i=o?.signal??null,a=i==null?s:AbortSignal.any([i,s]),l=RD(n);try{return await ol(l,r,async()=>await t(n,{...o??{},signal:a}))}catch(d){throw d0(d)?d:s.aborted&&i?.aborted!==!0?new Yo(l,r,{cause:d}):d}}}function RD(e){let t=typeof e=="string"?e:e instanceof URL?e.href:typeof e.url=="string"?e.url:"request";try{return new URL(t).pathname}catch{return t}}var sl="off";var c0="RED_GITHUB_BUDGET_GATE";function u0(e){if(e===!0)return"on";if(typeof e!="string")return sl;let t=e.trim().toLowerCase();return t==="on"||t==="enabled"||t==="true"?"on":sl}function Au(e){return(e??sl)==="on"}function Ou(e=process.env){return u0(e[c0])}import{appendFile as wD,mkdir as _D,readFile as p0}from"node:fs/promises";import{dirname as xD}from"node:path";function il(e){let t=e.now??(()=>new Date().toISOString()),r=Tt["github-spend"],n={...r,...e.maxBytes===void 0?{}:{maxBytes:e.maxBytes}},o=Promise.resolve();return{record(s){let i=TD(s.operation,s.cost,s.observedAt??t(),s.actor),a=qe().push(AD(i)),l=o.then(async()=>{await _D(xD(e.path),{recursive:!0});let d=Buffer.byteLength(a);if(await Fa(e.path,d,n)){let c=n.maxBytes;if(d>c)throw new Error(`GitHub spend observation exceeds its ${c}-byte lane ceiling`);let u=await ED(e.path),p=Math.max(Math.floor(c*r.targetRatio),d);await Ma(e.path,vD(u,d,p))}await wD(e.path,a,"utf8")});return o=l.then(()=>{},()=>{}),l},async report(s){await o;let i=Cu(s.from,"report window start"),a=Cu(s.to,"report window end");if(a<=i)throw new Error("GitHub attribution report window end must be after its start");let l=await PD(e.path),d=new Map;for(let u of l.observations){let p=Date.parse(u.observed_at);if(p<i||p>=a||s.pool!==void 0&&u.pool!==s.pool)continue;let g=`${u.pool}\0${u.operation_key}\0${u.actor??""}`,f=d.get(g);d.set(g,{operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:(f?.count??0)+1,cost:(f?.cost??0)+u.cost})}let c=[...d.values()].sort((u,p)=>p.cost-u.cost||p.count-u.count||u.operation_key.localeCompare(p.operation_key)||u.pool.localeCompare(p.pool)||(u.actor??"").localeCompare(p.actor??""));return{version:1,origin:"process-attribution",window:{from:s.from,to:s.to},pool:s.pool??null,total_count:c.reduce((u,p)=>u+p.count,0),total_cost:c.reduce((u,p)=>u+p.cost,0),operations:c,unreadable_records:l.unreadable}}}}async function ED(e){try{let t=await p0(e,"utf8");return t.trim()===""?[]:_t(t)}catch(t){if(f0(t)&&t.code==="ENOENT")return[];throw t}}function vD(e,t,r){let n=0,o=e.length;for(;n<o;){let s=Math.ceil((n+o)/2),i=SD(e.slice(-s));Buffer.byteLength(i)+t<=r?n=s:o=s-1}return n}function SD(e){return e.map(t=>qe({trailer:!1}).push(t)).join("")}function TD(e,t,r,n){if(Cu(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 PD(e){let t;try{t=await p0(e,"utf8")}catch(s){if(f0(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
56
|
-
`);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=
|
|
52
|
+
`))}catch{r.push(o+1)}}return{records:t,malformed:r}}var LD=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],Vo=["worker-birth","worker-death","worker-budget-kill"],ob=["demand-refusal","daemon-start","daemon-death","daemon-stop","daemon-takeover-failed"],sb="redskilled.log.toonl",jD=4*1024*1024,$D=.5;function Xa(e){let t=e.worker.budget??{},r="kind"in e?e.kind:e.event;return{version:1,ts:e.ts,kind:r,event:r,worker_id:e.worker.worker_id,project_label:e.worker.project_label,pid:e.worker.pid,...e.worker.pgid==null?{}:{pgid:e.worker.pgid},...e.worker.proc_start_time==null?{}:{proc_start_time:e.worker.proc_start_time},workspace_path:e.worker.workspace_path,fork_sha:e.worker.fork_sha??null,log_path:e.worker.log_path??null,isolated:e.worker.isolated,unit:e.worker.unit??null,memory_high:t.memory_high??null,memory_max:t.memory_max??null,cpu_weight:t.cpu_weight??null,admission_verdict:"admissionVerdict"in e?e.admissionVerdict??null:null,phase:"phase"in e?e.phase??null:null,step:"step"in e?e.step??null:null,tokens:"tokens"in e?e.tokens??null:null,tools:"tools"in e?e.tools??null:null,runner:"runner"in e?e.runner??null:null,model:"model"in e?e.model??null:null,base_head_sha:"baseHeadSha"in e?e.baseHeadSha??null:null,base_commits_ahead:"baseCommitsAhead"in e?e.baseCommitsAhead??null:null,heal_kind:"healKind"in e?e.healKind??null:null,detail:e.detail??null,exit_code:e.exitCode??null,signal:e.signal??null,reason:"reason"in e?e.reason??null:null}}function BD(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 ib(e,t={}){let r=t.maxBytes??jD,n=Ue({trailer:!1}),o=Promise.resolve();async function s(i){let a=o.then(async()=>{await AD(MD(e),{recursive:!0,mode:448}),await WD(e);let l=n.push(lb(i));await ND(e,l,r)?await PD(e,l,{encoding:"utf8",mode:384}):(await GD(e,r,i),n=Ue({trailer:!1}))});return o=a.catch(()=>{}),await a,i}return{path:e,record:i=>s(Xa(i)),recordWorker:i=>s(Xa(i)),recordDemandRefusal:i=>s(BD(i)),recordDaemonStart:i=>s(uu(i)),recordDaemonDeath:i=>s(pu(i)),recordDaemonTakeoverFailed:i=>s(fu(i)),recordDaemonStop:i=>s(cu(i)),read:()=>ab(e),flush:async()=>{await o}}}async function ND(e,t,r){let n=0;try{n=(await nb(e)).size}catch(o){if(o.code!=="ENOENT")throw o}return n+Buffer.byteLength(t)<=r}async function GD(e,t,r){let n=[...await ab(e),r],o=new Set([n.length-1]),s=Math.floor(t*$D),i;try{i=tb(n,s,o)}catch(l){if(!(l instanceof Error)||!l.message.startsWith("redskilled event-lane baseline exceeds"))throw l;i=tb(n,t,o)}let a=`${e}.rotate-${process.pid}`;try{await ID(a,gu(i),{encoding:"utf8",mode:384}),await CD(a,e)}finally{await FD(a,{force:!0})}}function tb(e,t,r=new Set){let n=new Set(Za(e).map(d=>d.worker_id)),o=new Set(r);for(let d=e.length-1;d>=0&&n.size>0;d-=1){let c=e[d];c.kind!=="worker-birth"||!n.has(c.worker_id)||(o.add(d),n.delete(c.worker_id))}let s=e.map((d,c)=>c).filter(d=>!o.has(d)),i=0,a=s.length;for(;i<a;){let d=Math.floor((i+a)/2),c=rb(e,o,s.slice(d));Buffer.byteLength(gu(c))<=t?a=d:i=d+1}let l=rb(e,o,s.slice(i));if(Buffer.byteLength(gu(l))>t)throw new Error(`redskilled event-lane baseline exceeds its ${t}-byte ceiling`);return l}function rb(e,t,r){let n=new Set([...t,...r]);return e.filter((o,s)=>n.has(s))}function gu(e){if(e.length===0)return"";let t=Ue({trailer:!1});return e.map(r=>t.push(lb(r))).join("")}async function WD(e){let t;try{t=(await nb(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await OD(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 eb(e,s-i+l+1);return}}await eb(e,0)}finally{await n.close()}}async function ab(e){let t;try{t=await DD(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return HD(t)}function HD(e){let t=e.split(`
|
|
53
|
+
`);if(t.pop(),t.length===0)return[];let{records:r,malformed:n}=Zy(t);return n.length>0&&console.warn(`redskilled event lane skipped ${n.length} malformed row(s) at line ${n.join(", ")}`),r.filter(qD).map(KD)}function Za(e){let t=new Map;for(let r of e)ob.includes(r.kind)||(r.kind==="worker-birth"?t.set(r.worker_id,UD(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function UD(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,...e.pgid==null?{}:{pgid:e.pgid},...e.proc_start_time==null?{}:{proc_start_time:e.proc_start_time},started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function lb(e){return{...e}}function qD(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...LD,...ob].includes(t)}function KD(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:ot(e.project_label)??"",pid:Number(e.pid??0),...e.pgid==null||e.pgid===""?{}:{pgid:Number(e.pgid)},...ot(e.proc_start_time)==null?{}:{proc_start_time:ot(e.proc_start_time)},workspace_path:ot(e.workspace_path)??"",fork_sha:ot(e.fork_sha),log_path:ot(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:ot(e.unit),memory_high:ot(e.memory_high),memory_max:ot(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:ot(e.admission_verdict),phase:ot(e.phase),step:ot(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:ot(e.runner),model:ot(e.model),base_head_sha:ot(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:ot(e.heal_kind),detail:ot(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:ot(e.signal),reason:ot(e.reason)}}function ot(e){return e==null||e===""?null:String(e)}function db(e,t){if(e!==void 0){if(!mu(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function mu(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.counter_labels;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(n=>typeof n=="string"&&n!=="")&&(t.creator===void 0||typeof t.creator=="string")&&(r===void 0||r!==null&&typeof r=="object"&&typeof r.ready=="string"&&r.ready!==""&&typeof r.human=="string"&&r.human!=="")}var VD=3e5,zD=.5,hu=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 cb(e,t){if(t.held!=null)throw new hu(t.held);let r=ri(e.project_label,"a project label"),n=ri(e.selector,"a selector"),o=db(e.queue_poll,r),s=za(e.argv,r),i=Ya(e.env,r),a=Ja(e.log_path,r),l=QD(e.hooks,r),d=ri(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:ri(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:ri(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)}`);if(e.standing!==void 0&&typeof e.standing!="boolean")throw new Error(`redskilled needs standing intent for project ${JSON.stringify(r)} to be boolean, not ${JSON.stringify(e.standing)}`);let u=e.renew_within_ms??VD;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,...e.standing===!0?{standing:!0}:{},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 Zn=class extends Error{constructor(r,n={kind:"never"}){super(JD(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function JD(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 ub(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:za(t.launch.argv,e.project_label),env:Ya(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Ja(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 yu(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 YD(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function zo(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*zD;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 pb(e,t){let r=[],n=[];for(let o of e)(YD(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function ni(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||mu(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||ZD(t.trunk))&&Number.isInteger(t.target)&&(t.standing===void 0||typeof t.standing=="boolean")&&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||fb(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||XD(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 QD(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(!Vo.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${Vo.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:za(s.argv,t),env:Ya(s.env,t),...s.log_path==null?{}:{log_path:Ja(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function XD(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!Vo.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||fb(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 ZD(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 fb(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function ri(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}function gb(e,t,r){let n=Date.parse(r),o=new Set([...t].map(l=>l.project_label)),s=[],i=[],a=[];for(let l of e){let d=Date.parse(l.renew_by),c=Number.isFinite(n)?zo(l,n):"renewing";if(!Number.isFinite(d)||c!=="running-on"||o.has(l.project_label)){s.push(l);continue}a.push(l),(l.standing===!0||!Number.isFinite(n)||n-d<=l.renew_within_ms)&&i.push(l)}return{live:s,recoverable:i,abandoned:a}}async function mb(e){let t=[...e.laneEvents].reverse().find(o=>o.kind==="daemon-start"||o.kind==="daemon-death"||o.kind==="daemon-stop"),r=t?.kind==="daemon-start"?{pid:t.pid,socketPath:t.workspace_path}:t==null&&e.heldLease!=null&&e.heldLease.pid!==e.ownerPid?{pid:e.heldLease.pid,socketPath:e.heldLease.socket_path}:null;r!=null&&await e.eventLane.recordDaemonDeath({ts:e.startedAt,pid:r.pid,socketPath:r.socketPath,detail:`redskilled recovered after daemon ${r.pid} left no stop record`,reason:"silent-death"}),(e.recovery.live.length+e.recovery.abandoned.length>0||r!=null)&&await e.eventLane.recordDaemonStart({ts:e.startedAt,pid:e.ownerPid,socketPath:e.socketPath,detail:`redskilled boot read the host registration intent store: recovered ${e.recovery.live.length} live, lapsed ${e.recovery.abandoned.length} abandoned`})}import{randomUUID as hb}from"node:crypto";import{rm as eC}from"node:fs/promises";import{connect as tC,createServer as rC}from"node:net";var tr=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 bu(e,t=250){return await new Promise(r=>{let n=tC(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 yb(e,t){for(let r=0;r<2;r++){let n=rC();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 bu(e)!=="unowned")throw new tr(e);if(await t?.())throw new tr(e);await eC(e,{force:!0})}}throw new tr(e)}async function Ht(e,t=250){try{return(await Na({socketPath:e,timeoutMs:t},{id:hb(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function bb(e,t){Py(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??hb(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function kb(e){let t=new Map;return function(n,o){let s=t.get(n.worker_id);if(s!=null)return s;let i=(async()=>{let a=!1;try{a=await e(n)===!0}catch{}return o(a),a})().finally(()=>{t.get(n.worker_id)===i&&t.delete(n.worker_id)});return t.set(n.worker_id,i),i}}function Tb(e){return{generated_at:e.now,hour:wb("hour",36e5,e),day:wb("day",864e5,e),history_48h:nC(e)}}function nC(e){let t=wn(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=oC(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=>wn(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:Rb(i),tickets_per_hour:Rb(l)}}function oC(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=wn(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],b=Math.min(f+36e5,r),h=Math.max(0,Math.min(c.at,b)-Math.max(d.at,f));h!==0&&(a[g].tokens+=p*(h/u),a[g].duration+=h)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function Rb(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 eo(e,t,r){let n=wn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=wn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function wb(e,t,r){let n=wn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:wn(u.observed_at)})).filter(u=>u.at!=null&&Eb(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>wn(u.ts)).filter(u=>u!=null&&Eb(u,o,n)),l=_b(i,u=>u.tokens,"tokens",s),d=_b(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:sC(a.length,t,s),runner_share:xb("runner",i,u=>u.runner,s),model_share:xb("model",i,u=>u.model,s),unavailable:c}}function _b(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 sC(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 xb(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 Eb(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function wn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Pb(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Sb(t.hour)&&Sb(t.day)&&(t.history_48h===void 0||iC(t.history_48h))}function iC(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&vb(t.tokens_per_hour)&&vb(t.tickets_per_hour)}function vb(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 Sb(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"&&ku(t.tokens_per_min)&&ku(t.tools_per_min)&&ku(t.issues_per_hour)&&Array.isArray(t.unavailable)}function ku(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 Ab(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:eo([...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 Ob(e,t){return eo(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 Fb,totalmem as lC}from"node:os";function Jo(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 Db(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Jo(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=Yo(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:aC(e.length,n,a,l)}}function aC(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 Yo(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 Cb(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 Ib="REDSKILLED_MEMORY_CEILING",wu="REDSKILLED_WORKER_CEILING",$b="REDSKILLED_VALIDATION_CEILING",Mb="REDSKILLED_INTERACTIVE_RESERVATION",oi=1,Lb=.7,dC=2*1024**3,cC=2;function Bb(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Yo(t)}function tl(e){let t=0,r=[];for(let n of e){let o=Bb(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 Nb(e){let{ceiling:t}=e,r=tl(e.workers),n=Bb(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??oi),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 Gb(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=tl(e.workers),n=e.ceiling.memory_bytes-r.memory_bytes,o=e.ceiling.worker_count,s=o==null?n:Math.floor(e.ceiling.memory_bytes/o),i=Math.min(n,s);if(i<=0)return{memory_max:null,reason:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes is already fully committed to ${r.worker_count} Worker(s), so no positive per-Worker ceiling can be derived; the daemon's RSS sampling floor is the only remaining ceiling`};let a=o==null?`the headroom under this host's memory ceiling of ${e.ceiling.memory_bytes} bytes; this host declares no Worker slot count (${wu} is unset), so this ceiling is a per-Worker wall and not memory the host sets aside \u2014 N Workers may carry N such walls, and the host ceiling is not enforced host-wide. Declare a slot count to make it divide into shares that sum to it`:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes shared across its ${o} Worker slot(s)`;return{memory_max:String(i),reason:`derived from ${a} (ceiling source: ${e.ceiling.source})`}}function rl(e=process.env,t=lC(),r={}){let n=Ru(r.flags?.memoryCeiling,e[Ib],r.config?.memoryCeiling),o=Ru(r.flags?.workerCeiling,e[wu],r.config?.workerCeiling),s=Ru(r.flags?.validationCeiling,e[$b],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Mb]??"").trim(),d=Wb(a),c=l===""?oi:fC(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!uC(a)&&(el(`redskilled: ${_u(o)} ${wu}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=pC(i,t);if(p!==void 0)return jb({memory_bytes:p,worker_count:d,interactive_reservation:c??oi,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Fb());el(`redskilled: ${_u(n)} ${Ib}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Lb*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&el(`redskilled: ${Mb}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${oi} Worker(s) instead.`),jb({memory_bytes:Math.floor(t*Lb),worker_count:d,interactive_reservation:c??oi,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Fb())}function jb(e,t,r){if(t!==void 0){let i=Wb(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};el(`redskilled: ${_u(t)} ${$b}=${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)/cC)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/dC)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Ru(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 _u(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function uC(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var el=e=>process.stderr.write(`${e}
|
|
54
|
+
`);function pC(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)):Yo(e)??void 0}function Wb(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 fC(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}function Hb(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target-a),d));if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,b=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:b,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let h=0;h<b;h+=1)(s[h]??(s[h]=[])).push({project_label:i.project_label,index:a+h,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Ub(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function qb(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var si={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Kb(e,t,r){if(t>=6e4)return si;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 Vb(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function xu(){return si}function gC(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 zb(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>gC(r,n,t)).filter(r=>r!=null)}function Jb(e){let t=e.workers.map(mC),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:yC({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length,uncontained:t.filter(o=>o.survives&&!o.contained).length})}}function Yb(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 Qb(e){let t=e.stopped?"SIGTERM stopped that holder and released the socket":`SIGTERM was sent, but the holder did not finish stopping${e.pending==null||e.pending.length===0?"":`: ${e.pending.join(", ")}`}`;return{version:1,running:!0,stopped:e.stopped,reason:"unreachable",socket_path:e.socketPath,daemon_version:null,pid:e.pid,holding:{workers:[],projects:[]},surviving:[],detail:`redskilled pid ${e.pid} was alive and held ${JSON.stringify(e.socketPath)}, but it did not answer a ping, so stop signalled it directly; ${t}. Its held Workers and version could not be read`}}function mC(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,contained:e.isolated,survives:!0}}function hC(e){return e==="requested"?"an operator asked for it":e==="signal"?"the daemon was signalled":e==="idle"?"the daemon was idle and held nothing":e==="replaced"?"a newer published bundle is taking the session over":e==="unreachable"?"the daemon held the socket but could not be reached":"no daemon was running"}function yC(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${hC(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${Eu(e.held,"Worker")} across ${Eu(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 ${Eu(e.uncontained,"uncontained survivor")} ${e.uncontained===1?"runs":"run"} as detached process groups outside an init-system unit`}function Eu(e,t){return`${e} ${t}${e===1?"":"s"}`}function vu(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&r.workers.every(n=>n!=null&&typeof n=="object"&&!Array.isArray(n)&&typeof n.contained=="boolean")&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as bC,mkdir as kC,readFile as RC,rm as wC,writeFile as _C}from"node:fs/promises";import{dirname as Xb,join as r0}from"node:path";import{tmpdir as Zb}from"node:os";var xC="redskilled.machine.claim.toon",Tu="REDSKILLED_MACHINE_DIR",EC=8,nn=class extends Error{constructor(r,n,o){super(SC(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},e0;function nl(){return e0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},e0}function vC(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[Tu]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||Zb():Zb();return r0(o,`redskilled-${e.machineIdHash}`)}function ol(e){return r0(vC(e),xC)}function ii(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??qe;async function s(){let l;try{l=await RC(e,"utf8")}catch(c){if(c.code==="ENOENT"||Su(c))return;throw c}let d=PC(l);return AC(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 wC(e,{force:!0}),!0}catch(l){if(Su(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await kC(Xb(e),{recursive:!0,mode:1023})!=null&&await bC(Xb(e),1023).catch(()=>{});let c=!1;for(let u=0;u<EC;u+=1){let p=i(l,n());try{return await _C(e,TC(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Su(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(t0(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||!t0(d,l,t.socketPath)?!1:await a()}}}function n0(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 o0(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 SC(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 Su(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function t0(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function TC(e){return`${Ze(e)}
|
|
55
|
+
`}function PC(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Xt(t)}catch{return null}}}function AC(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 OC={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 s0(e){return`worker-${e}`}function i0(e){let t=OC[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 a0(e){return e==="single-object"?"rest":"graphql"}function l0(e,t){return e==="stable-poll"?"rest":a0(t)}function rr(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??l0(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function It(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 d0=[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",rr("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",rr("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",rr("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",rr("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",rr("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",rr("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",rr("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",rr("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",rr("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",rr("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",rr("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",rr("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),It("issue create","rest","rest","the write plan POSTs to `repos/{o}/{r}/issues` so filing shares the REST mutation rail"),It("issue edit","rest","rest","the write plan PATCHes labels and body at `repos/{o}/{r}/issues/{n}`"),It("issue close","rest","rest","the write plan PATCHes issue state and state reason at `repos/{o}/{r}/issues/{n}`"),It("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),It("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),It("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),It("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),It("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),It("pr merge","rest","rest","the default merge uses PUT `repos/{o}/{r}/pulls/{n}/merge` so a dry GraphQL pool cannot strand a finished Worker"),It("pr close","graphql","graphql","gh closes with a GraphQL mutation"),It("pr edit","graphql","graphql","gh edits with GraphQL mutations"),It("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),It("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),It("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],DC=new Map(d0.map(e=>[e.key,e]));function c0(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 Pu(e){let t=c0(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var sl=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=Pu(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 u0(e){return DC.get(Pu(e))??null}function p0(e){let t=u0(e);if(!t)throw new sl(e);return t}function Au(e){return p0(e).surface}var Ou="RED_GITHUB_REQUEST_TIMEOUT_MS",Qo=class extends Error{subject;timeoutMs;constructor(t,r,n){super(`GitHub ${t} passed its ${r}ms deadline and was abandoned; raise ${Ou} if this host is genuinely this slow`,n),this.name="GithubTimeoutError",this.subject=t,this.timeoutMs=r}};function f0(e){return e instanceof Qo}function il(e=process.env){let t=e[Ou];if(t===void 0||t.trim()==="")return 3e4;let r=Number(t);return!Number.isFinite(r)||r<0?3e4:Math.trunc(r)}async function al(e,t,r){if(!Number.isFinite(t)||t<=0)return await r();let n,o=new Promise((i,a)=>{n=setTimeout(()=>a(new Qo(e,t)),t),n.unref?.()}),s=Promise.resolve().then(r);s.catch(()=>{});try{return await Promise.race([s,o])}finally{n!==void 0&&clearTimeout(n)}}function ai(e={}){let t=e.fetchImpl??fetch,r=e.timeoutMs??il();return!Number.isFinite(r)||r<=0?t:async(n,o)=>{let s=AbortSignal.timeout(r),i=o?.signal??null,a=i==null?s:AbortSignal.any([i,s]),l=CC(n);try{return await al(l,r,async()=>await t(n,{...o??{},signal:a}))}catch(d){throw f0(d)?d:s.aborted&&i?.aborted!==!0?new Qo(l,r,{cause:d}):d}}}function CC(e){let t=typeof e=="string"?e:e instanceof URL?e.href:typeof e.url=="string"?e.url:"request";try{return new URL(t).pathname}catch{return t}}var ll="off";var g0="RED_GITHUB_BUDGET_GATE";function m0(e){if(e===!0)return"on";if(typeof e!="string")return ll;let t=e.trim().toLowerCase();return t==="on"||t==="enabled"||t==="true"?"on":ll}function Du(e){return(e??ll)==="on"}function Cu(e=process.env){return m0(e[g0])}import{appendFile as FC,mkdir as IC,readFile as h0}from"node:fs/promises";import{dirname as MC}from"node:path";function dl(e){let t=e.now??(()=>new Date().toISOString()),r=Tt["github-spend"],n={...r,...e.maxBytes===void 0?{}:{maxBytes:e.maxBytes}},o=Promise.resolve();return{record(s){let i=BC(s.operation,s.cost,s.observedAt??t(),s.actor),a=Ue().push(GC(i)),l=o.then(async()=>{await IC(MC(e.path),{recursive:!0});let d=Buffer.byteLength(a);if(await Ma(e.path,d,n)){let c=n.maxBytes;if(d>c)throw new Error(`GitHub spend observation exceeds its ${c}-byte lane ceiling`);let u=await LC(e.path),p=Math.max(Math.floor(c*r.targetRatio),d);await ja(e.path,jC(u,d,p))}await FC(e.path,a,"utf8")});return o=l.then(()=>{},()=>{}),l},async report(s){await o;let i=Fu(s.from,"report window start"),a=Fu(s.to,"report window end");if(a<=i)throw new Error("GitHub attribution report window end must be after its start");let l=await NC(e.path),d=new Map;for(let u of l.observations){let p=Date.parse(u.observed_at);if(p<i||p>=a||s.pool!==void 0&&u.pool!==s.pool)continue;let g=`${u.pool}\0${u.operation_key}\0${u.actor??""}`,f=d.get(g);d.set(g,{operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:(f?.count??0)+1,cost:(f?.cost??0)+u.cost})}let c=[...d.values()].sort((u,p)=>p.cost-u.cost||p.count-u.count||u.operation_key.localeCompare(p.operation_key)||u.pool.localeCompare(p.pool)||(u.actor??"").localeCompare(p.actor??""));return{version:1,origin:"process-attribution",window:{from:s.from,to:s.to},pool:s.pool??null,total_count:c.reduce((u,p)=>u+p.count,0),total_cost:c.reduce((u,p)=>u+p.cost,0),operations:c,unreadable_records:l.unreadable}}}}async function LC(e){try{let t=await h0(e,"utf8");return t.trim()===""?[]:wt(t)}catch(t){if(y0(t)&&t.code==="ENOENT")return[];throw t}}function jC(e,t,r){let n=0,o=e.length;for(;n<o;){let s=Math.ceil((n+o)/2),i=$C(e.slice(-s));Buffer.byteLength(i)+t<=r?n=s:o=s-1}return n}function $C(e){return e.map(t=>Ue({trailer:!1}).push(t)).join("")}function BC(e,t,r,n){if(Fu(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 NC(e){let t;try{t=await h0(e,"utf8")}catch(s){if(y0(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
56
|
+
`);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=wt(`${i}
|
|
57
57
|
${a}
|
|
58
|
-
`)[0]}catch{n+=1,s+=1;continue}if(!
|
|
58
|
+
`)[0]}catch{n+=1,s+=1;continue}if(!WC(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function GC(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 WC(e){return HC(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 Fu(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 HC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function y0(e){return e instanceof Error&&"code"in e}var k0=ec(Lu(),1);var on=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 UC="0.0.0-development";function qC(e){return e.request!==void 0}async function b0(e,t,r,n){if(!qC(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 KC(e,t,r,n){let o=new k0.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(VC.bind(null,e,t,r),n)}async function VC(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 on(o.data.errors[0].message,500,{request:n,response:o});return b0(e,t,s,n)}return o}function ju(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",b0.bind(null,r,n)),e.hook.wrap("request",KC.bind(null,r,n))),n}ju.VERSION=UC;var w0=ec(Lu(),1),zC="0.0.0-development",$u=()=>Promise.resolve();function JC(e,t,r){return e.retryLimiter.schedule(YC,e,t,r)}async function YC(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=QC(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,$u),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,$u),i&&await e.search.key(e.id).schedule(d,$u);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 QC(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 XC=["/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 ZC(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var R0=ZC(XC),_0=R0.test.bind(R0),gr={},eF=function(e,t){gr.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),gr.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),gr.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),gr.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),gr.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function cl(e,t){let{enabled:r=!0,Bottleneck:n=w0.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:_0,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
59
59
|
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
60
60
|
See https://octokit.github.io/rest.js/#throttling
|
|
61
61
|
|
|
@@ -65,38 +65,46 @@ ${a}
|
|
|
65
65
|
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
66
66
|
}
|
|
67
67
|
})
|
|
68
|
-
`);let d=!1,c=()=>{if(d)return;d=!0,gr.global==null&&
|
|
69
|
-
`+n.repeat(u));let
|
|
70
|
-
`+n.repeat(u)+
|
|
71
|
-
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},
|
|
68
|
+
`);let d=!1,c=()=>{if(d)return;d=!0,gr.global==null&&eF(n,a),l.global=l.global??gr.global,l.auth=l.auth??gr.auth,l.search=l.search??gr.search,l.write=l.write??gr.write,l.notifications=l.notifications??gr.notifications,l.retryLimiter=l.retryLimiter??new n;let u={},p=new n.Events(u);u.on("secondary-limit",l.onSecondaryRateLimit),u.on("rate-limit",l.onRateLimit),u.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),l.retryLimiter.on("failed",async function(g,f){let[b,h,_]=f.args,{pathname:w}=new URL(_.url,"http://github.test");if(!(w.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let x=~~h.retryCount;h.retryCount=x,_.request.retryCount=x;let{wantRetry:O,retryAfter:$=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let L=Number(g.response.headers["retry-after"])||b.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",L,_,e,x),retryAfter:L}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(L=>L.type==="RATE_LIMITED")){let L=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),B=Math.max(Math.ceil((L-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",B,_,e,x),retryAfter:B}}return{}}();if(O)return h.retryCount++,$*b.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),JC(l,u,p))),{}}cl.VERSION=zC;cl.triggersNotification=_0;function _n(){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 ul(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)=>ul.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 x0(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 E0(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 v0=Function.bind,S0=v0.bind(v0);function T0(e,t,r){let n=S0(E0,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]=S0(x0,null).apply(null,s)})}function tF(){let e=Symbol("Singular"),t={registry:{}},r=ul.bind(null,t,e);return T0(r,t,e),r}function rF(){let e={registry:{}},t=ul.bind(null,e);return T0(t,e),t}var P0={Singular:tF,Collection:rF};var nF="0.0.0-development",oF=`octokit-endpoint.js/${nF} ${_n()}`,sF={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":oF},mediaType:{format:""}};function iF(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function aF(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 D0(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{aF(t[n])?n in e?r[n]=D0(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function A0(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Nu(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=iF(r.headers),A0(r),A0(r.headers);let n=D0(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 lF(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 dF=/\{[^{}}]+\}/g;function cF(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function uF(e){let t=e.match(dF);return t?t.map(cF).reduce((r,n)=>r.concat(n),[]):[]}function O0(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function C0(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function Zo(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function li(e,t,r){return t=e==="+"||e==="#"?C0(t):Zo(t),r?Zo(r)+"="+t:t}function Xo(e){return e!=null}function Bu(e){return e===";"||e==="&"||e==="?"}function pF(e,t,r,n){var o=e[r],s=[];if(Xo(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||typeof o=="boolean")o=o.toString(),n&&n!=="*"&&(o=o.substring(0,parseInt(n,10))),s.push(li(t,o,Bu(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Xo).forEach(function(i){s.push(li(t,i,Bu(t)?r:""))}):Object.keys(o).forEach(function(i){Xo(o[i])&&s.push(li(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Xo).forEach(function(a){i.push(li(t,a))}):Object.keys(o).forEach(function(a){Xo(o[a])&&(i.push(Zo(a)),i.push(li(t,o[a].toString())))}),Bu(t)?s.push(Zo(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Xo(o)&&s.push(Zo(r)):o===""&&(t==="&"||t==="?")?s.push(Zo(r)+"="):o===""&&s.push("");return s}function fF(e){return{expand:gF.bind(null,e)}}function gF(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(pF(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 C0(s)}),e==="/"?e:e.replace(/\/$/,"")}function F0(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=O0(e,["method","baseUrl","url","headers","request","mediaType"]),i=uF(r);r=fF(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=O0(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=lF(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 mF(e,t,r){return F0(Nu(e,t,r))}function I0(e,t){let r=Nu(e,t),n=mF.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:I0.bind(null,r),merge:Nu.bind(null,r),parse:F0})}var M0=I0(null,sF);var Z0=ec(W0(),1);var vF=/^-?\d+$/,gl=/^-?\d+n+$/,xn=JSON.stringify,Uu=JSON.parse,V0=/^-?\d+n$/,H0=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,U0=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,qu=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Ku=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",SF=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let o=typeof t=="function",s=Array.isArray(t)?new Set(t.map(String)):null,i=(f,b,h)=>(h!==null&&typeof h=="object"&&typeof h.toJSON=="function"&&(h=h.toJSON(b)),typeof h=="string"&&gl.test(h)?h+"n":typeof h=="bigint"?"rawJSON"in JSON?JSON.rawJSON(h.toString()):h.toString()+"n":(o&&(h=t.call(f,b,h)),h!==null&&typeof h=="object"&&(h instanceof Number||h instanceof String||h instanceof Boolean)&&(h=h.valueOf()),h)),a=i({"":e},"",e);if(qu(a))return;let l=a===null||typeof a!="object",d=Ku(a);if(l||d)return xn(a);let c=[],u=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(c.push(f.isArray?"[":"{"),u++);let b=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
|
|
69
|
+
`+n.repeat(u));let h=f.val[f.index],_=i(f.val,String(f.index),h);if(qu(_))c.push("null"),f.first=!1,f.index++;else{let w=_!==null&&typeof _=="object",A=Ku(_);if(w&&!A){if(g.has(_))throw new TypeError("Converting circular structure to JSON");g.add(_),p.push({parent:f.val,key:String(f.index),val:_,isArray:Array.isArray(_),keys:Array.isArray(_)?null:Object.keys(_),index:0,first:!0}),f.first=!1,f.index++}else c.push(xn(_)),f.first=!1,f.index++}}else b=!0;else{for(;f.index<f.keys.length;){let _=f.keys[f.index++];if(s&&!s.has(_))continue;let A=f.val[_],x=i(f.val,_,A);if(qu(x))continue;f.first||c.push(","),n?c.push(`
|
|
70
|
+
`+n.repeat(u)+xn(_)+": "):c.push(xn(_)+":");let O=x!==null&&typeof x=="object",$=Ku(x);if(O&&!$){if(g.has(x))throw new TypeError("Converting circular structure to JSON");g.add(x),p.push({parent:f.val,key:_,val:x,isArray:Array.isArray(x),keys:Array.isArray(x)?null:Object.keys(x),index:0,first:!0}),f.first=!1;break}else c.push(xn(x)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(b=!0)}b&&(u--,!f.first&&n&&c.push(`
|
|
71
|
+
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},z0=(e,t,r)=>{try{return"rawJSON"in JSON?xn(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?xn(e,(a,l)=>typeof l=="string"&&gl.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(H0,"$1$2$3").replace(U0,"$1$2$3"):xn(e,t,r)}catch(n){if(n instanceof RangeError){let o=SF(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(H0,"$1$2$3").replace(U0,"$1$2$3")}throw n}},fl=new Map,TF=()=>{let e=JSON.parse.toString();if(fl.has(e))return fl.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return fl.set(e,t),t}catch{return fl.set(e,!1),!1}},PF=(e,t,r,n)=>typeof t=="string"&&V0.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&gl.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,AF=(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&&vF.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),J0=Number.MAX_SAFE_INTEGER.toString(),q0=J0.length,OF=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,DF=/^"-?\d+n+"$/,CF=(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"&&(V0.test(a)?a=BigInt(a.slice(0,-1)):gl.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[""]},K0=e=>e.replace(OF,(t,r,n,o)=>{let s=t[0]==='"';if(s&&DF.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<q0||r.length===q0&&r<=J0);return s||a||l?t:'"'+t+'n"'}),Y0=(e,t)=>{if(!e)return Uu(e,t);try{if(TF())return AF(e,t);let r=K0(e);return Uu(r,(n,o,s)=>PF(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=K0(e),o=Uu(n);return CF(o,t)}throw r}};var FF="10.0.13",IF={headers:{"user-agent":`octokit-request.js/${FF} ${_n()}`}};function MF(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 Q0=()=>"";async function X0(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=MF(e.body)||Array.isArray(e.body)?z0(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 on(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 on(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Vu(i),new on("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Vu(i),new on(jF(c.data),a,{response:c,request:e});return c.data=n?await Vu(i):i.body,c}async function Vu(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(Q0);let r=(0,Z0.parse)(t);if(LF(r)){let n="";try{return n=await e.text(),Y0(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(Q0):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function LF(e){return e.type==="application/json"||e.type==="application/scim+json"}function jF(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function zu(e,t){let r=e.defaults(t);return Object.assign(function(o,s){let i=r.merge(o,s);if(!i.request||!i.request.hook)return X0(r.parse(i));let a=(l,d)=>X0(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:zu.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:zu.bind(null,r)})}var di=zu(M0,IF);var $F="0.0.0-development";function BF(e){return`Request failed due to following response errors:
|
|
72
72
|
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
73
|
-
`)}var PF=class extends Error{constructor(e,t,r){super(TF(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},AF=["method","baseUrl","url","headers","request","query","mediaType","operationName"],OF=["query","method","url"],Y0=/\/api\/v3\/?$/;function CF(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(OF.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)=>AF.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 Y0.test(s)&&(o.url=s.replace(Y0,"/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 PF(o,a,i.data)}return i.data.data})}function Vu(e,t){let r=e.defaults(t);return Object.assign((o,s)=>CF(r,o,s),{defaults:Vu.bind(null,r),endpoint:r.endpoint})}var j3=Vu(li,{headers:{"user-agent":`octokit-graphql.js/${SF} ${Rn()}`},method:"POST",url:"/graphql"});function Q0(e){return Vu(e,{method:"POST",url:"/graphql"})}var zu="(?:[a-zA-Z0-9_-]+)",X0="\\.",Z0=new RegExp(`^${zu}${X0}${zu}${X0}${zu}$`),DF=Z0.test.bind(Z0);async function FF(e){let t=DF(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 IF(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function MF(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=IF(e),t(o)}var ek=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(FF.bind(null,t),{hook:MF.bind(null,t)})};var Ju="7.0.7";var tk=()=>{},LF=console.warn.bind(console),jF=console.error.bind(console);function $F(e={}){return typeof e.debug!="function"&&(e.debug=tk),typeof e.info!="function"&&(e.info=tk),typeof e.warn!="function"&&(e.warn=LF),typeof e.error!="function"&&(e.error=jF),e}var rk=`octokit-core.js/${Ju} ${Rn()}`,pl=class{static VERSION=Ju;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 E0.Collection,n={baseUrl:li.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} ${rk}`:rk,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=li.defaults(n),this.graphql=Q0(this.request).defaults(n),this.log=$F(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=ek(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 nk="6.0.0";function Yu(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})})}Yu.VERSION=nk;var BF="0.0.0-development";function NF(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 Qu(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=NF(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 ok(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),sk(e,[],Qu(e,t,r)[Symbol.asyncIterator](),n)}function sk(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:sk(e,t,r,n)})}var e6=Object.assign(ok,{iterator:Qu});function Xu(e){return{paginate:Object.assign(ok.bind(null,e),{iterator:Qu.bind(null,e)})}}Xu.VERSION=BF;var Zu="17.0.0";var GF={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"]}},ik=GF;var eo=new Map;for(let[e,t]of Object.entries(ik))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);eo.has(e)||eo.set(e,new Map),eo.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var WF={has({scope:e},t){return eo.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[...eo.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=eo.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=HF(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function ep(e){let t={};for(let r of eo.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},WF);return t}function HF(e,t,r,n,o){let s=e.request.defaults(n);function i(...a){let l=s.endpoint.merge(...a);if(o.mapToData)return l=Object.assign({},l,{data:l[o.mapToData],[o.mapToData]:void 0}),s(l);if(o.renamed){let[d,c]=o.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${d}.${c}()`)}if(o.deprecated&&e.log.warn(o.deprecated),o.renamedParameters){let d=s.endpoint.merge(...a);for(let[c,u]of Object.entries(o.renamedParameters))c in d&&(e.log.warn(`"${c}" parameter is deprecated for "octokit.${t}.${r}()". Use "${u}" instead`),u in d||(d[u]=d[c]),delete d[c]);return s(d)}return s(...a)}return Object.assign(i,s)}function UF(e){return{rest:ep(e)}}UF.VERSION=Zu;function tp(e){let t=ep(e);return{...t,rest:t}}tp.VERSION=Zu;var ak="22.0.1";var lk=pl.plugin(Yu,tp,Xu).defaults({userAgent:`octokit-rest.js/${ak}`});function qF(e){return`r${e}`}function dk(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=qF(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
|
|
73
|
+
`)}var NF=class extends Error{constructor(e,t,r){super(BF(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},GF=["method","baseUrl","url","headers","request","query","mediaType","operationName"],WF=["query","method","url"],ek=/\/api\/v3\/?$/;function HF(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(WF.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)=>GF.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 ek.test(s)&&(o.url=s.replace(ek,"/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 NF(o,a,i.data)}return i.data.data})}function Ju(e,t){let r=e.defaults(t);return Object.assign((o,s)=>HF(r,o,s),{defaults:Ju.bind(null,r),endpoint:r.endpoint})}var X3=Ju(di,{headers:{"user-agent":`octokit-graphql.js/${$F} ${_n()}`},method:"POST",url:"/graphql"});function tk(e){return Ju(e,{method:"POST",url:"/graphql"})}var Yu="(?:[a-zA-Z0-9_-]+)",rk="\\.",nk=new RegExp(`^${Yu}${rk}${Yu}${rk}${Yu}$`),UF=nk.test.bind(nk);async function qF(e){let t=UF(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 KF(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function VF(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=KF(e),t(o)}var ok=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(qF.bind(null,t),{hook:VF.bind(null,t)})};var Qu="7.0.7";var sk=()=>{},zF=console.warn.bind(console),JF=console.error.bind(console);function YF(e={}){return typeof e.debug!="function"&&(e.debug=sk),typeof e.info!="function"&&(e.info=sk),typeof e.warn!="function"&&(e.warn=zF),typeof e.error!="function"&&(e.error=JF),e}var ik=`octokit-core.js/${Qu} ${_n()}`,ml=class{static VERSION=Qu;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 P0.Collection,n={baseUrl:di.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${ik}`:ik,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=di.defaults(n),this.graphql=tk(this.request).defaults(n),this.log=YF(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=ok(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 ak="6.0.0";function Xu(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})})}Xu.VERSION=ak;var QF="0.0.0-development";function XF(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 Zu(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=XF(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 lk(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),dk(e,[],Zu(e,t,r)[Symbol.asyncIterator](),n)}function dk(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:dk(e,t,r,n)})}var m6=Object.assign(lk,{iterator:Zu});function ep(e){return{paginate:Object.assign(lk.bind(null,e),{iterator:Zu.bind(null,e)})}}ep.VERSION=QF;var tp="17.0.0";var ZF={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"]}},ck=ZF;var to=new Map;for(let[e,t]of Object.entries(ck))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);to.has(e)||to.set(e,new Map),to.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var e1={has({scope:e},t){return to.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[...to.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=to.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=t1(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function rp(e){let t={};for(let r of to.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},e1);return t}function t1(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 r1(e){return{rest:rp(e)}}r1.VERSION=tp;function np(e){let t=rp(e);return{...t,rest:t}}np.VERSION=tp;var uk="22.0.1";var pk=ml.plugin(Xu,np,ep).defaults({userAgent:`octokit-rest.js/${uk}`});function n1(e){return`r${e}`}function fk(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=n1(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
|
|
74
74
|
`)})," rateLimit { cost }","}"].join(`
|
|
75
|
-
`),aliases:r}}function ck(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 KF=lk.plugin(Mu,al);function pk(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function fk(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 Zo=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"}},_n=class extends Error{pool;resetAt;constructor(t,r,n,o){super(`${t} pool is exhausted; parked until ${r}${n?` (${n})`:""}`,o),this.name="GithubPoolUnavailableError",this.pool=t,this.resetAt=r}};function np(e){let t=e.etags??pk(),r=e.now??(()=>new Date().toISOString()),n=e.timeoutMs??nl(),o=e.balanceTimeoutMs??Math.min(n||1e4,1e4),s=Au(e.budgetGate??Ou()),i=ii({...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},timeoutMs:n}),a=new KF({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},request:{fetch:i},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),l=async()=>{if(e.balance===void 0)return null;try{return await ol("balance read",o,async()=>await e.balance()??null)}catch{return null}},d=(w,O)=>{if(!s)return;let v=w?.pools[O]??null;if(v!==null&&v.remaining<=0)throw new _n(O,v.reset_at)},c=async w=>{let O=t.get(w.cacheKey),v=s?(await l())?.pools[w.operation.budget]??null:null;if(v!==null&&v.remaining<=0){if(O!==void 0)return uk(O,w.operation.budget,v.reset_at,r());throw new _n(w.operation.budget,v.reset_at)}let A={...w.parameters??{}},$=xn(A.headers)?A.headers:{};A.headers={...$,...O?{"if-none-match":O.etag}:{}};try{let L=await a.request(w.route,A),B=L.headers,F=ro(B,"etag");return F!==void 0&&t.set(w.cacheKey,{etag:F,data:L.data,headers:B,storedAt:r()}),await e.attribution?.record({operation:w.operation,cost:1,actor:w.actor}),{data:L.data,headers:B,quotaFree:!1}}catch(L){if(di(L)===304){if(O===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(w.cacheKey)} without a held answer to reuse`,{cause:L});let B=fl(L),F={...O.headers,...B},W=ro(F,"etag")??O.etag;return t.set(w.cacheKey,{etag:W,data:O.data,headers:F,...O.storedAt?{storedAt:O.storedAt}:{}}),await e.attribution?.record({operation:w.operation,cost:0,actor:w.actor}),{data:O.data,headers:F,quotaFree:!0}}if(di(L)===401)throw new Zo({cause:L});if(to(L)){if(O!==void 0){let B=rp(w.operation.budget,L);return uk(O,w.operation.budget,B.resetAt,r())}throw rp(w.operation.budget,L)}throw L}},u=new Map,p=!1,g=async(w,O)=>{let v=w.input,A=v.kind==="pr";try{let $=await c({cacheKey:v.cacheKey,route:A?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:v.owner,repo:v.repo,...A?{pull_number:v.number}:{issue_number:v.number}},operation:v.operation,actor:v.actor});w.resolve({data:v.project?v.project($.data,"rest"):$.data,surface:"rest",quotaFree:$.quotaFree,...O?{routing:O}:{}})}catch($){w.reject($)}},f=async(w,O)=>{try{let v=dk(w.map(({input:F})=>F)),A=await a.graphql(v.query),$=ck(v,A),L=zF(A),B=w[0].input;await e.attribution?.record({operation:{key:B.operation.key,budget:"graphql"},cost:L,actor:JF(w.map(({input:F})=>F.actor))}),$.forEach((F,W)=>{let U=w[W];F.value===null?U.reject(new Error(`GitHub returned no ${F.read.kind} #${F.read.number} from the coalesced query`)):U.resolve({data:U.input.project?U.input.project(F.value,"graphql"):F.value,surface:"graphql",quotaFree:!1,...O?{routing:O}:{}})})}catch(v){let A=di(v)===401?new Zo({cause:v}):v;w.forEach($=>$.reject(A))}},b=async()=>{try{let w=await l(),O=fk(w);p=!1;let v=[...u.values()];u.clear(),await y(v,w,O)}catch(w){p=!1;let O=[...u.values()];u.clear();for(let v of O)v.forEach(A=>A.reject(w))}},y=async(w,O,v)=>{await Promise.all(w.map(async A=>{let $=A[0].input.rail,L=$??"rest",B=O?.pools[L]??null,F=L==="rest"?"graphql":"rest",W=O?.pools[F]??null,U=L==="rest"&&A.every(({input:le})=>t.get(le.cacheKey)!==void 0),oe=F==="rest"&&A.every(({input:le})=>t.get(le.cacheKey)!==void 0),se=L,te;if(B!==null&&B.remaining<=0){if(W!==null&&W.remaining>0||oe)se=F,te={requestedRail:L,selectedRail:se,rerouted:!0,pool:L,resetAt:B.reset_at,reason:`${L} pool is exhausted until ${B.reset_at}; used the equivalent ${se} rail`};else if(!U&&s){let le=new _n(L,B.reset_at,"the equivalent rail has no known budget");A.forEach(Se=>Se.reject(le));return}}else $!==void 0&&(te={requestedRail:L,selectedRail:se,rerouted:!1,pool:L,resetAt:B?.reset_at??null,reason:B===null?`${L} pool balance is unknown, so the explicit rail is honored reactively`:`${L} pool has ${B.remaining} remaining, so the explicit rail is honored`});let Q=A.some(({input:le})=>t.get(le.cacheKey)!==void 0);se==="graphql"||$===void 0&&!Q&&A.length>v?await f(A,te):await Promise.all(A.map(le=>g(le,te)))}))};return{conditionalRest:c,singleObject:w=>new Promise((O,v)=>{let A=`${w.kind}:${w.rail??"default"}`,$=u.get(A)??[];$.push({input:w,resolve:O,reject:v}),u.set(A,$),p||(p=!0,setTimeout(()=>void b(),0))}),async conditionalPaginate(w){let O=[],v={},A=0,$=!0,L=1;for(;;){let B=await c({...w,cacheKey:`${w.cacheKey}:page:${L}`,parameters:{...w.parameters??{},per_page:100,page:L}});if(A+=1,$=$&&B.quotaFree,!Array.isArray(B.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(w.cacheKey)} page ${L}`);if(O.push(...B.data),v=B.headers,!VF(B.headers))break;L+=1}return{data:O,headers:v,requestCount:A,quotaFree:$}},async graphql(w,O={},v){try{d(await l(),v?.operation.budget??"graphql");let A=await a.graphql(w,O);return v&&await e.attribution?.record({operation:v.operation,cost:1,actor:v.actor}),A}catch(A){throw di(A)===401?new Zo({cause:A}):to(A)?rp(v?.operation.budget??"graphql",A):A}}}}function uk(e,t,r,n){let o=Date.parse(n),s=e.storedAt===void 0?Number.NaN:Date.parse(e.storedAt);return{data:e.data,headers:e.headers,quotaFree:!0,degraded:{source:"cache",pool:t,resetAt:r,ageMs:Number.isFinite(o)&&Number.isFinite(s)?Math.max(0,o-s):null,reason:`${t} pool is exhausted until ${r}; serving the last-known answer instead of going dark`}}}function rp(e,t){let r=fl(t),n=Number(ro(r,"x-ratelimit-reset")),o=Number.isFinite(n)&&n>0?new Date(n*1e3).toISOString():"an unknown reset instant";return new _n(e,o,"GitHub refused the live request",{cause:t})}function VF(e){let t=ro(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function to(e){if(e instanceof _n)return!0;let t=di(e),r=fl(e);return t===429||t===403&&ro(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function ui(e,t=Date.now()){let r=fl(e),n=Number(ro(r,"x-ratelimit-reset"));if(Number.isFinite(n)&&n>=0)return new Date(n*1e3).toISOString();let o=ro(r,"retry-after");if(o==null)return null;let s=Number(o);if(Number.isFinite(s)&&s>=0&&Number.isFinite(t))return new Date(t+s*1e3).toISOString();let i=Date.parse(o);return Number.isFinite(i)?new Date(i).toISOString():null}function di(e){if(xn(e))return typeof e.status=="number"?e.status:void 0}function fl(e){return!xn(e)||!xn(e.response)||!xn(e.response.headers)?{}:e.response.headers}function ro(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function xn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function zF(e){let t=xn(e)?e:{},r=xn(t.data)?t.data:t,o=(xn(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(o)||o<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return o}function JF(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}import{randomUUID as ZF}from"node:crypto";import{mkdir as e1,readFile as t1,rename as r1,rm as n1,writeFile as o1}from"node:fs/promises";import{dirname as s1}from"node:path";var mk="rate_limit",hk={rest:"core",graphql:"graphql",search:"search"},Lt=["rest","graphql","search"];function yl(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Lt],detail:t??"no balance has been asked for yet, so none is known"}}var sp=15e3,es=.15,ml=[{at_or_below_fraction:0,every_ms:sp,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:es,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}];var E6=60*6e4,op=2;function yk(e,t){let r=gk(e),n=gk(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Lt){let l=hk[a],d=n[l],c=XF(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Lt.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 ${Lt.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function ip(e){try{let t=await e.transport();return yk(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...yl(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function ap(e){let t=null;for(let r of Lt){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function bl(e,t){let r=ap(e);if(r==null)return hl(es).every_ms;let n=hl(r.fraction);if(r.remaining>0)return n.every_ms;let o=kk(t.now,r.reset_at);return o==null?n.every_ms:Math.max(sp,Math.min(n.every_ms,o))}function lp(e,t=es){return Math.ceil(e.limit*t)}function bk(e,t,r=es){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<lp(n,r)?"reserved":"open"}function dp(e){let t=e.reservedFraction??es,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:hl(t).every_ms*op,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:hl(t).every_ms,pools:[],unreported_pools:[...Lt],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=bl(r,{now:e.now}),o=e.stalenessMs??n*op,s=kk(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Lt.map(c=>r.pools[c]).filter(c=>c!=null),l=QF(r,t),d=ap(r);return{version:1,origin:"asked",outcome:r.outcome,asked_at:r.asked_at,age_ms:s,threshold_ms:o,stale:i,posture:l,reserved_fraction:t,next_poll_ms:n,pools:a,unreported_pools:r.unreported_pools,reason:i?`this balance is stale: asked ${s==null?"at an unreadable instant":`${s}ms ago`}, past the ${o}ms window, so the posture below is the last one the token confirmed and not the current one`:YF(l,d,r,t)}}function cp(e){if(!pp(e))return!1;let t=e;return t.version===1&&t.origin==="asked"&&(t.outcome==="asked"||t.outcome==="unanswered")&&(t.asked_at===null||typeof t.asked_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.posture=="string"&&typeof t.reserved_fraction=="number"&&typeof t.next_poll_ms=="number"&&Array.isArray(t.pools)&&Array.isArray(t.unreported_pools)&&typeof t.reason=="string"}function YF(e,t,r,n){if(t==null)return r.detail;let o=lp(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 QF(e,t){let r="unknown";for(let n of Lt){if(e.pools[n]==null)continue;let o=bk(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function hl(e){for(let t of ml)if(e<=t.at_or_below_fraction)return t;return ml[ml.length-1]}function XF(e,t,r){if(!pp(r))return null;let n=gl(r.limit),o=gl(r.remaining),s=gl(r.used),i=gl(r.reset);return n==null||n<=0||o==null?null:{pool:e,resource:t,limit:n,remaining:o,used:s??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:o/n}}function up(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${mk}`,{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 kk(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function gl(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function gk(e){return pp(e)?e:{}}function pp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function gp(e){let t=e.maxBytes??Tt["github-balance"].maxBytes;return{async read(){try{let r=Yt(await t1(e.path,"utf8"));return i1(r)?r:null}catch(r){return l1(r)&&r.code==="ENOENT",null}},async write(r){let n=`${Ze(r)}
|
|
76
|
-
`;if(Buffer.byteLength(n)>t)throw new Error(`GitHub balance snapshot exceeds its ${t}-byte lane ceiling`);let s=
|
|
77
|
-
`))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function
|
|
78
|
-
`)){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
|
|
79
|
-
`)){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=
|
|
80
|
-
`),aliases:a,closed_since:o,merged_since:i}}function U1(e,t,r){let n=ts(t),o=ts(n.data),s=Array.isArray(n.errors)?n.errors.map(ts):[],i=z1(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,merged_alias:c,project:u})=>{let p=u.owner+"/"+u.name,g=o[l],f=s.find(b=>kp(b.path,l)||kp(b.path,d)||kp(b.path,c));if(Fk(g)){let b=Pk(g.open_pull_requests),y=Pk(g.open_issues),_=Ak(o[d]),w=Ak(o[c]);if(b!=null&&y!=null&&_!=null&&w!=null)return{project_label:u.project_label,repository:p,outcome:"counted",counts:{open_pull_requests:b,open_issues:y,merged_today:w,recently_closed:_,ready_queue:null,human_queue:null},panorama_fetched_at:r.fetchedAt,queue_fetched_at:r.fetchedAt,detail:`counted ${p} for project ${JSON.stringify(u.project_label)}`}}return i.exhausted||Dk(f)?{project_label:u.project_label,repository:p,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${p} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:u.project_label,repository:p,outcome:"unreachable",counts:null,detail:`${p} is not reachable with the host token: ${wp(f?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function q1(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 Ok(e){if(e.projects.length===0)return q1(e.now);if(_p(e.projects,e.hostTokenRef),e.transport.conditionalList&&e.transport.conditionalCount){let r=Date.parse(e.now),n=Number.isFinite(r)?new Date(Math.floor(r/(60*60*1e3))*60*60*1e3).toISOString():e.now,o=Tk(e.projects,{now:n,closedWindowMs:e.closedWindowMs});return await Ek(e,o)}let t=Tk(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return U1(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}function Ck(e){let t=e.endpoint==null?void 0:K1(e.endpoint),r=np({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n.conditionalCount=async o=>{let s=await r.conditionalRest({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation});return{data:s.data,headers:s.headers,requestCount:1}},n}function K1(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 V1(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Sk)throw new Error(`redskilled activity fetch spans at most ${Sk} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);if(r.queue_labels!=null&&(r.queue_labels.ready===""||r.queue_labels.human===""))throw new Error(`project ${JSON.stringify(r.project_label)} declares an empty queue label: a label that names nothing would be counted as an empty queue, so state both label names or state neither`);t.add(r.project_label)}}function z1(e,t){let r=ts(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(Dk),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 Dk(e){if(e==null)return!1;let t=wp(e.type),r=wp(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function kp(e,t){return Array.isArray(e)&&e.includes(t)}function Pk(e){let t=ts(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function Ak(e){let t=ts(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function ts(e){return Fk(e)?e:{}}function Fk(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function wp(e){return typeof e=="string"?e:""}var xp=2,Ep=xp*rs;function Mk(e){let t=e.stalenessMs??Ep,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 Lk(e){if(!Ik(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)&&Ik(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Ik(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var vp=["open_pull_requests","open_issues","merged_today","ready_queue","human_queue"],jk="this daemon polls no repository, so there are no remote counters to date";function $k(e){let t=e.stalenessMs??Ep,r=e.panoramaStalenessMs??wl,n=e.activity;if(n==null||n.projects.length===0)return{version:1,threshold_ms:t,projects:[],reason:jk};let o=Date.parse(e.now),s=n.projects.map(i=>J1(i,{fetchedAt:n.fetched_at,nowMs:o,threshold:t,panoramaThreshold:r}));return{version:1,threshold_ms:t,projects:s,reason:!Number.isFinite(o)||!Number.isFinite(Date.parse(n.fetched_at))?"these counters carry no readable instant, so none of them can be presented as current":`these counters carry their queue and panorama poll instants as of ${n.fetched_at}`}}function J1(e,t){let r={};for(let n of vp){let o=n==="open_pull_requests"||n==="open_issues"||n==="merged_today",s=o?e.panorama_fetched_at??t.fetchedAt:e.queue_fetched_at??t.fetchedAt,i=Date.parse(s),a=Number.isFinite(t.nowMs)&&Number.isFinite(i)?Math.max(0,t.nowMs-i):null;r[n]=Q1(n,Y1(e,n),e,{fetchedAt:s,ageMs:a,threshold:o?t.panoramaThreshold:t.threshold})}return{project_label:e.project_label,repository:e.repository,outcome:e.outcome,counters:r}}function Y1(e,t){let r=e.counts;if(r==null)return null;switch(t){case"open_pull_requests":return r.open_pull_requests;case"open_issues":return r.open_issues;case"merged_today":return r.merged_today??null;case"ready_queue":return r.ready_queue;case"human_queue":return r.human_queue}}function Q1(e,t,r,n){let o={name:e,value:null,fetched_at:null,age_ms:null,threshold_ms:n.threshold,stale:!1};if(t==null)return{...o,reason:r.outcome==="counted"?`this poll produced no ${e}, so it is absent rather than zero`:r.detail};if(n.ageMs==null)return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:null,threshold_ms:n.threshold,stale:!0,reason:`this ${e} carries no readable instant, so it cannot be presented as current`};let s=n.ageMs>n.threshold;return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:n.ageMs,threshold_ms:n.threshold,stale:s,reason:s?`this ${e} is ${n.ageMs}ms old, past the ${n.threshold}ms window`:`counted ${n.ageMs}ms ago, within the ${n.threshold}ms window`}}function Sp(e){if(!_l(e))return!1;let t=e;return t.version===1&&typeof t.threshold_ms=="number"&&typeof t.reason=="string"&&Array.isArray(t.projects)&&t.projects.every(X1)}function X1(e){if(!_l(e))return!1;let t=e;if(typeof t.project_label!="string"||typeof t.repository!="string"||typeof t.outcome!="string"||!_l(t.counters))return!1;let r=t.counters;return vp.every(n=>Z1(r[n]))}function Z1(e){if(!_l(e))return!1;let t=e;return typeof t.name=="string"&&(t.value===null||typeof t.value=="number")&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.reason=="string"}function _l(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Nk(e,t,r={}){let n=[...e].sort((p,g)=>(oo(g.ts)??0)-(oo(p.ts)??0)),o=n.slice(0,Math.max(0,Math.floor(t))).map(Bk),s=n.filter(p=>p.observed_exit===!0||p.sender_class!=="unknown"&&p.confidence!=="none"),i=s[0]==null?null:Bk(s[0]),a=r.now==null?null:oo(r.now),l=i==null?null:oo(i.ts),d=r.freshnessMs??6e5,c=eI(n,{nowMs:a,freshnessMs:d}),u=r.healthyFleet===!0||a==null||l==null||a-l>d?null:i;return{count:n.length,sender_attributed_count:s.length,recent:o,latest:o[0]??null,latest_sender_attributed:i,current_sender_attributed:u,reaped_at:o[0]?.ts??null,...c==null?{}:{boot_loop:c}}}function Bk(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 eI(e,t){let r=new Map;for(let o of e){if(o.sender_class!=="boot-refused"||o.uptime_s==null||o.uptime_s>2||o.project_label==null||o.project_label===""||oo(o.ts)==null)continue;let s=r.get(o.project_label)??[];s.push(o),r.set(o.project_label,s)}return[...r.entries()].filter(([,o])=>o.length>=3).map(([o,s])=>{let i=s[0],a=oo(i.ts);if(t.nowMs==null||t.nowMs-a>t.freshnessMs)return null;let l=Math.min(...s.map(c=>oo(c.ts))),d=i.detail?.trim()||i.evidence[0]?.trim();return d==null||d===""?null:{project_label:o,count:s.length,span_ms:Math.max(0,a-l),latest_refusal:d}}).filter(o=>o!=null).sort((o,s)=>s.count-o.count||s.span_ms-o.span_ms)[0]??null}function Tp(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Number.isInteger(t.count)&&Array.isArray(t.recent)}function oo(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var Gk=["logs","vitals","display"];function Pp(e,t){if(t===void 0)return e;let r=Gk.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:tI,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:rI},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var tI={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},rI={last_line:null,published_at:null,source:null};var nI=3e4;function Hk(e){let t=e.stalenessMs??nI,r=Ap(e.now),n=e.sampledAt==null?null:Ap(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=>sI(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=Xa(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:dI({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:lI(a),known_projects:aI(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,...p.standing===!0?{standing:!0}:{},...p.queue_depth==null?{}:{queue_depth:p.queue_depth}})),stopped_projects:(e.hostState.stopped_registrations??[]).map(p=>({project_label:p.project_label,at:p.at,...p.standing===!0?{standing:!0}:{},...p.queue_depth==null?{}:{queue_depth:p.queue_depth}})),orphaned_projects:(e.hostState.orphaned_registrations??[]).map(p=>p.project_label),workers:a,github_balance:dp({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Mk({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),remote_counters:$k({activity:e.repositoryActivity??null,now:e.now,...e.activityStalenessMs===void 0?{}:{stalenessMs:e.activityStalenessMs}}),...e.deaths===void 0?{}:{deaths:Nk(e.deaths,e.recentDeathLimit??4,{now:e.now,healthyFleet:(e.hostState.registrations??[]).length>0&&(e.hostState.registrations??[]).every(p=>e.hostState.workers.filter(g=>g.project_label===p.project_label).length>=Math.max(0,p.target))})},engine:oI(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function oI(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 sI(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=pi(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=Ap(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:iI(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function iI(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 aI(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 lI(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 dI(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 Ap(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function xl(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.daemon,n=t.staleness,o=t.host;return t.version===1&&typeof t.generated_at=="string"&&r!=null&&typeof r=="object"&&Number.isInteger(r.pid)&&typeof r.daemon_version=="string"&&typeof r.protocol_version=="number"&&n!=null&&typeof n=="object"&&typeof n.stale=="boolean"&&typeof n.threshold_ms=="number"&&Array.isArray(n.unmeasured_workers)&&o!=null&&typeof o=="object"&&Number.isInteger(o.worker_count)&&Number.isInteger(o.project_count)&&typeof o.observed_rss_bytes=="number"&&Array.isArray(t.projects)&&Array.isArray(t.workers)&&(t.known_projects===void 0||Array.isArray(t.known_projects)&&t.known_projects.every(s=>typeof s=="string"))&&(t.registered_projects===void 0||Array.isArray(t.registered_projects)&&t.registered_projects.every(s=>typeof s=="string"))&&(t.lapsed_projects===void 0||Array.isArray(t.lapsed_projects)&&t.lapsed_projects.every(cI))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(uI))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Lk(t.repository_activity))&&(t.remote_counters===void 0||Sp(t.remote_counters))&&(t.github_balance===void 0||cp(t.github_balance))&&(t.deaths===void 0||Tp(t.deaths))&&(t.engine===void 0||pI(t.engine))&&(t.metrics===void 0||Eb(t.metrics))}function cI(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")&&(t.standing===void 0||typeof t.standing=="boolean")&&(t.queue_depth===void 0||Number.isInteger(t.queue_depth))&&typeof t.reason=="string"}function uI(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.standing===void 0||typeof t.standing=="boolean")&&(t.queue_depth===void 0||Number.isInteger(t.queue_depth))}function pI(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 Uk={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 qk(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var El={$schema:"https://tr.designtokens.org/format/2025.10/schema.json",$description:"RedDB design tokens \u2014 the canonical, machine-readable source of truth. DTCG 2025.10 (Design Tokens Format Module, first stable version). Hand-authored; tokens.css and tailwind-preset.js are build outputs of generators/build-tokens.mjs \u2014 never hand-edit them. Locked brand values: red #ff2056, ink #07080a, paper #f4f5f7 (from the marks, issues #13/#16); type Space Grotesk + JetBrains Mono (ADR 0001).",color:{$type:"color",$description:"Primitive palette (raw scale) and semantic roles (aliases). Feedback colours (success/warning/danger) are intentionally not published yet; issue #10 locked --ok #4ade80, --warn #fbbf24, and --danger #ff5470, with the rule that the accent never signals error.",red:{$description:"The brand accent. red.500 is the locked mark colour #ff2056; the other stops are derived by mixing toward white/black for hover, active, and on-light emphasis.","400":{$value:{colorSpace:"srgb",components:[1,.3882,.5373],hex:"#ff6389"}},"500":{$value:{colorSpace:"srgb",components:[1,.1255,.3373],hex:"#ff2056"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900"],failsOn:["color.neutral.800"]},asFill:{textPasses:["color.neutral.950"],textFails:["color.neutral.0"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.8196,.102,.2745],hex:"#d11a46"}},"700":{$value:{colorSpace:"srgb",components:[.6784,.0863,.2275],hex:"#ad163a"}}},neutral:{$description:"Cool-gray ramp on the ink\u2194paper axis. neutral.50 is the locked paper #f4f5f7; neutral.950 is the locked ink #07080a; intermediate stops are hand-tuned on the same hue.","0":{$value:{colorSpace:"srgb",components:[1,1,1],hex:"#ffffff"}},"50":{$value:{colorSpace:"srgb",components:[.9569,.9608,.9686],hex:"#f4f5f7"}},"100":{$value:{colorSpace:"srgb",components:[.9059,.9137,.9333],hex:"#e7e9ee"}},"200":{$value:{colorSpace:"srgb",components:[.8275,.8392,.8706],hex:"#d3d6de"}},"300":{$value:{colorSpace:"srgb",components:[.702,.7216,.7686],hex:"#b3b8c4"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"400":{$value:{colorSpace:"srgb",components:[.5451,.5686,.6314],hex:"#8b91a1"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"500":{$value:{colorSpace:"srgb",components:[.4,.4275,.4941],hex:"#666d7e"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:[],failsOn:["color.neutral.950","color.neutral.900","color.neutral.800"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.2902,.3176,.3843],hex:"#4a5162"}},"700":{$value:{colorSpace:"srgb",components:[.2,.2235,.2863],hex:"#333949"}},"800":{$value:{colorSpace:"srgb",components:[.1176,.1333,.1765],hex:"#1e222d"}},"900":{$value:{colorSpace:"srgb",components:[.0706,.0784,.1059],hex:"#12141b"}},"950":{$value:{colorSpace:"srgb",components:[.0275,.0314,.0392],hex:"#07080a"}}},brand:{$description:"Semantic brand roles. on-primary is the black R the mark sets on the red field.",primary:{$value:"{color.red.500}"},hover:{$value:"{color.red.600}"},active:{$value:"{color.red.700}"},"on-primary":{$value:"{color.neutral.950}"}},ink:{$value:"{color.neutral.950}",$description:"The near-black foreground; the brand is dark-first."},paper:{$value:"{color.neutral.50}",$description:"The off-white ground."},surface:{muted:{$value:"{color.neutral.100}"}},border:{subtle:{$value:"{color.neutral.200}"},strong:{$value:"{color.neutral.300}"}}},fontFamily:{$type:"fontFamily",$description:"Space Grotesk for display and body, JetBrains Mono for code (ADR 0001). Space Grotesk has no italic and no weight 300; <em> maps to weight 500 and italic exists only in the mono.",sans:{$value:["Space Grotesk","system-ui","-apple-system","Segoe UI","sans-serif"]},mono:{$value:["JetBrains Mono","ui-monospace","SFMono-Regular","Menlo","monospace"]}},fontWeight:{$type:"fontWeight",$description:"Weight 300 is excluded (dark-first: thin strokes lose weight to halation).",regular:{$value:400},medium:{$value:500},bold:{$value:700}},fontSize:{$type:"dimension",$description:"Modular scale, ~1.2 (minor third) from a 1rem base.",xs:{$value:{value:.75,unit:"rem"}},sm:{$value:{value:.875,unit:"rem"}},base:{$value:{value:1,unit:"rem"}},lg:{$value:{value:1.125,unit:"rem"}},xl:{$value:{value:1.25,unit:"rem"}},"2xl":{$value:{value:1.5,unit:"rem"}},"3xl":{$value:{value:1.875,unit:"rem"}},"4xl":{$value:{value:2.25,unit:"rem"}},"5xl":{$value:{value:3,unit:"rem"}},"6xl":{$value:{value:3.75,unit:"rem"}}},lineHeight:{$type:"number",$description:"Unitless multipliers.",tight:{$value:1.1},snug:{$value:1.25},normal:{$value:1.5},relaxed:{$value:1.65}},letterSpacing:{$type:"dimension",tight:{$value:{value:-.02,unit:"em"}},normal:{$value:{value:0,unit:"em"}},wide:{$value:{value:.04,unit:"em"}}},spacing:{$type:"dimension",$description:"4px base grid; 1 unit = 0.25rem.","0":{$value:{value:0,unit:"rem"}},px:{$value:{value:1,unit:"px"}},"0.5":{$value:{value:.125,unit:"rem"}},"1":{$value:{value:.25,unit:"rem"}},"2":{$value:{value:.5,unit:"rem"}},"3":{$value:{value:.75,unit:"rem"}},"4":{$value:{value:1,unit:"rem"}},"5":{$value:{value:1.25,unit:"rem"}},"6":{$value:{value:1.5,unit:"rem"}},"8":{$value:{value:2,unit:"rem"}},"10":{$value:{value:2.5,unit:"rem"}},"12":{$value:{value:3,unit:"rem"}},"16":{$value:{value:4,unit:"rem"}},"20":{$value:{value:5,unit:"rem"}},"24":{$value:{value:6,unit:"rem"}}},radius:{$type:"dimension",$description:"The symbol's clipped corner is a hard geometric cut, so brand chrome favours restrained radii.",none:{$value:{value:0,unit:"rem"}},sm:{$value:{value:.125,unit:"rem"}},md:{$value:{value:.375,unit:"rem"}},lg:{$value:{value:.5,unit:"rem"}},xl:{$value:{value:.75,unit:"rem"}},"2xl":{$value:{value:1,unit:"rem"}},full:{$value:{value:9999,unit:"px"}}},duration:{$type:"duration",instant:{$value:{value:75,unit:"ms"}},fast:{$value:{value:150,unit:"ms"}},normal:{$value:{value:250,unit:"ms"}},slow:{$value:{value:400,unit:"ms"}}},easing:{$type:"cubicBezier",$description:"Standard for most transitions; entrance decelerates, exit accelerates, emphasized for hero motion.",standard:{$value:[.4,0,.2,1]},entrance:{$value:[0,0,.2,1]},exit:{$value:[.4,0,1,1]},emphasized:{$value:[.2,0,0,1]}},shadow:{$type:"shadow",$description:"Elevation cast in ink at low alpha; tuned for a dark-first surface.",sm:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.12,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:1,unit:"px"},blur:{value:2,unit:"px"},spread:{value:0,unit:"px"}}},md:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.16,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:2,unit:"px"},blur:{value:8,unit:"px"},spread:{value:0,unit:"px"}}},lg:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.2,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:8,unit:"px"},blur:{value:24,unit:"px"},spread:{value:0,unit:"px"}}},xl:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.24,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:16,unit:"px"},blur:{value:48,unit:"px"},spread:{value:0,unit:"px"}}}}};var ns=class extends Error{name="BrandTokenError";constructor(t,r,n){super(n),this.code=t,this.tokenName=r}};function fi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}if(!fi(El)||!fi(El.color))throw new ns("TOKEN_MALFORMED","color","The vendored DTCG document has no color token group.");var gI=El;function mI(e){let t=gI;for(let r of e.split(".")){if(!fi(t)||!(r in t))return;t=t[r]}return t}function Op(e,t){return new ns("TOKEN_MALFORMED",e,`Brand color token "${e}" is malformed: ${t}`)}function Kk(e,t,r){if(r.has(e))throw new ns("TOKEN_ALIAS_CYCLE",t,`Brand color token "${t}" contains an alias cycle at "${e}".`);let n=mI(e);if(n===void 0)throw new ns("TOKEN_NOT_FOUND",t,`Brand color token "${t}" was not found (resolved path "${e}").`);if(!fi(n)||!("$value"in n))throw Op(t,`"${e}" is not a token with a $value`);let o=n.$value;if(typeof o=="string"){let s=/^\{([^{}]+)\}$/.exec(o);if(s?.[1]===void 0)throw Op(t,`"${e}" has an invalid alias`);return Kk(s[1],t,new Set([...r,e]))}if(!fi(o)||typeof o.hex!="string"||!/^#[0-9a-fA-F]{6}$/.test(o.hex))throw Op(t,`"${e}" has no six-digit hex color value`);return{name:e.startsWith("color.")?e.slice(6):e,hex:o.hex.toLowerCase()}}function hI(e){let t=e.startsWith("color.")?e:`color.${e}`;return Kk(t,e,new Set)}function yI(e){return hI(e).hex}function Vk(e,t){let r=yI(e),n=Number.parseInt(r.slice(1,3),16),o=Number.parseInt(r.slice(3,5),16),s=Number.parseInt(r.slice(5,7),16);return`\x1B[${t};2;${n};${o};${s}m`}function Mr(e){return Vk(e,38)}function Cp(e){return Vk(e,48)}var zk=Cp("brand.primary"),Jk=Mr("brand.on-primary"),vl=Cp("neutral.900"),Sl=Mr("paper"),Tl=Mr("paper"),Pl="\x1B[39m",tr=Mr("neutral.400"),iq=Mr("neutral.500"),Yk=Mr("neutral.300"),Qk=Mr("neutral.0"),Xk=Mr("neutral.700"),Zk=Mr("red.500"),on="\x1B[49m",Lr="\x1B[0m",Dp="\x1B[1m",Fp="\x1B[22m";var bI=/\x1b\[[0-9;]*m/g,kI=/(\x1b\[[0-9;]*m)/,RI=/^\x1b\[[0-9;]*m$/;function so(e){return e.replace(bI,"")}function wI(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function rr(e){return[...so(e)].length}function et(e,t){if(t<=0)return"";if(rr(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(kI))if(i!==""){if(RI.test(i)){s+=i,o=!wI(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 gi(e,t){return e+" ".repeat(Math.max(0,t-rr(e)))}function Ip(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 mr(e){if(!Number.isFinite(e)||e<=0)return"0B";let t=["B","K","M","G","T"],r=e,n=0;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r>=100||n===0?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")}${t[n]}`}function mi(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function En(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return mi(e);if(e<=0)return"0";let t=(Math.round(e*10)/10).toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function jr(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 os(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var eR=[{name:"ready_queue",key:"rdy"},{name:"open_issues",key:"iss"},{name:"open_pull_requests",key:"pr"},{name:"merged_today",key:"mrg"}];function hi(e,t){let r=Al(e,t),n=tR(e,t),o=[];for(let{name:s,key:i}of eR){let a=xI(i,r?.counters[s],_I(n,s));a!=null&&o.push(a)}return o}function Mp(e,t){let r=Al(e,t),n=tR(e,t);return{open_pull_requests:r?.counters.open_pull_requests.value??n?.counts?.open_pull_requests??null,merged_today:r?.counters.merged_today.value??n?.counts?.merged_today??null,recently_closed:n?.counts?.recently_closed??null,open_issues:r?.counters.open_issues.value??n?.counts?.open_issues??null,ready_queue:r?.counters.ready_queue.value??null,human_queue:r?.counters.human_queue.value??null,stale:n?.stale===!0}}function Lp(e,t){return Al(e,t)!=null}function Al(e,t){return t==null?null:(e.remote_counters?.projects??[]).find(r=>r.project_label===t)??null}function tR(e,t){return t==null?null:(e.repository_activity?.projects??[]).find(r=>r.project_label===t)??null}function _I(e,t){let r=e?.counts;return r==null?null:t==="open_pull_requests"?r.open_pull_requests:t==="open_issues"?r.open_issues:t==="merged_today"?r.merged_today??null:null}function xI(e,t,r){return t==null?r==null?null:`${e}=${r}`:t.value==null?null:`${e}=${t.value}${t.stale?`(${EI(t.age_ms)})`:""}`}function EI(e){return jr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}var yi="!unregistered",jp="!lapsed",bi="\u21E1",hr="\u2020",ss="\u25D0",is="\u25EF",$p="\u21B3",Bp="redskilled unreachable \u2014 Worker state unknown";function as(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Ol(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function ki(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function Np(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 Cl(e,t){return e.startsWith(t)?e.slice(t.length):e}function $r(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function Gp(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:$r(Cl(n.cells.iss,"iss="),n.cells.phase),state:$r(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:$r(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:$r(Cl(n.cells.iss,"iss=")),runner:$r(Cl(n.cells.run,"run=")),phase:$r(n.cells.phase),progress:$r(n.cells.bar),elapsed:$r(n.cells.elapsed),eta:Cl($r(n.cells.eta),"eta="),activity:$r(n.cells.hb,t[o]?.log.last_line)}))}}var vn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Ut={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},vI=" ",rR="\u2588",SI="\u25B6",TI="\u2717",PI="\u2591",AI=new Set(["gate","push-pr","merge","cascade"]),OI=new Set(["requeue"]),CI="repair";function Ri(e){return e.display?.origin===CI}function ls(e,t=Ut){let r=ki(e,t.project),n=as(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(b=>Fl(b,t,e.generated_at)),i=UI(s),a=o.map((b,y)=>({worker_id:b.worker_id,project_label:b.project_label,mine:t.project!=null&&b.project_label===t.project,cells:s[y],line:et(qI(s[y],i),t.maxWidth)})),l=Gp(a,o,t.maxWidth),d=FI(e,t,n,r),c=n.length-o.length,u=[d.line,...BI(e,t),...a.map(b=>b.line)];c>0&&u.push(et(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...jI(e,t)),u.push(...LI(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Ut.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),et(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:vn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function Fl(e,t,r){let n=e.display??Uk,o=Ri(e),s=[n.runner,n.model==null?null:Ip(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&AI.has(n.phase),a=o||i||n.origin!=null&&OI.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:oR(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:jr(qk(e,r)),eta:n.eta==null?"":`eta=${jr(n.eta*1e3)}`,hb:DI(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":HI(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${mi(n.tokens)}`,ctx:n.context==null?"":`ctx=${mi(n.context)}`,tls:a||n.tools==null?"":`tls=${n.tools}`,rsn:a||n.reasoning==null?"":`rsn=${n.reasoning}`,txt:a||n.text==null?"":`txt=${n.text}`}}function DI(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} ${jr(Math.max(0,n-r))}`}function oR(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 rR.repeat(Math.floor(t));let o=e.failed?TI:SI;return`${rR.repeat(n)}${o}${PI.repeat(Math.floor(t)-n-1)}`}function FI(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(A=>A.project_label===t.project),s=Mp(e,t.project),i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=WI(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=[II(l??"host",c,d!=null&&d.current===!1?bi:"")];(n==="unregistered"||n==="name-only")&&g.push(yi),n==="lapsed"&&g.push(jp);let f=p?.history_48h==null?null:$I(p.history_48h);f!=null&&g.push(io(f));let b=e.workers.filter(Ri).length;if(b>0){let A=Math.max(0,e.host.worker_count-b);g.push(`${io(`workers=${A} coding +`)} ${vl}${Sl}${b} repairing${on}${tr}`)}else g.push(io(`wrk=${r.length}/${e.host.worker_count}`));let y=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(io(`${y} reserve=${i.interactive_reservation} interactive`)),g.push(io(GI(i))),a!=null&&g.push(`${vl}${Sl}${a}${on}${tr}`);for(let A of hi(e,t.project))g.push(io(A));s.stale&&!Lp(e,t.project)&&g.push("!counts stale");let _=p==null?null:sR(p.hour),w=_==null?null:io(_);if(w!=null&&g.push(w),u!=null&&u.count>0&&u.latest!=null){let A=u.boot_loop,$=os(A?.latest_refusal),L=Object.prototype.hasOwnProperty.call(u,"current_sender_attributed")?u.current_sender_attributed??null:u.latest;g.push(A==null?`${hr}${u.count}${L==null?"":` ${L.sender_class}`}`:`${hr}${u.count} boot-refused \xD7${A.count} in ${MI(A.span_ms)}`+($==null?"":` \u2014 ${$}`))}if(e.staleness.stale){let A=e.staleness.age_ms;g.push(A==null?"!unmeasured":`!stale ${Math.round(A/1e3)}s`)}let O=`${g.join(" \xB7 ")}${Lr}`,v=_!=null&&rr(O)>t.maxWidth?`${g.filter(A=>A!==w).join(" \xB7 ")}${Lr}`:O;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:et(v,t.maxWidth)}}function II(e,t,r){return`${zk}${Jk}\xBB ${Dp}${e}${Fp} v${t}${r}${on}${tr}`}function io(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Tl}${n}${Pl}${o}${tr}`)}function MI(e){return jr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function sR(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${En(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${En(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${En(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function LI(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?is:ss,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[et(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function jI(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[et(`${hr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>et(`${hr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(et(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function $I(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${En(t)} ${Wp(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${En(r)} ${Wp(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function BI(e,t){let r=e.metrics;return r==null?[et("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[et("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[nR("tokens",r.history_48h.tokens_per_hour,t),nR("Tickets",r.history_48h.tickets_per_hour,t)]}var Dl=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function nR(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${En(o)}/h ${Wp(t.trend)}`.trim();if(r.maxWidth<72)return et(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return et(`${n} 48h ${NI(t)} \xB7 ${a}${l}`,r.maxWidth)}function NI(e){let t=e.buckets.flatMap(n=>n.value==null?[]:[Math.max(0,n.value)]),r=Math.max(0,...t);return e.buckets.map(n=>n.value==null?"\xB7":r===0?Dl[0]:Dl[Math.min(Dl.length-1,Math.floor(Math.max(0,n.value)/r*(Dl.length-1)))]).join("")}function Wp(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function GI(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${mr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${mr(e.memory_used_bytes)}/${mr(e.memory_ceiling_bytes)}${t}`}function WI(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 HI(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 UI(e){let t=Object.fromEntries(vn.map(r=>[r,0]));for(let r of e)for(let n of vn)t[n]=Math.max(t[n],rr(r[n]));return t}function qI(e,t){let r=vn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>Il(o,gi(e[o],s===r.length-1?rr(e[o]):t[o])));return`${on}${tr}${n.join(vI)}${Lr}`}function Il(e,t){if(e==="wid")return`${Dp}${t}${Fp}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${vl}${Sl}${t.trimEnd()}${on}${tr}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${Yk}${n}`).replace("\u25B6",`${Qk}\u25B6`).replace("\u2717",`${Zk}\u2717`).replace(/░+/g,n=>`${Xk}${n}`)+tr;let r=t.indexOf("=");return r>0?`${Tl}${t.slice(0,r+1)}${Pl}${t.slice(r+1)}${tr}`:t}function Up(e){return Object.freeze({none:!0,reason:e})}function Ml(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function Hp(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=>Hp(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=Hp(o,t);return Object.freeze(r)}finally{t.delete(e)}}function KI(e){let t=Hp(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function ds(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=KI(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ne={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function Sn(e,t=Ne){let r=ki(e,t.project),n=as(e,t),o=Ol(e,t),s=XI(e,t.project,r),i=zI(e,t,n,r,s.prose),a=Np({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:oM(i,VI(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||rr(f)<=t.maxWidth)break}let d=et(l.line,t.maxWidth),c=l.detail==="workers"?tM(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let b=t.verbose?rM(g,t):null;return b==null?[c.lines[f]]:[c.lines[f],b]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function Jp(e){let t=e.options??Ne,r=et(Bp,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 VI(e,t){return e==="projects"?t.map(nM):[]}function zI(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${qp(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(aR(e,t))):n==="matched"||n==="unregistered"?(s.push(qp(r,r.length)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(qp(r,r.length)),s.push(yi)):s.push(o),t.mode!=="global"&&s.push(...hi(e,t.project)),t.mode!=="global"&&(n==="matched"||n==="unregistered"||n==="name-only")&&s.push(aR(e,t)),s.push(iR(e));let a=JI(e);a!=null&&s.push(a);let l=YI(e);l!=null&&s.push(l),e.staleness.stale&&s.push(lR(e));let d=s.join(" ");return!i||rr(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,iR(e),e.staleness.stale?lR(e):null].filter(c=>c!=null).join(" ")}function qp(e,t){let r=e.filter(Ri).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function iR(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${bi}`}function JI(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${is} quota spent`:t.posture==="reserved"?`${ss} quota band`:null}function YI(e){let t=e.deaths;if(t==null)return null;let r=t.sender_attributed_count??t.count,n=t.sender_attributed_count===void 0?t.latest:t.latest_sender_attributed??null;if(r<=0||n==null)return null;let o=t.boot_loop;if(o!=null){let i=os(o.latest_refusal);return`${hr}${r} boot-refused \xD7${o.count} in ${QI(o.span_ms)}`+(i==null?"":` \u2014 ${i}`)}let s=Object.prototype.hasOwnProperty.call(t,"current_sender_attributed")?t.current_sender_attributed??null:n;return s==null?`${hr}${r}`:`${hr}${r} ${s.sender_class}`}function QI(e){return jr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function XI(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return ds({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:Up("this socket cannot safely replace a registration owned by an unreachable daemon")});if(r==="stopped"){let n=e.stopped_projects?.find(s=>s.project_label===t),o=n?.standing===!0&&(n.queue_depth??0)>0?`queue ${n.queue_depth}, drain STOPPED \u2014 `:"";return ds({state:`${o}project unknown \u2014 ${t} was stopped${n==null?"":` at ${Kp(n.at)}`}`,repair:Ml()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${Kp(n.registered_at)})`,s=n.standing===!0&&(n.queue_depth??0)>0?`queue ${n.queue_depth}, drain STOPPED \u2014 `:"";return ds({state:`${s}project unknown \u2014 ${t} lapsed at ${Kp(n.at)}${o}`,repair:Ml()})}return ds({state:`project unknown \u2014 ${t} lapsed`,repair:Ml()})}return r==="unresolved"?ds({state:"project unknown \u2014 this directory resolved to no project",repair:Up("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function Kp(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function aR(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?`${mr(r)}/${mr(n)}`:mr(r)}function lR(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}var ZI=["txt","rsn","ctx","tks","tls","eta","base","elapsed","run","org","loc"];function eM(e,t,r,n){let o=r.map(s=>Il(s,gi(e[s],t[s])));return et(`${on}${tr}${o.join(" ")}${Lr}`,n)}function tM(e,t,r){let n=e.map(a=>Fl(a,t,r)),o=vn.filter(a=>n.some(l=>rr(l[a])>0)),s=[...o],i=Vp(n,s);for(let a of ZI){if(s.length<=1||zp(i,s)<=t.maxWidth)break;let l=s.indexOf(a);l<0||(s.splice(l,1),i=Vp(n,s))}for(;s.length>1&&zp(i,s)>t.maxWidth;)s.pop(),i=Vp(n,s);return{lines:n.map(a=>eM(a,i,s,t.maxWidth)),degraded:s.length<o.length||zp(i,s)>t.maxWidth}}function Vp(e,t){let r=Object.fromEntries(vn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],rr(n[o]));return r}function zp(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function rM(e,t){let r=os(e.log.last_line);return r==null?null:et(` ${$p} ${dR(e,t.mode)}: ${r}`,t.maxWidth)}function dR(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function nM(e){return`${e.project_label} ${e.worker_count}w ${mr(e.observed_rss_bytes)}`}function oM(e,t,r){return[e,...t].join(r)}var Ll=1;async function Pn(e,t){return await $a(e,t,"redskilled daemon")}function Tn(e){return Number.isInteger(e)&&e>=0}function uR(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.mode!=="report"&&t.mode!=="reap"||t.census===null||typeof t.census!="object"||Array.isArray(t.census)||t.actions===null||typeof t.actions!="object"||Array.isArray(t.actions))return!1;let r=t.census,n=t.actions;return r.version===1&&Tn(r.active_worker_units)&&Tn(r.daemon_held_workers)&&Tn(r.stamped_orphans)&&Tn(r.unstamped_suspects)&&Tn(r.dump_files)&&Tn(n.adopted)&&Tn(n.reaped)&&Tn(n.suspects)}function pR(e){let t=[...e.workers??[]],r=new Map;for(let n of t)r.set(n.project_label,(r.get(n.project_label)??0)+1);return{version:1,protocol_version:Ll,daemon_version:e.daemonVersion,machine_id_hash:e.machineIdHash,session_key_hash:e.sessionKeyHash,pid:e.pid,started_at:e.startedAt,...e.ceiling==null?{}:{ceiling:e.ceiling},...e.scope==null?{}:{scope:e.scope},...e.requestHealth==null?{}:{request_health:e.requestHealth},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:lM(e),...e.demand==null?{}:{demand:e.demand},...e.lapses==null||e.lapses.length===0?{}:{lapsed_registrations:[...e.lapses]},...e.stops==null||e.stops.length===0?{}:{stopped_registrations:[...e.stops]},...e.orphanedRegistrations==null||e.orphanedRegistrations.length===0?{}:{orphaned_registrations:[...e.orphanedRegistrations]},birth_latches:[...e.birthLatches??[]],budget_accounting:Tb(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:dM(e)}}function lM(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:Vo(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 dM(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 fR(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||mM(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Pb(t.budget_accounting)&&(t.scope===void 0||e0(t.scope))&&(t.request_health===void 0||cM(t.request_health))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(ri))&&(t.demand===void 0||Gb(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(pM))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(fM))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(gM))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(uM))&&(t.upgrade===void 0||hM(t.upgrade))}function cM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.status==="healthy"||t.status==="degraded")&&Number.isInteger(t.consecutive_misses)&&Number.isInteger(t.miss_threshold)&&(t.last_probe_at===null||typeof t.last_probe_at=="string")&&(t.last_success_at===null||typeof t.last_success_at=="string")&&(t.last_failure_at===null||typeof t.last_failure_at=="string")&&typeof t.detail=="string"}function uM(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 pM(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)&&(t.standing===void 0||typeof t.standing=="boolean")&&(t.queue_depth===void 0||Number.isInteger(t.queue_depth))&&typeof t.detail=="string"}function fM(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"&&(t.standing===void 0||typeof t.standing=="boolean")&&(t.queue_depth===void 0||Number.isInteger(t.queue_depth))&&typeof t.detail=="string"}function gM(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 mM(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 hM(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||yM(t.major_hold))}function yM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{spawnSync as UM}from"node:child_process";import{readdir as qM,readFile as Hl,readlink as KM}from"node:fs/promises";import{join as wi,normalize as VM,sep as zM}from"node:path";var bM=e=>new Promise(t=>setTimeout(t,e));function kM(e){try{return process.kill(e,0),!0}catch{return!1}}function RM(e){try{return process.kill(-e,0),!0}catch(t){return t.code==="EPERM"?!0:kM(e)}}function wM(e,t){try{process.kill(-e,t)}catch{try{process.kill(e,t)}catch{}}}function _M(e,t){try{process.kill(-e,t)}catch{}}var xM={isAlive:RM,signal:wM,signalGroup:_M,sleep:bM};async function jl(e,t={}){let r=t.io??xM,n=t.pollMs??100,o=t.graceTries??20,s=t.killTries??10;r.signal(e,"SIGTERM");for(let i=0;i<o;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}r.signal(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}if(!r.isAlive(e))return!0;r.signalGroup?.(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}return!r.isAlive(e)}import{spawn as $M,spawnSync as rf}from"node:child_process";import{existsSync as tf}from"node:fs";import{delimiter as DM,join as xR}from"node:path";import{join as gR}from"node:path";import{existsSync as EM}from"node:fs";import{createRequire as vM}from"node:module";var mR="redskilled-job-object.node",ao=100;function cs(e){return{available:!1,reason:e}}function SM(e,t,r){return[gR(r,"prebuilds",`${e}-${t}`,mR),gR(r,"native","build","Release",mR)]}function hR(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return cs(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??PM(),o=e.exists??EM,s=SM(t,r,n),i=s.find(d=>o(d));if(i==null)return cs(`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??vM(import.meta.url),l;try{l=a(i)}catch(d){return cs(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return TM(l)?{available:!0,binding:l}:cs(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function TM(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function PM(){return new URL("..",import.meta.url).pathname}function yR(e){let t=e??{},r=[],n=AM(t);n==null&&(t.memory_max??t.memory_high)!=null&&r.push("the declared memory budget could not be reduced to bytes, so the job carries no memory ceiling");let o;return t.cpu_weight!=null&&(t.cpu_weight<ao?o=Math.max(1,Math.min(100,Math.round(t.cpu_weight))):r.push(`cpu_weight=${t.cpu_weight} is at or above the fair share of ${ao}, and Windows CPU rate control is an absolute cap rather than a share, so no rate limit is set`)),{...n!=null?{memory_limit_bytes:n.bytes,memory_budget_name:n.name,memory_budget_declared:n.declared}:{},...o!=null?{cpu_rate_percent:o}:{},kill_on_close:!0,...r.length>0?{note:r.join("; ")}:{}}}function AM(e){return pi({budget:e})}var $l=5,bR=19;function Yp(e){return{available:!1,reason:e}}var OM="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 RR(e,t){let r=e??{},n=[],o;if(!t.canRenice)n.push("nice is not on this host, so no priority control was applied and the Worker competes with interactive work");else if(r.cpu_weight==null)o=$l;else if(r.cpu_weight<ao){let a=Math.round(bR*(ao-r.cpu_weight)/ao);o=Math.min(bR,Math.max($l,a))}else o=$l,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${ao}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${$l}`);let s=kR(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=kR(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:OM,...n.length>0?{note:n.join("; ")}:{}}}function Qp(e){let{limits:t}=e,r=["ulimit -c 0"];return t?.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t?.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t?.nice!=null&&e.nice!=null?`exec ${CM(e.nice)} -n ${t.nice} "$@"`:'exec "$@"'),["-c",r.join(`
|
|
81
|
-
`),"--",e.command,...e.args]}function
|
|
82
|
-
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function
|
|
83
|
-
`)),i,a=!1;async function l(){let g=[],f=!0;try{g=await Promise.resolve(e.active_worker_units?.()??[])}catch{f=!1}let b;try{b=e.census==null?await
|
|
84
|
-
`,{encoding:"utf8",mode:384}),await
|
|
85
|
-
`);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
|
|
86
|
-
`),aliases:n}}function
|
|
87
|
-
`);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
|
|
88
|
-
`)}function
|
|
89
|
-
`);
|
|
90
|
-
`),c=`${t}.${process.pid}.${
|
|
91
|
-
`)){let n=r.trim().startsWith("ExecStart=")?r.trim().slice(10).trim():void 0;n&&(t=n.split(/\s+/).map(o=>o.startsWith('"')&&o.endsWith('"')&&o.length>1?o.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\"/g,'"'):o))}return t}function
|
|
75
|
+
`),aliases:r}}function gk(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 o1=pk.plugin(ju,cl);function hk(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function yk(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}var es=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}},En=class extends Error{pool;resetAt;constructor(t,r,n,o){super(`${t} pool is exhausted; parked until ${r}${n?` (${n})`:""}`,o),this.name="GithubPoolUnavailableError",this.pool=t,this.resetAt=r}};function sp(e){let t=e.etags??hk(),r=e.now??(()=>new Date().toISOString()),n=e.timeoutMs??il(),o=e.balanceTimeoutMs??Math.min(n||1e4,1e4),s=Du(e.budgetGate??Cu()),i=ai({...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},timeoutMs:n}),a=new o1({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},request:{fetch:i},retry:{doNotRetry:[304,400,401,403,404,410,422,429,451],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),l=async()=>{if(e.balance===void 0)return null;try{return await al("balance read",o,async()=>await e.balance()??null)}catch{return null}},d=(w,A)=>{if(!s)return;let x=w?.pools[A]??null;if(x!==null&&x.remaining<=0)throw new En(A,x.reset_at)},c=async w=>{let A=t.get(w.cacheKey),x=s?(await l())?.pools[w.operation.budget]??null:null;if(x!==null&&x.remaining<=0){if(A!==void 0)return mk(A,w.operation.budget,x.reset_at,r());throw new En(w.operation.budget,x.reset_at)}let O={...w.parameters??{}},$=vn(O.headers)?O.headers:{};O.headers={...$,...A?{"if-none-match":A.etag}:{}};try{let L=await a.request(w.route,O),B=L.headers,F=no(B,"etag");return F!==void 0&&t.set(w.cacheKey,{etag:F,data:L.data,headers:B,storedAt:r()}),await e.attribution?.record({operation:w.operation,cost:1,actor:w.actor}),{data:L.data,headers:B,quotaFree:!1}}catch(L){if(ci(L)===304){if(A===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(w.cacheKey)} without a held answer to reuse`,{cause:L});let B=hl(L),F={...A.headers,...B},W=no(F,"etag")??A.etag;return t.set(w.cacheKey,{etag:W,data:A.data,headers:F,...A.storedAt?{storedAt:A.storedAt}:{}}),await e.attribution?.record({operation:w.operation,cost:0,actor:w.actor}),{data:A.data,headers:F,quotaFree:!0}}if(ci(L)===401)throw new es({cause:L});if(ro(L)){if(A!==void 0){let B=op(w.operation.budget,L);return mk(A,w.operation.budget,B.resetAt,r())}throw op(w.operation.budget,L)}throw L}},u=new Map,p=!1,g=async(w,A)=>{let x=w.input,O=x.kind==="pr";try{let $=await c({cacheKey:x.cacheKey,route:O?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:x.owner,repo:x.repo,...O?{pull_number:x.number}:{issue_number:x.number}},operation:x.operation,actor:x.actor});w.resolve({data:x.project?x.project($.data,"rest"):$.data,surface:"rest",quotaFree:$.quotaFree,...A?{routing:A}:{}})}catch($){w.reject($)}},f=async(w,A)=>{try{let x=fk(w.map(({input:F})=>F)),O=await a.graphql(x.query),$=gk(x,O),L=i1(O),B=w[0].input;await e.attribution?.record({operation:{key:B.operation.key,budget:"graphql"},cost:L,actor:a1(w.map(({input:F})=>F.actor))}),$.forEach((F,W)=>{let U=w[W];F.value===null?U.reject(new Error(`GitHub returned no ${F.read.kind} #${F.read.number} from the coalesced query`)):U.resolve({data:U.input.project?U.input.project(F.value,"graphql"):F.value,surface:"graphql",quotaFree:!1,...A?{routing:A}:{}})})}catch(x){let O=ci(x)===401?new es({cause:x}):x;w.forEach($=>$.reject(O))}},b=async()=>{try{let w=await l(),A=yk(w);p=!1;let x=[...u.values()];u.clear(),await h(x,w,A)}catch(w){p=!1;let A=[...u.values()];u.clear();for(let x of A)x.forEach(O=>O.reject(w))}},h=async(w,A,x)=>{await Promise.all(w.map(async O=>{let $=O[0].input.rail,L=$??"rest",B=A?.pools[L]??null,F=L==="rest"?"graphql":"rest",W=A?.pools[F]??null,U=L==="rest"&&O.every(({input:ae})=>t.get(ae.cacheKey)!==void 0),oe=F==="rest"&&O.every(({input:ae})=>t.get(ae.cacheKey)!==void 0),se=L,re;if(B!==null&&B.remaining<=0){if(W!==null&&W.remaining>0||oe)se=F,re={requestedRail:L,selectedRail:se,rerouted:!0,pool:L,resetAt:B.reset_at,reason:`${L} pool is exhausted until ${B.reset_at}; used the equivalent ${se} rail`};else if(!U&&s){let ae=new En(L,B.reset_at,"the equivalent rail has no known budget");O.forEach(Se=>Se.reject(ae));return}}else $!==void 0&&(re={requestedRail:L,selectedRail:se,rerouted:!1,pool:L,resetAt:B?.reset_at??null,reason:B===null?`${L} pool balance is unknown, so the explicit rail is honored reactively`:`${L} pool has ${B.remaining} remaining, so the explicit rail is honored`});let Q=O.some(({input:ae})=>t.get(ae.cacheKey)!==void 0);se==="graphql"||$===void 0&&!Q&&O.length>x?await f(O,re):await Promise.all(O.map(ae=>g(ae,re)))}))};return{conditionalRest:c,singleObject:w=>new Promise((A,x)=>{let O=`${w.kind}:${w.rail??"default"}`,$=u.get(O)??[];$.push({input:w,resolve:A,reject:x}),u.set(O,$),p||(p=!0,setTimeout(()=>void b(),0))}),async conditionalPaginate(w){let A=[],x={},O=0,$=!0,L=1;for(;;){let B=await c({...w,cacheKey:`${w.cacheKey}:page:${L}`,parameters:{...w.parameters??{},per_page:100,page:L}});if(O+=1,$=$&&B.quotaFree,!Array.isArray(B.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(w.cacheKey)} page ${L}`);if(A.push(...B.data),x=B.headers,!s1(B.headers))break;L+=1}return{data:A,headers:x,requestCount:O,quotaFree:$}},async graphql(w,A={},x){try{d(await l(),x?.operation.budget??"graphql");let O=await a.graphql(w,A);return x&&await e.attribution?.record({operation:x.operation,cost:1,actor:x.actor}),O}catch(O){throw ci(O)===401?new es({cause:O}):ro(O)?op(x?.operation.budget??"graphql",O):O}}}}function mk(e,t,r,n){let o=Date.parse(n),s=e.storedAt===void 0?Number.NaN:Date.parse(e.storedAt);return{data:e.data,headers:e.headers,quotaFree:!0,degraded:{source:"cache",pool:t,resetAt:r,ageMs:Number.isFinite(o)&&Number.isFinite(s)?Math.max(0,o-s):null,reason:`${t} pool is exhausted until ${r}; serving the last-known answer instead of going dark`}}}function op(e,t){let r=hl(t),n=Number(no(r,"x-ratelimit-reset")),o=Number.isFinite(n)&&n>0?new Date(n*1e3).toISOString():"an unknown reset instant";return new En(e,o,"GitHub refused the live request",{cause:t})}function s1(e){let t=no(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function ro(e){if(e instanceof En)return!0;let t=ci(e),r=hl(e);return t===429||t===403&&no(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function pi(e,t=Date.now()){let r=hl(e),n=Number(no(r,"x-ratelimit-reset"));if(Number.isFinite(n)&&n>=0)return new Date(n*1e3).toISOString();let o=no(r,"retry-after");if(o==null)return null;let s=Number(o);if(Number.isFinite(s)&&s>=0&&Number.isFinite(t))return new Date(t+s*1e3).toISOString();let i=Date.parse(o);return Number.isFinite(i)?new Date(i).toISOString():null}function ci(e){if(vn(e))return typeof e.status=="number"?e.status:void 0}function hl(e){return!vn(e)||!vn(e.response)||!vn(e.response.headers)?{}:e.response.headers}function no(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function vn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function i1(e){let t=vn(e)?e:{},r=vn(t.data)?t.data:t,o=(vn(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 a1(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}import{randomUUID as u1}from"node:crypto";import{mkdir as p1,readFile as f1,rename as g1,rm as m1,writeFile as h1}from"node:fs/promises";import{dirname as y1}from"node:path";var kk="rate_limit",Rk={rest:"core",graphql:"graphql",search:"search"},Mt=["rest","graphql","search"];function Rl(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:[...Mt],detail:t??"no balance has been asked for yet, so none is known"}}var ap=15e3,ts=.15,bl=[{at_or_below_fraction:0,every_ms:ap,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:ts,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}];var B6=60*6e4,ip=2;function wk(e,t){let r=bk(e),n=bk(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Mt){let l=Rk[a],d=n[l],c=c1(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Mt.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 ${Mt.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function lp(e){try{let t=await e.transport();return wk(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Rl(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function dp(e){let t=null;for(let r of Mt){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function wl(e,t){let r=dp(e);if(r==null)return kl(ts).every_ms;let n=kl(r.fraction);if(r.remaining>0)return n.every_ms;let o=xk(t.now,r.reset_at);return o==null?n.every_ms:Math.max(ap,Math.min(n.every_ms,o))}function cp(e,t=ts){return Math.ceil(e.limit*t)}function _k(e,t,r=ts){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<cp(n,r)?"reserved":"open"}function up(e){let t=e.reservedFraction??ts,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:kl(t).every_ms*ip,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:kl(t).every_ms,pools:[],unreported_pools:[...Mt],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=wl(r,{now:e.now}),o=e.stalenessMs??n*ip,s=xk(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Mt.map(c=>r.pools[c]).filter(c=>c!=null),l=d1(r,t),d=dp(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`:l1(l,d,r,t)}}function pp(e){if(!gp(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 l1(e,t,r,n){if(t==null)return r.detail;let o=cp(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 d1(e,t){let r="unknown";for(let n of Mt){if(e.pools[n]==null)continue;let o=_k(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function kl(e){for(let t of bl)if(e<=t.at_or_below_fraction)return t;return bl[bl.length-1]}function c1(e,t,r){if(!gp(r))return null;let n=yl(r.limit),o=yl(r.remaining),s=yl(r.used),i=yl(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 fp(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${kk}`,{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 xk(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 yl(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function bk(e){return gp(e)?e:{}}function gp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function hp(e){let t=e.maxBytes??Tt["github-balance"].maxBytes;return{async read(){try{let r=Xt(await f1(e.path,"utf8"));return b1(r)?r:null}catch(r){return R1(r)&&r.code==="ENOENT",null}},async write(r){let n=`${Ze(r)}
|
|
76
|
+
`;if(Buffer.byteLength(n)>t)throw new Error(`GitHub balance snapshot exceeds its ${t}-byte lane ceiling`);let s=y1(e.path);await p1(s,{recursive:!0});let i=`${e.path}.write-${process.pid}-${u1()}`;try{await h1(i,n,{encoding:"utf8",mode:384}),await g1(i,e.path)}finally{await m1(i,{force:!0}).catch(()=>{})}}}}function b1(e){if(!mp(e)||e.version!==1||e.origin!=="asked"||e.source!=="GET /rate_limit"||e.outcome!=="asked"&&e.outcome!=="unanswered"||typeof e.asked_at!="string"||!Number.isFinite(Date.parse(e.asked_at))||!Number.isSafeInteger(e.request_count)||e.request_count<0||!mp(e.pools)||!Array.isArray(e.unreported_pools)||typeof e.detail!="string")return!1;let t=e.pools;return Mt.every(r=>{let n=t[r];return n===null||k1(n,r)})&&e.unreported_pools.every(r=>Mt.includes(r))}function k1(e,t){return!mp(e)||e.pool!==t||typeof e.resource!="string"||typeof e.reset_at!="string"||!Number.isFinite(Date.parse(e.reset_at))?!1:[e.limit,e.remaining,e.used].every(r=>Number.isSafeInteger(r)&&r>=0)&&typeof e.fraction=="number"&&Number.isFinite(e.fraction)}function mp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function R1(e){return e instanceof Error&&"code"in e}import{appendFile as w1,mkdir as _1,readFile as x1}from"node:fs/promises";import{dirname as E1}from"node:path";function yp(e){let t=e.clock??(()=>new Date().toISOString()),r=Tt["github-balance-history"],n=e.maxBytes??r.maxBytes,o=Promise.resolve();return{async append(s){let i=t(),a=[];for(let u of Mt){let p=s.pools[u];p!==null&&a.push({ts:i,pool:u,remaining:p.remaining,used:p.used,limit:p.limit,reset_at:Math.floor(Date.parse(p.reset_at)/1e3),asked_at:s.asked_at})}if(a.length===0)return;let l=Ue({trailer:!1}),d=a.map(u=>l.push(u)).join(""),c=Buffer.byteLength(d);return o=o.then(async()=>{if(await _1(E1(e.path),{recursive:!0}),c>n)throw new Error(`GitHub balance history observation exceeds its ${n}-byte lane ceiling`);if(await Ma(e.path,c,{maxBytes:n})){let u=await v1(e.path),p=Math.max(Math.floor(n*r.targetRatio),c);await ja(e.path,S1(u,c,p))}await w1(e.path,d,{encoding:"utf8",mode:384})}),o}}}async function v1(e){try{let t=await x1(e,"utf8");return t.trim()===""?[]:wt(t)}catch(t){if(t.code==="ENOENT")return[];throw t}}function S1(e,t,r){let n=0,o=e.length;for(;n<o;){let s=Math.ceil((n+o)/2),i=T1(e.slice(-s));Buffer.byteLength(i)+t<=r?n=s:o=s-1}return n}function T1(e){return e.map(t=>Ue({trailer:!1}).push(t)).join("")}import{execFileSync as P1}from"node:child_process";import{existsSync as A1,readFileSync as _l,readdirSync as O1}from"node:fs";import{dirname as D1,join as oo}from"node:path";function fi(e){let t=Jo(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Yo(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function C1(e){let t=[],r=[];for(let n of e.workers){let o=fi(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Jo(n).memory_max??Jo(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(I1(n,o,s))}}return{terminations:t,unenforceable:r}}function F1(e){let t=[];for(let r of e.workers){if(r.isolated)continue;let n=Jo(r).max_processes;if(n==null||!Number.isSafeInteger(n)||n<=0)continue;let o=e.processes[r.worker_id];if(typeof o!="number"||!Number.isSafeInteger(o)||o<0||o<=n)continue;let s=`Worker ${JSON.stringify(r.worker_id)} of project ${JSON.stringify(r.project_label)}`;t.push({version:1,worker_id:r.worker_id,project_label:r.project_label,outcome:"terminated-over-process-budget",classification:"budget-exceeded",stall:!1,budget_name:"TasksMax",budget_declared:n,observed_processes:o,workspace_path:r.workspace_path,reason:`redskilled terminated ${s}: its process tree contained ${o} processes, exceeding its TasksMax budget of ${n}. This is a budget termination, not a stall, and the work in ${JSON.stringify(r.workspace_path)} is handed forward.`})}return{terminations:t,unenforceable:[]}}function Ek(e){let t=C1(e),r=F1(e);return{terminations:[...t.terminations,...r.terminations],unenforceable:[...t.unenforceable,...r.unenforceable]}}function I1(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 M1=4096;function vk(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},processes:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a={},l=j1(e,r,t);for(let[p,g]of l){let f=N1(g);f!=null&&(o[p]=f.memoryBytes,f.cpuSeconds!=null&&(s[p]=f.cpuSeconds),a[p]="cgroup")}let d=e.filter(p=>a[p.worker_id]==null);if(d.length===0)return{rss:o,cpu_seconds:s,processes:i,sources:a};let c=H1(r,t);if(c.size===0)return{rss:o,cpu_seconds:s,processes:i,sources:a};let u=new Map;for(let p of c.values()){let g=u.get(p.ppid);g?g.push(p.pid):u.set(p.ppid,[p.pid])}for(let p of d){if(!c.has(p.pid))continue;let g=0,f=0,b=0,h=[p.pid],_=new Set;for(;h.length>0;){let w=h.pop();if(_.has(w))continue;_.add(w);let A=c.get(w);if(A){b+=1,g+=A.rssBytes,f+=A.cpuSeconds;for(let x of u.get(w)??[])h.push(x)}}o[p.worker_id]=g,s[p.worker_id]=f,i[p.worker_id]=b,a[p.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,processes:i,sources:a}}var L1="/sys/fs/cgroup";function j1(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??L1,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=$1(s,r);for(let l of i)for(let d of a){let c=oo(d,l.unit);if(A1(oo(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function $1(e,t){let r=t.selfCgroupPath??B1(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(oo(e,s));let a=D1(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(oo(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function B1(){try{for(let e of _l("/proc/self/cgroup","utf8").split(`
|
|
77
|
+
`))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function N1(e){let t;try{t=_l(oo(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:G1(e)}}function G1(e){let t;try{t=_l(oo(e,"cpu.stat"),"utf8")}catch{return null}return W1(t)}function W1(e){for(let t of e.split(`
|
|
78
|
+
`)){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 H1(e,t){return t.procRoot!=null||e==="linux"?J1(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?V1(U1(t.psTable)):new Map}function U1(e){try{return(e??q1)()}catch{return""}}function q1(){return P1("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var K1=1024;function V1(e){let t=new Map;for(let r of e.split(`
|
|
79
|
+
`)){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=z1(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*K1,cpuSeconds:a})}return t}function z1(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 J1(e){let t=new Map,r;try{r=O1(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=_l(oo(e,n,"stat"),"utf8")}catch{continue}let s=xl(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*M1,cpuSeconds:s.cpuTicks/Y1})}return t}var Y1=100;function xl(e){let t=e.lastIndexOf(")");if(t<0)return null;let r=Number(e.slice(0,e.indexOf(" "))),n=e.slice(t+1).trim().split(/\s+/),o=Number(n[1]),s=Number(n[2]),i=Number(n[3]),a=Number(n[11]),l=Number(n[12]),d=n[19],c=Number(n[21]);return![r,o,s,i].every(Number.isSafeInteger)||!Number.isFinite(c)||!Number.isFinite(a)||!Number.isFinite(l)||d==null||!/^\d+$/.test(d)||!Number.isSafeInteger(Number(d))?null:{pid:r,ppid:o,pgid:s,sid:i,starttime:d,rssPages:Math.max(0,c),cpuTicks:Math.max(0,a)+Math.max(0,l)}}var El=4*60*1e3,bp={key:"redskilled repository activity poll",budget:"rest"},Q1={key:"redskilled merged-today poll",budget:"search"};async function Pk(e,t){let r=Date.parse(e.now),n=e.transport.conditionalList,o=e.transport.conditionalCount,s=new Map((e.previous?.projects??[]).map(c=>[c.project_label,c])),i=e.panoramaRefreshMs??El,a=[],l=0,d={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let c of e.projects){let u=`${c.owner}/${c.name}`,p=s.get(c.project_label),g=Date.parse(p?.panorama_fetched_at??e.previous?.fetched_at??""),f=p?.counts==null||!Number.isFinite(r)||!Number.isFinite(g)||r-g>=i;try{let b={owner:c.owner,repo:c.name,state:"open"},h=await n({cacheKey:`activity:${u}:open-issues:${JSON.stringify(b)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:b,operation:bp});l+=h.requestCount,d=kp(d,Sk(h.headers));let _=h.data.filter(x=>!Rp(x.pull_request)),w=c.queue_labels==null?{ready_queue:null,human_queue:null}:X1(_,c.queue_labels),A=p?.counts??null;if(f){let x={owner:c.owner,repo:c.name,state:"open"},O={owner:c.owner,repo:c.name,state:"closed",since:t.closed_since},$={q:`repo:${u} is:pr is:merged merged:>=${t.merged_since}`,per_page:1},L=await n({cacheKey:`activity:${u}:open-prs:${JSON.stringify(x)}`,route:"GET /repos/{owner}/{repo}/pulls",parameters:x,operation:bp}),B=await n({cacheKey:`activity:${u}:recently-closed:${JSON.stringify(O)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:O,operation:bp}),F=await o({cacheKey:`activity:${u}:merged-today:${t.merged_since}`,route:"GET /search/issues",parameters:$,operation:Q1});l+=L.requestCount+B.requestCount+F.requestCount;for(let U of[L.headers,B.headers,F.headers])d=kp(d,Sk(U));let W=B.data.filter(U=>!Rp(U.pull_request)).filter(U=>Ak(U.closed_at)>=t.closed_since).length;if(!Number.isSafeInteger(F.data.total_count)||F.data.total_count<0)throw new Error(`GitHub returned no merged-today count for ${u}`);A={open_pull_requests:L.data.length,open_issues:_.length,recently_closed:W,merged_today:F.data.total_count,ready_queue:w.ready_queue,human_queue:w.human_queue}}if(A==null)throw new Error(`no panorama cache exists for ${u}`);a.push({project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:A.open_pull_requests,open_issues:A.open_issues,recently_closed:A.recently_closed,merged_today:A.merged_today,...w},panorama_fetched_at:f?e.now:p?.panorama_fetched_at??e.previous?.fetched_at??e.now,queue_fetched_at:e.now,detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`})}catch(b){let h=ro(b);d=kp(d,{remaining:null,reset_at:h?pi(b):null,exhausted:h,point_cost:null});let _=b instanceof Error?b.message:String(b);a.push(p?.counts==null?{project_label:c.project_label,repository:u,outcome:h?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${u} answered: ${_}`}:{...p,detail:`serving last-known counters after the activity fetch failed: ${_}`})}}return{version:1,fetched_at:e.now,request_count:l,project_count:a.length,rate_limit:d,projects:a}}function X1(e,t){let r=(n,o)=>Array.isArray(n.labels)&&n.labels.some(s=>Z1(s)===o);return{ready_queue:e.filter(n=>r(n,t.ready)).length,human_queue:e.filter(n=>r(n,t.human)).length}}function Z1(e){return typeof e=="string"?e:Rp(e)?Ak(e.name):""}function Sk(e){let t=Tk(e,"x-ratelimit-remaining"),r=Tk(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function kp(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 Tk(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 Rp(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ak(e){return typeof e=="string"?e:""}var eI=["api","graphql"],W8=Au(eI);var Ok=100,ns=2e4,tI=7*24*60*60*1e3,_p=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 Ep(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new _p(r.project_label,r.token_ref,t)}function Dk(e,t={now:new Date(0).toISOString()}){sI(e);let r=t.closedWindowMs??tI,n=Date.parse(t.now);if(!Number.isFinite(n))throw new Error(`redskilled activity fetch needs an instant, not ${JSON.stringify(t.now)}`);let o=new Date(n-Math.max(0,r)).toISOString(),s=new Date(n),i=[s.getFullYear(),String(s.getMonth()+1).padStart(2,"0"),String(s.getDate()).padStart(2,"0")].join("-"),a=e.map((c,u)=>({alias:`r${u}`,search_alias:`c${u}`,merged_alias:`m${u}`,project:c}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...a.flatMap(({alias:c,search_alias:u,merged_alias:p,project:g})=>{let f=JSON.stringify(g.owner),b=JSON.stringify(g.name),h=JSON.stringify(`repo:${g.owner}/${g.name} is:closed closed:>=${o}`),_=JSON.stringify(`repo:${g.owner}/${g.name} is:pr is:merged merged:>=${i}`);return[` ${c}: repository(owner: ${f}, name: ${b}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${u}: search(query: ${h}, type: ISSUE, first: 1) { issueCount }`,` ${p}: search(query: ${_}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
|
|
80
|
+
`),aliases:a,closed_since:o,merged_since:i}}function rI(e,t,r){let n=rs(t),o=rs(n.data),s=Array.isArray(n.errors)?n.errors.map(rs):[],i=iI(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,merged_alias:c,project:u})=>{let p=u.owner+"/"+u.name,g=o[l],f=s.find(b=>wp(b.path,l)||wp(b.path,d)||wp(b.path,c));if(jk(g)){let b=Ck(g.open_pull_requests),h=Ck(g.open_issues),_=Fk(o[d]),w=Fk(o[c]);if(b!=null&&h!=null&&_!=null&&w!=null)return{project_label:u.project_label,repository:p,outcome:"counted",counts:{open_pull_requests:b,open_issues:h,merged_today:w,recently_closed:_,ready_queue:null,human_queue:null},panorama_fetched_at:r.fetchedAt,queue_fetched_at:r.fetchedAt,detail:`counted ${p} for project ${JSON.stringify(u.project_label)}`}}return i.exhausted||Lk(f)?{project_label:u.project_label,repository:p,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${p} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:u.project_label,repository:p,outcome:"unreachable",counts:null,detail:`${p} is not reachable with the host token: ${xp(f?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function nI(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 Ik(e){if(e.projects.length===0)return nI(e.now);if(Ep(e.projects,e.hostTokenRef),e.transport.conditionalList&&e.transport.conditionalCount){let r=Date.parse(e.now),n=Number.isFinite(r)?new Date(Math.floor(r/(60*60*1e3))*60*60*1e3).toISOString():e.now,o=Dk(e.projects,{now:n,closedWindowMs:e.closedWindowMs});return await Pk(e,o)}let t=Dk(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return rI(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}function Mk(e){let t=e.endpoint==null?void 0:oI(e.endpoint),r=sp({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n.conditionalCount=async o=>{let s=await r.conditionalRest({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation});return{data:s.data,headers:s.headers,requestCount:1}},n}function oI(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 sI(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Ok)throw new Error(`redskilled activity fetch spans at most ${Ok} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);if(r.queue_labels!=null&&(r.queue_labels.ready===""||r.queue_labels.human===""))throw new Error(`project ${JSON.stringify(r.project_label)} declares an empty queue label: a label that names nothing would be counted as an empty queue, so state both label names or state neither`);t.add(r.project_label)}}function iI(e,t){let r=rs(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(Lk),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 Lk(e){if(e==null)return!1;let t=xp(e.type),r=xp(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function wp(e,t){return Array.isArray(e)&&e.includes(t)}function Ck(e){let t=rs(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function Fk(e){let t=rs(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function rs(e){return jk(e)?e:{}}function jk(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function xp(e){return typeof e=="string"?e:""}var vp=2,Sp=vp*ns;function Bk(e){let t=e.stalenessMs??Sp,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 Nk(e){if(!$k(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)&&$k(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function $k(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Tp=["open_pull_requests","open_issues","merged_today","ready_queue","human_queue"],Gk="this daemon polls no repository, so there are no remote counters to date";function Wk(e){let t=e.stalenessMs??Sp,r=e.panoramaStalenessMs??El,n=e.activity;if(n==null||n.projects.length===0)return{version:1,threshold_ms:t,projects:[],reason:Gk};let o=Date.parse(e.now),s=n.projects.map(i=>aI(i,{fetchedAt:n.fetched_at,nowMs:o,threshold:t,panoramaThreshold:r}));return{version:1,threshold_ms:t,projects:s,reason:!Number.isFinite(o)||!Number.isFinite(Date.parse(n.fetched_at))?"these counters carry no readable instant, so none of them can be presented as current":`these counters carry their queue and panorama poll instants as of ${n.fetched_at}`}}function aI(e,t){let r={};for(let n of Tp){let o=n==="open_pull_requests"||n==="open_issues"||n==="merged_today",s=o?e.panorama_fetched_at??t.fetchedAt:e.queue_fetched_at??t.fetchedAt,i=Date.parse(s),a=Number.isFinite(t.nowMs)&&Number.isFinite(i)?Math.max(0,t.nowMs-i):null;r[n]=dI(n,lI(e,n),e,{fetchedAt:s,ageMs:a,threshold:o?t.panoramaThreshold:t.threshold})}return{project_label:e.project_label,repository:e.repository,outcome:e.outcome,counters:r}}function lI(e,t){let r=e.counts;if(r==null)return null;switch(t){case"open_pull_requests":return r.open_pull_requests;case"open_issues":return r.open_issues;case"merged_today":return r.merged_today??null;case"ready_queue":return r.ready_queue;case"human_queue":return r.human_queue}}function dI(e,t,r,n){let o={name:e,value:null,fetched_at:null,age_ms:null,threshold_ms:n.threshold,stale:!1};if(t==null)return{...o,reason:r.outcome==="counted"?`this poll produced no ${e}, so it is absent rather than zero`:r.detail};if(n.ageMs==null)return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:null,threshold_ms:n.threshold,stale:!0,reason:`this ${e} carries no readable instant, so it cannot be presented as current`};let s=n.ageMs>n.threshold;return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:n.ageMs,threshold_ms:n.threshold,stale:s,reason:s?`this ${e} is ${n.ageMs}ms old, past the ${n.threshold}ms window`:`counted ${n.ageMs}ms ago, within the ${n.threshold}ms window`}}function Pp(e){if(!vl(e))return!1;let t=e;return t.version===1&&typeof t.threshold_ms=="number"&&typeof t.reason=="string"&&Array.isArray(t.projects)&&t.projects.every(cI)}function cI(e){if(!vl(e))return!1;let t=e;if(typeof t.project_label!="string"||typeof t.repository!="string"||typeof t.outcome!="string"||!vl(t.counters))return!1;let r=t.counters;return Tp.every(n=>uI(r[n]))}function uI(e){if(!vl(e))return!1;let t=e;return typeof t.name=="string"&&(t.value===null||typeof t.value=="number")&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.reason=="string"}function vl(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Uk(e,t,r={}){let n=[...e].sort((p,g)=>(so(g.ts)??0)-(so(p.ts)??0)),o=n.slice(0,Math.max(0,Math.floor(t))).map(Hk),s=n.filter(p=>p.observed_exit===!0||p.sender_class!=="unknown"&&p.confidence!=="none"),i=s[0]==null?null:Hk(s[0]),a=r.now==null?null:so(r.now),l=i==null?null:so(i.ts),d=r.freshnessMs??6e5,c=pI(n,{nowMs:a,freshnessMs:d}),u=r.healthyFleet===!0||a==null||l==null||a-l>d?null:i;return{count:n.length,sender_attributed_count:s.length,recent:o,latest:o[0]??null,latest_sender_attributed:i,current_sender_attributed:u,reaped_at:o[0]?.ts??null,...c==null?{}:{boot_loop:c}}}function Hk(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 pI(e,t){let r=new Map;for(let o of e){if(o.sender_class!=="boot-refused"||o.uptime_s==null||o.uptime_s>2||o.project_label==null||o.project_label===""||so(o.ts)==null)continue;let s=r.get(o.project_label)??[];s.push(o),r.set(o.project_label,s)}return[...r.entries()].filter(([,o])=>o.length>=3).map(([o,s])=>{let i=s[0],a=so(i.ts);if(t.nowMs==null||t.nowMs-a>t.freshnessMs)return null;let l=Math.min(...s.map(c=>so(c.ts))),d=i.detail?.trim()||i.evidence[0]?.trim();return d==null||d===""?null:{project_label:o,count:s.length,span_ms:Math.max(0,a-l),latest_refusal:d}}).filter(o=>o!=null).sort((o,s)=>s.count-o.count||s.span_ms-o.span_ms)[0]??null}function Ap(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 so(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var qk=["logs","vitals","display"];function Op(e,t){if(t===void 0)return e;let r=qk.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:fI,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:gI},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var fI={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},gI={last_line:null,published_at:null,source:null};var mI=3e4;function Vk(e){let t=e.stalenessMs??mI,r=Dp(e.now),n=e.sampledAt==null?null:Dp(e.sampledAt),o=r==null||n==null?null:Math.max(0,r-n),s=o!=null&&o<=t,i=new Set(e.reattachedWorkerIds??[]),a=e.hostState.workers.map(p=>yI(p,{rss:e.rss,sampledAt:e.sampledAt,ageMs:o,sampleFresh:s,nowMs:r,log:e.logLines?.[p.worker_id],display:e.displays?.[p.worker_id],state:i.has(p.worker_id)?"reattached":"running"})),l=a.filter(p=>p.vitals.rss_bytes==null).map(p=>p.worker_id).sort(),d=a.length-l.length,c=a.reduce((p,g)=>p+(g.vitals.rss_bytes??0),0),u=tl(e.hostState.workers);return{version:1,generated_at:e.now,daemon:{pid:e.hostState.pid,daemon_version:e.hostState.daemon_version,protocol_version:e.hostState.protocol_version,started_at:e.hostState.started_at,machine_id_hash:e.hostState.machine_id_hash,session_key_hash:e.hostState.session_key_hash},staleness:wI({sampledAt:e.sampledAt,ageMs:o,threshold:t,workerCount:a.length,measuredCount:d,unmeasured:l}),host:{worker_count:a.length,project_count:e.hostState.projects.length,ceiling:e.ceiling,consumption:u,budget_accounting:e.hostState.budget_accounting,observed_rss_bytes:c,measured_worker_count:d,ceiling_used_fraction:e.ceiling.memory_bytes==null||e.ceiling.memory_bytes<=0?null:u.memory_bytes/e.ceiling.memory_bytes},projects:RI(a),known_projects:kI(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,...p.standing===!0?{standing:!0}:{},...p.queue_depth==null?{}:{queue_depth:p.queue_depth}})),stopped_projects:(e.hostState.stopped_registrations??[]).map(p=>({project_label:p.project_label,at:p.at,...p.standing===!0?{standing:!0}:{},...p.queue_depth==null?{}:{queue_depth:p.queue_depth}})),orphaned_projects:(e.hostState.orphaned_registrations??[]).map(p=>p.project_label),workers:a,github_balance:up({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Bk({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),remote_counters:Wk({activity:e.repositoryActivity??null,now:e.now,...e.activityStalenessMs===void 0?{}:{stalenessMs:e.activityStalenessMs}}),...e.deaths===void 0?{}:{deaths:Uk(e.deaths,e.recentDeathLimit??4,{now:e.now,healthyFleet:(e.hostState.registrations??[]).length>0&&(e.hostState.registrations??[]).every(p=>e.hostState.workers.filter(g=>g.project_label===p.project_label).length>=Math.max(0,p.target))})},engine:hI(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function hI(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 yI(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=fi(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=Dp(e.started_at);return{worker_id:e.worker_id,project_label:e.project_label,workspace_path:e.workspace_path,pid:e.pid,started_at:e.started_at,...e.base_commits_ahead==null?{}:{base_commits_ahead:e.base_commits_ahead},uptime_ms:t.nowMs==null||i==null?null:Math.max(0,t.nowMs-i),state:t.state,isolated:e.isolated,unit:e.unit??null,warnings:[...e.warnings],vitals:{rss_bytes:n,sampled_at:n==null?null:t.sampledAt,age_ms:n==null?null:t.ageMs,fresh:n!=null&&t.sampleFresh,rss_source:n==null?null:e.rss_source??null},budget:{name:o?.name??null,declared:o?.declared??s,bytes:o?.bytes??null,used_bytes:n,used_fraction:o==null||o.bytes<=0||n==null?null:n/o.bytes,enforceable:o!=null},log:bI(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function bI(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 kI(e){let t=new Set;for(let r of e.registrations??[])t.add(r.project_label);for(let r of e.projects)t.add(r.project_label);for(let r of e.lapsed_registrations??[])t.add(r.project_label);for(let r of e.stopped_registrations??[])t.add(r.project_label);for(let r of e.orphaned_registrations??[])t.add(r.project_label);return[...t].sort((r,n)=>r.localeCompare(n))}function RI(e){let t=new Map;for(let r of e){let n=t.get(r.project_label)??{workers:0,declared:0,observed:0,measured:0};n.workers+=1,n.declared+=r.budget.bytes??0,n.observed+=r.vitals.rss_bytes??0,n.measured+=r.vitals.rss_bytes==null?0:1,t.set(r.project_label,n)}return[...t.entries()].map(([r,n])=>({project_label:r,worker_count:n.workers,declared_memory_bytes:n.declared,observed_rss_bytes:n.observed,measured_worker_count:n.measured})).sort((r,n)=>r.project_label.localeCompare(n.project_label))}function wI(e){let t={sampled_at:e.sampledAt,age_ms:e.ageMs,threshold_ms:e.threshold,measured_worker_count:e.measuredCount,unmeasured_workers:e.unmeasured};return e.workerCount===0?{...t,stale:!1,reason:"the host holds no Workers, so there is nothing to measure and nothing to age"}:e.sampledAt==null||e.ageMs==null?{...t,stale:!0,reason:`this answer is stale: the daemon has taken no measurement of its ${e.workerCount} live Worker(s) yet`}:e.ageMs>e.threshold?{...t,stale:!0,reason:`this answer is stale: its measurement is ${e.ageMs}ms old, past the ${e.threshold}ms staleness window`}:{...t,stale:!1,reason:`measured ${e.ageMs}ms ago, within the ${e.threshold}ms staleness window`}}function Dp(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Sl(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(_I))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(xI))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Nk(t.repository_activity))&&(t.remote_counters===void 0||Pp(t.remote_counters))&&(t.github_balance===void 0||pp(t.github_balance))&&(t.deaths===void 0||Ap(t.deaths))&&(t.engine===void 0||EI(t.engine))&&(t.metrics===void 0||Pb(t.metrics))}function _I(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")&&(t.standing===void 0||typeof t.standing=="boolean")&&(t.queue_depth===void 0||Number.isInteger(t.queue_depth))&&typeof t.reason=="string"}function xI(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.standing===void 0||typeof t.standing=="boolean")&&(t.queue_depth===void 0||Number.isInteger(t.queue_depth))}function EI(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 zk={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,phase_started_at:null,progress_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null};var Tl={$schema:"https://tr.designtokens.org/format/2025.10/schema.json",$description:"RedDB design tokens \u2014 the canonical, machine-readable source of truth. DTCG 2025.10 (Design Tokens Format Module, first stable version). Hand-authored; tokens.css and tailwind-preset.js are build outputs of generators/build-tokens.mjs \u2014 never hand-edit them. Locked brand values: red #ff2056, ink #07080a, paper #f4f5f7 (from the marks, issues #13/#16); type Space Grotesk + JetBrains Mono (ADR 0001).",color:{$type:"color",$description:"Primitive palette (raw scale) and semantic roles (aliases). Feedback colours (success/warning/danger) are intentionally not published yet; issue #10 locked --ok #4ade80, --warn #fbbf24, and --danger #ff5470, with the rule that the accent never signals error.",red:{$description:"The brand accent. red.500 is the locked mark colour #ff2056; the other stops are derived by mixing toward white/black for hover, active, and on-light emphasis.","400":{$value:{colorSpace:"srgb",components:[1,.3882,.5373],hex:"#ff6389"}},"500":{$value:{colorSpace:"srgb",components:[1,.1255,.3373],hex:"#ff2056"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900"],failsOn:["color.neutral.800"]},asFill:{textPasses:["color.neutral.950"],textFails:["color.neutral.0"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.8196,.102,.2745],hex:"#d11a46"}},"700":{$value:{colorSpace:"srgb",components:[.6784,.0863,.2275],hex:"#ad163a"}}},neutral:{$description:"Cool-gray ramp on the ink\u2194paper axis. neutral.50 is the locked paper #f4f5f7; neutral.950 is the locked ink #07080a; intermediate stops are hand-tuned on the same hue.","0":{$value:{colorSpace:"srgb",components:[1,1,1],hex:"#ffffff"}},"50":{$value:{colorSpace:"srgb",components:[.9569,.9608,.9686],hex:"#f4f5f7"}},"100":{$value:{colorSpace:"srgb",components:[.9059,.9137,.9333],hex:"#e7e9ee"}},"200":{$value:{colorSpace:"srgb",components:[.8275,.8392,.8706],hex:"#d3d6de"}},"300":{$value:{colorSpace:"srgb",components:[.702,.7216,.7686],hex:"#b3b8c4"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"400":{$value:{colorSpace:"srgb",components:[.5451,.5686,.6314],hex:"#8b91a1"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"500":{$value:{colorSpace:"srgb",components:[.4,.4275,.4941],hex:"#666d7e"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:[],failsOn:["color.neutral.950","color.neutral.900","color.neutral.800"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.2902,.3176,.3843],hex:"#4a5162"}},"700":{$value:{colorSpace:"srgb",components:[.2,.2235,.2863],hex:"#333949"}},"800":{$value:{colorSpace:"srgb",components:[.1176,.1333,.1765],hex:"#1e222d"}},"900":{$value:{colorSpace:"srgb",components:[.0706,.0784,.1059],hex:"#12141b"}},"950":{$value:{colorSpace:"srgb",components:[.0275,.0314,.0392],hex:"#07080a"}}},brand:{$description:"Semantic brand roles. on-primary is the black R the mark sets on the red field.",primary:{$value:"{color.red.500}"},hover:{$value:"{color.red.600}"},active:{$value:"{color.red.700}"},"on-primary":{$value:"{color.neutral.950}"}},ink:{$value:"{color.neutral.950}",$description:"The near-black foreground; the brand is dark-first."},paper:{$value:"{color.neutral.50}",$description:"The off-white ground."},surface:{muted:{$value:"{color.neutral.100}"}},border:{subtle:{$value:"{color.neutral.200}"},strong:{$value:"{color.neutral.300}"}}},fontFamily:{$type:"fontFamily",$description:"Space Grotesk for display and body, JetBrains Mono for code (ADR 0001). Space Grotesk has no italic and no weight 300; <em> maps to weight 500 and italic exists only in the mono.",sans:{$value:["Space Grotesk","system-ui","-apple-system","Segoe UI","sans-serif"]},mono:{$value:["JetBrains Mono","ui-monospace","SFMono-Regular","Menlo","monospace"]}},fontWeight:{$type:"fontWeight",$description:"Weight 300 is excluded (dark-first: thin strokes lose weight to halation).",regular:{$value:400},medium:{$value:500},bold:{$value:700}},fontSize:{$type:"dimension",$description:"Modular scale, ~1.2 (minor third) from a 1rem base.",xs:{$value:{value:.75,unit:"rem"}},sm:{$value:{value:.875,unit:"rem"}},base:{$value:{value:1,unit:"rem"}},lg:{$value:{value:1.125,unit:"rem"}},xl:{$value:{value:1.25,unit:"rem"}},"2xl":{$value:{value:1.5,unit:"rem"}},"3xl":{$value:{value:1.875,unit:"rem"}},"4xl":{$value:{value:2.25,unit:"rem"}},"5xl":{$value:{value:3,unit:"rem"}},"6xl":{$value:{value:3.75,unit:"rem"}}},lineHeight:{$type:"number",$description:"Unitless multipliers.",tight:{$value:1.1},snug:{$value:1.25},normal:{$value:1.5},relaxed:{$value:1.65}},letterSpacing:{$type:"dimension",tight:{$value:{value:-.02,unit:"em"}},normal:{$value:{value:0,unit:"em"}},wide:{$value:{value:.04,unit:"em"}}},spacing:{$type:"dimension",$description:"4px base grid; 1 unit = 0.25rem.","0":{$value:{value:0,unit:"rem"}},px:{$value:{value:1,unit:"px"}},"0.5":{$value:{value:.125,unit:"rem"}},"1":{$value:{value:.25,unit:"rem"}},"2":{$value:{value:.5,unit:"rem"}},"3":{$value:{value:.75,unit:"rem"}},"4":{$value:{value:1,unit:"rem"}},"5":{$value:{value:1.25,unit:"rem"}},"6":{$value:{value:1.5,unit:"rem"}},"8":{$value:{value:2,unit:"rem"}},"10":{$value:{value:2.5,unit:"rem"}},"12":{$value:{value:3,unit:"rem"}},"16":{$value:{value:4,unit:"rem"}},"20":{$value:{value:5,unit:"rem"}},"24":{$value:{value:6,unit:"rem"}}},radius:{$type:"dimension",$description:"The symbol's clipped corner is a hard geometric cut, so brand chrome favours restrained radii.",none:{$value:{value:0,unit:"rem"}},sm:{$value:{value:.125,unit:"rem"}},md:{$value:{value:.375,unit:"rem"}},lg:{$value:{value:.5,unit:"rem"}},xl:{$value:{value:.75,unit:"rem"}},"2xl":{$value:{value:1,unit:"rem"}},full:{$value:{value:9999,unit:"px"}}},duration:{$type:"duration",instant:{$value:{value:75,unit:"ms"}},fast:{$value:{value:150,unit:"ms"}},normal:{$value:{value:250,unit:"ms"}},slow:{$value:{value:400,unit:"ms"}}},easing:{$type:"cubicBezier",$description:"Standard for most transitions; entrance decelerates, exit accelerates, emphasized for hero motion.",standard:{$value:[.4,0,.2,1]},entrance:{$value:[0,0,.2,1]},exit:{$value:[.4,0,1,1]},emphasized:{$value:[.2,0,0,1]}},shadow:{$type:"shadow",$description:"Elevation cast in ink at low alpha; tuned for a dark-first surface.",sm:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.12,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:1,unit:"px"},blur:{value:2,unit:"px"},spread:{value:0,unit:"px"}}},md:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.16,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:2,unit:"px"},blur:{value:8,unit:"px"},spread:{value:0,unit:"px"}}},lg:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.2,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:8,unit:"px"},blur:{value:24,unit:"px"},spread:{value:0,unit:"px"}}},xl:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.24,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:16,unit:"px"},blur:{value:48,unit:"px"},spread:{value:0,unit:"px"}}}}};var os=class extends Error{name="BrandTokenError";constructor(t,r,n){super(n),this.code=t,this.tokenName=r}};function gi(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}if(!gi(Tl)||!gi(Tl.color))throw new os("TOKEN_MALFORMED","color","The vendored DTCG document has no color token group.");var SI=Tl;function TI(e){let t=SI;for(let r of e.split(".")){if(!gi(t)||!(r in t))return;t=t[r]}return t}function Cp(e,t){return new os("TOKEN_MALFORMED",e,`Brand color token "${e}" is malformed: ${t}`)}function Jk(e,t,r){if(r.has(e))throw new os("TOKEN_ALIAS_CYCLE",t,`Brand color token "${t}" contains an alias cycle at "${e}".`);let n=TI(e);if(n===void 0)throw new os("TOKEN_NOT_FOUND",t,`Brand color token "${t}" was not found (resolved path "${e}").`);if(!gi(n)||!("$value"in n))throw Cp(t,`"${e}" is not a token with a $value`);let o=n.$value;if(typeof o=="string"){let s=/^\{([^{}]+)\}$/.exec(o);if(s?.[1]===void 0)throw Cp(t,`"${e}" has an invalid alias`);return Jk(s[1],t,new Set([...r,e]))}if(!gi(o)||typeof o.hex!="string"||!/^#[0-9a-fA-F]{6}$/.test(o.hex))throw Cp(t,`"${e}" has no six-digit hex color value`);return{name:e.startsWith("color.")?e.slice(6):e,hex:o.hex.toLowerCase()}}function PI(e){let t=e.startsWith("color.")?e:`color.${e}`;return Jk(t,e,new Set)}function AI(e){return PI(e).hex}function Yk(e,t){let r=AI(e),n=Number.parseInt(r.slice(1,3),16),o=Number.parseInt(r.slice(3,5),16),s=Number.parseInt(r.slice(5,7),16);return`\x1B[${t};2;${n};${o};${s}m`}function Mr(e){return Yk(e,38)}function Fp(e){return Yk(e,48)}var Qk=Fp("brand.primary"),Xk=Mr("brand.on-primary"),Pl=Fp("neutral.900"),Al=Mr("paper"),Ol=Mr("paper"),Dl="\x1B[39m",nr=Mr("neutral.400"),wq=Mr("neutral.500"),Zk=Mr("neutral.300"),eR=Mr("neutral.0"),tR=Mr("neutral.700"),rR=Mr("red.500"),sn="\x1B[49m",Lr="\x1B[0m",Ip="\x1B[1m",Mp="\x1B[22m";var OI=/\x1b\[[0-9;]*m/g,DI=/(\x1b\[[0-9;]*m)/,CI=/^\x1b\[[0-9;]*m$/;function io(e){return e.replace(OI,"")}function FI(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function or(e){return[...io(e)].length}function et(e,t){if(t<=0)return"";if(or(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(DI))if(i!==""){if(CI.test(i)){s+=i,o=!FI(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 mi(e,t){return e+" ".repeat(Math.max(0,t-or(e)))}function Lp(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 mr(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 hi(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 Sn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return hi(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 Ut(e){if(e==null||!Number.isFinite(e)||e<0)return"\u2014";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function ss(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var nR=[{name:"ready_queue",key:"rdy"},{name:"open_issues",key:"iss"},{name:"open_pull_requests",key:"pr"},{name:"merged_today",key:"mrg"}];function yi(e,t){let r=Cl(e,t),n=oR(e,t),o=[];for(let{name:s,key:i}of nR){let a=MI(i,r?.counters[s],II(n,s));a!=null&&o.push(a)}return o}function jp(e,t){let r=Cl(e,t),n=oR(e,t);return{open_pull_requests:r?.counters.open_pull_requests.value??n?.counts?.open_pull_requests??null,merged_today:r?.counters.merged_today.value??n?.counts?.merged_today??null,recently_closed:n?.counts?.recently_closed??null,open_issues:r?.counters.open_issues.value??n?.counts?.open_issues??null,ready_queue:r?.counters.ready_queue.value??null,human_queue:r?.counters.human_queue.value??null,stale:n?.stale===!0}}function $p(e,t){return Cl(e,t)!=null}function Cl(e,t){return t==null?null:(e.remote_counters?.projects??[]).find(r=>r.project_label===t)??null}function oR(e,t){return t==null?null:(e.repository_activity?.projects??[]).find(r=>r.project_label===t)??null}function II(e,t){let r=e?.counts;return r==null?null:t==="open_pull_requests"?r.open_pull_requests:t==="open_issues"?r.open_issues:t==="merged_today"?r.merged_today??null:null}function MI(e,t,r){return t==null?r==null?null:`${e}=${r}`:t.value==null?null:`${e}=${t.value}${t.stale?`(${LI(t.age_ms)})`:""}`}function LI(e){return Ut(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}var bi="!unregistered",Bp="!lapsed",ki="\u21E1",hr="\u2020",is="\u25D0",as="\u25EF",Np="\u21B3",Gp="redskilled unreachable \u2014 Worker state unknown";function ls(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Fl(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function Ri(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 Wp(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 Il(e,t){return e.startsWith(t)?e.slice(t.length):e}function jr(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function Hp(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:jr(Il(n.cells.iss,"iss="),n.cells.phase),state:jr(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:jr(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:"Clocks",width:34,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:jr(Il(n.cells.iss,"iss=")),runner:jr(Il(n.cells.run,"run=")),phase:jr(n.cells.phase),progress:jr(n.cells.bar),elapsed:jr(n.cells.elapsed),eta:Il(jr(n.cells.eta),"eta="),activity:jr(n.cells.hb,t[o]?.log.last_line)}))}}function sR(e){let t=e.phase,r=e.phase_total,n=e.phase_index;return[t!=null&&r!=null&&r>0&&n!=null&&n>=0?`${t} ${Math.min(Math.floor(n)+1,Math.floor(r))}/${Math.floor(r)}`:t,e.step].filter(s=>!!s).join(" \xB7 ")}function Up(e,t){if(e==null||e==="")return null;let r=Date.parse(e),n=Date.parse(t);return Number.isFinite(r)&&Number.isFinite(n)?Math.max(0,n-r):null}function iR(e,t,r){let n=e.uptime_ms??Up(e.started_at,r),o=Up(t.phase_started_at,r),s=Up(t.progress_at,r);return[n==null?null:`age=${Ut(n)}`,o==null?null:`phase=${Ut(o)}`,s==null?null:`idle=${Ut(s)}`].filter(i=>i!=null).join(" ")}var Tn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],qt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},jI=" ",aR="\u2588",$I="\u25B6",BI="\u2717",NI="\u2591",GI=new Set(["gate","push-pr","merge","cascade"]),WI=new Set(["requeue"]),HI="repair";function wi(e){return e.display?.origin===HI}function ds(e,t=qt){let r=Ri(e,t.project),n=ls(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(b=>Ll(b,t,e.generated_at)),i=rM(s),a=o.map((b,h)=>({worker_id:b.worker_id,project_label:b.project_label,mine:t.project!=null&&b.project_label===t.project,cells:s[h],line:et(nM(s[h],i),t.maxWidth)})),l=Hp(a,o,t.maxWidth),d=qI(e,t,n,r),c=n.length-o.length,u=[d.line,...QI(e,t),...a.map(b=>b.line)];c>0&&u.push(et(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...JI(e,t)),u.push(...zI(e,t));let p=Math.max(1,Math.floor(t.maxHeight??qt.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),et(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:Tn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function Ll(e,t,r){let n=e.display??zk,o=wi(e),s=[n.runner,n.model==null?null:Lp(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&GI.has(n.phase),a=o||i||n.origin!=null&&WI.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:dR(n),phase:sR(n),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:iR(e,n,r),eta:n.eta==null?"":`eta=${Ut(n.eta*1e3)}`,hb:UI(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":tM(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${hi(n.tokens)}`,ctx:n.context==null?"":`ctx=${hi(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 UI(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} ${Ut(Math.max(0,n-r))}`}function dR(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 aR.repeat(Math.floor(t));let o=e.failed?BI:$I;return`${aR.repeat(n)}${o}${NI.repeat(Math.floor(t)-n-1)}`}function qI(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(O=>O.project_label===t.project),s=jp(e,t.project),i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=eM(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=[KI(l??"host",c,d!=null&&d.current===!1?ki:"")];(n==="unregistered"||n==="name-only")&&g.push(bi),n==="lapsed"&&g.push(Bp);let f=p?.history_48h==null?null:YI(p.history_48h);f!=null&&g.push(ao(f));let b=e.workers.filter(wi).length;if(b>0){let O=Math.max(0,e.host.worker_count-b);g.push(`${ao(`workers=${O} coding +`)} ${Pl}${Al}${b} repairing${sn}${nr}`)}else g.push(ao(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(ao(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(ao(ZI(i))),a!=null&&g.push(`${Pl}${Al}${a}${sn}${nr}`);for(let O of yi(e,t.project))g.push(ao(O));s.stale&&!$p(e,t.project)&&g.push("!counts stale");let _=p==null?null:cR(p.hour),w=_==null?null:ao(_);if(w!=null&&g.push(w),u!=null&&u.count>0&&u.latest!=null){let O=u.boot_loop,$=ss(O?.latest_refusal),L=Object.prototype.hasOwnProperty.call(u,"current_sender_attributed")?u.current_sender_attributed??null:u.latest;g.push(O==null?`${hr}${u.count}${L==null?"":` ${L.sender_class}`}`:`${hr}${u.count} boot-refused \xD7${O.count} in ${VI(O.span_ms)}`+($==null?"":` \u2014 ${$}`))}if(e.staleness.stale){let O=e.staleness.age_ms;g.push(O==null?"!unmeasured":`!stale ${Math.round(O/1e3)}s`)}let A=`${g.join(" \xB7 ")}${Lr}`,x=_!=null&&or(A)>t.maxWidth?`${g.filter(O=>O!==w).join(" \xB7 ")}${Lr}`:A;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:et(x,t.maxWidth)}}function KI(e,t,r){return`${Qk}${Xk}\xBB ${Ip}${e}${Mp} v${t}${r}${sn}${nr}`}function ao(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ol}${n}${Dl}${o}${nr}`)}function VI(e){return Ut(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function cR(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${Sn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${Sn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${Sn(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 zI(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?as:is,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[et(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function JI(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[et(`${hr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>et(`${hr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(et(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function YI(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${Sn(t)} ${qp(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${Sn(r)} ${qp(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function QI(e,t){let r=e.metrics;return r==null?[et("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[et("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[lR("tokens",r.history_48h.tokens_per_hour,t),lR("Tickets",r.history_48h.tickets_per_hour,t)]}var Ml=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function lR(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=${Sn(o)}/h ${qp(t.trend)}`.trim();if(r.maxWidth<72)return et(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return et(`${n} 48h ${XI(t)} \xB7 ${a}${l}`,r.maxWidth)}function XI(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?Ml[0]:Ml[Math.min(Ml.length-1,Math.floor(Math.max(0,n.value)/r*(Ml.length-1)))]).join("")}function qp(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function ZI(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${mr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${mr(e.memory_used_bytes)}/${mr(e.memory_ceiling_bytes)}${t}`}function eM(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 tM(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 rM(e){let t=Object.fromEntries(Tn.map(r=>[r,0]));for(let r of e)for(let n of Tn)t[n]=Math.max(t[n],or(r[n]));return t}function nM(e,t){let r=Tn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>jl(o,mi(e[o],s===r.length-1?or(e[o]):t[o])));return`${sn}${nr}${n.join(jI)}${Lr}`}function jl(e,t){if(e==="wid")return`${Ip}${t}${Mp}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Pl}${Al}${t.trimEnd()}${sn}${nr}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${Zk}${n}`).replace("\u25B6",`${eR}\u25B6`).replace("\u2717",`${rR}\u2717`).replace(/░+/g,n=>`${tR}${n}`)+nr;let r=t.indexOf("=");return r>0?`${Ol}${t.slice(0,r+1)}${Dl}${t.slice(r+1)}${nr}`:t}function Vp(e){return Object.freeze({none:!0,reason:e})}function $l(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function Kp(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError("repair args must contain only finite JSON numbers");return e}if(t.has(e))throw new TypeError("repair args must not contain cycles");t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(n=>Kp(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=Kp(o,t);return Object.freeze(r)}finally{t.delete(e)}}function oM(e){let t=Kp(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function cs(e){if("none"in e.repair)return{prose:`${e.state}; repair: none because ${e.repair.reason}`,repair:"none",repair_reason:e.repair.reason};let t=oM(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Be={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function Pn(e,t=Be){let r=Ri(e,t.project),n=ls(e,t),o=Fl(e,t),s=cM(e,t.project,r),i=iM(e,t,n,r,s.prose),a=Wp({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:hM(i,sM(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||or(f)<=t.maxWidth)break}let d=et(l.line,t.maxWidth),c=l.detail==="workers"?fM(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let b=t.verbose?gM(g,t):null;return b==null?[c.lines[f]]:[c.lines[f],b]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function Xp(e){let t=e.options??Be,r=et(Gp,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 sM(e,t){return e==="projects"?t.map(mM):[]}function iM(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${zp(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(pR(e,t))):n==="matched"||n==="unregistered"?(s.push(zp(r,r.length)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(zp(r,r.length)),s.push(bi)):s.push(o),t.mode!=="global"&&s.push(...yi(e,t.project)),t.mode!=="global"&&(n==="matched"||n==="unregistered"||n==="name-only")&&s.push(pR(e,t)),s.push(uR(e));let a=aM(e);a!=null&&s.push(a);let l=lM(e);l!=null&&s.push(l),e.staleness.stale&&s.push(fR(e));let d=s.join(" ");return!i||or(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,uR(e),e.staleness.stale?fR(e):null].filter(c=>c!=null).join(" ")}function zp(e,t){let r=e.filter(wi).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function uR(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${ki}`}function aM(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${as} quota spent`:t.posture==="reserved"?`${is} quota band`:null}function lM(e){let t=e.deaths;if(t==null)return null;let r=t.sender_attributed_count??t.count,n=t.sender_attributed_count===void 0?t.latest:t.latest_sender_attributed??null;if(r<=0||n==null)return null;let o=t.boot_loop;if(o!=null){let i=ss(o.latest_refusal);return`${hr}${r} boot-refused \xD7${o.count} in ${dM(o.span_ms)}`+(i==null?"":` \u2014 ${i}`)}let s=Object.prototype.hasOwnProperty.call(t,"current_sender_attributed")?t.current_sender_attributed??null:n;return s==null?`${hr}${r}`:`${hr}${r} ${s.sender_class}`}function dM(e){return Ut(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function cM(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return cs({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:Vp("this socket cannot safely replace a registration owned by an unreachable daemon")});if(r==="stopped"){let n=e.stopped_projects?.find(s=>s.project_label===t),o=n?.standing===!0&&(n.queue_depth??0)>0?`queue ${n.queue_depth}, drain STOPPED \u2014 `:"";return cs({state:`${o}project unknown \u2014 ${t} was stopped${n==null?"":` at ${Jp(n.at)}`}`,repair:$l()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${Jp(n.registered_at)})`,s=n.standing===!0&&(n.queue_depth??0)>0?`queue ${n.queue_depth}, drain STOPPED \u2014 `:"";return cs({state:`${s}project unknown \u2014 ${t} lapsed at ${Jp(n.at)}${o}`,repair:$l()})}return cs({state:`project unknown \u2014 ${t} lapsed`,repair:$l()})}return r==="unresolved"?cs({state:"project unknown \u2014 this directory resolved to no project",repair:Vp("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function Jp(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function pR(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?`${mr(r)}/${mr(n)}`:mr(r)}function fR(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}var uM=["txt","rsn","ctx","tks","tls","eta","base","elapsed","run","org","loc"];function pM(e,t,r,n){let o=r.map(s=>jl(s,mi(e[s],t[s])));return et(`${sn}${nr}${o.join(" ")}${Lr}`,n)}function fM(e,t,r){let n=e.map(a=>Ll(a,t,r)),o=Tn.filter(a=>n.some(l=>or(l[a])>0)),s=[...o],i=Yp(n,s);for(let a of uM){if(s.length<=1||Qp(i,s)<=t.maxWidth)break;let l=s.indexOf(a);l<0||(s.splice(l,1),i=Yp(n,s))}for(;s.length>1&&Qp(i,s)>t.maxWidth;)s.pop(),i=Yp(n,s);return{lines:n.map(a=>pM(a,i,s,t.maxWidth)),degraded:s.length<o.length||Qp(i,s)>t.maxWidth}}function Yp(e,t){let r=Object.fromEntries(Tn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],or(n[o]));return r}function Qp(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function gM(e,t){let r=ss(e.log.last_line);return r==null?null:et(` ${Np} ${gR(e,t.mode)}: ${r}`,t.maxWidth)}function gR(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function mM(e){return`${e.project_label} ${e.worker_count}w ${mr(e.observed_rss_bytes)}`}function hM(e,t,r){return[e,...t].join(r)}var Bl=1;async function On(e,t){return await Na(e,t,"redskilled daemon")}function An(e){return Number.isInteger(e)&&e>=0}function hR(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.mode!=="report"&&t.mode!=="reap"||t.census===null||typeof t.census!="object"||Array.isArray(t.census)||t.actions===null||typeof t.actions!="object"||Array.isArray(t.actions))return!1;let r=t.census,n=t.actions;return r.version===1&&An(r.active_worker_units)&&An(r.daemon_held_workers)&&An(r.stamped_orphans)&&An(r.unstamped_suspects)&&An(r.dump_files)&&An(n.adopted)&&An(n.reaped)&&An(n.suspects)}function yR(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:Bl,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},...e.requestHealth==null?{}:{request_health:e.requestHealth},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:RM(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:Db(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:wM(e)}}function RM(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:zo(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 wM(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 bR(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.protocol_version=="number"&&typeof t.daemon_version=="string"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&Number.isInteger(t.pid)&&typeof t.started_at=="string"&&(t.ceiling===void 0||TM(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Cb(t.budget_accounting)&&(t.scope===void 0||o0(t.scope))&&(t.request_health===void 0||_M(t.request_health))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(ni))&&(t.demand===void 0||qb(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(EM))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(vM))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(SM))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(xM))&&(t.upgrade===void 0||PM(t.upgrade))}function _M(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.status==="healthy"||t.status==="degraded")&&Number.isInteger(t.consecutive_misses)&&Number.isInteger(t.miss_threshold)&&(t.last_probe_at===null||typeof t.last_probe_at=="string")&&(t.last_success_at===null||typeof t.last_success_at=="string")&&(t.last_failure_at===null||typeof t.last_failure_at=="string")&&typeof t.detail=="string"}function xM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.repair;return t.name==="project-birth-breaker"&&typeof t.project_label=="string"&&(t.state==="open"||t.state==="half-open")&&typeof t.opened_at=="string"&&typeof t.reason=="string"&&typeof t.closes=="string"&&(t.probe_worker_id===null||typeof t.probe_worker_id=="string")&&r!=null&&r.tool==="project_reset"&&typeof r.args=="object"&&r.args!==null&&typeof r.why=="string"}function EM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.at=="string"&&typeof t.renew_by=="string"&&Number.isInteger(t.renewals)&&Number.isInteger(t.sustains)&&(t.standing===void 0||typeof t.standing=="boolean")&&(t.queue_depth===void 0||Number.isInteger(t.queue_depth))&&typeof t.detail=="string"}function vM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.registered_at=="string"&&typeof t.at=="string"&&(t.standing===void 0||typeof t.standing=="boolean")&&(t.queue_depth===void 0||Number.isInteger(t.queue_depth))&&typeof t.detail=="string"}function SM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")}function TM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=new Set(["flag","environment","home-config","derived-default"]);return(t.memory_bytes===null||typeof t.memory_bytes=="number")&&(t.worker_count===null||typeof t.worker_count=="number")&&(t.validation_count===void 0||Number.isInteger(t.validation_count)&&Number(t.validation_count)>0)&&(t.source==="declared"||t.source==="host-fraction")&&(t.memory_source===void 0||r.has(String(t.memory_source)))&&(t.worker_source===void 0||r.has(String(t.worker_source)))&&(t.validation_source===void 0||r.has(String(t.validation_source)))}function PM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")&&typeof t.published_unknown=="number"&&typeof t.newer_published=="number"&&(t.replacement==="none"||t.replacement==="pending"||t.replacement==="in-progress")&&(t.checked_at===null||typeof t.checked_at=="string")&&(t.newest_published_version===void 0||t.newest_published_version===null||typeof t.newest_published_version=="string")&&(t.major_held===void 0||typeof t.major_held=="number")&&(t.checks===void 0||typeof t.checks=="number")&&(t.hold_reason===void 0||t.hold_reason===null||typeof t.hold_reason=="string")&&(t.major_hold===void 0||t.major_hold===null||AM(t.major_hold))}function AM(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{spawnSync as rL}from"node:child_process";import{readdir as nL,readFile as Kl,readlink as oL}from"node:fs/promises";import{join as _i,normalize as sL,sep as iL}from"node:path";var OM=e=>new Promise(t=>setTimeout(t,e));function DM(e){try{return process.kill(e,0),!0}catch{return!1}}function CM(e){try{return process.kill(-e,0),!0}catch(t){return t.code==="EPERM"?!0:DM(e)}}function FM(e,t){try{process.kill(-e,t)}catch{try{process.kill(e,t)}catch{}}}function IM(e,t){try{process.kill(-e,t)}catch{}}var MM={isAlive:CM,signal:FM,signalGroup:IM,sleep:OM};async function Nl(e,t={}){let r=t.io??MM,n=t.pollMs??100,o=t.graceTries??20,s=t.killTries??10;r.signal(e,"SIGTERM");for(let i=0;i<o;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}r.signal(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}if(!r.isAlive(e))return!0;r.signalGroup?.(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}return!r.isAlive(e)}import{spawn as YM,spawnSync as sf}from"node:child_process";import{existsSync as of}from"node:fs";import{delimiter as UM,join as PR}from"node:path";import{join as kR}from"node:path";import{existsSync as LM}from"node:fs";import{createRequire as jM}from"node:module";var RR="redskilled-job-object.node",lo=100;function us(e){return{available:!1,reason:e}}function $M(e,t,r){return[kR(r,"prebuilds",`${e}-${t}`,RR),kR(r,"native","build","Release",RR)]}function wR(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return us(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??NM(),o=e.exists??LM,s=$M(t,r,n),i=s.find(d=>o(d));if(i==null)return us(`no Job Object addon was found for ${t}-${r} (looked in ${s.join(", ")}); either install the prebuild for this platform and architecture or build the addon locally`);let a=e.requireFn??jM(import.meta.url),l;try{l=a(i)}catch(d){return us(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return BM(l)?{available:!0,binding:l}:us(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function BM(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function NM(){return new URL("..",import.meta.url).pathname}function _R(e){let t=e??{},r=[],n=GM(t);n==null&&(t.memory_max??t.memory_high)!=null&&r.push("the declared memory budget could not be reduced to bytes, so the job carries no memory ceiling");let o;return t.cpu_weight!=null&&(t.cpu_weight<lo?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 ${lo}, and Windows CPU rate control is an absolute cap rather than a share, so no rate limit is set`)),{...n!=null?{memory_limit_bytes:n.bytes,memory_budget_name:n.name,memory_budget_declared:n.declared}:{},...o!=null?{cpu_rate_percent:o}:{},kill_on_close:!0,...r.length>0?{note:r.join("; ")}:{}}}function GM(e){return fi({budget:e})}var Gl=5,xR=19;function Zp(e){return{available:!1,reason:e}}var WM="an address-space rlimit is not a resident-memory ceiling: a runtime that reserves address space it never faults in would die under a limit it never used, so no memory rlimit is set and the daemon's RSS sampling floor is the ceiling that actually holds";function vR(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=Gl;else if(r.cpu_weight<lo){let a=Math.round(xR*(lo-r.cpu_weight)/lo);o=Math.min(xR,Math.max(Gl,a))}else o=Gl,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${lo}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${Gl}`);let s=ER(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=ER(r.cpu_seconds);return i==null&&r.cpu_seconds!=null&&n.push(`cpu_seconds=${r.cpu_seconds} is not a positive whole number, so no ulimit -t is set`),{...o!=null?{nice:o}:{},...s!=null?{max_processes:s}:{},...i!=null?{cpu_seconds:i}:{},memory_ceiling:"sampling-floor",memory_ceiling_reason:WM,...n.length>0?{note:n.join("; ")}:{}}}function ef(e){let{limits:t}=e,r=["ulimit -c 0"];return t?.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t?.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t?.nice!=null&&e.nice!=null?`exec ${HM(e.nice)} -n ${t.nice} "$@"`:'exec "$@"'),["-c",r.join(`
|
|
81
|
+
`),"--",e.command,...e.args]}function SR(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 tf(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 ER(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function HM(e){return`'${e.replace(/'/g,"'\\''")}'`}var AR="REDSKILLED_PLACEMENT",Hl="red-worker",qM=20,rf="/bin/sh";function OR(e=process.env,t=process.platform){let r=Zp(`POSIX shell placement is unavailable on platform=${t}`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:wR({platform:t}),posix:r};let n=us(`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:TR(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&of(PR(o,"systemd","private"));return{platform:t,systemdRun:IR("systemd-run",e),userSession:s,jobObjects:n,posix:TR(e)}}function TR(e){return of(rf)?{available:!0,shell:rf,nice:IR("nice",e)}:Zp(`no POSIX shell was found at ${rf}, so there is nothing to apply rlimits or priority in`)}function DR(e=process.env){let t=(e[AR]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function KM(e,t,r=Hl){return CR(e,t,r).replace(/\.service$/,"")}function CR(e,t,r=Hl){return`${nf(r,"red-worker",24)}-${nf(e,"project",32)}-${nf(t,"worker",32)}.service`}function FR(e){let t=[...e.args??[]],r={...e.budget??{},...e.budget?.memory_max==null&&e.memoryCeiling?.memory_max!=null?{memory_max:e.memoryCeiling.memory_max}:{}},n=r.memory_max??r.memory_high??null,o=r.memory_high!=null||r.memory_max!=null||r.cpu_weight!=null,s=e.target??{isolation:"transient-unit"},i=u=>{let p=e.probes.posix,g=e.probes.platform==="linux"&&p.available,f=e.probes.platform==="linux"&&!p.available?`${u}; core dumps are not capped because ${p.reason}`:u;return{isolated:!1,backend:"none",command:g?p.shell:e.command,args:g?ef({nice:null,command:e.command,args:t}):t,cwd:e.workspacePath,warning:f,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Wl(e,{scope:null,memory_ceiling:n,scope_degradation:f}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}}};if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${AR}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return zM(e,t,r,n,o,i);if(e.probes.platform==="darwin")return VM(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=CR(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`,"--property=LimitCORE=0",`--property=TimeoutStopSec=${qM}`];e.pipeOutput===!0&&l.push("--pipe"),r.memory_high!=null&&l.push(`--property=MemoryHigh=${r.memory_high}`),r.memory_max!=null&&l.push(`--property=MemoryMax=${r.memory_max}`),r.cpu_weight!=null&&l.push(`--property=CPUWeight=${r.cpu_weight}`),r.max_processes!=null&&l.push(`--property=TasksMax=${r.max_processes}`);let d=Wl(e,{scope:a,memory_ceiling:n,scope_degradation:null});for(let[u,p]of Object.entries({...e.env??{},...d}))l.push(`--setenv=${u}=${p}`);let c=tf(e.budget==null?void 0:{...e.budget,max_processes:void 0});return{isolated:!0,backend:"transient-unit",unit:a,command:e.probes.systemdRun,args:[...l,"--",e.command,...t],budget:r,...n!=null?{memoryCeiling:n}:{},environment:d,...c!=null?{budgetWarning:c}:{}}}function VM(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=vR(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=SR(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:ef({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Wl(e,{scope:null,memory_ceiling:n,scope_degradation:l}),...a?{budgetWarning:"the declared memory budget is enforced by the daemon's RSS sampling floor rather than by the kernel: "+i.memory_ceiling_reason}:{}}}function zM(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=_R(r),l=KM(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:Wl(e,{scope:l,memory_ceiling:n,scope_degradation:null}),...JM(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,tf(e.budget))}}function Wl(e,t){return Bh(t,e.bornAt==null?void 0:{worker_id:e.workerId,born_at:e.bornAt})}function JM(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function IR(e,t){for(let r of(t.PATH??"").split(UM)){if(!r)continue;let n=PR(r,e);if(of(n))return n}return null}function nf(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function af(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}async function MR(e){let t=e.workers.filter(n=>{if(e.reattached_worker_ids.has(n.worker_id))return!0;let o=Date.parse(n.started_at);return!Number.isFinite(o)||e.now_ms-o>=e.grace_ms});if(t.length===0)return[];let{dead:r}=await af(t,e.probe);for(let n of r)await e.on_dead(n);return r}var LR=3e4;function jR(e){return e.unit!=null&&e.unit!==""?$R(e.unit):qe(e.pid)}function $R(e){let t=sf("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var QM="REDSKILLED_UNIT_DISCOVERY",Ul="(unowned)";function BR(e){let t=sf("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 XM(e=process.env){let t=(e[QM]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function lf(e,t,r=process.env){return XM(r)&&e===t}function NR(e=Hl){let t=sf("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(`
|
|
82
|
+
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function GR(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:Ul,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 WR(e){return e.project_label.trim()!==""?e:{...e,project_label:Ul,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"]}}var ZM=50;async function HR(e,t=tL){if(e.unit!=null&&e.unit!==""){try{await t.stopUnit(e.unit)}catch{}if(!t.unitActive(e.unit)&&!t.leaderAlive(e.pid))return!0}return await t.killTree(e.pgid??e.pid)}function eL(e){return["--user","stop","--no-block",e]}var tL={stopUnit:async e=>{await new Promise(t=>{let r=YM("systemctl",[...eL(e)],{stdio:"ignore"});r.once("error",()=>t()),r.once("close",()=>t())})},unitActive:$R,leaderAlive:qe,killTree:e=>Nl(e,{graceTries:ZM})};var aL=10*6e4,lL=30*6e4,ql;function dL(){if(ql!==void 0)return ql;let e=rL("getconf",["CLK_TCK"],{encoding:"utf8"}),t=Number((e.stdout??"").trim());return ql=e.error==null&&e.status===0&&Number.isFinite(t)&&t>0?t:null,ql}async function cL(e,t){return await t.read_starttime(e.pid)!==e.starttime?{reaped:!1,reason:"leader-starttime-changed"}:(await t.after_verified?.(),await t.kill_group(e.pgid)===!0?{reaped:!0,reason:"orphan-reaped"}:{reaped:!1,reason:"group-survived"})}var uL=5*6e4;function pL(e=process.env){let t=(e.REDSKILLED_ORPHAN_REAPER??"").trim().toLowerCase();return t==="off"?"off":t==="report"?"report":"reap"}async function fL(e,t="/proc"){try{return xl(await Kl(_i(t,String(e),"stat"),"utf8"))?.starttime??null}catch{return null}}async function gL(e={}){let t=e.proc_root??"/proc";try{let r=new Set(e.active_worker_units??[]),n=e.clock_ticks_per_second??dL();if(n==null||!Number.isFinite(n)||n<=0)return[];let o=Number((await Kl(_i(t,"uptime"),"utf8")).trim().split(/\s+/)[0]);if(!Number.isFinite(o)||o<0)return[];let s=await nL(t),i=[];for(let a of s){if(!/^\d+$/.test(a))continue;let l;try{l=xl(await Kl(_i(t,a,"stat"),"utf8"))}catch{continue}if(l==null||l.ppid!==1&&r.size===0)continue;let d=new Map,c;try{d=mL(await Kl(_i(t,a,"environ"),"utf8"))}catch{}let u=ps(d.get("RED_WORKER_SCOPE")),p=u!=null&&r.has(u);if(l.ppid!==1&&!p)continue;try{c=await oL(_i(t,a,"cwd"))}catch{}let g=ps(d.get("RED_WORKER_ID")),f=ps(d.get("RED_WORKER_BORN_AT"));i.push({pid:l.pid,ppid:l.ppid,pgid:l.pgid,sid:l.sid,starttime:l.starttime,age_ms:Math.max(0,(o-Number(l.starttime)/n)*1e3),...g==null?{}:{worker_id:g},...f==null?{}:{born_at:f},...p?{unit:u}:{},...c==null?{}:{cwd:c},under_workers_lane:c!=null&&hL(c)})}return i}catch{return[]}}function mL(e){let t=new Map;for(let r of e.split("\0")){let n=r.indexOf("=");n<=0||t.set(r.slice(0,n),r.slice(n+1))}return t}function ps(e){let t=e?.trim();return t==null||t===""?void 0:t}function hL(e){let t=sL(e).split(iL).filter(Boolean);for(let r=0;r<t.length-2;r+=1)if(!(t[r]!==".red"||t[r+1]!=="tmp"))return["workers","go-workers","scout-workers"].includes(t[r+2]??"");return!1}function yL(e){let t=bL(e);return{census:{version:1,active_worker_units:new Set(e.active_worker_units).size,daemon_held_workers:new Set(e.held_worker_ids).size,stamped_orphans:t.filter(r=>r.kind==="reap").length,unstamped_suspects:t.filter(r=>r.kind==="suspect").length,dump_files:new Set(e.dump_files).size},candidates:t}}function bL(e){let t=[];for(let r of e.processes){if(!Number.isFinite(r.age_ms)||r.age_ms<0)continue;let n=r.worker_id?.trim();if(n==null||n===""){r.ppid===1&&r.under_workers_lane&&r.age_ms>=lL&&t.push({kind:"suspect",process:r,detail:`unstamped process ${r.pid} was reparented under a workers lane and is at least 30 minutes old; it will never be signalled`});continue}if(!(r.pid!==r.pgid||e.held_worker_ids.has(n))){if(e.live_birth_ids.has(n)){t.push({kind:"adopt",process:r,detail:`stamped Worker ${n} has a live birth but no daemon holder`});continue}r.age_ms<aL||t.push({kind:"reap",process:r,detail:`stamped Worker ${n} has no live birth and is at least 10 minutes old`})}}return t}var UR={adopted:0,reaped:0,suspects:0};function kL(e,t){let r=new Set(t),n=new Map,o=new Map,s=!1;for(let i of e){let a=ps(i.worker_id),l=ps(i.born_at),d=ps(i.unit);if(a==null||l==null||d==null||i.pid!==i.pgid||!r.has(d))continue;let c=n.get(d),u=o.get(a);if(c!=null&&(c.worker_id!==a||c.born_at!==l)||u!=null&&u!==d){s=!0;continue}n.set(d,i),o.set(a,d)}return{births:[...n.values()],complete:!s&&n.size===r.size}}function qR(e){let t=e.interval_ms??uL,r=e.mode??pL(),n=e.read_starttime??fL,o=e.kill_group??Nl,s=e.report??(g=>process.stderr.write(`redskilled: ${g}
|
|
83
|
+
`)),i,a=!1;async function l(){let g=[],f=!0;try{g=await Promise.resolve(e.active_worker_units?.()??[])}catch{f=!1}let b;try{b=e.census==null?await gL({active_worker_units:g}):await e.census()}catch{b=[]}let h=[],_=new Set,w=!0;if(b.length>0)try{h=await e.live_births()}catch{let O=kL(b,g);if(w=f&&O.complete,w){h=O.births.map($=>df($,e.clock));for(let $ of h)_.add($.worker_id);s(`orphan birth proof re-derived from ${h.length} active stamped Worker unit(s); the event lane can be reseeded before orphan teardown`)}else s("orphan census withheld: the event lane and active unit census could not prove which stamped Workers still have live births")}let A=new Map(h.map(O=>[O.worker_id,O])),x=await Promise.resolve(e.dump_files?.()??[]).catch(()=>[]);return{selected:yL({processes:b,active_worker_units:g,held_worker_ids:new Set(e.held_worker_ids()),live_birth_ids:new Set(A.keys()),dump_files:x}),liveBirths:A,recoveredBirthIds:_,safeToAct:w}}async function d(){return e.authorized?(await l()).selected.census:{version:1,active_worker_units:0,daemon_held_workers:0,stamped_orphans:0,unstamped_suspects:0,dump_files:0}}async function c(){if(!e.authorized||r==="off"||a)return{...UR};a=!0;try{let{selected:g,liveBirths:f,recoveredBirthIds:b,safeToAct:h}=await l();if(!h)return{...UR};let _=g.candidates,w={adopted:0,reaped:0,suspects:0};for(let A of _){if(r==="report"){A.kind==="suspect"&&(w.suspects+=1),s(`${A.detail}; report mode withheld adoption and signalling`);continue}if(A.kind==="suspect"){w.suspects+=1,s(A.detail);continue}if(A.kind==="adopt"){let L=b.has(A.process.worker_id);await e.adopt(df(A.process,e.clock,L?void 0:f.get(A.process.worker_id)),L,L?`adopted from an active unit after event-lane birth proof was unavailable: ${A.detail}`:A.detail),w.adopted+=1,s(A.detail);continue}let x=df(A.process,e.clock),O=!1,$=await cL(A.process,{read_starttime:n,after_verified:async()=>{O=!0,await e.adopt(x,!0,`adopted stamped orphan before group teardown: ${A.detail}`),w.adopted+=1},kill_group:o});if(!$.reaped||!O){O&&$.reason==="group-survived"&&await e.record_reaped(x,`group-survived: process group ${A.process.pgid} survived orphan teardown; ${A.detail}`),s(`${A.detail}; ${$.reason}`);continue}await e.record_reaped(x,`orphan-reaped: ${A.detail}`),w.reaped+=1}return w}finally{a=!1}}async function u(g){let f=await d();return{version:1,mode:g?"report":"reap",census:f,actions:g?{adopted:0,reaped:0,suspects:f.unstamped_suspects}:await c()}}function p(){i!=null||t<=0||r==="off"||!e.authorized||(i=setInterval(()=>void c().catch(()=>{}),t),i.unref())}return{sweep:c,census:d,reap:u,arm:p,stop:()=>{i!=null&&clearInterval(i),i=void 0}}}function df(e,t,r){let n=Date.parse(t()),o=Number.isFinite(n)?new Date(Math.max(0,n-e.age_ms)).toISOString():t(),{unit:s,...i}=r??{};return{...i,worker_id:e.worker_id,project_label:r?.project_label??Ul,pid:e.pid,pgid:e.pgid,proc_start_time:e.starttime,started_at:r?.started_at??e.born_at??o,workspace_path:e.cwd??r?.workspace_path??"",isolated:e.unit!=null,...e.unit==null?{}:{unit:e.unit},warnings:[...r?.warnings??[],r==null?"adopted by the orphan reaper from the host process table: no daemon holder or live birth remained, so the owning project and budget are unknown":"adopted by the orphan reaper from a live event-lane birth whose daemon holder was missing; the process-table identity now anchors it"]}}import{randomUUID as RL}from"node:crypto";import{mkdir as wL,readFile as _L,rename as xL,writeFile as EL}from"node:fs/promises";import{dirname as vL}from"node:path";function KR(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await _L(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=SL(s);return TL(i)?i.registrations:[]}async function o(s){await wL(vL(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${RL()}.tmp`,a={version:1,registrations:[...s]};await EL(i,`${Ze(a)}
|
|
84
|
+
`,{encoding:"utf8",mode:384}),await xL(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 SL(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Xt(t)}catch{return null}}}function TL(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(ni)}function VR(e,t){let r=t?.projects.find(n=>n.project_label===e.project_label);return{...e.standing===!0?{standing:!0}:{},...r?.outcome==="counted"&&r.depth!=null?{queue_depth:r.depth}:{}}}function zR(e,t,r,n){return{project_label:e.project_label,registered_at:e.registered_at,at:r,renew_by:e.renew_by,renewals:e.renewals,sustains:e.sustains??0,...VR(e,t),detail:n??`redskilled dropped the registration for project ${JSON.stringify(e.project_label)}: it stood until ${e.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`}}function JR(e,t,r){return{project_label:e.project_label,registered_at:e.registered_at,at:r,...VR(e,t),detail:`redskilled released the registration for project ${JSON.stringify(e.project_label)}`}}function cf(e,t){return e.standing===!0||!Number.isFinite(t)||t-Date.parse(e.renew_by)<=e.renew_within_ms}import{randomInt as DL}from"node:crypto";import{spawn as CL}from"node:child_process";import{appendFileSync as FL,mkdirSync as IL,readFileSync as ML}from"node:fs";import{dirname as LL}from"node:path";import{delimiter as YR,dirname as PL}from"node:path";function AL(e,t=YR){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function OL(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=PL(t);return r===""||r==="."?null:r}function QR(e,t=process.execPath,r=YR){let n=AL(e,r),o=OL(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var fs=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},sr=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},uf="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",XR=4,jL=uf.length**XR;function xi(e,t=DL){let r=new Set(e);for(let n=0;n<jL;n+=1){let o="h";for(let s=0;s<XR;s+=1)o+=uf[t(uf.length)];if(!r.has(o))return o}throw new fs("redskilled exhausted the host Worker id space")}function $L(e){if(e==null||e.trim()==="")return{ready:!1};let t=LL(e);try{return IL(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})`}: ${pf(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function BL(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{FL(t,Ue().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
|
|
85
|
+
`);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 NL(e){let t=[["project_label",e.project_label],["workspace_path",e.workspace_path],["command",e.command]];for(let[r,n]of t)if(typeof n!="string"||n.trim()==="")throw new fs(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new fs("redskilled worker spec args must be an array")}function GL(e){if(e==null)throw new sr("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new sr(e.reason,e)}function ZR(e){let{spec:t,admission:r}=e;GL(r),NL(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||xi(e.liveWorkerIds??[]),i=o(),a=e.probes??OR(n),l=Qy(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),d=e.openLog===!1?{ready:!1}:$L(l),c=d.ready,u={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:QR(t.env?.PATH??n.PATH,e.execPath??process.execPath)},p=FR({workerId:s,bornAt:i,projectLabel:t.project_label,workspacePath:t.workspace_path,command:t.command,args:t.args,budget:t.budget,...e.memoryCeiling!=null?{memoryCeiling:e.memoryCeiling}:{},target:t.placement,env:u,enabled:e.enabled??DR(n),probes:a,pipeOutput:c}),f=(e.spawnFn??CL)(p.command,p.args,{...p.cwd!=null?{cwd:p.cwd}:{},detached:!0,stdio:c?["ignore","pipe","pipe"]:"ignore",env:p.backend==="transient-unit"?{...n}:{...n,...u,...p.environment}});if(c&&l!=null&&BL(f,l),f.pid==null)throw f.once("error",()=>{}),new fs(`redskilled could not spawn ${JSON.stringify(p.command)} for worker ${s}`);let b=WL(f.pid),h=p.job!=null?HL(p,a,f.pid):null;f.once("error",()=>{}),f.once("exit",(x,O)=>{try{h?.job?.close()}catch{}e.onExit?.(s,x,O)}),f.unref();let _=p.job!=null?h?.job!=null:p.isolated,w=[p.warning,h?.warning,p.budgetWarning,d.warning].filter(x=>x!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:f.pid,pgid:f.pid,...b==null?{}:{proc_start_time:b},started_at:i,workspace_path:t.workspace_path,...c&&l!=null?{log_path:l}:{},isolated:_,...p.unit!=null?{unit:p.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(p.budget).length>0?{applied_budget:p.budget}:{},...p.memoryCeiling!=null?{memory_ceiling:p.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:w},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:w,plan:p,child:f,...h?.job!=null?{job:h.job}:{}}}function WL(e){try{let t=ML(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");if(r<0)return null;let n=t.slice(r+1).trim().split(/\s+/)[19];return n!=null&&/^\d+$/.test(n)?n:null}catch{return null}}function HL(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: ${pf(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)}: ${pf(i)}. ${o}`}}return{job:s}}function pf(e){return e instanceof Error?e.message:String(e)}async function UL(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 ew(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=Va(i,{worker_id:xi(e.liveWorkerIds()),slot:0,workspace_path:s.workspace_path},{project_label:s.project_label}),l=e.admit(a);if(!l.admitted)throw new sr(l.reason,l);let d=e.start(a,l);if(t.add(d.worker_id),i.mode==="sync"){let c=i.deadline_ms,u=UL({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&&Vo.includes(o)&&n(o,s),i&&(o==="worker-death"||o==="worker-budget-kill")&&t.delete(s.worker_id)},async waitForSettled(){for(;r.size>0;)await Promise.all(r)}}}var qL=24e4;var KL=20*6e4;function rw(e,t){if(!Number.isFinite(t))return 0;let r=0;for(let n of e)zo(n,t)==="renewing"&&(r+=1);return r}function nw(e){let t=tw(e.attendedMs,ns),r=tw(e.unattendedMs,qL);return e.attended?t:Math.max(t,r)}var VL=KL;function ow(e,t,r){if(e?.exhausted!==!0)return t;let n=e.reset_at==null?Number.NaN:Date.parse(e.reset_at),o=Number.isFinite(n)&&Number.isFinite(r)?n-r+1e3:t*4;return Math.min(VL,Math.max(t,o))}function sw(e){return e.pendingWindowMs==null||!Number.isFinite(e.pendingWindowMs)||!Number.isFinite(e.cadenceMs)?!1:e.cadenceMs<e.pendingWindowMs}function tw(e,t){return e!=null&&Number.isFinite(e)&&e>0?e:t}function iw(e){let t,r=null,n=!1;function o(){return nw({attended:rw(e.registrations(),Date.parse(e.clock()))>0,attendedMs:e.attendedMs})}function s(){let a=o();return ow(e.rateLimit?.()??null,a,Date.parse(e.clock()))}function i(a){e.stopping()||(r=a,t=setTimeout(()=>{t=void 0,r=null,n=!0,e.poll().catch(()=>{}).finally(()=>{n=!1,!e.stopping()&&i(s())})},a),t.unref())}return{arm(){e.stopping()||t!=null||n||!e.armed||e.attendedMs<=0||(n=!0,e.poll().catch(()=>{}).finally(()=>{n=!1,!e.stopping()&&i(s())}))},cadenceMs:o,nudge(){if(e.stopping()||t==null)return;let a=o();sw({pendingWindowMs:r,cadenceMs:a})&&(clearTimeout(t),t=void 0,i(a))},stop(){t!=null&&clearTimeout(t),t=void 0,r=null}}}async function aw(e){let t=e.explicit?.projects??zL(e.registrations);if(t.length===0)return null;let r=e.explicit?.transport??e.resolveHostTransport();return r==null?null:await Ik({projects:t,hostTokenRef:e.explicit?.hostTokenRef??"host",transport:r,...e.explicit?.closedWindowMs==null?{}:{closedWindowMs:e.explicit.closedWindowMs},now:e.now,...e.previous===void 0?{}:{previous:e.previous}})}function zL(e){return[...e].flatMap(t=>{let r=t.queue_poll;return r==null?[]:[{project_label:t.project_label,owner:r.owner,name:r.repo,...r.counter_labels==null?{}:{queue_labels:r.counter_labels}}]}).sort((t,r)=>t.project_label.localeCompare(r.project_label))}var Si=50,gf=15e3,WK=2*gf;function JL(e,t=Si){if(mf(e),!Number.isInteger(t)||t<=0)throw new Error(`redskilled queue discovery needs a whole, positive batch size, not ${JSON.stringify(t)}`);let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function dw(e,t={}){let r=t.batchSize??Si;if(mf(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(`
|
|
86
|
+
`),aliases:n}}function cw(e,t){let r=vi(t),n=vi(r.data),o=Array.isArray(r.errors)?r.errors.map(vi):[],s=ej(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=rj(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=>tj(u.path,a));return s.exhausted||fw(c)?{project_label:l.project_label,outcome:"rate-limited",depth:null,detail:`the host token's quota was spent before project ${JSON.stringify(l.project_label)} answered, so this queue has no depth rather than a depth of zero`+(s.reset_at==null?"":`; the quota resets at ${s.reset_at}`)}:{project_label:l.project_label,outcome:"unreachable",depth:null,detail:`project ${JSON.stringify(l.project_label)} could not be counted with the host token: ${ff(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function YL(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:Si,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function uw(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:Si,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:e.map(n=>({project_label:n.project_label,outcome:"unconfigured",depth:null,detail:`project ${JSON.stringify(n.project_label)} was not counted because this host polls no tracker: ${r}`}))}}async function pw(e){if(e.projects.length===0)return YL(e.now);if(e.transport.conditionalList)return await XL(e);let t=e.batchSize??Si,r=JL(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=dw(s,{batchSize:t});try{let a=await e.transport(i.query),l=cw(i,a);n.push(...l.projects),o=Ei(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=Ei(o,{remaining:null,reset_at:null,exhausted:d});for(let c of s)n.push({project_label:c.project_label,outcome:d?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(c.project_label)} answered: ${l}`})}}return{version:1,fetched_at:e.now,request_count:r.length,project_count:n.length,batch_size:t,rate_limit:o,projects:n}}var QL={key:"redskilled queue poll",budget:"rest"};async function XL(e){mf(e.projects);let t=e.transport.conditionalList,r=[],n={remaining:null,reset_at:null,exhausted:!1},o=0;for(let s of e.projects)try{if(s.poll==null){let l=dw([s],{batchSize:1}),d=cw(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=Ei(n,d.rate_limit);continue}let i=await t({cacheKey:`queue:${s.project_label}:${JSON.stringify(s.poll)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:{owner:s.poll.owner,repo:s.poll.repo,state:"open",labels:s.poll.labels.join(","),...s.poll.creator==null?{}:{creator:s.poll.creator}},operation:QL});o+=i.requestCount;let a=i.data.filter(l=>!gw(l.pull_request)).length;n=Ei(n,ZL(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=ro(i);n=Ei(n,{remaining:null,reset_at:a?pi(i):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 mf(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 Ei(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 ZL(e){let t=lw(e,"x-ratelimit-remaining"),r=lw(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function lw(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function ej(e,t){let r=vi(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null;return{remaining:n,reset_at:o,exhausted:t.some(fw)||n===0}}function fw(e){return e==null?!1:ff(e.type)==="RATE_LIMITED"||/rate limit/i.test(ff(e.message))}function tj(e,t){return Array.isArray(e)&&e.includes(t)}function rj(e){let t=vi(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function vi(e){return gw(e)?e:{}}function gw(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ff(e){return typeof e=="string"?e:""}function mw(e,t,r){let n=e?.rate_limit;if(n==null)return t;if(n.exhausted){let s=n.reset_at==null?Number.NaN:Date.parse(n.reset_at),i=Number.isFinite(s)?s-r+1e3:t*4;return Math.min(nj,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=oj?Math.max(t,3e4):o<=sj?Math.max(t,2e4):t}var nj=1e5,oj=250,sj=1e3;var ij={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,phase_started_at:null,progress_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null},aj=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at","phase_started_at","progress_at"],lj=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function hw(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...ij};for(let n of aj){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of lj){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{execFile as dj}from"node:child_process";var cj="refs/heads/red-trunk";function hf(e){return`${e.workspace_path}\0${e.trunk.remote}\0${e.trunk.branch}`}function yw(e,t,r){let n=r instanceof Error?r.message:String(r);return{...e,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(t.trunk.remote)} could not refresh branch ${JSON.stringify(t.trunk.branch)}: ${n}`}}function Vl(e,t){return new Promise((r,n)=>{dj("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function bw(e){await Vl(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Vl(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 Vl(e.workspace_path,["update-ref",cj,t]),t}async function kw(e){let t=await Vl(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 uj,stat as pj}from"node:fs/promises";var fj=16*1024;async function Rw(e,t=fj){let r;try{r=(await pj(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await uj(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 gj(o)}function gj(e){let t=e.split(`
|
|
87
|
+
`);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 jj}from"node:child_process";import{randomUUID as Bw}from"node:crypto";import{existsSync as $j,readdirSync as Bj,rmSync as Nj}from"node:fs";import{createConnection as Gj,createServer as Wj}from"node:net";import{delimiter as Hj,dirname as wf,isAbsolute as Uj,join as Oi,resolve as qj}from"node:path";var mj="<version>";function Dn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():mj;return[`npx -y -p ${Xn}@${n}`,e,...t].join(" ")}import{existsSync as hj,mkdirSync as yj,readFileSync as bj,renameSync as kj,statSync as Rj,writeFileSync as wj}from"node:fs";import{homedir as _w}from"node:os";import{basename as ww,join as xw,resolve as zl}from"node:path";function Kt(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 yf(e,t){let r=Kt(e),n=Kt(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var eV=4*60*60*1e3;function bf(e=_w()){return xw(Ft(e),"bundles")}function _j(e){return`redskilled-${e}.bundle.min.mjs`}var xj=/^redskilled-(.+)\.bundle\.min\.mjs$/;function co(e,t={}){let r=e.entry;if(r==null||!/^redskilled(-.+)?\.bundle\.min\.mjs$/.test(ww(r)))return e;let n=xj.exec(ww(r))?.[1],o=t.version??n;if(o==null||Kt(o)===null||/[-+]/.test(o))return e;let s="homeDir"in t?t.homeDir:_w();if(s==null)return e;let i=t.exists??hj,a=bf(s),l=xw(a,_j(o));if(zl(r)===zl(l))return e;try{if(!Rj(Ft(s)).isDirectory())return e;if(!i(l)){yj(a,{recursive:!0,mode:448});let d=`${l}.${process.pid}.tmp`;wj(d,bj(r),{mode:493}),kj(d,l)}}catch{return e}return{...e,entry:l,args:e.args.map(d=>zl(d)===zl(r)?l:d)}}function Ti(e){return e.HOME?.trim()||void 0}rn();rn();import{spawnSync as Ej}from"node:child_process";import{randomUUID as Ew}from"node:crypto";import{mkdir as vj,rm as Sj,writeFile as Tj}from"node:fs/promises";import{existsSync as Pj,mkdirSync as Aj,readFileSync as Oj,renameSync as vw,writeFileSync as Sw}from"node:fs";import{homedir as Dj}from"node:os";import{dirname as Tw,isAbsolute as Pw,join as Pi}from"node:path";var ir="redskilled.service",kf="REDSKILLED_SUPERVISED",Cj="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function Fj(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||Pi(e.HOME?.trim()||Dj(),".config");return Pi(t,"systemd","user")}function gs(e=process.env){return Pi(Fj(e),ir)}function Aw(e,t={}){let r=t.env??process.env,n=co(Ua(t.override??{},t.entryLookup??{}),{homeDir:Ti(r)}),o=[...n.args,...tn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:ir,unitPath:gs(r),command:n.command,args:o,text:Ij(n.command,o,e)}}function Ij(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${Cj}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple","LimitCORE=0",`ExecStart=${[e,...t].map(Rf).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${kf}=1"`,`Environment="REDSKILLED_SESSION=${Iw(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
|
|
88
|
+
`)}function Ow(e=process.env){return Pi(`${gs(e)}.d`,"10-current-entry.conf")}function Dw(e){return Pi(`${e}.d`,"10-current-entry.conf")}function Cw(e,t,r={}){if(!Pw(e.command))throw new Error(`redskilled refused to write the relative command "${e.command}" into the supervisor drop-in: systemd resolves ExecStart with the manager's PATH, so a relative command dies with 203/EXEC on hosts whose node comes from a version manager (#3554)`);let n=Ow(r.env??process.env),o=`${n}.${process.pid}.${Ew()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...tn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(Rf).join(" ")}`,""].join(`
|
|
89
|
+
`);Aj(Tw(n),{recursive:!0,mode:448}),Sw(o,i,{encoding:"utf8",mode:384}),vw(o,n);let a=(r.run??Ai)(["systemctl","--user","daemon-reload"]);if(a.status!==0)throw new Error(`redskilled wrote the supervised replacement drop-in ${n}, but systemd did not reload it: ${(a.stderr??a.stdout??`status ${a.status}`).trim()}`);return n}function Fw(e={}){let t=Ow(e.env??process.env),r;try{r=(e.readFile??(u=>Oj(u,"utf8")))(t)}catch{return{path:t,status:"absent"}}let n=Mj(r),o=n?.[0];if(n==null||o==null)return{path:t,status:"unparsed"};if(Pw(o))return{path:t,status:"absolute",command:o};if(e.socketPath==null||!n.includes(e.socketPath))return{path:t,status:"foreign",command:o};let s=e.execPath??process.execPath,i=e.argv??process.argv.slice(1),a=i.length===0?void 0:co({command:s,args:i,entry:i[0]},{homeDir:Ti(e.env??process.env),...e.version==null?{}:{version:e.version}}),d=["[Service]","ExecStart=",`ExecStart=${[s,...a?.args??i].map(Rf).join(" ")}`,""].join(`
|
|
90
|
+
`),c=`${t}.${process.pid}.${Ew()}.tmp`;return Sw(c,d,{encoding:"utf8",mode:384}),vw(c,t),(e.run??Ai)(["systemctl","--user","daemon-reload"]),{path:t,status:"healed",command:o}}function Mj(e){let t;for(let r of e.split(`
|
|
91
|
+
`)){let n=r.trim().startsWith("ExecStart=")?r.trim().slice(10).trim():void 0;n&&(t=n.split(/\s+/).map(o=>o.startsWith('"')&&o.endsWith('"')&&o.length>1?o.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\"/g,'"'):o))}return t}function Rf(e){return/[\s"'\\$%]/.test(e)?`"${Iw(e)}"`:e}function Iw(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function Mw(e,t={}){let r=t.writeFile??Lj,n=t.removeFile??$w,o=t.run??Ai,s=[];return await r(e.unitPath,e.text),await n(Dw(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Jl("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Jl("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function Lw(e={}){let t=e.removeFile??$w,r=e.run??Ai,n=gs(e.env??process.env),o=[Jl("disable",r,["systemctl","--user","disable","--now",ir])];return await t(n),await t(Dw(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Jl("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function jw(e={}){let t=e.exists??Pj,r=e.run??Ai,n=gs(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",ir]).status===0,i=o&&r(["systemctl","--user","is-active",ir]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${ir} is installed and enabled but inactive`,fix:`systemctl --user restart ${ir}`}]:[];return{unitName:ir,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Jl(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 Lj(e,t){await vj(Tw(e),{recursive:!0}),await Tj(e,t,{encoding:"utf8",mode:420})}async function $w(e){await Sj(e,{force:!0})}function Ai(e){let t=Ej(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 Nw=75,Ww=9e5,Gw="redskilled-replacement-entry-unresolved",Kj="REDSKILLED_NO_REGISTRY_PROBE",Hw="REDSKILLED_BORN_BY_REPLACEMENT",Uw="REDSKILLED_TAKEOVER_SOCKET",qw="REDSKILLED_TAKEOVER_TOKEN",Kw=3e4;function Vw(e=process.env){return e[Hw]==="1"}function zw(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function Jw(e){let t=e.running.trim();if(Di(t))return null;let r=e.newest?.trim()??"",n=Kt(r),o=Kt(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:Vj(n.major,e.supervised)}}function Vj(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: ${Dn("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 Yw(e){let t=e.running.trim();if(Di(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||Kt(r)===null?{act:"hold",reason:"published-unknown"}:yf(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function Di(e){let t=e.trim();return Kt(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function Ql(e=process.env){return e[kf]==="1"}var Yl=class extends Error{code=Gw;searched;constructor(t,r){super(`${Gw}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled or resolves no absolute npx
|
|
92
92
|
searched:
|
|
93
93
|
${r.map(n=>` ${n}`).join(`
|
|
94
|
-
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function
|
|
95
|
-
`}function Hj(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Yt(t)}catch{return null}}}function Uj(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}function r_(e=1e4){return async(t,r)=>await qj(t,e,r)}async function qj(e,t,r){if(!Number.isFinite(t)||t<=0)return await r();let n,o=new Promise((s,i)=>{n=setTimeout(()=>i(new Error(`redskilled ${e} exceeded its ${t}ms remote-call deadline`)),t),n.unref()});try{return await Promise.race([Promise.resolve().then(r),o])}finally{n!=null&&clearTimeout(n)}}import{randomUUID as Kj}from"node:crypto";var Vj=5e3,zj=150,Jj=3;function n_(e,t={}){let r=t.selfPingTimeoutMs??zj;return Yj({intervalMs:t.selfPingIntervalMs??Vj,timeoutMs:r,missThreshold:t.selfPingMissThreshold??Jj,probe:t.selfPing??(async()=>{let n=await Pn({socketPath:e,timeoutMs:r},{id:Kj(),op:"ping",self:!0});if(!n.ok)throw new Error(n.error)})})}function Yj(e){let t,r=!1,n=null,o=0,s=null,i=null,a=null,l="the daemon has not self-pinged yet",d=Math.max(1,Math.floor(e.missThreshold));function c(g,f,b){o+=Math.max(1,g),a=f,l=b}function u(){r||e.intervalMs<=0||(n=Date.now()+e.intervalMs,t=setTimeout(()=>void p(),e.intervalMs),t.unref())}async function p(){t=void 0;let g=Date.now(),f=new Date(g).toISOString();s=f;let b=n==null?0:Math.max(0,Math.floor((g-n)/Math.max(1,e.intervalMs)));b>0&&c(b,f,`the daemon event loop missed ${b} scheduled self-ping interval(s) before this probe ran`);let y;try{await Promise.race([Promise.resolve().then(e.probe),new Promise((w,O)=>{y=setTimeout(()=>O(new Error(`self-ping exceeded ${e.timeoutMs}ms`)),Math.max(1,e.timeoutMs)),y.unref()})]);let _=Date.now()-g;if(_>e.timeoutMs)throw new Error(`self-ping answered after ${_}ms`);i=new Date().toISOString(),b===0&&(o=0,l=`the daemon answered its own socket in ${_}ms`)}catch(_){c(1,new Date().toISOString(),_ instanceof Error?_.message:String(_))}finally{y!=null&&clearTimeout(y),u()}}return{arm(){r||t!=null||e.intervalMs<=0||u()},stop(){r=!0,t!=null&&clearTimeout(t),t=void 0},health:()=>({status:o>=d?"degraded":"healthy",consecutive_misses:o,miss_threshold:d,last_probe_at:s,last_success_at:i,last_failure_at:a,detail:l})}}async function i_(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??qo,o=e.clock??(()=>new Date().toISOString()),s=e.launch??zR,i=e.refreshTrunk??fw,a=e.countBaseMovement??gw,l=e.ceiling??Za();e.repositoryActivity!=null&&_p(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??e_(),c=e.leaseStore??t_(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??el(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??si(t.machineClaimPath,p,{clock:o});await Zj(t$(t.socketPath),{recursive:!0,mode:448});let[f,b]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),y=Date.parse(o()),_=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&b!=null&&f.pid===b.pid&&f.start_time===b.start_time&&f.socket_path===t.socketPath&&b.socket_path===t.socketPath&&Number.isFinite(y)&&Number.isFinite(_)&&y-_>=Wy&&await hu(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:b.pid,startTime:b.start_time,uid:b.uid}).catch(()=>!1);let O=await g.claim(u);if(!O.claimed)throw O.claim?.socket_path===t.socketPath?new Zt(t.socketPath):new rn(g.claimPath,O.reason,O.claim);let v=await c.acquire(d);if(!v.acquired)throw await g.release(u).catch(()=>{}),new Zt(t.socketPath,v.lease);let A;try{A=await fb(t.socketPath,async()=>{let[m,C]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return m!=null&&m.pid!==d.pid&&Ke(m.pid)?!0:C!=null&&C.socket_path===t.socketPath&&C.pid!==u.pid&&Ke(C.pid)})}catch(m){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),m}let $=o(),L=e.eventLane??rb(t.eventLanePath),B=e.registrationIntentStore??GR(t.registrationIntentPath),F=e.liveness??DR,W=e.livenessGraceMs??CR,U=e.stopWorker??$R,oe=mb(U),se=e.unitInventory??(()=>of(t.machineClaimPath,t.machineClaimPathOfThisHost)?MR():[]),te=e.unitMainPid??IR,Q=e.treeSampler??wk,le=e.readLogTail??mw,Se=e.sampleMs??Gy,ve=e.leaseRenewMs??iu,ke=e.registrationSustainMs??Hy,J=e.publishedVersion??(m=>qw(m)),ce=e.replaceCheckMs??jw,Re=e.publishedProbeTimeoutMs??By,Pe=r_(e.remotePollTimeoutMs),Te=e.localPublishedEvidence??(m=>Kw(m,e.replacementIO?.env??process.env)),_e=e.bornByReplacement??Bw(),Ae=e.replaceBootCheckMs??Ny,ye=e.supervised??Jl(),ae=e.replacementIO??{},be=e.repositoryActivity,Ye=be?.intervalMs??rs,Ue=e.githubBalance,ft=e.queueDiscovery,Tr=ft?.transport??be?.transport,Vr=ft?.unconfiguredReason??qy,cn=ft?.intervalMs??uf,Gt=e.demandMs??15e3,zr=e.demandBackoffMs??3e4,ue=new Map,gt=new Map,rt=new Set,Qe=new Map,at=new Map,vt=[],lt=[],Pr=e.deaths===void 0?void 0:[...e.deaths],Jr=await B.read().catch(()=>[]),xe=new Map,V=new Map,I=JR({registration:m=>xe.get(m),liveWorkerIds:()=>ue.keys(),admit:Fo,start:(m,C)=>Gs(m,{admission:C,hook:!0}).worker,refuse:(m,C)=>void L.recordDemandRefusal({ts:o(),projectLabel:m,detail:C}).catch(()=>{}),recordExpiry:(m,C)=>void L.recordDemandRefusal({ts:o(),projectLabel:m,detail:C}).catch(()=>{})}),R=Promise.resolve();function j(m){let C=R.then(async()=>{await I.waitForSettled();let G=await m();return await I.waitForSettled(),G});return R=C.then(()=>{},()=>{}),C}let N=new Set,H={},K=null,X=null,we=null,je=!1,Me=0,ar=null,Ar="none",lr=null,jn=null,Yr=null,dr=null,re=!1,Ee=null,De=null,Ot=null,mt=[],bt=[],Co=new Map((e.orphanedRegistrations??[]).map(m=>[m.project_label,m])),$n=null,Ct={},$s=!1,Le,Bn,Nn,un,Or,pn,$e,cr,zt,dt=!1,Wd=!1,aa=null,Bs=tw({poll:()=>tm(),registrations:()=>xe.values(),clock:o,attendedMs:Ye,armed:ft!=null||be!=null&&be.projects.length>0,stopping:()=>dt,rateLimit:()=>Yr?.rate_limit??null}),Hd=n_(t.socketPath,e),Qg,Ud=new Promise(m=>{Qg=m});function Do(m){Zg(m);let C=Date.parse(m),G=lb(xe.values(),C);for(let q of G.lapsed){xe.delete(q.project_label);let z=De?.projects.find(de=>de.project_label===q.project_label),ne=[...ue.values()].some(de=>de.project_label===q.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&V.set(q.project_label,q),Xg(q,C)}return G.lapsed.length>0&&Gn(),G.lapsed}function Gn(){let m=new Map(V);for(let[C,G]of xe)m.set(C,G);B.replace([...m.values()]).catch(()=>{})}function Xg(m,C,G){let q=Number.isFinite(C)?new Date(C).toISOString():m.renew_by;mt.push(HR(m,De,q,G)),mt.length>ei&&mt.splice(0,mt.length-ei)}function Zg(m){if(xe.size===0)return;let C=Date.parse(m);if(!Number.isFinite(C))return;let G={};for(let de of ue.values())G[de.project_label]=(G[de.project_label]??0)+1;let q=De==null?Number.NaN:Date.parse(De.fetched_at),z=new Map((De?.projects??[]).map(de=>[de.project_label,de])),ne=!1;for(let de of[...xe.values()]){let Xe=Number.isFinite(q)&&C-q<=de.renew_within_ms?z.get(de.project_label):void 0,Io=mu(de,{now:m,...Xe==null?{}:{queue:{outcome:Xe.outcome,depth:Xe.depth}},liveWorkers:G[de.project_label]??0});Io.registration!==de&&(xe.set(de.project_label,Io.registration),ne=!0)}ne&&Gn()}function em(m){if(V.size===0)return;let C=Date.parse(m);if(!Number.isFinite(C))return;let G=new Map((De?.projects??[]).map(z=>[z.project_label,z])),q=!1;for(let[z,ne]of[...V]){if(!af(ne,C)){V.delete(z),q=!0;continue}let de=G.get(z),nt=mu(ne,{now:m,...de==null?{}:{queue:{outcome:de.outcome,depth:de.depth}},liveWorkers:[...ue.values()].filter(Xe=>Xe.project_label===z).length});nt.verdict==="open-work"||nt.verdict==="live-worker"?(xe.set(z,nt.registration),V.delete(z),q=!0):nt.verdict==="drained"&&(V.delete(z),q=!0)}q&&Gn()}function la(){let m=o();return Do(m),pR({now:m,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:$,ceiling:l,scope:Zb(g.claimPath,p,u),requestHealth:Hd.health(),workers:[...ue.values()],registrations:[...xe.values()],demand:Ot,lapses:mt,stops:bt,orphanedRegistrations:[...Co.values()],birthLatches:Ub(Ct,Date.parse(m)),queue:De,published:{version:X,checkedAt:we,newer:je,replacement:Ar,newest:lr,majorHold:jn,checks:Me,holdReason:ar}})}function da(){return Hk({hostState:la(),ceiling:l,rss:H,sampledAt:K,logLines:Object.fromEntries(Qe),displays:Object.fromEntries(at),now:o(),reattachedWorkerIds:[...rt],repositoryActivity:Yr,activityStalenessMs:xp*Bs.cadenceMs(),githubBalance:dr,...Pr===void 0?{}:{deaths:Pr},metrics:xb({observations:vt,outcomes:lt,now:o()})})}function IS(m,C){let G=vb(vt,m,C,o());vt=G.observations,L.recordWorker(G.record).catch(()=>{})}async function tm(){return Yr=await Pe("repository activity poll",()=>rw({...be==null?{}:{explicit:be},registrations:xe.values(),resolveHostTransport:()=>(nm(),Tr),now:o(),previous:Yr}))}async function rm(){return Ue==null?null:(!re&&Ue.store&&(Ee??=Ue.store.read().then(m=>(re=!0,m!==null&&(dr=m),m)).finally(()=>{Ee=null}),await Ee!==null)||(dr=await Pe("GitHub balance poll",()=>ip({transport:Ue.transport,now:o()})),await Ue.store?.write(dr).catch(()=>{}),await Ue.history?.append(dr).catch(()=>{})),dr)}function MS(){if(dt||cr!=null||Ue==null)return;let m=()=>{cr=void 0,rm().catch(()=>{}).then(()=>{if(dt)return;let C=Ue.intervalMsOverride??bl(dr??yl(o()),{now:o()});cr=setTimeout(m,C),cr.unref()})};m()}function nm(){if(!(Tr!=null||ft?.armTransport==null))try{let m=ft.armTransport();if(m.transport!=null){Tr=m.transport;return}m.unconfiguredReason!=null&&(Vr=m.unconfiguredReason)}catch(m){Vr=`this host could not resolve a tracker credential: ${m instanceof Error?m.message:String(m)}`}}async function qd(){let m=o();Do(m);let C=Date.parse(m);for(let[ne,de]of[...V])af(de,C)||V.delete(ne);let q=[...new Map([...V,...xe]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,de)=>ne.project_label.localeCompare(de.project_label));if(q.length===0)return null;if(nm(),Tr==null)return De=iw(q,m,Vr),De;De=await Pe("queue poll",()=>aw({projects:q,transport:Tr,now:m,...ft?.batchSize==null?{}:{batchSize:ft.batchSize}}));let z=o();return em(z),Zg(z),De}async function om(){let m=o();if($s)return Ot??Nb(m);$s=!0;try{await Vd().catch(()=>{});let C={};for(let me of ue.values())C[me.project_label]=(C[me.project_label]??0)+1;let G=Date.parse(m),q=Number.isFinite(G)?G:0;for(let[me,St]of Object.entries(Ct)){if(St.probeWorkerId==null)continue;let ma=ue.get(St.probeWorkerId);ma!=null&&q-Date.parse(ma.started_at)>=6e4&&(Ct[me]=wu())}let z=()=>Bb({projects:[...xe.values()].map(me=>({project_label:me.project_label,selector:me.selector,argv:me.argv,workspace_path:me.workspace_path,target:me.target})),queue:Object.fromEntries((De?.projects??[]).map(me=>[me.project_label,me.depth])),live:C,nowMs:q,backoffUntilMs:$n,birthHealth:Ct}),ne=z();ne.births.length>0&&(await qd(),ne=z());let de=[],nt=new Map,Xe=null;for(let me of ne.births){let St,ma=_i(ue.keys()),Mo=xe.get(me.project_label),ha=qa({argv:me.argv,...Mo?.env==null?{}:{env:Mo.env},...Mo?.log_path==null?{}:{log_path:Mo.log_path}},{worker_id:ma,slot:me.index,workspace_path:me.workspace_path},{project_label:me.project_label});try{if(Mo?.trunk==null)St=await j(()=>Gs(ha));else{let Qr={workspace_path:me.workspace_path,trunk:Mo.trunk},Us=Fo(ha);if(!Us.admitted)throw new nr(Us.reason,Us);let wm=ff(Qr),ya=nt.get(wm);ya==null&&(ya=Kd(Qr),nt.set(wm,ya)),St=await j(()=>um(ha,Qr,ya,Us))}}catch(Qr){Xe=Qr instanceof Error?Qr.message:String(Qr),Qr instanceof nr&&Qr.admission?.verdict==="refused-unreachable-trunk-remote"||($n=(Number.isFinite(G)?G:Date.now())+zr);break}de.push({project_label:me.project_label,worker_id:St.worker.worker_id,pid:St.worker.pid,...St.fork_sha==null?{}:{fork_sha:St.fork_sha},warnings:ha.log_path==null?[...St.warnings,`project ${JSON.stringify(me.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 Yd=Ct[me.project_label];Yd?.haltUntilMs!=null&&q>=Yd.haltUntilMs&&(Ct[me.project_label]=Hb(Yd,St.worker.worker_id))}Xe==null&&ne.births.length>0&&($n=null);let Io=new Set(de.map(me=>me.project_label));for(let me of ne.intents){if(me.queue_depth==null||me.queue_depth<=0||me.live>=me.target||Io.has(me.project_label))continue;let St=Xe!=null&&(me.outcome==="asking"||me.outcome==="half-open-probe")?`project ${JSON.stringify(me.project_label)} was birth-eligible but the host refused it: ${Xe}`:me.detail;await L.recordDemandRefusal({ts:m,projectLabel:me.project_label,detail:St}).catch(()=>{})}return Ot={version:1,at:m,requested:ne.births.length,granted:de,shortfall:ne.births.length-de.length,refusal:Xe,retry_after:$n==null?null:new Date($n).toISOString(),projects:ne.intents},Ot}finally{$s=!1}}function LS(m){return Sn(da(),{...Ne,mode:m?.mode??Ne.mode,project:m?.project??Ne.project,maxWorkers:m?.max_workers??Ne.maxWorkers,maxProjects:m?.max_projects??Ne.maxProjects,maxWidth:m?.max_width??Ne.maxWidth,verbose:m?.verbose??Ne.verbose})}function jS(m){return ls(da(),{mode:m?.mode??Ut.mode,project:m?.project??Ut.project,maxWidth:m?.max_width??Ut.maxWidth,maxRows:m?.max_rows??Ut.maxRows,maxHeight:m?.max_height??Ut.maxHeight,showDeathDetails:m?.show_death_details??Ut.showDeathDetails})}function Wn(m,C,G){return r0({op:m,sessionProject:C??null,targetProject:G})}async function $S(m){let C=ue.get(m.worker_id),G=Wn(t0(m.command),m.session_project,C?.project_label??null);if(!G.permitted)throw new Error(G.reason);if(m.command!=="stop")throw new Error(`redskilled does not implement ${m.command}: it owns birth, death and limits, and ${m.command} is a work decision the project's own bundle makes on top of them`);let q=C!=null&&await HS(C,m.detail??"stopped by its own project");return{version:1,command:m.command,worker_id:m.worker_id,applied:q,reach:G,detail:q?`redskilled stopped Worker ${JSON.stringify(m.worker_id)} of project ${JSON.stringify(C.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to stop`}}function Ns(m){ue.delete(m),rt.delete(m),Qe.delete(m),at.delete(m)}function sm(m){let C=ue.get(m.worker_id),G=Wn("worker-heartbeat",m.session_project,C?.project_label??null);if(!G.permitted)throw new Error(G.reason);if(typeof m.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(C==null)return{version:1,worker_id:m.worker_id,accepted:!1,reach:G,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to publish a line for`};let q=o();Qe.set(m.worker_id,{line:m.last_log_line,published_at:q,source:"heartbeat"});let z=m.display===void 0?null:uw(m.display);if(z!=null){let ne=at.get(m.worker_id)?.display,de={display:z,published_at:q};at.set(m.worker_id,de),IS(de,C),(z.phase!==ne?.phase||z.step!==ne?.step)&&Dt("worker-activity",C,null,{phase:z.phase,step:z.step})}return m.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Dt("worker-heal",C,`${m.mechanical_heal.cause}; cycle ${m.mechanical_heal.cycle}/${m.mechanical_heal.cap}; free=${m.mechanical_heal.free}`,{healKind:m.mechanical_heal.heal_kind}),{version:1,worker_id:m.worker_id,accepted:!0,reach:G,published_at:q,detail:`redskilled stored a line for Worker ${JSON.stringify(m.worker_id)} without reading it`}}async function BS(m,C,G){let q=`exit code=${C??"null"} signal=${G??"null"}`;if(m.unit!=null&&m.unit!==""&&await GS(m)){WS(m,`its launch client ended (${q}) while unit ${JSON.stringify(m.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=m.log_path==null?null:au(await le(m.log_path).catch(()=>null));Ns(m.worker_id),Dt("worker-death",m,z==null?q:`session-error: ${z}`,{exitCode:C,signal:G,refusal:z}),ct()}function NS(m,C){if(!Number.isFinite(C)||C<0){Ct[m]=oi;return}let G=Ct[m]??oi,q=Wb(G,C,Date.parse(o()));Ct[m]=q,q.haltUntilMs!=null&&G.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(m)} lost ${q.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(q.haltUntilMs).toISOString()}
|
|
96
|
-
`)}function im(m,C){let G=Wn("project-reset",C,m);if(!G.permitted)throw new Error(G.reason);let q=Ct[m]?.haltUntilMs!=null||Ct[m]?.probeWorkerId!=null;return Ct[m]=wu(),{version:1,project_label:m,latch:"project-birth-breaker",reset:q,reach:G,detail:q?`redskilled cleared project ${JSON.stringify(m)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(m)}; nothing changed`}}async function GS(m){try{return await F(m)===!0}catch{return!1}}function WS(m,C){let G=m.unit==null?null:te(m.unit);ue.set(m.worker_id,{...m,...G!=null&&G>0?{pid:G}:{},warnings:[...m.warnings,C]}),rt.add(m.worker_id),ct()}function am(m,C){let G=Wn("project-register",C,m.project_label);if(!G.permitted)throw new Error(G.reason);let q=o();Do(q);let z=ib(m,{now:q,held:xe.get(m.project_label)});return xe.set(z.project_label,z),Gn(),Bs.nudge(),cm(z.project_label),ct(),{version:1,registration:z,reach:G,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 lm(m,C={}){let G=Wn("project-renew",C.sessionProject,m);if(!G.permitted)throw new Error(G.reason);let q=o();Do(q);let z=xe.get(m);if(z==null){if(Co.has(m))throw new Xn(m,{kind:"orphaned"});let de=[...bt].reverse().find(Xe=>Xe.project_label===m);if(de!=null)throw new Xn(m,{kind:"stopped",at:de.at});let nt=[...mt].reverse().find(Xe=>Xe.project_label===m);throw nt!=null?new Xn(m,{kind:"lapsed",at:nt.at,...nt.registered_at==null?{}:{registered_at:nt.registered_at}}):new Xn(m)}let ne=ab(z,{now:q,...C.renewWithinMs==null?{}:{renew_within_ms:C.renewWithinMs},...C.launch==null?{}:{launch:C.launch}});return xe.set(ne.project_label,ne),Gn(),Bs.nudge(),ct(),{version:1,registration:ne,reach:G,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(C.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function dm(m,C){let G=Wn("project-deregister",C,m);if(!G.permitted)throw new Error(G.reason);let q=xe.get(m)??V.get(m),z=xe.delete(m),ne=V.delete(m),de=z||ne;return q!=null&&(cm(m),bt.push(UR(q,De,o())),bt.length>ei&&bt.splice(0,bt.length-ei)),de&&Gn(),{version:1,project_label:m,released:de,reach:G,detail:de?`redskilled released the registration for project ${JSON.stringify(m)}`:`redskilled held no registration for project ${JSON.stringify(m)}, so there was nothing to release`}}function cm(m){V.delete(m);for(let C=mt.length-1;C>=0;C-=1)mt[C].project_label===m&&mt.splice(C,1);for(let C=bt.length-1;C>=0;C-=1)bt[C].project_label===m&&bt.splice(C,1);Co.delete(m)}async function HS(m,C){return await oe(m,G=>{Ns(m.worker_id);let q=m.pgid??m.pid;Dt("worker-death",m,G?C:`${C}; unconfirmed-stop: the host did not confirm process group ${q} stopped, so process group ${q} may still be alive`),ct()}),!0}function Fo(m){return Lb({ceiling:l,workers:[...ue.values()],budget:m.budget,projectLabel:m.project_label,...m.reservation==null?{}:{reservation:m.reservation}})}function Kd(m){let C=ff(m),G=gt.get(C);if(G!=null)return G;let q=i(m).finally(()=>{gt.get(C)===q&>.delete(C)});return gt.set(C,q),q}async function um(m,C,G,q){let z=q??Fo(m);if(!z.admitted)throw new nr(z.reason,z);let ne;try{ne=await(G??Kd(C))}catch(nt){let Xe=pw(z,C,nt);throw new nr(Xe.reason,Xe)}let de=Fo(m);if(!de.admitted)throw new nr(de.reason,de);return Gs(m,{admission:de,forkSha:ne})}function Gs(m,C={}){let G=jb({ceiling:l,workers:[...ue.values()],budget:m.budget}),q=s({spec:m,admission:C.admission??Fo(m),...C.forkSha==null?{}:{forkSha:C.forkSha},memoryCeiling:G,liveWorkerIds:ue.keys(),clock:o,onExit:(nt,Xe,Io)=>{let me=ue.get(nt);if(me==null){ct();return}BS(me,Xe,Io).catch(()=>{})}}),z=C.forkSha??q.fork_sha??q.worker.fork_sha,ne=z==null||z===""?q.worker:{...q.worker,fork_sha:z},de={...q,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ue.set(ne.worker_id,ne),C.hook===!0&&I.track(ne.worker_id),Dt("worker-birth",ne,null,{admissionVerdict:C.admission?.verdict??q.admission.verdict}),ct(),de}function Dt(m,C,G,q={}){if(dt)return;let z=o(),ne={kind:m,worker:C,ts:z,detail:G,...q};if(m==="worker-death"||m==="worker-budget-kill"){let de={worker_id:C.worker_id,ts:z,outcome:m};lt=Zn([...lt,de],nt=>nt.ts,{now:o()}),pm(Ja(ne),{startedAt:C.started_at,...q.refusal==null?{}:{refusal:q.refusal}}),NS(C.project_label,Date.parse(z)-Date.parse(C.started_at))}L.recordWorker(ne).catch(()=>{}),I.onEvent(m,C)}function pm(m,C={}){let G=Uy(m,C);if(G==null)return;let q=[G,...(Pr??[]).filter(z=>z.kind!==G.kind||z.id!==G.id||z.ts!==G.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));Pr=Zn(q,z=>z.ts,{now:o()})}async function Vd(){let m=await OR({workers:[...ue.values()],reattached_worker_ids:rt,now_ms:Date.parse(o()),grace_ms:W,probe:F,on_dead:C=>{Ns(C.worker_id),Dt("worker-death",C,"the host no longer confirms this Worker")}});return m.length>0&&ct(),m}let Ws=NR({authorized:of(t.machineClaimPath,t.machineClaimPathOfThisHost),interval_ms:e.orphanReaperMs,mode:e.orphanReaperMode,census:e.orphanCensus,active_worker_units:se,dump_files:e.orphanDumpFiles,read_starttime:e.orphanStarttime,kill_group:e.orphanKillGroup,report:e.orphanReport,clock:o,held_worker_ids:()=>ue.keys(),live_births:async()=>Ya(await L.read()),adopt:async(m,C,G)=>{ue.set(m.worker_id,m),rt.add(m.worker_id),C&&(Dt("worker-birth",m,G),await L.flush()),ct()},record_reaped:async(m,C)=>{Ns(m.worker_id),Dt("worker-death",m,C),await L.flush(),ct()}});async function fm(m,C){let G=ue.get(m);return G?(await oe(G,()=>{Ns(m),Dt("worker-budget-kill",G,C),ct()}),!0):!1}async function gm(){let m=[...ue.values()];if(m.length===0)return[];let C;try{C=await Q(m)}catch{return[]}let G=C.rss;H=G,K=o(),US(C.cpu_seconds,K);let{terminations:q}=Rk({workers:m,rss:G,processes:C.processes??{}}),z=[];for(let ne of q)await fm(ne.worker_id,ne.reason)&&z.push(ne);return z}function US(m,C){for(let[G,q]of Object.entries(m)){if(typeof q!="number"||!Number.isFinite(q))continue;let z=ue.get(G);z&&ue.set(G,{...z,cpu:{cpu_seconds:q,sampled_at:C}})}}async function qS(){try{return Re<=0?await J(r):await new Promise(m=>{let C=setTimeout(()=>m(zd()),Re);C.unref(),J(r).then(G=>{clearTimeout(C),m(G)},()=>{clearTimeout(C),m(zd())})})}catch{return zd()}}function zd(){try{return Te(r)}catch{return null}}async function mm(){if(Ai(r))return Me+=1,we=o(),ar="local-build",{act:"hold",reason:"local-build"};let m=Nw(await qS()),C=m.version;X=C,lr=m.newest??null,we=o(),jn=Gw({running:r,newest:lr,supervised:ye});let G=Ww({running:r,published:C,supervised:ye});return je=G.act==="replace",Me+=1,ar=G.act==="hold"?G.reason:null,Ar!=="in-progress"&&(Ar=G.act==="replace"?"pending":"none"),G}async function ca(){let m=await mm();if(m.act!=="replace"||Ar==="in-progress")return m;let C=Hw(m,ae,t,n);return Ar="in-progress",await L.flush().catch(()=>{}),await B.flush().catch(()=>{}),await pa({reason:"replaced"}),Uw(C,t,{...n==null?{}:{idleMs:n},io:ae}),m}function KS(){dt||pn!=null||ce<=0||(!_e&&Ae>0&&($e=setTimeout(()=>{ca().catch(()=>{})},Ae),$e.unref()),pn=setInterval(()=>{ca().catch(()=>{})},ce),pn.unref())}async function hm(){return await c.renew(d).catch(()=>null)}function VS(){dt||Nn!=null||ve<=0||(Nn=setInterval(()=>{hm()},ve),Nn.unref())}function zS(){dt||un!=null||ke<=0||(un=setInterval(()=>{Do(o())},ke),un.unref())}function JS(){dt||Bn!=null||Se<=0||(Bn=setInterval(()=>{gm().catch(()=>{})},Se),Bn.unref())}function YS(){if(dt||zt!=null||cn<=0)return;let m=C=>{zt=setTimeout(()=>{zt=void 0,ym().then(()=>qd()).catch(()=>{}).finally(()=>{if(dt)return;let G=Date.parse(o());m(cw(De,cn,Number.isFinite(G)?G:Date.now()))})},C),zt.unref()};m(cn)}async function ym(){await Promise.allSettled([...xe.values()].filter(m=>m.trunk!=null).map(async m=>{let C=await Kd({workspace_path:m.workspace_path,trunk:m.trunk}),G=[...ue.values()].filter(q=>q.project_label===m.project_label&&q.fork_sha!=null&&q.fork_sha!=="");await Promise.allSettled(G.map(async q=>{let z=await a({workspace_path:m.workspace_path,fork_sha:q.fork_sha,head_sha:C}),ne=ue.get(q.worker_id);if(ne==null||ne.fork_sha!==q.fork_sha)return;let de={...ne,base_head_sha:C,base_commits_ahead:z};ue.set(q.worker_id,de),(ne.base_head_sha!==C||ne.base_commits_ahead!==z)&&Dt("worker-drift",de,null,{baseHeadSha:C,baseCommitsAhead:z})}))}))}function QS(){dt||Or!=null||Gt<=0||(Or=setInterval(()=>{om().catch(()=>{})},Gt),Or.unref())}function ct(){dt||(Le&&clearTimeout(Le),Le=setTimeout(()=>{Vd().catch(()=>{}).then(()=>bm())},n),Le.unref())}function bm(){return ue.size>0?(ct(),"held-by-workers"):(Do(o()),xe.size>0?(ct(),"held-by-registrations"):(XS(),"exited"))}async function XS(){if(!Ai(r)){if((await ca().catch(()=>null))?.act==="replace"||Wd||dt)return;if(ue.size>0||xe.size>0){ct();return}}await pa({reason:"idle"})}function ua(m){return qb({reason:m,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ue.values()],projects:[...xe.keys()]})}function km(m){if(aa!=null)return aa;let C=m.reason??"requested",G=m.note?.trim();return aa=L.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:C,detail:G==null||G===""?ua(C).detail:`${ua(C).detail} \u2014 ${G}`,...m.signal==null?{}:{signal:m.signal}}).catch(()=>{}),aa}async function pa(m={}){if(Wd)return await Ud;Wd=!0,await km(m),dt=!0,Le&&clearTimeout(Le),Bn&&clearInterval(Bn),Nn&&clearInterval(Nn),un&&clearInterval(un),Ws.stop(),pn&&clearInterval(pn),$e&&clearTimeout($e),Bs.stop(),Hd.stop(),cr&&clearTimeout(cr),zt&&clearTimeout(zt),Or&&clearInterval(Or),await L.flush().catch(()=>{}),await B.flush().catch(()=>{}),await c.release(d),await g.release(u),A.close();for(let C of N)C.destroy();return await new Promise(C=>A.once("close",()=>C())),await e$(t.socketPath,{force:!0}),Qg(),await Ud}let Hs=await L.read().catch(()=>[]),fa=new Map;for(let m of Hs){if(m.event==="worker-birth"){fa.set(m.worker_id,m.ts);continue}let C=au(m.detail);pm(m,{...fa.get(m.worker_id)==null?{}:{startedAt:fa.get(m.worker_id)},...C==null?{}:{refusal:C}}),(m.event==="worker-death"||m.event==="worker-budget-kill")&&fa.delete(m.worker_id)}lt=Zn(Hs.filter(m=>m.event==="worker-death"||m.event==="worker-budget-kill").map(m=>({worker_id:m.worker_id,ts:m.ts,outcome:m.event})),m=>m.ts,{now:o()}),vt=Sb(Hs,o());let ZS=Ya(Hs),Rm=new Set(await Promise.resolve(se()).catch(()=>[])),Jd=await nf(ZS,m=>m.unit!=null&&Rm.has(m.unit)?!0:F(m));for(let m of Jd.alive){let C=jR(m),G=C.unit==null||Ke(C.pid)?null:te(C.unit);ue.set(C.worker_id,G!=null&&G>0?{...C,pid:G}:C),rt.add(C.worker_id)}for(let m of Jd.dead)Dt("worker-death",m,"the Worker ended while no daemon was watching");let eT=LR({units:[...Rm],held:[...ue.values()],mainPid:te,now:$});for(let m of eT)ue.set(m.worker_id,m),rt.add(m.worker_id),Dt("worker-birth",m,"adopted from an active unit with no birth on this lane");let ga=cb(Jr,ue.values(),$);for(let m of ga.live)xe.set(m.project_label,m);for(let m of ga.recoverable)V.set(m.project_label,m);for(let m of ga.abandoned)Xg(m,Date.parse($),`redskilled lapsed the recovered registration for project ${JSON.stringify(m.project_label)}: no session renewed it on cadence and no attributed Worker is alive`);Jr.length>0&&Gn(),em(o()),await ub({eventLane:L,laneEvents:Hs,heldLease:f,ownerPid:d.pid,startedAt:$,socketPath:t.socketPath,recovery:ga});for(let m of Jd.alive){if(m.log_path==null||Qe.has(m.worker_id))continue;let C=await le(m.log_path).catch(()=>null);C==null||C.trim()===""||Qe.set(m.worker_id,{line:C,published_at:o(),source:"rehydrated"})}A.on("connection",m=>{N.add(m),m.once("close",()=>N.delete(m)),gb(m,async(C,G)=>{(C.op!=="ping"||C.self!==!0)&&ct();let q=await tT(C);G(q),C.op==="shutdown"&&setImmediate(()=>void pa({reason:"requested"}).catch(()=>{}))})});async function tT(m){try{if(m.op==="ping")return{id:m.id,ok:!0,value:{pong:!0,protocol_version:Ll,daemon_version:r,pid:d.pid}};if(m.op==="host-state")return{id:m.id,ok:!0,value:la()};if(m.op==="reap")return{id:m.id,ok:!0,value:await Ws.reap(m.report===!0)};if(m.op==="statusline-payload")return{id:m.id,ok:!0,value:Pp(da(),m.extras)};if(m.op==="statusline-string")return{id:m.id,ok:!0,value:LS(m.render)};if(m.op==="statusline-dashboard")return{id:m.id,ok:!0,value:jS(m.dashboard)};if(m.op==="worker-heartbeat")return{id:m.id,ok:!0,value:sm(m.heartbeat)};if(m.op==="project-register"){let G=am(m.registration,m.session_project);return await B.flush(),{id:m.id,ok:!0,value:G}}if(m.op==="project-renew"){let G=lm(m.project_label,{...m.session_project==null?{}:{sessionProject:m.session_project},...m.renew_within_ms==null?{}:{renewWithinMs:m.renew_within_ms},...m.launch==null?{}:{launch:m.launch}});return await B.flush(),{id:m.id,ok:!0,value:G}}if(m.op==="project-deregister"){let G=dm(m.project_label,m.session_project);return await B.flush(),{id:m.id,ok:!0,value:G}}if(m.op==="project-reset")return{id:m.id,ok:!0,value:im(m.project_label,m.session_project)};if(m.op==="worker-command")return{id:m.id,ok:!0,value:await $S(m.command)};if(m.op==="worker-start"){let G=Wn("worker-start",m.session_project,m.spec.project_label);if(!G.permitted)return{id:m.id,ok:!1,error:G.reason};let q=await j(()=>m.spec.trunk==null?Gs(m.spec):um(m.spec,{workspace_path:m.spec.workspace_path,trunk:m.spec.trunk}));return await L.flush().catch(()=>{}),{id:m.id,ok:!0,value:{worker:q.worker,admission:q.admission,fork_sha:q.fork_sha,warnings:q.warnings}}}if(m.op==="shutdown"){let G=ua("requested");return await km({reason:"requested",...m.detail==null?{}:{note:m.detail}}),{id:m.id,ok:!0,value:G}}let C=m;return{id:C.id??s_(),ok:!1,error:`unsupported redskilled op: ${C.op??"unknown"}`}}catch(C){return{id:m.id??s_(),ok:!1,error:C instanceof Error?C.message:String(C)}}}return ct(),JS(),VS(),zS(),Ws.arm(),KS(),Bs.arm(),MS(),YS(),QS(),Hd.arm(),{socketPath:t.socketPath,lease:v.lease,startedAt:$,closed:Ud,startWorker:Gs,admit:Fo,ceiling:()=>l,killWorkerOverBudget:fm,sampleMemoryBudgets:gm,renewLease:hm,pollRepositoryActivity:tm,pollGithubBalance:rm,githubBalance:()=>dr,pollQueueDiscovery:qd,queueDiscovery:()=>De,driveDemand:om,demand:()=>Ot,sweepWorkerLiveness:Vd,sweepOrphanProcesses:()=>dt?Promise.resolve({adopted:0,reaped:0,suspects:0}):Ws.sweep(),censusOrphanProcesses:()=>Ws.census(),publishWorkerHeartbeat:sm,reattached:()=>[...rt].map(m=>ue.get(m)).filter(m=>m!=null),flushEvents:async()=>{await R,await I.waitForSettled(),await L.flush()},trackWorker(m){ue.set(m.worker_id,m),Dt("worker-birth",m,null),ct()},releaseWorker(m){let C=ue.get(m),G=ue.delete(m);return rt.delete(m),Qe.delete(m),at.delete(m),C&&Dt("worker-death",C,"released by the daemon"),ct(),G},workerCount:()=>ue.size,registerProject:am,renewProject:lm,resetProjectBirthBreaker:im,deregisterProject:dm,registrations:()=>la().registrations??[],hostState:la,refreshRegisteredTrunks:ym,statuslinePayload:da,evaluateIdle:bm,observePublishedVersion:mm,checkForReplacement:ca,stopReport:ua,stop:pa}}function wf(e){let t=e.socketPath,r=r$(e);return e.answers?{version:1,kind:"answering",socket_path:t,holder:r,reason:`a redskilled daemon answered on ${JSON.stringify(t)}`,repair:"nothing to repair"}:r!=null?{version:1,kind:"held-unresponsive",socket_path:t,holder:r,reason:`redskilled pid ${r.pid} is alive and has held ${JSON.stringify(t)} since ${r.acquired_at}${r.uptime_ms==null?"":` (up ${a_(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${An("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${An("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function _f(e){return`${e.reason} ${e.repair}`}function r$(e){let t=e.lease;return t==null||e.holderAlive!==!0||t.socket_path!==e.socketPath?null:{pid:t.pid,socket_path:t.socket_path,acquired_at:t.acquired_at,renewed_at:t.renewed_at,uptime_ms:n$(t.acquired_at,e.now??new Date().toISOString())}}function n$(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function a_(e){let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h${String(n).padStart(2,"0")}m`:n>0?`${n}m${String(o).padStart(2,"0")}s`:`${o}s`}async function l_(e,t,r){let n;try{process.kill(t,"SIGTERM")}catch(s){n=`SIGTERM could not be sent: ${s instanceof Error?s.message:String(s)}`}let o=await xf(e,t,r);return Vb({socketPath:e.socketPath,pid:t,stopped:o.complete,pending:n==null?o.pending:[n,...o.pending]})}async function xf(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await Ht(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await co(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Ke(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}import{spawnSync as o$}from"node:child_process";import{existsSync as s$}from"node:fs";import{basename as d_,dirname as i$,join as c_}from"node:path";async function gs(e){let r=await si(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==el().uid||!Ke(r.pid))return{paths:e,joined:!1};let n=i$(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:c_(n,d_(e.lockPath)),leasePath:c_(n,d_(e.leasePath))}}}async function u_(e){let r=await si(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Ke(r.pid)))throw new rn(e.machineClaimPath,"held",r)}async function p_(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[vu]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==tl({env:n,machineIdHash:e.machineIdHash}))||!(o??s$(fs(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=o$("systemctl",["--user","start",or],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${or}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await a$(e,t,r),!0}async function a$(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await gs(e);if(await Ht(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${or} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}var g_=3e4,m_=500,l$=8e3,f_=new Set,jt=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?.kind==="held-unresponsive"?`. ${_f(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},uo=class extends jt{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}};async function Ef(e){let t=e.config.reconnectTimeoutMs??g_,r=Date.now()+t,n=e.config.reconnectInitialBackoffMs??m_;for(;;)try{let o=await e.attempt(Math.max(0,r-Date.now()));return f_.add(e.socketPath),o}catch(o){if(!e.retryable(o,f_.has(e.socketPath)))throw o;if(Date.now()>=r)throw e.exhausted?.(o,t)??o;await d$(r,n),n=Math.min(n*2,l$)}}function vf(e,t){if(!(e instanceof jt))return e;let r=e.presence?.kind==="held-unresponsive"?e.presence.holder:null,n=new Error(`daemon replacing/booting, retrying with exponential backoff for ${t}ms exhausted`+(r==null?"":`; holder pid ${r.pid}`),{cause:e});return r==null||e.presence==null?new jt(e.socketPath,n,e.presence):new uo(e.socketPath,e.presence,n)}async function d$(e,t){let r=e-Date.now();r<=0||await new Promise(n=>setTimeout(n,Math.min(t,r)))}tn();var Sf=1e4,Oi=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function Ci(e,t={}){let r=t.answers??await Ht(e.socketPath),n=await co(e.leasePath).catch(()=>{});return wf({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Ke(n.pid)})}async function Tf(e,t={}){return await Ef({socketPath:e.socketPath,config:t,attempt:()=>f$(e,t),retryable:(r,n)=>r instanceof uo||r instanceof jt&&n,exhausted:vf})}async function f$(e,t){let r=await gs(e);try{let n=await g$(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof rn||n instanceof jt)throw n;let o=await Ci(r.paths).catch(()=>{});throw new jt(r.paths.socketPath,n,o)}}async function g$(e,t){if(await u$(p$(e.socketPath),{recursive:!0,mode:448}),await Ht(e.socketPath))return"already-running";await u_(e);let r=await h$(e,t);if(r!=null)return r;if(await p_(e,t,Sf))return"joined";let n=await Sy(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??m$});if(!n.acquired)return await h_(e,t,void 0,n),"joined";try{if(await Ht(e.socketPath))return"already-running";let o=await y$(e,t);return await h_(e,t,o),"spawned"}finally{await Ty(n)}}function m$(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
|
|
97
|
-
`)
|
|
98
|
-
`)
|
|
99
|
-
`))
|
|
94
|
+
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function zj(e,t={}){let r=t.env??process.env,n=t.exists??$j,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=Ti(r),d=[];l!=null&&d.push([Oi(bf(l),i),"stable-home"]),d.push([Oi(Ha(r),i),"bundle-cache"]),s&&d.push([Oi(wf(qj(s)),i),"caller-sibling-bundle"]);for(let[u,p]of d)if(a.push(u),n(u))return{...co({command:o,args:[u],entry:u},{version:e,homeDir:l,exists:n}),version:e,source:p,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new Yl(e,a);let c=Jj(r,n,o,a);if(c==null)throw new Yl(e,a);return{command:c,args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function Jj(e,t,r,n){let o=e.RED_SKILLS_NPX?.trim();if(o&&Uj(o))return o;let s=process.platform==="win32"?[o||"npx.cmd","npx.cmd","npx.exe","npx"]:[o||"npx"],i=[wf(r),...(e.PATH??"").split(Hj).filter(a=>a.length>0)];for(let a of new Set(s))for(let l of i){let d=Oi(l,a);if(n.push(d),t(d))return d}return null}function Qw(e,t={},r,n){let s=(t.resolveEntry??(i=>zj(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>Cw(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}}async function Xw(e,t,r={}){if(e.via==="supervisor-exit")return;let n=r.io??{},o=[...e.entry.args,...tn(t,r.idleMs==null?{}:{idleMs:r.idleMs})],s=await(n.spawnSuccessor??e_(n.env,t))(e.entry,o);return Yj(s)?s:{commit(){},abort(){}}}function Yj(e){if(e==null||typeof e!="object")return!1;let t=e;return typeof t.commit=="function"&&typeof t.abort=="function"}function Zw(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??Qj)(Nw),{...e,exitCode:Nw};if(r.successor!=null)return r.successor.commit(),e;let o=[...e.entry.args,...tn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??e_(n.env,t))(e.entry,o),e}function e_(e,t){return async(r,n)=>{let o=Oi(wf(t.socketPath),`.takeover-${process.pid}-${Bw().slice(0,8)}.sock`),s=Bw(),i=Wj();await new Promise((l,d)=>{i.once("error",d),i.listen(o,()=>{i.off("error",d),l()})});let a=jj(r.command,[...n],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[Hw]:"1",[Uw]:o,[qw]:s}});return a.unref(),await new Promise((l,d)=>{let c=!1,u,p=setTimeout(()=>b(new Error("successor did not answer the takeover handshake")),Kw);p.unref();let g=()=>{clearTimeout(p),a.off("error",h),a.off("exit",_)},f=()=>{i.close(()=>Nj(o,{force:!0}))},b=w=>{c||(c=!0,g(),u?.destroy(),f(),a.kill("SIGTERM"),d(w))},h=()=>b(new Error("successor failed before its takeover handshake")),_=w=>b(new Error(`successor exited before its takeover handshake (code ${w??"unknown"})`));a.once("error",h),a.once("exit",_),i.on("connection",w=>{if(u!=null){w.destroy();return}u=w;let A="";w.setEncoding("utf8"),w.on("data",x=>{if(A+=x,!!A.includes(`
|
|
95
|
+
`)){if(A.slice(0,A.indexOf(`
|
|
96
|
+
`))!==s){b(new Error("successor answered the takeover handshake with the wrong token"));return}c||(c=!0,g(),l({commit(){w.end(`commit
|
|
97
|
+
`),f()},abort(){w.end(`abort
|
|
98
|
+
`),f(),a.kill("SIGTERM")}}))}}),w.once("error",()=>b(new Error("successor takeover handshake disconnected"))),w.once("close",()=>b(new Error("successor takeover handshake closed before readiness")))})})}}async function t_(e=process.env){let t=e[Uw]?.trim(),r=e[qw]?.trim();if(!(!t&&!r)){if(!t||!r)throw new Error("incomplete redskilled takeover handshake");await new Promise((n,o)=>{let s=Gj(t),i="",a=setTimeout(()=>{s.destroy(),o(new Error("redskilled takeover commit timed out"))},Kw);a.unref();let l=d=>{clearTimeout(a),s.destroy(),d==null?n():o(d)};s.setEncoding("utf8"),s.once("connect",()=>s.write(`${r}
|
|
99
|
+
`)),s.on("data",d=>{if(i+=d,!i.includes(`
|
|
100
|
+
`))return;let c=i.slice(0,i.indexOf(`
|
|
101
|
+
`));l(c==="commit"?void 0:new Error("redskilled takeover was aborted"))}),s.once("error",()=>l(new Error("redskilled takeover handshake failed"))),s.once("close",()=>{i.includes(`
|
|
102
|
+
`)||l(new Error("redskilled takeover handshake closed before commit"))})})}}function Qj(e){process.exitCode=e,process.exit(e)}async function r_(e,t=process.env,r=Xj){let n=o_(t),o=s_(e,t);if(t[Kj]==="1")return{version:o,newest:n};let s=Kt(e)===null?"0.0.0":e;try{let i=await jy({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function n_(e,t=process.env,r){let n=r??_f;return{version:s_(e,t,n),newest:o_(t,n)}}function o_(e=process.env,t=_f){return a_(i_(e,t))}function s_(e,t=process.env,r=_f){let n=Kt(e.trim())?.major;return n===void 0?null:a_(i_(t,r).filter(o=>Kt(o)?.major===n))}function i_(e,t){let r=[];for(let n of t(Ha(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||Kt(o)===null||r.push(o)}return r}function a_(e){let t=null;for(let r of e)(t===null||yf(r,t)>0)&&(t=r);return t}function _f(e){try{return Bj(e)}catch{return[]}}async function Xj(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 Zj,readFile as e$,rename as t$,rm as xf,writeFile as l_}from"node:fs/promises";import{randomUUID as r$}from"node:crypto";import{dirname as n$}from"node:path";var Xl=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function uo(e){let t;try{t=await e$(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=o$(t);return s$(r)?r:void 0}var d_;function u_(){return d_??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},d_}function p_(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??qe;async function s(){return await uo(e)}async function i(l){let d=`${e}.${l.pid}.${r$()}.tmp`;await l_(d,c_(l),{encoding:"utf8",mode:384}),await t$(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 Zj(n$(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await l_(e,c_(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 xf(e,{force:!0}),d=!0;continue}if(Ef(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await xf(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!Ef(d,l))throw new Xl(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!Ef(d,l))throw new Xl(e);return await xf(e,{force:!0}),!0}}}function Ef(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function c_(e){return`${Ze(e)}
|
|
103
|
+
`}function o$(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Xt(t)}catch{return null}}}function s$(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 f_(e){let t=Qw(e.decision,e.io,e.paths,e.idleMs),r={...e.idleMs==null?{}:{idleMs:e.idleMs},io:e.io},n;try{n=await Xw(t,e.paths,r)}catch{return await e.eventLane.recordDaemonTakeoverFailed({ts:e.clock(),pid:e.incumbentPid,socketPath:e.paths.socketPath,detail:`redskilled ${e.decision.to} failed its takeover boot handshake; incumbent ${e.incumbentVersion} remains live`}),!1}e.onViable(),await e.eventLane.flush().catch(()=>{}),await e.flushRegistration().catch(()=>{});try{await e.stop()}catch(o){throw n?.abort(),o}return Zw(t,e.paths,{...r,...n==null?{}:{successor:n}}),!0}function g_(e=1e4){return async(t,r)=>await i$(t,e,r)}async function i$(e,t,r){if(!Number.isFinite(t)||t<=0)return await r();let n,o=new Promise((s,i)=>{n=setTimeout(()=>i(new Error(`redskilled ${e} exceeded its ${t}ms remote-call deadline`)),t),n.unref()});try{return await Promise.race([Promise.resolve().then(r),o])}finally{n!=null&&clearTimeout(n)}}import{randomUUID as a$}from"node:crypto";var l$=5e3,d$=150,c$=3;function m_(e,t={}){let r=t.selfPingTimeoutMs??d$;return u$({intervalMs:t.selfPingIntervalMs??l$,timeoutMs:r,missThreshold:t.selfPingMissThreshold??c$,probe:t.selfPing??(async()=>{let n=await On({socketPath:e,timeoutMs:r},{id:a$(),op:"ping",self:!0});if(!n.ok)throw new Error(n.error)})})}function u$(e){let t,r=!1,n=null,o=0,s=null,i=null,a=null,l="the daemon has not self-pinged yet",d=Math.max(1,Math.floor(e.missThreshold));function c(g,f,b){o+=Math.max(1,g),a=f,l=b}function u(){r||e.intervalMs<=0||(n=Date.now()+e.intervalMs,t=setTimeout(()=>void p(),e.intervalMs),t.unref())}async function p(){t=void 0;let g=Date.now(),f=new Date(g).toISOString();s=f;let b=n==null?0:Math.max(0,Math.floor((g-n)/Math.max(1,e.intervalMs)));b>0&&c(b,f,`the daemon event loop missed ${b} scheduled self-ping interval(s) before this probe ran`);let h;try{await Promise.race([Promise.resolve().then(e.probe),new Promise((w,A)=>{h=setTimeout(()=>A(new Error(`self-ping exceeded ${e.timeoutMs}ms`)),Math.max(1,e.timeoutMs)),h.unref()})]);let _=Date.now()-g;if(_>e.timeoutMs)throw new Error(`self-ping answered after ${_}ms`);i=new Date().toISOString(),b===0&&(o=0,l=`the daemon answered its own socket in ${_}ms`)}catch(_){c(1,new Date().toISOString(),_ instanceof Error?_.message:String(_))}finally{h!=null&&clearTimeout(h),u()}}return{arm(){r||t!=null||e.intervalMs<=0||u()},stop(){r=!0,t!=null&&clearTimeout(t),t=void 0},health:()=>({status:o>=d?"degraded":"healthy",consecutive_misses:o,miss_threshold:d,last_probe_at:s,last_success_at:i,last_failure_at:a,detail:l})}}async function b_(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Ko,o=e.clock??(()=>new Date().toISOString()),s=e.launch??ZR,i=e.refreshTrunk??bw,a=e.countBaseMovement??kw,l=e.ceiling??rl();e.repositoryActivity!=null&&Ep(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??u_(),c=e.leaseStore??p_(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??nl(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??ii(t.machineClaimPath,p,{clock:o});await g$(h$(t.socketPath),{recursive:!0,mode:448});let[f,b]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),h=Date.parse(o()),_=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&b!=null&&f.pid===b.pid&&f.start_time===b.start_time&&f.socket_path===t.socketPath&&b.socket_path===t.socketPath&&Number.isFinite(h)&&Number.isFinite(_)&&h-_>=Ky&&await bu(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:b.pid,startTime:b.start_time,uid:b.uid}).catch(()=>!1);let A=await g.claim(u);if(!A.claimed)throw A.claim?.socket_path===t.socketPath?new tr(t.socketPath):new nn(g.claimPath,A.reason,A.claim);let x=await c.acquire(d);if(!x.acquired)throw await g.release(u).catch(()=>{}),new tr(t.socketPath,x.lease);let O;try{O=await yb(t.socketPath,async()=>{let[m,D]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return m!=null&&m.pid!==d.pid&&qe(m.pid)?!0:D!=null&&D.socket_path===t.socketPath&&D.pid!==u.pid&&qe(D.pid)})}catch(m){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),m}let $=o(),L=e.eventLane??ib(t.eventLanePath),B=e.registrationIntentStore??KR(t.registrationIntentPath),F=e.liveness??jR,W=e.livenessGraceMs??LR,U=e.stopWorker??HR,oe=kb(U),se=e.unitInventory??(()=>lf(t.machineClaimPath,t.machineClaimPathOfThisHost)?NR():[]),re=e.unitMainPid??BR,Q=e.treeSampler??vk,ae=e.readLogTail??Rw,Se=e.sampleMs??qy,ve=e.leaseRenewMs??lu,ke=e.registrationSustainMs??Vy,J=e.publishedVersion??(m=>r_(m)),ce=e.replaceCheckMs??Ww,Re=e.publishedProbeTimeoutMs??Hy,Pe=g_(e.remotePollTimeoutMs),Te=e.localPublishedEvidence??(m=>n_(m,e.replacementIO?.env??process.env)),_e=e.bornByReplacement??Vw(),Ae=e.replaceBootCheckMs??Uy,ye=e.supervised??Ql(),le=e.replacementIO??{},be=e.repositoryActivity,Ye=be?.intervalMs??ns,He=e.githubBalance,pt=e.queueDiscovery,Tr=pt?.transport??be?.transport,Kr=pt?.unconfiguredReason??Jy,un=pt?.intervalMs??gf,Nt=e.demandMs??15e3,Vr=e.demandBackoffMs??3e4,ue=new Map,ft=new Map,rt=new Set,Qe=new Map,at=new Map,Et=[],lt=[],Pr=e.deaths===void 0?void 0:[...e.deaths],zr=await B.read().catch(()=>[]),xe=new Map,V=new Map,I=ew({registration:m=>xe.get(m),liveWorkerIds:()=>ue.keys(),admit:Io,start:(m,D)=>Ws(m,{admission:D,hook:!0}).worker,refuse:(m,D)=>void L.recordDemandRefusal({ts:o(),projectLabel:m,detail:D}).catch(()=>{}),recordExpiry:(m,D)=>void L.recordDemandRefusal({ts:o(),projectLabel:m,detail:D}).catch(()=>{})}),R=Promise.resolve();function j(m){let D=R.then(async()=>{await I.waitForSettled();let G=await m();return await I.waitForSettled(),G});return R=D.then(()=>{},()=>{}),D}let N=new Set,H={},K=null,X=null,we=null,je=!1,Ie=0,dr=null,cr="none",Ar=0,pn=null,Bn=null,Co=null,Z=null,Ee=!1,gt=null,Me=null,Gt=null,yt=[],Jt=[],Bs=new Map((e.orphanedRegistrations??[]).map(m=>[m.project_label,m])),Nn=null,Ot={},ze=!1,fn,Gn,gn,Or,mn,Le,Jr,Yt,Yr,vt=!1,Ud=!1,da=null,Ns=iw({poll:()=>sm(),registrations:()=>xe.values(),clock:o,attendedMs:Ye,armed:pt!=null||be!=null&&be.projects.length>0,stopping:()=>vt,rateLimit:()=>Co?.rate_limit??null}),qd=m_(t.socketPath,e),tm,Kd=new Promise(m=>{tm=m});function Fo(m){nm(m);let D=Date.parse(m),G=pb(xe.values(),D);for(let q of G.lapsed){xe.delete(q.project_label);let z=Me?.projects.find(de=>de.project_label===q.project_label),ne=[...ue.values()].some(de=>de.project_label===q.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&V.set(q.project_label,q),rm(q,D)}return G.lapsed.length>0&&Wn(),G.lapsed}function Wn(){let m=new Map(V);for(let[D,G]of xe)m.set(D,G);B.replace([...m.values()]).catch(()=>{})}function rm(m,D,G){let q=Number.isFinite(D)?new Date(D).toISOString():m.renew_by;yt.push(zR(m,Me,q,G)),yt.length>ti&&yt.splice(0,yt.length-ti)}function nm(m){if(xe.size===0)return;let D=Date.parse(m);if(!Number.isFinite(D))return;let G={};for(let de of ue.values())G[de.project_label]=(G[de.project_label]??0)+1;let q=Me==null?Number.NaN:Date.parse(Me.fetched_at),z=new Map((Me?.projects??[]).map(de=>[de.project_label,de])),ne=!1;for(let de of[...xe.values()]){let Xe=Number.isFinite(q)&&D-q<=de.renew_within_ms?z.get(de.project_label):void 0,Mo=yu(de,{now:m,...Xe==null?{}:{queue:{outcome:Xe.outcome,depth:Xe.depth}},liveWorkers:G[de.project_label]??0});Mo.registration!==de&&(xe.set(de.project_label,Mo.registration),ne=!0)}ne&&Wn()}function om(m){if(V.size===0)return;let D=Date.parse(m);if(!Number.isFinite(D))return;let G=new Map((Me?.projects??[]).map(z=>[z.project_label,z])),q=!1;for(let[z,ne]of[...V]){if(!cf(ne,D)){V.delete(z),q=!0;continue}let de=G.get(z),nt=yu(ne,{now:m,...de==null?{}:{queue:{outcome:de.outcome,depth:de.depth}},liveWorkers:[...ue.values()].filter(Xe=>Xe.project_label===z).length});nt.verdict==="open-work"||nt.verdict==="live-worker"?(xe.set(z,nt.registration),V.delete(z),q=!0):nt.verdict==="drained"&&(V.delete(z),q=!0)}q&&Wn()}function ca(){let m=o();return Fo(m),yR({now:m,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:$,ceiling:l,scope:n0(g.claimPath,p,u),requestHealth:qd.health(),workers:[...ue.values()],registrations:[...xe.values()],demand:Gt,lapses:yt,stops:Jt,orphanedRegistrations:[...Bs.values()],birthLatches:zb(Ot,Date.parse(m)),queue:Me,published:{version:X,checkedAt:we,newer:je,replacement:cr,newest:pn,majorHold:Bn,checks:Ie,holdReason:dr}})}function ua(){return Vk({hostState:ca(),ceiling:l,rss:H,sampledAt:K,logLines:Object.fromEntries(Qe),displays:Object.fromEntries(at),now:o(),reattachedWorkerIds:[...rt],repositoryActivity:Co,activityStalenessMs:vp*Ns.cadenceMs(),githubBalance:Z,...Pr===void 0?{}:{deaths:Pr},metrics:Tb({observations:Et,outcomes:lt,now:o()})})}function KS(m,D){let G=Ab(Et,m,D,o());Et=G.observations,L.recordWorker(G.record).catch(()=>{})}async function sm(){return Co=await Pe("repository activity poll",()=>aw({...be==null?{}:{explicit:be},registrations:xe.values(),resolveHostTransport:()=>(am(),Tr),now:o(),previous:Co}))}async function im(){return He==null?null:(!Ee&&He.store&&(gt??=He.store.read().then(m=>(Ee=!0,m!==null&&(Z=m),m)).finally(()=>{gt=null}),await gt!==null)||(Z=await Pe("GitHub balance poll",()=>lp({transport:He.transport,now:o()})),await He.store?.write(Z).catch(()=>{}),await He.history?.append(Z).catch(()=>{})),Z)}function VS(){if(vt||Yt!=null||He==null)return;let m=()=>{Yt=void 0,im().catch(()=>{}).then(()=>{if(vt)return;let D=He.intervalMsOverride??wl(Z??Rl(o()),{now:o()});Yt=setTimeout(m,D),Yt.unref()})};m()}function am(){if(!(Tr!=null||pt?.armTransport==null))try{let m=pt.armTransport();if(m.transport!=null){Tr=m.transport;return}m.unconfiguredReason!=null&&(Kr=m.unconfiguredReason)}catch(m){Kr=`this host could not resolve a tracker credential: ${m instanceof Error?m.message:String(m)}`}}async function Vd(){let m=o();Fo(m);let D=Date.parse(m);for(let[ne,de]of[...V])cf(de,D)||V.delete(ne);let q=[...new Map([...V,...xe]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,de)=>ne.project_label.localeCompare(de.project_label));if(q.length===0)return null;if(am(),Tr==null)return Me=uw(q,m,Kr),Me;Me=await Pe("queue poll",()=>pw({projects:q,transport:Tr,now:m,...pt?.batchSize==null?{}:{batchSize:pt.batchSize}}));let z=o();return om(z),nm(z),Me}async function lm(){let m=o();if(ze)return Gt??Ub(m);ze=!0;try{await Jd().catch(()=>{});let D={};for(let me of ue.values())D[me.project_label]=(D[me.project_label]??0)+1;let G=Date.parse(m),q=Number.isFinite(G)?G:0;for(let[me,St]of Object.entries(Ot)){if(St.probeWorkerId==null)continue;let ya=ue.get(St.probeWorkerId);ya!=null&&q-Date.parse(ya.started_at)>=6e4&&(Ot[me]=xu())}let z=()=>Hb({projects:[...xe.values()].map(me=>({project_label:me.project_label,selector:me.selector,argv:me.argv,workspace_path:me.workspace_path,target:me.target})),queue:Object.fromEntries((Me?.projects??[]).map(me=>[me.project_label,me.depth])),live:D,nowMs:q,backoffUntilMs:Nn,birthHealth:Ot}),ne=z();ne.births.length>0&&(await Vd(),ne=z());let de=[],nt=new Map,Xe=null;for(let me of ne.births){let St,ya=xi(ue.keys()),Lo=xe.get(me.project_label),ba=Va({argv:me.argv,...Lo?.env==null?{}:{env:Lo.env},...Lo?.log_path==null?{}:{log_path:Lo.log_path}},{worker_id:ya,slot:me.index,workspace_path:me.workspace_path},{project_label:me.project_label});try{if(Lo?.trunk==null)St=await j(()=>Ws(ba));else{let Qr={workspace_path:me.workspace_path,trunk:Lo.trunk},qs=Io(ba);if(!qs.admitted)throw new sr(qs.reason,qs);let vm=hf(Qr),ka=nt.get(vm);ka==null&&(ka=zd(Qr),nt.set(vm,ka)),St=await j(()=>mm(ba,Qr,ka,qs))}}catch(Qr){Xe=Qr instanceof Error?Qr.message:String(Qr),Qr instanceof sr&&Qr.admission?.verdict==="refused-unreachable-trunk-remote"||(Nn=(Number.isFinite(G)?G:Date.now())+Vr);break}de.push({project_label:me.project_label,worker_id:St.worker.worker_id,pid:St.worker.pid,...St.fork_sha==null?{}:{fork_sha:St.fork_sha},warnings:ba.log_path==null?[...St.warnings,`project ${JSON.stringify(me.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 Xd=Ot[me.project_label];Xd?.haltUntilMs!=null&&q>=Xd.haltUntilMs&&(Ot[me.project_label]=Vb(Xd,St.worker.worker_id))}Xe==null&&ne.births.length>0&&(Nn=null);let Mo=new Set(de.map(me=>me.project_label));for(let me of ne.intents){if(me.queue_depth==null||me.queue_depth<=0||me.live>=me.target||Mo.has(me.project_label))continue;let St=Xe!=null&&(me.outcome==="asking"||me.outcome==="half-open-probe")?`project ${JSON.stringify(me.project_label)} was birth-eligible but the host refused it: ${Xe}`:me.detail;await L.recordDemandRefusal({ts:m,projectLabel:me.project_label,detail:St}).catch(()=>{})}return Gt={version:1,at:m,requested:ne.births.length,granted:de,shortfall:ne.births.length-de.length,refusal:Xe,retry_after:Nn==null?null:new Date(Nn).toISOString(),projects:ne.intents},Gt}finally{ze=!1}}function zS(m){return Pn(ua(),{...Be,mode:m?.mode??Be.mode,project:m?.project??Be.project,maxWorkers:m?.max_workers??Be.maxWorkers,maxProjects:m?.max_projects??Be.maxProjects,maxWidth:m?.max_width??Be.maxWidth,verbose:m?.verbose??Be.verbose})}function JS(m){return ds(ua(),{mode:m?.mode??qt.mode,project:m?.project??qt.project,maxWidth:m?.max_width??qt.maxWidth,maxRows:m?.max_rows??qt.maxRows,maxHeight:m?.max_height??qt.maxHeight,showDeathDetails:m?.show_death_details??qt.showDeathDetails})}function Hn(m,D,G){return i0({op:m,sessionProject:D??null,targetProject:G})}async function YS(m){let D=ue.get(m.worker_id),G=Hn(s0(m.command),m.session_project,D?.project_label??null);if(!G.permitted)throw new Error(G.reason);if(m.command!=="stop")throw new Error(`redskilled does not implement ${m.command}: it owns birth, death and limits, and ${m.command} is a work decision the project's own bundle makes on top of them`);let q=D!=null&&await tT(D,m.detail??"stopped by its own project");return{version:1,command:m.command,worker_id:m.worker_id,applied:q,reach:G,detail:q?`redskilled stopped Worker ${JSON.stringify(m.worker_id)} of project ${JSON.stringify(D.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to stop`}}function Gs(m){ue.delete(m),rt.delete(m),Qe.delete(m),at.delete(m)}function dm(m){let D=ue.get(m.worker_id),G=Hn("worker-heartbeat",m.session_project,D?.project_label??null);if(!G.permitted)throw new Error(G.reason);if(typeof m.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(D==null)return{version:1,worker_id:m.worker_id,accepted:!1,reach:G,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(m.worker_id)} to publish a line for`};let q=o();Qe.set(m.worker_id,{line:m.last_log_line,published_at:q,source:"heartbeat"});let z=m.display===void 0?null:hw(m.display);if(z!=null){let ne=at.get(m.worker_id)?.display,de={display:z,published_at:q};at.set(m.worker_id,de),KS(de,D),(z.phase!==ne?.phase||z.step!==ne?.step)&&Dt("worker-activity",D,null,{phase:z.phase,step:z.step})}return m.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Dt("worker-heal",D,`${m.mechanical_heal.cause}; cycle ${m.mechanical_heal.cycle}/${m.mechanical_heal.cap}; free=${m.mechanical_heal.free}`,{healKind:m.mechanical_heal.heal_kind}),{version:1,worker_id:m.worker_id,accepted:!0,reach:G,published_at:q,detail:`redskilled stored a line for Worker ${JSON.stringify(m.worker_id)} without reading it`}}async function QS(m,D,G){let q=`exit code=${D??"null"} signal=${G??"null"}`;if(m.unit!=null&&m.unit!==""&&await ZS(m)){eT(m,`its launch client ended (${q}) while unit ${JSON.stringify(m.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=m.log_path==null?null:du(await ae(m.log_path).catch(()=>null));Gs(m.worker_id),Dt("worker-death",m,z==null?q:`session-error: ${z}`,{exitCode:D,signal:G,refusal:z}),dt()}function XS(m,D){if(!Number.isFinite(D)||D<0){Ot[m]=si;return}let G=Ot[m]??si,q=Kb(G,D,Date.parse(o()));Ot[m]=q,q.haltUntilMs!=null&&G.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(m)} lost ${q.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(q.haltUntilMs).toISOString()}
|
|
104
|
+
`)}function cm(m,D){let G=Hn("project-reset",D,m);if(!G.permitted)throw new Error(G.reason);let q=Ot[m]?.haltUntilMs!=null||Ot[m]?.probeWorkerId!=null;return Ot[m]=xu(),{version:1,project_label:m,latch:"project-birth-breaker",reset:q,reach:G,detail:q?`redskilled cleared project ${JSON.stringify(m)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(m)}; nothing changed`}}async function ZS(m){try{return await F(m)===!0}catch{return!1}}function eT(m,D){let G=m.unit==null?null:re(m.unit);ue.set(m.worker_id,{...m,...G!=null&&G>0?{pid:G}:{},warnings:[...m.warnings,D]}),rt.add(m.worker_id),dt()}function um(m,D){let G=Hn("project-register",D,m.project_label);if(!G.permitted)throw new Error(G.reason);let q=o();Fo(q);let z=cb(m,{now:q,held:xe.get(m.project_label)});return xe.set(z.project_label,z),Wn(),Ns.nudge(),gm(z.project_label),dt(),{version:1,registration:z,reach:G,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 pm(m,D={}){let G=Hn("project-renew",D.sessionProject,m);if(!G.permitted)throw new Error(G.reason);let q=o();Fo(q);let z=xe.get(m);if(z==null){if(Bs.has(m))throw new Zn(m,{kind:"orphaned"});let de=[...Jt].reverse().find(Xe=>Xe.project_label===m);if(de!=null)throw new Zn(m,{kind:"stopped",at:de.at});let nt=[...yt].reverse().find(Xe=>Xe.project_label===m);throw nt!=null?new Zn(m,{kind:"lapsed",at:nt.at,...nt.registered_at==null?{}:{registered_at:nt.registered_at}}):new Zn(m)}let ne=ub(z,{now:q,...D.renewWithinMs==null?{}:{renew_within_ms:D.renewWithinMs},...D.launch==null?{}:{launch:D.launch}});return xe.set(ne.project_label,ne),Wn(),Ns.nudge(),dt(),{version:1,registration:ne,reach:G,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(D.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function fm(m,D){let G=Hn("project-deregister",D,m);if(!G.permitted)throw new Error(G.reason);let q=xe.get(m)??V.get(m),z=xe.delete(m),ne=V.delete(m),de=z||ne;return q!=null&&(gm(m),Jt.push(JR(q,Me,o())),Jt.length>ti&&Jt.splice(0,Jt.length-ti)),de&&Wn(),{version:1,project_label:m,released:de,reach:G,detail:de?`redskilled released the registration for project ${JSON.stringify(m)}`:`redskilled held no registration for project ${JSON.stringify(m)}, so there was nothing to release`}}function gm(m){V.delete(m);for(let D=yt.length-1;D>=0;D-=1)yt[D].project_label===m&&yt.splice(D,1);for(let D=Jt.length-1;D>=0;D-=1)Jt[D].project_label===m&&Jt.splice(D,1);Bs.delete(m)}async function tT(m,D){return await oe(m,G=>{Gs(m.worker_id);let q=m.pgid??m.pid;Dt("worker-death",m,G?D:`${D}; unconfirmed-stop: the host did not confirm process group ${q} stopped, so process group ${q} may still be alive`),dt()}),!0}function Io(m){return Nb({ceiling:l,workers:[...ue.values()],budget:m.budget,projectLabel:m.project_label,...m.reservation==null?{}:{reservation:m.reservation}})}function zd(m){let D=hf(m),G=ft.get(D);if(G!=null)return G;let q=i(m).finally(()=>{ft.get(D)===q&&ft.delete(D)});return ft.set(D,q),q}async function mm(m,D,G,q){let z=q??Io(m);if(!z.admitted)throw new sr(z.reason,z);let ne;try{ne=await(G??zd(D))}catch(nt){let Xe=yw(z,D,nt);throw new sr(Xe.reason,Xe)}let de=Io(m);if(!de.admitted)throw new sr(de.reason,de);return Ws(m,{admission:de,forkSha:ne})}function Ws(m,D={}){let G=Gb({ceiling:l,workers:[...ue.values()],budget:m.budget}),q=s({spec:m,admission:D.admission??Io(m),...D.forkSha==null?{}:{forkSha:D.forkSha},memoryCeiling:G,liveWorkerIds:ue.keys(),clock:o,onExit:(nt,Xe,Mo)=>{let me=ue.get(nt);if(me==null){dt();return}QS(me,Xe,Mo).catch(()=>{})}}),z=D.forkSha??q.fork_sha??q.worker.fork_sha,ne=z==null||z===""?q.worker:{...q.worker,fork_sha:z},de={...q,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ue.set(ne.worker_id,ne),D.hook===!0&&I.track(ne.worker_id),Dt("worker-birth",ne,null,{admissionVerdict:D.admission?.verdict??q.admission.verdict}),dt(),de}function Dt(m,D,G,q={}){if(vt)return;let z=o(),ne={kind:m,worker:D,ts:z,detail:G,...q};if(m==="worker-death"||m==="worker-budget-kill"){let de={worker_id:D.worker_id,ts:z,outcome:m};lt=eo([...lt,de],nt=>nt.ts,{now:o()}),hm(Xa(ne),{startedAt:D.started_at,...q.refusal==null?{}:{refusal:q.refusal}}),XS(D.project_label,Date.parse(z)-Date.parse(D.started_at))}L.recordWorker(ne).catch(()=>{}),I.onEvent(m,D)}function hm(m,D={}){let G=zy(m,D);if(G==null)return;let q=[G,...(Pr??[]).filter(z=>z.kind!==G.kind||z.id!==G.id||z.ts!==G.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));Pr=eo(q,z=>z.ts,{now:o()})}async function Jd(){let m=await MR({workers:[...ue.values()],reattached_worker_ids:rt,now_ms:Date.parse(o()),grace_ms:W,probe:F,on_dead:D=>{Gs(D.worker_id),Dt("worker-death",D,"the host no longer confirms this Worker")}});return m.length>0&&dt(),m}let Hs=qR({authorized:lf(t.machineClaimPath,t.machineClaimPathOfThisHost),interval_ms:e.orphanReaperMs,mode:e.orphanReaperMode,census:e.orphanCensus,active_worker_units:se,dump_files:e.orphanDumpFiles,read_starttime:e.orphanStarttime,kill_group:e.orphanKillGroup,report:e.orphanReport,clock:o,held_worker_ids:()=>ue.keys(),live_births:async()=>Za(await L.read()),adopt:async(m,D,G)=>{ue.set(m.worker_id,m),rt.add(m.worker_id),D&&(Dt("worker-birth",m,G),await L.flush()),dt()},record_reaped:async(m,D)=>{Gs(m.worker_id),Dt("worker-death",m,D),await L.flush(),dt()}});async function ym(m,D){let G=ue.get(m);return G?(await oe(G,()=>{Gs(m),Dt("worker-budget-kill",G,D),dt()}),!0):!1}async function bm(){let m=[...ue.values()];if(m.length===0)return[];let D;try{D=await Q(m)}catch{return[]}let G=D.rss;H=G,K=o(),rT(D.cpu_seconds,K);let{terminations:q}=Ek({workers:m,rss:G,processes:D.processes??{}}),z=[];for(let ne of q)await ym(ne.worker_id,ne.reason)&&z.push(ne);return z}function rT(m,D){for(let[G,q]of Object.entries(m)){if(typeof q!="number"||!Number.isFinite(q))continue;let z=ue.get(G);z&&ue.set(G,{...z,cpu:{cpu_seconds:q,sampled_at:D}})}}async function nT(){try{return Re<=0?await J(r):await new Promise(m=>{let D=setTimeout(()=>m(Yd()),Re);D.unref(),J(r).then(G=>{clearTimeout(D),m(G)},()=>{clearTimeout(D),m(Yd())})})}catch{return Yd()}}function Yd(){try{return Te(r)}catch{return null}}async function km(){if(Di(r))return Ie+=1,we=o(),dr="local-build",{act:"hold",reason:"local-build"};let m=zw(await nT()),D=m.version;X=D,pn=m.newest??null,we=o(),Bn=Jw({running:r,newest:pn,supervised:ye});let G=Yw({running:r,published:D,supervised:ye});return je=G.act==="replace",Ie+=1,dr=G.act==="hold"?G.reason:null,cr!=="in-progress"&&(cr=G.act==="replace"?"pending":"none"),G}async function pa(){let m=await km();if(m.act!=="replace"||cr==="in-progress")return m;let D=Date.parse(o());return Number.isFinite(D)&&D<Ar||(Number.isFinite(D)&&(Ar=D+6e4),await f_({decision:m,io:le,paths:t,...n==null?{}:{idleMs:n},incumbentVersion:r,incumbentPid:d.pid,clock:o,eventLane:L,flushRegistration:()=>B.flush(),stop:()=>ga({reason:"replaced"}),onViable:()=>{cr="in-progress"}})||(cr="pending")),m}function oT(){vt||Le!=null||ce<=0||(!_e&&Ae>0&&(Jr=setTimeout(()=>{pa().catch(()=>{})},Ae),Jr.unref()),Le=setInterval(()=>{pa().catch(()=>{})},ce),Le.unref())}async function Rm(){return await c.renew(d).catch(()=>null)}function sT(){vt||gn!=null||ve<=0||(gn=setInterval(()=>{Rm()},ve),gn.unref())}function iT(){vt||Or!=null||ke<=0||(Or=setInterval(()=>{Fo(o())},ke),Or.unref())}function aT(){vt||Gn!=null||Se<=0||(Gn=setInterval(()=>{bm().catch(()=>{})},Se),Gn.unref())}function lT(){if(vt||Yr!=null||un<=0)return;let m=D=>{Yr=setTimeout(()=>{Yr=void 0,wm().then(()=>Vd()).catch(()=>{}).finally(()=>{if(vt)return;let G=Date.parse(o());m(mw(Me,un,Number.isFinite(G)?G:Date.now()))})},D),Yr.unref()};m(un)}async function wm(){await Promise.allSettled([...xe.values()].filter(m=>m.trunk!=null).map(async m=>{let D=await zd({workspace_path:m.workspace_path,trunk:m.trunk}),G=[...ue.values()].filter(q=>q.project_label===m.project_label&&q.fork_sha!=null&&q.fork_sha!=="");await Promise.allSettled(G.map(async q=>{let z=await a({workspace_path:m.workspace_path,fork_sha:q.fork_sha,head_sha:D}),ne=ue.get(q.worker_id);if(ne==null||ne.fork_sha!==q.fork_sha)return;let de={...ne,base_head_sha:D,base_commits_ahead:z};ue.set(q.worker_id,de),(ne.base_head_sha!==D||ne.base_commits_ahead!==z)&&Dt("worker-drift",de,null,{baseHeadSha:D,baseCommitsAhead:z})}))}))}function dT(){vt||mn!=null||Nt<=0||(mn=setInterval(()=>{lm().catch(()=>{})},Nt),mn.unref())}function dt(){vt||(fn&&clearTimeout(fn),fn=setTimeout(()=>{Jd().catch(()=>{}).then(()=>_m())},n),fn.unref())}function _m(){return ue.size>0?(dt(),"held-by-workers"):(Fo(o()),xe.size>0?(dt(),"held-by-registrations"):(cT(),"exited"))}async function cT(){if(!Di(r)){if((await pa().catch(()=>null))?.act==="replace"||Ud||vt)return;if(ue.size>0||xe.size>0){dt();return}}await ga({reason:"idle"})}function fa(m){return Jb({reason:m,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ue.values()],projects:[...xe.keys()]})}function xm(m){if(da!=null)return da;let D=m.reason??"requested",G=m.note?.trim();return da=L.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:D,detail:G==null||G===""?fa(D).detail:`${fa(D).detail} \u2014 ${G}`,...m.signal==null?{}:{signal:m.signal}}).catch(()=>{}),da}async function ga(m={}){if(Ud)return await Kd;Ud=!0,await xm(m),vt=!0,fn&&clearTimeout(fn),Gn&&clearInterval(Gn),gn&&clearInterval(gn),Or&&clearInterval(Or),Hs.stop(),Le&&clearInterval(Le),Jr&&clearTimeout(Jr),Ns.stop(),qd.stop(),Yt&&clearTimeout(Yt),Yr&&clearTimeout(Yr),mn&&clearInterval(mn),await L.flush().catch(()=>{}),await B.flush().catch(()=>{}),await c.release(d),await g.release(u),O.close();for(let D of N)D.destroy();return await new Promise(D=>O.once("close",()=>D())),await m$(t.socketPath,{force:!0}),tm(),await Kd}let Us=await L.read().catch(()=>[]),ma=new Map;for(let m of Us){if(m.event==="worker-birth"){ma.set(m.worker_id,m.ts);continue}let D=du(m.detail);hm(m,{...ma.get(m.worker_id)==null?{}:{startedAt:ma.get(m.worker_id)},...D==null?{}:{refusal:D}}),(m.event==="worker-death"||m.event==="worker-budget-kill")&&ma.delete(m.worker_id)}lt=eo(Us.filter(m=>m.event==="worker-death"||m.event==="worker-budget-kill").map(m=>({worker_id:m.worker_id,ts:m.ts,outcome:m.event})),m=>m.ts,{now:o()}),Et=Ob(Us,o());let uT=Za(Us),Em=new Set(await Promise.resolve(se()).catch(()=>[])),Qd=await af(uT,m=>m.unit!=null&&Em.has(m.unit)?!0:F(m));for(let m of Qd.alive){let D=WR(m),G=D.unit==null||qe(D.pid)?null:re(D.unit);ue.set(D.worker_id,G!=null&&G>0?{...D,pid:G}:D),rt.add(D.worker_id)}for(let m of Qd.dead)Dt("worker-death",m,"the Worker ended while no daemon was watching");let pT=GR({units:[...Em],held:[...ue.values()],mainPid:re,now:$});for(let m of pT)ue.set(m.worker_id,m),rt.add(m.worker_id),Dt("worker-birth",m,"adopted from an active unit with no birth on this lane");let ha=gb(zr,ue.values(),$);for(let m of ha.live)xe.set(m.project_label,m);for(let m of ha.recoverable)V.set(m.project_label,m);for(let m of ha.abandoned)rm(m,Date.parse($),`redskilled lapsed the recovered registration for project ${JSON.stringify(m.project_label)}: no session renewed it on cadence and no attributed Worker is alive`);zr.length>0&&Wn(),om(o()),await mb({eventLane:L,laneEvents:Us,heldLease:f,ownerPid:d.pid,startedAt:$,socketPath:t.socketPath,recovery:ha});for(let m of Qd.alive){if(m.log_path==null||Qe.has(m.worker_id))continue;let D=await ae(m.log_path).catch(()=>null);D==null||D.trim()===""||Qe.set(m.worker_id,{line:D,published_at:o(),source:"rehydrated"})}O.on("connection",m=>{N.add(m),m.once("close",()=>N.delete(m)),bb(m,async(D,G)=>{(D.op!=="ping"||D.self!==!0)&&dt();let q=await fT(D);G(q),D.op==="shutdown"&&setImmediate(()=>void ga({reason:"requested"}).catch(()=>{}))})});async function fT(m){try{if(m.op==="ping")return{id:m.id,ok:!0,value:{pong:!0,protocol_version:Bl,daemon_version:r,pid:d.pid}};if(m.op==="host-state")return{id:m.id,ok:!0,value:ca()};if(m.op==="reap")return{id:m.id,ok:!0,value:await Hs.reap(m.report===!0)};if(m.op==="statusline-payload")return{id:m.id,ok:!0,value:Op(ua(),m.extras)};if(m.op==="statusline-string")return{id:m.id,ok:!0,value:zS(m.render)};if(m.op==="statusline-dashboard")return{id:m.id,ok:!0,value:JS(m.dashboard)};if(m.op==="worker-heartbeat")return{id:m.id,ok:!0,value:dm(m.heartbeat)};if(m.op==="project-register"){let G=um(m.registration,m.session_project);return await B.flush(),{id:m.id,ok:!0,value:G}}if(m.op==="project-renew"){let G=pm(m.project_label,{...m.session_project==null?{}:{sessionProject:m.session_project},...m.renew_within_ms==null?{}:{renewWithinMs:m.renew_within_ms},...m.launch==null?{}:{launch:m.launch}});return await B.flush(),{id:m.id,ok:!0,value:G}}if(m.op==="project-deregister"){let G=fm(m.project_label,m.session_project);return await B.flush(),{id:m.id,ok:!0,value:G}}if(m.op==="project-reset")return{id:m.id,ok:!0,value:cm(m.project_label,m.session_project)};if(m.op==="worker-command")return{id:m.id,ok:!0,value:await YS(m.command)};if(m.op==="worker-start"){let G=Hn("worker-start",m.session_project,m.spec.project_label);if(!G.permitted)return{id:m.id,ok:!1,error:G.reason};let q=await j(()=>m.spec.trunk==null?Ws(m.spec):mm(m.spec,{workspace_path:m.spec.workspace_path,trunk:m.spec.trunk}));return await L.flush().catch(()=>{}),{id:m.id,ok:!0,value:{worker:q.worker,admission:q.admission,fork_sha:q.fork_sha,warnings:q.warnings}}}if(m.op==="shutdown"){let G=fa("requested");return await xm({reason:"requested",...m.detail==null?{}:{note:m.detail}}),{id:m.id,ok:!0,value:G}}let D=m;return{id:D.id??y_(),ok:!1,error:`unsupported redskilled op: ${D.op??"unknown"}`}}catch(D){return{id:m.id??y_(),ok:!1,error:D instanceof Error?D.message:String(D)}}}return dt(),aT(),sT(),iT(),Hs.arm(),oT(),Ns.arm(),VS(),lT(),dT(),qd.arm(),{socketPath:t.socketPath,lease:x.lease,startedAt:$,closed:Kd,startWorker:Ws,admit:Io,ceiling:()=>l,killWorkerOverBudget:ym,sampleMemoryBudgets:bm,renewLease:Rm,pollRepositoryActivity:sm,pollGithubBalance:im,githubBalance:()=>Z,pollQueueDiscovery:Vd,queueDiscovery:()=>Me,driveDemand:lm,demand:()=>Gt,sweepWorkerLiveness:Jd,sweepOrphanProcesses:()=>vt?Promise.resolve({adopted:0,reaped:0,suspects:0}):Hs.sweep(),censusOrphanProcesses:()=>Hs.census(),publishWorkerHeartbeat:dm,reattached:()=>[...rt].map(m=>ue.get(m)).filter(m=>m!=null),flushEvents:async()=>{await R,await I.waitForSettled(),await L.flush()},trackWorker(m){ue.set(m.worker_id,m),Dt("worker-birth",m,null),dt()},releaseWorker(m){let D=ue.get(m),G=ue.delete(m);return rt.delete(m),Qe.delete(m),at.delete(m),D&&Dt("worker-death",D,"released by the daemon"),dt(),G},workerCount:()=>ue.size,registerProject:um,renewProject:pm,resetProjectBirthBreaker:cm,deregisterProject:fm,registrations:()=>ca().registrations??[],hostState:ca,refreshRegisteredTrunks:wm,statuslinePayload:ua,evaluateIdle:_m,observePublishedVersion:km,checkForReplacement:pa,stopReport:fa,stop:ga}}function vf(e){let t=e.socketPath,r=y$(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 ${k_(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 \`${Dn("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 \`${Dn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Sf(e){return`${e.reason} ${e.repair}`}function y$(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:b$(t.acquired_at,e.now??new Date().toISOString())}}function b$(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 k_(e){let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h${String(n).padStart(2,"0")}m`:n>0?`${n}m${String(o).padStart(2,"0")}s`:`${o}s`}async function R_(e,t,r){let n;try{process.kill(t,"SIGTERM")}catch(s){n=`SIGTERM could not be sent: ${s instanceof Error?s.message:String(s)}`}let o=await Tf(e,t,r);return Qb({socketPath:e.socketPath,pid:t,stopped:o.complete,pending:n==null?o.pending:[n,...o.pending]})}async function Tf(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await Ht(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await uo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&qe(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}import{spawnSync as k$}from"node:child_process";import{existsSync as R$}from"node:fs";import{basename as w_,dirname as w$,join as __}from"node:path";async function ms(e){let r=await ii(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==nl().uid||!qe(r.pid))return{paths:e,joined:!1};let n=w$(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:__(n,w_(e.lockPath)),leasePath:__(n,w_(e.leasePath))}}}async function x_(e){let r=await ii(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 nn(e.machineClaimPath,"held",r)}async function E_(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[Tu]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==ol({env:n,machineIdHash:e.machineIdHash}))||!(o??R$(gs(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=k$("systemctl",["--user","start",ir],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${ir}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await _$(e,t,r),!0}async function _$(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ms(e);if(await Ht(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${ir} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}var S_=3e4,T_=500,x$=8e3,v_=new Set,Lt=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?.kind==="held-unresponsive"?`. ${Sf(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},po=class extends Lt{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}};async function Pf(e){let t=e.config.reconnectTimeoutMs??S_,r=Date.now()+t,n=e.config.reconnectInitialBackoffMs??T_;for(;;)try{let o=await e.attempt(Math.max(0,r-Date.now()));return v_.add(e.socketPath),o}catch(o){if(!e.retryable(o,v_.has(e.socketPath)))throw o;if(Date.now()>=r)throw e.exhausted?.(o,t)??o;await E$(r,n),n=Math.min(n*2,x$)}}function Af(e,t){if(!(e instanceof Lt))return e;let r=e.presence?.kind==="held-unresponsive"?e.presence.holder:null,n=new Error(`daemon replacing/booting, retrying with exponential backoff for ${t}ms exhausted`+(r==null?"":`; holder pid ${r.pid}`),{cause:e});return r==null||e.presence==null?new Lt(e.socketPath,n,e.presence):new po(e.socketPath,e.presence,n)}async function E$(e,t){let r=e-Date.now();r<=0||await new Promise(n=>setTimeout(n,Math.min(t,r)))}rn();var Of=1e4,Ci=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function Fi(e,t={}){let r=t.answers??await Ht(e.socketPath),n=await uo(e.leasePath).catch(()=>{});return vf({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&qe(n.pid)})}async function Df(e,t={}){return await Pf({socketPath:e.socketPath,config:t,attempt:()=>P$(e,t),retryable:(r,n)=>r instanceof po||r instanceof Lt&&n,exhausted:Af})}async function P$(e,t){let r=await ms(e);try{let n=await A$(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof nn||n instanceof Lt)throw n;let o=await Fi(r.paths).catch(()=>{});throw new Lt(r.paths.socketPath,n,o)}}async function A$(e,t){if(await S$(T$(e.socketPath),{recursive:!0,mode:448}),await Ht(e.socketPath))return"already-running";await x_(e);let r=await D$(e,t);if(r!=null)return r;if(await E_(e,t,Of))return"joined";let n=await Oy(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??O$});if(!n.acquired)return await P_(e,t,void 0,n),"joined";try{if(await Ht(e.socketPath))return"already-running";let o=await C$(e,t);return await P_(e,t,o),"spawned"}finally{await Dy(n)}}function O$(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
|
|
105
|
+
`)}async function D$(e,t){let r=await Fi(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Of,o=Date.now()+n;for(;;){if(await Ht(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await Fi(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new po(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 Cf(e,t,r={}){let n=A_();return await Pf({socketPath:e.socketPath,config:r,attempt:async o=>{await Df(e,{...r,reconnectTimeoutMs:o});let s=(await ms(e)).paths,i;try{i=await On({socketPath:s.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:n})}catch(a){throw new Lt(s.socketPath,a,await Fi(s).catch(()=>{}))}if(!i.ok)throw new Ci(i.error);return i.value},retryable:(o,s)=>o instanceof Lt&&s,exhausted:Af})}async function O_(e,t={},r={}){let n=(await ms(e)).paths;if(!await Ht(n.socketPath)){let a=await Fi(n,{answers:!1}).catch(()=>{});return a?.kind!=="held-unresponsive"||a.holder==null?Yb(n.socketPath):await R_(n,a.holder.pid,t.settleTimeoutMs??5e3)}let o;try{o=await On({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:A_(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Lt(n.socketPath,a)}if(!o.ok)throw new Ci(o.error);if(!vu(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await Tf(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 D_(e,t={}){let r=await Cf(e,{op:"host-state"},t);if(!bR(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function C_(e,t={},r={}){let n=await Cf(e,{op:"reap",report:t.report===!0},r);if(!hR(n))throw new Error("redskilled daemon returned a malformed reap report");return n}async function F_(e,t={},r){let n=await Cf(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!Sl(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function I_(e,t=Be,r={}){let n=await F_(e,r,{vitals:!0,logs:t.verbose,display:!0});return Pn(n,t)}async function M_(e,t={},r={}){let n=await F_(e,r,{vitals:!0,logs:!0,display:!0});return ds(n,{...qt,...t})}async function P_(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Of);for(;;){if(await Ht(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 ${Cy(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 C$(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await Wy({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...tn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=v$(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}rn();import{readFile as F$}from"node:fs/promises";import{homedir as I$,totalmem as M$}from"node:os";import{join as L$}from"node:path";var j$="REDSKILLED_IDLE_MS",$$=".red/config.yaml";async function j_(e=I$()){let t=L$(e,$$),r;try{r=await F$(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Ff(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${L_(n)}`),{})}try{let n=N$(r);return{...Zl(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...Zl(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...Zl(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...Zl(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Ff(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${L_(n)}`),{}}}function $_(e={}){let t=e.env??process.env,r=e.config??{},n=rl(t,e.totalMemoryBytes??M$(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=B$(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[j$],r.idleMs);if(o==null)return{ceiling:n,idleMs:Ko,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Ff(`redskilled: ${H$(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Ko}ms instead.`),{ceiling:n,idleMs:Ko,idleMsSource:"derived-default"})}function B$(e,t,r){if(e!==void 0)return{value:e.trim(),source:"flag"};if(t!==void 0)return{value:t.trim(),source:"environment"};if(r!==void 0)return{value:r.trim(),source:"home-config"}}function Zl(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function N$(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=G$(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(".")]=W$(c.trim())}return t}function G$(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 W$(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function H$(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function L_(e){return e instanceof Error?e.message:String(e)}function Ff(e){process.stderr.write(`${e}
|
|
106
|
+
`)}import{chmod as K_,mkdir as z_,readFile as J_,stat as oB,writeFile as Y_}from"node:fs/promises";import{homedir as Lf}from"node:os";import{dirname as Q_,join as ed}from"node:path";import{join as z$}from"node:path";import{existsSync as U$,readFileSync as Xz}from"node:fs";import{dirname as q$,join as K$}from"node:path";function B_(e,t){let r=e;for(let n=0;n<16;n++){let o=K$(r,t);if(U$(o))return o;let s=q$(r);if(s===r)break;r=s}return null}function V$(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function hs(e,t){let r=[];for(let n of e.split(`
|
|
107
|
+
`)){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 V$(d)}}var N_=["local","tmp","host"],J$="local",Ii="plugins.dev.workspace.target";var If=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function W_(e){let t=hs(e,Ii),r=X$(t??"").trim();return r===""?void 0:r}function H_(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:J$};let r=N_.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 If(`${Ii}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${N_.join(", ")}) or an absolute parent directory for Workers.`)}function U_(e,t){return e.kind==="preset"?e.preset==="host":Q$(Y$(e.parentDir,t),Ft(t))}function Y$(e,t){return e==="~"?G_(t):e.startsWith("~/")?z$(t,e.slice(2)):G_(e)}function Q$(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function G_(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function X$(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}rn();import{createHash as Z$}from"node:crypto";import{hostname as eB}from"node:os";import{join as Mi}from"node:path";var ys="redskilled.sock",tB="REDSKILLED_SESSION";function rB(e={}){let t=e.env??process.env,r=t[tB]?.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 nB(e={}){return q_(e.host??eB())}function Vt(e={}){let t=rB(e),r=e.runtimeDir??Ga({key:`redskilled:${t}`,socketFileName:ys,env:e.env,uid:e.uid}),n=nB(e),o=ol({env:e.env,machineIdHash:n,platform:e.platform}),s=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:q_(t),machineIdHash:n,runtimeDir:r,socketPath:Mi(r,ys),lockPath:Mi(r,"redskilled.spawn.lock"),leasePath:Mi(r,"redskilled.lease.toon"),eventLanePath:Mi(Ft(s),sb),registrationIntentPath:Mi(Ft(s),"redskilled.registrations.toon"),machineClaimPathOfThisHost:o,machineClaimPath:e.machineClaimPath??o}}function q_(e){return Z$("sha256").update(e).digest("hex").slice(0,12)}var Mf=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${Dn("red-skills-redskilled",["provision"])}\` directly`,sB=`# Host-scoped redskilled policy. This file is never read from a repository.
|
|
100
108
|
plugins:
|
|
101
109
|
dev:
|
|
102
110
|
redskilled:
|
|
@@ -104,15 +112,15 @@ plugins:
|
|
|
104
112
|
# memory_ceiling: 8G
|
|
105
113
|
# validation_ceiling: 2
|
|
106
114
|
# idle_ms: 300000
|
|
107
|
-
`;async function
|
|
108
|
-
`)}async function
|
|
109
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
110
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
115
|
+
`;async function X_(e=Lf()){let t=Ft(e),r=ed(Q_(t),"config.yaml"),n=await $f(t),o=!1,s=!1;n===void 0?(await z_(t,{recursive:!0,mode:en}),await K_(t,en),o=!0):n!==en&&(await K_(t,en),s=!0);let i=!1;try{await Y_(r,sB,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:en,configPath:r,configCreated:i}}var Z_={needed:!1,declaredBy:`no ${Ii} in view`};async function jf(e={}){let t=e.homeDir??Lf(),r=e.declaredTarget?.trim();if(r)return V_(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return Z_;let o=ed(n,".red","config.yaml"),s=await J_(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=W_(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:V_(i,t,o)}function V_(e,t,r){let n=`${Ii}: ${e} (${r})`;try{return{needed:U_(H_(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function ex(e){let t=[iB(e),aB(e),lB(e),dB(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 iB(e){let t=e.homeNeed??Z_;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Mf}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??en;return r!==en?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${en.toString(8)}`,fix:`${Mf} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function aB(e){return Ir(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 \`${Dn("red-skills-redskilled",["provision"])}\``}}function lB(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:`${Mf} \u2014 it starts the daemon and waits for the socket`}}function dB(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 tx(e={}){let t=e.env??process.env,r=e.homeDir??Lf(),n=e.paths??Vt({env:t}),o=Ft(r),[s,i,a]=await Promise.all([$f(o),Ht(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):jf({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:Rn(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await uB(pB(e,t,r),t)}}var cB="redskilled.service";function rx(e){return ed(e,"systemd","user",cB)}function nx(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple","LimitCORE=0",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
|
|
116
|
+
`)}async function ox(e){let t=rx(e.configHome);return await $f(t)!==void 0?{path:t,status:"already-present"}:(await z_(Q_(t),{recursive:!0}),await Y_(t,e.unit,"utf8"),{path:t,status:"installed"})}async function uB(e,t){if(process.platform!=="linux")return"unsupported";try{return await J_(rx(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function pB(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??ed(r,".config")}async function $f(e){try{return(await oB(e)).mode&511}catch{return}}import{readdir as ix,rm as fB,stat as gB}from"node:fs/promises";import{dirname as mB,join as Bf}from"node:path";var hB=5*6e4,yB="redskilled.";function bB(e={}){let t=e.env??process.env,r=i=>mB(Ga({key:"redskilled:reclaim-probe",socketFileName:ys,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 ax(e={}){let t=e.roots??bB(e),r=e.graceMs??hB,n=e.now??Date.now,o=e.isPidAlive??qe,s=e.answers??_B,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await ix(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await kB(Bf(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 kB(e,t){let r;try{r=(await ix(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:lx(i),removed:[]}}let n=r.filter(i=>i.startsWith(yB));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await RB(Bf(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 sx(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(ys)&&await t.answers(Bf(e,ys)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await wB(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 sx(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function sx(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await fB(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:lx(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function RB(e){try{return await uo(e)}catch{return}}async function wB(e,t){try{return Math.max(0,t()-(await gB(e)).mtimeMs)}catch{return}}async function _B(e){try{return(await On({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function lx(e){return e instanceof Error?e.message:String(e)}var td,rd=new Map,xB=256;function px(){if(td!==void 0)return td;let e=Intl.Segmenter;return td=e?new e(void 0,{granularity:"grapheme"}):null,td}function Nf(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 dx(e){let t=rd.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return rd.size>=xB&&rd.clear(),rd.set(e,r),r}function cx(e){return e>=127462&&e<=127487}function ux(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function EB(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function vB(e,t,r){if(dx(t)||EB(t)||ux(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Nf(n)||dx(n)||ux(n)||cx(t)&&cx(n)||t===13&&n===10)}function SB(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&&!Nf(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function fx(e){let t=px();if(!t)return SB(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 Gf(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(vB(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=px();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&&!Nf(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var bs="\x1B",TB="\x07",FJ=`${bs}\\`;function PB(e){return e>=64&&e<=126}function AB(e,t){for(let r=t;r<e.length;r++){if(e[r]===TB)return r+1;if(e[r]===bs&&e[r+1]==="\\")return r+2}return e.length}function fo(e,t){if(e[t]!==bs)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:bs,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!PB(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=AB(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 gx(e){return e<=31||e>=127&&e<=159}function ks(e){let t="",r=0;for(;r<e.length;){if(e[r]===bs){let o=fo(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!gx(n)||e[r]===`
|
|
117
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function Wf(e){let t="",r=0;for(;r<e.length;){if(e[r]===bs){let o=fo(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!gx(n)||e[r]===`
|
|
118
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function mx(e){return Wf(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var yx="\x1B",hx=/^[\x20-\x7e]*$/,nd=new Map,OB=256;function DB(e){return Wf(e)}function he(e){if(hx.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return bx(t);let r=DB(e);if(hx.test(r))return r.length;let n=0;for(let{segment:o}of fx(r))n+=CB(o);return n}function go(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=Gf(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function CB(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?bx(t[0]):t.every(o=>o<=31||o>=127&&o<=159||kx(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(Rx)?2:1}function bx(e){let t=nd.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||kx(e)?r=0:r=Rx(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,nd.size>=OB&&nd.clear(),nd.set(e,r),r}function kx(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 Rx(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||FB(e)}function FB(e){let t=[9986,9989,9992,9993,9994,9995,9996,9997,9999,10002,10004,10006,10024,10035,10036,10052,10055,10060,10062,10067,10068,10069,10071,10083,10084,10133,10134,10135,10145,10160],r=[9728,9729,9730,9731,9732,9742,9745,9748,9749,9752,9757,9760,9762,9763,9766,9770,9774,9775,9784,9785,9786,9792,9794,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9823,9824,9827,9829,9830,9832,9851,9854,9855,9874,9875,9876,9877,9878,9879,9881,9883,9884,9889,9898,9899,9904,9905,9917,9918,9924,9925,9934,9940,9962,9970,9971,9973,9978,9981];return t.includes(e)||r.includes(e)}function mo(e,t,r){if(t<=0)return e.split(`
|
|
111
119
|
`);let n=[];for(let o of e.split(`
|
|
112
|
-
`)){if(r==="truncate"||r==="truncate-end"){n.push(sn(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(sn(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(sn(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...kB(o,t))}return n}function kB(e,t){if(he(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(he(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),he(o)<=t){n=o;continue}let i=RB(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function RB(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===sx){let l=po(e,s);if(l){n+=l.value,s=l.end;continue}}let i=fo(e,s);if(!i)break;let a=he(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 sn(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(he(e)<=t)return e;if(t<he(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=he(l);return n==="start"?wB(e,t,l,d,i):n==="middle"?xB(e,t,l,d,i):_B(e,t,l,d,i)}function wB(e,t,r,n,o){let s=t-n,i=ks(e,he(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function _B(e,t,r,n,o){let s=t-n,i=ks(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 xB(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=ks(e,0,i),d=ks(e,he(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 ks(e,t,r){let n=Number.isFinite(t)?Math.max(0,Math.trunc(t)):0,o=r===void 0?void 0:Number.isFinite(r)?Math.max(n,Math.trunc(r)):n,s="",i=0,a="",l=0,d=!1;for(;l<e.length&&(o===void 0||i<o);){if(e[l]===sx){let f=po(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=jf(e,l);if(!c){l++;continue}let u=he(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 pt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function Ii(e,t){let r=e;for(let n=0;n<t.length;n++)r=pt(r,t.charCodeAt(n));return r}function Bf(e,t,r){if(t===void 0)return pt(e,117);if(t===null)return pt(e,110);switch(typeof t){case"boolean":return pt(pt(e,98),t?49:48);case"number":return Ii(pt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return Ii(pt(e,105),t.toString());case"string":return Ii(pt(e,115),t);case"function":return r.ignoreFunctions===!1?pt(e,102):e;case"object":{if(Array.isArray(t)){let i=pt(e,91);for(let a of t)i=Bf(i,a,r),i=pt(i,124);return pt(i,93)}let n=pt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=Ii(pt(n,107),i),n=pt(n,58),n=Bf(n,a,r),n=pt(n,59)))}return pt(n,125)}default:return Ii(pt(e,63),String(t))}}function $t(e,t={}){return Bf(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as EB}from"node:async_hooks";var Br=Symbol("tuiuiu.runtime-resource-dispose"),dx=new EB,rd=new Set,vB=1,Rs={id:0,resources:new Map};function cx(){let e={id:vB++,resources:new Map};return rd.add(e),e}function SB(e){rd.delete(e)}function ux(e){if(e!==null&&typeof e=="object"&&Br in e)try{e[Br]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function TB(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)ux(r)}function ws(e){SB(e),TB(e)}function Ve(e,t){return dx.run(e,t)}function an(e,t){return(...r)=>Ve(e,()=>t(...r))}function Nf(){return dx.getStore()??null}function Ge(e){if(e)return e;let t=Nf();return t||(rd.size===1?rd.values().next().value??Rs:Rs)}function Nr(){return Rs}function Fe(e,t,r){let n=Ge(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function Bt(e,t){return Rs.resources.has(e)||Rs.resources.set(e,t()),Rs.resources.get(e)}function nd(e,t){let r=Ge(t),n=r.resources.get(e);r.resources.delete(e),ux(n)}var Ce;(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"})(Ce||(Ce={}));function Gf(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function PB(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 Wf=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Gf();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Ce.NONE,subtreeFlags:Ce.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=Gf()}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&Ce.LAYOUT&&PB(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=Ce.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Ce.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=Ce.NONE,r.subtreeFlags=Ce.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Ce.LAYOUT|Ce.CHILDREN|Ce.FORCE_FULL),r.subtreeFlags&=~(Ce.LAYOUT|Ce.CHILDREN|Ce.FORCE_FULL)}markChildrenDirty(t,r=Ce.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!==Ce.NONE||r.subtreeFlags!==Ce.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Ce.NONE&&r.subtreeFlags===Ce.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 $t({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=Gf()}},AB=Symbol("tuiuiu.dirty-registry");function Gr(e){return Fe(AB,()=>new Wf,e)}function px(e){Gr().beginFrame(e)}function fx(e,t){Gr().registerNode(e,t)}function On(e,t=Ce.CONTENT){Gr().markDirty(e,t)}function gx(e){Gr().markLayoutClean(e)}function Mi(e){Gr().noteReuse(e)}function mo(e){Gr().noteFresh(e)}function od(e){return Gr().canReuseSubtree(e)}function mx(){return Gr().getDiagnostics()}function Li(){Gr().clearGlobalDirty()}function _s(e){Gr().markClean(e.node);for(let r of e.children)_s(r)}var hx=new WeakMap;function xt(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 sd(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:xt(e,"margin"),OB=new Set(["layoutRef","__scrollQuery"]),CB=new Set(["display","position","flexDirection","flexWrap","flexGrow","flexShrink","flexBasis","flex","justifyContent","alignItems","alignSelf","alignContent","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","margin","marginX","marginY","marginTop","marginBottom","marginLeft","marginRight","gap","columnGap","rowGap","width","height","minWidth","minHeight","maxWidth","maxHeight","top","bottom","left","right","borderStyle","borderTop","borderBottom","borderLeft","borderRight","overflow","overflowX","overflowY"]),DB=new Set(["children","wrap"]);function FB(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function xs(e){let t=e.props??{},r=e.type==="text"?DB:CB,n={};for(let o of r)o in t&&(n[o]=t[o]);return $t(n,{ignoreKeys:OB})}function IB(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 MB(e,t){if(!od(e)){mo("layout");return}let r=hx.get(e);if(!r){mo("layout");return}if(r.ctxKey!==t){On(e,Ce.LAYOUT),mo("layout");return}let n=xs(e);if(r.propsKey!==n||!IB(e,r.childRefs)){On(e,r.propsKey!==n?Ce.LAYOUT:Ce.CHILDREN),mo("layout");return}return Mi("layout"),r.layout}function ji(e,t,r,n){hx.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),gx(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 yx(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 Nt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function bx(e,t=0,r=0){let n=t+e.x,o=r+e.y;Nt(e.node,{...e,x:n,y:o});let s=e.node.props,i=xt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=xt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)bx(u,d,c)}function kx(e,t,r=1/0){if(!Number.isFinite(t)||t<0)throw new RangeError("availableWidth must be a finite non-negative number");if(r!==1/0&&(!Number.isFinite(r)||r<0))throw new RangeError("availableHeight must be a non-negative number or Infinity");t=Math.floor(t),r!==1/0&&(r=Math.floor(r)),px(e);let n=Wr(e,{x:0,y:0,width:t,height:r},null);return bx(n),n}function LB(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=go(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>he(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 jB(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 $B(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 Wr(e,t,r){fx(e,r);let n=FB(t),o=MB(e,n);if(o)return Nt(e,o),o;let s;if(e.type==="text")return s=LB(e,t),ji(e,n,xs(e),s),s;if(e.type==="spacer")return s=jB(e,t),ji(e,n,xs(e),s),s;if(e.type==="newline")return s=$B(e,t),ji(e,n,xs(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:[]},Nt(e,s),ji(e,n,xs(e),s),s;let a=xt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=xt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=xt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=xt(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),b=i.borderStyle&&i.borderStyle!=="none"?1:0,y=$i(i.width,t.width),_=$i(i.height,t.height),w=i.width!==void 0&&i.width!=="auto",O=i.height!==void 0&&i.height!=="auto",v=Math.max(0,(w?y:t.width)-d-c-b*2),A=Math.max(0,(O?_:t.height)-a-l-b*2),$=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:A,L=[],B=i.flexDirection??"column",F=B==="row"||B==="row-reverse",W=B==="row-reverse"||B==="column-reverse",U=xt(F?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],se=[];if(e.children.length>0){for(let ae of e.children)ae.props.position==="absolute"?oe.push(ae):se.push(ae);let ye=W?[...se].reverse():se;F?L.push(...Rx(ye,v,$,U,i,O,e)):L.push(...NB(ye,v,$,U,i,e))}let te=0,Q=0;if(F)for(let ye of L){let ae=ye.node.props,be=Pt(ae.marginRight??ae.marginX??ae.margin),Ye=Pt(ae.marginBottom??ae.marginY??ae.margin);te=Math.max(te,ye.x+ye.width+be),Q=Math.max(Q,ye.y+ye.height+Ye)}else for(let ye of L){let ae=ye.node.props,be=Pt(ae.marginBottom??ae.marginY??ae.margin);te=Math.max(te,ye.width),Q=Math.max(Q,ye.y+ye.height+be)}let Se=sd(i.flexGrow,"flexGrow")>0||i.width==="fill",ve=te+d+c+b*2,ke=w?y:Se?t.width:ve,J=O?_:Q+a+l+b*2,ce=xt(i.minWidth,"minWidth"),Re=xt(i.minHeight,"minHeight");if(ke=Math.max(ke,ce),J=Math.max(J,Re),i.maxWidth!==void 0&&(ke=Math.min(ke,xt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,xt(i.maxHeight,"maxHeight"))),F&&i.alignItems==="stretch"){let ye=Math.max(0,J-a-l-b*2);for(let ae=0;ae<L.length;ae++){let be=L[ae],Ye=be.node.props;Ye.height===void 0&&(L[ae]=yx(be,Math.max(be.height,ye),Ye),Nt(be.node,L[ae]))}}let Pe=t.x+g,Te=t.y+u,_e=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Ae=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let ye of oe){let ae=ye.props,be=Wr(ye,{x:0,y:0,width:v,height:$},e),Ye=Pe+d+b,Ue=Te+a+b;ae.left!==void 0?Ye=Pe+d+b+ae.left:ae.right!==void 0&&(Ye=Pe+_e-c-b-be.width-ae.right),ae.top!==void 0?Ue=Te+a+b+ae.top:ae.bottom!==void 0&&(Ue=Te+Ae-l-b-be.height-ae.bottom);let ft=ht(be,{x:Ye,y:Ue});Nt(ye,ft),L.push(ft)}return s={x:Pe,y:Te,width:_e,height:Ae,node:e,children:L},Nt(e,s),ji(e,n,xs(e),s),s}function Rx(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return BB(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let B of e){let F=B.props,W=F.flexGrow;W===void 0?W=F.width==="fill"||B.type==="spacer"?1:0:W=sd(W,"flexGrow");let U=xt(F.minWidth,"minWidth"),oe=F.flexBasis==="content"?Wr(B,{x:0,y:0,width:t,height:r},i).width:F.flexBasis===void 0||F.flexBasis==="auto"?U:$i(F.flexBasis,t),se=F.flexShrink===void 0?1:sd(F.flexShrink,"flexShrink"),te=Pt(F.marginLeft??F.marginX??F.margin),Q=Pt(F.marginRight??F.marginX??F.margin);if(W>0)c+=W,d+=oe+te+Q,u.push({node:B,flex:W,minWidth:U,basis:oe,shrink:se,marginLeft:te,marginRight:Q});else{let Se=F.width!==void 0&&F.width!=="auto"&&F.width!=="fill"?$i(F.width,t)+te+Q:t,ve=Wr(B,{x:0,y:0,width:Se,height:r},i);d+=ve.width+te+Q,u.push({node:B,flex:0,minWidth:U,basis:ve.width,shrink:se,marginLeft:te,marginRight:Q,layout:ve,measuredCtxWidth:Se})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let B=u.map(()=>0),F=Math.ceil(p);for(;F>0;){let W=u.map((Q,le)=>{let Se=Math.max(0,Math.floor(Q.basis-Q.minWidth)),ve=Math.max(0,Se-B[le]);return{index:le,capacity:ve,maxReduction:Se,weight:Q.shrink*Q.basis}}).filter(Q=>Q.capacity>0&&Q.weight>0),U=W.reduce((Q,le)=>Q+le.weight,0);if(U<=0)break;let oe=W.map(Q=>{let le=F*Q.weight/U,Se=Math.min(Q.capacity,Math.floor(le));return{...Q,exact:le,whole:Se,fraction:le-Math.floor(le)}}),se=0;for(let Q of oe)Q.whole>0&&(B[Q.index]+=Q.whole,se+=Q.whole);if(F-=se,F<=0)break;oe.sort((Q,le)=>le.fraction-Q.fraction||le.weight-Q.weight||le.capacity-Q.capacity);let te=!1;for(let Q of oe){if(F<=0)break;B[Q.index]<Q.maxReduction&&(B[Q.index]+=1,F-=1,te=!0)}if(!te)break}if(B.some(W=>W>0)){for(let W=0;W<u.length;W++){let U=u[W];U.targetWidth=Math.max(U.minWidth,U.basis-B[W])}d=u.reduce((W,U)=>W+(U.targetWidth??U.basis)+U.marginLeft+U.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,b=0,y=o.justifyContent??"flex-start",_=d+(c>0?g:0),w=t-_,O=0,v=0;c===0&&u.length>0&&(y==="space-between"&&u.length>1?O=w/(u.length-1):y==="space-around"?(v=w/(u.length*2),b=v):y==="space-evenly"?(O=w/(u.length+1),b=O):y==="flex-end"?b=w:y==="center"&&(b=w/2));let A=0,$=[];for(let B=0;B<u.length;B++){let F=u[B],U=(F.targetWidth??(F.flex>0?F.basis+Math.floor(f*F.flex):F.basis))+F.marginLeft+F.marginRight,oe=F.layout&&F.measuredCtxWidth===U?ht(F.layout,{x:F.layout.x+b}):Wr(F.node,{x:b,y:0,width:U,height:r},i),se=F.node.props;A=Math.max(A,oe.height),$.push({layout:oe,style:se}),b+=F.marginLeft+oe.width+F.marginRight,y==="space-between"&&B<u.length-1?b+=O:y==="space-around"?b+=v*2:y==="space-evenly"?b+=O:b+=n}let L=s?r:A;for(let B of $){let{style:F}=B,{layout:W}=B,U=F.alignSelf,oe=U!=="auto"&&U?U:o.alignItems??"flex-start",se=W.y,te=W.height;oe==="stretch"?(F.height===void 0&&(te=Math.max(W.height,L)),se=0):oe==="center"?se=Math.floor((L-W.height)/2):oe==="flex-end"?se=L-W.height:oe==="baseline"&&(se=0),W=yx(W,te,F),W=ht(W,{y:se}),Nt(W.node,W),a.push(W)}return a}function BB(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let v of e){let A=v.props,$=Pt(A.marginLeft??A.marginX??A.margin),L=Pt(A.marginRight??A.marginX??A.margin),B=Wr(v,{x:0,y:0,width:t,height:r},i),W=(A.flexBasis===void 0||A.flexBasis==="auto"||A.flexBasis==="content"?B.width:$i(A.flexBasis,t))+$+L,U=c+(d.length>0?n:0)+W;d.length>0&&U>t&&(l.push(d),d=[],c=0),d.push(v),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=xt(o.rowGap??o.gap,"rowGap"),p=l.map(v=>{let A=Rx(v,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),$=A.reduce((L,B)=>Math.max(L,B.y+B.height),0);return{layouts:A,height:$}}),g=p.reduce((v,A)=>v+A.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,b=o.alignContent??"flex-start",y=0,_=0;b==="flex-end"?y=f:b==="center"?y=Math.floor(f/2):b==="space-between"&&p.length>1?_=f/(p.length-1):b==="space-around"&&p.length>0?(_=f/p.length,y=Math.floor(_/2)):b==="stretch"&&p.length>0&&(_=f/p.length);let w=[],O=y;for(let v of p){for(let A of v.layouts){let $=ht(A,{y:A.y+Math.floor(O)});Nt($.node,$),w.push($)}O+=v.height+u+_}return w}function NB(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,b=[];for(let y of e){let _=y.props,w=Pt(_.marginTop??_.marginY??_.margin),O=Pt(_.marginBottom??_.marginY??_.margin),v=_.flexGrow;v===void 0?v=_.height==="fill"||y.type==="spacer"?1:0:v=sd(v,"flexGrow");let A=xt(_.minHeight,"minHeight"),$=_.maxHeight===void 0?void 0:xt(_.maxHeight,"maxHeight");if(v>0)f+=v,g+=w+O,b.push({node:y,flex:v,minHeight:A,maxHeight:$,marginTop:w,marginBottom:O});else{let L=Wr(y,{x:0,y:0,width:t,height:r},s);g+=L.height+w+O,b.push({node:y,flex:0,minHeight:A,maxHeight:$,marginTop:w,marginBottom:O,layout:L})}}if(g+=n*Math.max(0,e.length-1),f>0){let _=Math.max(0,r-g)/f,w=0;for(let O=0;O<b.length;O++){let v=b[O],$=v.node.props.alignSelf,L=$!=="auto"&&$?$:o.alignItems??"flex-start",B=v.layout;if(v.flex>0){let U=Math.floor(_*v.flex);U=Math.max(v.minHeight,U),v.maxHeight!==void 0&&(U=Math.min(v.maxHeight,U)),B=Wr(v.node,{x:0,y:w,width:t,height:U},s),B=ht(B,{height:U})}B||(B=Wr(v.node,{x:0,y:w,width:t,height:r},s));let F=B.x,W=B.width;L==="center"?F=Math.floor((t-B.width)/2):L==="flex-end"?F=t-B.width:L==="stretch"&&(W=t),B=ht(B,{x:F,y:w,width:W}),Nt(B.node,B),i.push(B),w+=v.marginTop+B.height+v.marginBottom,O<b.length-1&&(w+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],b=f.props,y=Pt(b.marginTop??b.marginY??b.margin),_=Pt(b.marginBottom??b.marginY??b.margin),w=Wr(f,{x:0,y:l,width:t,height:r-l},s),O=b.alignSelf,v=O!=="auto"&&O?O:o.alignItems??"flex-start",A=w.x,$=w.width;v==="center"?A=Math.floor((t-w.width)/2):v==="flex-end"?A=t-w.width:v==="stretch"&&($=t);let L=ht(w,{x:A,width:$});Nt(L.node,L),i.push(L),l+=y+w.height+_,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let b=0;b<i.length;b++)i[b]=ht(i[b],{y:i[b].y+Math.floor(f*b)}),Nt(i[b].node,i[b]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let b=0;b<i.length;b++)i[b]=ht(i[b],{y:i[b].y+Math.floor(f*(2*b+1))}),Nt(i[b].node,i[b]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let b=0;b<i.length;b++)i[b]=ht(i[b],{y:i[b].y+Math.floor(f*(b+1))}),Nt(i[b].node,i[b]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),Nt(i[f].node,i[f])}return i}function $i(e,t){if(e===void 0||e==="auto")return 0;if(e==="fill")return t;if(typeof e=="number"){if(!Number.isFinite(e)||e<0)throw new RangeError("Layout size must be a finite non-negative number");return Math.floor(e)}if(e.endsWith("%")){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0)throw new RangeError("Layout percentage must be finite and non-negative");return t===1/0?0:Math.floor(n/100*t)}let r=Number(e);if(!Number.isFinite(r)||r<0)throw new RangeError(`Invalid layout size: ${e}`);return Math.floor(r)}var wx={background:0,normal:1,modal:2,critical:3};var _x=new Set;function Ex(e,t){process.env.NODE_ENV==="production"||_x.has(e)||(_x.add(e),console.warn(`[tuiuiu] ${t}`))}var GB=Symbol("tuiuiu.hook-runtime-state"),Hf=new WeakMap;function WB(){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 Fe(GB,WB,e)}function Uf(e){return Hf.get(e)??null}function vx(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function Sx(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Ex("hook-count-changed",`Hook count changed between renders (${e.lastMaxHookIndex} \u2192 ${t}). A component with internal hooks (Select, Tabs, Menu, ChatList, ScrollList, etc.) was conditionally added or removed from the render tree. FIX: Keep hook-bearing components always rendered \u2014 use height: 0, isActive: false, or display: "none" to hide them instead of removing them with ternaries or When().`),t<e.lastMaxHookIndex)for(let r=t;r<e.lastMaxHookIndex;r++){Ax(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(Bi(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function Tx(){return Je().isRendering}function Px(){return Je().renderPhaseMode}function yr(e){let t=Je();t.isRendering||Ex("hook-outside-render","A hook (useState, useMemo, useComputed, etc.) was called outside a component render. Hooks must be called inside a component function, not at module scope or in event handlers. Move the hook call inside your component function.");let r=t.hookIndex++;return r>=t.hookState.state.length?(t.hookState.state.push(e),{value:e,isNew:!0}):{value:t.hookState.state[r],isNew:!1}}function br(e,t){Je().hookState.state[e]=t}function Hr(e){return Je().hookState.state[e]}function sr(){return Je().hookIndex-1}function ho(e,t=sr()){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 Ax(e,t){let r=t.hookCleanups.get(e);if(r){t.hookCleanups.delete(e);for(let n of[...r].reverse())try{n()}catch(o){console.error("[tuiuiu] Error during hook cleanup:",o)}}}function id(e){let t=Ge(e),r=Je(t);Ve(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))Ax(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function ln(e){return Je(e).appContext}function qf(e,t){let r=Ge(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&Hf.delete(o),e&&Hf.set(e,r)}function ad(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:wx[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function Bi(e){let t=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Ox(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 Cx(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Kf(e,t){Je(t).focusManager=e}function Dx(e){let t=Je(),r=UB(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function Fx(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var HB=300,xx=2;function UB(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<HB&&Math.abs(t.x-n.x)<=xx&&Math.abs(t.y-n.y)<=xx?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function Ix(e,t){let r=[...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 Mx(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var Ni=[],dd=!1,Vf=!1,ld=0,Gi=null,Wi=null;function Lx(){if(!Vf){Vf=!0;for(let e=Ni.length-1;e>=0;e--)try{Ni[e]()}catch{}Vf=!1}}function dn(e){return Ni.push(e),()=>{let t=Ni.indexOf(e);t!==-1&&Ni.splice(t,1)}}function jx(){ld++,dd||(dd=!0,Gi=()=>{Lx()},Wi=()=>{Lx()},process.on("exit",Gi),process.on("uncaughtExceptionMonitor",Wi));let e=!1;return()=>{e||(e=!0,ld=Math.max(0,ld-1),ld===0&&qB())}}function qB(){dd&&(Gi&&process.off("exit",Gi),Wi&&process.off("uncaughtExceptionMonitor",Wi),Gi=null,Wi=null,dd=!1)}var $x=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Bx=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,Nx=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Gx=/^\x1b\[(\d+);(\d+);(\d+)M/;function kr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function cd(e,t,r,n){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||e<0||t<1||r<1)return null;let o=e&3,s=(e&32)!==0,i=(e&64)!==0,a,l;return i?(a=e&1?"scroll-down":"scroll-up",l="click"):(o===0?a="left":o===1?a="middle":o===2?a="right":a="none",s&&o===3?l="move":n||o===3?l="release":s?l="drag":l="click"),{x:t-1,y:r-1,button:a,action:l,modifiers:{shift:(e&4)!==0,alt:(e&8)!==0,ctrl:(e&16)!==0}}}function Wx(e){let t=$x.exec(e);if(t){let s=kr(t[1]),i=kr(t[2]),a=kr(t[3]),l=kr(t[4]),d=kr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=cd(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Bx.exec(e);if(r){let s=kr(r[1]),i=kr(r[2]),a=kr(r[3]);if(s===null||i===null||a===null)return null;let l=cd(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=Nx.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=cd(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Gx.exec(e);if(o){let s=kr(o[1]),i=kr(o[2]),a=kr(o[3]);if(s===null||i===null||a===null)return null;let l=cd(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function Hx(e){return $x.test(e)||Bx.test(e)||Nx.test(e)||Gx.test(e)}var KB="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Ux="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",VB=Symbol("tuiuiu.mouse-runtime-state");function Hi(e){return Fe(VB,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function zf(e){return ln(e)?.stdout??process.stdout}function Jf(e){return"isTTY"in e&&!!e.isTTY}function Ui(e){return Wx(e)}function Yf(e){return Hx(e)}function Es(e){let t=Ge(e),r=Hi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,zB(t);let n=zf(t);r.outputStream=n,Jf(n)&&n.write(KB)}}function yo(e){let t=Ge(e),r=Hi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??zf(t);Jf(n)&&n.write(Ux),r.outputStream=null}}function ud(e){let t=Ge(e),r=Hi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??zf(t);Jf(n)&&n.write(Ux),r.outputStream=null}}function zB(e){let t=Hi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=dn(an(e,()=>ud(e))))}function qx(e){let t=Hi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as QB}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},ze={mouse:!0,italic:!0,strikethrough:!0},JB={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...We,...ze,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...We,...ze,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...We,...ze,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...We,...ze,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:We}};function YB(e=process.env){let t=e.TERM_PROGRAM||"",r=e.TERM||"";return e.KITTY_WINDOW_ID?"kitty":e.ALACRITTY_WINDOW_ID||e.ALACRITTY_LOG?"alacritty":e.GHOSTTY_RESOURCES_DIR?"ghostty":e.WEZTERM_PANE||t==="WezTerm"?"wezterm":t==="rio"?"rio":e.WARP_IS_LOCAL_SHELL_SESSION?"warp":r.startsWith("foot")||r==="foot"?"foot":e.CONTOUR_TERMINAL_ID?"contour":e.VSCODE_PID||t==="vscode"?"vscode":t==="iTerm.app"?"iterm2":t==="Apple_Terminal"?"terminal-app":e.WT_SESSION?"windows-terminal":e.KONSOLE_VERSION?"konsole":e.VTE_VERSION?e.TILIX_ID?"tilix":"gnome-terminal":t==="Hyper"?"hyper":e.TERMINOLOGY?"terminology":t==="mlterm"?"mlterm":t==="blackbox"||e.BLACKBOX_THEMES_DIR?"black-box":t==="Bobcat"?"bobcat":r.includes("rxvt-unicode")||r.includes("rxvt")?"rxvt-unicode":r.includes("mlterm")?"mlterm":r==="st-256color"||r==="st"?"st":"unknown"}function Kx(e=process.env){return e.TMUX?{type:"tmux",version:e.TMUX?.split(",")[1],needsPassthrough:!0}:e.STY?{type:"screen",version:void 0,needsPassthrough:!0}:e.ZELLIJ?{type:"zellij",version:(e.ZELLIJ_SESSION_NAME,void 0),needsPassthrough:!1}:null}function pd(e=process.env){let t=YB(e),r=JB[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var Xx=Symbol("tuiuiu.graphics-runtime-state");function Zx(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Bt(Xx,()=>Zx(Nr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function eg(){let e=Ge();return Fe(Xx,()=>Zx(e),e)}var Vx={width:10,height:20};function fd(e){return{width:Math.max(1,Math.round(e?.width??Vx.width)),height:Math.max(1,Math.round(e?.height??Vx.height))}}function XB(){let e=process.env,t=e.TERM?.toLowerCase()||"",r=e.COLORTERM?.toLowerCase()||"",n=e.TERM_PROGRAM?.toLowerCase()||"";return e.FORCE_COLOR==="0"?!1:e.FORCE_COLOR==="2"||e.FORCE_COLOR==="3"?!0:r==="truecolor"||r==="24bit"||t.includes("256color")||t.includes("direct")||n==="iterm.app"||n==="wezterm"||n==="hyper"||!!e.WT_SESSION}function eE(){return XB()?"halfblock":"braille"}function vs(e){return e==="none"?eE():e}function tE(e){let t=vs(e);return t==="halfblock"||t==="braille"}function rE(e){let t=vs(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function zx(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function nE(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&rN(e)?e:null}function oE(){let e=process.env.TERM_PROGRAM?.toLowerCase()||"",t=process.env.KITTY_WINDOW_ID,r=process.env.ITERM_SESSION_ID;return t||e==="kitty"?"kitty":r||e==="iterm.app"?"iterm2":null}function sE(){return pd(process.env).knownCaps.preferredGraphics||null}function iE(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function ZB(){let e=nE();if(e)return e;let t=oE();if(t)return t;let r=sE();return r||iE()}function eN(e){return nE()===e||oE()===e?"env":sE()===e?"profile":iE()===e?"env":"fallback"}function Ss(){let e=eg();if(e.manualOverride)return zx(e.manualOverride,"manual",fd(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=tN();return zx(t,eN(t),fd())}function tN(){let e=eg();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=ZB()??eE()),e.detectedProtocol)}function rN(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function aE(){let e=eg();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:fd(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 nN(e){let t=2166136261;t^=e.width,t=Math.imul(t,16777619),t^=e.height,t=Math.imul(t,16777619);for(let r=0;r<e.pixels.length;r++)t^=e.pixels[r],t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function lE(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function Ki(e){return lE(e)?e:md(e)}function Jx(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function md(e,t={}){let r=fd(t.cellSize??Ss().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:nN(e)}}function Vi(e,t={}){let r=lE(e)?e:md(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=Jx(r.desiredRows,r.desiredColumns,l),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(s!==void 0&&o===void 0)d=s,l=Jx(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),b=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=b*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var Ts={transmit(e,t={}){let r=Ki(e),n=Vi(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=dN(r),l=dE(a),d=4096,c=[];for(let u=0;u<l.length;u+=d){let p=l.slice(u,u+d),f=u+d>=l.length?0:1;u===0?c.push(`\x1B_Ga=T,f=100,c=${o},r=${s}${i},m=${f};${p}\x1B\\`):c.push(`\x1B_Gm=${f};${p}\x1B\\`)}return c.join("")},display(e,t,r){return`\x1B_Ga=p,i=${e},p=1,X=${t},Y=${r}\x1B\\`},delete(e){return e!==void 0?`\x1B_Ga=d,d=i,i=${e}\x1B\\`:"\x1B_Ga=d,d=A\x1B\\"},clear(){return"\x1B_Ga=d,d=A\x1B\\"}},oN={display(e,t={}){let{pixels:r}=Ki(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=dE(r);return`\x1B]1337;File=inline=1;${n};${o}:${s}\x07`},displayFile(e,t={}){let r=t.width?`width=${t.width}`:"width=auto",n=t.height?`height=${t.height}`:"height=auto",o=Buffer.from(e).toString("base64");return`\x1B]1337;File=inline=1;${r};${n}:${o}\x07`}},sN={encode(e,t={}){let r=Ki(e),n=Vi(r,t),o=t.width!==void 0||t.height!==void 0?cE({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=cN(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),b=Math.round(p/255*100),y=Math.round(g/255*100);d+=`#${c};2;${f};${b};${y}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let b=0;for(let y=0;y<6;y++){let _=c+y;if(_>=i)continue;let w=(_*s+f)*4,O=a[w],v=a[w+1],A=a[w+2];uN([O,v,A],l)===u&&(b|=1<<y,p=!0)}g+=String.fromCharCode(63+b)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function Yx(e,t,r){if(t<0||t>=e.width||r<0||r>=e.height)return{r:0,g:0,b:0,a:0};let n=(r*e.width+t)*4;return{r:e.pixels[n]??0,g:e.pixels[n+1]??0,b:e.pixels[n+2]??0,a:e.pixels[n+3]??0}}function Qf(e,t){let r=[];return e&&e.a>0&&r.push(`38;2;${e.r};${e.g};${e.b}`),t&&t.a>0&&r.push(`48;2;${t.r};${t.g};${t.b}`),r.length>0?`\x1B[${r.join(";")}m`:void 0}var Qx={render(e,t={}){let r=Ki(e),n=Vi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=cE(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=Yx(i,u,l),g=Yx(i,u,l+1),f=" ",b;p.a>0&&g.a>0?(f="\u2580",b=Qf(p,g)):p.a>0?(f="\u2580",b=Qf(p)):g.a>0&&(f="\u2584",b=Qf(g)),b!==c&&(c&&(d+="\x1B[0m"),b&&(d+=b),c=b),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
113
|
-
`)}},
|
|
120
|
+
`)){if(r==="truncate"||r==="truncate-end"){n.push(an(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(an(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(an(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...IB(o,t))}return n}function IB(e,t){if(he(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(he(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),he(o)<=t){n=o;continue}let i=MB(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function MB(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===yx){let l=fo(e,s);if(l){n+=l.value,s=l.end;continue}}let i=go(e,s);if(!i)break;let a=he(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 an(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(he(e)<=t)return e;if(t<he(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=he(l);return n==="start"?LB(e,t,l,d,i):n==="middle"?$B(e,t,l,d,i):jB(e,t,l,d,i)}function LB(e,t,r,n,o){let s=t-n,i=Rs(e,he(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function jB(e,t,r,n,o){let s=t-n,i=Rs(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 $B(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Rs(e,0,i),d=Rs(e,he(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 Rs(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]===yx){let f=fo(e,l);if(f){if(l=f.end,f.kind!=="sgr")continue;a=f.value==="\x1B[0m"?"":a+f.value,i>=n&&(o===void 0||i<o)&&(s+=f.value);continue}}let c=Gf(e,l);if(!c){l++;continue}let u=he(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 ut(e,t){return e^=t,Math.imul(e,16777619)>>>0}function Li(e,t){let r=e;for(let n=0;n<t.length;n++)r=ut(r,t.charCodeAt(n));return r}function Hf(e,t,r){if(t===void 0)return ut(e,117);if(t===null)return ut(e,110);switch(typeof t){case"boolean":return ut(ut(e,98),t?49:48);case"number":return Li(ut(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return Li(ut(e,105),t.toString());case"string":return Li(ut(e,115),t);case"function":return r.ignoreFunctions===!1?ut(e,102):e;case"object":{if(Array.isArray(t)){let i=ut(e,91);for(let a of t)i=Hf(i,a,r),i=ut(i,124);return ut(i,93)}let n=ut(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=Li(ut(n,107),i),n=ut(n,58),n=Hf(n,a,r),n=ut(n,59)))}return ut(n,125)}default:return Li(ut(e,63),String(t))}}function jt(e,t={}){return Hf(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as BB}from"node:async_hooks";var $r=Symbol("tuiuiu.runtime-resource-dispose"),wx=new BB,od=new Set,NB=1,ws={id:0,resources:new Map};function _x(){let e={id:NB++,resources:new Map};return od.add(e),e}function GB(e){od.delete(e)}function xx(e){if(e!==null&&typeof e=="object"&&$r in e)try{e[$r]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function WB(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)xx(r)}function _s(e){GB(e),WB(e)}function Ke(e,t){return wx.run(e,t)}function ln(e,t){return(...r)=>Ke(e,()=>t(...r))}function Uf(){return wx.getStore()??null}function Ne(e){if(e)return e;let t=Uf();return t||(od.size===1?od.values().next().value??ws:ws)}function Br(){return ws}function Ce(e,t,r){let n=Ne(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function $t(e,t){return ws.resources.has(e)||ws.resources.set(e,t()),ws.resources.get(e)}function sd(e,t){let r=Ne(t),n=r.resources.get(e);r.resources.delete(e),xx(n)}var De;(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"})(De||(De={}));function qf(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function HB(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 Kf=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=qf();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:De.NONE,subtreeFlags:De.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=qf()}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&De.LAYOUT&&HB(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=De.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&De.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=De.NONE,r.subtreeFlags=De.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(De.LAYOUT|De.CHILDREN|De.FORCE_FULL),r.subtreeFlags&=~(De.LAYOUT|De.CHILDREN|De.FORCE_FULL)}markChildrenDirty(t,r=De.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!==De.NONE||r.subtreeFlags!==De.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===De.NONE&&r.subtreeFlags===De.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 jt({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=qf()}},UB=Symbol("tuiuiu.dirty-registry");function Nr(e){return Ce(UB,()=>new Kf,e)}function Ex(e){Nr().beginFrame(e)}function vx(e,t){Nr().registerNode(e,t)}function Cn(e,t=De.CONTENT){Nr().markDirty(e,t)}function Sx(e){Nr().markLayoutClean(e)}function ji(e){Nr().noteReuse(e)}function ho(e){Nr().noteFresh(e)}function id(e){return Nr().canReuseSubtree(e)}function Tx(){return Nr().getDiagnostics()}function $i(){Nr().clearGlobalDirty()}function xs(e){Nr().markClean(e.node);for(let r of e.children)xs(r)}var Px=new WeakMap;function _t(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function ad(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var Pt=e=>e==="auto"?0:_t(e,"margin"),qB=new Set(["layoutRef","__scrollQuery"]),KB=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"]),VB=new Set(["children","wrap"]);function zB(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function Es(e){let t=e.props??{},r=e.type==="text"?VB:KB,n={};for(let o of r)o in t&&(n[o]=t[o]);return jt(n,{ignoreKeys:qB})}function JB(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 YB(e,t){if(!id(e)){ho("layout");return}let r=Px.get(e);if(!r){ho("layout");return}if(r.ctxKey!==t){Cn(e,De.LAYOUT),ho("layout");return}let n=Es(e);if(r.propsKey!==n||!JB(e,r.childRefs)){Cn(e,r.propsKey!==n?De.LAYOUT:De.CHILDREN),ho("layout");return}return ji("layout"),r.layout}function Bi(e,t,r,n){Px.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),Sx(e)}function mt(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function Ax(e,t,r){if(t<=e.height)return mt(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return mt(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=>mt(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>mt(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)=>mt(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)=>mt(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Bt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function Ox(e,t=0,r=0){let n=t+e.x,o=r+e.y;Bt(e.node,{...e,x:n,y:o});let s=e.node.props,i=_t(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=_t(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)Ox(u,d,c)}function Dx(e,t,r=1/0){if(!Number.isFinite(t)||t<0)throw new RangeError("availableWidth must be a finite non-negative number");if(r!==1/0&&(!Number.isFinite(r)||r<0))throw new RangeError("availableHeight must be a non-negative number or Infinity");t=Math.floor(t),r!==1/0&&(r=Math.floor(r)),Ex(e);let n=Gr(e,{x:0,y:0,width:t,height:r},null);return Ox(n),n}function QB(e,t){let r=e.props.__divider;if(r==="horizontal")return{x:t.x,y:t.y,width:t.width,height:Math.min(1,t.height),node:e,children:[]};if(r==="vertical")return{x:t.x,y:t.y,width:Math.min(1,t.width),height:e.props.__splitDivider?Math.min(1,t.height):t.height,node:e,children:[]};let n=mo(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>he(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 XB(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 ZB(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 Gr(e,t,r){vx(e,r);let n=zB(t),o=YB(e,n);if(o)return Bt(e,o),o;let s;if(e.type==="text")return s=QB(e,t),Bi(e,n,Es(e),s),s;if(e.type==="spacer")return s=XB(e,t),Bi(e,n,Es(e),s),s;if(e.type==="newline")return s=ZB(e,t),Bi(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:[]},Bt(e,s),Bi(e,n,Es(e),s),s;let a=_t(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=_t(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=_t(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=_t(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),b=i.borderStyle&&i.borderStyle!=="none"?1:0,h=Ni(i.width,t.width),_=Ni(i.height,t.height),w=i.width!==void 0&&i.width!=="auto",A=i.height!==void 0&&i.height!=="auto",x=Math.max(0,(w?h:t.width)-d-c-b*2),O=Math.max(0,(A?_:t.height)-a-l-b*2),$=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:O,L=[],B=i.flexDirection??"column",F=B==="row"||B==="row-reverse",W=B==="row-reverse"||B==="column-reverse",U=_t(F?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],se=[];if(e.children.length>0){for(let le of e.children)le.props.position==="absolute"?oe.push(le):se.push(le);let ye=W?[...se].reverse():se;F?L.push(...Cx(ye,x,$,U,i,A,e)):L.push(...tN(ye,x,$,U,i,e))}let re=0,Q=0;if(F)for(let ye of L){let le=ye.node.props,be=Pt(le.marginRight??le.marginX??le.margin),Ye=Pt(le.marginBottom??le.marginY??le.margin);re=Math.max(re,ye.x+ye.width+be),Q=Math.max(Q,ye.y+ye.height+Ye)}else for(let ye of L){let le=ye.node.props,be=Pt(le.marginBottom??le.marginY??le.margin);re=Math.max(re,ye.width),Q=Math.max(Q,ye.y+ye.height+be)}let Se=ad(i.flexGrow,"flexGrow")>0||i.width==="fill",ve=re+d+c+b*2,ke=w?h:Se?t.width:ve,J=A?_:Q+a+l+b*2,ce=_t(i.minWidth,"minWidth"),Re=_t(i.minHeight,"minHeight");if(ke=Math.max(ke,ce),J=Math.max(J,Re),i.maxWidth!==void 0&&(ke=Math.min(ke,_t(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(J=Math.min(J,_t(i.maxHeight,"maxHeight"))),F&&i.alignItems==="stretch"){let ye=Math.max(0,J-a-l-b*2);for(let le=0;le<L.length;le++){let be=L[le],Ye=be.node.props;Ye.height===void 0&&(L[le]=Ax(be,Math.max(be.height,ye),Ye),Bt(be.node,L[le]))}}let Pe=t.x+g,Te=t.y+u,_e=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Ae=Math.max(0,Math.min(J,Math.max(0,t.height-u-p)));for(let ye of oe){let le=ye.props,be=Gr(ye,{x:0,y:0,width:x,height:$},e),Ye=Pe+d+b,He=Te+a+b;le.left!==void 0?Ye=Pe+d+b+le.left:le.right!==void 0&&(Ye=Pe+_e-c-b-be.width-le.right),le.top!==void 0?He=Te+a+b+le.top:le.bottom!==void 0&&(He=Te+Ae-l-b-be.height-le.bottom);let pt=mt(be,{x:Ye,y:He});Bt(ye,pt),L.push(pt)}return s={x:Pe,y:Te,width:_e,height:Ae,node:e,children:L},Bt(e,s),Bi(e,n,Es(e),s),s}function Cx(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return eN(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let B of e){let F=B.props,W=F.flexGrow;W===void 0?W=F.width==="fill"||B.type==="spacer"?1:0:W=ad(W,"flexGrow");let U=_t(F.minWidth,"minWidth"),oe=F.flexBasis==="content"?Gr(B,{x:0,y:0,width:t,height:r},i).width:F.flexBasis===void 0||F.flexBasis==="auto"?U:Ni(F.flexBasis,t),se=F.flexShrink===void 0?1:ad(F.flexShrink,"flexShrink"),re=Pt(F.marginLeft??F.marginX??F.margin),Q=Pt(F.marginRight??F.marginX??F.margin);if(W>0)c+=W,d+=oe+re+Q,u.push({node:B,flex:W,minWidth:U,basis:oe,shrink:se,marginLeft:re,marginRight:Q});else{let Se=F.width!==void 0&&F.width!=="auto"&&F.width!=="fill"?Ni(F.width,t)+re+Q:t,ve=Gr(B,{x:0,y:0,width:Se,height:r},i);d+=ve.width+re+Q,u.push({node:B,flex:0,minWidth:U,basis:ve.width,shrink:se,marginLeft:re,marginRight:Q,layout:ve,measuredCtxWidth:Se})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let B=u.map(()=>0),F=Math.ceil(p);for(;F>0;){let W=u.map((Q,ae)=>{let Se=Math.max(0,Math.floor(Q.basis-Q.minWidth)),ve=Math.max(0,Se-B[ae]);return{index:ae,capacity:ve,maxReduction:Se,weight:Q.shrink*Q.basis}}).filter(Q=>Q.capacity>0&&Q.weight>0),U=W.reduce((Q,ae)=>Q+ae.weight,0);if(U<=0)break;let oe=W.map(Q=>{let ae=F*Q.weight/U,Se=Math.min(Q.capacity,Math.floor(ae));return{...Q,exact:ae,whole:Se,fraction:ae-Math.floor(ae)}}),se=0;for(let Q of oe)Q.whole>0&&(B[Q.index]+=Q.whole,se+=Q.whole);if(F-=se,F<=0)break;oe.sort((Q,ae)=>ae.fraction-Q.fraction||ae.weight-Q.weight||ae.capacity-Q.capacity);let re=!1;for(let Q of oe){if(F<=0)break;B[Q.index]<Q.maxReduction&&(B[Q.index]+=1,F-=1,re=!0)}if(!re)break}if(B.some(W=>W>0)){for(let W=0;W<u.length;W++){let U=u[W];U.targetWidth=Math.max(U.minWidth,U.basis-B[W])}d=u.reduce((W,U)=>W+(U.targetWidth??U.basis)+U.marginLeft+U.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,b=0,h=o.justifyContent??"flex-start",_=d+(c>0?g:0),w=t-_,A=0,x=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?A=w/(u.length-1):h==="space-around"?(x=w/(u.length*2),b=x):h==="space-evenly"?(A=w/(u.length+1),b=A):h==="flex-end"?b=w:h==="center"&&(b=w/2));let O=0,$=[];for(let B=0;B<u.length;B++){let F=u[B],U=(F.targetWidth??(F.flex>0?F.basis+Math.floor(f*F.flex):F.basis))+F.marginLeft+F.marginRight,oe=F.layout&&F.measuredCtxWidth===U?mt(F.layout,{x:F.layout.x+b}):Gr(F.node,{x:b,y:0,width:U,height:r},i),se=F.node.props;O=Math.max(O,oe.height),$.push({layout:oe,style:se}),b+=F.marginLeft+oe.width+F.marginRight,h==="space-between"&&B<u.length-1?b+=A:h==="space-around"?b+=x*2:h==="space-evenly"?b+=A:b+=n}let L=s?r:O;for(let B of $){let{style:F}=B,{layout:W}=B,U=F.alignSelf,oe=U!=="auto"&&U?U:o.alignItems??"flex-start",se=W.y,re=W.height;oe==="stretch"?(F.height===void 0&&(re=Math.max(W.height,L)),se=0):oe==="center"?se=Math.floor((L-W.height)/2):oe==="flex-end"?se=L-W.height:oe==="baseline"&&(se=0),W=Ax(W,re,F),W=mt(W,{y:se}),Bt(W.node,W),a.push(W)}return a}function eN(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let x of e){let O=x.props,$=Pt(O.marginLeft??O.marginX??O.margin),L=Pt(O.marginRight??O.marginX??O.margin),B=Gr(x,{x:0,y:0,width:t,height:r},i),W=(O.flexBasis===void 0||O.flexBasis==="auto"||O.flexBasis==="content"?B.width:Ni(O.flexBasis,t))+$+L,U=c+(d.length>0?n:0)+W;d.length>0&&U>t&&(l.push(d),d=[],c=0),d.push(x),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=_t(o.rowGap??o.gap,"rowGap"),p=l.map(x=>{let O=Cx(x,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),$=O.reduce((L,B)=>Math.max(L,B.y+B.height),0);return{layouts:O,height:$}}),g=p.reduce((x,O)=>x+O.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,b=o.alignContent??"flex-start",h=0,_=0;b==="flex-end"?h=f:b==="center"?h=Math.floor(f/2):b==="space-between"&&p.length>1?_=f/(p.length-1):b==="space-around"&&p.length>0?(_=f/p.length,h=Math.floor(_/2)):b==="stretch"&&p.length>0&&(_=f/p.length);let w=[],A=h;for(let x of p){for(let O of x.layouts){let $=mt(O,{y:O.y+Math.floor(A)});Bt($.node,$),w.push($)}A+=x.height+u+_}return w}function tN(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,b=[];for(let h of e){let _=h.props,w=Pt(_.marginTop??_.marginY??_.margin),A=Pt(_.marginBottom??_.marginY??_.margin),x=_.flexGrow;x===void 0?x=_.height==="fill"||h.type==="spacer"?1:0:x=ad(x,"flexGrow");let O=_t(_.minHeight,"minHeight"),$=_.maxHeight===void 0?void 0:_t(_.maxHeight,"maxHeight");if(x>0)f+=x,g+=w+A,b.push({node:h,flex:x,minHeight:O,maxHeight:$,marginTop:w,marginBottom:A});else{let L=Gr(h,{x:0,y:0,width:t,height:r},s);g+=L.height+w+A,b.push({node:h,flex:0,minHeight:O,maxHeight:$,marginTop:w,marginBottom:A,layout:L})}}if(g+=n*Math.max(0,e.length-1),f>0){let _=Math.max(0,r-g)/f,w=0;for(let A=0;A<b.length;A++){let x=b[A],$=x.node.props.alignSelf,L=$!=="auto"&&$?$:o.alignItems??"flex-start",B=x.layout;if(x.flex>0){let U=Math.floor(_*x.flex);U=Math.max(x.minHeight,U),x.maxHeight!==void 0&&(U=Math.min(x.maxHeight,U)),B=Gr(x.node,{x:0,y:w,width:t,height:U},s),B=mt(B,{height:U})}B||(B=Gr(x.node,{x:0,y:w,width:t,height:r},s));let F=B.x,W=B.width;L==="center"?F=Math.floor((t-B.width)/2):L==="flex-end"?F=t-B.width:L==="stretch"&&(W=t),B=mt(B,{x:F,y:w,width:W}),Bt(B.node,B),i.push(B),w+=x.marginTop+B.height+x.marginBottom,A<b.length-1&&(w+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],b=f.props,h=Pt(b.marginTop??b.marginY??b.margin),_=Pt(b.marginBottom??b.marginY??b.margin),w=Gr(f,{x:0,y:l,width:t,height:r-l},s),A=b.alignSelf,x=A!=="auto"&&A?A:o.alignItems??"flex-start",O=w.x,$=w.width;x==="center"?O=Math.floor((t-w.width)/2):x==="flex-end"?O=t-w.width:x==="stretch"&&($=t);let L=mt(w,{x:O,width:$});Bt(L.node,L),i.push(L),l+=h+w.height+_,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let b=0;b<i.length;b++)i[b]=mt(i[b],{y:i[b].y+Math.floor(f*b)}),Bt(i[b].node,i[b]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let b=0;b<i.length;b++)i[b]=mt(i[b],{y:i[b].y+Math.floor(f*(2*b+1))}),Bt(i[b].node,i[b]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let b=0;b<i.length;b++)i[b]=mt(i[b],{y:i[b].y+Math.floor(f*(b+1))}),Bt(i[b].node,i[b]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=mt(i[f],{y:i[f].y+g}),Bt(i[f].node,i[f])}return i}function Ni(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 Fx={background:0,normal:1,modal:2,critical:3};var Ix=new Set;function Lx(e,t){process.env.NODE_ENV==="production"||Ix.has(e)||(Ix.add(e),console.warn(`[tuiuiu] ${t}`))}var rN=Symbol("tuiuiu.hook-runtime-state"),Vf=new WeakMap;function nN(){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 Ce(rN,nN,e)}function zf(e){return Vf.get(e)??null}function jx(e="hooks"){let t=Je();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function $x(){let e=Je();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&Lx("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++){Gx(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 Bx(){return Je().isRendering}function Nx(){return Je().renderPhaseMode}function yr(e){let t=Je();t.isRendering||Lx("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 br(e,t){Je().hookState.state[e]=t}function Wr(e){return Je().hookState.state[e]}function ar(){return Je().hookIndex-1}function yo(e,t=ar()){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 Gx(e,t){let r=t.hookCleanups.get(e);if(r){t.hookCleanups.delete(e);for(let n of[...r].reverse())try{n()}catch(o){console.error("[tuiuiu] Error during hook cleanup:",o)}}}function ld(e){let t=Ne(e),r=Je(t);Ke(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))Gx(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 dn(e){return Je(e).appContext}function Jf(e,t){let r=Ne(t),n=Je(r),o=n.appContext;n.appContext=e,o&&o!==e&&Vf.delete(o),e&&Vf.set(e,r)}function dd(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=Je(),s=o.handlerIdCounter++,i={handler:e,priorityValue:Fx[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=Je(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Wx(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 Hx(e){let t=Je(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Yf(e,t){Je(t).focusManager=e}function Ux(e){let t=Je(),r=sN(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function qx(e){let t=Je(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var oN=300,Mx=2;function sN(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<oN&&Math.abs(t.x-n.x)<=Mx&&Math.abs(t.y-n.y)<=Mx?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function Kx(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 Vx(e){let t=Je(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var Wi=[],ud=!1,Qf=!1,cd=0,Hi=null,Ui=null;function zx(){if(!Qf){Qf=!0;for(let e=Wi.length-1;e>=0;e--)try{Wi[e]()}catch{}Qf=!1}}function cn(e){return Wi.push(e),()=>{let t=Wi.indexOf(e);t!==-1&&Wi.splice(t,1)}}function Jx(){cd++,ud||(ud=!0,Hi=()=>{zx()},Ui=()=>{zx()},process.on("exit",Hi),process.on("uncaughtExceptionMonitor",Ui));let e=!1;return()=>{e||(e=!0,cd=Math.max(0,cd-1),cd===0&&iN())}}function iN(){ud&&(Hi&&process.off("exit",Hi),Ui&&process.off("uncaughtExceptionMonitor",Ui),Hi=null,Ui=null,ud=!1)}var Yx=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Qx=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,Xx=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Zx=/^\x1b\[(\d+);(\d+);(\d+)M/;function kr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function pd(e,t,r,n){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||e<0||t<1||r<1)return null;let o=e&3,s=(e&32)!==0,i=(e&64)!==0,a,l;return i?(a=e&1?"scroll-down":"scroll-up",l="click"):(o===0?a="left":o===1?a="middle":o===2?a="right":a="none",s&&o===3?l="move":n||o===3?l="release":s?l="drag":l="click"),{x:t-1,y:r-1,button:a,action:l,modifiers:{shift:(e&4)!==0,alt:(e&8)!==0,ctrl:(e&16)!==0}}}function eE(e){let t=Yx.exec(e);if(t){let s=kr(t[1]),i=kr(t[2]),a=kr(t[3]),l=kr(t[4]),d=kr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=pd(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Qx.exec(e);if(r){let s=kr(r[1]),i=kr(r[2]),a=kr(r[3]);if(s===null||i===null||a===null)return null;let l=pd(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=Xx.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=pd(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Zx.exec(e);if(o){let s=kr(o[1]),i=kr(o[2]),a=kr(o[3]);if(s===null||i===null||a===null)return null;let l=pd(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function tE(e){return Yx.test(e)||Qx.test(e)||Xx.test(e)||Zx.test(e)}var aN="\x1B[?1000h\x1B[?1002h\x1B[?1006h",rE="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",lN=Symbol("tuiuiu.mouse-runtime-state");function qi(e){return Ce(lN,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function Xf(e){return dn(e)?.stdout??process.stdout}function Zf(e){return"isTTY"in e&&!!e.isTTY}function Ki(e){return eE(e)}function eg(e){return tE(e)}function vs(e){let t=Ne(e),r=qi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,dN(t);let n=Xf(t);r.outputStream=n,Zf(n)&&n.write(aN)}}function bo(e){let t=Ne(e),r=qi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Xf(t);Zf(n)&&n.write(rE),r.outputStream=null}}function fd(e){let t=Ne(e),r=qi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Xf(t);Zf(n)&&n.write(rE),r.outputStream=null}}function dN(e){let t=qi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=cn(ln(e,()=>fd(e))))}function nE(e){let t=qi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as pN}from"node:zlib";var Ge={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},Ve={mouse:!0,italic:!0,strikethrough:!0},cN={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...Ge,...Ve,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:{...Ge,...Ve,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:{...Ge,...Ve,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:{...Ge,...Ve,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:{...Ge,...Ve,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:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...Ge,...Ve,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:{...Ge,...Ve,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:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...Ge,...Ve,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:{...Ge,...Ve,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:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...Ge,...Ve,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:{...Ge,...Ve,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:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...Ge,...Ve,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...Ge,...Ve,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...Ge,...Ve,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:Ge}};function uN(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 oE(e=process.env){return e.TMUX?{type:"tmux",version:e.TMUX?.split(",")[1],needsPassthrough:!0}:e.STY?{type:"screen",version:void 0,needsPassthrough:!0}:e.ZELLIJ?{type:"zellij",version:(e.ZELLIJ_SESSION_NAME,void 0),needsPassthrough:!1}:null}function gd(e=process.env){let t=uN(e),r=cN[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 cE=Symbol("tuiuiu.graphics-runtime-state");function uE(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:$t(cE,()=>uE(Br())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function og(){let e=Ne();return Ce(cE,()=>uE(e),e)}var sE={width:10,height:20};function md(e){return{width:Math.max(1,Math.round(e?.width??sE.width)),height:Math.max(1,Math.round(e?.height??sE.height))}}function fN(){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 pE(){return fN()?"halfblock":"braille"}function Ss(e){return e==="none"?pE():e}function fE(e){let t=Ss(e);return t==="halfblock"||t==="braille"}function gE(e){let t=Ss(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function iE(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 mE(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&yN(e)?e:null}function hE(){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 yE(){return gd(process.env).knownCaps.preferredGraphics||null}function bE(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function gN(){let e=mE();if(e)return e;let t=hE();if(t)return t;let r=yE();return r||bE()}function mN(e){return mE()===e||hE()===e?"env":yE()===e?"profile":bE()===e?"env":"fallback"}function Ts(){let e=og();if(e.manualOverride)return iE(e.manualOverride,"manual",md(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=hN();return iE(t,mN(t),md())}function hN(){let e=og();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=gN()??pE()),e.detectedProtocol)}function yN(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function kE(){let e=og();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:md(void 0)};let r=e.negotiatedCapabilities.cellSize;if(t.width!==r.width||t.height!==r.height)for(let n of[...e.cellSizeChangeListeners])n(r)}}function bN(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 RE(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function zi(e){return RE(e)?e:yd(e)}function aE(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function yd(e,t={}){let r=md(t.cellSize??Ts().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:bN(e)}}function Ji(e,t={}){let r=RE(e)?e:yd(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=aE(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=aE(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),b=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=b*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var Ps={transmit(e,t={}){let r=zi(e),n=Ji(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=EN(r),l=wE(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\\"}},kN={display(e,t={}){let{pixels:r}=zi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=wE(r);return`\x1B]1337;File=inline=1;${n};${o}:${s}\x07`},displayFile(e,t={}){let r=t.width?`width=${t.width}`:"width=auto",n=t.height?`height=${t.height}`:"height=auto",o=Buffer.from(e).toString("base64");return`\x1B]1337;File=inline=1;${r};${n}:${o}\x07`}},RN={encode(e,t={}){let r=zi(e),n=Ji(r,t),o=t.width!==void 0||t.height!==void 0?_E({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=vN(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),b=Math.round(p/255*100),h=Math.round(g/255*100);d+=`#${c};2;${f};${b};${h}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let b=0;for(let h=0;h<6;h++){let _=c+h;if(_>=i)continue;let w=(_*s+f)*4,A=a[w],x=a[w+1],O=a[w+2];SN([A,x,O],l)===u&&(b|=1<<h,p=!0)}g+=String.fromCharCode(63+b)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function lE(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 tg(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 dE={render(e,t={}){let r=zi(e),n=Ji(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=_E(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=lE(i,u,l),g=lE(i,u,l+1),f=" ",b;p.a>0&&g.a>0?(f="\u2580",b=tg(p,g)):p.a>0?(f="\u2580",b=tg(p)):g.a>0&&(f="\u2584",b=tg(g)),b!==c&&(c&&(d+="\x1B[0m"),b&&(d+=b),c=b),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
121
|
+
`)}},Vi=10240,wN={render(e,t={}){let{width:r,height:n,pixels:o}=zi(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&&TN(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,b=[[0,0,0],[0,1,1],[0,2,2],[1,0,3],[1,1,4],[1,2,5],[0,3,6],[1,3,7]];for(let[h,_,w]of b){let A=g*2+h,x=u*4+_;if(A<r&&x<n){let O=x*r+A;d[O]<s&&(f|=1<<w)}}p+=String.fromCharCode(Vi+f)}c.push(p)}return c.join(`
|
|
114
122
|
`)},invert(e){let t="";for(let r of e){if(r===`
|
|
115
|
-
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=
|
|
123
|
+
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=Vi&&n<Vi+256){let o=Vi+(255-(n-Vi));t+=String.fromCharCode(o)}else t+=r}return t}};function bd(e,t,r={}){switch(Ss(e)){case"kitty":return Ps.transmit(t,r);case"iterm2":return kN.display(t,r);case"sixel":return RN.encode(t,r);case"halfblock":return dE.render(t,r);case"braille":return wN.render(t,r);default:return dE.render(t,r)}}function kd(e){switch(Ss(e)){case"kitty":return Ps.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var rg=null;function _N(){if(rg)return rg;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 rg=e,e}function xN(e){let t=_N(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function hd(e,t,r){e[r]=t>>>24&255,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function ng(e,t){let r=new Uint8Array(8+t.length+4);hd(r,t.length,0),r[4]=e.charCodeAt(0),r[5]=e.charCodeAt(1),r[6]=e.charCodeAt(2),r[7]=e.charCodeAt(3),r.set(t,8);let n=r.subarray(4,8+t.length);return hd(r,xN(n),8+t.length),r}function EN(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);hd(s,t,0),hd(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=ng("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let b=f*a,h=f*(1+a);l[h]=1;for(let _=0;_<a;_++){let w=n[b+_],A=_>=4?n[b+_-4]:0;l[h+1+_]=w-A&255}}let d=pN(Buffer.from(l)),c=ng("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=ng("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 wE(e){return Buffer.from(e).toString("base64")}function vN(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 SN(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 TN(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 _E(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 ig(e){let t=e.props;return!!(t.onClick||t.onDoubleClick||t.onMouseDown||t.onMouseUp||t.onMouseMove||t.onMouseEnter||t.onMouseLeave||t.onContextMenu||t.onScroll)}function Rd(e,t,r=0,n=0,o=null,s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=r+a,g=n+l,f=s?Math.max(p,s.x):p,b=s?Math.max(g,s.y):g,h=s?Math.min(p+d,s.x+s.width):p+d,_=s?Math.min(g+c,s.y+s.height):g+c;h>f&&_>b&&t(i,f,b,h-f,_-b,o);let w=i.props,A=w.paddingTop??w.paddingY??w.padding??0,x=w.paddingLeft??w.paddingX??w.padding??0,O=w.borderStyle&&w.borderStyle!=="none"?1:0,$=p+x+O,L=typeof w.__scrollOffsetY=="number"&&Number.isFinite(w.__scrollOffsetY)?Math.max(0,Math.floor(w.__scrollOffsetY)):0,B=g+A+O-L,F=w.overflow==="hidden"||w.overflowX==="hidden",W=w.overflow==="hidden"||w.overflowY==="hidden",U={x:F?p:s?.x??Number.MIN_SAFE_INTEGER,y:W?g:s?.y??Number.MIN_SAFE_INTEGER,width:F?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:W?c:s?.height??Number.MAX_SAFE_INTEGER*2},oe=F||W?PN(s,U):s;for(let se of u)Rd(se,t,$,B,i,oe)}function PN(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 xE(e){let t=[],r=0;return Rd(e,(n,o,s,i,a)=>{ig(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var sg=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),ig(t)){let a={node:t,x:r,y:n,width:o,height:s,zIndex:this.zCounter++};this.elements.push(a),this.boundsByNode.set(t,a)}}registerFromLayout(t,r=0,n=0,o=null){Rd(t,(s,i,a,l,d,c)=>{this.register(s,i,a,l,d,c)},r,n,o)}hitTest(t,r){for(let n=this.elements.length-1;n>=0;n--){let o=this.elements[n];if(t>=o.x&&t<o.x+o.width&&r>=o.y&&r<o.y+o.height)return{node:o.node,relativeX:t-o.x,relativeY:r-o.y,absoluteX:t,absoluteY:r}}return null}pixelHitTest(t,r,n){let o=Math.floor(t/n.width),s=Math.floor(r/n.height),i=this.hitTest(o,s);if(!i)return null;let a=this.elements.find(l=>l.node===i.node);return a&&(i.pixelRelativeX=t-a.x*n.width,i.pixelRelativeY=r-a.y*n.height),i}handleMouseEvent(t){let r;if(t.pixelX!=null&&t.pixelY!=null){let d=Ts().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=Ts().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,vs(),this.inputHandler=r=>{let n=Ki(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,bo(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},AN=Symbol("tuiuiu.hit-test-registry");function As(e){return Ce(AN,()=>new sg,e)}function ag(e,t=0){let r=As();if(r.clear(),t===0){r.registerFromLayout(e);return}Rd(e,(n,o,s,i,a,l)=>{ig(n)&&r.register(n,o,s+t,i,a,l)})}import lr from"node:path";import{fileURLToPath as TE}from"node:url";var ON=[{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() {
|
|
116
124
|
const [count, setCount] = createSignal(0);
|
|
117
125
|
useHotkeys('up', () => setCount(c => c + 1));
|
|
118
126
|
return Text({}, \`Count: \${count()}\`);
|
|
@@ -182,51 +190,51 @@ useEffect(() => {
|
|
|
182
190
|
return Box({},
|
|
183
191
|
ComputedText(() => \`Score: \${score()}\`),
|
|
184
192
|
);
|
|
185
|
-
})`,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
|
|
186
|
-
`).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=gE(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function xN(e,t){!yE()||fE.has(e)||(fE.add(e),console.warn(`[tuiuiu] ${t}`))}function zi(e){kd++;try{return e()}finally{kd=Math.max(0,kd-1)}}function bE(e,t){if(!yE()||kd>0||!Tx()||Px()!=="component")return;let r=_N(e,[t])[0];if(!r||RN(r.filePath))return;let n=wN(r);xN(`create-signal-in-render:${n}`,`createSignal() was called during component render at ${n}. This recreates state every render. Move it to module scope or use useState(). ${pE("signals-inside-component-render")}`)}var Cn=null,Yi=new Set,Ji=!1,sg=class{_value;_subs=null;constructor(t){this._value=t}get value(){return Cn&&Cn._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof Dn){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof Dn){let r=this._subs;Ji?Yi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ji?Yi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof Dn){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},og=null;var ig=!1,Rd=new Set;function EN(e){Rd.add(e),ig||(ig=!0,queueMicrotask(vN))}function vN(){ig=!1;let e=[...Rd];Rd.clear(),kE(e,t=>t.run())}function kE(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var Dn=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?EN(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=og;og=this._cleanups;let r=Cn;Cn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{Cn=r,og=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,Rd.delete(this),Yi.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 Rr(e){bE(new Error().stack,import.meta.url);let t=new sg(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function RE(e,t={}){let r=new Dn(e,t);return()=>r.dispose()}function Vt(e){let t=Ji;Ji=!0;try{e()}finally{if(Ji=t,!t){let r=[...Yi];Yi.clear(),kE(r,n=>n.notify())}}}function As(e){let t=Cn;Cn=null;try{return e()}finally{Cn=t}}var SN=Symbol("tuiuiu.terminal-focus-state");function TN(){let[e,t]=Rr(!0);return{read:e,write:t,listeners:new Set}}function ag(e){return Fe(SN,TN,e)}function wr(e){return ag(e).read()}function lg(e,t){let r=ag(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function wd(e,t){let r=ag(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function dg(e){lg(!0,e)}var bo={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},_E=Symbol("tuiuiu.motion-runtime-state");function xE(e){let t=e.id===0?null:Bt(_E,()=>xE(Nr())),r={config:{...t?.config??bo},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,[Br](){vE(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function ug(){let e=Ge();return Fe(_E,()=>xE(e),e)}function _d(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function cg(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function PN(e){switch(e.presentationPressure){case"elevated":return e.config.frameBudgetMs*e.config.elevatedFrameBudgetFactor;case"critical":return e.config.frameBudgetMs*e.config.criticalFrameBudgetFactor;case"normal":default:return 0}}function EE(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function AN(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=wd(an(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}xd(e)})))}function pg(e,t=wr(e.scope)){if(!t)return 1e3/e.config.unfocusedFps;switch(e.qualityTier){case"reduced":return 1e3/e.config.reducedFps;case"skip":return 0;case"full":default:return 1e3/e.config.targetFps}}function wE(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:wr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function ON(e,t){let r=wr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=pg(e,r),s=e.lastPresentationAt===0?0:t-e.lastPresentationAt;n=Math.min(n,Math.max(0,o-s))}for(let o of e.intervalSubscriptions.values()){if(!r&&o.pauseWhenUnfocused)continue;let s=t-o.lastRunAt;n=Math.min(n,Math.max(0,o.intervalMs-s))}return Number.isFinite(n)?Math.ceil(n):null}function vE(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function SE(e){if(e.schedulerTimer||!EE(e))return;AN(e);let t=ON(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(an(e.scope,()=>CN(e)),t))}function CN(e){if(e.schedulerTimer=null,!EE(e))return;let t=Date.now(),r=wr(e.scope),n=pg(e,r),o=e.lastPresentationAt===0?n:t-e.lastPresentationAt;if(e.frameCallbacks.size>0&&o>=n){e.lastPresentationAt=t;let s=[...e.frameCallbacks.values()];e.frameCallbacks.clear();let i=wE(e,t,n,n===0?0:Math.max(n,o));for(let a of s)a(i)}for(let s of e.intervalSubscriptions.values()){if(!r&&s.pauseWhenUnfocused)continue;let i=t-s.lastRunAt;i<s.intervalMs||(s.lastRunAt=t,s.callback(wE(e,t,n,Math.max(s.intervalMs,i))))}SE(e)}function xd(e){vE(e),SE(e)}function TE(e){let t=ug(),r=_d(e.targetFps??t.config.targetFps,bo.targetFps),n=_d(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:_d(e.unfocusedFps??t.config.unfocusedFps,bo.unfocusedFps),frameBudgetMs:cg(e.frameBudgetMs??t.config.frameBudgetMs,bo.frameBudgetMs),recoveryFrames:_d(e.recoveryFrames??t.config.recoveryFrames,bo.recoveryFrames),elevatedFrameBudgetFactor:cg(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,bo.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:cg(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,bo.criticalFrameBudgetFactor)},xd(t)}function Ed(){let e=ug();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:wr(e.scope),targetFrameMs:pg(e),recommendedPresentationIntervalMs:PN(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function DN(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function FN(e){if(e.presentationPressure==="normal"){e.pressureOnBudgetStreak=0;return}e.pressureOnBudgetStreak++,!(e.pressureOnBudgetStreak<e.config.recoveryFrames)&&(e.presentationPressure==="critical"?e.presentationPressure="elevated":e.presentationPressure="normal",e.pressureOnBudgetStreak=0)}function PE(e){let t=ug();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"),xd(t)):(t.onBudgetStreak++,t.onBudgetStreak>=t.config.recoveryFrames&&(t.qualityTier==="skip"?(t.qualityTier="reduced",t.onBudgetStreak=0):t.qualityTier==="reduced"&&(t.qualityTier="full",t.onBudgetStreak=0))),r||n?DN(t):FN(t),xd(t),t.qualityTier}function Fn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function AE(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function OE(e){return e?$t({key:e.key,transforms:e.transforms}):null}function Qi(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 IN(e,t){let r=Qi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function MN(e,t){let r=Fn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Qi(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function LN(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 jN(e,t,r){let n=Fn(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=Qi(e);return a.clip=LN(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function $N(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 BN(e,t,r){if(e.type!=="text")return e;let n=Fn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*Fn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!$N(e,r,o,s))return e;let i=Qi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function NN(e,t,r){let n=Fn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Qi(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let O=o.x,v=o.x+Math.max(1,o.maxWidth),A=Math.max(O,g),$=Math.min(v,f);if($<=A)return null;let L=Math.max(0,A-O),B=Math.max(L,$-O);return o.text=ks(o.text,L,B),o.x=A,o.maxWidth=Math.max(0,$-A),o.maxWidth>0&&o.text.length>0?o:null}let b=o.x,y=o.x+Math.max(1,o.width),_=Math.max(b,g),w=Math.min(y,f);return w<=_?null:(o.x=_,o.width=Math.max(0,w-_),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function GN(e,t,r){let n=Ed().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&Fn(s.opacity)<=0||s.kind==="scale"&&Fn(s.scale)<=0||s.kind==="reveal"&&Fn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=IN(o,s);break;case"fade":o=MN(o,s);break;case"scale":o=jN(o,s,r);break;case"shimmer":o=BN(o,s,r);break;case"reveal":o=NN(o,s,r);break}}return o}function CE(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=GN(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var WN=1,HN=Symbol("tuiuiu.frame-runtime-state");function gg(e){return Fe(HN,()=>({committedFrameSnapshot:null}),e)}var UN=new Set(["__terminalImage","__compositor"]),qN=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),KN=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),fg={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},vd=new WeakMap,Mn=new Map,IE=4096;function In(){return typeof performance<"u"?performance.now():Date.now()}function VN(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 zN(e){return{eagerHitTargets:e?.eagerHitTargets??fg.eagerHitTargets,eagerQueries:e?.eagerQueries??fg.eagerQueries,eagerWarnings:e?.eagerWarnings??fg.eagerWarnings}}function JN(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,b=typeof f.id=="string"?f.id:void 0;if(b&&b.length>0){let A=t.get(b)??[];A.push({id:b,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(b,A)}let y=f.paddingTop??f.paddingY??f.padding??0,_=f.paddingLeft??f.paddingX??f.padding??0,w=f.borderStyle&&f.borderStyle!=="none"?1:0,O=p+_+w,v=g+y+w;for(let A of u)r(A,O,v)};return r(e),t}function YN(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 QN(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,b=typeof f.id=="string"?f.id:void 0;if(b&&b.length>0&&YN(f.__scrollQuery)){let A=t.get(b)??[];A.push({id:b,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(b,A)}let y=f.paddingTop??f.paddingY??f.padding??0,_=f.paddingLeft??f.paddingX??f.padding??0,w=f.borderStyle&&f.borderStyle!=="none"?1:0,O=p+_+w,v=g+y+w;for(let A of u)r(A,O,v)};return r(e),t}function XN(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 Os(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function DE(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r;return{id:t,status:"found",found:!0,ambiguous:!1,bounds:n.bounds,nodeType:n.nodeType}}function ZN(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 eG(e,t,r,n,o){return{getElement:s=>{let i=DE(e,s);return i.status==="missing"?Os(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"&&Os(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Element query for explicit id "${s}" matched multiple committed elements in the current frame.`}),i},pointerOver:s=>{if(!r.pointer)return!1;let i=DE(e,s);return!i.found||!i.bounds?(i.status==="missing"?Os(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"&&Os(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=ZN(t,s);return i.status==="missing"?Os(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"&&Os(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 tG(e,t,r,n=[],o){let s=n.length>0?$t(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function rG(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 nG(e,t){let r=e.type==="text"?KN:qN,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return $t({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:UN})}function oG(e,t,r,n,o,s){return $t([t,r,OE(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function sG(e,t,r){if(!od(e.node))return;let n=vd.get(e);if(!n)return;if(n.cacheKey!==t){On(e.node,Ce.LAYOUT);return}let o=r();if(n.fingerprint!==o){On(e.node,Ce.CONTENT|Ce.STYLE);return}if(n.childRefs.length!==e.node.children.length){On(e.node,Ce.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){On(e.node,Ce.CHILDREN);return}return n}function FE(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return vd.set(e,i),i}function iG(e){return e.map((t,r)=>({...t,order:r}))}function ME(e,t){return t?`${e}|motion:${Ed().qualityTier}`:e}function aG(){let e=Math.max(1,Math.ceil(IE*.1)),t=Mn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Mn.delete(n.value)}}function lG(e){return Mn.get(e)}function dG(e,t,r){let n=Mn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Mn.has(e)&&Mn.size>=IE&&aG(),Mn.set(e,o),o}function cG(e,t,r){let n=Mn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function uG(e,t){for(let r of t)e.push(r)}function pG(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function fG(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function LE(e){let t=e.props;return AE(t?.__compositor)?t.__compositor:null}function jE(e,t=new Map){let r=LE(e.node);r&&t.set(r.key,{...r,bounds:{x:e.x,y:e.y,width:e.width,height:e.height}});for(let n of e.children)jE(n,t);return t}function gG(e,t,r,n,o,s){if(!fG(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let b=s.__terminalImage,y=Ss(),_=pG(b.source)?b.source:md(b.source,{cellSize:y.cellSize}),w=b.options?.protocol??y.protocol,O=vs(w),v=Vi(_,{...b.options,width:b.options?.width??g,height:b.options?.height??f}),A=Math.max(0,Math.min(g,v.renderColumns)),$=Math.max(0,Math.min(f,v.renderRows));return A<=0||$<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:A,height:$,instanceKey:b.protocolState?.instanceKey,kittyImageId:b.protocolState?.kittyImageId,source:_,fit:v.fit,threshold:b.options?.threshold,dither:b.options?.dither,preserveAspectRatio:b.options?.preserveAspectRatio,protocol:O,cellRender:tE(O),protocolState:b.protocolState}}function mG(e){return e.flatMap(t=>t.type!=="terminal-image"||t.cellRender||t.clip&&(t.x<t.clip.x||t.y<t.clip.y||t.x+t.width>t.clip.x+t.clip.width||t.y+t.height>t.clip.y+t.clip.height)?[]:[{type:"terminal-image",id:t.id,protocol:t.protocol,x:t.x,y:t.y,width:t.width,height:t.height}])}function $E(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,b=LE(i),y=b?[...o,b.key]:[...o],_=b!==null,w=gG(e,p,g,d,c,f),O=w?`:${w.protocol}:${w.source.hash}:${w.width}x${w.height}:${w.fit}:${w.threshold??""}:${w.dither?1:0}:${w.preserveAspectRatio?1:0}`:"",v=tG(t,r,n,y,s)+O,A,$=()=>(A===void 0&&(A=nG(i,w)),A),L=sG(e,v,$);if(L)return Mi("draw"),{commands:L.commands,hasCompositor:L.hasCompositor,subtreeSignature:L.subtreeSignature};let B=$(),F=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,U=[],oe=[],se=f.paddingTop??f.paddingY??f.padding??0,te=f.paddingLeft??f.paddingX??f.padding??0,Q=f.borderStyle&&f.borderStyle!=="none"?1:0,le=p+te+Q,Se=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,ve=g+se+Q-Se,ke=W??n,J=f.overflow==="hidden"||f.overflowX==="hidden",ce=f.overflow==="hidden"||f.overflowY==="hidden",Re={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:ce?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:ce?c:s?.height??Number.MAX_SAFE_INTEGER*2},Pe=J||ce?rG(s,Re):s;for(let ae of u){let be=$E(ae,le,ve,ke,y,Pe);U.push(be),_||=be.hasCompositor,oe.push(be.subtreeSignature)}let Te=oG(e,v,B,b,y,oe),_e=lG(Te);if(_e){Mi("draw");let ae=FE(e,v,B,_e.commands,_e.hasCompositor,Te),be=ME(Te,_e.hasCompositor);return _e.materialized&&_e.materializedSignature===be&&(ae.materialized=_e.materialized,ae.materializedSignature=be),{commands:ae.commands,hasCompositor:ae.hasCompositor,subtreeSignature:Te}}let Ae=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let be=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Ae.push({type:"box",id:F,nodeType:i.type,compositorKeys:y.length>0?[...y]: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:be,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ae=String(f.children??""),be=Math.max(1,he(ae)),Ye=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ae),f.__splitDivider.bottom].join(`
|
|
187
|
-
`):f.__divider==="horizontal"?
|
|
188
|
-
`):ae;Ae.push({type:"text",id:F,nodeType:i.type,compositorKeys:y.length>0?[...y]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Ye,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})}w&&Ae.push({...w,compositorKeys:y.length>0?[...y]:void 0,clip:s});for(let ae of U)uG(Ae,ae.commands);mo("draw");let ye=FE(e,v,B,Ae,_,Te);return dG(Te,ye.commands,_),{commands:ye.commands,hasCompositor:_,subtreeSignature:Te}}function hG(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 yG(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=hG(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function bG(e){let t=$E(e),r=vd.get(e),n=ME(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=iG(t.commands),s=t.hasCompositor?CE(o,jE(e)):o,i=yG(s),a=vd.get(e);return a&&(a.materialized=i,a.materializedSignature=n),cG(t.subtreeSignature,i,n),i}function BE(e,t,r={}){let n=zN(r),o=VN(t),s=Date.now(),i=In(),a=In(),l=kx(e,o.width,o.height),d=In()-a,c=In(),u=bG(l),p=mG(u),g=In()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},b=mx();f.structural.layoutReuseCount=b.layoutReuseCount,f.structural.layoutFreshCount=b.layoutFreshCount,f.structural.drawReuseCount=b.drawReuseCount,f.structural.drawFreshCount=b.drawFreshCount,f.structural.invalidationEscalationCount=b.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=b.absorbedLayoutDirtyCount;let y,_,w,O=[],v=!1,A=()=>(y||(y=JN(l)),y),$=()=>(_||(_=QN(l)),_),L=()=>{if(!w){let se=In();w=uE(l),f.phases.hitTargetRegistrationMs=In()-se,f.structural.hitTargetCount=w.length}return w},B=()=>(v||(O.push(...XN(A())),v=!0,f.structural.warningCount=O.length),O);n.eagerQueries&&(A(),$()),n.eagerWarnings&&B(),n.eagerHitTargets&&L();let F=eG(A,$,o,O,f),W=Date.now(),U=In()-i;return f.frameEndAt=W,f.totalFrameMs=U,{info:{frameId:WN++,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 L()},get warnings(){return B()}}}function NE(e,t){gg(t).committedFrameSnapshot=e}function GE(e){return gg(e).committedFrameSnapshot}function WE(e){gg(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 HE(e,t,r=Date.now()){e.metrics.runtimeStartAt=t,e.metrics.runtimeEndAt=r,e.metrics.runtimeTotalMs=Math.max(0,r-t),e.metrics.frameEndAt=r}var qE=Symbol("tuiuiu.progressive-runtime-state");function UE(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function kG(e){if(e.id===0)return UE();let t=Bt(qE,UE);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function mg(){let e=Ge();return Fe(qE,()=>kG(e),e)}function KE(){return mg().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function VE(){return mg().capabilityOverrides}function hg(){return mg().progressiveVersion}function RG(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=pd(t),a=Kx(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",b=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",y=l.strikethrough||b,_=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,w=e.stdout??process.stdout,O=w.columns||80,v=w.rows||24,A=KE(),$={unicode:u,colors:p,mouse:g,trueColor:f,italic:b,strikethrough:y,hyperlinks:_,terminalName:c,isCI:d,columns:O,rows:v,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:A},L=VE();return L&&Object.assign($,L),$}var zE=Symbol("tuiuiu.capability-runtime-state");function JE(e){let t=e.id===0?"auto":As(Bt(zE,()=>JE(Nr())).renderModeSignal),[r,n]=Rr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Br](){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 Fe(zE,()=>JE(t),t)}function YE(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function wG(e){return RG({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Sd(e){return e.cachedCapabilities=wG(e),e.cachedProgressiveVersion=hg(),e.cachedCapabilities}function QE(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>Ve(e.scope,()=>{Sd(e);let r=YE(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function XE(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,QE(t)}function Ur(){let e=Xi(),t=hg();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Sd(e),e.cachedCapabilities??Sd(e)}function ZE(){return Sd(Xi())}function ev(){return YE(Xi())}function tv(e){let t=Xi();return t.resizeHandlers.add(e),QE(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var rv={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,gray:8,grey:8,blackBright:8,redBright:9,greenBright:10,yellowBright:11,blueBright:12,magentaBright:13,cyanBright:14,whiteBright:15},_G={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},xG=512,ko=new Map,nv=4e6;function qr(){return{char:" ",attrs:{}}}function bg(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 EG(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&&bg(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function ov(e,t){return e.char===t.char&&bg(e.fg,t.fg)&&bg(e.bg,t.bg)&&EG(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Td(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Kr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>nv)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${nv} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push(qr());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||he(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=qr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,he(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=qr(),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]=qr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&he(s.char)>1&&(this.cells[r][t-1]=qr(),this.addDamage(t-1,r,1,1))}return}let o=he(n.char);if(!(o<=1)){this.cells[r][t]=qr(),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]=qr(),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=he(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=fo(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
189
|
-
`)continue;if(a>=this.width)break;let c=he(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(he(o)!==1){let c=he(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(he(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]=
|
|
190
|
-
`)}function Rg(e,t,r=!1){if(e.length===0)return"";r||e.sort((d,c)=>d.y!==c.y?d.y-c.y:d.x-c.x);let n=[],o=-1,s=-1,i=null,a="",l=()=>{a.length>0&&(n.push(a),a="")};for(let d of e){let{x:c,y:u,cell:p}=d;if(p.isWide||c<0||c>=t||u<0)continue;(u!==s||c!==o+1)&&(l(),n.push(`\x1B[${u+1};${c+1}H`));let g=av(p.fg,p.bg,p.attrs);g!==i&&(l(),i!==null&&n.push("\x1B[0m"),g!==null&&n.push(`\x1B[${g}m`),i=g),a+=p.char,o=c+(OG(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Ad(e,t){let r=t??Ur().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 CG="\x1B[?2026h",DG="\x1B[?2026l";function lv(e){let t=e??Ur();return t.synchronizedOutput?Ad(CG,t.multiplexer):""}function dv(e){let t=e??Ur();return t.synchronizedOutput?Ad(DG,t.multiplexer):""}var wg={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",top:"\u2550",bottom:"\u2550",left:"\u2551",right:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2558",bottomRight:"\u255B",top:"\u2550",bottom:"\u2550",left:"\u2502",right:"\u2502"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},asciiDouble:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"=",bottom:"=",left:"|",right:"|"},markdown:{topLeft:"|",topRight:"|",bottomLeft:"|",bottomRight:"|",top:"-",bottom:"-",left:"|",right:"|"},arrow:{topLeft:"\u2198",topRight:"\u2199",bottomLeft:"\u2197",bottomRight:"\u2196",top:"\u2193",bottom:"\u2191",left:"\u2192",right:"\u2190"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u254C",bottom:"\u254C",left:"\u254E",right:"\u254E"},dashedHeavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u254D",bottom:"\u254D",left:"\u254F",right:"\u254F"},heavyHead:{topLeft:"\u250E",topRight:"\u2512",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2501",bottom:"\u2500",left:"\u2502",right:"\u2502"},doubleHead:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2550",bottom:"\u2500",left:"\u2502",right:"\u2502"},heavyEdge:{topLeft:"\u250D",topRight:"\u2511",bottomLeft:"\u2515",bottomRight:"\u2519",top:"\u2500",bottom:"\u2500",left:"\u2503",right:"\u2503"},doubleEdge:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},minimal:{topLeft:"\u2500",topRight:"\u2500",bottomLeft:"\u2500",bottomRight:"\u2500",top:"\u2500",bottom:"\u2500",left:" ",right:" "},minimalHeavy:{topLeft:"\u2501",topRight:"\u2501",bottomLeft:"\u2501",bottomRight:"\u2501",top:"\u2501",bottom:"\u2501",left:" ",right:" "},minimalDouble:{topLeft:"\u2550",topRight:"\u2550",bottomLeft:"\u2550",bottomRight:"\u2550",top:"\u2550",bottom:"\u2550",left:" ",right:" "},horizontals:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:"\u2500",bottom:"\u2500",left:" ",right:" "},inner:{topLeft:"\u2597",topRight:"\u2596",bottomLeft:"\u259D",bottomRight:"\u2598",top:"\u2584",bottom:"\u2580",left:"\u2590",right:"\u258C"},outer:{topLeft:"\u259B",topRight:"\u259C",bottomLeft:"\u2599",bottomRight:"\u259F",top:"\u2580",bottom:"\u2584",left:"\u258C",right:"\u2590"},thick:{topLeft:"\u2588",topRight:"\u2588",bottomLeft:"\u2588",bottomRight:"\u2588",top:"\u2580",bottom:"\u2584",left:"\u2588",right:"\u2588"},block:{topLeft:"\u2584",topRight:"\u2584",bottomLeft:"\u2580",bottomRight:"\u2580",top:"\u2584",bottom:"\u2580",left:"\u2588",right:"\u2588"},hkey:{topLeft:"\u2594",topRight:"\u2594",bottomLeft:"\u2581",bottomRight:"\u2581",top:"\u2594",bottom:"\u2581",left:" ",right:" "},vkey:{topLeft:"\u258F",topRight:"\u2595",bottomLeft:"\u258F",bottomRight:"\u2595",top:" ",bottom:" ",left:"\u258F",right:"\u2595"},tall:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2594",bottom:"\u2581",left:"\u258A",right:"\u258E"},panel:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2588",bottom:"\u2581",left:"\u258A",right:"\u258E"},tab:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},wide:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},hidden:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},blank:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "}};var uv="\x1B[?25h",FG="\x1B[?25l",Od=!1,cv=!1,IG=null,_g=null;function xg(e){return"isTTY"in e&&!!e.isTTY}function MG(){let e=_g??process.stdout;xg(e)&&Od&&(e.write(uv),Od=!1)}function LG(){cv||(cv=!0,IG=dn(MG))}function Cs(e=process.stdout){xg(e)&&(_g=e,Od=!1,e.write(uv))}function Ds(e=process.stdout){xg(e)&&(_g=e,LG(),Od=!0,e.write(FG))}var jG="#ffffff",$G="#000000",BG="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},NG={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},GG={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},h={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},He={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},pe={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},WG={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},fe={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},HG={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},UG={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},ge={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},qG={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},KG={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},tt={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},VG={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},ee={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},zG={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},JG={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},YG={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},QG={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},XG={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},ZG={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},pv={white:jG,black:$G,transparent:BG,slate:k,gray:NG,zinc:GG,neutral:h,stone:He,red:pe,orange:WG,amber:fe,yellow:HG,lime:UG,green:ge,emerald:qG,teal:KG,cyan:tt,sky:VG,blue:ee,indigo:zG,violet:JG,purple:YG,fuchsia:QG,pink:XG,rose:ZG};var Z={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},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]}},Eg={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:Z,background:{lowest: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:Z.success[500],warning:Z.warning[500],critical:Z.danger[500],info:tt[500],highlight:Z.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:Z.primary[400],ring:{color:Z.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:Z.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:Z.primary[500],danger:Z.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Z.primary[500],fg:"#ffffff",hoverBg:Z.primary[400],activeBg:Z.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:Z.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:Z.primary[500]},ghost:{bg:"transparent",fg: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:Z.primary[700],selectedBg:Z.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:Z.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:Z.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:Z.primary[500],invalidBorder:Z.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:Z.primary[500]},radio:{bg:k[800],dotColor:Z.primary[500],border:k[600],checkedBorder:Z.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:Z.success[500],fg:"#ffffff"},warning:{bg:Z.warning[500],fg:k[900]},danger:{bg:Z.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:Z.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:Z.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:Z.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.success[700]},warning:{bg:Z.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Z.warning[600]},danger:{bg:Z.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Z.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:Z.primary[600],fg:"#ffffff"},info:{bg:tt[600],fg:"#ffffff"},success:{bg:Z.success[600],fg:"#ffffff"},warning:{bg:Z.warning[500],fg:k[900]},danger:{bg:Z.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:Z.primary[400],subtitleFg:k[400],border:Z.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:Z.primary[700],headerFg:"#ffffff",contentBg:k[900],border:Z.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:Z.primary[700],itemSelectedFg:"#ffffff",highlightFg:Z.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:Z.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:Z.success[900],fg:Z.success[100],border:Z.success[600],iconFg:Z.success[400]},error:{bg:Z.danger[900],fg:Z.danger[100],border:Z.danger[600],iconFg:Z.danger[400]},warning:{bg:Z.warning[900],fg:Z.warning[100],border:Z.warning[500],iconFg:Z.warning[400]},info:{bg:tt[900],fg:tt[100],border:tt[600],iconFg:tt[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:Z.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:Z.primary[600],titleBarFg:"#ffffff",border:Z.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:Z.success[600],titleBarFg:"#ffffff",border:Z.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:Z.warning[500],titleBarFg:k[900],border:Z.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:Z.danger[600],titleBarFg:"#ffffff",border:Z.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Y={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},fv={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:ge[600],warning:fe[600],critical:pe[600],info:tt[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:k[300],checkedBorder:Y.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Y.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:tt[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:k[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:k[600],border:Y.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Y.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:tt[50],fg:tt[900],border:tt[200],iconFg:tt[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Y.warning[500],titleBarFg:k[900],border:Y.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var M={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"}},gv={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:Ro,background:{lowest:M.backgroundDark,base:M.background,subtle:M.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:M.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:M.foreground,secondary:"#E8E8E2",muted:M.comment,disabled:"#5B5A4F",inverse:{base:M.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:M.green,warning:M.yellow,critical:M.pink,info:M.cyan,highlight:M.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:M.green,ring:{color:M.green,width:2}},disabled:{opacity:.4,bg:M.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:M.foreground}},borders:{default:"#49483E",subtle:M.backgroundLight,strong:M.comment,accent:M.green,danger:M.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:M.green,fg:M.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:M.foreground,hoverBg:"#5B5A4F",activeBg:M.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:M.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:M.green},ghost:{bg:"transparent",fg:M.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:M.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:M.backgroundLight,border:"#49483E",item:{fg:M.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:M.backgroundLight,border:"#49483E",tab:{fg:M.comment,activeFg:M.foreground,activeBg:M.background,hoverFg:"#E8E8E2",indicator:M.green}},dropdown:{bg:M.backgroundLight,border:"#49483E",item:{fg:M.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:M.backgroundLight,fg:M.foreground,placeholder:M.comment,border:"#49483E",focusBorder:M.green,invalidBorder:M.pink},checkbox:{bg:M.backgroundLight,border:"#5B5A4F",checkColor:M.background,checkedBg:M.green},radio:{bg:M.backgroundLight,dotColor:M.green,border:"#5B5A4F",checkedBorder:M.green},tooltip:{bg:"#49483E",fg:M.foreground},modal:{bg:M.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:M.foreground},success:{bg:M.green,fg:M.background},warning:{bg:M.yellow,fg:M.background},danger:{bg:M.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:M.backgroundLight,selectedBg:"#49483E",fg:M.foreground}},header:{default:{bg:M.backgroundLight,fg:M.foreground,titleFg:M.foreground,subtitleFg:M.comment,border:"#49483E"},primary:{bg:M.green,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:M.foreground,titleFg:M.foreground,subtitleFg:M.comment,border:"#5B5A4F"},success:{bg:M.green,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:M.yellow,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:M.orange},danger:{bg:M.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:M.backgroundLight,fg:M.comment},primary:{bg:M.green,fg:M.background},info:{bg:M.cyan,fg:M.background},success:{bg:M.green,fg:M.background},warning:{bg:M.yellow,fg:M.background},danger:{bg:M.pink,fg:"#ffffff"}},page:{default:{bg:M.background,titleFg:M.foreground,subtitleFg:M.comment,border:"#49483E"},primary:{bg:M.background,titleFg:M.green,subtitleFg:M.comment,border:M.green},secondary:{bg:M.background,titleFg:"#E8E8E2",subtitleFg:M.comment,border:"#49483E"}},appshell:{bg:M.backgroundDark,dividerFg:"#49483E",sidebarBg:M.background,asideBg:M.background},collapsible:{default:{headerBg:M.backgroundLight,headerFg:M.foreground,contentBg:M.background,border:"#49483E",iconFg:M.comment},primary:{headerBg:"#49483E",headerFg:M.green,contentBg:M.background,border:M.green,iconFg:M.green},secondary:{headerBg:"#49483E",headerFg:M.foreground,contentBg:M.backgroundLight,border:"#5B5A4F",iconFg:M.comment}},commandPalette:{bg:M.backgroundLight,border:"#49483E",inputBg:M.background,inputFg:M.foreground,inputPlaceholder:M.comment,itemFg:M.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:M.foreground,highlightFg:M.green,categoryFg:M.comment},splitPanel:{bg:M.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:M.green,border:"#49483E",titleFg:M.comment},toast:{success:{bg:Ro.success[900],fg:Ro.success[100],border:M.green,iconFg:M.green},error:{bg:Ro.danger[900],fg:Ro.danger[100],border:M.pink,iconFg:M.pink},warning:{bg:Ro.warning[900],fg:Ro.warning[100],border:M.yellow,iconFg:M.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:M.cyan,iconFg:M.cyan}},window:{default:{bg:M.background,fg:M.foreground,titleBarBg:M.backgroundLight,titleBarFg:M.foreground,border:"#49483E",buttonFg:M.comment,closeFg:M.pink},primary:{bg:M.background,fg:M.foreground,titleBarBg:M.green,titleBarFg:M.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},success:{bg:M.background,fg:M.foreground,titleBarBg:M.green,titleBarFg:M.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},warning:{bg:M.background,fg:M.foreground,titleBarBg:M.yellow,titleBarFg:M.background,border:M.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},danger:{bg:M.background,fg:M.foreground,titleBarBg:M.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var D={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},wo={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},mv={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:wo,background:{lowest:"#21222C",base:D.background,subtle:D.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:D.comment,popover:D.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:D.foreground,secondary:"#E8E8E2",muted:D.comment,disabled:"#565869",inverse:{base:D.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:D.green,warning:D.yellow,critical:D.red,info:D.cyan,highlight:D.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:D.purple,ring:{color:D.purple,width:2}},disabled:{opacity:.4,bg:D.currentLine,fg:"#565869"},selected:{bg:D.currentLine,fg:D.foreground}},borders:{default:D.comment,subtle:D.currentLine,strong:D.purple,accent:D.purple,danger:D.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:D.purple,fg:D.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:D.currentLine,fg:D.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:D.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:D.purple},ghost:{bg:"transparent",fg:D.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:D.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:D.comment},menu:{bg:D.currentLine,border:D.comment,item:{fg:D.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:D.currentLine,border:D.comment,tab:{fg:D.comment,activeFg:D.foreground,activeBg:D.background,hoverFg:"#E8E8E2",indicator:D.purple}},dropdown:{bg:D.currentLine,border:D.comment,item:{fg:D.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:D.currentLine,fg:D.foreground,placeholder:D.comment,border:D.comment,focusBorder:D.purple,invalidBorder:D.red},checkbox:{bg:D.currentLine,border:D.comment,checkColor:D.foreground,checkedBg:D.purple},radio:{bg:D.currentLine,dotColor:D.purple,border:D.comment,checkedBorder:D.purple},tooltip:{bg:"#4D4F5F",fg:D.foreground},modal:{bg:D.currentLine,border:D.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:D.comment,fg:D.foreground},success:{bg:D.green,fg:D.background},warning:{bg:D.yellow,fg:D.background},danger:{bg:D.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:D.currentLine,selectedBg:"#4D4F5F",fg:D.foreground}},header:{default:{bg:D.currentLine,fg:D.foreground,titleFg:D.foreground,subtitleFg:D.comment,border:D.comment},primary:{bg:D.purple,fg:D.foreground,titleFg:D.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:D.foreground,titleFg:D.foreground,subtitleFg:D.comment,border:"#565869"},success:{bg:D.green,fg:D.background,titleFg:D.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:D.yellow,fg:D.background,titleFg:D.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:D.orange},danger:{bg:D.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:D.currentLine,fg:D.comment},primary:{bg:D.purple,fg:D.foreground},info:{bg:D.cyan,fg:D.background},success:{bg:D.green,fg:D.background},warning:{bg:D.yellow,fg:D.background},danger:{bg:D.red,fg:"#ffffff"}},page:{default:{bg:D.background,titleFg:D.foreground,subtitleFg:D.comment,border:D.comment},primary:{bg:D.background,titleFg:D.purple,subtitleFg:D.comment,border:D.purple},secondary:{bg:D.background,titleFg:"#E8E8E2",subtitleFg:D.comment,border:D.currentLine}},appshell:{bg:"#21222C",dividerFg:D.comment,sidebarBg:D.background,asideBg:D.background},collapsible:{default:{headerBg:D.currentLine,headerFg:D.foreground,contentBg:D.background,border:D.comment,iconFg:D.comment},primary:{headerBg:"#4D4F5F",headerFg:D.purple,contentBg:D.background,border:D.purple,iconFg:D.purple},secondary:{headerBg:"#4D4F5F",headerFg:D.foreground,contentBg:D.currentLine,border:"#565869",iconFg:D.comment}},commandPalette:{bg:D.currentLine,border:D.comment,inputBg:D.background,inputFg:D.foreground,inputPlaceholder:D.comment,itemFg:D.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:D.foreground,highlightFg:D.purple,categoryFg:D.comment},splitPanel:{bg:D.background,dividerBg:D.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:D.purple,border:D.comment,titleFg:D.comment},toast:{success:{bg:wo.success[900],fg:wo.success[100],border:D.green,iconFg:D.green},error:{bg:wo.danger[900],fg:wo.danger[100],border:D.red,iconFg:D.red},warning:{bg:wo.warning[900],fg:wo.warning[100],border:D.yellow,iconFg:D.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:D.cyan,iconFg:D.cyan}},window:{default:{bg:D.background,fg:D.foreground,titleBarBg:D.currentLine,titleBarFg:D.foreground,border:D.comment,buttonFg:D.comment,closeFg:D.red},primary:{bg:D.background,fg:D.foreground,titleBarBg:D.purple,titleBarFg:D.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:D.foreground},success:{bg:D.background,fg:D.foreground,titleBarBg:D.green,titleBarFg:D.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:D.background},warning:{bg:D.background,fg:D.foreground,titleBarBg:D.yellow,titleBarFg:D.background,border:D.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:D.background},danger:{bg:D.background,fg:D.foreground,titleBarBg:D.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={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"},_o={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:S.nord8,400:S.nord8,500:S.nord8,600:S.nord9,700:S.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:S.nord14,500:S.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:S.nord13,400:S.nord13,500:S.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.nord11,500:S.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.nord6,100:S.nord5,200:S.nord4,300:"#A3ADB8",400:"#7A8694",500:S.nord3,600:S.nord2,700:S.nord1,800:S.nord0,900:"#242933"}},hv={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:_o,background:{lowest:"#242933",base:S.nord0,subtle:S.nord1,surface:S.nord2,raised:S.nord3,elevated:"#5E6779",popover:S.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.nord6,secondary:S.nord5,muted:S.nord4,disabled:S.nord3,inverse:{base:S.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:S.nord14,warning:S.nord13,critical:S.nord11,info:S.nord9,highlight:S.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.nord8,ring:{color:S.nord8,width:2}},disabled:{opacity:.4,bg:S.nord1,fg:S.nord3},selected:{bg:S.nord1,fg:S.nord6}},borders:{default:S.nord3,subtle:S.nord1,strong:S.nord4,accent:S.nord8,danger:S.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.nord8,fg:S.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:S.nord2,fg:S.nord6,hoverBg:S.nord3,activeBg:S.nord1,border:"transparent"},outline:{bg:"transparent",fg:S.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:S.nord8},ghost:{bg:"transparent",fg:S.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.nord1,headerBg:S.nord2,footerBg:S.nord2,border:S.nord3},menu:{bg:S.nord1,border:S.nord3,item:{fg:S.nord6,hoverBg:S.nord2,activeBg:S.nord3,selectedBg:S.nord2,disabledFg:S.nord3}},tabs:{bg:S.nord1,border:S.nord3,tab:{fg:S.nord4,activeFg:S.nord6,activeBg:S.nord0,hoverFg:S.nord5,indicator:S.nord8}},dropdown:{bg:S.nord1,border:S.nord3,item:{fg:S.nord6,hoverBg:S.nord2,selectedBg:S.nord3}},input:{bg:S.nord1,fg:S.nord6,placeholder:S.nord4,border:S.nord3,focusBorder:S.nord8,invalidBorder:S.nord11},checkbox:{bg:S.nord1,border:S.nord3,checkColor:S.nord0,checkedBg:S.nord8},radio:{bg:S.nord1,dotColor:S.nord8,border:S.nord3,checkedBorder:S.nord8},tooltip:{bg:S.nord2,fg:S.nord6},modal:{bg:S.nord1,border:S.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.nord3,fg:S.nord6},success:{bg:S.nord14,fg:S.nord0},warning:{bg:S.nord13,fg:S.nord0},danger:{bg:S.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.nord1,selectedBg:S.nord2,fg:S.nord6}},header:{default:{bg:S.nord1,fg:S.nord6,titleFg:S.nord6,subtitleFg:S.nord4,border:S.nord3},primary:{bg:S.nord8,fg:S.nord0,titleFg:S.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:S.nord9},secondary:{bg:S.nord2,fg:S.nord6,titleFg:S.nord6,subtitleFg:S.nord4,border:S.nord3},success:{bg:S.nord14,fg:S.nord0,titleFg:S.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:S.nord13,fg:S.nord0,titleFg:S.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:S.nord12},danger:{bg:S.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.nord1,fg:S.nord4},primary:{bg:S.nord8,fg:S.nord0},info:{bg:S.nord9,fg:"#ffffff"},success:{bg:S.nord14,fg:S.nord0},warning:{bg:S.nord13,fg:S.nord0},danger:{bg:S.nord11,fg:"#ffffff"}},page:{default:{bg:S.nord0,titleFg:S.nord6,subtitleFg:S.nord4,border:S.nord3},primary:{bg:S.nord0,titleFg:S.nord8,subtitleFg:S.nord4,border:S.nord8},secondary:{bg:S.nord0,titleFg:S.nord5,subtitleFg:S.nord4,border:S.nord1}},appshell:{bg:"#242933",dividerFg:S.nord3,sidebarBg:S.nord0,asideBg:S.nord0},collapsible:{default:{headerBg:S.nord1,headerFg:S.nord6,contentBg:S.nord0,border:S.nord3,iconFg:S.nord4},primary:{headerBg:S.nord2,headerFg:S.nord8,contentBg:S.nord0,border:S.nord8,iconFg:S.nord8},secondary:{headerBg:S.nord2,headerFg:S.nord6,contentBg:S.nord1,border:S.nord3,iconFg:S.nord4}},commandPalette:{bg:S.nord1,border:S.nord3,inputBg:S.nord0,inputFg:S.nord6,inputPlaceholder:S.nord4,itemFg:S.nord6,itemHoverBg:S.nord2,itemSelectedBg:S.nord3,itemSelectedFg:S.nord6,highlightFg:S.nord8,categoryFg:S.nord4},splitPanel:{bg:S.nord0,dividerBg:S.nord3,dividerHoverBg:S.nord2,dividerActiveBg:S.nord8,border:S.nord3,titleFg:S.nord4},toast:{success:{bg:_o.success[900],fg:_o.success[100],border:S.nord14,iconFg:S.nord14},error:{bg:_o.danger[900],fg:_o.danger[100],border:S.nord11,iconFg:S.nord11},warning:{bg:_o.warning[900],fg:_o.warning[100],border:S.nord13,iconFg:S.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.nord9,iconFg:S.nord9}},window:{default:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord1,titleBarFg:S.nord6,border:S.nord3,buttonFg:S.nord4,closeFg:S.nord11},primary:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord8,titleBarFg:S.nord0,border:S.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:S.nord0},success:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord14,titleBarFg:S.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:S.nord0},warning:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord13,titleBarFg:S.nord0,border:S.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:S.nord0},danger:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},xo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:P.blue,500:P.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:P.green,500:P.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:P.yellow,500:P.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:P.red,500:P.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:P.base3,100:P.base2,200:P.base1,300:P.base0,400:P.base00,500:P.base01,600:"#4A5A60",700:P.base02,800:P.base03,900:"#001E26"}},yv={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:xo,background:{lowest:"#001E26",base:P.base03,subtle:P.base02,surface:"#094652",raised:"#0B5A66",elevated:P.base01,popover:P.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:P.base0,secondary:P.base1,muted:P.base00,disabled:P.base01,inverse:{base:P.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:P.blue,ring:{color:P.blue,width:2}},disabled:{opacity:.4,bg:P.base02,fg:P.base01},selected:{bg:P.base02,fg:P.base1}},borders:{default:P.base01,subtle:P.base02,strong:P.base0,accent:P.blue,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:P.blue,fg:P.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:P.base02,fg:P.base1,hoverBg:"#094652",activeBg:P.base03,border:"transparent"},outline:{bg:"transparent",fg:P.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:P.blue},ghost:{bg:"transparent",fg:P.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:P.base02,headerBg:"#094652",footerBg:"#094652",border:P.base01},menu:{bg:P.base02,border:P.base01,item:{fg:P.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:P.base01}},tabs:{bg:P.base02,border:P.base01,tab:{fg:P.base00,activeFg:P.base1,activeBg:P.base03,hoverFg:P.base0,indicator:P.blue}},dropdown:{bg:P.base02,border:P.base01,item:{fg:P.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:P.base02,fg:P.base0,placeholder:P.base00,border:P.base01,focusBorder:P.blue,invalidBorder:P.red},checkbox:{bg:P.base02,border:P.base01,checkColor:P.base3,checkedBg:P.blue},radio:{bg:P.base02,dotColor:P.blue,border:P.base01,checkedBorder:P.blue},tooltip:{bg:"#094652",fg:P.base1},modal:{bg:P.base02,border:P.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:P.base01,fg:P.base1},success:{bg:P.green,fg:P.base3},warning:{bg:P.yellow,fg:P.base03},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.base02,selectedBg:"#094652",fg:P.base0}},header:{default:{bg:P.base02,fg:P.base0,titleFg:P.base1,subtitleFg:P.base00,border:P.base01},primary:{bg:P.blue,fg:P.base3,titleFg:P.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:P.base0,titleFg:P.base1,subtitleFg:P.base00,border:"#0B5A66"},success:{bg:P.green,fg:P.base3,titleFg:P.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:P.yellow,fg:P.base03,titleFg:P.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.base02,fg:P.base00},primary:{bg:P.blue,fg:P.base3},info:{bg:P.cyan,fg:P.base03},success:{bg:P.green,fg:P.base3},warning:{bg:P.yellow,fg:P.base03},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.base03,titleFg:P.base1,subtitleFg:P.base00,border:P.base01},primary:{bg:P.base03,titleFg:P.blue,subtitleFg:P.base00,border:P.blue},secondary:{bg:P.base03,titleFg:P.base0,subtitleFg:P.base00,border:P.base02}},appshell:{bg:"#001E26",dividerFg:P.base01,sidebarBg:P.base03,asideBg:P.base03},collapsible:{default:{headerBg:P.base02,headerFg:P.base1,contentBg:P.base03,border:P.base01,iconFg:P.base00},primary:{headerBg:"#094652",headerFg:P.blue,contentBg:P.base03,border:P.blue,iconFg:P.blue},secondary:{headerBg:"#094652",headerFg:P.base1,contentBg:P.base02,border:"#0B5A66",iconFg:P.base00}},commandPalette:{bg:P.base02,border:P.base01,inputBg:P.base03,inputFg:P.base0,inputPlaceholder:P.base00,itemFg:P.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:P.base1,highlightFg:P.blue,categoryFg:P.base00},splitPanel:{bg:P.base03,dividerBg:P.base01,dividerHoverBg:"#094652",dividerActiveBg:P.blue,border:P.base01,titleFg:P.base00},toast:{success:{bg:xo.success[900],fg:xo.success[100],border:P.green,iconFg:P.green},error:{bg:xo.danger[900],fg:xo.danger[100],border:P.red,iconFg:P.red},warning:{bg:xo.warning[900],fg:xo.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.base03,fg:P.base0,titleBarBg:P.base02,titleBarFg:P.base1,border:P.base01,buttonFg:P.base00,closeFg:P.red},primary:{bg:P.base03,fg:P.base0,titleBarBg:P.blue,titleBarFg:P.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:P.base3},success:{bg:P.base03,fg:P.base0,titleBarBg:P.green,titleBarFg:P.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:P.base3},warning:{bg:P.base03,fg:P.base0,titleBarBg:P.yellow,titleBarFg:P.base03,border:P.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:P.base03},danger:{bg:P.base03,fg:P.base0,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},Eo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:x.green,500:x.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50: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:x.green,500:x.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:x.yellow,500:x.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:x.red,500:x.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:x.fg0,100:x.fg1,200:x.fg2,300:x.fg3,400:x.fg4,500:x.gray,600:x.bg4,700:x.bg3,800:x.bg2,900:x.bg1}},bv={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:Eo,background:{lowest:x.bg0_h,base:x.bg0,subtle:x.bg1,surface:x.bg2,raised:x.bg3,elevated:x.bg4,popover:x.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.fg1,secondary:x.fg2,muted:x.gray,disabled:x.bg3,inverse:{base:x.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.blue,highlight:x.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.green,ring:{color:x.green,width:2}},disabled:{opacity:.4,bg:x.bg1,fg:x.bg3},selected:{bg:x.bg2,fg:x.fg1}},borders:{default:x.bg3,subtle:x.bg2,strong:x.gray,accent:x.green,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.green,fg:x.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:x.bg2,fg:x.fg1,hoverBg:x.bg3,activeBg:x.bg1,border:"transparent"},outline:{bg:"transparent",fg:x.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:x.green},ghost:{bg:"transparent",fg:x.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.bg1,headerBg:x.bg2,footerBg:x.bg2,border:x.bg3},menu:{bg:x.bg1,border:x.bg3,item:{fg:x.fg1,hoverBg:x.bg2,activeBg:x.bg3,selectedBg:x.bg2,disabledFg:x.bg3}},tabs:{bg:x.bg1,border:x.bg3,tab:{fg:x.gray,activeFg:x.fg1,activeBg:x.bg0,hoverFg:x.fg2,indicator:x.green}},dropdown:{bg:x.bg1,border:x.bg3,item:{fg:x.fg1,hoverBg:x.bg2,selectedBg:x.bg3}},input:{bg:x.bg1,fg:x.fg1,placeholder:x.gray,border:x.bg3,focusBorder:x.green,invalidBorder:x.red},checkbox:{bg:x.bg1,border:x.bg3,checkColor:x.bg0,checkedBg:x.green},radio:{bg:x.bg1,dotColor:x.green,border:x.bg3,checkedBorder:x.green},tooltip:{bg:x.bg2,fg:x.fg1},modal:{bg:x.bg1,border:x.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.bg3,fg:x.fg1},success:{bg:x.green,fg:x.bg0},warning:{bg:x.yellow,fg:x.bg0},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.bg1,selectedBg:x.bg2,fg:x.fg1}},header:{default:{bg:x.bg1,fg:x.fg1,titleFg:x.fg1,subtitleFg:x.gray,border:x.bg3},primary:{bg:x.green,fg:x.bg0,titleFg:x.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:x.bg2,fg:x.fg1,titleFg:x.fg1,subtitleFg:x.gray,border:x.bg3},success:{bg:x.green,fg:x.bg0,titleFg:x.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:x.yellow,fg:x.bg0,titleFg:x.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:x.orange},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:x.bg1,fg:x.gray},primary:{bg:x.green,fg:x.bg0},info:{bg:x.blue,fg:x.bg0},success:{bg:x.green,fg:x.bg0},warning:{bg:x.yellow,fg:x.bg0},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.bg0,titleFg:x.fg1,subtitleFg:x.gray,border:x.bg3},primary:{bg:x.bg0,titleFg:x.green,subtitleFg:x.gray,border:x.green},secondary:{bg:x.bg0,titleFg:x.fg2,subtitleFg:x.gray,border:x.bg2}},appshell:{bg:x.bg0_h,dividerFg:x.bg3,sidebarBg:x.bg0,asideBg:x.bg0},collapsible:{default:{headerBg:x.bg1,headerFg:x.fg1,contentBg:x.bg0,border:x.bg3,iconFg:x.gray},primary:{headerBg:x.bg2,headerFg:x.green,contentBg:x.bg0,border:x.green,iconFg:x.green},secondary:{headerBg:x.bg2,headerFg:x.fg1,contentBg:x.bg1,border:x.bg3,iconFg:x.gray}},commandPalette:{bg:x.bg1,border:x.bg3,inputBg:x.bg0,inputFg:x.fg1,inputPlaceholder:x.gray,itemFg:x.fg1,itemHoverBg:x.bg2,itemSelectedBg:x.bg3,itemSelectedFg:x.fg1,highlightFg:x.green,categoryFg:x.gray},splitPanel:{bg:x.bg0,dividerBg:x.bg3,dividerHoverBg:x.bg2,dividerActiveBg:x.green,border:x.bg3,titleFg:x.gray},toast:{success:{bg:Eo.success[900],fg:Eo.success[100],border:x.green,iconFg:x.green},error:{bg:Eo.danger[900],fg:Eo.danger[100],border:x.red,iconFg:x.red},warning:{bg:Eo.warning[900],fg:Eo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.blue,iconFg:x.blue}},window:{default:{bg:x.bg0,fg:x.fg1,titleBarBg:x.bg1,titleBarFg:x.fg1,border:x.bg3,buttonFg:x.gray,closeFg:x.red},primary:{bg:x.bg0,fg:x.fg1,titleBarBg:x.green,titleBarFg:x.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:x.bg0},success:{bg:x.bg0,fg:x.fg1,titleBarBg:x.green,titleBarFg:x.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:x.bg0},warning:{bg:x.bg0,fg:x.fg1,titleBarBg:x.yellow,titleBarFg:x.bg0,border:x.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:x.bg0},danger:{bg:x.bg0,fg:x.fg1,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var T={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"},vo={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:T.blue,500:T.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:T.green,500:T.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:T.yellow,500:T.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:T.red,500:T.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},kv={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:vo,background:{lowest:T.bgDark,base:T.bg,subtle:T.bgHighlight,surface:T.bgPopup,raised:T.dark3,elevated:T.comment,popover:T.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:T.fg,secondary:T.fgDark,muted:T.comment,disabled:T.dark3,inverse:{base:T.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:T.green,warning:T.yellow,critical:T.red,info:T.cyan,highlight:T.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:T.blue,ring:{color:T.blue,width:2}},disabled:{opacity:.4,bg:T.bgHighlight,fg:T.dark3},selected:{bg:T.bgHighlight,fg:T.fg}},borders:{default:T.dark3,subtle:T.bgHighlight,strong:T.comment,accent:T.blue,danger:T.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:T.blue,fg:T.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:T.bgHighlight,fg:T.fg,hoverBg:T.bgPopup,activeBg:T.dark3,border:"transparent"},outline:{bg:"transparent",fg:T.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:T.blue},ghost:{bg:"transparent",fg:T.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:T.bgHighlight,headerBg:T.bgPopup,footerBg:T.bgPopup,border:T.dark3},menu:{bg:T.bgHighlight,border:T.dark3,item:{fg:T.fg,hoverBg:T.bgPopup,activeBg:T.dark3,selectedBg:T.bgPopup,disabledFg:T.dark3}},tabs:{bg:T.bgHighlight,border:T.dark3,tab:{fg:T.comment,activeFg:T.fg,activeBg:T.bg,hoverFg:T.fgDark,indicator:T.blue}},dropdown:{bg:T.bgHighlight,border:T.dark3,item:{fg:T.fg,hoverBg:T.bgPopup,selectedBg:T.dark3}},input:{bg:T.bgHighlight,fg:T.fg,placeholder:T.comment,border:T.dark3,focusBorder:T.blue,invalidBorder:T.red},checkbox:{bg:T.bgHighlight,border:T.dark3,checkColor:T.bg,checkedBg:T.blue},radio:{bg:T.bgHighlight,dotColor:T.blue,border:T.dark3,checkedBorder:T.blue},tooltip:{bg:T.bgPopup,fg:T.fg},modal:{bg:T.bgHighlight,border:T.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:T.dark3,fg:T.fg},success:{bg:T.green,fg:T.bg},warning:{bg:T.yellow,fg:T.bg},danger:{bg:T.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:T.bgHighlight,selectedBg:T.bgPopup,fg:T.fg}},header:{default:{bg:T.bgHighlight,fg:T.fg,titleFg:T.fg,subtitleFg:T.comment,border:T.dark3},primary:{bg:T.blue,fg:T.bg,titleFg:T.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:T.bgPopup,fg:T.fg,titleFg:T.fg,subtitleFg:T.comment,border:T.dark3},success:{bg:T.green,fg:T.bg,titleFg:T.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:T.yellow,fg:T.bg,titleFg:T.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:T.orange},danger:{bg:T.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:T.bgHighlight,fg:T.comment},primary:{bg:T.blue,fg:T.bg},info:{bg:T.cyan,fg:T.bg},success:{bg:T.green,fg:T.bg},warning:{bg:T.yellow,fg:T.bg},danger:{bg:T.red,fg:"#ffffff"}},page:{default:{bg:T.bg,titleFg:T.fg,subtitleFg:T.comment,border:T.dark3},primary:{bg:T.bg,titleFg:T.blue,subtitleFg:T.comment,border:T.blue},secondary:{bg:T.bg,titleFg:T.fgDark,subtitleFg:T.comment,border:T.bgHighlight}},appshell:{bg:T.bgDark,dividerFg:T.dark3,sidebarBg:T.bg,asideBg:T.bg},collapsible:{default:{headerBg:T.bgHighlight,headerFg:T.fg,contentBg:T.bg,border:T.dark3,iconFg:T.comment},primary:{headerBg:T.bgPopup,headerFg:T.blue,contentBg:T.bg,border:T.blue,iconFg:T.blue},secondary:{headerBg:T.bgPopup,headerFg:T.fg,contentBg:T.bgHighlight,border:T.dark3,iconFg:T.comment}},commandPalette:{bg:T.bgHighlight,border:T.dark3,inputBg:T.bg,inputFg:T.fg,inputPlaceholder:T.comment,itemFg:T.fg,itemHoverBg:T.bgPopup,itemSelectedBg:T.dark3,itemSelectedFg:T.fg,highlightFg:T.blue,categoryFg:T.comment},splitPanel:{bg:T.bg,dividerBg:T.dark3,dividerHoverBg:T.bgPopup,dividerActiveBg:T.blue,border:T.dark3,titleFg:T.comment},toast:{success:{bg:vo.success[900],fg:vo.success[100],border:T.green,iconFg:T.green},error:{bg:vo.danger[900],fg:vo.danger[100],border:T.red,iconFg:T.red},warning:{bg:vo.warning[900],fg:vo.warning[100],border:T.yellow,iconFg:T.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:T.cyan,iconFg:T.cyan}},window:{default:{bg:T.bg,fg:T.fg,titleBarBg:T.bgHighlight,titleBarFg:T.fg,border:T.dark3,buttonFg:T.comment,closeFg:T.red},primary:{bg:T.bg,fg:T.fg,titleBarBg:T.blue,titleBarFg:T.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:T.bg},success:{bg:T.bg,fg:T.fg,titleBarBg:T.green,titleBarFg:T.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:T.bg},warning:{bg:T.bg,fg:T.fg,titleBarBg:T.yellow,titleBarFg:T.bg,border:T.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:T.bg},danger:{bg:T.bg,fg:T.fg,titleBarBg:T.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},So={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:E.mauve,500:E.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:E.green,500:E.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:E.yellow,500:E.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:E.red,500:E.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:E.text,100:E.subtext1,200:E.subtext0,300:E.overlay2,400:E.overlay1,500:E.overlay0,600:E.surface2,700:E.surface1,800:E.surface0,900:E.base}},Rv={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:So,background:{lowest:E.crust,base:E.base,subtle:E.surface0,surface:E.surface1,raised:E.surface2,elevated:E.overlay0,popover:E.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:E.text,secondary:E.subtext1,muted:E.overlay0,disabled:E.surface2,inverse:{base:E.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:E.green,warning:E.yellow,critical:E.red,info:E.sky,highlight:E.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.mauve,ring:{color:E.mauve,width:2}},disabled:{opacity:.4,bg:E.surface0,fg:E.surface2},selected:{bg:E.surface0,fg:E.text}},borders:{default:E.overlay0,subtle:E.surface1,strong:E.subtext1,accent:E.mauve,danger:E.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:E.mauve,fg:E.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:E.surface0,fg:E.text,hoverBg:E.surface1,activeBg:E.surface2,border:"transparent"},outline:{bg:"transparent",fg:E.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:E.mauve},ghost:{bg:"transparent",fg:E.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.surface0,headerBg:E.surface1,footerBg:E.surface1,border:E.overlay0},menu:{bg:E.surface0,border:E.overlay0,item:{fg:E.text,hoverBg:E.surface1,activeBg:E.surface2,selectedBg:E.surface1,disabledFg:E.surface2}},tabs:{bg:E.surface0,border:E.overlay0,tab:{fg:E.overlay0,activeFg:E.text,activeBg:E.base,hoverFg:E.subtext1,indicator:E.mauve}},dropdown:{bg:E.surface0,border:E.overlay0,item:{fg:E.text,hoverBg:E.surface1,selectedBg:E.surface2}},input:{bg:E.surface0,fg:E.text,placeholder:E.overlay0,border:E.overlay0,focusBorder:E.mauve,invalidBorder:E.red},checkbox:{bg:E.surface0,border:E.overlay0,checkColor:E.base,checkedBg:E.mauve},radio:{bg:E.surface0,dotColor:E.mauve,border:E.overlay0,checkedBorder:E.mauve},tooltip:{bg:E.surface1,fg:E.text},modal:{bg:E.surface0,border:E.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:E.surface2,fg:E.text},success:{bg:E.green,fg:E.base},warning:{bg:E.yellow,fg:E.base},danger:{bg:E.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.surface0,selectedBg:E.surface1,fg:E.text}},header:{default:{bg:E.surface0,fg:E.text,titleFg:E.text,subtitleFg:E.overlay0,border:E.overlay0},primary:{bg:E.mauve,fg:E.base,titleFg:E.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:E.surface1,fg:E.text,titleFg:E.text,subtitleFg:E.overlay0,border:E.surface2},success:{bg:E.green,fg:E.base,titleFg:E.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:E.yellow,fg:E.base,titleFg:E.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:E.peach},danger:{bg:E.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:E.surface0,fg:E.overlay0},primary:{bg:E.mauve,fg:E.base},info:{bg:E.sky,fg:E.base},success:{bg:E.green,fg:E.base},warning:{bg:E.yellow,fg:E.base},danger:{bg:E.red,fg:"#ffffff"}},page:{default:{bg:E.base,titleFg:E.text,subtitleFg:E.overlay0,border:E.overlay0},primary:{bg:E.base,titleFg:E.mauve,subtitleFg:E.overlay0,border:E.mauve},secondary:{bg:E.base,titleFg:E.subtext1,subtitleFg:E.overlay0,border:E.surface0}},appshell:{bg:E.crust,dividerFg:E.overlay0,sidebarBg:E.base,asideBg:E.base},collapsible:{default:{headerBg:E.surface0,headerFg:E.text,contentBg:E.base,border:E.overlay0,iconFg:E.overlay0},primary:{headerBg:E.surface1,headerFg:E.mauve,contentBg:E.base,border:E.mauve,iconFg:E.mauve},secondary:{headerBg:E.surface1,headerFg:E.text,contentBg:E.surface0,border:E.surface2,iconFg:E.overlay0}},commandPalette:{bg:E.surface0,border:E.overlay0,inputBg:E.base,inputFg:E.text,inputPlaceholder:E.overlay0,itemFg:E.text,itemHoverBg:E.surface1,itemSelectedBg:E.surface2,itemSelectedFg:E.text,highlightFg:E.mauve,categoryFg:E.overlay0},splitPanel:{bg:E.base,dividerBg:E.overlay0,dividerHoverBg:E.surface1,dividerActiveBg:E.mauve,border:E.overlay0,titleFg:E.overlay0},toast:{success:{bg:So.success[900],fg:So.success[100],border:E.green,iconFg:E.green},error:{bg:So.danger[900],fg:So.danger[100],border:E.red,iconFg:E.red},warning:{bg:So.warning[900],fg:So.warning[100],border:E.yellow,iconFg:E.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.sky,iconFg:E.sky}},window:{default:{bg:E.base,fg:E.text,titleBarBg:E.surface0,titleBarFg:E.text,border:E.overlay0,buttonFg:E.overlay0,closeFg:E.red},primary:{bg:E.base,fg:E.text,titleBarBg:E.mauve,titleBarFg:E.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:E.base},success:{bg:E.base,fg:E.text,titleBarBg:E.green,titleBarFg:E.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:E.base},warning:{bg:E.base,fg:E.text,titleBarBg:E.yellow,titleBarFg:E.base,border:E.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:E.base},danger:{bg:E.base,fg:E.text,titleBarBg:E.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var To={primary:{50:ee[50],100:ee[100],200:ee[200],300:ee[300],400:ee[400],500:ee[500],600:ee[600],700:ee[700],800:ee[800],900:ee[900]},secondary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},success:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},neutral:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]}},wv={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:To,background:{lowest:"#000000",base:"#000000",subtle:h[950],surface:h[900],raised:h[800],elevated:h[700],popover:h[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:h[100],muted:h[300],disabled:h[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:ge[400],warning:fe[400],critical:pe[400],info:tt[400],highlight:ee[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:ee[400],ring:{color:ee[400],width:3}},disabled:{opacity:.5,bg:h[900],fg:h[500]},selected:{bg:ee[800],fg:"#ffffff"}},borders:{default:h[500],subtle:h[700],strong:h[300],accent:ee[400],danger:pe[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:ee[500],fg:"#ffffff",hoverBg:ee[400],activeBg:ee[600],border:ee[300]},secondary:{bg:h[800],fg:"#ffffff",hoverBg:h[700],activeBg:h[900],border:h[500]},outline:{bg:"transparent",fg:ee[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:ee[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:h[950],headerBg:h[900],footerBg:h[900],border:h[500]},menu:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],activeBg:ee[800],selectedBg:ee[900],disabledFg:h[500]}},tabs:{bg:h[950],border:h[500],tab:{fg:h[300],activeFg:"#ffffff",activeBg:h[800],hoverFg:h[100],indicator:ee[400]}},dropdown:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],selectedBg:ee[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:h[400],border:h[500],focusBorder:ee[400],invalidBorder:pe[400]},checkbox:{bg:"#000000",border:h[400],checkColor:"#000000",checkedBg:ee[400]},radio:{bg:"#000000",dotColor:ee[400],border:h[400],checkedBorder:ee[400]},tooltip:{bg:h[800],fg:"#ffffff"},modal:{bg:h[950],border:h[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:h[700],fg:"#ffffff"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:pe[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:h[900],selectedBg:ee[800],fg:"#ffffff"}},header:{default:{bg:h[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:ee[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee[300]},secondary:{bg:h[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},success:{bg:ge[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[300]},warning:{bg:fe[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:fe[600]},danger:{bg:pe[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:pe[300]}},statusbar:{default:{bg:h[950],fg:h[300]},primary:{bg:ee[500],fg:"#ffffff"},info:{bg:tt[500],fg:"#000000"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:pe[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:"#000000",titleFg:ee[400],subtitleFg:h[300],border:ee[400]},secondary:{bg:"#000000",titleFg:h[100],subtitleFg:h[400],border:h[700]}},appshell:{bg:"#000000",dividerFg:h[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:h[950],headerFg:"#ffffff",contentBg:"#000000",border:h[500],iconFg:h[300]},primary:{headerBg:h[900],headerFg:ee[400],contentBg:"#000000",border:ee[400],iconFg:ee[400]},secondary:{headerBg:h[900],headerFg:"#ffffff",contentBg:h[950],border:h[500],iconFg:h[300]}},commandPalette:{bg:h[950],border:h[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:h[400],itemFg:"#ffffff",itemHoverBg:h[800],itemSelectedBg:ee[800],itemSelectedFg:"#ffffff",highlightFg:ee[400],categoryFg:h[400]},splitPanel:{bg:"#000000",dividerBg:h[500],dividerHoverBg:h[400],dividerActiveBg:ee[400],border:h[500],titleFg:h[300]},toast:{success:{bg:To.success[900],fg:To.success[100],border:ge[400],iconFg:ge[400]},error:{bg:To.danger[900],fg:To.danger[100],border:pe[400],iconFg:pe[400]},warning:{bg:To.warning[900],fg:To.warning[100],border:fe[400],iconFg:fe[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:tt[400],iconFg:tt[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:h[950],titleBarFg:"#ffffff",border:h[500],buttonFg:h[300],closeFg:pe[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:ee[500],titleBarFg:"#ffffff",border:ee[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[500],titleBarFg:"#000000",border:ge[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:fe[400],titleBarFg:"#000000",border:fe[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:pe[500],titleBarFg:"#ffffff",border:pe[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var e2={primary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},secondary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},success:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},warning:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},danger:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},neutral:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]}},_v={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:e2,background:{lowest:h[950],base:h[900],subtle:h[800],surface:h[700],raised:h[600],elevated:h[500],popover:h[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:h[50],secondary:h[200],muted:h[400],disabled:h[500],inverse:{base:h[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:h[300],warning:h[400],critical:h[200],info:h[300],highlight:h[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:h[400],ring:{color:h[400],width:2}},disabled:{opacity:.4,bg:h[800],fg:h[500]},selected:{bg:h[700],fg:h[50]}},borders:{default:h[600],subtle:h[700],strong:h[400],accent:h[400],danger:h[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:h[300],fg:h[900],hoverBg:h[200],activeBg:h[400],border:"transparent"},secondary:{bg:h[700],fg:h[50],hoverBg:h[600],activeBg:h[800],border:"transparent"},outline:{bg:"transparent",fg:h[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:h[400]},ghost:{bg:"transparent",fg:h[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:h[800],headerBg:h[700],footerBg:h[700],border:h[600]},menu:{bg:h[800],border:h[600],item:{fg:h[50],hoverBg:h[700],activeBg:h[600],selectedBg:h[700],disabledFg:h[500]}},tabs:{bg:h[800],border:h[600],tab:{fg:h[400],activeFg:h[50],activeBg:h[700],hoverFg:h[200],indicator:h[300]}},dropdown:{bg:h[800],border:h[600],item:{fg:h[50],hoverBg:h[700],selectedBg:h[600]}},input:{bg:h[800],fg:h[50],placeholder:h[500],border:h[600],focusBorder:h[400],invalidBorder:h[300]},checkbox:{bg:h[800],border:h[500],checkColor:h[900],checkedBg:h[300]},radio:{bg:h[800],dotColor:h[300],border:h[500],checkedBorder:h[300]},tooltip:{bg:h[700],fg:h[50]},modal:{bg:h[800],border:h[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:h[700],fg:h[50]},success:{bg:h[400],fg:h[900]},warning:{bg:h[500],fg:h[900]},danger:{bg:h[300],fg:h[900]}},list:{item:{bg:"transparent",hoverBg:h[800],selectedBg:h[700],fg:h[50]}},header:{default:{bg:h[800],fg:h[50],titleFg:h[50],subtitleFg:h[400],border:h[600]},primary:{bg:h[300],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[400]},secondary:{bg:h[700],fg:h[50],titleFg:h[50],subtitleFg:h[400],border:h[600]},success:{bg:h[400],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[500]},warning:{bg:h[500],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[600]},danger:{bg:h[300],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[400]}},statusbar:{default:{bg:h[800],fg:h[400]},primary:{bg:h[300],fg:h[900]},info:{bg:h[400],fg:h[900]},success:{bg:h[400],fg:h[900]},warning:{bg:h[500],fg:h[900]},danger:{bg:h[300],fg:h[900]}},page:{default:{bg:h[900],titleFg:h[50],subtitleFg:h[400],border:h[600]},primary:{bg:h[900],titleFg:h[200],subtitleFg:h[400],border:h[500]},secondary:{bg:h[900],titleFg:h[300],subtitleFg:h[500],border:h[700]}},appshell:{bg:h[950],dividerFg:h[600],sidebarBg:h[900],asideBg:h[900]},collapsible:{default:{headerBg:h[800],headerFg:h[50],contentBg:h[900],border:h[600],iconFg:h[400]},primary:{headerBg:h[700],headerFg:h[200],contentBg:h[900],border:h[500],iconFg:h[300]},secondary:{headerBg:h[700],headerFg:h[50],contentBg:h[800],border:h[600],iconFg:h[400]}},commandPalette:{bg:h[800],border:h[600],inputBg:h[900],inputFg:h[50],inputPlaceholder:h[500],itemFg:h[50],itemHoverBg:h[700],itemSelectedBg:h[600],itemSelectedFg:h[50],highlightFg:h[200],categoryFg:h[500]},splitPanel:{bg:h[900],dividerBg:h[600],dividerHoverBg:h[500],dividerActiveBg:h[300],border:h[600],titleFg:h[400]},toast:{success:{bg:h[800],fg:h[100],border:h[400],iconFg:h[300]},error:{bg:h[800],fg:h[100],border:h[300],iconFg:h[200]},warning:{bg:h[800],fg:h[100],border:h[500],iconFg:h[400]},info:{bg:h[800],fg:h[100],border:h[400],iconFg:h[300]}},window:{default:{bg:h[900],fg:h[50],titleBarBg:h[800],titleBarFg:h[50],border:h[600],buttonFg:h[400],closeFg:h[300]},primary:{bg:h[900],fg:h[50],titleBarBg:h[300],titleBarFg:h[900],border:h[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},success:{bg:h[900],fg:h[50],titleBarBg:h[400],titleBarFg:h[900],border:h[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},warning:{bg:h[900],fg:h[50],titleBarBg:h[500],titleBarFg:h[900],border:h[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},danger:{bg:h[900],fg:h[50],titleBarBg:h[300],titleBarFg:h[900],border:h[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]}}},borderRadius:"none"};var Ev=Symbol("tuiuiu.theme-runtime-state");function xv(){let[e,t]=Rr(Eg);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function t2(e){if(e.id===0)return xv();let t=Bt(Ev,xv),[r,n]=Rr(As(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function vv(){let e=Ge();return Fe(Ev,()=>t2(e),e)}function Sv(){return As(vv().currentTheme)}var r2={dark:Eg,light:fv,monokai:gv,dracula:mv,nord:hv,solarizedDark:yv,gruvbox:bv,tokyoNight:kv,catppuccin:Rv,highContrastDark:wv,monochrome:_v},uQ=Object.keys(r2);function n2(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 Et(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("#")&&n2(e)>.4?"black":"white"}function o2(e,t=500){let r=pv[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var s2={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=>Et(e.palette.primary[500]),"primary-foreground":e=>Et(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=>Et(e.palette.secondary[500]),"secondary-foreground":e=>Et(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=>Et(e.accents.positive),"success-foreground":e=>Et(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=>Et(e.accents.warning),"warning-foreground":e=>Et(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=>Et(e.accents.critical),"danger-foreground":e=>Et(e.accents.critical),errorForeground:e=>Et(e.accents.critical),destructiveForeground:e=>Et(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>Et(e.accents.info),"info-foreground":e=>Et(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>Et(e.palette.primary[400]),"accent-foreground":e=>Et(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function Tv(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=As(vv().currentTheme),r=s2[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return o2(o,i)}return e}var i2={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},Pv=Symbol("tuiuiu.perf-inspector-runtime-state");function a2(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function Av(e){let t=e.id===0?null:Bt(Pv,()=>Av(Nr())),r=a2(t?.config??i2);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function Ov(){let e=Ge();return Fe(Pv,()=>Av(e),e)}function l2(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function d2(e,t){let r=p2().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 c2(e,t){e.ring.length!==e.config.maxFrames&&d2(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 u2(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 Cv(e,t={}){let r=Ov(),n=l2(e),o=Math.max(0,n-r.config.budget.frameMs),s=u2(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;PE({totalMs:n,overBudget:o>0,phaseOverrunCount:i});let l={frameId:e.info.frameId,committedAt:e.info.committedAt,renderer:t.renderer??(e.metrics.phases.deltaRenderMs!==void 0?"delta":"ansi"),totalMs:n,budgetOverrunMs:o,phaseBudgetOverruns:s,overBudgetPhaseCount:i,slow:a,phases:{...e.metrics.phases},structural:{...e.metrics.structural}};if(!r.config.enabled)return null;if(c2(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function p2(){let e=Ov(),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 f2={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function Po(e,t){return BE(e,t,f2)}function vg(e){NE(e)}function Ln(e,t){HE(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),Cv(e,{renderer:t.renderer})}var g2=.4,m2=64;function Ao(){return typeof performance<"u"?performance.now():Date.now()}var Dv=new WeakMap;function h2(){let e=Sv(),t=Dv.get(e);return t||(t=new Map,Dv.set(e,t)),t}function y2(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&&b2(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 b2(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o of r)if(e[o]!==t[o])return!1;return!0}function Mv(e,t){return!(e.x+e.width<=t.x||t.x+t.width<=e.x||e.y+e.height<=t.y||t.y+t.height<=e.y)}function Lv(e,t,r){let n=Math.max(0,e.x),o=Math.max(0,e.y),s=Math.min(t,e.x+e.width),i=Math.min(r,e.y+e.height);return s<=n||i<=o?null:{x:n,y:o,width:s-n,height:i-o}}function k2(e,t,r){let n=e.map(s=>Lv(s,t,r)).filter(s=>s!==null).sort((s,i)=>s.y-i.y||s.x-i.x);if(n.length<=1)return n;let o=[];for(let s of n){let i=o[o.length-1];if(!i){o.push({...s});continue}if(!(Mv(i,s)||s.y<=i.y+i.height&&s.x<=i.x+i.width)){o.push({...s});continue}let l=Math.min(i.x,s.x),d=Math.min(i.y,s.y),c=Math.max(i.x+i.width,s.x+s.width),u=Math.max(i.y+i.height,s.y+s.height);i.x=l,i.y=d,i.width=c-l,i.height=u-d}return o}function R2(e,t,r){let n=new Map;for(let i of e){let a=Lv(i,t,r);if(!a)continue;let l=a.x,d=a.x+a.width,c=a.y+a.height;for(let u=a.y;u<c;u++){let p=n.get(u);p?p.push({x1:l,x2:d}):n.set(u,[{x1:l,x2:d}])}}let o=[...n.keys()].sort((i,a)=>i-a),s=[];for(let i of o){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1}),l=c}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1})}return s}function jv(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new Zi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,b=0;function y(F){L(t.columns||80,t.rows||24);let W=Po(F,{width:s,height:i});_(W)}function _(F){L(F.info.viewport.width,F.info.viewport.height),B(F),_s(F.layout),Li(),c=F.root,u=F}function w(){l=!0,c?y(c):u&&B(u)}function O(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Zi(s,i),l=!0}function v(){!r&&d&&(Cs(t),d=!1)}function A(){let F=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:b,totalCells:F,updatePercentage:F>0?b/F*100:0}}function $(F,W){s=F,i=W,a.resize(s,i),l=!0}function L(F,W){!r&&!d&&(Ds(t),d=!0),(F!==s||W!==i)&&$(F,W)}function B(F){let W=Ao(),U=0,oe=0,se=a.getFrontBuffer(),te=a.getBackBuffer();p++;let Q=s*i,le=O2(u,F),Se=Ur(),ve=lv(Se),ke=dv(Se),J=Re=>{let Pe=Ao();t.write(Re),U+=Ao()-Pe,oe+=typeof Re=="string"?Buffer.byteLength(Re):Re.byteLength};if(!l&&n&&u){let{renderRects:Re,diffRects:Pe}=_2(u.drawCommands,F.drawCommands,s,i);if(At(F,"dirtyRectCount",Re.length),At(F,"diffRectCount",Pe.length),Re.length===0){le&&J(le),b=0,At(F,"patchCount",0),At(F,"outputByteCount",oe),it(F,"outputWriteMs",U),it(F,"deltaRenderMs",Math.max(0,Ao()-W-U)),Ln(F,{renderer:"delta"});return}let Te=x2(Re);if(!(Re.length>m2||Te>Q*g2)){ve&&J(ve),E2(te,Re),S2(F.drawCommands,Re,te,F.reservedRegions);let Ae=se.diffRects(te,Pe);if(se.applyPatches(Ae),te.clearDamage(),b=Ae.length,At(F,"patchCount",Ae.length),o&&console.error(`[delta-render] dirty-rects: ${Re.length}, patches: ${Ae.length}, cells: ${Q}`),le&&J(le),Ae.length>0){let ye=Rg(Ae,s,!0);J(ye),g++}ke&&J(ke),At(F,"outputByteCount",oe),it(F,"outputWriteMs",U),it(F,"deltaRenderMs",Math.max(0,Ao()-W-U)),Ln(F,{renderer:"delta"});return}}ve&&J(ve),te.clear(),Nv(F.drawCommands,te,F.reservedRegions);let ce=a.swap();if(b=ce.length,At(F,"patchCount",ce.length),o&&console.error(`[delta-render] patches: ${ce.length}, cells: ${Q}`),l||!n||ce.length>Q*.5){let Re=Pd(a.getFrontBuffer());le&&J(le),J("\x1B[H"),J(Re),f++,l=!1,ke&&J(ke),At(F,"outputByteCount",oe),it(F,"outputWriteMs",U),it(F,"deltaRenderMs",Math.max(0,Ao()-W-U)),Ln(F,{renderer:"delta"});return}if(le&&J(le),ce.length>0){let Re=Rg(ce,s,!0);J(Re),g++}l=!1,ke&&J(ke),At(F,"outputByteCount",oe),it(F,"outputWriteMs",U),it(F,"deltaRenderMs",Math.max(0,Ao()-W-U)),Ln(F,{renderer:"delta"})}return{render:y,renderFrame:_,fullRedraw:w,clear:O,cleanup:v,stats:A,resize:$}}function w2(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=go(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,he(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 Sg(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:w2(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 _2(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&&y2(a,l)||(a&&o.push(Sg(a)),l&&o.push(Sg(l)))}return{renderRects:k2(o,r,n),diffRects:R2(o,r,n)}}function x2(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function E2(e,t){let r=qr();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 xr(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,he(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 v2(e,t,r,n,o,s,i,a,l={},d){for(let c=0;c<o;c++)(!d||r+c>=d.x&&r+c<d.x+d.width&&n>=d.y&&n<d.y+d.height)&&!$v(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function Bv(e,t,r){switch(e.type){case"box":T2(e,t,r);break;case"text":qv(e,t,r);break;case"terminal-image":P2(e,t);break}}function S2(e,t,r,n){for(let o of e){let s=Sg(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(Mv(s,i)){Bv(o,r,n);break}}}}function Nv(e,t,r){for(let n of e)Bv(n,t,r)}function Gv(e,t=new Kr(e.info.viewport.width,e.info.viewport.height)){return Nv(e.drawCommands,t,e.reservedRegions),t}function T2(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:b,clip:y}=e,_=a?Oo(a):void 0,w=c?Oo(c):void 0,O=f?Oo(f):w;if(_||l!==" "){let v=d&&d!=="none"?1:0,A=n+v,$=o+v,L=Math.max(0,s-v*2),B=Math.max(0,i-v*2);for(let F=0;F<B;F++)v2(t,r,A,$+F,L,l,void 0,_,{},y)}if(d&&d!=="none"){let v=wg[d]??wg.single,A={},$=u?.top!==!1,L=u?.bottom!==!1,B=u?.left!==!1,F=u?.right!==!1;if($){let W=B?v.topLeft:v.top;xr(t,r,n,o,W,w,void 0,A,y);for(let U=1;U<s-1;U++)xr(t,r,n+U,o,v.top,w,void 0,A,y);if(s>1){let U=F?v.topRight:v.top;xr(t,r,n+s-1,o,U,w,void 0,A,y)}if(p&&s>4){let U=s-4,se=` ${sn(nx(p),U,{truncationCharacter:""})} `,te=he(se),Q=g??"center",le=Q==="left"?n+1:Q==="right"?n+Math.max(1,s-1-te):n+Math.max(1,Math.floor((s-te)/2)),Se=0,ve=le;for(;Se<se.length&&ve<n+s-1;){let ke=fo(se,Se);if(!ke)break;Se=ke.nextIndex;let J=he(ke.symbol);J<=0||ve+J>n+s-1||(xr(t,r,ve,o,ke.symbol,O,void 0,b?{...A,bold:!0}:A,y),ve+=J)}}}for(let W=1;W<i-1;W++)B&&xr(t,r,n,o+W,v.left,w,void 0,A,y),F&&s>1&&xr(t,r,n+s-1,o+W,v.right,w,void 0,A,y);if(L&&i>1){let W=B?v.bottomLeft:v.bottom;xr(t,r,n,o+i-1,W,w,void 0,A,y);for(let U=1;U<s-1;U++)xr(t,r,n+U,o+i-1,v.bottom,w,void 0,A,y);if(s>1){let U=F?v.bottomRight:v.bottom;xr(t,r,n+s-1,o+i-1,U,w,void 0,A,y)}}}}function P2(e,t){e.cellRender&&qv({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:Uv(e),style:{},clip:e.clip},t,[])}function Wv(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function Hv(e){let t=Wv(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function ea(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${Hv(e)}:${e.x}:${e.y}`)}function Fs(e){return[ea(e),e.x,e.y,Hv(e)].join(":")}function Uv(e){let t=Wv(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:hd(e.protocol,e.source,t)}function Fv(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender&&(!t.clip||t.x>=t.clip.x&&t.y>=t.clip.y&&t.x+t.width<=t.clip.x+t.clip.width&&t.y+t.height<=t.clip.y+t.clip.height)):[]}function A2(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[ea(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(ea(s));if(!i||Fs(s)!==Fs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=Ts.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${yd("kitty")}\x1B8`}}return o}function O2(e,t){let r=Fv(e),n=Fv(t),o=r.map(Fs).join("|"),s=n.map(Fs).join("|");if(e&&o===s)return"";let i=A2(r,n),a=new Map(r.map(l=>[ea(l),l]));for(let l of n){let d=a.get(ea(l));d&&Fs(d)===Fs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=Uv(l),i+="\x1B8")}return i}function Is(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 C2(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=Is(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(Is);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function D2(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=Is(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[Is(e[t+2]),Is(e[t+3]),Is(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var Iv={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function F2(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=po(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let b=p[g].split(":"),y=Number(b[0]||0);if(b.length>1){if(y===4){let _=Number(b[1]||0);_ in Iv&&(a.underline=Iv[_])}else if(y===38||y===48||y===58){let _=C2(b);_&&(y===38?s=_:y===48?i=_:a.underlineColor=_)}continue}if(y===0)s=t,i=r,a={...n};else if(y===1)a.bold=!0;else if(y===2)a.dim=!0;else if(y===3)a.italic=!0;else if(y===4)a.underline=!0;else if(y===5)a.blink=!0;else if(y===7)a.inverse=!0;else if(y===8)a.hidden=!0;else if(y===9)a.strikethrough=!0;else if(y===21)a.underline="double";else if(y===22)a.bold=!1,a.dim=!1;else if(y===23)a.italic=!1;else if(y===24)a.underline=!1;else if(y===25)a.blink=!1;else if(y===27)a.inverse=!1;else if(y===28)a.hidden=!1;else if(y===29)a.strikethrough=!1;else if(y>=30&&y<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][y-30];else if(y===39)s=t;else if(y>=40&&y<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][y-40];else if(y===49)i=r;else if(y===59)a.underlineColor=n.underlineColor;else if(y>=90&&y<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][y-90];else if(y>=100&&y<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][y-100];else if(y===38||y===48||y===58){let{color:_,consumed:w}=D2(p,g);_&&(y===38?s=_:y===48?i=_:a.underlineColor=_),g+=w}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function qv(e,t,r){let{x:n,y:o,maxWidth:s,text:i,style:a,inheritedBackgroundColor:l}=e;if(s<=0)return;let d=e.prebuiltAnsi===!0,c=d?void 0:a.color?Oo(a.color):void 0,u=d?void 0:a.backgroundColor?Oo(a.backgroundColor):l?Oo(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?Oo(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=go(i,s,a.wrap);if(g){let b=F2(f.join(`
|
|
191
|
-
`),c,u,p),
|
|
192
|
-
`){_++,
|
|
193
|
+
})`,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 DN(e){let t=ON.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function CN(e){return`docs/resources/common-mistakes.md#${DN(e).anchor}`}function EE(e){return`See ${CN(e)} or tuiuiu://guide/common-mistakes.`}var vE=new Set,PE=lr.normalize(TE(import.meta.url)),FN=lr.dirname(lr.dirname(PE)),IN=lr.dirname(FN),wd=0;function AE(){return process.env.NODE_ENV!=="production"}function SE(e){return e.startsWith("file://")?lr.normalize(TE(e)):lr.normalize(e)}function MN(e){let t=lr.normalize(e);return t.startsWith(IN)?t.includes(`${lr.sep}src${lr.sep}`)||t.includes(`${lr.sep}dist${lr.sep}`):!1}function LN(e){let t=lr.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function jN(e,t=[]){if(!e)return[];let r=new Set([PE,...t.map(SE)]),n=e.split(`
|
|
194
|
+
`).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=SE(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function $N(e,t){!AE()||vE.has(e)||(vE.add(e),console.warn(`[tuiuiu] ${t}`))}function Yi(e){wd++;try{return e()}finally{wd=Math.max(0,wd-1)}}function OE(e,t){if(!AE()||wd>0||!Bx()||Nx()!=="component")return;let r=jN(e,[t])[0];if(!r||MN(r.filePath))return;let n=LN(r);$N(`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(). ${EE("signals-inside-component-render")}`)}var Fn=null,Xi=new Set,Qi=!1,dg=class{_value;_subs=null;constructor(t){this._value=t}get value(){return Fn&&Fn._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 In){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 In){let r=this._subs;Qi?Xi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Qi?Xi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof In){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)}}},lg=null;var cg=!1,_d=new Set;function BN(e){_d.add(e),cg||(cg=!0,queueMicrotask(NN))}function NN(){cg=!1;let e=[..._d];_d.clear(),DE(e,t=>t.run())}function DE(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var In=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?BN(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=lg;lg=this._cleanups;let r=Fn;Fn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{Fn=r,lg=t}let n=this.dependencies,o=this._nextDeps;if(this._nextDeps=null,!this._samesDeps(n,o)){for(let s of n)o.has(s)||s.unsubscribe(this);for(let s of o)n.has(s)||s._addSub(this);this.dependencies=o}}finally{this.running=!1}}}_samesDeps(t,r){if(t.size!==r.size)return!1;for(let n of t)if(!r.has(n))return!1;return!0}_runCleanups(){let t=[];this._returnCleanup&&(t.push(this._returnCleanup),this._returnCleanup=void 0),t.push(...this._cleanups.splice(0));let r=[];for(let n of t)try{n()}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive cleanups failed")}dispose(){if(this.disposed)return;this.disposed=!0,_d.delete(this),Xi.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 Rr(e){OE(new Error().stack,import.meta.url);let t=new dg(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function CE(e,t={}){let r=new In(e,t);return()=>r.dispose()}function zt(e){let t=Qi;Qi=!0;try{e()}finally{if(Qi=t,!t){let r=[...Xi];Xi.clear(),DE(r,n=>n.notify())}}}function Os(e){let t=Fn;Fn=null;try{return e()}finally{Fn=t}}var GN=Symbol("tuiuiu.terminal-focus-state");function WN(){let[e,t]=Rr(!0);return{read:e,write:t,listeners:new Set}}function ug(e){return Ce(GN,WN,e)}function wr(e){return ug(e).read()}function pg(e,t){let r=ug(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function xd(e,t){let r=ug(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function fg(e){pg(!0,e)}var ko={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},IE=Symbol("tuiuiu.motion-runtime-state");function ME(e){let t=e.id===0?null:$t(IE,()=>ME(Br())),r={config:{...t?.config??ko},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[$r](){jE(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function mg(){let e=Ne();return Ce(IE,()=>ME(e),e)}function Ed(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function gg(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function HN(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 LE(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function UN(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=xd(ln(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}vd(e)})))}function hg(e,t=wr(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 FE(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:wr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function qN(e,t){let r=wr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=hg(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 jE(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function $E(e){if(e.schedulerTimer||!LE(e))return;UN(e);let t=qN(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(ln(e.scope,()=>KN(e)),t))}function KN(e){if(e.schedulerTimer=null,!LE(e))return;let t=Date.now(),r=wr(e.scope),n=hg(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=FE(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(FE(e,t,n,Math.max(s.intervalMs,i))))}$E(e)}function vd(e){jE(e),$E(e)}function BE(e){let t=mg(),r=Ed(e.targetFps??t.config.targetFps,ko.targetFps),n=Ed(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Ed(e.unfocusedFps??t.config.unfocusedFps,ko.unfocusedFps),frameBudgetMs:gg(e.frameBudgetMs??t.config.frameBudgetMs,ko.frameBudgetMs),recoveryFrames:Ed(e.recoveryFrames??t.config.recoveryFrames,ko.recoveryFrames),elevatedFrameBudgetFactor:gg(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,ko.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:gg(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,ko.criticalFrameBudgetFactor)},vd(t)}function Sd(){let e=mg();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:wr(e.scope),targetFrameMs:hg(e),recommendedPresentationIntervalMs:HN(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function VN(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function zN(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 NE(e){let t=mg();if(!Number.isFinite(e.totalMs)||e.totalMs<0)return t.qualityTier;let r=e.overBudget??e.totalMs>t.config.frameBudgetMs,n=(e.phaseOverrunCount??0)>0;return r?(t.onBudgetStreak=0,t.qualityTier==="full"?t.qualityTier="reduced":t.qualityTier==="reduced"&&(t.qualityTier="skip"),vd(t)):(t.onBudgetStreak++,t.onBudgetStreak>=t.config.recoveryFrames&&(t.qualityTier==="skip"?(t.qualityTier="reduced",t.onBudgetStreak=0):t.qualityTier==="reduced"&&(t.qualityTier="full",t.onBudgetStreak=0))),r||n?VN(t):zN(t),vd(t),t.qualityTier}function Mn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function GE(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function WE(e){return e?jt({key:e.key,transforms:e.transforms}):null}function Zi(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 JN(e,t){let r=Zi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function YN(e,t){let r=Mn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Zi(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function QN(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 XN(e,t,r){let n=Mn(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=Zi(e);return a.clip=QN(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function ZN(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 eG(e,t,r){if(e.type!=="text")return e;let n=Mn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*Mn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!ZN(e,r,o,s))return e;let i=Zi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function tG(e,t,r){let n=Mn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Zi(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 A=o.x,x=o.x+Math.max(1,o.maxWidth),O=Math.max(A,g),$=Math.min(x,f);if($<=O)return null;let L=Math.max(0,O-A),B=Math.max(L,$-A);return o.text=Rs(o.text,L,B),o.x=O,o.maxWidth=Math.max(0,$-O),o.maxWidth>0&&o.text.length>0?o:null}let b=o.x,h=o.x+Math.max(1,o.width),_=Math.max(b,g),w=Math.min(h,f);return w<=_?null:(o.x=_,o.width=Math.max(0,w-_),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function rG(e,t,r){let n=Sd().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&Mn(s.opacity)<=0||s.kind==="scale"&&Mn(s.scale)<=0||s.kind==="reveal"&&Mn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=JN(o,s);break;case"fade":o=YN(o,s);break;case"scale":o=XN(o,s,r);break;case"shimmer":o=eG(o,s,r);break;case"reveal":o=tG(o,s,r);break}}return o}function HE(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=rG(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var nG=1,oG=Symbol("tuiuiu.frame-runtime-state");function bg(e){return Ce(oG,()=>({committedFrameSnapshot:null}),e)}var sG=new Set(["__terminalImage","__compositor"]),iG=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),aG=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),yg={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Td=new WeakMap,jn=new Map,KE=4096;function Ln(){return typeof performance<"u"?performance.now():Date.now()}function lG(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 dG(e){return{eagerHitTargets:e?.eagerHitTargets??yg.eagerHitTargets,eagerQueries:e?.eagerQueries??yg.eagerQueries,eagerWarnings:e?.eagerWarnings??yg.eagerWarnings}}function cG(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,b=typeof f.id=="string"?f.id:void 0;if(b&&b.length>0){let O=t.get(b)??[];O.push({id:b,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(b,O)}let h=f.paddingTop??f.paddingY??f.padding??0,_=f.paddingLeft??f.paddingX??f.padding??0,w=f.borderStyle&&f.borderStyle!=="none"?1:0,A=p+_+w,x=g+h+w;for(let O of u)r(O,A,x)};return r(e),t}function uG(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 pG(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,b=typeof f.id=="string"?f.id:void 0;if(b&&b.length>0&&uG(f.__scrollQuery)){let O=t.get(b)??[];O.push({id:b,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(b,O)}let h=f.paddingTop??f.paddingY??f.padding??0,_=f.paddingLeft??f.paddingX??f.padding??0,w=f.borderStyle&&f.borderStyle!=="none"?1:0,A=p+_+w,x=g+h+w;for(let O of u)r(O,A,x)};return r(e),t}function fG(e){let t=[];for(let[r,n]of e)n.length>1&&t.push({code:"duplicate-id",severity:"warning",id:r,message:`Duplicate explicit id "${r}" was found ${n.length} times in the committed frame.`});return t}function Ds(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function UE(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 gG(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 mG(e,t,r,n,o){return{getElement:s=>{let i=UE(e,s);return i.status==="missing"?Ds(n,o,{code:"query-missing",severity:"warning",id:s,message:`Element query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&Ds(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Element query for explicit id "${s}" matched multiple committed elements in the current frame.`}),i},pointerOver:s=>{if(!r.pointer)return!1;let i=UE(e,s);return!i.found||!i.bounds?(i.status==="missing"?Ds(n,o,{code:"query-missing",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&Ds(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" matched multiple committed elements in the current frame.`}),!1):r.pointer.x>=i.bounds.x&&r.pointer.x<i.bounds.x+i.bounds.width&&r.pointer.y>=i.bounds.y&&r.pointer.y<i.bounds.y+i.bounds.height},getScrollContainer:s=>{let i=gG(t,s);return i.status==="missing"?Ds(n,o,{code:"scroll-target-missing",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" did not match any committed scroll target in the current frame.`}):i.status==="ambiguous"&&Ds(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" matched multiple committed scroll targets in the current frame.`}),i}}}function hG(e,t,r,n=[],o){let s=n.length>0?jt(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function yG(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 bG(e,t){let r=e.type==="text"?aG:iG,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return jt({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:sG})}function kG(e,t,r,n,o,s){return jt([t,r,WE(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function RG(e,t,r){if(!id(e.node))return;let n=Td.get(e);if(!n)return;if(n.cacheKey!==t){Cn(e.node,De.LAYOUT);return}let o=r();if(n.fingerprint!==o){Cn(e.node,De.CONTENT|De.STYLE);return}if(n.childRefs.length!==e.node.children.length){Cn(e.node,De.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){Cn(e.node,De.CHILDREN);return}return n}function qE(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Td.set(e,i),i}function wG(e){return e.map((t,r)=>({...t,order:r}))}function VE(e,t){return t?`${e}|motion:${Sd().qualityTier}`:e}function _G(){let e=Math.max(1,Math.ceil(KE*.1)),t=jn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;jn.delete(n.value)}}function xG(e){return jn.get(e)}function EG(e,t,r){let n=jn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!jn.has(e)&&jn.size>=KE&&_G(),jn.set(e,o),o}function vG(e,t,r){let n=jn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function SG(e,t){for(let r of t)e.push(r)}function TG(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function PG(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function zE(e){let t=e.props;return GE(t?.__compositor)?t.__compositor:null}function JE(e,t=new Map){let r=zE(e.node);r&&t.set(r.key,{...r,bounds:{x:e.x,y:e.y,width:e.width,height:e.height}});for(let n of e.children)JE(n,t);return t}function AG(e,t,r,n,o,s){if(!PG(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let b=s.__terminalImage,h=Ts(),_=TG(b.source)?b.source:yd(b.source,{cellSize:h.cellSize}),w=b.options?.protocol??h.protocol,A=Ss(w),x=Ji(_,{...b.options,width:b.options?.width??g,height:b.options?.height??f}),O=Math.max(0,Math.min(g,x.renderColumns)),$=Math.max(0,Math.min(f,x.renderRows));return O<=0||$<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:O,height:$,instanceKey:b.protocolState?.instanceKey,kittyImageId:b.protocolState?.kittyImageId,source:_,fit:x.fit,threshold:b.options?.threshold,dither:b.options?.dither,preserveAspectRatio:b.options?.preserveAspectRatio,protocol:A,cellRender:fE(A),protocolState:b.protocolState}}function OG(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 YE(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,b=zE(i),h=b?[...o,b.key]:[...o],_=b!==null,w=AG(e,p,g,d,c,f),A=w?`:${w.protocol}:${w.source.hash}:${w.width}x${w.height}:${w.fit}:${w.threshold??""}:${w.dither?1:0}:${w.preserveAspectRatio?1:0}`:"",x=hG(t,r,n,h,s)+A,O,$=()=>(O===void 0&&(O=bG(i,w)),O),L=RG(e,x,$);if(L)return ji("draw"),{commands:L.commands,hasCompositor:L.hasCompositor,subtreeSignature:L.subtreeSignature};let B=$(),F=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,U=[],oe=[],se=f.paddingTop??f.paddingY??f.padding??0,re=f.paddingLeft??f.paddingX??f.padding??0,Q=f.borderStyle&&f.borderStyle!=="none"?1:0,ae=p+re+Q,Se=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,ve=g+se+Q-Se,ke=W??n,J=f.overflow==="hidden"||f.overflowX==="hidden",ce=f.overflow==="hidden"||f.overflowY==="hidden",Re={x:J?p:s?.x??Number.MIN_SAFE_INTEGER,y:ce?g:s?.y??Number.MIN_SAFE_INTEGER,width:J?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:ce?c:s?.height??Number.MAX_SAFE_INTEGER*2},Pe=J||ce?yG(s,Re):s;for(let le of u){let be=YE(le,ae,ve,ke,h,Pe);U.push(be),_||=be.hasCompositor,oe.push(be.subtreeSignature)}let Te=kG(e,x,B,b,h,oe),_e=xG(Te);if(_e){ji("draw");let le=qE(e,x,B,_e.commands,_e.hasCompositor,Te),be=VE(Te,_e.hasCompositor);return _e.materialized&&_e.materializedSignature===be&&(le.materialized=_e.materialized,le.materializedSignature=be),{commands:le.commands,hasCompositor:le.hasCompositor,subtreeSignature:Te}}let Ae=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let be=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Ae.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:be,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let le=String(f.children??""),be=Math.max(1,he(le)),Ye=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>le),f.__splitDivider.bottom].join(`
|
|
195
|
+
`):f.__divider==="horizontal"?le.repeat(Math.ceil(d/be)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>le).join(`
|
|
196
|
+
`):le;Ae.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:Ye,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})}w&&Ae.push({...w,compositorKeys:h.length>0?[...h]:void 0,clip:s});for(let le of U)SG(Ae,le.commands);ho("draw");let ye=qE(e,x,B,Ae,_,Te);return EG(Te,ye.commands,_),{commands:ye.commands,hasCompositor:_,subtreeSignature:Te}}function DG(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 CG(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=DG(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function FG(e){let t=YE(e),r=Td.get(e),n=VE(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=wG(t.commands),s=t.hasCompositor?HE(o,JE(e)):o,i=CG(s),a=Td.get(e);return a&&(a.materialized=i,a.materializedSignature=n),vG(t.subtreeSignature,i,n),i}function QE(e,t,r={}){let n=dG(r),o=lG(t),s=Date.now(),i=Ln(),a=Ln(),l=Dx(e,o.width,o.height),d=Ln()-a,c=Ln(),u=FG(l),p=OG(u),g=Ln()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},b=Tx();f.structural.layoutReuseCount=b.layoutReuseCount,f.structural.layoutFreshCount=b.layoutFreshCount,f.structural.drawReuseCount=b.drawReuseCount,f.structural.drawFreshCount=b.drawFreshCount,f.structural.invalidationEscalationCount=b.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=b.absorbedLayoutDirtyCount;let h,_,w,A=[],x=!1,O=()=>(h||(h=cG(l)),h),$=()=>(_||(_=pG(l)),_),L=()=>{if(!w){let se=Ln();w=xE(l),f.phases.hitTargetRegistrationMs=Ln()-se,f.structural.hitTargetCount=w.length}return w},B=()=>(x||(A.push(...fG(O())),x=!0,f.structural.warningCount=A.length),A);n.eagerQueries&&(O(),$()),n.eagerWarnings&&B(),n.eagerHitTargets&&L();let F=mG(O,$,o,A,f),W=Date.now(),U=Ln()-i;return f.frameEndAt=W,f.totalFrameMs=U,{info:{frameId:nG++,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 L()},get warnings(){return B()}}}function XE(e,t){bg(t).committedFrameSnapshot=e}function ZE(e){return bg(e).committedFrameSnapshot}function ev(e){bg(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 tv(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 nv=Symbol("tuiuiu.progressive-runtime-state");function rv(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function IG(e){if(e.id===0)return rv();let t=$t(nv,rv);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function kg(){let e=Ne();return Ce(nv,()=>IG(e),e)}function ov(){return kg().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function sv(){return kg().capabilityOverrides}function Rg(){return kg().progressiveVersion}function MG(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=gd(t),a=oE(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",b=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",h=l.strikethrough||b,_=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,w=e.stdout??process.stdout,A=w.columns||80,x=w.rows||24,O=ov(),$={unicode:u,colors:p,mouse:g,trueColor:f,italic:b,strikethrough:h,hyperlinks:_,terminalName:c,isCI:d,columns:A,rows:x,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:O},L=sv();return L&&Object.assign($,L),$}var iv=Symbol("tuiuiu.capability-runtime-state");function av(e){let t=e.id===0?"auto":Os($t(iv,()=>av(Br())).renderModeSignal),[r,n]=Rr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[$r](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function ea(e){let t=Ne(e);return Ce(iv,()=>av(t),t)}function lv(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function LG(e){return MG({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Pd(e){return e.cachedCapabilities=LG(e),e.cachedProgressiveVersion=Rg(),e.cachedCapabilities}function dv(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>Ke(e.scope,()=>{Pd(e);let r=lv(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function cv(e){let t=ea(),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,dv(t)}function Hr(){let e=ea(),t=Rg();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Pd(e),e.cachedCapabilities??Pd(e)}function uv(){return Pd(ea())}function pv(){return lv(ea())}function fv(e){let t=ea();return t.resizeHandlers.add(e),dv(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var gv={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},jG={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},$G=512,Ro=new Map,mv=4e6;function Ur(){return{char:" ",attrs:{}}}function _g(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 BG(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&&_g(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function hv(e,t){return e.char===t.char&&_g(e.fg,t.fg)&&_g(e.bg,t.bg)&&BG(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Ad(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var qr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>mv)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${mv} 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(Ur());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||he(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Ur(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,he(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Ur(),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]=Ur(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&he(s.char)>1&&(this.cells[r][t-1]=Ur(),this.addDamage(t-1,r,1,1))}return}let o=he(n.char);if(!(o<=1)){this.cells[r][t]=Ur(),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]=Ur(),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=he(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=go(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
197
|
+
`)continue;if(a>=this.width)break;let c=he(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(he(o)!==1){let c=he(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(he(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]=Ur();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,Ad(p))}}addDamage(t,r,n,o){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let s=Math.max(0,t),i=Math.max(0,r),a=Math.min(this.width,t+n),l=Math.min(this.height,r+o);a>s&&l>i&&this.damageRects.push({x:s,y:i,width:a-s,height:l-i})}getDamage(){return this.damageRects}clearDamage(){this.damageRects=[]}hasDamage(){return this.damageRects.length>0}consolidateDamage(){if(this.damageRects.length<=1)return this.damageRects;let t=1/0,r=1/0,n=-1/0,o=-1/0;for(let i of this.damageRects)t=Math.min(t,i.x),r=Math.min(r,i.y),n=Math.max(n,i.x+i.width),o=Math.max(o,i.y+i.height);let s={x:t,y:r,width:n-t,height:o-r};return this.damageRects=[s],this.damageRects}diff(t){let r=[],n=Math.min(this.width,t.width),o=Math.min(this.height,t.height);for(let s=0;s<o;s++)if(this.getRowSignature(s)!==t.getRowSignature(s))for(let i=0;i<n;i++){let a=this.cells[s][i],l=t.cells[s][i];hv(a,l)||r.push({x:i,y:s,cell:Ad(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=NG(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];hv(d,c)||n.push({x:l,y:i.y,cell:Ad(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Ad(r.cell))}*[Symbol.iterator](){for(let t=0;t<this.height;t++)for(let r=0;r<this.width;r++)yield{x:r,y:t,cell:this.cells[t][r]}}*rows(){for(let t=0;t<this.height;t++)yield{y:t,cells:this.cells[t]}}invalidateRow(t){t>=0&&t<this.height&&(this.rowSignatures[t]=null)}getRowSignature(t){let r=this.rowSignatures[t];if(r!=null)return r;let n=this.cells[t],o="";for(let s=0;s<n.length;s++){let i=n[s];o+=`${i.char.length}:${i.char}${i.isWide?1:0}${bv(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function NG(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||GG(o)?yv(s,i,o):WG(s,i,o)}function GG(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 yv(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 WG(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 ta=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new qr(t,r),this.back=new qr(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 qr(t,r),this.back=new qr(t,r)}};function xg(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(gv[e]!==void 0){let n=t?40:30,o=gv[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 HG(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(jG[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=UG(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 UG(e){let t=xg(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 wg(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function bv(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),wg(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",wg(e),wg(t)].join("|")}function kv(e,t,r){let n=bv(e,t,r),o=Ro.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...HG(r));let i=xg(e,!1),a=xg(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(Ro.has(n))Ro.delete(n);else if(Ro.size>=$G){let d=Ro.keys().next();d.done||Ro.delete(d.value)}return Ro.set(n,l),l===""?null:l}function qG(e){return e.length===1&&e.charCodeAt(0)<=127?1:he(e)}function Od(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=kv(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(`
|
|
198
|
+
`)}function Eg(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=kv(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+(qG(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Dd(e,t){let r=t??Hr().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 KG="\x1B[?2026h",VG="\x1B[?2026l";function Rv(e){let t=e??Hr();return t.synchronizedOutput?Dd(KG,t.multiplexer):""}function wv(e){let t=e??Hr();return t.synchronizedOutput?Dd(VG,t.multiplexer):""}var vg={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 xv="\x1B[?25h",zG="\x1B[?25l",Cd=!1,_v=!1,JG=null,Sg=null;function Tg(e){return"isTTY"in e&&!!e.isTTY}function YG(){let e=Sg??process.stdout;Tg(e)&&Cd&&(e.write(xv),Cd=!1)}function QG(){_v||(_v=!0,JG=cn(YG))}function Cs(e=process.stdout){Tg(e)&&(Sg=e,Cd=!1,e.write(xv))}function Fs(e=process.stdout){Tg(e)&&(Sg=e,QG(),Cd=!0,e.write(zG))}var XG="#ffffff",ZG="#000000",e2="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},t2={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},r2={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},y={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},We={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},pe={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},n2={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},fe={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},o2={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},s2={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},ge={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},i2={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},a2={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},tt={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},l2={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"},d2={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},c2={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},u2={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},p2={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},f2={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},g2={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},Ev={white:XG,black:ZG,transparent:e2,slate:k,gray:t2,zinc:r2,neutral:y,stone:We,red:pe,orange:n2,amber:fe,yellow:o2,lime:s2,green:ge,emerald:i2,teal:a2,cyan:tt,sky:l2,blue:te,indigo:d2,violet:c2,purple:u2,fuchsia:p2,pink:f2,rose:g2};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:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},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]}},Pg={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:tt[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:tt[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:tt[900],fg:tt[100],border:tt[600],iconFg:tt[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg: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:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},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]}},vv={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Y,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:ge[600],warning:fe[600],critical:pe[600],info:tt[600],highlight:Y.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Y.primary[600],ring:{color:Y.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Y.primary[100],fg:Y.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Y.primary[600],danger:Y.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Y.primary[600],fg:"#ffffff",hoverBg:Y.primary[700],activeBg:Y.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Y.primary[600],hoverBg:Y.primary[50],activeBg:Y.primary[100],border:Y.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Y.primary[100],selectedBg:Y.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Y.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Y.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Y.primary[600],invalidBorder:Y.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Y.primary[600]},radio:{bg:"#ffffff",dotColor:Y.primary[600],border:k[300],checkedBorder:Y.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Y.success[100],fg:Y.success[800]},warning:{bg:Y.warning[100],fg:Y.warning[800]},danger:{bg:Y.danger[100],fg:Y.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Y.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Y.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Y.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.success[700]},warning:{bg:Y.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Y.warning[600]},danger:{bg:Y.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Y.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Y.primary[600],fg:"#ffffff"},info:{bg:tt[600],fg:"#ffffff"},success:{bg:Y.success[600],fg:"#ffffff"},warning:{bg:Y.warning[500],fg:k[900]},danger:{bg:Y.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Y.primary[700],subtitleFg:k[600],border:Y.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Y.primary[100],headerFg:Y.primary[900],contentBg:"#ffffff",border:Y.primary[200],iconFg:Y.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Y.primary[100],itemSelectedFg:Y.primary[900],highlightFg:Y.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Y.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Y.success[50],fg:Y.success[900],border:Y.success[200],iconFg:Y.success[600]},error:{bg:Y.danger[50],fg:Y.danger[900],border:Y.danger[200],iconFg:Y.danger[600]},warning:{bg:Y.warning[50],fg:Y.warning[900],border:Y.warning[200],iconFg:Y.warning[600]},info:{bg:tt[50],fg:tt[900],border:tt[200],iconFg:tt[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Y.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Y.primary[600],titleBarFg:"#ffffff",border:Y.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Y.success[600],titleBarFg:"#ffffff",border:Y.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Y.warning[500],titleBarFg:k[900],border:Y.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Y.danger[600],titleBarFg:"#ffffff",border:Y.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var M={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},wo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:We[50],100:We[100],200:We[200],300:We[300],400:We[400],500:We[500],600:We[600],700:We[700],800:We[800],900:We[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"}},Sv={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:wo,background:{lowest:M.backgroundDark,base:M.background,subtle:M.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:M.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:M.foreground,secondary:"#E8E8E2",muted:M.comment,disabled:"#5B5A4F",inverse:{base:M.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:M.green,warning:M.yellow,critical:M.pink,info:M.cyan,highlight:M.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:M.green,ring:{color:M.green,width:2}},disabled:{opacity:.4,bg:M.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:M.foreground}},borders:{default:"#49483E",subtle:M.backgroundLight,strong:M.comment,accent:M.green,danger:M.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:M.green,fg:M.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:M.foreground,hoverBg:"#5B5A4F",activeBg:M.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:M.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:M.green},ghost:{bg:"transparent",fg:M.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:M.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:M.backgroundLight,border:"#49483E",item:{fg:M.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:M.backgroundLight,border:"#49483E",tab:{fg:M.comment,activeFg:M.foreground,activeBg:M.background,hoverFg:"#E8E8E2",indicator:M.green}},dropdown:{bg:M.backgroundLight,border:"#49483E",item:{fg:M.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:M.backgroundLight,fg:M.foreground,placeholder:M.comment,border:"#49483E",focusBorder:M.green,invalidBorder:M.pink},checkbox:{bg:M.backgroundLight,border:"#5B5A4F",checkColor:M.background,checkedBg:M.green},radio:{bg:M.backgroundLight,dotColor:M.green,border:"#5B5A4F",checkedBorder:M.green},tooltip:{bg:"#49483E",fg:M.foreground},modal:{bg:M.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:M.foreground},success:{bg:M.green,fg:M.background},warning:{bg:M.yellow,fg:M.background},danger:{bg:M.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:M.backgroundLight,selectedBg:"#49483E",fg:M.foreground}},header:{default:{bg:M.backgroundLight,fg:M.foreground,titleFg:M.foreground,subtitleFg:M.comment,border:"#49483E"},primary:{bg:M.green,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:M.foreground,titleFg:M.foreground,subtitleFg:M.comment,border:"#5B5A4F"},success:{bg:M.green,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:M.yellow,fg:M.background,titleFg:M.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:M.orange},danger:{bg:M.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:M.backgroundLight,fg:M.comment},primary:{bg:M.green,fg:M.background},info:{bg:M.cyan,fg:M.background},success:{bg:M.green,fg:M.background},warning:{bg:M.yellow,fg:M.background},danger:{bg:M.pink,fg:"#ffffff"}},page:{default:{bg:M.background,titleFg:M.foreground,subtitleFg:M.comment,border:"#49483E"},primary:{bg:M.background,titleFg:M.green,subtitleFg:M.comment,border:M.green},secondary:{bg:M.background,titleFg:"#E8E8E2",subtitleFg:M.comment,border:"#49483E"}},appshell:{bg:M.backgroundDark,dividerFg:"#49483E",sidebarBg:M.background,asideBg:M.background},collapsible:{default:{headerBg:M.backgroundLight,headerFg:M.foreground,contentBg:M.background,border:"#49483E",iconFg:M.comment},primary:{headerBg:"#49483E",headerFg:M.green,contentBg:M.background,border:M.green,iconFg:M.green},secondary:{headerBg:"#49483E",headerFg:M.foreground,contentBg:M.backgroundLight,border:"#5B5A4F",iconFg:M.comment}},commandPalette:{bg:M.backgroundLight,border:"#49483E",inputBg:M.background,inputFg:M.foreground,inputPlaceholder:M.comment,itemFg:M.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:M.foreground,highlightFg:M.green,categoryFg:M.comment},splitPanel:{bg:M.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:M.green,border:"#49483E",titleFg:M.comment},toast:{success:{bg:wo.success[900],fg:wo.success[100],border:M.green,iconFg:M.green},error:{bg:wo.danger[900],fg:wo.danger[100],border:M.pink,iconFg:M.pink},warning:{bg:wo.warning[900],fg:wo.warning[100],border:M.yellow,iconFg:M.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:M.cyan,iconFg:M.cyan}},window:{default:{bg:M.background,fg:M.foreground,titleBarBg:M.backgroundLight,titleBarFg:M.foreground,border:"#49483E",buttonFg:M.comment,closeFg:M.pink},primary:{bg:M.background,fg:M.foreground,titleBarBg:M.green,titleBarFg:M.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},success:{bg:M.background,fg:M.foreground,titleBarBg:M.green,titleBarFg:M.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},warning:{bg:M.background,fg:M.foreground,titleBarBg:M.yellow,titleBarFg:M.background,border:M.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:M.background},danger:{bg:M.background,fg:M.foreground,titleBarBg:M.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var C={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},_o={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},Tv={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:_o,background:{lowest:"#21222C",base:C.background,subtle:C.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:C.comment,popover:C.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:C.foreground,secondary:"#E8E8E2",muted:C.comment,disabled:"#565869",inverse:{base:C.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:C.green,warning:C.yellow,critical:C.red,info:C.cyan,highlight:C.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:C.purple,ring:{color:C.purple,width:2}},disabled:{opacity:.4,bg:C.currentLine,fg:"#565869"},selected:{bg:C.currentLine,fg:C.foreground}},borders:{default:C.comment,subtle:C.currentLine,strong:C.purple,accent:C.purple,danger:C.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:C.purple,fg:C.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:C.currentLine,fg:C.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:C.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:C.purple},ghost:{bg:"transparent",fg:C.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:C.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:C.comment},menu:{bg:C.currentLine,border:C.comment,item:{fg:C.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:C.currentLine,border:C.comment,tab:{fg:C.comment,activeFg:C.foreground,activeBg:C.background,hoverFg:"#E8E8E2",indicator:C.purple}},dropdown:{bg:C.currentLine,border:C.comment,item:{fg:C.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:C.currentLine,fg:C.foreground,placeholder:C.comment,border:C.comment,focusBorder:C.purple,invalidBorder:C.red},checkbox:{bg:C.currentLine,border:C.comment,checkColor:C.foreground,checkedBg:C.purple},radio:{bg:C.currentLine,dotColor:C.purple,border:C.comment,checkedBorder:C.purple},tooltip:{bg:"#4D4F5F",fg:C.foreground},modal:{bg:C.currentLine,border:C.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:C.comment,fg:C.foreground},success:{bg:C.green,fg:C.background},warning:{bg:C.yellow,fg:C.background},danger:{bg:C.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:C.currentLine,selectedBg:"#4D4F5F",fg:C.foreground}},header:{default:{bg:C.currentLine,fg:C.foreground,titleFg:C.foreground,subtitleFg:C.comment,border:C.comment},primary:{bg:C.purple,fg:C.foreground,titleFg:C.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:C.foreground,titleFg:C.foreground,subtitleFg:C.comment,border:"#565869"},success:{bg:C.green,fg:C.background,titleFg:C.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:C.yellow,fg:C.background,titleFg:C.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:C.orange},danger:{bg:C.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:C.currentLine,fg:C.comment},primary:{bg:C.purple,fg:C.foreground},info:{bg:C.cyan,fg:C.background},success:{bg:C.green,fg:C.background},warning:{bg:C.yellow,fg:C.background},danger:{bg:C.red,fg:"#ffffff"}},page:{default:{bg:C.background,titleFg:C.foreground,subtitleFg:C.comment,border:C.comment},primary:{bg:C.background,titleFg:C.purple,subtitleFg:C.comment,border:C.purple},secondary:{bg:C.background,titleFg:"#E8E8E2",subtitleFg:C.comment,border:C.currentLine}},appshell:{bg:"#21222C",dividerFg:C.comment,sidebarBg:C.background,asideBg:C.background},collapsible:{default:{headerBg:C.currentLine,headerFg:C.foreground,contentBg:C.background,border:C.comment,iconFg:C.comment},primary:{headerBg:"#4D4F5F",headerFg:C.purple,contentBg:C.background,border:C.purple,iconFg:C.purple},secondary:{headerBg:"#4D4F5F",headerFg:C.foreground,contentBg:C.currentLine,border:"#565869",iconFg:C.comment}},commandPalette:{bg:C.currentLine,border:C.comment,inputBg:C.background,inputFg:C.foreground,inputPlaceholder:C.comment,itemFg:C.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:C.foreground,highlightFg:C.purple,categoryFg:C.comment},splitPanel:{bg:C.background,dividerBg:C.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:C.purple,border:C.comment,titleFg:C.comment},toast:{success:{bg:_o.success[900],fg:_o.success[100],border:C.green,iconFg:C.green},error:{bg:_o.danger[900],fg:_o.danger[100],border:C.red,iconFg:C.red},warning:{bg:_o.warning[900],fg:_o.warning[100],border:C.yellow,iconFg:C.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:C.cyan,iconFg:C.cyan}},window:{default:{bg:C.background,fg:C.foreground,titleBarBg:C.currentLine,titleBarFg:C.foreground,border:C.comment,buttonFg:C.comment,closeFg:C.red},primary:{bg:C.background,fg:C.foreground,titleBarBg:C.purple,titleBarFg:C.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:C.foreground},success:{bg:C.background,fg:C.foreground,titleBarBg:C.green,titleBarFg:C.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:C.background},warning:{bg:C.background,fg:C.foreground,titleBarBg:C.yellow,titleBarFg:C.background,border:C.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:C.background},danger:{bg:C.background,fg:C.foreground,titleBarBg:C.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={nord0:"#2E3440",nord1:"#3B4252",nord2:"#434C5E",nord3:"#4C566A",nord4:"#D8DEE9",nord5:"#E5E9F0",nord6:"#ECEFF4",nord7:"#8FBCBB",nord8:"#88C0D0",nord9:"#81A1C1",nord10:"#5E81AC",nord11:"#BF616A",nord12:"#D08770",nord13:"#EBCB8B",nord14:"#A3BE8C",nord15:"#B48EAD"},xo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:S.nord8,400:S.nord8,500:S.nord8,600:S.nord9,700:S.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:S.nord14,500:S.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:S.nord13,400:S.nord13,500:S.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.nord11,500:S.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.nord6,100:S.nord5,200:S.nord4,300:"#A3ADB8",400:"#7A8694",500:S.nord3,600:S.nord2,700:S.nord1,800:S.nord0,900:"#242933"}},Pv={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:xo,background:{lowest:"#242933",base:S.nord0,subtle:S.nord1,surface:S.nord2,raised:S.nord3,elevated:"#5E6779",popover:S.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.nord6,secondary:S.nord5,muted:S.nord4,disabled:S.nord3,inverse:{base:S.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:S.nord14,warning:S.nord13,critical:S.nord11,info:S.nord9,highlight:S.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.nord8,ring:{color:S.nord8,width:2}},disabled:{opacity:.4,bg:S.nord1,fg:S.nord3},selected:{bg:S.nord1,fg:S.nord6}},borders:{default:S.nord3,subtle:S.nord1,strong:S.nord4,accent:S.nord8,danger:S.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.nord8,fg:S.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:S.nord2,fg:S.nord6,hoverBg:S.nord3,activeBg:S.nord1,border:"transparent"},outline:{bg:"transparent",fg:S.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:S.nord8},ghost:{bg:"transparent",fg:S.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.nord1,headerBg:S.nord2,footerBg:S.nord2,border:S.nord3},menu:{bg:S.nord1,border:S.nord3,item:{fg:S.nord6,hoverBg:S.nord2,activeBg:S.nord3,selectedBg:S.nord2,disabledFg:S.nord3}},tabs:{bg:S.nord1,border:S.nord3,tab:{fg:S.nord4,activeFg:S.nord6,activeBg:S.nord0,hoverFg:S.nord5,indicator:S.nord8}},dropdown:{bg:S.nord1,border:S.nord3,item:{fg:S.nord6,hoverBg:S.nord2,selectedBg:S.nord3}},input:{bg:S.nord1,fg:S.nord6,placeholder:S.nord4,border:S.nord3,focusBorder:S.nord8,invalidBorder:S.nord11},checkbox:{bg:S.nord1,border:S.nord3,checkColor:S.nord0,checkedBg:S.nord8},radio:{bg:S.nord1,dotColor:S.nord8,border:S.nord3,checkedBorder:S.nord8},tooltip:{bg:S.nord2,fg:S.nord6},modal:{bg:S.nord1,border:S.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.nord3,fg:S.nord6},success:{bg:S.nord14,fg:S.nord0},warning:{bg:S.nord13,fg:S.nord0},danger:{bg:S.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.nord1,selectedBg:S.nord2,fg:S.nord6}},header:{default:{bg:S.nord1,fg:S.nord6,titleFg:S.nord6,subtitleFg:S.nord4,border:S.nord3},primary:{bg:S.nord8,fg:S.nord0,titleFg:S.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:S.nord9},secondary:{bg:S.nord2,fg:S.nord6,titleFg:S.nord6,subtitleFg:S.nord4,border:S.nord3},success:{bg:S.nord14,fg:S.nord0,titleFg:S.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:S.nord13,fg:S.nord0,titleFg:S.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:S.nord12},danger:{bg:S.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.nord1,fg:S.nord4},primary:{bg:S.nord8,fg:S.nord0},info:{bg:S.nord9,fg:"#ffffff"},success:{bg:S.nord14,fg:S.nord0},warning:{bg:S.nord13,fg:S.nord0},danger:{bg:S.nord11,fg:"#ffffff"}},page:{default:{bg:S.nord0,titleFg:S.nord6,subtitleFg:S.nord4,border:S.nord3},primary:{bg:S.nord0,titleFg:S.nord8,subtitleFg:S.nord4,border:S.nord8},secondary:{bg:S.nord0,titleFg:S.nord5,subtitleFg:S.nord4,border:S.nord1}},appshell:{bg:"#242933",dividerFg:S.nord3,sidebarBg:S.nord0,asideBg:S.nord0},collapsible:{default:{headerBg:S.nord1,headerFg:S.nord6,contentBg:S.nord0,border:S.nord3,iconFg:S.nord4},primary:{headerBg:S.nord2,headerFg:S.nord8,contentBg:S.nord0,border:S.nord8,iconFg:S.nord8},secondary:{headerBg:S.nord2,headerFg:S.nord6,contentBg:S.nord1,border:S.nord3,iconFg:S.nord4}},commandPalette:{bg:S.nord1,border:S.nord3,inputBg:S.nord0,inputFg:S.nord6,inputPlaceholder:S.nord4,itemFg:S.nord6,itemHoverBg:S.nord2,itemSelectedBg:S.nord3,itemSelectedFg:S.nord6,highlightFg:S.nord8,categoryFg:S.nord4},splitPanel:{bg:S.nord0,dividerBg:S.nord3,dividerHoverBg:S.nord2,dividerActiveBg:S.nord8,border:S.nord3,titleFg:S.nord4},toast:{success:{bg:xo.success[900],fg:xo.success[100],border:S.nord14,iconFg:S.nord14},error:{bg:xo.danger[900],fg:xo.danger[100],border:S.nord11,iconFg:S.nord11},warning:{bg:xo.warning[900],fg:xo.warning[100],border:S.nord13,iconFg:S.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.nord9,iconFg:S.nord9}},window:{default:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord1,titleBarFg:S.nord6,border:S.nord3,buttonFg:S.nord4,closeFg:S.nord11},primary:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord8,titleBarFg:S.nord0,border:S.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:S.nord0},success:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord14,titleBarFg:S.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:S.nord0},warning:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord13,titleBarFg:S.nord0,border:S.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:S.nord0},danger:{bg:S.nord0,fg:S.nord6,titleBarBg:S.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var P={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},Eo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:P.blue,500:P.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:P.green,500:P.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:P.yellow,500:P.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:P.red,500:P.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:P.base3,100:P.base2,200:P.base1,300:P.base0,400:P.base00,500:P.base01,600:"#4A5A60",700:P.base02,800:P.base03,900:"#001E26"}},Av={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:Eo,background:{lowest:"#001E26",base:P.base03,subtle:P.base02,surface:"#094652",raised:"#0B5A66",elevated:P.base01,popover:P.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:P.base0,secondary:P.base1,muted:P.base00,disabled:P.base01,inverse:{base:P.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:P.green,warning:P.yellow,critical:P.red,info:P.cyan,highlight:P.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:P.blue,ring:{color:P.blue,width:2}},disabled:{opacity:.4,bg:P.base02,fg:P.base01},selected:{bg:P.base02,fg:P.base1}},borders:{default:P.base01,subtle:P.base02,strong:P.base0,accent:P.blue,danger:P.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:P.blue,fg:P.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:P.base02,fg:P.base1,hoverBg:"#094652",activeBg:P.base03,border:"transparent"},outline:{bg:"transparent",fg:P.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:P.blue},ghost:{bg:"transparent",fg:P.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:P.base02,headerBg:"#094652",footerBg:"#094652",border:P.base01},menu:{bg:P.base02,border:P.base01,item:{fg:P.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:P.base01}},tabs:{bg:P.base02,border:P.base01,tab:{fg:P.base00,activeFg:P.base1,activeBg:P.base03,hoverFg:P.base0,indicator:P.blue}},dropdown:{bg:P.base02,border:P.base01,item:{fg:P.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:P.base02,fg:P.base0,placeholder:P.base00,border:P.base01,focusBorder:P.blue,invalidBorder:P.red},checkbox:{bg:P.base02,border:P.base01,checkColor:P.base3,checkedBg:P.blue},radio:{bg:P.base02,dotColor:P.blue,border:P.base01,checkedBorder:P.blue},tooltip:{bg:"#094652",fg:P.base1},modal:{bg:P.base02,border:P.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:P.base01,fg:P.base1},success:{bg:P.green,fg:P.base3},warning:{bg:P.yellow,fg:P.base03},danger:{bg:P.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:P.base02,selectedBg:"#094652",fg:P.base0}},header:{default:{bg:P.base02,fg:P.base0,titleFg:P.base1,subtitleFg:P.base00,border:P.base01},primary:{bg:P.blue,fg:P.base3,titleFg:P.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:P.base0,titleFg:P.base1,subtitleFg:P.base00,border:"#0B5A66"},success:{bg:P.green,fg:P.base3,titleFg:P.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:P.yellow,fg:P.base03,titleFg:P.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:P.orange},danger:{bg:P.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:P.base02,fg:P.base00},primary:{bg:P.blue,fg:P.base3},info:{bg:P.cyan,fg:P.base03},success:{bg:P.green,fg:P.base3},warning:{bg:P.yellow,fg:P.base03},danger:{bg:P.red,fg:"#ffffff"}},page:{default:{bg:P.base03,titleFg:P.base1,subtitleFg:P.base00,border:P.base01},primary:{bg:P.base03,titleFg:P.blue,subtitleFg:P.base00,border:P.blue},secondary:{bg:P.base03,titleFg:P.base0,subtitleFg:P.base00,border:P.base02}},appshell:{bg:"#001E26",dividerFg:P.base01,sidebarBg:P.base03,asideBg:P.base03},collapsible:{default:{headerBg:P.base02,headerFg:P.base1,contentBg:P.base03,border:P.base01,iconFg:P.base00},primary:{headerBg:"#094652",headerFg:P.blue,contentBg:P.base03,border:P.blue,iconFg:P.blue},secondary:{headerBg:"#094652",headerFg:P.base1,contentBg:P.base02,border:"#0B5A66",iconFg:P.base00}},commandPalette:{bg:P.base02,border:P.base01,inputBg:P.base03,inputFg:P.base0,inputPlaceholder:P.base00,itemFg:P.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:P.base1,highlightFg:P.blue,categoryFg:P.base00},splitPanel:{bg:P.base03,dividerBg:P.base01,dividerHoverBg:"#094652",dividerActiveBg:P.blue,border:P.base01,titleFg:P.base00},toast:{success:{bg:Eo.success[900],fg:Eo.success[100],border:P.green,iconFg:P.green},error:{bg:Eo.danger[900],fg:Eo.danger[100],border:P.red,iconFg:P.red},warning:{bg:Eo.warning[900],fg:Eo.warning[100],border:P.yellow,iconFg:P.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:P.cyan,iconFg:P.cyan}},window:{default:{bg:P.base03,fg:P.base0,titleBarBg:P.base02,titleBarFg:P.base1,border:P.base01,buttonFg:P.base00,closeFg:P.red},primary:{bg:P.base03,fg:P.base0,titleBarBg:P.blue,titleBarFg:P.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:P.base3},success:{bg:P.base03,fg:P.base0,titleBarBg:P.green,titleBarFg:P.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:P.base3},warning:{bg:P.base03,fg:P.base0,titleBarBg:P.yellow,titleBarFg:P.base03,border:P.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:P.base03},danger:{bg:P.base03,fg:P.base0,titleBarBg:P.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},vo={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:E.green,500:E.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:We[50],100:We[100],200:We[200],300:We[300],400:We[400],500:We[500],600:We[600],700:We[700],800:We[800],900:We[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:E.green,500:E.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:E.yellow,500:E.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:E.red,500:E.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:E.fg0,100:E.fg1,200:E.fg2,300:E.fg3,400:E.fg4,500:E.gray,600:E.bg4,700:E.bg3,800:E.bg2,900:E.bg1}},Ov={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:vo,background:{lowest:E.bg0_h,base:E.bg0,subtle:E.bg1,surface:E.bg2,raised:E.bg3,elevated:E.bg4,popover:E.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:E.fg1,secondary:E.fg2,muted:E.gray,disabled:E.bg3,inverse:{base:E.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:E.green,warning:E.yellow,critical:E.red,info:E.blue,highlight:E.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.green,ring:{color:E.green,width:2}},disabled:{opacity:.4,bg:E.bg1,fg:E.bg3},selected:{bg:E.bg2,fg:E.fg1}},borders:{default:E.bg3,subtle:E.bg2,strong:E.gray,accent:E.green,danger:E.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:E.green,fg:E.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:E.bg2,fg:E.fg1,hoverBg:E.bg3,activeBg:E.bg1,border:"transparent"},outline:{bg:"transparent",fg:E.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:E.green},ghost:{bg:"transparent",fg:E.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.bg1,headerBg:E.bg2,footerBg:E.bg2,border:E.bg3},menu:{bg:E.bg1,border:E.bg3,item:{fg:E.fg1,hoverBg:E.bg2,activeBg:E.bg3,selectedBg:E.bg2,disabledFg:E.bg3}},tabs:{bg:E.bg1,border:E.bg3,tab:{fg:E.gray,activeFg:E.fg1,activeBg:E.bg0,hoverFg:E.fg2,indicator:E.green}},dropdown:{bg:E.bg1,border:E.bg3,item:{fg:E.fg1,hoverBg:E.bg2,selectedBg:E.bg3}},input:{bg:E.bg1,fg:E.fg1,placeholder:E.gray,border:E.bg3,focusBorder:E.green,invalidBorder:E.red},checkbox:{bg:E.bg1,border:E.bg3,checkColor:E.bg0,checkedBg:E.green},radio:{bg:E.bg1,dotColor:E.green,border:E.bg3,checkedBorder:E.green},tooltip:{bg:E.bg2,fg:E.fg1},modal:{bg:E.bg1,border:E.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:E.bg3,fg:E.fg1},success:{bg:E.green,fg:E.bg0},warning:{bg:E.yellow,fg:E.bg0},danger:{bg:E.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.bg1,selectedBg:E.bg2,fg:E.fg1}},header:{default:{bg:E.bg1,fg:E.fg1,titleFg:E.fg1,subtitleFg:E.gray,border:E.bg3},primary:{bg:E.green,fg:E.bg0,titleFg:E.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:E.bg2,fg:E.fg1,titleFg:E.fg1,subtitleFg:E.gray,border:E.bg3},success:{bg:E.green,fg:E.bg0,titleFg:E.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:E.yellow,fg:E.bg0,titleFg:E.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:E.orange},danger:{bg:E.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:E.bg1,fg:E.gray},primary:{bg:E.green,fg:E.bg0},info:{bg:E.blue,fg:E.bg0},success:{bg:E.green,fg:E.bg0},warning:{bg:E.yellow,fg:E.bg0},danger:{bg:E.red,fg:"#ffffff"}},page:{default:{bg:E.bg0,titleFg:E.fg1,subtitleFg:E.gray,border:E.bg3},primary:{bg:E.bg0,titleFg:E.green,subtitleFg:E.gray,border:E.green},secondary:{bg:E.bg0,titleFg:E.fg2,subtitleFg:E.gray,border:E.bg2}},appshell:{bg:E.bg0_h,dividerFg:E.bg3,sidebarBg:E.bg0,asideBg:E.bg0},collapsible:{default:{headerBg:E.bg1,headerFg:E.fg1,contentBg:E.bg0,border:E.bg3,iconFg:E.gray},primary:{headerBg:E.bg2,headerFg:E.green,contentBg:E.bg0,border:E.green,iconFg:E.green},secondary:{headerBg:E.bg2,headerFg:E.fg1,contentBg:E.bg1,border:E.bg3,iconFg:E.gray}},commandPalette:{bg:E.bg1,border:E.bg3,inputBg:E.bg0,inputFg:E.fg1,inputPlaceholder:E.gray,itemFg:E.fg1,itemHoverBg:E.bg2,itemSelectedBg:E.bg3,itemSelectedFg:E.fg1,highlightFg:E.green,categoryFg:E.gray},splitPanel:{bg:E.bg0,dividerBg:E.bg3,dividerHoverBg:E.bg2,dividerActiveBg:E.green,border:E.bg3,titleFg:E.gray},toast:{success:{bg:vo.success[900],fg:vo.success[100],border:E.green,iconFg:E.green},error:{bg:vo.danger[900],fg:vo.danger[100],border:E.red,iconFg:E.red},warning:{bg:vo.warning[900],fg:vo.warning[100],border:E.yellow,iconFg:E.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.blue,iconFg:E.blue}},window:{default:{bg:E.bg0,fg:E.fg1,titleBarBg:E.bg1,titleBarFg:E.fg1,border:E.bg3,buttonFg:E.gray,closeFg:E.red},primary:{bg:E.bg0,fg:E.fg1,titleBarBg:E.green,titleBarFg:E.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:E.bg0},success:{bg:E.bg0,fg:E.fg1,titleBarBg:E.green,titleBarFg:E.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:E.bg0},warning:{bg:E.bg0,fg:E.fg1,titleBarBg:E.yellow,titleBarFg:E.bg0,border:E.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:E.bg0},danger:{bg:E.bg0,fg:E.fg1,titleBarBg:E.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var T={bg:"#1A1B26",bgDark:"#16161E",bgHighlight:"#24283B",bgPopup:"#2F3549",fg:"#A9B1D6",fgDark:"#9AA5CE",blue:"#7AA2F7",cyan:"#7DCFFF",green:"#9ECE6A",magenta:"#BB9AF7",orange:"#FF9E64",purple:"#9D7CD8",red:"#F7768E",teal:"#73DACA",yellow:"#E0AF68",comment:"#565F89",dark3:"#414868",dark5:"#737AA2"},So={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:T.blue,500:T.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:T.green,500:T.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:T.yellow,500:T.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:T.red,500:T.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},Dv={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:So,background:{lowest:T.bgDark,base:T.bg,subtle:T.bgHighlight,surface:T.bgPopup,raised:T.dark3,elevated:T.comment,popover:T.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:T.fg,secondary:T.fgDark,muted:T.comment,disabled:T.dark3,inverse:{base:T.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:T.green,warning:T.yellow,critical:T.red,info:T.cyan,highlight:T.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:T.blue,ring:{color:T.blue,width:2}},disabled:{opacity:.4,bg:T.bgHighlight,fg:T.dark3},selected:{bg:T.bgHighlight,fg:T.fg}},borders:{default:T.dark3,subtle:T.bgHighlight,strong:T.comment,accent:T.blue,danger:T.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:T.blue,fg:T.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:T.bgHighlight,fg:T.fg,hoverBg:T.bgPopup,activeBg:T.dark3,border:"transparent"},outline:{bg:"transparent",fg:T.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:T.blue},ghost:{bg:"transparent",fg:T.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:T.bgHighlight,headerBg:T.bgPopup,footerBg:T.bgPopup,border:T.dark3},menu:{bg:T.bgHighlight,border:T.dark3,item:{fg:T.fg,hoverBg:T.bgPopup,activeBg:T.dark3,selectedBg:T.bgPopup,disabledFg:T.dark3}},tabs:{bg:T.bgHighlight,border:T.dark3,tab:{fg:T.comment,activeFg:T.fg,activeBg:T.bg,hoverFg:T.fgDark,indicator:T.blue}},dropdown:{bg:T.bgHighlight,border:T.dark3,item:{fg:T.fg,hoverBg:T.bgPopup,selectedBg:T.dark3}},input:{bg:T.bgHighlight,fg:T.fg,placeholder:T.comment,border:T.dark3,focusBorder:T.blue,invalidBorder:T.red},checkbox:{bg:T.bgHighlight,border:T.dark3,checkColor:T.bg,checkedBg:T.blue},radio:{bg:T.bgHighlight,dotColor:T.blue,border:T.dark3,checkedBorder:T.blue},tooltip:{bg:T.bgPopup,fg:T.fg},modal:{bg:T.bgHighlight,border:T.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:T.dark3,fg:T.fg},success:{bg:T.green,fg:T.bg},warning:{bg:T.yellow,fg:T.bg},danger:{bg:T.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:T.bgHighlight,selectedBg:T.bgPopup,fg:T.fg}},header:{default:{bg:T.bgHighlight,fg:T.fg,titleFg:T.fg,subtitleFg:T.comment,border:T.dark3},primary:{bg:T.blue,fg:T.bg,titleFg:T.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:T.bgPopup,fg:T.fg,titleFg:T.fg,subtitleFg:T.comment,border:T.dark3},success:{bg:T.green,fg:T.bg,titleFg:T.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:T.yellow,fg:T.bg,titleFg:T.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:T.orange},danger:{bg:T.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:T.bgHighlight,fg:T.comment},primary:{bg:T.blue,fg:T.bg},info:{bg:T.cyan,fg:T.bg},success:{bg:T.green,fg:T.bg},warning:{bg:T.yellow,fg:T.bg},danger:{bg:T.red,fg:"#ffffff"}},page:{default:{bg:T.bg,titleFg:T.fg,subtitleFg:T.comment,border:T.dark3},primary:{bg:T.bg,titleFg:T.blue,subtitleFg:T.comment,border:T.blue},secondary:{bg:T.bg,titleFg:T.fgDark,subtitleFg:T.comment,border:T.bgHighlight}},appshell:{bg:T.bgDark,dividerFg:T.dark3,sidebarBg:T.bg,asideBg:T.bg},collapsible:{default:{headerBg:T.bgHighlight,headerFg:T.fg,contentBg:T.bg,border:T.dark3,iconFg:T.comment},primary:{headerBg:T.bgPopup,headerFg:T.blue,contentBg:T.bg,border:T.blue,iconFg:T.blue},secondary:{headerBg:T.bgPopup,headerFg:T.fg,contentBg:T.bgHighlight,border:T.dark3,iconFg:T.comment}},commandPalette:{bg:T.bgHighlight,border:T.dark3,inputBg:T.bg,inputFg:T.fg,inputPlaceholder:T.comment,itemFg:T.fg,itemHoverBg:T.bgPopup,itemSelectedBg:T.dark3,itemSelectedFg:T.fg,highlightFg:T.blue,categoryFg:T.comment},splitPanel:{bg:T.bg,dividerBg:T.dark3,dividerHoverBg:T.bgPopup,dividerActiveBg:T.blue,border:T.dark3,titleFg:T.comment},toast:{success:{bg:So.success[900],fg:So.success[100],border:T.green,iconFg:T.green},error:{bg:So.danger[900],fg:So.danger[100],border:T.red,iconFg:T.red},warning:{bg:So.warning[900],fg:So.warning[100],border:T.yellow,iconFg:T.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:T.cyan,iconFg:T.cyan}},window:{default:{bg:T.bg,fg:T.fg,titleBarBg:T.bgHighlight,titleBarFg:T.fg,border:T.dark3,buttonFg:T.comment,closeFg:T.red},primary:{bg:T.bg,fg:T.fg,titleBarBg:T.blue,titleBarFg:T.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:T.bg},success:{bg:T.bg,fg:T.fg,titleBarBg:T.green,titleBarFg:T.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:T.bg},warning:{bg:T.bg,fg:T.fg,titleBarBg:T.yellow,titleBarFg:T.bg,border:T.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:T.bg},danger:{bg:T.bg,fg:T.fg,titleBarBg:T.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},To={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:v.mauve,500:v.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:v.green,500:v.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},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:v.text,100:v.subtext1,200:v.subtext0,300:v.overlay2,400:v.overlay1,500:v.overlay0,600:v.surface2,700:v.surface1,800:v.surface0,900:v.base}},Cv={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:To,background:{lowest:v.crust,base:v.base,subtle:v.surface0,surface:v.surface1,raised:v.surface2,elevated:v.overlay0,popover:v.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:v.text,secondary:v.subtext1,muted:v.overlay0,disabled:v.surface2,inverse:{base:v.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:v.green,warning:v.yellow,critical:v.red,info:v.sky,highlight:v.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.mauve,ring:{color:v.mauve,width:2}},disabled:{opacity:.4,bg:v.surface0,fg:v.surface2},selected:{bg:v.surface0,fg:v.text}},borders:{default:v.overlay0,subtle:v.surface1,strong:v.subtext1,accent:v.mauve,danger:v.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:v.mauve,fg:v.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:v.surface0,fg:v.text,hoverBg:v.surface1,activeBg:v.surface2,border:"transparent"},outline:{bg:"transparent",fg:v.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:v.mauve},ghost:{bg:"transparent",fg:v.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.surface0,headerBg:v.surface1,footerBg:v.surface1,border:v.overlay0},menu:{bg:v.surface0,border:v.overlay0,item:{fg:v.text,hoverBg:v.surface1,activeBg:v.surface2,selectedBg:v.surface1,disabledFg:v.surface2}},tabs:{bg:v.surface0,border:v.overlay0,tab:{fg:v.overlay0,activeFg:v.text,activeBg:v.base,hoverFg:v.subtext1,indicator:v.mauve}},dropdown:{bg:v.surface0,border:v.overlay0,item:{fg:v.text,hoverBg:v.surface1,selectedBg:v.surface2}},input:{bg:v.surface0,fg:v.text,placeholder:v.overlay0,border:v.overlay0,focusBorder:v.mauve,invalidBorder:v.red},checkbox:{bg:v.surface0,border:v.overlay0,checkColor:v.base,checkedBg:v.mauve},radio:{bg:v.surface0,dotColor:v.mauve,border:v.overlay0,checkedBorder:v.mauve},tooltip:{bg:v.surface1,fg:v.text},modal:{bg:v.surface0,border:v.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:v.surface2,fg:v.text},success:{bg:v.green,fg:v.base},warning:{bg:v.yellow,fg:v.base},danger:{bg:v.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.surface0,selectedBg:v.surface1,fg:v.text}},header:{default:{bg:v.surface0,fg:v.text,titleFg:v.text,subtitleFg:v.overlay0,border:v.overlay0},primary:{bg:v.mauve,fg:v.base,titleFg:v.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:v.surface1,fg:v.text,titleFg:v.text,subtitleFg:v.overlay0,border:v.surface2},success:{bg:v.green,fg:v.base,titleFg:v.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:v.yellow,fg:v.base,titleFg:v.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:v.peach},danger:{bg:v.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:v.surface0,fg:v.overlay0},primary:{bg:v.mauve,fg:v.base},info:{bg:v.sky,fg:v.base},success:{bg:v.green,fg:v.base},warning:{bg:v.yellow,fg:v.base},danger:{bg:v.red,fg:"#ffffff"}},page:{default:{bg:v.base,titleFg:v.text,subtitleFg:v.overlay0,border:v.overlay0},primary:{bg:v.base,titleFg:v.mauve,subtitleFg:v.overlay0,border:v.mauve},secondary:{bg:v.base,titleFg:v.subtext1,subtitleFg:v.overlay0,border:v.surface0}},appshell:{bg:v.crust,dividerFg:v.overlay0,sidebarBg:v.base,asideBg:v.base},collapsible:{default:{headerBg:v.surface0,headerFg:v.text,contentBg:v.base,border:v.overlay0,iconFg:v.overlay0},primary:{headerBg:v.surface1,headerFg:v.mauve,contentBg:v.base,border:v.mauve,iconFg:v.mauve},secondary:{headerBg:v.surface1,headerFg:v.text,contentBg:v.surface0,border:v.surface2,iconFg:v.overlay0}},commandPalette:{bg:v.surface0,border:v.overlay0,inputBg:v.base,inputFg:v.text,inputPlaceholder:v.overlay0,itemFg:v.text,itemHoverBg:v.surface1,itemSelectedBg:v.surface2,itemSelectedFg:v.text,highlightFg:v.mauve,categoryFg:v.overlay0},splitPanel:{bg:v.base,dividerBg:v.overlay0,dividerHoverBg:v.surface1,dividerActiveBg:v.mauve,border:v.overlay0,titleFg:v.overlay0},toast:{success:{bg:To.success[900],fg:To.success[100],border:v.green,iconFg:v.green},error:{bg:To.danger[900],fg:To.danger[100],border:v.red,iconFg:v.red},warning:{bg:To.warning[900],fg:To.warning[100],border:v.yellow,iconFg:v.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.sky,iconFg:v.sky}},window:{default:{bg:v.base,fg:v.text,titleBarBg:v.surface0,titleBarFg:v.text,border:v.overlay0,buttonFg:v.overlay0,closeFg:v.red},primary:{bg:v.base,fg:v.text,titleBarBg:v.mauve,titleBarFg:v.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:v.base},success:{bg:v.base,fg:v.text,titleBarBg:v.green,titleBarFg:v.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:v.base},warning:{bg:v.base,fg:v.text,titleBarBg:v.yellow,titleBarFg:v.base,border:v.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:v.base},danger:{bg:v.base,fg:v.text,titleBarBg:v.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Po={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50:pe[50],100:pe[100],200:pe[200],300:pe[300],400:pe[400],500:pe[500],600:pe[600],700:pe[700],800:pe[800],900:pe[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},Fv={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:Po,background:{lowest:"#000000",base:"#000000",subtle:y[950],surface:y[900],raised:y[800],elevated:y[700],popover:y[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:y[100],muted:y[300],disabled:y[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:ge[400],warning:fe[400],critical:pe[400],info:tt[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:y[900],fg:y[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:y[500],subtle:y[700],strong:y[300],accent:te[400],danger:pe[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:y[800],fg:"#ffffff",hoverBg:y[700],activeBg:y[900],border:y[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:y[950],headerBg:y[900],footerBg:y[900],border:y[500]},menu:{bg:y[950],border:y[500],item:{fg:"#ffffff",hoverBg:y[800],activeBg:te[800],selectedBg:te[900],disabledFg:y[500]}},tabs:{bg:y[950],border:y[500],tab:{fg:y[300],activeFg:"#ffffff",activeBg:y[800],hoverFg:y[100],indicator:te[400]}},dropdown:{bg:y[950],border:y[500],item:{fg:"#ffffff",hoverBg:y[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:y[400],border:y[500],focusBorder:te[400],invalidBorder:pe[400]},checkbox:{bg:"#000000",border:y[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:y[400],checkedBorder:te[400]},tooltip:{bg:y[800],fg:"#ffffff"},modal:{bg:y[950],border:y[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:y[700],fg:"#ffffff"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:pe[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:y[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:y[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:y[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},success:{bg:ge[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[300]},warning:{bg:fe[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:fe[600]},danger:{bg:pe[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:pe[300]}},statusbar:{default:{bg:y[950],fg:y[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:tt[500],fg:"#000000"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:pe[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:y[300],border:te[400]},secondary:{bg:"#000000",titleFg:y[100],subtitleFg:y[400],border:y[700]}},appshell:{bg:"#000000",dividerFg:y[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:y[950],headerFg:"#ffffff",contentBg:"#000000",border:y[500],iconFg:y[300]},primary:{headerBg:y[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:y[900],headerFg:"#ffffff",contentBg:y[950],border:y[500],iconFg:y[300]}},commandPalette:{bg:y[950],border:y[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:y[400],itemFg:"#ffffff",itemHoverBg:y[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:y[400]},splitPanel:{bg:"#000000",dividerBg:y[500],dividerHoverBg:y[400],dividerActiveBg:te[400],border:y[500],titleFg:y[300]},toast:{success:{bg:Po.success[900],fg:Po.success[100],border:ge[400],iconFg:ge[400]},error:{bg:Po.danger[900],fg:Po.danger[100],border:pe[400],iconFg:pe[400]},warning:{bg:Po.warning[900],fg:Po.warning[100],border:fe[400],iconFg:fe[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:tt[400],iconFg:tt[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:y[950],titleBarFg:"#ffffff",border:y[500],buttonFg:y[300],closeFg:pe[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:ge[500],titleBarFg:"#000000",border:ge[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:fe[400],titleBarFg:"#000000",border:fe[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:pe[500],titleBarFg:"#ffffff",border:pe[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var m2={primary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},warning:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},danger:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},Iv={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:m2,background:{lowest:y[950],base:y[900],subtle:y[800],surface:y[700],raised:y[600],elevated:y[500],popover:y[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:y[50],secondary:y[200],muted:y[400],disabled:y[500],inverse:{base:y[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:y[300],warning:y[400],critical:y[200],info:y[300],highlight:y[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:y[400],ring:{color:y[400],width:2}},disabled:{opacity:.4,bg:y[800],fg:y[500]},selected:{bg:y[700],fg:y[50]}},borders:{default:y[600],subtle:y[700],strong:y[400],accent:y[400],danger:y[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:y[300],fg:y[900],hoverBg:y[200],activeBg:y[400],border:"transparent"},secondary:{bg:y[700],fg:y[50],hoverBg:y[600],activeBg:y[800],border:"transparent"},outline:{bg:"transparent",fg:y[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:y[400]},ghost:{bg:"transparent",fg:y[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:y[800],headerBg:y[700],footerBg:y[700],border:y[600]},menu:{bg:y[800],border:y[600],item:{fg:y[50],hoverBg:y[700],activeBg:y[600],selectedBg:y[700],disabledFg:y[500]}},tabs:{bg:y[800],border:y[600],tab:{fg:y[400],activeFg:y[50],activeBg:y[700],hoverFg:y[200],indicator:y[300]}},dropdown:{bg:y[800],border:y[600],item:{fg:y[50],hoverBg:y[700],selectedBg:y[600]}},input:{bg:y[800],fg:y[50],placeholder:y[500],border:y[600],focusBorder:y[400],invalidBorder:y[300]},checkbox:{bg:y[800],border:y[500],checkColor:y[900],checkedBg:y[300]},radio:{bg:y[800],dotColor:y[300],border:y[500],checkedBorder:y[300]},tooltip:{bg:y[700],fg:y[50]},modal:{bg:y[800],border:y[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:y[700],fg:y[50]},success:{bg:y[400],fg:y[900]},warning:{bg:y[500],fg:y[900]},danger:{bg:y[300],fg:y[900]}},list:{item:{bg:"transparent",hoverBg:y[800],selectedBg:y[700],fg:y[50]}},header:{default:{bg:y[800],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},primary:{bg:y[300],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[400]},secondary:{bg:y[700],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},success:{bg:y[400],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[500]},warning:{bg:y[500],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[600]},danger:{bg:y[300],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[400]}},statusbar:{default:{bg:y[800],fg:y[400]},primary:{bg:y[300],fg:y[900]},info:{bg:y[400],fg:y[900]},success:{bg:y[400],fg:y[900]},warning:{bg:y[500],fg:y[900]},danger:{bg:y[300],fg:y[900]}},page:{default:{bg:y[900],titleFg:y[50],subtitleFg:y[400],border:y[600]},primary:{bg:y[900],titleFg:y[200],subtitleFg:y[400],border:y[500]},secondary:{bg:y[900],titleFg:y[300],subtitleFg:y[500],border:y[700]}},appshell:{bg:y[950],dividerFg:y[600],sidebarBg:y[900],asideBg:y[900]},collapsible:{default:{headerBg:y[800],headerFg:y[50],contentBg:y[900],border:y[600],iconFg:y[400]},primary:{headerBg:y[700],headerFg:y[200],contentBg:y[900],border:y[500],iconFg:y[300]},secondary:{headerBg:y[700],headerFg:y[50],contentBg:y[800],border:y[600],iconFg:y[400]}},commandPalette:{bg:y[800],border:y[600],inputBg:y[900],inputFg:y[50],inputPlaceholder:y[500],itemFg:y[50],itemHoverBg:y[700],itemSelectedBg:y[600],itemSelectedFg:y[50],highlightFg:y[200],categoryFg:y[500]},splitPanel:{bg:y[900],dividerBg:y[600],dividerHoverBg:y[500],dividerActiveBg:y[300],border:y[600],titleFg:y[400]},toast:{success:{bg:y[800],fg:y[100],border:y[400],iconFg:y[300]},error:{bg:y[800],fg:y[100],border:y[300],iconFg:y[200]},warning:{bg:y[800],fg:y[100],border:y[500],iconFg:y[400]},info:{bg:y[800],fg:y[100],border:y[400],iconFg:y[300]}},window:{default:{bg:y[900],fg:y[50],titleBarBg:y[800],titleBarFg:y[50],border:y[600],buttonFg:y[400],closeFg:y[300]},primary:{bg:y[900],fg:y[50],titleBarBg:y[300],titleBarFg:y[900],border:y[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},success:{bg:y[900],fg:y[50],titleBarBg:y[400],titleBarFg:y[900],border:y[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},warning:{bg:y[900],fg:y[50],titleBarBg:y[500],titleBarFg:y[900],border:y[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},danger:{bg:y[900],fg:y[50],titleBarBg:y[300],titleBarFg:y[900],border:y[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]}}},borderRadius:"none"};var Lv=Symbol("tuiuiu.theme-runtime-state");function Mv(){let[e,t]=Rr(Pg);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function h2(e){if(e.id===0)return Mv();let t=$t(Lv,Mv),[r,n]=Rr(Os(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function jv(){let e=Ne();return Ce(Lv,()=>h2(e),e)}function $v(){return Os(jv().currentTheme)}var y2={dark:Pg,light:vv,monokai:Sv,dracula:Tv,nord:Pv,solarizedDark:Av,gruvbox:Ov,tokyoNight:Dv,catppuccin:Cv,highContrastDark:Fv,monochrome:Iv},IQ=Object.keys(y2);function b2(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 xt(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("#")&&b2(e)>.4?"black":"white"}function k2(e,t=500){let r=Ev[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var R2={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=>xt(e.palette.primary[500]),"primary-foreground":e=>xt(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=>xt(e.palette.secondary[500]),"secondary-foreground":e=>xt(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=>xt(e.accents.positive),"success-foreground":e=>xt(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=>xt(e.accents.warning),"warning-foreground":e=>xt(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=>xt(e.accents.critical),"danger-foreground":e=>xt(e.accents.critical),errorForeground:e=>xt(e.accents.critical),destructiveForeground:e=>xt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>xt(e.accents.info),"info-foreground":e=>xt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>xt(e.palette.primary[400]),"accent-foreground":e=>xt(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 Bv(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=Os(jv().currentTheme),r=R2[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return k2(o,i)}return e}var w2={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},Nv=Symbol("tuiuiu.perf-inspector-runtime-state");function _2(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function Gv(e){let t=e.id===0?null:$t(Nv,()=>Gv(Br())),r=_2(t?.config??w2);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function Wv(){let e=Ne();return Ce(Nv,()=>Gv(e),e)}function x2(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function E2(e,t){let r=T2().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 v2(e,t){e.ring.length!==e.config.maxFrames&&E2(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 S2(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 Hv(e,t={}){let r=Wv(),n=x2(e),o=Math.max(0,n-r.config.budget.frameMs),s=S2(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;NE({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(v2(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function T2(){let e=Wv(),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 P2={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function Ao(e,t){return QE(e,t,P2)}function Ag(e){XE(e)}function $n(e,t){tv(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),Hv(e,{renderer:t.renderer})}var A2=.4,O2=64;function Oo(){return typeof performance<"u"?performance.now():Date.now()}var Uv=new WeakMap;function D2(){let e=$v(),t=Uv.get(e);return t||(t=new Map,Uv.set(e,t)),t}function C2(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&&F2(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 F2(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o of r)if(e[o]!==t[o])return!1;return!0}function Vv(e,t){return!(e.x+e.width<=t.x||t.x+t.width<=e.x||e.y+e.height<=t.y||t.y+t.height<=e.y)}function zv(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 I2(e,t,r){let n=e.map(s=>zv(s,t,r)).filter(s=>s!==null).sort((s,i)=>s.y-i.y||s.x-i.x);if(n.length<=1)return n;let o=[];for(let s of n){let i=o[o.length-1];if(!i){o.push({...s});continue}if(!(Vv(i,s)||s.y<=i.y+i.height&&s.x<=i.x+i.width)){o.push({...s});continue}let l=Math.min(i.x,s.x),d=Math.min(i.y,s.y),c=Math.max(i.x+i.width,s.x+s.width),u=Math.max(i.y+i.height,s.y+s.height);i.x=l,i.y=d,i.width=c-l,i.height=u-d}return o}function M2(e,t,r){let n=new Map;for(let i of e){let a=zv(i,t,r);if(!a)continue;let l=a.x,d=a.x+a.width,c=a.y+a.height;for(let u=a.y;u<c;u++){let p=n.get(u);p?p.push({x1:l,x2:d}):n.set(u,[{x1:l,x2:d}])}}let o=[...n.keys()].sort((i,a)=>i-a),s=[];for(let i of o){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1}),l=c}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1})}return s}function Jv(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new ta(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,b=0;function h(F){L(t.columns||80,t.rows||24);let W=Ao(F,{width:s,height:i});_(W)}function _(F){L(F.info.viewport.width,F.info.viewport.height),B(F),xs(F.layout),$i(),c=F.root,u=F}function w(){l=!0,c?h(c):u&&B(u)}function A(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new ta(s,i),l=!0}function x(){!r&&d&&(Cs(t),d=!1)}function O(){let F=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:b,totalCells:F,updatePercentage:F>0?b/F*100:0}}function $(F,W){s=F,i=W,a.resize(s,i),l=!0}function L(F,W){!r&&!d&&(Fs(t),d=!0),(F!==s||W!==i)&&$(F,W)}function B(F){let W=Oo(),U=0,oe=0,se=a.getFrontBuffer(),re=a.getBackBuffer();p++;let Q=s*i,ae=q2(u,F),Se=Hr(),ve=Rv(Se),ke=wv(Se),J=Re=>{let Pe=Oo();t.write(Re),U+=Oo()-Pe,oe+=typeof Re=="string"?Buffer.byteLength(Re):Re.byteLength};if(!l&&n&&u){let{renderRects:Re,diffRects:Pe}=j2(u.drawCommands,F.drawCommands,s,i);if(At(F,"dirtyRectCount",Re.length),At(F,"diffRectCount",Pe.length),Re.length===0){ae&&J(ae),b=0,At(F,"patchCount",0),At(F,"outputByteCount",oe),it(F,"outputWriteMs",U),it(F,"deltaRenderMs",Math.max(0,Oo()-W-U)),$n(F,{renderer:"delta"});return}let Te=$2(Re);if(!(Re.length>O2||Te>Q*A2)){ve&&J(ve),B2(re,Re),G2(F.drawCommands,Re,re,F.reservedRegions);let Ae=se.diffRects(re,Pe);if(se.applyPatches(Ae),re.clearDamage(),b=Ae.length,At(F,"patchCount",Ae.length),o&&console.error(`[delta-render] dirty-rects: ${Re.length}, patches: ${Ae.length}, cells: ${Q}`),ae&&J(ae),Ae.length>0){let ye=Eg(Ae,s,!0);J(ye),g++}ke&&J(ke),At(F,"outputByteCount",oe),it(F,"outputWriteMs",U),it(F,"deltaRenderMs",Math.max(0,Oo()-W-U)),$n(F,{renderer:"delta"});return}}ve&&J(ve),re.clear(),Xv(F.drawCommands,re,F.reservedRegions);let ce=a.swap();if(b=ce.length,At(F,"patchCount",ce.length),o&&console.error(`[delta-render] patches: ${ce.length}, cells: ${Q}`),l||!n||ce.length>Q*.5){let Re=Od(a.getFrontBuffer());ae&&J(ae),J("\x1B[H"),J(Re),f++,l=!1,ke&&J(ke),At(F,"outputByteCount",oe),it(F,"outputWriteMs",U),it(F,"deltaRenderMs",Math.max(0,Oo()-W-U)),$n(F,{renderer:"delta"});return}if(ae&&J(ae),ce.length>0){let Re=Eg(ce,s,!0);J(Re),g++}l=!1,ke&&J(ke),At(F,"outputByteCount",oe),it(F,"outputWriteMs",U),it(F,"deltaRenderMs",Math.max(0,Oo()-W-U)),$n(F,{renderer:"delta"})}return{render:h,renderFrame:_,fullRedraw:w,clear:A,cleanup:x,stats:O,resize:$}}function L2(e){if(e.maxWidth<=0||e.text.length===0)return{x:e.x,y:e.y,width:0,height:0};let t=0,r=-1,n=mo(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,he(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 Og(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:L2(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 j2(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&&C2(a,l)||(a&&o.push(Og(a)),l&&o.push(Og(l)))}return{renderRects:I2(o,r,n),diffRects:M2(o,r,n)}}function $2(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function B2(e,t){let r=Ur();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function Yv(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function xr(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,he(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)||Yv(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function N2(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)&&!Yv(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function Qv(e,t,r){switch(e.type){case"box":W2(e,t,r);break;case"text":nS(e,t,r);break;case"terminal-image":H2(e,t);break}}function G2(e,t,r,n){for(let o of e){let s=Og(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(Vv(s,i)){Qv(o,r,n);break}}}}function Xv(e,t,r){for(let n of e)Qv(n,t,r)}function Zv(e,t=new qr(e.info.viewport.width,e.info.viewport.height)){return Xv(e.drawCommands,t,e.reservedRegions),t}function W2(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:b,clip:h}=e,_=a?Do(a):void 0,w=c?Do(c):void 0,A=f?Do(f):w;if(_||l!==" "){let x=d&&d!=="none"?1:0,O=n+x,$=o+x,L=Math.max(0,s-x*2),B=Math.max(0,i-x*2);for(let F=0;F<B;F++)N2(t,r,O,$+F,L,l,void 0,_,{},h)}if(d&&d!=="none"){let x=vg[d]??vg.single,O={},$=u?.top!==!1,L=u?.bottom!==!1,B=u?.left!==!1,F=u?.right!==!1;if($){let W=B?x.topLeft:x.top;xr(t,r,n,o,W,w,void 0,O,h);for(let U=1;U<s-1;U++)xr(t,r,n+U,o,x.top,w,void 0,O,h);if(s>1){let U=F?x.topRight:x.top;xr(t,r,n+s-1,o,U,w,void 0,O,h)}if(p&&s>4){let U=s-4,se=` ${an(mx(p),U,{truncationCharacter:""})} `,re=he(se),Q=g??"center",ae=Q==="left"?n+1:Q==="right"?n+Math.max(1,s-1-re):n+Math.max(1,Math.floor((s-re)/2)),Se=0,ve=ae;for(;Se<se.length&&ve<n+s-1;){let ke=go(se,Se);if(!ke)break;Se=ke.nextIndex;let J=he(ke.symbol);J<=0||ve+J>n+s-1||(xr(t,r,ve,o,ke.symbol,A,void 0,b?{...O,bold:!0}:O,h),ve+=J)}}}for(let W=1;W<i-1;W++)B&&xr(t,r,n,o+W,x.left,w,void 0,O,h),F&&s>1&&xr(t,r,n+s-1,o+W,x.right,w,void 0,O,h);if(L&&i>1){let W=B?x.bottomLeft:x.bottom;xr(t,r,n,o+i-1,W,w,void 0,O,h);for(let U=1;U<s-1;U++)xr(t,r,n+U,o+i-1,x.bottom,w,void 0,O,h);if(s>1){let U=F?x.bottomRight:x.bottom;xr(t,r,n+s-1,o+i-1,U,w,void 0,O,h)}}}}function H2(e,t){e.cellRender&&nS({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:rS(e),style:{},clip:e.clip},t,[])}function eS(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 tS(e){let t=eS(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 ra(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${tS(e)}:${e.x}:${e.y}`)}function Is(e){return[ra(e),e.x,e.y,tS(e)].join(":")}function rS(e){let t=eS(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:bd(e.protocol,e.source,t)}function qv(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 U2(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[ra(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(ra(s));if(!i||Is(s)!==Is(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=Ps.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${kd("kitty")}\x1B8`}}return o}function q2(e,t){let r=qv(e),n=qv(t),o=r.map(Is).join("|"),s=n.map(Is).join("|");if(e&&o===s)return"";let i=U2(r,n),a=new Map(r.map(l=>[ra(l),l]));for(let l of n){let d=a.get(ra(l));d&&Is(d)===Is(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=rS(l),i+="\x1B8")}return i}function Ms(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 K2(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=Ms(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(Ms);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function V2(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=Ms(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[Ms(e[t+2]),Ms(e[t+3]),Ms(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 Kv={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function z2(e,t,r,n={}){let o=[],s=t,i=r,a={...n},l="",d=0;for(;d<e.length;){if(e[d]==="\x1B"){let c=fo(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let b=p[g].split(":"),h=Number(b[0]||0);if(b.length>1){if(h===4){let _=Number(b[1]||0);_ in Kv&&(a.underline=Kv[_])}else if(h===38||h===48||h===58){let _=K2(b);_&&(h===38?s=_:h===48?i=_:a.underlineColor=_)}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:_,consumed:w}=V2(p,g);_&&(h===38?s=_:h===48?i=_:a.underlineColor=_),g+=w}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function nS(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?Do(a.color):void 0,u=d?void 0:a.backgroundColor?Do(a.backgroundColor):l?Do(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?Do(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=mo(i,s,a.wrap);if(g){let b=z2(f.join(`
|
|
199
|
+
`),c,u,p),h=0,_=0;for(let w of b){let A=0;for(;A<w.text.length;){let x=go(w.text,A);if(!x)break;let O=x.symbol;if(O===`
|
|
200
|
+
`){_++,h=0,A=x.nextIndex;continue}let $=he(O);$>0&&(xr(t,r,n+h,o+_,O,w.fg,w.bg,w.attrs,e.clip),h+=$),A=x.nextIndex}}}else for(let b=0;b<f.length;b++){let h=0,_=0;for(;_<f[b].length;){let w=go(f[b],_);if(!w)break;let A=w.symbol;if(h>=s)break;let x=he(A);x>0&&(xr(t,r,n+h,o+b,A,c,u,p,e.clip),h+=x),_=w.nextIndex}}}function Do(e){let t=D2(),r=t.get(e);if(r)return r;let n=Bv(e);return t.set(e,n),n}var eX=Symbol("tuiuiu.delta-renderer-state");function oS(){return typeof performance<"u"?performance.now():Date.now()}function iS(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=iS(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function J2(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 Cg(e,t={}){let r=oS(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=iS(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new qr(e.info.viewport.width,u);Zv(e,p);let g=Od(p,n),f=X2(e,o);return it(e,"ansiRenderMs",oS()-r),f+g}function aS(e,t,r){let n=J2(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=Ao(e,{width:n.width,height:s});return Cg(i,{fullHeight:n.fullHeight})}function lS(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 dS(e){let t=lS(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 na(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${dS(e)}:${e.x}:${e.y}`)}function Ls(e){return[na(e),e.x,e.y,dS(e)].join(":")}function Y2(e){let t=lS(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:bd(e.protocol,e.source,t)}function sS(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Dg(e,t){if(!gE(t))return e;let r=Hr();return r.multiplexer?Dd(e,r.multiplexer):e}function Q2(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[na(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(na(s));if(!i||Ls(s)!==Ls(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Dg(`\x1B7\x1B[H${Ps.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Dg(`\x1B7\x1B[H${kd("kitty")}\x1B8`,"kitty")}}return o}function X2(e,t){let r=sS(e);if(r.length===0&&!t)return"";let n=sS(t),o=n.map(Ls).join("|"),s=r.map(Ls).join("|");if(t&&o===s)return"";let i=Q2(n,r),a=new Map(n.map(l=>[na(l),l]));for(let l of r){let d=a.get(na(l));if(d&&Ls(d)===Ls(l))continue;let c=Y2(l);i+=Dg(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Fd(e){let{value:t,isNew:r}=yr(null);if(r||t===null){let n=Yi(()=>Rr(e)),o=ar();return br(o,n),n}return t}function cS(e){let{value:t,isNew:r}=yr(null);if(r||t===null){let n=Yi(e);return br(ar(),n),n}return t}function oa(e){let{value:t,isNew:r}=yr(null);if(r||t===null){let n=ar(),o={effect:null,fn:e,dispose:null};br(n,o);let s=new In(()=>{let a=Wr(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,yo(i,n),i}else return t.fn=e,t.dispose}var RX=Symbol("tuiuiu.keyboard-protocol-runtime-state");function uS(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,b)=>{if(f===void 0)return b??null;if(!/^\d+$/u.test(f))return null;let h=Number(f);return Number.isSafeInteger(h)?h:null},n=f=>f>=0&&f<=1114111&&!(f>=55296&&f<=57343),o=r(t[1],0),s=r(t[2]),i=r(t[3]),a=r(t[4],1),l=r(t[5],1),d=t[6];if(o===null||a===null||a<1||l===null||s!==null&&!n(s)||i!==null&&!n(i))return null;let c=a-1,u={shift:!!(c&1),alt:!!(c&2),ctrl:!!(c&4),super:!!(c&8),hyper:!!(c&16),meta:!!(c&32),capsLock:!!(c&64),numLock:!!(c&128)},p="press";l===2?p="repeat":l===3&&(p="release");let g="";if(d){let f=d.split(":").map(b=>r(b));if(f.length===0||f.some(b=>b===null||!n(b)))return null;g=f.map(b=>String.fromCodePoint(b)).join("")}else o>=32&&o<127&&(g=String.fromCharCode(o));return{keyCode:o,baseKey:i??void 0,shiftedKey:s??void 0,text:g,eventType:p,modifiers:u}}var Fg="\x1B[200~",js="\x1B[201~",Z2="\x1B[I",e5="\x1B[O";function pS(){return"\x1B[?2004h"}function fS(){return"\x1B[?2004l"}function gS(){return"\x1B[?1004h"}function mS(){return"\x1B[?1004l"}function hS(e){return e===Z2?{focused:!0}:e===e5?{focused:!1}:null}function yS(){return"\x1B[?1049h"}function Ig(){return"\x1B[?1049l"}var t5={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"},r5=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),n5=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),o5=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,s5=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,i5=/^\x1b\[27;(\d+);(\d+)~/;function a5(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 kS(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function bS(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!kS(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function l5(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 Mg(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===`
|
|
193
201
|
`)return r.return=!0,{input:n,key:r,length:1};if(t==="\x1B\r"||t===`\x1B
|
|
194
|
-
`)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=U2.exec(t);if(o){let d=Zv(o[0]);if(d){r.shift=d.modifiers.shift,r.option=d.modifiers.alt,r.ctrl=d.modifiers.ctrl,r.meta=d.modifiers.alt||d.modifiers.super||d.modifiers.hyper||d.modifiers.meta,r.eventType=d.eventType;let c=o[0].split(";").length>=3;return n=iS(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=q2.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(K2(r,d)&&aS(c))return n=iS(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=H2.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=N2[c];return p&&V2(r,p),G2.has(c)&&(r.shift=!0),W2.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 Dg(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=yr(null);if(i||s===null){let c=function(){return Hr(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=sr();br(d,l),r&&(l.handlerId=ad(a,{priority:n,stopPropagation:o})),ho(()=>{l.handlerId!==null&&(Bi(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=ad(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(Bi(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&Bi(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=ad(s.wrapper,{priority:n,stopPropagation:o}))}}function lS(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(lS):typeof e=="string"||typeof e=="number"?[yt({children:String(e)})]:[e]}function Er(e,...t){return{type:"box",props:{...e},children:lS(t.length>0?t:e.children)}}function yt(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 z2=0,dS=Symbol("tuiuiu.focus-zone-manager"),Fg=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 Fe(dS,()=>new e)}static reset(){nd(dS)}[Br](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${z2++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function cS(){return Fg.getInstance()}var na=class{zoneManager=cS();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as J2}from"node:string_decoder";function uS(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function Y2(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function Q2(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 X2(e){let t=Q2(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function Z2(e){let t=Math.min(e.length,Ls.length-1);for(let r=t;r>0;r--)if(e.endsWith(Ls.slice(0,r)))return r;return 0}var Ig=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new J2("utf8");pendingInput="";pasteBuffer=null;pasteBufferBytes=0;pasteOverflowed=!1;pasteTerminatorPrefix="";disposed=!1;constructor(t={}){this.maxPasteBytes=t.maxPasteBytes??1024*1024,this.maxPendingEscapeBytes=t.maxPendingEscapeBytes??4096,this.pasteHeuristicThreshold=t.pasteHeuristicThreshold??32,uS(this.maxPasteBytes,"maxPasteBytes"),uS(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),Y2(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}=X2(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&&Ls.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(Ls);if(o===-1){let s=Z2(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+Ls.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(Ag);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+Ag.length),r);if(i===null)return r;n=i;continue}return n.length>this.pasteHeuristicThreshold&&!n.includes("\x1B")?(Buffer.byteLength(n,"utf8")<=this.maxPasteBytes&&r.push({type:"paste",text:n,bracketed:!1}),r):(r.push({type:"input",input:n}),r)}return r}};function pS(e={}){return new Ig(e)}function fS(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=b=>{typeof r.write=="function"&&r.write(b)},p=b=>{if(!(d||!t.isTTY||!t.setRawMode)){if(b){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(rS()),a&&o&&u(eS()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let b,y=_=>{try{_()}catch(w){b??=w}};if(c=0,y(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),y(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&y(()=>u(nS())),a&&o&&y(()=>u(tS())),b)throw b}}}function Id(){let e=ln();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Dd=new WeakSet,Fd=new WeakSet;function Mg(e,t,r={}){let n=Nf();if(n&&ln(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(Dd.has(e)||Fd.has(t))throw new Error("[tuiuiu] A terminal stream cannot be shared by simultaneous apps. Use distinct stdin/stdout pairs or dispose the current owner first.");let u=cx();Dd.add(e),Fd.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,b,y=!1,_=o,w,O=Ve(u,()=>(XE({stdout:t}),!!(e.isTTY&&p&&Ur().focusEvents))),v=fS({stdin:e,stdout:t,focusEvents:O,bracketedPaste:!0}),A=v.setRawMode,$=v.isRawModeEnabled;try{v.start()}catch(J){Dd.delete(e),Fd.delete(t);try{v.dispose()}finally{ws(u)}throw J}dg(u);let L=Ve(u,()=>new na);Kf(L,u);let B=pS({maxPasteBytes:a,maxPendingEscapeBytes:l}),F=null,W=null,U=()=>{F&&(clearTimeout(F),F=null)},oe=()=>{U(),F=setTimeout(()=>{B.abortPaste(),F=null},Math.max(0,c))},se=J=>{let ce=J;for(;ce.length>0;){let Re=oS(ce.slice(0,3));if(Re){Vt(()=>{lg(Re.focused)}),ce=ce.slice(3);continue}if(Yf(ce)){let ye=Ui(ce);if(ye){Vt(()=>{Ps().handleMouseEvent(ye.event),Dx(ye.event)}),ce=ce.slice(ye.length);continue}}let{input:Pe,key:Te,length:_e}=Cg(ce),Ae=_e>0?_e:1;if(ce=ce.slice(Ae),s&&Te.ctrl&&Pe==="c"){ke();return}if(_){if(Te.tab&&!Te.shift){Vt(()=>{L.focusNext()});continue}if(Te.tab&&Te.shift){Vt(()=>{L.focusPrevious()});continue}if(Te.escape&&L.getActiveId()!==void 0){Vt(()=>{L.blur()});continue}}Vt(()=>{Ox(Pe,Te)})}},te=J=>{for(let ce of J){if(y)return;ce.type==="paste"?Vt(()=>{Ix(ce.text,ce.bracketed)}):se(ce.input)}},Q=()=>{y||(W&&(clearTimeout(W),W=null),B.status.pendingEscapeBytes>0&&(W=setTimeout(le,Math.max(0,d))),B.status.pasteActive?oe():U())},le=()=>{W=null,!y&&(te(B.flushPendingInput()),Q())},Se=an(u,J=>{y||(te(B.push(J)),Q())});e.on("data",Se);let ve=()=>{if(y)return;y=!0;let J=ce=>{try{ce()}catch(Re){console.error("[tuiuiu] Error while disposing app state:",Re)}};try{J(()=>e.off("data",Se)),W&&(clearTimeout(W),W=null),U(),J(()=>B.dispose()),J(()=>v.dispose()),J(()=>id(u)),J(()=>dg(u)),J(()=>Cx(u)),J(()=>Mx(u)),J(()=>Fx(u)),J(()=>ud(u)),J(()=>qx(u)),J(()=>Kf(null,u)),J(()=>{ln(u)===w&&qf(null,u)})}finally{Dd.delete(e),Fd.delete(t),g.clear(),ws(u)}},ke=J=>{if(f)return;f=!0,b=J;let ce=[...g];g.clear(),ve();for(let Re of ce)try{Re(J)}catch(Pe){console.error("[tuiuiu] Error in app exit callback:",Pe)}J&&console.error(J),i&&process.exit(J?1:0)};return w={exit:ke,dispose:ve,stdin:e,stdout:t,writeLine:J=>{let ce=bs(String(J)).replace(/\r\n?/g,`
|
|
202
|
+
`)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=s5.exec(t);if(o){let d=uS(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=bS(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=i5.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(a5(r,d)&&kS(c))return n=bS(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=o5.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=t5[c];return p&&l5(r,p),r5.has(c)&&(r.shift=!0),n5.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 Lg(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=yr(null);if(i||s===null){let c=function(){return Wr(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=ar();br(d,l),r&&(l.handlerId=dd(a,{priority:n,stopPropagation:o})),yo(()=>{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=dd(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=dd(s.wrapper,{priority:n,stopPropagation:o}))}}function RS(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(RS):typeof e=="string"||typeof e=="number"?[ht({children:String(e)})]:[e]}function Er(e,...t){return{type:"box",props:{...e},children:RS(t.length>0?t:e.children)}}function ht(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 d5=0,wS=Symbol("tuiuiu.focus-zone-manager"),jg=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 Ce(wS,()=>new e)}static reset(){sd(wS)}[$r](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${d5++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function _S(){return jg.getInstance()}var sa=class{zoneManager=_S();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as c5}from"node:string_decoder";function xS(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function u5(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function p5(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 f5(e){let t=p5(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function g5(e){let t=Math.min(e.length,js.length-1);for(let r=t;r>0;r--)if(e.endsWith(js.slice(0,r)))return r;return 0}var $g=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new c5("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,xS(this.maxPasteBytes,"maxPasteBytes"),xS(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),u5(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}=f5(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&&js.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(js);if(o===-1){let s=g5(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+js.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(Fg);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+Fg.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 ES(e={}){return new $g(e)}function vS(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=b=>{typeof r.write=="function"&&r.write(b)},p=b=>{if(!(d||!t.isTTY||!t.setRawMode)){if(b){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(gS()),a&&o&&u(pS()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let b,h=_=>{try{_()}catch(w){b??=w}};if(c=0,h(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),h(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&h(()=>u(mS())),a&&o&&h(()=>u(fS())),b)throw b}}}function Ld(){let e=dn();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Id=new WeakSet,Md=new WeakSet;function Bg(e,t,r={}){let n=Uf();if(n&&dn(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(Id.has(e)||Md.has(t))throw new Error("[tuiuiu] A terminal stream cannot be shared by simultaneous apps. Use distinct stdin/stdout pairs or dispose the current owner first.");let u=_x();Id.add(e),Md.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,b,h=!1,_=o,w,A=Ke(u,()=>(cv({stdout:t}),!!(e.isTTY&&p&&Hr().focusEvents))),x=vS({stdin:e,stdout:t,focusEvents:A,bracketedPaste:!0}),O=x.setRawMode,$=x.isRawModeEnabled;try{x.start()}catch(J){Id.delete(e),Md.delete(t);try{x.dispose()}finally{_s(u)}throw J}fg(u);let L=Ke(u,()=>new sa);Yf(L,u);let B=ES({maxPasteBytes:a,maxPendingEscapeBytes:l}),F=null,W=null,U=()=>{F&&(clearTimeout(F),F=null)},oe=()=>{U(),F=setTimeout(()=>{B.abortPaste(),F=null},Math.max(0,c))},se=J=>{let ce=J;for(;ce.length>0;){let Re=hS(ce.slice(0,3));if(Re){zt(()=>{pg(Re.focused)}),ce=ce.slice(3);continue}if(eg(ce)){let ye=Ki(ce);if(ye){zt(()=>{As().handleMouseEvent(ye.event),Ux(ye.event)}),ce=ce.slice(ye.length);continue}}let{input:Pe,key:Te,length:_e}=Mg(ce),Ae=_e>0?_e:1;if(ce=ce.slice(Ae),s&&Te.ctrl&&Pe==="c"){ke();return}if(_){if(Te.tab&&!Te.shift){zt(()=>{L.focusNext()});continue}if(Te.tab&&Te.shift){zt(()=>{L.focusPrevious()});continue}if(Te.escape&&L.getActiveId()!==void 0){zt(()=>{L.blur()});continue}}zt(()=>{Wx(Pe,Te)})}},re=J=>{for(let ce of J){if(h)return;ce.type==="paste"?zt(()=>{Kx(ce.text,ce.bracketed)}):se(ce.input)}},Q=()=>{h||(W&&(clearTimeout(W),W=null),B.status.pendingEscapeBytes>0&&(W=setTimeout(ae,Math.max(0,d))),B.status.pasteActive?oe():U())},ae=()=>{W=null,!h&&(re(B.flushPendingInput()),Q())},Se=ln(u,J=>{h||(re(B.push(J)),Q())});e.on("data",Se);let ve=()=>{if(h)return;h=!0;let J=ce=>{try{ce()}catch(Re){console.error("[tuiuiu] Error while disposing app state:",Re)}};try{J(()=>e.off("data",Se)),W&&(clearTimeout(W),W=null),U(),J(()=>B.dispose()),J(()=>x.dispose()),J(()=>ld(u)),J(()=>fg(u)),J(()=>Hx(u)),J(()=>Vx(u)),J(()=>qx(u)),J(()=>fd(u)),J(()=>nE(u)),J(()=>Yf(null,u)),J(()=>{dn(u)===w&&Jf(null,u)})}finally{Id.delete(e),Md.delete(t),g.clear(),_s(u)}},ke=J=>{if(f)return;f=!0,b=J;let ce=[...g];g.clear(),ve();for(let Re of ce)try{Re(J)}catch(Pe){console.error("[tuiuiu] Error in app exit callback:",Pe)}J&&console.error(J),i&&process.exit(J?1:0)};return w={exit:ke,dispose:ve,stdin:e,stdout:t,writeLine:J=>{let ce=ks(String(J)).replace(/\r\n?/g,`
|
|
195
203
|
`);t.write(`${ce.replace(/\n+$/u,"")}
|
|
196
|
-
`)},onExit:J=>{if(f){try{J(b)}catch(ce){console.error("[tuiuiu] Error in app exit callback:",ce)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:_,setAutoTabNavigation:J=>{_=J},setRawMode:
|
|
204
|
+
`)},onExit:J=>{if(f){try{J(b)}catch(ce){console.error("[tuiuiu] Error in app exit callback:",ce)}return()=>{}}return g.add(J),()=>{g.delete(J)}},autoTabNavigation:_,setAutoTabNavigation:J=>{_=J},setRawMode:O,get rawModeEnabledCount(){return x.rawModeEnabledCount},isRawModeEnabled:$,isTerminalFocused:()=>wr(u),enqueueExternalUpdate:J=>{zt(()=>{J()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},Jf(w,u),w}function Ng(e){let t=dn();t&&(t.clearScreen=e)}function jd(e){let t=dn();t&&(t.writeLine=e??(r=>{let n=ks(String(r)).replace(/\r\n?/g,`
|
|
197
205
|
`);t.stdout.write(`${n.replace(/\n+$/u,"")}
|
|
198
|
-
`)}))}function
|
|
206
|
+
`)}))}function $d(e){let t=dn();if(t){if(!e){t.enqueueExternalUpdate=r=>{zt(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function Gg(){let[e,t]=cS(()=>Rr(pv()));return oa(()=>fv(n=>{t(n)})),e()}function Wg(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=yr(null);if(i||s===null){let a=ar(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=Wr(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=Wr(a);c&&c.callback()},d.delay))},stop:()=>{let d=Wr(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>Wr(a)?.running??!1};return br(a,l),yo(l.stop,a),n&&(o&&e(),l.start()),{start:l.start,stop:l.stop,isRunning:l.isRunning}}else return s.callback=e,s.delay=t,n!==s.enabled&&(s.enabled=n,n?s.start():s.stop()),{start:s.start,stop:s.stop,isRunning:s.isRunning}}var vr="\x1B[",Hg=`${vr}H`,ia=`${vr}J`,Bd=`${vr}K`,SS=e=>{let t="";for(let r=0;r<e;r++)t+=vr+"2K",r<e-1&&(t+=vr+"1A");return e>0&&(t+="\r"),t},TS=e=>e>0?`${vr}${e}A`:"",m5=`${vr}1E`,h5=`${vr}2K`;function y5(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${vr}${n+1}H`:Hg,d=c=>{!r&&!a&&(Fs(e),a=!0);let u=c+`
|
|
199
207
|
`;if(u===o)return;let p=c.split(`
|
|
200
|
-
`),g=p.map(w=>he(w)),f=p.length,b=[];for(let w=0;w<p.length;w++){let
|
|
201
|
-
`+
|
|
208
|
+
`),g=p.map(w=>he(w)),f=p.length,b=[];for(let w=0;w<p.length;w++){let A=p[w],x=g[w],O=i[w]??0;x<O?b.push(A+Bd):b.push(A)}let h=s-f,_="";if(h>0)for(let w=0;w<h;w++)_+=`
|
|
209
|
+
`+Bd;o=u,s=f,i=g,e.write(l+b.join(`
|
|
202
210
|
`)+_+`
|
|
203
|
-
`+
|
|
211
|
+
`+ia)};return d.clear=()=>{e.write(l+ia),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(Cs(e),a=!1)},d.sync=c=>{let u=c.split(`
|
|
204
212
|
`);o=c+`
|
|
205
|
-
`,s=u.length,i=u.map(p=>he(p))},d}function
|
|
213
|
+
`,s=u.length,i=u.map(p=>he(p))},d}function b5(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${vr}${n+1}H`:Hg,l=d=>{!r&&!i&&(Fs(e),i=!0);let c=d+`
|
|
206
214
|
`;if(c===s)return;let u=o.length,p=c.split(`
|
|
207
215
|
`),g=p.length,f=g-1;if(c===`
|
|
208
|
-
`||s.length===0){e.write(a+
|
|
209
|
-
`)}e.write(b.join("")),s=c,o=p};return l.clear=()=>{e.write(a+
|
|
216
|
+
`||s.length===0){e.write(a+SS(u)+c),s=c,o=p;return}let b=[];g<u?b.push(SS(u-g+1),TS(f)):b.push(TS(u-1));for(let h=0;h<f;h++){if(p[h]===o[h]){b.push(m5);continue}b.push(h5+p[h]+`
|
|
217
|
+
`)}e.write(b.join("")),s=c,o=p};return l.clear=()=>{e.write(a+ia),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(Cs(e),i=!1)},l.sync=d=>{let c=d+`
|
|
210
218
|
`;s=c,o=c.split(`
|
|
211
|
-
`)},l}function
|
|
212
|
-
`),p=u.length,g=c;if(g=u.map(b=>b+
|
|
213
|
-
`),s>p){let b=s-p;for(let
|
|
214
|
-
`+
|
|
215
|
-
`).length},l}function
|
|
216
|
-
`),
|
|
217
|
-
`).length,
|
|
218
|
-
`).replace(/\n+$/u,"");Ae.push(Ee),X(
|
|
219
|
-
`))}
|
|
220
|
-
`):ce(Or);let
|
|
221
|
-
`),ae()}),waitUntilExit:()=>ye,clear:()=>Ve($,()=>{s||(gt&&(clearTimeout(gt),gt=null),rt=null,ue=!1,Tr(),W?X(()=>{jn()}):jn())}),writeLine:je}}var p5={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 Sr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function Ug(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function f5(e,t,r,n=1,o){let s=[],i=Sr(n,1),a=o===void 0?void 0:Sr(o,0);for(let d of e){let c=he(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,he(f))}let u=Ug(d);d.width!==void 0?c=Sr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):Sr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,Sr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,Sr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:Ug(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((b,y,_)=>b+(Ug(e[_])>0?0:y),0),p=l.reduce((b,y)=>b+s[y.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let b=l.reduce((y,_)=>y+_.flex,0);for(let y of l){let _=Math.floor(y.flex/b*f);s[y.index]=s[y.index]+_,y.col.maxWidth!==void 0&&(s[y.index]=Math.min(s[y.index],Sr(y.col.maxWidth,s[y.index])))}}}if(r!==void 0){let d=Sr(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((y,_)=>{let w=Sr(e[_].minWidth,3);return Math.max(0,y-w)}),b=f.reduce((y,_)=>y+_,0);if(b>0)for(let y=0;y<s.length;y++){let _=Math.floor(f[y]/b*g);s[y]=Math.max(Sr(e[y].minWidth,3),s[y]-_)}}}return s}function _S(e,t,r){let n=sn(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=he(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 g5(e,t){return sn(e,t,{truncationCharacter:"\u2026"})}function m5(){try{return process.stdout.columns||80}catch{return 80}}function qg(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,b=g?0:Sr(d,1),y=p5[n],_=n!=="none",w=p??m5(),O=f5(t,r,u,b,w),v=[],A=($,L,B,F)=>{if(!_)return Er({});let W=[$];for(let U=0;U<O.length;U++)W.push(F.repeat(O[U]+b*2)),U<O.length-1&&W.push(L);return W.push(B),Er({flexDirection:"row"},yt({color:o},W.join("")))};if(_&&v.push(A(y.topLeft,y.topMid,y.topRight,y.horizontal)),s){let $=[];_&&$.push(yt({color:o},y.vertical));for(let L=0;L<t.length;L++){let B=t[L],F=" ".repeat(b),W=B.headerAlign??B.align??"left",U=_S(B.header,O[L],W);$.push(yt({color:o},F),yt({color:i.color??B.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":L+1},U),yt({color:o},F)),_&&$.push(yt({color:o},y.vertical))}v.push(Er({flexDirection:"row",role:"row","aria-rowindex":1},...$)),_&&v.push(A(y.leftMid,y.midMid,y.rightMid,y.horizontal))}for(let $=0;$<r.length;$++){let L=r[$],B=a&&$%2===1,F=t.map((oe,se)=>{let te=L[oe.key];oe.format&&(te=oe.format(te,L));let Q=String(te??"");if(oe.wrap)return go(Q,O[se],"wrap");let le=Q.replace(/\r?\n/g," ");return[oe.truncate===!1?sn(le,O[se],{truncationCharacter:""}):g5(le,O[se])]}),W=Math.max(1,...F.map(oe=>oe.length)),U=[];for(let oe=0;oe<W;oe++){let se=[];_&&se.push(yt({color:o},y.vertical));for(let te=0;te<t.length;te++){let Q=t[te],le=" ".repeat(b),Se=_S(F[te]?.[oe]??"",O[te],Q.align??"left"),ve=Q.color??(B?l:void 0);se.push(yt({color:o},le),yt({color:ve,dim:B,role:oe===0?"cell":void 0,"aria-colindex":oe===0?te+1:void 0},Se),yt({color:o},le)),_&&se.push(yt({color:o},y.vertical))}U.push(Er({flexDirection:"row"},...se))}v.push(Er({flexDirection:"column",role:"row","aria-rowindex":$+(s?2:1)},...U)),c&&$<r.length-1&&_&&v.push(A(y.leftMid,y.midMid,y.rightMid,y.horizontal))}return _&&v.push(A(y.bottomLeft,y.bottomMid,y.bottomRight,y.horizontal)),Er({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...v)}function $d(e,t){return yt({wrap:"truncate-end"},t?so(e):e)}function h5(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>$d(c,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(c=>({...c})),l=e.table.rows.map(c=>Object.fromEntries(Object.entries(c).map(([u,p])=>[u,r?so(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>$d(c,r)),qg({columns:a,data:l,borderStyle:"none",availableWidth:d,maxWidth:d,compact:!1,padding:1,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!0,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(c=>$d(c,r))]}function y5(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=>$d(a,s)):h5(e.frame.dashboard,t,s);return Er({flexDirection:"column",width:t,height:r,overflow:"hidden"},Er({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),yt({dim:!s,wrap:"truncate-end"},o))}async function xS(e){let t=!1;function r(){let o=Id(),s=jg(),[i,a]=Cd({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Cd(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 ra(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),$g(c,e.refreshMs??1e3),Dg((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))}),y5({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Hg(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as T5}from"node:child_process";import{readFileSync as P5}from"node:fs";import{dirname as AS,join as A5}from"node:path";import{createHash as b5}from"node:crypto";var k5="project.name";function vS(e){let t=ms(e,k5)?.trim();return t===void 0||t===""?void 0:t}var R5=8,SS="project";function TS(e){let t=v5(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:w5(e.remoteUrl)??{name:_5(e.checkoutPath,t),source:"basename"},o=E5(t??Kg(e.checkoutPath));return{name:n.name,slug:`${x5(n.name)}-${o}`,hash:o,source:n.source}}function PS(e){let t=(e??"").trim();if(t==="")return;let r=t.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,""),n=/^[^/]*?:(?!\d)(.+)$/.exec(r),s=(n?n[1]:r.replace(/^[^/]*/,"")).replace(/\.git$/,"").split("/").map(i=>i.trim()).filter(i=>i!=="");if(s.length!==0)return s.slice(-2).join("/")}function w5(e){let t=PS(e);return t===void 0?void 0:{name:t,source:"remote"}}function _5(e,t){let r=t===void 0?"":ES(S5(t));if(r!=="")return r;let n=ES(Kg(e));return n===""?SS:n}function x5(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?SS:r}function E5(e){return b5("sha256").update(e).digest("hex").slice(0,R5)}function v5(e){let t=Kg(e??"");return t===""?void 0:t}function Kg(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function ES(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function S5(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var O5=2e3;function OS(e){return C5(e).name}function C5(e){let t=zg(e),r=Vg(e,["rev-parse","--absolute-git-dir"])??Vg(e,["rev-parse","--git-common-dir"]),n=Vg(e,["remote","get-url","origin"]);return TS({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function zg(e){let t=T_(e,A5(".red","config.yaml"));if(t==null)return{};let r;try{r=P5(t,"utf8")}catch{return{}}let n=vS(r),o=AS(AS(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function Vg(e,t){try{let r=T5("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:O5}).trim();return r===""?void 0:r}catch{return}}function Bd(e){let t=zg(e);return t.configText==null?{label:null}:{configText:t.configText,label:OS(e)}}var D5="plugins.dev.statusline",F5="dev.statusline";function I5(e){let t=[],r=a=>{for(let l of[D5,F5]){let d=`${l}.${a}`,c=ms(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 M5={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 Nd(e){let{values:t,positionals:r}=Zr(e,M5),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 Gd(e={}){let t=e.configText==null?{config:{},warnings:[]}:I5(e.configText),r=e.flags??{};return{options:{...Ne,mode:r.mode??t.config.mode??Ne.mode,project:r.project!==void 0?r.project:e.project??Ne.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Ne.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Ne.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Ne.maxWidth,verbose:r.verbose??t.config.verbose??Ne.verbose},warnings:t.warnings}}async function Jg(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Nd(e),s=Bd(t.cwd??process.cwd()),i=Gd({...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}
|
|
222
|
-
`);let a=t.paths??
|
|
223
|
-
`),{lines:[`redskilled unreachable \u2014 ${
|
|
219
|
+
`)},l}function k5(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${vr}${n+1}H`:Hg,l=d=>{!r&&!i&&(Fs(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
|
|
220
|
+
`),p=u.length,g=c;if(g=u.map(b=>b+Bd).join(`
|
|
221
|
+
`),s>p){let b=s-p;for(let h=0;h<b;h++)g+=`
|
|
222
|
+
`+Bd}e.write(a+g+ia),o=c,s=p};return l.clear=()=>{e.write(a+ia),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(Cs(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
|
|
223
|
+
`).length},l}function Ug(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?k5(e,t):r?b5(e,t):y5(e,t)}function PS(e,t=200){let r=!1,n=null;return{schedule:()=>{r||(r=!0,n=setTimeout(()=>{r=!1,n=null,e()},t))},flush:()=>{n&&(clearTimeout(n),n=null),r=!1,e()},cancel:()=>{n&&(clearTimeout(n),n=null),r=!1},isPending:()=>r}}var AS=Symbol("tuiuiu.overlay-runtime-state");function R5(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function OS(e){let t=e.id===0?null:$t(AS,()=>OS(Br())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[$r](){R5(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function w5(){let e=Ne();return Ce(AS,()=>OS(e),e)}function qg(e,t){let r=w5();r.terminalSize={width:e,height:t}}function DS(e){return"__reactive"in e}function _5(e){let t=e.__reactive(),r=jt(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function CS(e){let t=0,r=n=>{DS(n)&&_5(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function FS(e){let t=new Set,r=n=>{DS(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function x5(e){return!!e.props.__static}function E5(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${jt(e.children??[])}`}function v5(e){let t=[];function r(o){if(x5(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 Kg={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},S5={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function Vg(e,t={}){let r=t.screenMode?S5[t.screenMode]:void 0,{stdout:n=process.stdout,stdin:o=process.stdin,debug:s=!1,exitOnCtrlC:i=!0,exitProcess:a=!1,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u,maxFps:p=30,showCursor:g=!1,autoTabNavigation:f=!0,useDeltaRenderer:b=!0,fixedStep:h}=t,_=t.clearOnStart??r?.clearOnStart??!0,w=t.fullHeight??r?.fullHeight??!1,A=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 x=Bg(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),O=zf(x);if(!O)throw x.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let $=O,L=()=>{},B=[];try{L=Jx(),B.push(cn(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),B.push(cn(()=>{n.write("\x1B[?1004l")})),B.push(cn(()=>{n.write("\x1B[?2004l")})),A&&(n.write(yS()),B.push(cn(()=>{n.write(Ig())})))}catch(Z){for(let Ee of B.splice(0))try{Ee()}catch{}try{L()}catch{}throw x.dispose(),_s($),Z}let F=typeof e=="function"?e:()=>e,W=!1,U=0,oe=0,se=0,re,Q,ae=()=>{W=!1,we()},Se=()=>{U++,U===1&&(oe=0,se=0)},ve=()=>U===0?{bytes:0,writeMs:0}:(U--,U===0?{bytes:oe,writeMs:se}:{bytes:0,writeMs:0}),ke=Z=>{let Ee=U>0?performance.now():0,gt=n.write(Z);return U>0&&(se+=performance.now()-Ee,oe+=typeof Z=="string"?Buffer.byteLength(Z):Z.byteLength),!gt&&!W&&!_e&&(W=!0,n.once("drain",ae)),gt},J={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(Z){return ke(Z)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},ce=Ug(J,{showCursor:g,incremental:!1,fullScreen:w,topOffset:0}),Re=0,Pe=null,Te="",_e=!1,Ae=[],ye,le,be,Ye=new Set,He=0,pt=()=>{Re=He,ce=Ug(J,{showCursor:g,incremental:!1,fullScreen:w,topOffset:Re}),Te=""},Tr=()=>{ce.clear(),ke(Kg.clearTerminal),Te="",Ye.clear(),He=0,Ae=[],pt()},Kr=Z=>{ce.clear(),ke(`${Z}
|
|
224
|
+
`),He+=Z.split(`
|
|
225
|
+
`).length,pt()};Ke($,()=>Ng(Tr)),ye=new Promise((Z,Ee)=>{le=Z,be=Ee});let un=x.dispose;x.dispose=()=>{if(_e){un();return}Bn(),le()};let Nt=p>0?Math.ceil(1e3/p):0;Ke($,()=>{BE({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:Nt>0?Nt:16.67}),qg(n.columns||80,n.rows||24)});let Vr=0,ue=!1,ft=null,rt=null,Qe=null,at=0,Et=0,lt=0,Pr=0,zr=null,xe=[],V=!1,I=null;b&&(I=Jv({stdout:J,showCursor:g,useDelta:!0})),_&&!s&&ke(Kg.clearTerminal);let R=Nt>0?Nt:16,N=PS(()=>{xe.length!==0&&zt(()=>{for(;xe.length>0;){let Z=xe;xe=[];for(let Ee of Z)Ee()}})},R);Ke($,()=>$d({enqueue(Z){_e||(xe.push(Z),N.schedule())},flush(){_e||N.flush()},isPending(){return xe.length>0||N.isPending()}}));let H=()=>{let Z=performance.now();Q=Date.now(),jx("component");try{Pe=F(),CS(Pe)}finally{$x(),re=performance.now()-Z}},K=()=>Ke($,()=>{H(),pn()});function X(Z){_e||(rt=Z,!W&&we())}function we(){if(ue||_e||W||!rt)return;let Ee=Date.now()-Vr,gt=Vr===0||Ee>=Nt?0:Nt-Ee,Me=()=>{let Gt=rt;if(rt=null,ue=!1,ft=null,!_e)try{Gt?.()}catch(yt){x.exit(yt instanceof Error?yt:new Error(String(yt)))}};if(ue=!0,gt===0){queueMicrotask(Me);return}ft=setTimeout(Me,gt)}let je=Z=>Ke($,()=>{if(_e)return;let Ee=ks(String(Z)).replace(/\r\n?/g,`
|
|
226
|
+
`).replace(/\n+$/u,"");Ae.push(Ee),X(pn)});Ke($,()=>jd(je));function Ie(){if(!h||_e||(h.pauseWhenUnfocused??!0)&&!wr())return;let Ee=1e3/Math.max(1,h.updateFps),gt=Math.max(0,Math.ceil(Ee-at));Qe=setTimeout(dr,gt)}function dr(){if(!(!h||_e))try{if((h.pauseWhenUnfocused??!0)&&!wr()){Qe=null,at=0,Et=Date.now();return}let Ee=1e3/h.updateFps,gt=h.maxCatchUpUpdates??5,Me=Date.now();at+=Me-Et,Et=Me;let Gt=0;for(;at>=Ee&&Gt<gt;)at-=Ee,lt++,Pr+=Ee,zt(()=>{h.onUpdate({deltaTimeMs:Ee,step:lt,elapsedMs:Pr})}),Gt++;at>=Ee&&(at%=Ee),Ie()}catch(Z){Qe=null,x.exit(Z instanceof Error?Z:new Error(String(Z)))}}let cr=ln($,()=>{_e||(uv(),qg(n.columns||80,n.rows||24),kE(),X(K))});n.on("resize",cr);let Ar=()=>{};x.onExit(Z=>Ke($,()=>{Bn(),Ar(),Z?be(Z):le()}));function pn(){if(_e||!Pe)return;Vr=Date.now();let Z=Q??Date.now(),Ee=n.columns||80,gt=n.rows||24,Me=v5(Pe),Gt=()=>{I&&(I.cleanup(),I=null,ke(Kg.clearTerminal),Ye.clear(),He=0,pt())};if(Ae.length>0){Gt();let Le=Ae;Ae=[],Kr(Le.join(`
|
|
227
|
+
`))}Me.staticNodes.length>0&&Gt();let yt=Math.max(1,gt-He);if(I&&!s){let Le=Ao(Pe,{width:Ee,height:yt});Le.metrics.runtimeStartAt=Z,re!==void 0&&it(Le,"vnodeEvalMs",re);let Jr=performance.now();Ag(Le),ag(Le.layout,He);let Yt=As();Yt.hasClickableElements()&&!V?(vs(),V=!0):!Yt.hasClickableElements()&&V&&(bo(),V=!1),it(Le,"frameCommitMs",performance.now()-Jr),At(Le,"reservedRegionCount",Le.reservedRegions.length),I.renderFrame(Le),re=void 0,Q=void 0;return}let{staticNodes:Jt,interactiveNode:Bs}=Me,Nn=performance.now();Se();for(let Le=0;Le<Jt.length;Le++){let Jr=Jt[Le],Yt=E5(Jr,Le);if(!Ye.has(Yt)){let Yr=aS(Jr,Ee);Yr.trim()&&(Kr(Yr),Ye.add(Yt))}}let Ot=ZE(),ze=Ao(Bs,{width:Ee,height:yt});ze.metrics.runtimeStartAt=Z,re!==void 0&&it(ze,"vnodeEvalMs",re);let fn=performance.now()-Nn;it(ze,"staticRenderMs",fn);let Gn=performance.now();Ag(ze),ag(ze.layout,He);let gn=As();gn.hasClickableElements()&&!V?(vs(),V=!0):!gn.hasClickableElements()&&V&&(bo(),V=!1),it(ze,"frameCommitMs",performance.now()-Gn),At(ze,"reservedRegionCount",ze.reservedRegions.length);let Or=Cg(ze,{fullHeight:w,previousFrame:Ot});if(Or===Te&&!s){let Le=ve();it(ze,"outputWriteMs",Le.writeMs),At(ze,"outputByteCount",Le.bytes),$n(ze,{renderer:"ansi",runtimeStartAt:Z}),xs(ze.layout),$i(),re=void 0,Q=void 0;return}s?ke(Or+`
|
|
228
|
+
`):ce(Or);let mn=ve();it(ze,"outputWriteMs",mn.writeMs),At(ze,"outputByteCount",mn.bytes),$n(ze,{renderer:"ansi",runtimeStartAt:Z}),xs(ze.layout),$i(),Te=Or,re=void 0,Q=void 0}function Bn(){return Ke($,Co)}function Co(){if(_e)return;_e=!0;let Z=Ee=>{try{Ee()}catch(gt){console.error("[tuiuiu] Error while cleaning up the render loop:",gt)}};ft&&(clearTimeout(ft),ft=null),Qe&&(clearTimeout(Qe),Qe=null),zr?.(),zr=null,W=!1,Z(()=>n.off("drain",ae)),rt=null,ue=!1,N.cancel(),xe=[],$d(null),jd(null),V&&(Z(()=>bo()),V=!1),Z(()=>n.off("resize",cr)),Z(I?()=>I?.cleanup():()=>ce.done()),A&&Z(()=>{n.write(Ig())}),W=!1,Z(()=>n.off("drain",ae)),Z(()=>ld($)),Pe&&Z(()=>FS(Pe)),Z(()=>x.dispose());for(let Ee of B.splice(0))Z(Ee);Z(L),Z(()=>ev()),Z(()=>_s($))}try{Ar=Ke($,()=>CE(()=>{K()},{scheduler:X})),Ke($,()=>{h&&(Et=Date.now(),(h.pauseWhenUnfocused??!0)&&(zr=xd(Z=>{if(!(_e||!h)){if(!Z){Qe&&(clearTimeout(Qe),Qe=null),at=0,Et=Date.now();return}at=0,Et=Date.now(),Qe||Ie()}})),Ie())})}catch(Z){try{Ar()}catch(Ee){console.error("[tuiuiu] Error while rolling back the render effect:",Ee)}throw Bn(),Z}return{rerender:Z=>Ke($,()=>{F=()=>Z,X(K)}),unmount:()=>Ke($,()=>{Bn(),Ar(),s||ke(`
|
|
229
|
+
`),le()}),waitUntilExit:()=>ye,clear:()=>Ke($,()=>{s||(ft&&(clearTimeout(ft),ft=null),rt=null,ue=!1,Tr(),W?X(()=>{pn()}):pn())}),writeLine:je}}var T5={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 Sr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function zg(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function P5(e,t,r,n=1,o){let s=[],i=Sr(n,1),a=o===void 0?void 0:Sr(o,0);for(let d of e){let c=he(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,he(f))}let u=zg(d);d.width!==void 0?c=Sr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):Sr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,Sr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,Sr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:zg(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((b,h,_)=>b+(zg(e[_])>0?0:h),0),p=l.reduce((b,h)=>b+s[h.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let b=l.reduce((h,_)=>h+_.flex,0);for(let h of l){let _=Math.floor(h.flex/b*f);s[h.index]=s[h.index]+_,h.col.maxWidth!==void 0&&(s[h.index]=Math.min(s[h.index],Sr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=Sr(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,_)=>{let w=Sr(e[_].minWidth,3);return Math.max(0,h-w)}),b=f.reduce((h,_)=>h+_,0);if(b>0)for(let h=0;h<s.length;h++){let _=Math.floor(f[h]/b*g);s[h]=Math.max(Sr(e[h].minWidth,3),s[h]-_)}}}return s}function IS(e,t,r){let n=an(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=he(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 A5(e,t){return an(e,t,{truncationCharacter:"\u2026"})}function O5(){try{return process.stdout.columns||80}catch{return 80}}function Jg(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,b=g?0:Sr(d,1),h=T5[n],_=n!=="none",w=p??O5(),A=P5(t,r,u,b,w),x=[],O=($,L,B,F)=>{if(!_)return Er({});let W=[$];for(let U=0;U<A.length;U++)W.push(F.repeat(A[U]+b*2)),U<A.length-1&&W.push(L);return W.push(B),Er({flexDirection:"row"},ht({color:o},W.join("")))};if(_&&x.push(O(h.topLeft,h.topMid,h.topRight,h.horizontal)),s){let $=[];_&&$.push(ht({color:o},h.vertical));for(let L=0;L<t.length;L++){let B=t[L],F=" ".repeat(b),W=B.headerAlign??B.align??"left",U=IS(B.header,A[L],W);$.push(ht({color:o},F),ht({color:i.color??B.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":L+1},U),ht({color:o},F)),_&&$.push(ht({color:o},h.vertical))}x.push(Er({flexDirection:"row",role:"row","aria-rowindex":1},...$)),_&&x.push(O(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let $=0;$<r.length;$++){let L=r[$],B=a&&$%2===1,F=t.map((oe,se)=>{let re=L[oe.key];oe.format&&(re=oe.format(re,L));let Q=String(re??"");if(oe.wrap)return mo(Q,A[se],"wrap");let ae=Q.replace(/\r?\n/g," ");return[oe.truncate===!1?an(ae,A[se],{truncationCharacter:""}):A5(ae,A[se])]}),W=Math.max(1,...F.map(oe=>oe.length)),U=[];for(let oe=0;oe<W;oe++){let se=[];_&&se.push(ht({color:o},h.vertical));for(let re=0;re<t.length;re++){let Q=t[re],ae=" ".repeat(b),Se=IS(F[re]?.[oe]??"",A[re],Q.align??"left"),ve=Q.color??(B?l:void 0);se.push(ht({color:o},ae),ht({color:ve,dim:B,role:oe===0?"cell":void 0,"aria-colindex":oe===0?re+1:void 0},Se),ht({color:o},ae)),_&&se.push(ht({color:o},h.vertical))}U.push(Er({flexDirection:"row"},...se))}x.push(Er({flexDirection:"column",role:"row","aria-rowindex":$+(s?2:1)},...U)),c&&$<r.length-1&&_&&x.push(O(h.leftMid,h.midMid,h.rightMid,h.horizontal))}return _&&x.push(O(h.bottomLeft,h.bottomMid,h.bottomRight,h.horizontal)),Er({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...x)}function Nd(e,t){return ht({wrap:"truncate-end"},t?io(e):e)}function D5(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>Nd(c,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(c=>({...c})),l=e.table.rows.map(c=>Object.fromEntries(Object.entries(c).map(([u,p])=>[u,r?io(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>Nd(c,r)),Jg({columns:a,data:l,borderStyle:"none",availableWidth:d,maxWidth:d,compact:!1,padding:1,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!0,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(c=>Nd(c,r))]}function C5(e){let t=Math.max(1,Math.floor(e.columns)),r=Math.max(1,Math.floor(e.rows)),n=Math.max(0,r-1),o=`q quit \xB7 r refresh \xB7 v deaths: ${e.showDeathDetails?"details":"summary"} \xB7 live 1s`,s=e.noColor===!0,i=e.frame.dashboard==null?e.frame.lines.map(a=>Nd(a,s)):D5(e.frame.dashboard,t,s);return Er({flexDirection:"column",width:t,height:r,overflow:"hidden"},Er({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),ht({dim:!s,wrap:"truncate-end"},o))}async function MS(e){let t=!1;function r(){let o=Ld(),s=Gg(),[i,a]=Fd({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Fd(e.initialShowDeathDetails),c=()=>{t||(t=!0,e.readFrame({columns:Math.max(1,s.columns||80),rows:Math.max(1,(s.rows||24)-1),showDeathDetails:l()}).then(a).catch(u=>{a({lines:[`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`]})}).finally(()=>{t=!1}))};return oa(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Wg(c,e.refreshMs??1e3),Lg((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))}),C5({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Vg(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as W5}from"node:child_process";import{readFileSync as H5}from"node:fs";import{dirname as GS,join as U5}from"node:path";import{createHash as F5}from"node:crypto";var I5="project.name";function jS(e){let t=hs(e,I5)?.trim();return t===void 0||t===""?void 0:t}var M5=8,$S="project";function BS(e){let t=N5(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:L5(e.remoteUrl)??{name:j5(e.checkoutPath,t),source:"basename"},o=B5(t??Yg(e.checkoutPath));return{name:n.name,slug:`${$5(n.name)}-${o}`,hash:o,source:n.source}}function NS(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 L5(e){let t=NS(e);return t===void 0?void 0:{name:t,source:"remote"}}function j5(e,t){let r=t===void 0?"":LS(G5(t));if(r!=="")return r;let n=LS(Yg(e));return n===""?$S:n}function $5(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?$S:r}function B5(e){return F5("sha256").update(e).digest("hex").slice(0,M5)}function N5(e){let t=Yg(e??"");return t===""?void 0:t}function Yg(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function LS(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function G5(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var q5=2e3;function WS(e){return K5(e).name}function K5(e){let t=Xg(e),r=Qg(e,["rev-parse","--absolute-git-dir"])??Qg(e,["rev-parse","--git-common-dir"]),n=Qg(e,["remote","get-url","origin"]);return BS({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function Xg(e){let t=B_(e,U5(".red","config.yaml"));if(t==null)return{};let r;try{r=H5(t,"utf8")}catch{return{}}let n=jS(r),o=GS(GS(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function Qg(e,t){try{let r=W5("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:q5}).trim();return r===""?void 0:r}catch{return}}function Gd(e){let t=Xg(e);return t.configText==null?{label:null}:{configText:t.configText,label:WS(e)}}var V5="plugins.dev.statusline",z5="dev.statusline";function J5(e){let t=[],r=a=>{for(let l of[V5,z5]){let d=`${l}.${a}`,c=hs(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 Y5={mode:{kind:"value",coerce:e=>e},verbose:{kind:"boolean"},project:{kind:"value",coerce:e=>e},"max-workers":{kind:"value",coerce:e=>e},"max-projects":{kind:"value",coerce:e=>e},"max-width":{kind:"value",coerce:e=>e}};function Wd(e){let{values:t,positionals:r}=Zr(e,Y5),n=[],o={},s=t.mode??r.find(a=>a==="global"||a==="local");s!=null&&(s==="local"||s==="global"?o.mode=s:n.push({key:"--mode",value:s,reason:"expected `local` or `global`"})),t.project!=null&&(o.project=t.project),t.verbose!==void 0&&(o.verbose=t.verbose===!0);let i=[{flag:"max-workers",assign:a=>{o.maxWorkers=a}},{flag:"max-projects",assign:a=>{o.maxProjects=a}},{flag:"max-width",assign:a=>{o.maxWidth=a}}];for(let a of i){let l=t[a.flag];if(l==null)continue;let d=Number(l);Number.isInteger(d)&&d>=0?a.assign(d):n.push({key:`--${a.flag}`,value:l,reason:"expected a whole number of zero or more"})}return{flags:o,warnings:n}}function Hd(e={}){let t=e.configText==null?{config:{},warnings:[]}:J5(e.configText),r=e.flags??{};return{options:{...Be,mode:r.mode??t.config.mode??Be.mode,project:r.project!==void 0?r.project:e.project??Be.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Be.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Be.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Be.maxWidth,verbose:r.verbose??t.config.verbose??Be.verbose},warnings:t.warnings}}async function Zg(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Wd(e),s=Gd(t.cwd??process.cwd()),i=Hd({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
|
|
230
|
+
`);let a=t.paths??Vt(),l=t.readDashboard??M_,d=t.terminal===void 0?process.stdout.isTTY===!0:t.terminal===!0,c=(t.env??process.env).NO_COLOR!==void 0,u={...i.options.project==null?{}:{project:i.options.project},mode:i.options.mode,showDeathDetails:i.options.verbose},p=async(g,f=!0)=>{try{let b=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:b,lines:c?b.lines.map(io):b.lines}}catch(b){let h=b instanceof Error?b.message:String(b);return f&&n(`redskilled dashboard: ${h}
|
|
231
|
+
`),{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(`
|
|
224
232
|
`)}
|
|
225
|
-
`),0}return await(t.runTui??
|
|
226
|
-
`);let a;try{a=await
|
|
227
|
-
`),a=
|
|
233
|
+
`),0}return await(t.runTui??MS)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:b})=>{let h=Math.max(1,Math.min(i.options.maxWidth??g,g)),_=Math.max(1,f);return await p({...u,maxWidth:h,maxHeight:_,maxRows:Math.max(0,_-8),showDeathDetails:b},!1)}}),0}async function em(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Wd(e),s=Gd(t.cwd??process.cwd()),i=Hd({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let l of[...i.warnings,...o.warnings])n(`redskilled statusline: ignoring ${l.key}=${l.value} \u2014 ${l.reason}
|
|
234
|
+
`);let a;try{a=await I_(t.paths??Vt(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
|
|
235
|
+
`),a=Xp({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
|
|
228
236
|
`)}
|
|
229
|
-
`),0}var
|
|
237
|
+
`),0}var X5=`Usage: redskilled <command> [options]
|
|
230
238
|
|
|
231
239
|
Commands:
|
|
232
240
|
host-state (default) print the host's state as JSON
|
|
@@ -241,7 +249,7 @@ Commands:
|
|
|
241
249
|
|
|
242
250
|
Run \`redskilled <command> --help\` for a command's own usage.
|
|
243
251
|
\`--version\` (\`-v\`) prints the build stamp; both answer offline.
|
|
244
|
-
|
|
252
|
+
`,Z5={serve:`Usage: redskilled serve [options]
|
|
245
253
|
|
|
246
254
|
Runs the daemon in this process. Every path is a flag and none is derived
|
|
247
255
|
(ADR 0130 rule 3); what is absent falls back to the session derivation.
|
|
@@ -335,20 +343,20 @@ same stamped-orphan reaper the daemon runs periodically; --report is the
|
|
|
335
343
|
detection-only incident view and performs no adoption, signalling, or deletion.
|
|
336
344
|
|
|
337
345
|
--report return counts only; signal and delete nothing
|
|
338
|
-
`};function
|
|
339
|
-
`:`${
|
|
340
|
-
`),0}if(
|
|
341
|
-
`);let g=
|
|
342
|
-
`),0}var
|
|
343
|
-
`),0}function
|
|
344
|
-
`),o.running&&!o.stopped?1:0}async function
|
|
345
|
-
`),0;if(o==="install"){let s=await
|
|
346
|
-
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await
|
|
347
|
-
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}var
|
|
348
|
-
`),p.verdict==="ok"?0:1}var
|
|
349
|
-
`),0}async function
|
|
350
|
-
`),o.entries.some(s=>s.verdict==="failed")?1:0}function
|
|
351
|
-
`),process.exitCode=1})}export{
|
|
346
|
+
`};function eW(e){return e==="--help"||e==="-h"||e==="help"}var tW={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)}},US="REDSKILLED_HOST_TOKEN";function la(){try{let t=Q5("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function qS(e=process.env,t=la){let r=(e[US]??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 rW(e,t=process.env,r=la,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...HS(e,t,r,n),armTransport:()=>HS(e,t,r,n)}}function nW(e,t=process.env,r=la){let n=qS(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:fp({token:n.token,...o?{origin:o}:{},fetchImpl:ai({timeoutMs:1e4})})}}function HS(e,t=process.env,r=la,n){let o=qS(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${US}, 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:Mk({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function oW(e){if(e[0]==="--version"||e[0]==="-v"){let o=Aa("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
|
|
347
|
+
`:`${Dh(o)}
|
|
348
|
+
`),0}if(eW(e[0]))return process.stdout.write(X5),0;let{command:t,args:r}=Mh(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{},reap:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(Z5[t]),0;if(t==="serve"){let{values:o}=Zr(r,tW),s=await j_(aa()),i=$_({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=$s(Ft(aa()),"state"),l=dl({path:$s(a,"github","spend.toonl")}),d=rW(o,process.env,la,l),c=nW(o),u=c==null?null:{...c,store:hp({path:$s(a,"github","balance.toon")}),history:yp({path:$s(a,"github","balance-history.toonl")})};await Qh(a).catch(()=>{});let p=my({stateRoot:a});process.stderr.write(`${hy(p)}
|
|
349
|
+
`);let g=iy({lanePath:Uo(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),f=bW(o),b;try{await t_(),b=await b_({paths:f,idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??Aa("redskilled").version,deaths:p.attributions,queueDiscovery:d,...u==null?{}:{githubBalance:u},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}})}catch(h){if(!(h instanceof tr))throw h;return g.uninstall(),0}if(Ql())try{Fw({socketPath:f.socketPath,version:o["daemon-version"]??Aa("redskilled").version})}catch{}for(let h of["SIGTERM","SIGINT"])process.once(h,()=>void b.stop({reason:"signal",signal:h}).catch(()=>{}));return await b.closed,g.phase("closed"),0}if(t==="stop")return await dW(r);if(t==="statusline")return await em(r);if(t==="dashboard")return await Zg(r);if(t==="github-spend")return await iW(r);if(t==="unit")return await cW(r);if(t==="provision")return await pW(r);if(t==="reclaim")return await hW(r);if(t==="reap")return await mW(r);let n=await D_(Vt());return process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
350
|
+
`),0}var sW={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function iW(e,t={}){let{values:r}=Zr(e,sW,{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:aW(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??dl({path:$s(Ft(t.homeDir??aa()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${Ze({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})}
|
|
351
|
+
`),0}function aW(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 lW={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function dW(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=Zr(e,lW),o=await O_(t.paths??Vt(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${Ze({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,contained:s.contained,survives:s.survives})),detail:o.detail})}
|
|
352
|
+
`),o.running&&!o.stopped?1:0}async function cW(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??Vt(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(jw(t.unitIO??{}),null,2)}
|
|
353
|
+
`),0;if(o==="install"){let s=await Mw(Aw(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
|
|
354
|
+
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await Lw(t.unitIO??{}),null,2)}
|
|
355
|
+
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}var uW={"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 pW(e,t={}){let r=t.write??(g=>process.stdout.write(g)),{values:n}=Zr(e,uW),o=t.paths??Vt(),s=t.homeDir??aa(),i=await jf({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await X_(s),l;if(!n.check&&!n["no-start"])try{await Df(o,t.client??{})}catch(g){l=g instanceof Error?g.message:String(g)}let d=await tx({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=Ir(d.entry)?co(d.entry,{homeDir:s}):void 0,u=n["install-unit"]&&c!=null?await ox({configHome:t.configHome??yW(),unit:nx({command:[c.command,...c.args].join(" "),socketPath:o.socketPath})}):void 0,p=ex(d);return r(`${Ze({verdict:p.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...u==null?{}:{unit:{path:u.path,status:u.status}},checks:p.rows.map(g=>({check:g.check,verdict:g.verdict,evidence:g.evidence})),fixes:p.findings.map(g=>({check:g.check,fix:g.fix}))})}
|
|
356
|
+
`),p.verdict==="ok"?0:1}var fW={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}},gW={report:{kind:"boolean"}};async function mW(e,t={}){let{values:r}=Zr(e,gW),n=await C_(t.paths??Vt(),{report:r.report===!0});return(t.write??(o=>process.stdout.write(o)))(`${Ze({version:n.version,mode:n.mode,census:{...n.census},actions:{...n.actions}})}
|
|
357
|
+
`),0}async function hW(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=Zr(e,fW),o=await ax({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${Ze({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]}))})}
|
|
358
|
+
`),o.entries.some(s=>s.verdict==="failed")?1:0}function yW(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:$s(aa(),".config")}function bW(e){let t=Vt();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 kW=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(kW){let e=process.argv.slice(2);oW(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
|
|
359
|
+
`),process.exitCode=1})}export{US as REDSKILLED_HOST_TOKEN_ENV,X5 as REDSKILLED_USAGE,HS as armRedskilledQueueTransport,qS as resolveRedskilledHostToken,nW as resolveServeGithubBalance,rW as resolveServeQueueDiscovery,Zg as runDashboard,iW as runGithubSpend,pW as runProvision,mW as runReap,hW as runReclaim,oW as runRedskilledCli,em as runStatusline,dW as runStop,cW as runUnit};
|
|
352
360
|
/*! Bundled license information:
|
|
353
361
|
|
|
354
362
|
content-type/dist/index.js:
|