@reddb-io/red-skills 3.12.9 → 3.12.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/brain.bundle.min.mjs +1 -1
- package/dist/castle-mcp.bundle.min.mjs +343 -343
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +621 -620
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled.bundle.min.mjs +104 -104
- package/dist/rsp.bundle.min.mjs +1 -1
- package/package.json +1 -1
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
3
|
-
var
|
|
3
|
+
var Yx=Object.create;var rd=Object.defineProperty;var Qx=Object.getOwnPropertyDescriptor;var Xx=Object.getOwnPropertyNames;var Zx=Object.getPrototypeOf,eE=Object.prototype.hasOwnProperty;var tE=(e,t)=>()=>(e&&(t=e(e=0)),t);var Wf=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),rE=(e,t)=>{for(var r in t)rd(e,r,{get:t[r],enumerable:!0})},nE=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Xx(t))!eE.call(e,o)&&o!==r&&rd(e,o,{get:()=>t[o],enumerable:!(n=Qx(t,o))||n.enumerable});return e};var nd=(e,t,r)=>(r=e!=null?Yx(Zx(e)):{},nE(t||!e||!e.__esModule?rd(r,"default",{value:e,enumerable:!0}):r,e));var mh={};rE(mh,{REDSKILLED_BIN_ENV:()=>zd,REDSKILLED_BUNDLE_ASSET:()=>Pr,REDSKILLED_ENTRY_UNRESOLVED:()=>Ts,RedskilledDaemonEntryError:()=>Ps,isRedskilledEntryPath:()=>Yd,isResolvedRedskilledEntry:()=>Ar,redskilledBundleCacheRoot:()=>ca,redskilledServeArgv:()=>dn,requireRedskilledEntry:()=>ua,resolveRedskilledEntry:()=>cn});import{existsSync as KS,readdirSync as VS}from"node:fs";import{homedir as zS}from"node:os";import{basename as Vd,dirname as Kd,join as Vt,resolve as da}from"node:path";function Ar(e){return"command"in e}function dn(e,t={}){let r=["serve","--socket",e.socketPath,"--lease",e.leasePath,"--events",e.eventLanePath,"--session-key-hash",e.sessionKeyHash,"--machine-id-hash",e.machineIdHash,"--machine-claim",e.machineClaimPath];return t.idleMs!=null&&r.push("--idle-ms",String(t.idleMs)),t.daemonVersion!=null&&r.push("--daemon-version",t.daemonVersion),r}function ca(e=process.env){return hh(e)}function cn(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??KS,o=t.execPath??process.execPath,s=t.execArgv??[],i=t.callerEntry===void 0?process.argv[1]:t.callerEntry,a=(c,u)=>({command:o,args:[...s,c],source:u,entry:c}),l=r[zd];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Yd(i))return a(da(i),"caller-entry");let d=[];for(let[c,u]of XS(i,t.rootDir,r,t.listDir??tT))if(d.push(c),n(c))return a(c,u);return{diagnostic:Ts,searched:d,...i?{callerEntry:da(i)}:{}}}function ua(e={},t={}){let r=cn(e,t);if(Ar(r))return r;throw new Ps(r)}function Yd(e){let t=Vd(e);return t===Pr||Jd.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:QS(da(e))}function QS(e){let t=Kd(e);for(let r=0;r<4;r++){if(Vd(t)==="redskilled")return!0;let n=Kd(t);if(n===t)return!1;t=n}return!1}function*XS(e,t,r,n){if(e){let s=Kd(da(e));yield[Vt(s,Pr),"caller-sibling-bundle"];let i=JS.exec(Vd(e));i&&(yield[Vt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Vt(s,"..","dist",Pr),"caller-sibling-bundle"]}for(let s of YS){let i=r[s];i&&(yield[Vt(i,"dist",Pr),"plugin-root-bundle"],yield[Vt(i,"..","..","dist",Pr),"plugin-root-bundle"])}t&&(yield[Vt(t,"dist",Pr),"repo-bundle"],yield[Vt(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[Vt(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=hh(r);yield[Vt(o,Pr),"bundle-cache"];for(let s of ZS(o,n))yield[Vt(o,s),"bundle-cache"]}function hh(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Vt(e.HOME||zS(),".cache");return Vt(t,"red-skills","bundles")}function ZS(e,t){return t(e).filter(r=>Jd.test(r)).sort((r,n)=>eT(gh(n),gh(r)))}function gh(e){return Jd.exec(e)?.[1]??""}function eT(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 tT(e){try{return VS(e)}catch{return[]}}var Pr,Ts,zd,Ps,JS,Jd,YS,Kr=tE(()=>{"use strict";Pr="redskilled.bundle.min.mjs",Ts="redskilled-daemon-entry-unresolved",zd="REDSKILLED_BIN";Ps=class extends Error{code=Ts;searched;callerEntry;constructor(t){super(`${Ts}: no published ${Pr} found to spawn the redskilled daemon from${t.callerEntry?` (caller entry: ${t.callerEntry}, which is NOT used as a fallback)`:""}
|
|
4
4
|
searched:
|
|
5
5
|
${t.searched.map(r=>` ${r}`).join(`
|
|
6
|
-
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};VS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Jd=/^redskilled-(.+)\.bundle\.min\.mjs$/,zS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var Ec=Gf((_c,xc)=>{(function(e,t){typeof _c=="object"&&typeof xc<"u"?xc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(_c,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(J){return J&&J.default||J}var r=function(J,C,w={}){var F,L,B;for(F in C)B=C[F],w[F]=(L=J[F])!=null?L:B;return w},n=function(J,C,w={}){var F,L;for(F in J)L=J[F],C[F]!==void 0&&(w[F]=L);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,F;for(C=this._first,F=[];C!=null;)F.push((w=C,C=C.next,w.value));return F}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,F,L,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(F=w.prev)!=null?F.value:void 0,next:(L=w.next)!=null?L.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,F)=>this._addListener(w,"many",F),this.instance.once=(w,F)=>this._addListener(w,"once",F),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,F){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:F,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var F,L;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),L=this._events[C].map(async B=>{var K,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(xe){return K=xe,this.trigger("error",K),null}}}),(await Promise.all(L)).find(function(B){return B!=null}))}catch(B){return F=B,this.trigger("error",F),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var F,L,B;for(B=[],w=F=1,L=C;1<=L?F<=L:F>=L;w=1<=L?++F:--F)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,F,L;for(w=0,F=C.length;w<F;w++)if(L=C[w],L.length>0)return L;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,h,R,T,$;T=10,h=5,$=o,y=f,R=class{constructor(C,w,F,L,B,K,X,xe){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=xe,this.options=$.load(F,L),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===L.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?h:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new y(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new y(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,F,L){var B,K,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),K={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",K);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(xe){return B=xe,this._onFailure(B,K,w,F,L)}}doExpire(C,w,F){var L,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,B,C,w,F)}async _onFailure(C,w,F,L,B){var K,X;if(F())return K=await this.Events.trigger("failed",C,w),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,L(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=R,M,N,H;H=o,M=f,N=class{constructor(C,w,F){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),H.load(F,F,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,F,L,B,K;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,F=L!=null?Math.min(w,L-K):w,F>0))return this.storeOptions.reservoir+=F,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,F){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),H.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,F){var L,B;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-L,0),this._nextRequest=L+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var F,L,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return L=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,L),F=this.strategyIsBlock()&&(B||this.isBlocked(L)),F&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:F,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,I,W;I=f,W=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,F;if(w=this._jobs[C],F=w+1,w!=null&&F<this.status.length)return this.counts[w]--,this.counts[F]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,F,L,B,K;if(C!=null){if(F=this.status.indexOf(C),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(w in L)K=L[w],K===F&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,F)=>(C[this.status[F]]=w,C),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,F,L,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:L}=this._queue.shift(),w=await async function(){try{return K=await X(...C),function(){return B(K)}}catch(xe){return F=xe,function(){return L(F)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var F,L,B;return B=L=null,F=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:w,resolve:B,reject:L}),this._tryToRun(),F}};var se=ae,Z="2.19.5",pe={version:Z},Ae=Object.freeze({version:Z,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ke=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Y=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,Re,De,ve,we,Se;Se=o,de=l,ve=Ee,De=ke,we=Y,Re=function(){class J{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=Ce,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new De(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var F;return(F=this.instances[w])!=null?F:(()=>{var L;return L=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",L,w),L})()}async deleteKey(w=""){var F,L;return L=this.instances[w],this.connection&&(F=await this.connection.__runCommand__(["del",...we.allKeys(`${this.id}-${w}`)])),L!=null&&(delete this.instances[w],await L.disconnect()),L!=null||F>0}limiters(){var w,F,L,B;F=this.instances,L=[];for(w in F)B=F[w],L.push({key:w,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,F,L,B,K,X,xe,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,F=9;w!==0;)for([je,L]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,xe=L.length;B<xe;B++)K=L[B],X.push(K.slice(Be,-F));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var F,L,B,K,X,xe;X=Date.now(),B=this.instances,K=[];for(L in B){xe=B[L];try{await xe._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){F=je,K.push(xe.Events.trigger("error",F))}}return K},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var F;if(!this.sharedConnection)return(F=this.connection)!=null?F.disconnect(w):void 0}}return J.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},J}.call(e);var fe=Re,ie,_e,Fe;Fe=o,_e=l,ie=function(){class J{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new _e(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,F)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var F;return this._arr.push(w),F=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),F}}return J.prototype.defaults={maxTime:null,maxSize:null,Promise},J}.call(e);var at=ie,Gt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),tn=t(Ae),rn,go,ce,Wt,ct,Ze,_t,lt,ut,xt,Et,Gr=[].splice;Ze=10,go=5,Et=o,_t=p,Wt=D,ct=G,lt=Gt,ce=l,ut=q,xt=se,rn=function(){class J{constructor(w={},...F){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,F),Et.load(w,this.instanceDefaults,this),this._queues=new _t(Ze),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ce(this),this._submitLock=new xt("submit",this.Promise),this._registerLock=new xt("register",this.Promise),B=Et.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=Et.load(w,this.redisStoreDefaults,{}),new lt(this,B,L);if(this.datastore==="local")return L=Et.load(w,this.localStoreDefaults,{}),new ct(this,B,L);throw new J.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.ref=="function"?K.ref():void 0}),this._queues.on("zero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.unref=="function"?K.unref():void 0})}_validateOptions(w,F){if(!(w!=null&&typeof w=="object"&&F.length===0))throw new J.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,F,L,B){var K,X;try{if({running:X}=await this._store.__free__(w,L.weight),this.Events.trigger("debug",`Freed ${L.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(xe){return K=xe,this.Events.trigger("error",K)}}_run(w,F,L){var B,K,X;return F.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,F),K=this._free.bind(this,w,F),this._scheduled[w]={timeout:setTimeout(()=>F.doExecute(this._limiter,B,X,K),L),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire(B,X,K)},L+F.options.expiration):void 0,job:F}}_drainOne(w){return this._registerLock.schedule(()=>{var F,L,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:F}=B=X.first(),w!=null&&K.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:F,options:K}),L=this._randomIndex(),this._store.__register__(L,K.weight,K.expiration).then(({success:xe,wait:je,reservoir:Be})=>{var Lt;return this.Events.trigger("debug",`Drained ${K.id}`,{success:xe,args:F,options:K}),xe?(X.shift(),Lt=this.empty(),Lt&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",Lt),this._run(L,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(w,F=0){return this._drainOne(w).then(L=>{var B;return L!=null?(B=w!=null?w-L:w,this._drainAll(B,F+L)):this.Promise.resolve(F)}).catch(L=>this.Events.trigger("error",L))}_dropAllQueued(w){return this._queues.shiftAll(function(F){return F.doDrop({message:w})})}stop(w={}){var F,L;return w=Et.load(w,this.stopDefaults),L=B=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,xe)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},F=w.dropWaitingJobs?(this._run=function(B,K){return K.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,K,X;K=this._scheduled;for(B in K)X=K[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),L(0)}))):this.schedule({priority:Ze-1,weight:0},()=>L(1)),this._receive=function(B){return B._reject(new J.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new J.prototype.BottleneckError("stop() has already been called")),F}async _addToQueue(w){var F,L,B,K,X,xe,je;({args:F,options:K}=w);try{({reachedHWM:X,blocked:L,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:F,options:K,error:B}),w.doDrop({error:B}),!1}return L?(w.doDrop(),!0):X&&(xe=je===J.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===J.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===J.prototype.strategy.OVERFLOW?w:void 0,xe?.doDrop(),xe==null||je===J.prototype.strategy.OVERFLOW)?(xe==null&&w.doDrop(),X):(w.doQueue(X,L),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new J.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var F,L,B,K,X,xe,je;return typeof w[0]=="function"?(X=w,[L,...w]=X,[F]=Gr.call(w,-1),K=Et.load({},this.jobDefaults)):(xe=w,[K,L,...w]=xe,[F]=Gr.call(w,-1),K=Et.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(Lt,nn){return L(...Be,function(...Rr){return(Rr[0]!=null?nn:Lt)(Rr)})}),B=new Wt(je,w,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof F=="function"?F(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof F=="function"?F(...Be):void 0:typeof F=="function"?F(Be):void 0}),this._receive(B)}schedule(...w){var F,L,B;return typeof w[0]=="function"?([B,...w]=w,L={}):[L,B,...w]=w,F=new Wt(B,w,L,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(F),F.promise}wrap(w){var F,L;return F=this.schedule.bind(this),L=function(...B){return F(w.bind(this),...B)},L.withOptions=function(B,...K){return F(B,w,...K)},L}async updateSettings(w={}){return await this._store.__updateSettings__(Et.overwrite(w,this.storeDefaults)),Et.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return J.default=J,J.Events=ce,J.version=J.prototype.version=tn.version,J.strategy=J.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},J.BottleneckError=J.prototype.BottleneckError=f,J.Group=J.prototype.Group=fe,J.RedisConnection=J.prototype.RedisConnection=Ee,J.IORedisConnection=J.prototype.IORedisConnection=ke,J.Batcher=J.prototype.Batcher=at,J.prototype.jobDefaults={priority:go,weight:1,expiration:null,id:"<no-id>"},J.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:J.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},J.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},J.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},J.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},J.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},J}.call(e);var Ce=rn,Le=Ce;return Le})});var ub=Gf(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.format=xA;Ta.parse=EA;var wA=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,ib=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,RA=/[\\"]/g,_A=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,ab=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function xA(e){let{type:t,parameters:r}=e;if(!t||!_A.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!ib.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${PA(r[o])}`}return n}function EA(e,t){let r=e.length,n=Cc(e,0,r),o=n;n=Ac(e,n,r);let s=Dc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new ab:TA(e,n,r);return{type:i,parameters:a}}var lb=32,db=9,cb=59,vA=61,sb=34,SA=92;function TA(e,t,r){let n=new ab;e:for(;t<r;){t=Cc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===cb)continue e;if(s===vA){let i=Dc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Cc(e,t+1,r),t<r&&e.charCodeAt(t)===sb){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===sb){t=Ac(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===SA&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Ac(e,t,r),n[a]===void 0){let d=Dc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Ac(e,t,r){for(;t<r&&e.charCodeAt(t)!==cb;)t++;return t}function Cc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==lb&&n!==db)break;t++}return t}function Dc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==lb&&n!==db)break;r--}return r}function PA(e){if(ib.test(e))return e;if(wA.test(e))return`"${e.replace(RA,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as SB}from"node:child_process";import{homedir as Ii}from"node:os";import{join as zl}from"node:path";var Ro=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},In=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function V(e,t){return new Ro(e,t)}function Te(e,t){return new In(e,t)}function _o(e){return e instanceof In?e:e instanceof Ro?new In(e.line,e.reason):new In(0,String(e&&e.message?e.message:e))}var Wf=["type","kind","event"],Mn="|",Hf=new Set(["order","discriminator","rows","common"]);var Ve=",";function Vi(e){let t=e.split(`
|
|
7
|
-
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function Er(e){return V(e,"invalid quoted string")}function qt(e,t){if(e==="")return"";if(e.startsWith('"'))return
|
|
8
|
-
`;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw Er(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Er(t);r+=String.fromCharCode(a),n+=4;break}default:throw Er(t)}}throw Er(t)}function
|
|
6
|
+
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};JS=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,Jd=/^redskilled-(.+)\.bundle\.min\.mjs$/,YS=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var Ec=Wf((_c,xc)=>{(function(e,t){typeof _c=="object"&&typeof xc<"u"?xc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(_c,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(J){return J&&J.default||J}var r=function(J,C,w={}){var F,L,B;for(F in C)B=C[F],w[F]=(L=J[F])!=null?L:B;return w},n=function(J,C,w={}){var F,L;for(F in J)L=J[F],C[F]!==void 0&&(w[F]=L);return w},o={load:r,overwrite:n},s;s=class{constructor(C,w){this.incr=C,this.decr=w,this._first=null,this._last=null,this.length=0}push(C){var w;this.length++,typeof this.incr=="function"&&this.incr(),w={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=w,this._last=w):this._first=this._last=w}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,w,F;for(C=this._first,F=[];C!=null;)F.push((w=C,C=C.next,w.value));return F}forEachShift(C){var w;for(w=this.shift();w!=null;)C(w),w=this.shift()}debug(){var C,w,F,L,B;for(C=this._first,B=[];C!=null;)B.push((w=C,C=C.next,{value:w.value,prev:(F=w.prev)!=null?F.value:void 0,next:(L=w.next)!=null?L.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(w,F)=>this._addListener(w,"many",F),this.instance.once=(w,F)=>this._addListener(w,"once",F),this.instance.removeAllListeners=(w=null)=>w!=null?delete this._events[w]:this._events={}}_addListener(C,w,F){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:F,status:w}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...w){var F,L;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,w),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),L=this._events[C].map(async B=>{var K,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...w):void 0,typeof X?.then=="function"?await X:X}catch(xe){return K=xe,this.trigger("error",K),null}}}),(await Promise.all(L)).find(function(B){return B!=null}))}catch(B){return F=B,this.trigger("error",F),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var w;this.Events=new c(this),this._length=0,this._lists=function(){var F,L,B;for(B=[],w=F=1,L=C;1<=L?F<=L:F>=L;w=1<=L?++F:--F)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(w){return w.forEachShift(C)})}getFirst(C=this._lists){var w,F,L;for(w=0,F=C.length;w<F;w++)if(L=C[w],L.length>0)return L;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,h,R,T,$;T=10,h=5,$=o,y=f,R=class{constructor(C,w,F,L,B,K,X,xe){this.task=C,this.args=w,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=xe,this.options=$.load(F,L),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===L.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var w;return w=~~C!==C?h:C,w<0?0:w>T-1?T-1:w}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:w="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new y(w)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var w;if(w=this._states.jobStatus(this.options.id),!(w===C||C==="DONE"&&w===null))throw new y(`Invalid job status ${w}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,w){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,blocked:w})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(C,w,F,L){var B,K,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),K={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",K);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),w())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(xe){return B=xe,this._onFailure(B,K,w,F,L)}}doExpire(C,w,F){var L,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,B,C,w,F)}async _onFailure(C,w,F,L,B){var K,X;if(F())return K=await this.Events.trigger("failed",C,w),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,w),this.retryCount++,L(X)):(this.doDone(w),await B(this.options,w),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=R,M,N,H;H=o,M=f,N=class{constructor(C,w,F){this.instance=C,this.storeOptions=w,this.clientId=this.instance._randomIndex(),H.load(F,F,this),this._nextRequest=this._lastReservoirRefresh=this._lastReservoirIncrease=Date.now(),this._running=0,this._done=0,this._unblockTime=0,this.ready=this.Promise.resolve(),this.clients={},this._startHeartbeat()}_startHeartbeat(){var C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var w,F,L,B,K;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:w,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,F=L!=null?Math.min(w,L-K):w,F>0))return this.storeOptions.reservoir+=F,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(w,F){return setTimeout(w,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),H.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,w;return{maxConcurrent:C,reservoir:w}=this.storeOptions,C!=null&&w!=null?Math.min(C-this._running,w):C!=null?C-this._running:w??null}conditionsCheck(C){var w;return w=this.computeCapacity(),w==null||C<=w}async __incrementReservoir__(C){var w;return await this.yieldLoop(),w=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),w}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,w){return this.conditionsCheck(C)&&this._nextRequest-w<=0}async __check__(C){var w;return await this.yieldLoop(),w=Date.now(),this.check(C,w)}async __register__(C,w,F){var L,B;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(w)?(this._running+=w,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=w),B=Math.max(this._nextRequest-L,0),this._nextRequest=L+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,w){var F,L,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&w>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${w} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return L=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(w,L),F=this.strategyIsBlock()&&(B||this.isBlocked(L)),F&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:F,strategy:this.storeOptions.strategy}}async __free__(C,w){return await this.yieldLoop(),this._running-=w,this._done+=w,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,I,W;I=f,W=class{constructor(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var w,F;if(w=this._jobs[C],F=w+1,w!=null&&F<this.status.length)return this.counts[w]--,this.counts[F]++,this._jobs[C]++;if(w!=null)return this.counts[w]--,delete this._jobs[C]}start(C){var w;return w=0,this._jobs[C]=w,this.counts[w]++}remove(C){var w;return w=this._jobs[C],w!=null&&(this.counts[w]--,delete this._jobs[C]),w!=null}jobStatus(C){var w;return(w=this.status[this._jobs[C]])!=null?w:null}statusJobs(C){var w,F,L,B,K;if(C!=null){if(F=this.status.indexOf(C),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(w in L)K=L[w],K===F&&B.push(w);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,w,F)=>(C[this.status[F]]=w,C),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(C,w){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=w,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,w,F,L,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:L}=this._queue.shift(),w=await async function(){try{return K=await X(...C),function(){return B(K)}}catch(xe){return F=xe,function(){return L(F)}}}(),this._running--,this._tryToRun(),w()}schedule(C,...w){var F,L,B;return B=L=null,F=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:w,resolve:B,reject:L}),this._tryToRun(),F}};var se=ae,Z="2.19.5",pe={version:Z},Ae=Object.freeze({version:Z,default:pe}),Ee=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ke=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Y=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,Re,De,ve,we,Se;Se=o,de=l,ve=Ee,De=ke,we=Y,Re=function(){class J{constructor(w={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=w,Se.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=Ce,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new ve(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new De(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(w=""){var F;return(F=this.instances[w])!=null?F:(()=>{var L;return L=this.instances[w]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${w}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",L,w),L})()}async deleteKey(w=""){var F,L;return L=this.instances[w],this.connection&&(F=await this.connection.__runCommand__(["del",...we.allKeys(`${this.id}-${w}`)])),L!=null&&(delete this.instances[w],await L.disconnect()),L!=null||F>0}limiters(){var w,F,L,B;F=this.instances,L=[];for(w in F)B=F[w],L.push({key:w,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var w,F,L,B,K,X,xe,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],w=null,Be=`b_${this.id}-`.length,F=9;w!==0;)for([je,L]=await this.connection.__runCommand__(["scan",w??0,"match",`b_${this.id}-*_settings`,"count",1e4]),w=~~je,B=0,xe=L.length;B<xe;B++)K=L[B],X.push(K.slice(Be,-F));return X}_startAutoCleanup(){var w;return clearInterval(this.interval),typeof(w=this.interval=setInterval(async()=>{var F,L,B,K,X,xe;X=Date.now(),B=this.instances,K=[];for(L in B){xe=B[L];try{await xe._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){F=je,K.push(xe.Events.trigger("error",F))}}return K},this.timeout/2)).unref=="function"?w.unref():void 0}updateSettings(w={}){if(Se.overwrite(w,this.defaults,this),Se.overwrite(w,w,this.limiterOptions),w.timeout!=null)return this._startAutoCleanup()}disconnect(w=!0){var F;if(!this.sharedConnection)return(F=this.connection)!=null?F.disconnect(w):void 0}}return J.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},J}.call(e);var fe=Re,ie,_e,Fe;Fe=o,_e=l,ie=function(){class J{constructor(w={}){this.options=w,Fe.load(this.options,this.defaults,this),this.Events=new _e(this),this._arr=[],this._resetPromise(),this._lastFlush=Date.now()}_resetPromise(){return this._promise=new this.Promise((w,F)=>this._resolve=w)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(w){var F;return this._arr.push(w),F=this._promise,this._arr.length===this.maxSize?this._flush():this.maxTime!=null&&this._arr.length===1&&(this._timeout=setTimeout(()=>this._flush(),this.maxTime)),F}}return J.prototype.defaults={maxTime:null,maxSize:null,Promise},J}.call(e);var at=ie,Gt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),tn=t(Ae),rn,go,ce,Wt,ct,Ze,_t,lt,ut,xt,Et,Gr=[].splice;Ze=10,go=5,Et=o,_t=p,Wt=D,ct=G,lt=Gt,ce=l,ut=q,xt=se,rn=function(){class J{constructor(w={},...F){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(w,F),Et.load(w,this.instanceDefaults,this),this._queues=new _t(Ze),this._scheduled={},this._states=new ut(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ce(this),this._submitLock=new xt("submit",this.Promise),this._registerLock=new xt("register",this.Promise),B=Et.load(w,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=Et.load(w,this.redisStoreDefaults,{}),new lt(this,B,L);if(this.datastore==="local")return L=Et.load(w,this.localStoreDefaults,{}),new ct(this,B,L);throw new J.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.ref=="function"?K.ref():void 0}),this._queues.on("zero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.unref=="function"?K.unref():void 0})}_validateOptions(w,F){if(!(w!=null&&typeof w=="object"&&F.length===0))throw new J.prototype.BottleneckError("Bottleneck v2 takes a single object argument. Refer to https://github.com/SGrondin/bottleneck#upgrading-to-v2 if you're upgrading from Bottleneck v1.")}ready(){return this._store.ready}clients(){return this._store.clients}channel(){return`b_${this.id}`}channel_client(){return`b_${this.id}_${this._store.clientId}`}publish(w){return this._store.__publish__(w)}disconnect(w=!0){return this._store.__disconnect__(w)}chain(w){return this._limiter=w,this}queued(w){return this._queues.queued(w)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(w){return this._states.jobStatus(w)}jobs(w){return this._states.statusJobs(w)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(w=1){return this._store.__check__(w)}_clearGlobalState(w){return this._scheduled[w]!=null?(clearTimeout(this._scheduled[w].expiration),delete this._scheduled[w],!0):!1}async _free(w,F,L,B){var K,X;try{if({running:X}=await this._store.__free__(w,L.weight),this.Events.trigger("debug",`Freed ${L.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(xe){return K=xe,this.Events.trigger("error",K)}}_run(w,F,L){var B,K,X;return F.doRun(),B=this._clearGlobalState.bind(this,w),X=this._run.bind(this,w,F),K=this._free.bind(this,w,F),this._scheduled[w]={timeout:setTimeout(()=>F.doExecute(this._limiter,B,X,K),L),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire(B,X,K)},L+F.options.expiration):void 0,job:F}}_drainOne(w){return this._registerLock.schedule(()=>{var F,L,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:F}=B=X.first(),w!=null&&K.weight>w?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:F,options:K}),L=this._randomIndex(),this._store.__register__(L,K.weight,K.expiration).then(({success:xe,wait:je,reservoir:Be})=>{var Lt;return this.Events.trigger("debug",`Drained ${K.id}`,{success:xe,args:F,options:K}),xe?(X.shift(),Lt=this.empty(),Lt&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",Lt),this._run(L,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(w,F=0){return this._drainOne(w).then(L=>{var B;return L!=null?(B=w!=null?w-L:w,this._drainAll(B,F+L)):this.Promise.resolve(F)}).catch(L=>this.Events.trigger("error",L))}_dropAllQueued(w){return this._queues.shiftAll(function(F){return F.doDrop({message:w})})}stop(w={}){var F,L;return w=Et.load(w,this.stopDefaults),L=B=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,xe)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},F=w.dropWaitingJobs?(this._run=function(B,K){return K.doDrop({message:w.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var B,K,X;K=this._scheduled;for(B in K)X=K[B],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:w.dropErrorMessage}));return this._dropAllQueued(w.dropErrorMessage),L(0)}))):this.schedule({priority:Ze-1,weight:0},()=>L(1)),this._receive=function(B){return B._reject(new J.prototype.BottleneckError(w.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new J.prototype.BottleneckError("stop() has already been called")),F}async _addToQueue(w){var F,L,B,K,X,xe,je;({args:F,options:K}=w);try{({reachedHWM:X,blocked:L,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:F,options:K,error:B}),w.doDrop({error:B}),!1}return L?(w.doDrop(),!0):X&&(xe=je===J.prototype.strategy.LEAK?this._queues.shiftLastFrom(K.priority):je===J.prototype.strategy.OVERFLOW_PRIORITY?this._queues.shiftLastFrom(K.priority+1):je===J.prototype.strategy.OVERFLOW?w:void 0,xe?.doDrop(),xe==null||je===J.prototype.strategy.OVERFLOW)?(xe==null&&w.doDrop(),X):(w.doQueue(X,L),this._queues.push(w),await this._drainAll(),X)}_receive(w){return this._states.jobStatus(w.options.id)!=null?(w._reject(new J.prototype.BottleneckError(`A job with the same id already exists (id=${w.options.id})`)),!1):(w.doReceive(),this._submitLock.schedule(this._addToQueue,w))}submit(...w){var F,L,B,K,X,xe,je;return typeof w[0]=="function"?(X=w,[L,...w]=X,[F]=Gr.call(w,-1),K=Et.load({},this.jobDefaults)):(xe=w,[K,L,...w]=xe,[F]=Gr.call(w,-1),K=Et.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(Lt,nn){return L(...Be,function(...Rr){return(Rr[0]!=null?nn:Lt)(Rr)})}),B=new Wt(je,w,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof F=="function"?F(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof F=="function"?F(...Be):void 0:typeof F=="function"?F(Be):void 0}),this._receive(B)}schedule(...w){var F,L,B;return typeof w[0]=="function"?([B,...w]=w,L={}):[L,B,...w]=w,F=new Wt(B,w,L,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(F),F.promise}wrap(w){var F,L;return F=this.schedule.bind(this),L=function(...B){return F(w.bind(this),...B)},L.withOptions=function(B,...K){return F(B,w,...K)},L}async updateSettings(w={}){return await this._store.__updateSettings__(Et.overwrite(w,this.storeDefaults)),Et.overwrite(w,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(w=0){return this._store.__incrementReservoir__(w)}}return J.default=J,J.Events=ce,J.version=J.prototype.version=tn.version,J.strategy=J.prototype.strategy={LEAK:1,OVERFLOW:2,OVERFLOW_PRIORITY:4,BLOCK:3},J.BottleneckError=J.prototype.BottleneckError=f,J.Group=J.prototype.Group=fe,J.RedisConnection=J.prototype.RedisConnection=Ee,J.IORedisConnection=J.prototype.IORedisConnection=ke,J.Batcher=J.prototype.Batcher=at,J.prototype.jobDefaults={priority:go,weight:1,expiration:null,id:"<no-id>"},J.prototype.storeDefaults={maxConcurrent:null,minTime:0,highWater:null,strategy:J.prototype.strategy.LEAK,penalty:null,reservoir:null,reservoirRefreshInterval:null,reservoirRefreshAmount:null,reservoirIncreaseInterval:null,reservoirIncreaseAmount:null,reservoirIncreaseMaximum:null},J.prototype.localStoreDefaults={Promise,timeout:null,heartbeatInterval:250},J.prototype.redisStoreDefaults={Promise,timeout:null,heartbeatInterval:5e3,clientTimeout:1e4,Redis:null,clientOptions:{},clusterNodes:null,clearDatastore:!1,connection:null},J.prototype.instanceDefaults={datastore:"local",connection:null,id:"<no-id>",rejectOnDrop:!0,trackDoneStatus:!1,Promise},J.prototype.stopDefaults={enqueueErrorMessage:"This limiter has been stopped and cannot accept new jobs.",dropWaitingJobs:!0,dropErrorMessage:"This limiter has been stopped."},J}.call(e);var Ce=rn,Le=Ce;return Le})});var fb=Wf(Ta=>{"use strict";Object.defineProperty(Ta,"__esModule",{value:!0});Ta.format=SA;Ta.parse=TA;var xA=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,lb=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,EA=/[\\"]/g,vA=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,db=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function SA(e){let{type:t,parameters:r}=e;if(!t||!vA.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!lb.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${DA(r[o])}`}return n}function TA(e,t){let r=e.length,n=Cc(e,0,r),o=n;n=Ac(e,n,r);let s=Dc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new db:CA(e,n,r);return{type:i,parameters:a}}var cb=32,ub=9,pb=59,PA=61,ab=34,AA=92;function CA(e,t,r){let n=new db;e:for(;t<r;){t=Cc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===pb)continue e;if(s===PA){let i=Dc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Cc(e,t+1,r),t<r&&e.charCodeAt(t)===ab){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===ab){t=Ac(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===AA&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Ac(e,t,r),n[a]===void 0){let d=Dc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Ac(e,t,r){for(;t<r&&e.charCodeAt(t)!==pb;)t++;return t}function Cc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==cb&&n!==ub)break;t++}return t}function Dc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==cb&&n!==ub)break;r--}return r}function DA(e){if(lb.test(e))return e;if(xA.test(e))return`"${e.replace(EA,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as AB}from"node:child_process";import{homedir as Ii}from"node:os";import{join as zl}from"node:path";var Ro=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},In=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonlError",this.line=t,this.reason=r}};function V(e,t){return new Ro(e,t)}function Te(e,t){return new In(e,t)}function _o(e){return e instanceof In?e:e instanceof Ro?new In(e.line,e.reason):new In(0,String(e&&e.message?e.message:e))}var Hf=["type","kind","event"],Mn="|",Uf=new Set(["order","discriminator","rows","common"]);var Ve=",";function Vi(e){let t=e.split(`
|
|
7
|
+
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function Er(e){return V(e,"invalid quoted string")}function qt(e,t){if(e==="")return"";if(e.startsWith('"'))return Vf(e,t);if(e.includes('"'))throw Er(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:oE(e)?Number(e):e}function nr(e,t){let r=e.trim();if(r.startsWith('"'))return[Vf(r,t),!0];if(r.includes('"')||/\s/.test(r))throw V(t,"expected non-empty field name");return[r,!1]}var qf=/["\\\u0000-\u0008\u000a-\u001f]/g;function Vf(e,t){if(e.charCodeAt(0)!==34)throw Er(t);let r="",n=1;for(;n<e.length;){qf.lastIndex=n;let o=qf.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw Er(t)}if(o[0]!=="\\")throw Er(t);r+=e.slice(n,o.index);let s=e[o.index+1];switch(n=o.index+2,s){case'"':r+='"';break;case"\\":r+="\\";break;case"n":r+=`
|
|
8
|
+
`;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw Er(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw Er(t);r+=String.fromCharCode(a),n+=4;break}default:throw Er(t)}}throw Er(t)}function zf(e,t,r){for(;;){let n=e.indexOf('"',t),o=e.indexOf("\\",t);if(o!==-1&&(n===-1||o<n)){if(o===e.length-1)throw Er(r);t=o+2;continue}if(n===-1)throw Er(r);return n+1}}function or(e,t,r){if(e==="")return[];let n=[],o=0,s=0;for(;s<e.length;){let i=e.indexOf('"',s),a=e.indexOf(t,s);if(a!==-1&&(i===-1||a<i))n.push(e.slice(o,a).trim()),o=a+1,s=a+1;else if(i!==-1)s=zf(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function Tt(e,t,r){let n=0;for(;n<e.length;){let o=e.indexOf('"',n),s=e.indexOf(t,n);if(s!==-1&&(o===-1||s<o))return s;if(o===-1)return-1;n=zf(e,o+1,r)}return-1}function oE(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function sE(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function iE(e){if(Object.is(e,-0))return"0";if(!Number.isFinite(e))throw V(0,"number is not representable in TOON");return String(e)}function vr(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"}function Pt(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return iE(e);if(typeof e=="string")return lE(e,t);throw V(0,"not a primitive")}function aE(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return aE(e)?e:zi(e)}function lE(e,t){return od(e,t)?zi(e):e}function od(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||sE(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var Kf=/["\\\u0000-\u001f]/g;function zi(e){let t='"',r=0;Kf.lastIndex=0;let n;for(;(n=Kf.exec(e))!==null;){let o=e.charCodeAt(n.index),s;o===34?s='\\"':o===92?s="\\\\":o===10?s="\\n":o===13?s="\\r":o===9?s="\\t":s=`\\u${o.toString(16).padStart(4,"0")}`,t+=e.slice(r,n.index)+s,r=n.index+1}return`${t}${e.slice(r)}"`}function sr(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function nt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Jf(e={}){let t=e.maxDepth??1e3,r=t===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(t));return{indent:Math.max(1,e.indent??2),strict:e.strict??!0,expandPaths:e.expandPaths==="safe"||e.expandPaths===!0,cyclicDiscriminatedArrays:e.cyclicDiscriminatedArrays!==!1,maxDepth:r}}function Yf(e,t){let r=[],n=!1;return Vi(e).forEach((o,s)=>{let i=s+1;if(o.trim()===""){n=!0;return}let a=o.length-o.replace(/^ +/,"").length;if(o[a]===" ")throw V(i,"invalid indentation");if(t.strict&&a%t.indent!==0)throw V(i,"invalid indentation");let l=Math.floor(a/t.indent);Sr(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function Sr(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw V(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function Rs(e,t,r){if(r.maxDepth===0)return;let n=0,o=!1,s=!1;for(let i of e){if(s){s=!1;continue}if(o&&i==="\\"){s=!0;continue}if(i==='"'){o=!o;continue}o||(i==="{"?(n+=1,Sr(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function Zf(e){if(!nt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=dE(n,1);if(o===void 0)return e;sr(t,r,o)}return t}function dE(e,t){if(!nt(e)||!cE(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw bt(t);let s=uE(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(nt))throw eg(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!Uf.has(u)){if(!Array.isArray(p)||!p.every(nt))throw bt(t);l.set(u,p)}if(l.size===0)throw bt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw sd(t);let f=d.get(u)??0,y=g[f];if(y===void 0)throw sd(t);return d.set(u,f+1),pE(n,u,a[p],y,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw sd(t);return c}function cE(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function uE(e,t,r){if(!e.startsWith("cycle("))throw bt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw bt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw bt(r);let a=s.split(",").map(c=>mE(c,r));if(a.some(c=>c===""))throw bt(r);let l=hE(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw bt(r);if(d!==t)throw eg(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function pE(e,t,r,n,o){let s={};sr(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);sr(s,i,a)}for(let[i,a]of Object.entries(fE(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw bt(o);sr(s,i,a)}return s}function fE(e,t){let r={};for(let[n,o]of Object.entries(e))gE(r,n.split("."),o,t);return Ji(r,t)}function gE(e,t,r,n){if(t.some(s=>s===""))throw bt(n);let o=e;for(let s=0;s<t.length;s+=1){let i=t[s];if(s===t.length-1){o[i]=r;return}if(o[i]??={},o=o[i],!nt(o))throw bt(n)}}function Ji(e,t){return Array.isArray(e)?e.map(r=>Ji(r,t)):nt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw bt(t);return Ji(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Ji(n,t)])):e}function hE(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw bt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw bt(t);return r}function mE(e,t){try{return decodeURIComponent(e)}catch{throw bt(t)}}function Qf(e){return encodeURIComponent(e)}function bt(e){return V(e,"invalid cyclic array wire")}function eg(e){return V(e,"cyclic array length mismatch")}function sd(e){return V(e,"cyclic array group length mismatch")}function tg(e){if(!nt(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=bE(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)RE(n,o,s);return n.join("")}function bE(e){if(!Array.isArray(e)||e.length===0||!e.every(nt))return;let t=yE(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=kE(r);if(n===void 0)return;let o=wE(e,t),s=new Map;for(let a of e){let l=a[t];s.has(l)||s.set(l,[]);let d={};for(let[c,u]of Object.entries(a))if(c!==t&&!o.includes(c)&&!id(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=xE(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 yE(e){return Hf.find(t=>e.every(r=>typeof r[t]=="string"))}function kE(e){if(!(e.length<12))for(let t=2;t<=Math.min(8,Math.floor(e.length/3));t+=1){if(e.length%t!==0)continue;let r=e.slice(0,t);if(new Set(r).size<2||!e.every((i,a)=>i===r[a%t]))continue;let n=e.length/t;if(n<3)continue;let o=e.map(Qf).join(","),s=`cycle(${r.map(Qf).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function wE(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(!_E(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>vr(i[s])))break;r.push(s)}return r}function RE(e,t,r){e.push(ft(t),`:
|
|
9
9
|
`),e.push(" order: ",Pt(r.order.encoded,Mn),`
|
|
10
10
|
`),e.push(" discriminator: ",Pt(r.discriminator,Mn),`
|
|
11
11
|
`),e.push(" rows: ",String(r.rows.length),`
|
|
12
|
-
`),r.common.length>0&&
|
|
12
|
+
`),r.common.length>0&&Xf(e,"common",r.common,r.commonRows);for(let n of r.groups)Xf(e,n.label,n.fields,n.rows)}function Xf(e,t,r,n){e.push(" ",ft(t),"[",String(n.length),Mn,"]{",r.map(ft).join(Mn),`}:
|
|
13
13
|
`);for(let o of n)e.push(" ",r.map(s=>Pt(o[s],Mn)).join(Mn),`
|
|
14
|
-
`)}function wE(e){return e!==""&&ad(e)}function id(e,t,r,n=new Set){if(!ad(t))return!1;if(vr(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let o=e.every((s,i)=>id(s,`${t}.${i}`,r,n));return n.delete(e),o}if(nt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&id(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function RE(e){let t=Object.keys(e[0]??{});if(e.every(r=>_E(Object.keys(r),t)))return t.every(ad)?t:void 0}function _E(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function ad(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function xo(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function Yi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=Tt(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=rr(r.slice(0,n),0)}catch{throw V(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw V(0,"invalid array header");let l=i.slice(0,a),d=/^[0-9]*/.exec(l)[0];if(d===""||d.length>1&&d.startsWith("0"))throw V(0,"invalid array header");let c=Number.parseInt(d,10),u;switch(l.slice(d.length)){case"":u=",";break;case" ":u=" ";break;case"|":u="|";break;default:throw V(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=EE(p.slice(1,-1),u),g=dd(f)}catch(y){throw V(0,y.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw V(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function tg(e){let t=Tt(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=rr(e.slice(0,t),0)}catch{throw V(0,"invalid keyed map header")}if(r===""&&!n)throw V(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=Ve;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=xE(o,s,s)}catch(a){throw V(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function xE(e,t,r){let n=[],o=0;function s(l,d){let c=0;for(;o<e.length&&!(d&&e[o]==="}");){if(e[o]===t||e[o]==="}")throw V(0,"invalid array header");let u=o;for(;o<e.length;){let f=e[o];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;o+=1}let[p,g]=rr(e.slice(u,o),0);if(p===""&&!g)throw V(0,"invalid array header");if(c+=1,e[o]==="["){o+=1;let f=o;for(;o<e.length&&e[o]!=="]";)o+=1;if(o>=e.length)throw V(0,"invalid array header");let y=e.slice(f,o);if(!rg(y,r))throw V(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:y})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw V(0,"invalid array header");o+=1}else n.push({path:[...l,p],listDelimiter:void 0});if(e[o]===t){if(o+=1,o>=e.length||e[o]==="}")throw V(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw V(0,"invalid array header")}if(c===0)throw V(0,"invalid array header")}function i(){for(o+=1;o<e.length;){let l=e[o];if(o+=1,l==="\\")o+=1;else if(l==='"')return}}if(s([],!1),o!==e.length)throw V(0,"invalid array header");let a=new Set;for(let l=0;l<n.length;l+=1)for(let d=l+1;d<n.length;d+=1)if(ng(n[l].path,n[d].path)||_s(n[l].path,n[d].path)||_s(n[d].path,n[l].path))throw V(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw V(0,"duplicate key");a.add(c)}return n}function EE(e,t){if(t!==Ve&&e.includes(Ve)&&(e.includes("[")||e.includes("{")))return ld(e,Ve,t);try{return ld(e,t,t)}catch(r){if(t!==Ve&&r.reason!=="duplicate key")return ld(e,Ve,t);throw r}}function ld(e,t,r){let n=0;function o(l){let d=[];for(;n<e.length&&!(l&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw V(0,"invalid array header");let c=n;for(;n<e.length;){let f=e[n];if(f==='"'){s();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[u,p]=rr(e.slice(c,n),0);if(u===""&&!p)throw V(0,"invalid array header");let g={key:u};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw V(0,"invalid array header");let y=e.slice(f,n);n+=1;let h=vE(y);if(h!==void 0){if(h.delimiter!==r)throw V(0,"invalid array header");g.fixedLength=h.len,g.fixedDelimiter=h.delimiter}else if(rg(y,r))g.listDelimiter=y;else throw V(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw V(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw V(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw V(0,"invalid array header")}if(d.length===0)throw V(0,"invalid array header");return d}function s(){for(n+=1;n<e.length;){let l=e[n];if(n+=1,l==="\\")n+=1;else if(l==='"')return}}let i=o(!1);if(n!==e.length)throw V(0,"invalid array header");let a=dd(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(ng(a[l].path,a[d].path)||_s(a[l].path,a[d].path)||_s(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function vE(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=Ve;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function dd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?dd(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Qi(e,t,r){return e.listDelimiter===void 0?qt(t,r):nr(t,e.listDelimiter,r).map(n=>qt(n,r))}function rg(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function ng(e,t){return e.length===t.length&&_s(e,t)}function _s(e,t){return t.every((r,n)=>e[n]===r)}function Xi(e,t){return V(t,e.reason??String(e.message))}function Dt(e,t){let r=zf(t),n=Jf(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw V(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){Rs(o.content,o.number,r);let d;try{d=Yi(o.content,Tt(o.content,":",o.number))}catch(c){if(r.strict)throw Xi(c,o.number);d=void 0}if(d!==void 0)return PE(d,n,r)}if(s&&Tt(o.content,":",o.number)===-1)return qt(o.content.trim(),o.number);let i={index:0},a=ud(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Xf(a):a}function ud(e,t,r,n){let o={};for(;t.index<e.length;){let s=e[t.index];if(s.depth<r)break;if(s.depth>r)throw V(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=SE(e,t,r,n);cg(o,i,a,l,n,s.number)}return o}function SE(e,t,r,n){let o=e[t.index],s=o.content,i=Tt(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=Tt(a,"[",o.number),c=Tt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){Rs(a,o.number,n);let f;try{f=tg(a)}catch(h){if(n.strict)throw Xi(h,o.number);t.index+=1;let R=cd(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(l.trim()!=="")throw V(o.number,"expected keyed map rows");let y=TE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:y}}if(d!==-1){Rs(a,o.number,n);let f;try{f=Yi(a,i)}catch(h){if(n.strict)throw Xi(h,o.number);t.index+=1;let R=cd(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(f.key===""&&!f.keyQuoted)throw V(o.number,"expected non-empty field name");let y=pd(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=rr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=cd(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function cd(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return qt(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?ud(e,t,r+1,s):{}}function TE(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=Tt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=rr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=nr(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw V(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{vo(u,p.path,Qi(p,c[g],i.number),o,i.number)}),cg(s,l,d,u,o,i.number),r.index+=1}return s}function PE(e,t,r){let n=t[0],o=Tt(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=pd(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return a}function pd(e,t,r,n,o,s){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw V(i,"expected tabular rows");return AE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=nr(a,e.delimiter,i).map(d=>qt(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return LE(e,r,n,o+1,s)}function AE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&IE(e.fieldTree))return CE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw xo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw V(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw V(l.number,"blank line inside array");if(!Eo(l.content,e.delimiter,l.number))break;let d=nr(l.content,e.delimiter,l.number);if(d.length!==t.length)throw V(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{vo(c,u.path,Qi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw xo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&Eo(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function CE(e,t,r,n,o){return og(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function og(e,t,r,n,o,s,i,a){let l=[],d=ig(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw xo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw V(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw V(u.number,"blank line inside array");if(!Eo(u.content,r,u.number))break;let p=nr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Zi(t),childTableFields:d},f=sg(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw V(u.number,"array row length mismatch");l.push(FE(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw xo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&Eo(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function sg(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=DE(d,u,t,r,n,o,s,i,a);vo(l,[d.key],p,a,r)}),l}function DE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw V(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>qt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Zi(e.children),u=r[s.cellIndex],p=lg(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],y=f!==void 0&&f.depth===i,h=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(h===void 0?p!==void 0&&(y||r.length!==s.flatWidth&&g<c+ME(t)):h){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,og(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return sg(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Qi(e,d,n)}function ig(e,t,r,n,o,s,i){let a=t.filter(c=>c.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let l,d=1<<a.length;for(let c=0;c<d;c+=1){let u=new Set;a.forEach((g,f)=>{c&1<<f&&u.add(g)});let p=ag(e,t,u,r,n,o,s,i);p!==void 0&&(l===void 0||p.consumedChildRows>l.consumedChildRows||p.consumedChildRows===l.consumedChildRows&&u.size<l.childTableFields.size)&&(l={childTableFields:u,consumedChildRows:p.consumedChildRows})}return l?.childTableFields}function ag(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u+=1){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!Eo(p.content,n,p.number))return;let g=nr(p.content,n,p.number),f=OE(t,r,g,n,o,l+1,i+1,a);if(f===void 0||o[f.nextIndex]?.depth>i)return;d+=f.consumedChildRows,l=f.nextIndex}let c=o[l];if(c!==void 0&&c.depth>=i&&Eo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function OE(e,t,r,n,o,s,i,a){let l=0,d=s,c=0;for(let u of e){if(u.fixedLength!==void 0)l+=u.fixedLength;else if(u.children!==void 0)if(t.has(u)){let p=lg(r[l]);if(p===void 0)return;l+=1;let g=ig(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=ag(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Zi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function FE(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function lg(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function IE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Zi(e){return e.reduce((t,r)=>t+dg(r),0)}function dg(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Zi(e.children):1}function ME(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+dg(r),0)}function Eo(e,t,r){let n=Tt(e,":",r);if(n===-1)return!0;let o=Tt(e,t,r);return o===-1?!1:o<n}function LE(e,t,r,n,o){let s=[];for(;s.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw xo(t,r.index);if(a.depth>n)throw V(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw V(a.number,"blank line inside array");s.push(jE(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw V(i.number,"array length mismatch");return s}function jE(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=Tt(s,":",o.number);Rs(s,o.number,n);let a;try{a=Yi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return pd(a,l,e,t,r,n)}}if(Tt(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return ud(i,{index:0},r+1,n)}return t.index+=1,qt(s,o.number)}function cg(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(BE)){vo(e,i,n,o,s);return}}vo(e,[t],n,o,s)}function vo(e,t,r,n,o){Sr(t.length-1,o,n);let s=t[0],i=Object.prototype.hasOwnProperty.call(e,s);if(t.length===1){if(i&&n.strict)throw V(o,"duplicate key");or(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw V(o,"path expansion conflict");or(e,s,{})}else i||or(e,s,{});vo(e[s],t.slice(1),r,n,o)}function BE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Ve;if(![Ve,"|"," "].includes(n))throw V(0,"invalid array header");let o={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(o.cyclicDiscriminatedArrays){let i=eg(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?md(s,void 0,e,0,!1,o):nt(e)?ug(s,e,0,o):s.push(Pt(e,n)),s.join("")}function So(e,t){e.push(" ".repeat(t*2))}function ug(e,t,r,n){Sr(r,0,n);for(let[o,s]of Object.entries(t))So(e,r),gd(e,o,s,r,n)}function gd(e,t,r,n,o){if(Sr(n,0,o),Array.isArray(r)){md(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?NE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",bd(o.delimiter),s.fields.map(i=>wd(i,o.delimiter)).join(o.delimiter),`}:
|
|
14
|
+
`)}function _E(e){return e!==""&&ad(e)}function id(e,t,r,n=new Set){if(!ad(t))return!1;if(vr(e))return r[t]=e,!0;if(Array.isArray(e)){if(n.has(e))return!1;n.add(e),r[`${t}.length`]=e.length;let o=e.every((s,i)=>id(s,`${t}.${i}`,r,n));return n.delete(e),o}if(nt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&id(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function xE(e){let t=Object.keys(e[0]??{});if(e.every(r=>EE(Object.keys(r),t)))return t.every(ad)?t:void 0}function EE(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function ad(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function xo(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function Yi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=Tt(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=nr(r.slice(0,n),0)}catch{throw V(0,"invalid array header")}let i=r.slice(n+1),a=i.indexOf("]");if(a===-1)throw V(0,"invalid array header");let l=i.slice(0,a),d=/^[0-9]*/.exec(l)[0];if(d===""||d.length>1&&d.startsWith("0"))throw V(0,"invalid array header");let c=Number.parseInt(d,10),u;switch(l.slice(d.length)){case"":u=",";break;case" ":u=" ";break;case"|":u="|";break;default:throw V(0,"invalid array header")}let p=i.slice(a+1),g,f;if(p==="")g=void 0,f=void 0;else if(p.startsWith("{")&&p.endsWith("}")&&p.length>=2)try{f=SE(p.slice(1,-1),u),g=dd(f)}catch(y){throw V(0,y.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw V(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function rg(e){let t=Tt(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=nr(e.slice(0,t),0)}catch{throw V(0,"invalid keyed map header")}if(r===""&&!n)throw V(0,"expected non-empty field name");let o=e.slice(t+1,-1),s=Ve;(o.startsWith("|")||o.startsWith(" "))&&(s=o[0],o=o.slice(1));let i;try{i=vE(o,s,s)}catch(a){throw V(0,a.reason==="duplicate key"?"duplicate key":"invalid keyed map header")}return{key:r,keyQuoted:n,delimiter:s,fields:i}}function vE(e,t,r){let n=[],o=0;function s(l,d){let c=0;for(;o<e.length&&!(d&&e[o]==="}");){if(e[o]===t||e[o]==="}")throw V(0,"invalid array header");let u=o;for(;o<e.length;){let f=e[o];if(f==='"'){i();continue}if(f===t||f==="{"||f==="}"||f==="[")break;o+=1}let[p,g]=nr(e.slice(u,o),0);if(p===""&&!g)throw V(0,"invalid array header");if(c+=1,e[o]==="["){o+=1;let f=o;for(;o<e.length&&e[o]!=="]";)o+=1;if(o>=e.length)throw V(0,"invalid array header");let y=e.slice(f,o);if(!ng(y,r))throw V(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:y})}else if(e[o]==="{"){o+=1;let f=n.length;if(s([...l,p],!0),e[o]!=="}"||n.length===f)throw V(0,"invalid array header");o+=1}else n.push({path:[...l,p],listDelimiter:void 0});if(e[o]===t){if(o+=1,o>=e.length||e[o]==="}")throw V(0,"invalid array header");continue}if(d?e[o]==="}":o===e.length)break;throw V(0,"invalid array header")}if(c===0)throw V(0,"invalid array header")}function i(){for(o+=1;o<e.length;){let l=e[o];if(o+=1,l==="\\")o+=1;else if(l==='"')return}}if(s([],!1),o!==e.length)throw V(0,"invalid array header");let a=new Set;for(let l=0;l<n.length;l+=1)for(let d=l+1;d<n.length;d+=1)if(og(n[l].path,n[d].path)||_s(n[l].path,n[d].path)||_s(n[d].path,n[l].path))throw V(0,"duplicate key");for(let l of n){let c=l.path.join("\0");if(a.has(c))throw V(0,"duplicate key");a.add(c)}return n}function SE(e,t){if(t!==Ve&&e.includes(Ve)&&(e.includes("[")||e.includes("{")))return ld(e,Ve,t);try{return ld(e,t,t)}catch(r){if(t!==Ve&&r.reason!=="duplicate key")return ld(e,Ve,t);throw r}}function ld(e,t,r){let n=0;function o(l){let d=[];for(;n<e.length&&!(l&&e[n]==="}");){if(e[n]===t||e[n]==="}")throw V(0,"invalid array header");let c=n;for(;n<e.length;){let f=e[n];if(f==='"'){s();continue}if(f===t||f==="{"||f==="}"||f==="[")break;n+=1}let[u,p]=nr(e.slice(c,n),0);if(u===""&&!p)throw V(0,"invalid array header");let g={key:u};if(e[n]==="["){n+=1;let f=n;for(;n<e.length&&e[n]!=="]";)n+=1;if(n>=e.length)throw V(0,"invalid array header");let y=e.slice(f,n);n+=1;let h=TE(y);if(h!==void 0){if(h.delimiter!==r)throw V(0,"invalid array header");g.fixedLength=h.len,g.fixedDelimiter=h.delimiter}else if(ng(y,r))g.listDelimiter=y;else throw V(0,"invalid array header")}else if(e[n]==="{"){if(n+=1,g.children=o(!0),e[n]!=="}"||g.children.length===0)throw V(0,"invalid array header");n+=1}if(d.push(g),e[n]===t){if(n+=1,n>=e.length||e[n]==="}")throw V(0,"invalid array header");continue}if(l?e[n]==="}":n===e.length)break;throw V(0,"invalid array header")}if(d.length===0)throw V(0,"invalid array header");return d}function s(){for(n+=1;n<e.length;){let l=e[n];if(n+=1,l==="\\")n+=1;else if(l==='"')return}}let i=o(!1);if(n!==e.length)throw V(0,"invalid array header");let a=dd(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(og(a[l].path,a[d].path)||_s(a[l].path,a[d].path)||_s(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function TE(e){let t=/^[0-9]+/.exec(e)?.[0];if(t===void 0||t.length>1&&t.startsWith("0"))return;let r=e.slice(t.length),n;switch(r){case"":n=Ve;break;case" ":n=" ";break;case"|":n="|";break;default:return}return{len:Number.parseInt(t,10),delimiter:n}}function dd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?dd(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function Qi(e,t,r){return e.listDelimiter===void 0?qt(t,r):or(t,e.listDelimiter,r).map(n=>qt(n,r))}function ng(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function og(e,t){return e.length===t.length&&_s(e,t)}function _s(e,t){return t.every((r,n)=>e[n]===r)}function Xi(e,t){return V(t,e.reason??String(e.message))}function Dt(e,t){let r=Jf(t),n=Yf(e,r),o=n[0];if(o===void 0)return{};if(o.depth!==0)throw V(o.number,"invalid indentation");let s=n.length===1;if(s&&o.content.trim()==="[]")return[];if(o.content.startsWith("[")){Rs(o.content,o.number,r);let d;try{d=Yi(o.content,Tt(o.content,":",o.number))}catch(c){if(r.strict)throw Xi(c,o.number);d=void 0}if(d!==void 0)return CE(d,n,r)}if(s&&Tt(o.content,":",o.number)===-1)return qt(o.content.trim(),o.number);let i={index:0},a=ud(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Zf(a):a}function ud(e,t,r,n){let o={};for(;t.index<e.length;){let s=e[t.index];if(s.depth<r)break;if(s.depth>r)throw V(s.number,"invalid indentation");let{key:i,quoted:a,value:l}=PE(e,t,r,n);ug(o,i,a,l,n,s.number)}return o}function PE(e,t,r,n){let o=e[t.index],s=o.content,i=Tt(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=Tt(a,"[",o.number),c=Tt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){Rs(a,o.number,n);let f;try{f=rg(a)}catch(h){if(n.strict)throw Xi(h,o.number);t.index+=1;let R=cd(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(l.trim()!=="")throw V(o.number,"expected keyed map rows");let y=AE(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:y}}if(d!==-1){Rs(a,o.number,n);let f;try{f=Yi(a,i)}catch(h){if(n.strict)throw Xi(h,o.number);t.index+=1;let R=cd(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:R}}if(f.key===""&&!f.keyQuoted)throw V(o.number,"expected non-empty field name");let y=pd(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=nr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=cd(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function cd(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return qt(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?ud(e,t,r+1,s):{}}function AE(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=Tt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=nr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=or(i.content.slice(a+1).trim(),e.delimiter,i.number);if(c.length!==e.fields.length)throw V(i.number,"keyed map row length mismatch");let u={};e.fields.forEach((p,g)=>{vo(u,p.path,Qi(p,c[g],i.number),o,i.number)}),ug(s,l,d,u,o,i.number),r.index+=1}return s}function CE(e,t,r){let n=t[0],o=Tt(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=pd(e,s,t,i,0,r),l=t[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return a}function pd(e,t,r,n,o,s){let i=r[n.index].number,a=t.trim();if(n.index+=1,e.fields!==void 0){if(a!=="")throw V(i,"expected tabular rows");return DE(e,e.fields,r,n,o+1,s)}if(a!==""){let l=or(a,e.delimiter,i).map(d=>qt(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return BE(e,r,n,o+1,s)}function DE(e,t,r,n,o,s){if(e.fieldTree!==void 0&&LE(e.fieldTree))return OE(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw xo(r,n.index);if(l.depth<o)break;if(l.depth>o)throw V(l.number,"invalid indentation");if(l.blankBefore&&s.strict)throw V(l.number,"blank line inside array");if(!Eo(l.content,e.delimiter,l.number))break;let d=or(l.content,e.delimiter,l.number);if(d.length!==t.length)throw V(l.number,"array row length mismatch");let c={};t.forEach((u,p)=>{vo(c,u.path,Qi(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw xo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&Eo(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function OE(e,t,r,n,o){return sg(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function sg(e,t,r,n,o,s,i,a){let l=[],d=ag(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw xo(n,o.index);if(u.depth<s)break;if(u.depth>s)throw V(u.number,"invalid indentation");if(u.blankBefore&&i.strict)throw V(u.number,"blank line inside array");if(!Eo(u.content,r,u.number))break;let p=or(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:Zi(t),childTableFields:d},f=ig(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw V(u.number,"array row length mismatch");l.push(ME(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw xo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&Eo(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function ig(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=FE(d,u,t,r,n,o,s,i,a);vo(l,[d.key],p,a,r)}),l}function FE(e,t,r,n,o,s,i,a,l){if(e.fixedLength!==void 0){if(s.cellIndex+e.fixedLength>r.length)throw V(n,"array row length mismatch");let c=r.slice(s.cellIndex,s.cellIndex+e.fixedLength).map(u=>qt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=Zi(e.children),u=r[s.cellIndex],p=dg(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],y=f!==void 0&&f.depth===i,h=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(h===void 0?p!==void 0&&(y||r.length!==s.flatWidth&&g<c+jE(t)):h){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,sg(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return ig(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Qi(e,d,n)}function ag(e,t,r,n,o,s,i){let a=t.filter(c=>c.children!==void 0);if(a.length===0)return new Set;if(a.length>12)return;let l,d=1<<a.length;for(let c=0;c<d;c+=1){let u=new Set;a.forEach((g,f)=>{c&1<<f&&u.add(g)});let p=lg(e,t,u,r,n,o,s,i);p!==void 0&&(l===void 0||p.consumedChildRows>l.consumedChildRows||p.consumedChildRows===l.consumedChildRows&&u.size<l.childTableFields.size)&&(l={childTableFields:u,consumedChildRows:p.consumedChildRows})}return l?.childTableFields}function lg(e,t,r,n,o,s,i,a){let l=s,d=0;try{for(let u=0;u<e;u+=1){let p=o[l];if(p===void 0||p.depth!==i||p.blankBefore&&a.strict||!Eo(p.content,n,p.number))return;let g=or(p.content,n,p.number),f=IE(t,r,g,n,o,l+1,i+1,a);if(f===void 0||o[f.nextIndex]?.depth>i)return;d+=f.consumedChildRows,l=f.nextIndex}let c=o[l];if(c!==void 0&&c.depth>=i&&Eo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function IE(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=dg(r[l]);if(p===void 0)return;l+=1;let g=ag(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=lg(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=Zi(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function ME(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function dg(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function LE(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function Zi(e){return e.reduce((t,r)=>t+cg(r),0)}function cg(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?Zi(e.children):1}function jE(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+cg(r),0)}function Eo(e,t,r){let n=Tt(e,":",r);if(n===-1)return!0;let o=Tt(e,t,r);return o===-1?!1:o<n}function BE(e,t,r,n,o){let s=[];for(;s.length<e.len;){let a=t[r.index];if(a===void 0||a.depth<n)throw xo(t,r.index);if(a.depth>n)throw V(a.number,"invalid indentation");if(a.blankBefore&&o.strict)throw V(a.number,"blank line inside array");s.push($E(t,r,n,o))}let i=t[r.index];if(i!==void 0&&i.depth>=n)throw V(i.number,"array length mismatch");return s}function $E(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=Tt(s,":",o.number);Rs(s,o.number,n);let a;try{a=Yi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return pd(a,l,e,t,r,n)}}if(Tt(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return ud(i,{index:0},r+1,n)}return t.index+=1,qt(s,o.number)}function ug(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(NE)){vo(e,i,n,o,s);return}}vo(e,[t],n,o,s)}function vo(e,t,r,n,o){Sr(t.length-1,o,n);let s=t[0],i=Object.prototype.hasOwnProperty.call(e,s);if(t.length===1){if(i&&n.strict)throw V(o,"duplicate key");sr(e,s,r);return}if(i&&!nt(e[s])){if(n.strict)throw V(o,"path expansion conflict");sr(e,s,{})}else i||sr(e,s,{});vo(e[s],t.slice(1),r,n,o)}function NE(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function ot(e,t={}){let r=t.maxDepth??1e3,n=t.delimiter??Ve;if(![Ve,"|"," "].includes(n))throw V(0,"invalid array header");let o={nestedTabularHeaders:t.nestedTabularHeaders===!0,keyedMapCollapse:t.keyedMapCollapse===!0,primitiveArrayColumns:t.primitiveArrayColumns===!0,objectArrayColumns:t.objectArrayColumns===!0,cyclicDiscriminatedArrays:t.cyclicDiscriminatedArrays===!0,delimiter:n,maxDepth:r===Number.POSITIVE_INFINITY?0:Math.max(0,Math.floor(r))};if(o.cyclicDiscriminatedArrays){let i=tg(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?md(s,void 0,e,0,!1,o):nt(e)?pg(s,e,0,o):s.push(Pt(e,n)),s.join("")}function So(e,t){e.push(" ".repeat(t*2))}function pg(e,t,r,n){Sr(r,0,n);for(let[o,s]of Object.entries(t))So(e,r),gd(e,o,s,r,n)}function gd(e,t,r,n,o){if(Sr(n,0,o),Array.isArray(r)){md(e,t,r,n,!1,o);return}if(nt(r)){let s=o.keyedMapCollapse?WE(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",bd(o.delimiter),s.fields.map(i=>wd(i,o.delimiter)).join(o.delimiter),`}:
|
|
15
15
|
`);for(let[i,a]of Object.entries(r)){So(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>Rd(kd(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
|
|
16
16
|
`),e.push(...l)}return}e.push(ft(t),`:
|
|
17
|
-
`),
|
|
17
|
+
`),pg(e,r,n+1,o);return}e.push(ft(t),": ",Pt(r,o.delimiter),`
|
|
18
18
|
`)}function md(e,t,r,n,o,s){if(Sr(n,0,s),r.length===0){t!==void 0?e.push(ft(t),`: []
|
|
19
19
|
`):o?e.push(`[0]:
|
|
20
20
|
`):e.push(`[]
|
|
21
21
|
`);return}if(r.every(vr)){fd(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>Pt(a,s.delimiter)).join(s.delimiter)),e.push(`
|
|
22
|
-
`);return}let i=o?void 0:
|
|
22
|
+
`);return}let i=o?void 0:fg(r,s,n+1);if(i!==void 0){fd(e,t,r.length,i.fields,s.delimiter),e.push(`
|
|
23
23
|
`);for(let a of r){So(e,n+1);let l=[];e.push(i.paths.map(d=>Rd(kd(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
|
|
24
24
|
`),e.push(...l)}return}fd(e,t,r.length,void 0,s.delimiter),e.push(`
|
|
25
|
-
`);for(let a of r)So(e,n+1)
|
|
25
|
+
`);for(let a of r)So(e,n+1),GE(e,a,n+1,s)}function GE(e,t,r,n){if(Sr(r,0,n),Array.isArray(t)){e.push("- "),md(e,void 0,t,r,!0,n);return}if(nt(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
|
|
26
26
|
`);return}e.push("- "),gd(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))So(e,r+1),gd(e,s,i,r+1,n);return}e.push("- ",Pt(t,n.delimiter),`
|
|
27
|
-
`)}function fd(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),bd(o),"]"),n!==void 0&&e.push("{",n.map(s=>wd(s,o)).join(o),"}"),e.push(":")}function bd(e){return e===Ve?"":e}function
|
|
28
|
-
`),e.push(...i)}}function
|
|
29
|
-
`}function
|
|
30
|
-
`}function _d(e,t){return t.map(ft).join(e)}function
|
|
31
|
-
`,f=()=>
|
|
32
|
-
`;return T+=D,a+=1,l+=1,d+=D.length,T},declareLane(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=
|
|
33
|
-
`},end(){return u?"":(u=!0,g())}}}function xd(e){let t={app:e,version:
|
|
27
|
+
`)}function fd(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),bd(o),"]"),n!==void 0&&e.push("{",n.map(s=>wd(s,o)).join(o),"}"),e.push(":")}function bd(e){return e===Ve?"":e}function fg(e,t,r){let n=HE(e,t);if(n!==void 0)return n;let o=hd(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:yd(o)}}function WE(e,t,r){let n=Object.values(e);if(!(n.length<2))return fg(n,t,r)}function hd(e,t,r){Sr(r,0,t);let n=e[0]?.value;if(!nt(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!nt(s)||Object.keys(s).length!==o.length||o.some(a=>!Object.prototype.hasOwnProperty.call(s,a.key)))return;for(let s of o){let i=e.map(({value:l})=>({value:l[s.key]}));if(i.every(({value:l})=>vr(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(vr))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=gg(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=hd(i.flatMap(({value:c})=>c.map(u=>({value:u}))),t,r+1);if(d!==void 0){s.children=d,s.childTable=!0;continue}}if(!t.nestedTabularHeaders)return;let a=hd(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function HE(e,t){if(!t.objectArrayColumns)return;let r=gg(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function gg(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(vr)))return{fixedLength:t}}function yd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.childTable===!0?[{path:n,childFields:r.children}]:r.fixedLength!==void 0?[{path:n,fixedLength:r.fixedLength}]:r.children===void 0?[{path:n,listDelimiter:r.listDelimiter}]:yd(r.children,n)})}function kd(e,t){let r=e;for(let n of t)r=r[n];return r}function wd(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${bd(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>wd(r,t)).join(t)}}`}function Rd(e,t,r,n,o,s){return t.childFields!==void 0?(UE(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>Pt(i,r)).join(r):t.listDelimiter===void 0?Pt(e,r):e.map(i=>qE(i,r,t.listDelimiter)).join(t.listDelimiter)}function UE(e,t,r,n,o){for(let s of t){So(e,o);let i=[];e.push(yd(r).map(a=>Rd(kd(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
|
|
28
|
+
`),e.push(...i)}}function qE(e,t,r){return typeof e!="string"?Pt(e,t):od(e,t)||e.includes(r)?zi(e):e}var _g=[Ve,"|"," "];var xg=8,Eg=/^[A-Za-z0-9_-]+$/,V$=new TextEncoder,z$=new TextDecoder;function JE(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Te(t,"invalid trailer count");return Number.parseInt(r,10)}function vg(e,t){if(!Eg.test(e))throw Te(t,"invalid tag")}function YE(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!Eg.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Te(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function QE(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Te(t,"invalid header");let o=r.slice(0,n),s=o.startsWith("~"),i=s?o.slice(1):o;if(!s&&i.startsWith("="))return null;if(!_g.includes(i)&&i!=="")throw Te(t,"invalid header delimiter");let a=i===""?Ve:i,l=r.slice(n+1),d=null;if(!s&&l.startsWith("<")){let p=l.indexOf(">");if(p===-1)throw Te(t,"invalid tag");if(d=l.slice(1,p),vg(d,t),i!=="")throw Te(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Te(t,"invalid header");let c=l.slice(1,-2),u;try{u=or(c,a,t).map(p=>nr(p,t)[0])}catch(p){throw _o(p)}if(u.length===0||u.some(p=>p===""))throw Te(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function XE(e,t,r){if(e===null||e.delimiter===void 0)throw Te(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Te(r,"continuation header mismatch")}function hg(e,t,r,n){let o;try{o=or(e,t,n)}catch(s){throw _o(s)}if(o.length!==r)throw Te(n,"row arity mismatch");for(let s of o)try{qt(s,n)}catch(i){throw _o(i)}return o}function ZE(e,t,r){let n={};return e.forEach((o,s)=>{try{sr(n,o,qt(t[s],r))}catch(i){throw _o(i)}}),n}function ev(e,t,r){if(e.startsWith("- "))throw Te(t,"reserved line prefix");let n=JE(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Te(t,"trailer without header");if(r.rowCount!==n)throw Te(t,"trailer count mismatch");return{kind:"trailer"}}let o=QE(e,t);if(o!==null)return o.continuation?(XE(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=YE(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Te(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:hg(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Te(t,"row before header");return{kind:"row",cells:hg(e,r.delimiter,r.fields.length,t)}}function tv(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let y=s.at(-1);if(y!==void 0&&y.lane===g.lane&&y.delimiter===g.delimiter&&y.fieldText===g.fieldText){y.rows.push(f);return}s.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function c(){i!==null&&o.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function u(g,f,y){let h=n.get(g);if(h===void 0){if(n.size>=xg)throw Te(y,"too many tagged lanes");h={segments:[],current:null},n.set(g,h),r.push(g)}else h.current!==null&&h.segments.push(h.current);h.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},h.delimiter=f.delimiter,h.fields=f.fields,h.fieldText=f.fieldText}if(Vi(e).forEach((g,f)=>{let y=f+1;if(g==="")return;let h=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},R=ev(g,y,h);if(R.kind==="trailer"){c(),i=null;return}if(R.kind!=="continuation"){if(R.kind==="tag-header"){l=!0,u(R.header.tag,R.header,y);return}if(R.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:R.header.delimiter,fields:R.header.fields,fieldText:R.header.fieldText,rows:[]};return}if(R.kind==="tagged-row"){l=!0;let T=n.get(R.tag).current;T.rows.push(R.cells),d(T,R.cells);return}if(i===null)throw Te(y,"row before header");i.rows.push(R.cells),d(i,R.cells)}}),!l)return c(),t.preserveInterleaving===!0,o;let p=[];c();for(let g of r){if(g===null){p.push(...o);continue}let f=n.get(g);p.push(...f.segments),f.current!==null&&p.push(f.current)}return t.preserveInterleaving===!0?s:p}function Tr(e){return tv(e).flatMap(t=>t.rows.map(r=>ZE(t.fields,r,0)))}function rv(e){if(!_g.includes(e))throw Te(0,"invalid header delimiter")}function mg(e,t,r=!1){return`[${`${r?"~":""}${e===Ve?"":e}`}]{${t}}:
|
|
29
|
+
`}function bg(e,t){return`[]<${e}>{${t}}:
|
|
30
|
+
`}function _d(e,t){return t.map(ft).join(e)}function nv(e){if(!Array.isArray(e)||e.length===0)throw Te(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=nr(String(t),0)}catch(n){throw _o(n)}if(r==="")throw Te(0,"TOONL header requires fields");return r})}function yg(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function kg(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Te(0,"TOONL continuation cadence must be positive")}function ov(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function wg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Te(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Te(0,"TOONL output requires object rows");if(t.some(r=>!vr(e[r])))throw Te(0,"TOONL rows must be flat objects");return t}function sv(e){return JSON.stringify([...e].sort())}function Rg(e,t){let r=sv(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function yt({delimiter:e=Ve,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){rv(e),kg(r),kg(n);let o=null,s="",i=new Map,a=0,l=0,d=0,c=new Map,u=!1,p={continuationEveryRows:r,continuationEveryBytes:n},g=()=>o===null||!t?"":`[=${a}]
|
|
31
|
+
`,f=()=>ov(p,l,d)?(l=0,d=0,mg(e,s,!0)):"",y=h=>{vg(h,0);let R=c.get(h);if(R===void 0){if(c.size>=xg)throw Te(0,"too many tagged lanes");R={fields:null,fieldsByShape:new Map},c.set(h,R)}return R};return{push(h){if(u)throw Te(0,"TOONL encoder is closed");let R=Rg(wg(h),i),T="";(o===null||o.length!==R.length||o.some((M,N)=>M!==R[N]))&&(T+=g(),o=R,s=_d(e,o),a=0,l=0,d=0,T+=mg(e,s));let $=o.map(M=>Pt(h[M],e));T+=f();let D=`${$.join(e)}
|
|
32
|
+
`;return T+=D,a+=1,l+=1,d+=D.length,T},declareLane(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=nv(R),$=_d(Ve,T),D=y(h);return yg(D.fields,T)?"":(D.fields=T,bg(h,$))},pushTagged(h,R){if(u)throw Te(0,"TOONL encoder is closed");let T=y(h),$=Rg(wg(R),T.fieldsByShape),D=_d(Ve,$),M=$.map(H=>Pt(R[H],Ve)),N="";return yg(T.fields,$)||(T.fields=$,N+=bg(h,D)),`${N}${h}:${M.join(Ve)}
|
|
33
|
+
`},end(){return u?"":(u=!0,g())}}}function xd(e){let t={app:e,version:iv(To("__RED_BUILD_VERSION__",()=>"3.12.11")??"0.0.0-dev"),gitSha:To("__RED_BUILD_GIT_SHA__",()=>"7937a11d6f8e51f4d22fe70a37b18727a0d3acd2")??"unknown",buildTime:To("__RED_BUILD_TIME__",()=>"2026-08-10T16:03:22-03:00")??"unknown",bundleAsset:To("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=To("__REDDB_SDK_VERSION__",()=>""),n=To("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function iv(e){return e.startsWith("v")?e.slice(1):e}function Sg(e){return`${e.app} ${e.version} ${e.gitSha}`}function To(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Tg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},av=/^[a-z][a-z0-9+.-]*:\/\//i;function lv(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 dv(e=Tg){return Object.entries(e).map(([t,r])=>lv(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function cv(e){return/^-\d+(\.\d+)?$/.test(e)}function xs(e){return!(!e||e.startsWith("-")&&!cv(e))}function ea(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function Pg(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=>Pg(r.trim())):e}function Ln(e,t){switch(t){case"boolean":return uv(e);case"number":return pv(e);case"array":return e.split(",").map(r=>ea(r.trim()));case"string":default:return e}}function uv(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function pv(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function an(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function fv(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Ie(e,t){return{type:e,value:t}}function gv(e){let t=[],r=mv(e);if(t.push(Ie("section-header","Usage:"),Ie("text"," "),Ie("usage-text",r),Ie("newline",`
|
|
34
34
|
`),Ie("newline",`
|
|
35
35
|
`)),e.positional&&e.positional.length>0){t.push(Ie("section-header","Arguments:"),Ie("newline",`
|
|
36
36
|
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Ie("indent"," "),Ie("positional-name",`<${o}>`)),n.required||t.push(Ie("positional-optional"," (optional)")),t.push(Ie("newline",`
|
|
37
37
|
`),Ie("indent"," "),Ie("option-description",n.description),Ie("newline",`
|
|
38
38
|
`))}t.push(Ie("newline",`
|
|
39
39
|
`))}if(e.options&&Object.keys(e.options).length>0){t.push(Ie("section-header","Options:"),Ie("newline",`
|
|
40
|
-
`));let n=
|
|
41
|
-
`))}return r}function
|
|
42
|
-
`),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function Id(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Md(e,t){let r=Ao(e,Id(t));try{return
|
|
43
|
-
`)}catch{return!0}},append(e,t){
|
|
44
|
-
`),r.append(e,o),t}function Bd(e,t=Date.now(),r=sa){let n;try{n=$d(r.read(e))}catch(a){if(a.code==="ENOENT")return[];throw a}let o=t-
|
|
40
|
+
`));let n=bv(e.options);t.push(...n)}return t}function hv(e,t){let r=gv(e);return fv(r,t)}function mv(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 bv(e,t=!1){let r=[],n=[],o=t?"global-option-flag":"option-flag",s=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[d,c]of Object.entries(e)){if(c.hidden)continue;let u=[],p=y=>{u.includes(y)||u.push(y)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let y of c.aliases??[])y.length===1?p(`-${y}`):p(`--${y}`);let g=u.join(", "),f=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:g,type:f,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(d=>d.flags.length+(d.type?d.type.length+1:0)),20);for(let d of n){let c=d.flags.length+(d.type?d.type.length+1:0),u=" ".repeat(l-c+2);r.push(Ie("indent"," ")),r.push(Ie(o,d.flags)),d.type&&(r.push(Ie("text"," ")),r.push(Ie(s,d.type))),r.push(Ie("text",u)),r.push(Ie(a,d.desc)),d.default!==void 0&&(r.push(Ie("text"," ")),r.push(Ie(i,`(default: ${d.default})`))),r.push(Ie("newline",`
|
|
41
|
+
`))}return r}function Ag(e){let t=Ev(e.options??{},e.autoShort??!1),r=dv(e.separators??Tg);return{schema:e,parse(n){return yv(n,e,t,r)},help(){return hv(e,e.formatter)}}}function yv(e,t,r,n){let o={positional:{},options:{},errors:[],rest:[]},s=new Set(n.map(c=>c.to));for(let c of s)o[c]={};let i=0,a=t.positional??[],l=0,d=!1;for(;l<e.length;){let c=e[l];if(t.stopEarly&&i>0){o.rest=e.slice(l);break}if(c==="--"&&!d){d=!0,l++;continue}if(d){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;l<e.length;){let f=e[l];g.push(p.type?Ln(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Ln(c,p.type):c;o.positional[p.name]=g,i++,l++}}else t.allowUnknown!==!1&&(o.rest=o.rest??[],o.rest.push(c)),l++;continue}if(c.startsWith("--")){l=_v(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!Av(c)){l=xv(c,l,e,o,r,t);continue}let u=kv(c,n);if(u){let{key:p,value:g,config:f}=u,y=o,h=y[f.to]??(y[f.to]={});h[p]=f.typed?Pg(g):an(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let y=e[l];f.push(p.type?Ln(y,p.type):y),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Ln(c,p.type):c;o.positional[p.name]=g,i++}else t.allowUnknown!==!1?o.rest.push(c):o.errors.push(`Unexpected positional argument: ${c}`);l++}return Sv(o,t,r),Tv(o,t,a),Pv(o,t,r),o}function kv(e,t){if(av.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(wv(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(Rv(o,s,r))return{key:o,value:s,config:r}}}return null}function wv(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function Rv(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 _v(e,t,r,n,o,s){let i=e.slice(2);if(i.startsWith("no-")){let l=i.slice(3),d=o.get(l);if(d?.negatable!==!1&&d?.type==="boolean")return n.options[d.name]=!1,t+1}if(i.includes("=")){let l=i.indexOf("="),d=i.slice(0,l),c=i.slice(l+1);return ta(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return xs(l)?ta(a.name,l,t+2,n,o,s):(n.errors.push(`Option --${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}return s.strict?n.errors.push(`Unknown option: --${i}`):s.allowUnknown!==!1&&(n.options[i]=!0),t+1}function xv(e,t,r,n,o,s){let i=e.slice(1);if(i.includes("=")){let a=i.indexOf("="),l=i.slice(0,a),d=i.slice(a+1),c=Ed(l,o);return c?ta(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=ea(an(d))),t+1)}if(i.length===1){let a=Ed(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return xs(l)?ta(a.name,l,t+2,n,o,s):(n.errors.push(`Option -${i} requires a value`),t+1)}return n.options[a.name]=!0,t+1}if(s.strict)n.errors.push(`Unknown option: -${i}`);else if(s.allowUnknown!==!1){let l=r[t+1];if(xs(l))return n.options[i]=ea(an(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=Ed(a,o);l?l.type==="boolean"?n.options[l.name]=!0:n.errors.push(`Option -${a} requires a value`):s.strict?n.errors.push(`Unknown option: -${a}`):s.allowUnknown!==!1&&(n.options[a]=!0)}return t+1}function ta(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Ln(an(t),i.type):an(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Ln(an(t),i.type):an(t);if(i.type==="array"){let l=n.options[e];Array.isArray(l)?l.push(...a):n.options[e]=a}else n.options[e]=a}else s.strict?n.errors.push(`Unknown option: --${e}`):s.allowUnknown!==!1&&(n.options[e]=ea(an(t)));return r}function Ev(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=vv(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 vv(e,t){for(let r of e){if(!/[a-zA-Z]/.test(r))continue;let n=r.toLowerCase();if(!t.has(n))return n;let o=r.toUpperCase();if(!t.has(o))return o}return""}function Ed(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function Sv(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let o=process.env[n.env];e.options[n.name]=n.type?Ln(o,n.type):o}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function Tv(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 Pv(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 Av(e){return/^-\d+(\.\d+)?$/.test(e)}var vd=class extends Error{flag;known;constructor(t,r){super(`unknown flag '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownFlagError",this.flag=t,this.known=r}};function Cv(e){let t={};for(let[r,n]of Object.entries(e))t[r]={type:n.kind==="boolean"?"boolean":"string",...r.length===1?{short:r}:{},...n.aliases===void 0?{}:{aliases:n.aliases}};return t}function Dv(e,t){let r=new Map;for(let[o,s]of Object.entries(t))if(!(s.kind!=="value"||s.type!=="array")){r.set(o,o);for(let i of s.aliases??[])r.set(i,o)}let n=new Map;for(let o=0;o<e.length;o+=1){let s=e[o];if(s==="--")break;let i=s.match(/^--([^=]+)(?:=(.*))?$/)??s.match(/^-([^=])(?:=(.*))?$/);if(i===null)continue;let a=r.get(i[1]);if(a===void 0)continue;let l=i[2];if(l===void 0&&xs(e[o+1])&&(l=e[o+1],o+=1),l===void 0)continue;let d=n.get(a)??[];d.push(l),n.set(a,d)}return n}function ln(e,t,r={}){let o=Ag({options:Cv(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=Dv(e,t),a=o.errors.find(l=>/^Option --?\S+ requires a value$/.test(l));if(a!==void 0)throw new Error(a.replace(/^Option /,""));if(o.errors.length>0)throw new Error(o.errors[0]);if(r.unknownFlags==="error"){let l=new Set(Object.keys(t));for(let d of Object.keys(o.options))if(!l.has(d))throw new vd(d.length===1?`-${d}`:`--${d}`,Object.keys(t).map(c=>c.length===1?`-${c}`:`--${c}`))}for(let[l,d]of Object.entries(t)){let c=o.options[l];c!==void 0&&(d.kind==="boolean"?s[l]=c:d.type==="array"?s[l]=(i.get(l)??[]).map(u=>d.coerce(u)):s[l]=d.coerce(String(c)))}return{values:s,positionals:o.rest}}var Sd=class extends Error{token;known;constructor(t,r){super(`unknown command '${t}'; expected one of: ${r.join(", ")}`),this.name="UnknownCommandError",this.token=t,this.known=r}};function Cg(e,t){let[r,...n]=e;if(r!==void 0){for(let[s,i]of Object.entries(t.commands))if(r===s||(i.aliases??[]).includes(r))return{command:s,args:n};if(t.errorOnUnknownCommand&&!r.startsWith("-"))throw new Sd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as Wv,mkdirSync as Hv,readFileSync as Ng,renameSync as Uv,rmSync as qv,statSync as Kv,writeFileSync as Vv}from"node:fs";import{dirname as Wg,join as zv}from"node:path";var Dg="RED_WORKER_SCOPE",Og="RED_WORKER_MEMORY_CEILING",Fg="RED_WORKER_SCOPE_DEGRADATION",Pd={scope:null,memory_ceiling:null,scope_degradation:null};function Ad(e){return{scope:Td(e[Dg]),memory_ceiling:Td(e[Og]),scope_degradation:Td(e[Fg])}}function Es(e){let t={};return e.scope!=null&&e.scope!==""&&(t[Dg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(t[Og]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(t[Fg]=e.scope_degradation),t}function Td(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as Iv,readdirSync as Mv,readFileSync as jg,rmSync as Lv,writeFileSync as jv}from"node:fs";import{basename as Bv,join as Ao}from"node:path";import{isAbsolute as TN,join as ra,resolve as PN}from"node:path";function Ov(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var Ig="deaths",Mg="deaths.toonl";function na(e){return ra(Ov(e),Ig)}function Po(e){return ra(na(e),Mg)}var vs="live",Lg="attributions.toonl";function oa(e){return ra(na(e),vs)}function Cd(e){return ra(na(e),Lg)}var Od=Ao("sys","kernel","random","boot_id"),Bg=1;function Fd(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:Bg,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:$g(Ao(r,Od)),cgroup:$v(r,n),last_phase:e.last_phase}}function $g(e){try{let t=jg(e,"utf8").trim();return t===""?null:t}catch{return null}}function $v(e,t){let r=$g(Ao(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
|
|
42
|
+
`),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function Id(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Md(e,t){let r=Ao(e,Id(t));try{return Iv(e,{recursive:!0,mode:448}),jv(r,yt({trailer:!1}).push(Gv(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function jn(e,t){try{Lv(Ao(e,Id(t)),{force:!0})}catch{}}function Ld(e,t){let r;try{r=Mv(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Ao(e,o);try{let a=Tr(jg(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(Nv(a))}catch(i){t?.(Bv(s),i instanceof Error?i.message:String(i))}}return n}function Nv(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:Dd(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:Dd(e.pid),ppid:Dd(e.ppid),boot_id:e.boot_id==null?null:String(e.boot_id),cgroup:e.cgroup==null?null:String(e.cgroup),last_phase:String(e.last_phase)}}function Dd(e){return typeof e=="number"?e:Number(e)}function Gv(e){return{...e}}var Jv=1,Yv=14*24*60*60*1e3,Qv=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function Xv(e){return typeof e=="string"&&Qv.has(e)}var Zv="startup";function eS(e,t){return{...e.scope??Pd,version:Jv,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 tS(e){let t=e.resourceUsage();return{uptime_s:Math.round(e.uptime()),rss_kb:Math.round(e.memoryUsage().rss/1024),max_rss_kb:t.maxRSS,user_cpu_us:t.userCPUTime,system_cpu_us:t.systemCPUTime,minor_page_faults:t.minorPageFault,major_page_faults:t.majorPageFault,voluntary_ctx_switches:t.voluntaryContextSwitches,involuntary_ctx_switches:t.involuntaryContextSwitches}}var sa={mkdir(e){Hv(e,{recursive:!0,mode:448})},endsClean(e){let t;try{t=Kv(e).size}catch{return!0}if(t===0)return!0;try{return Ng(e,"utf8").endsWith(`
|
|
43
|
+
`)}catch{return!0}},append(e,t){Wv(e,t,{encoding:"utf8",mode:384})},replace(e,t){let r=`${e}.retaining-${process.pid}`;try{Vv(r,t,{encoding:"utf8",mode:384}),Uv(r,e)}catch(n){throw qv(r,{force:!0}),n}},read(e){return Ng(e,"utf8")}};function Hg(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function rS(e,t,r=sa){let n=Date.parse(t.ts);Number.isFinite(n)&&Bd(e,n,r);let o=yt({trailer:!1}).push(Hg(t));return r.mkdir(Wg(e)),r.endsClean(e)||r.append(e,`
|
|
44
|
+
`),r.append(e,o),t}function Bd(e,t=Date.now(),r=sa){let n;try{n=$d(r.read(e))}catch(a){if(a.code==="ENOENT")return[];throw a}let o=t-Yv,s=n.filter(a=>{let l=Date.parse(a.ts);return!Number.isFinite(l)||l>=o});if(s.length===n.length)return s;let i=yt({trailer:!1});return r.replace(e,s.map(a=>i.push(Hg(a))).join("")),s}function $d(e){let t=e.endsWith(`
|
|
45
45
|
`)?e:e.slice(0,e.lastIndexOf(`
|
|
46
|
-
`)+1);return t===""?[]:Tr(t).map(
|
|
47
|
-
`).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:Nd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Nd(e){return e.code==="ENOENT"?"absent":"unreadable"}function
|
|
46
|
+
`)+1);return t===""?[]:Tr(t).map(nS)}function nS(e){let t=e.exit_path;if(!Xv(t))throw new Error(`death record has unknown exit_path ${JSON.stringify(t)}`);let r=e.kind;if(r!=="launcher"&&r!=="worker"&&r!=="daemon")throw new Error(`death record has unknown kind ${JSON.stringify(r)}`);return{version:Kt(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:Kt(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:Kt(e.exit_code),last_phase:String(e.last_phase),detail:e.detail==null?null:String(e.detail),scope:e.scope==null?null:String(e.scope),memory_ceiling:e.memory_ceiling==null?null:String(e.memory_ceiling),scope_degradation:e.scope_degradation==null?null:String(e.scope_degradation),uptime_s:Kt(e.uptime_s),rss_kb:Kt(e.rss_kb),max_rss_kb:Kt(e.max_rss_kb),user_cpu_us:Kt(e.user_cpu_us),system_cpu_us:Kt(e.system_cpu_us),minor_page_faults:Kt(e.minor_page_faults),major_page_faults:Kt(e.major_page_faults),voluntary_ctx_switches:Kt(e.voluntary_ctx_switches),involuntary_ctx_switches:Kt(e.involuntary_ctx_switches)}}function Kt(e){return typeof e=="number"?e:Number(e)}function Ug(e,t=sa){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return $d(r)}var oS=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],jd=null;function qg(e){let t=e.host??process,r=e.io??sa,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??Ad(process.env),i=e.phase??Zv,a=null,l=e.presenceDir===void 0?zv(Wg(e.lanePath),vs):e.presenceDir,d=null,c=()=>{l!==null&&(d=Fd({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Md(l,d))},u=h=>{if(!a){try{a=rS(e.lanePath,eS({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...h},tS(t)),r)}catch{}l!==null&&d!==null&&jn(l,d)}},p={signal(h){u({exit_path:"signal",signal:h})},exit(h){u({exit_path:"exit",exit_code:h})},uncaughtException(h){u({exit_path:"uncaught-exception",detail:Gg(h)})},unhandledRejection(h){u({exit_path:"unhandled-rejection",detail:Gg(h)})}},f=[...(e.signals??oS).map(h=>{let R=()=>{if(p.signal(h),!(t.listenerCount?.(h)!==1||!t.kill)){t.off(h,R);try{t.kill(o,h)}catch{}}};return[h,R]}),["uncaughtException",(...h)=>p.uncaughtException(h[0])],["unhandledRejection",(...h)=>p.unhandledRejection(h[0])],["exit",(...h)=>p.exit(typeof h[0]=="number"?h[0]:null)]];for(let[h,R]of f)t.on(h,R);let y={lanePath:e.lanePath,phase(h){i=h,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[h,R]of f)t.off(h,R);l!==null&&d!==null&&jn(l,d),jd===y&&(jd=null)},handlers:p};return e.setActive!==!1&&(jd=y),c(),y}function Gg(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as sS,readdirSync as iS,readFileSync as ia,statSync as aS,writeFileSync as lS}from"node:fs";import{join as Jg}from"node:path";var dS=1,cS=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],uS=512*1024;function pS(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??cS,n=[],o=Jg(t,Od),s=null;try{let l=ia(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:Nd(l),detail:null})}let i=new Set;try{for(let l of iS(t))/^\d+$/.test(l)&&i.add(Number(l));n.push({source:t,result:"read",detail:`${i.size} live pids`})}catch(l){n.push({source:t,result:Nd(l),detail:null})}let a=[];for(let l of r)try{let c=fS(l,e.tailBytes??uS).split(`
|
|
47
|
+
`).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:Nd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Nd(e){return e.code==="ENOENT"?"absent":"unreadable"}function fS(e,t){let r=aS(e).size,n=ia(e,"utf8");return r<=t?n:n.slice(n.length-t)}var gS=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,hS=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,mS=/Killed (\/\S*) due to memory pressure/,bS=/\bopid=(\d+)\b/,Kg=/\bsig=(\d+)\b/,yS=/\buid=(\d+)\b/,kS=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,wS={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function RS(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:dS,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=>Vg(u,e.pid,gS)||Vg(u,e.pid,hS));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=mS.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(bS.exec(u)?.[1])===e.pid&&Kg.test(u));if(d!==void 0){let u=Number(Kg.exec(d)?.[1]),p=yS.exec(d)?.[1];return i("user-signal",o?"medium":"high",wS[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=>kS.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 Vg(e,t,r){return Number(r.exec(e)?.[1])===t}var _S=" | ";function zg(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(_S)}function xS(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:zg(e.evidence),checked:zg(e.checked)}}function ES(e){let t=yt({trailer:!1});return e.map(r=>t.push(xS(r))).join("")}function Yg(e){let t=oa(e.stateRoot),r=Cd(e.stateRoot),o=(e.now??(()=>new Date().toISOString()))(),s=e.evidence??pS({procRoot:e.procRoot,journalPaths:e.journalPaths}),i=[],a=Ld(t,g=>i.push(g)),l=Ug(Po(e.stateRoot)),d=[],c=[],u=[];for(let g of a){if(s.live_pids.has(g.pid)){c.push(g);continue}if(l.find(y=>y.pid===g.pid&&y.id===g.id)!==void 0){u.push(g),jn(t,g);continue}d.push(RS(g,s,l,o)),jn(t,g)}let p=Date.parse(o);return Number.isFinite(p)&&Bd(Po(e.stateRoot),p),d.length>0&&vS(r,d),{attributions:d,alive:c,self_recorded:u,skipped:i,laneText:()=>{try{return ia(r,"utf8")}catch{return""}}}}function Qg(e){let t=e.skipped.length===0?"":` | unreadable anchors=${e.skipped.join(",")}`;if(e.attributions.length===0)return`death reaper: no un-recorded deaths (live=${e.alive.length} self-recorded=${e.self_recorded.length})${t}`;let r=e.attributions.map(n=>` | ${n.kind} ${n.id} pid=${n.pid} ${n.sender_class}/${n.confidence} phase=${n.last_phase}`+(n.evidence[0]?` evidence="${n.evidence[0]}"`:"")).join("");return`death reaper: attributed ${e.attributions.length}${r}${t}`}function vS(e,t){try{sS(Jg(e,".."),{recursive:!0,mode:448});let r=SS(e),n=r===""||r.endsWith(`
|
|
48
48
|
`)?"":`
|
|
49
|
-
`;
|
|
50
|
-
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=
|
|
49
|
+
`;lS(e,`${r}${n}${ES(t)}`,{encoding:"utf8",mode:384})}catch{}}function SS(e){try{return ia(e,"utf8")}catch{return""}}import{join as TS}from"node:path";var PS=[".red","redskilled"],qr=448;function ir(e){return TS(e,...PS)}import{randomUUID as ik}from"node:crypto";import{spawn as nF}from"node:child_process";import{mkdir as oF}from"node:fs/promises";import{dirname as sF}from"node:path";import{createHash as DS}from"node:crypto";import{constants as qd}from"node:fs";import{mkdir as ih,open as OS,readFile as FS,rm as ah,stat as IS}from"node:fs/promises";import{createConnection as MS}from"node:net";import{tmpdir as LS}from"node:os";import{dirname as lh,join as Ss}from"node:path";var AS="toon";function eh(e){return e.trimStart().startsWith("{")?"json":"toon"}function Wd(e){let t=0;for(;e[t]===`
|
|
50
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=eh(r);if(n==="json"){let s=r.indexOf(`
|
|
51
51
|
`);return s<0?null:{frame:r.slice(0,s),dialect:n,rest:r.slice(s+1)}}let o=r.indexOf(`
|
|
52
52
|
|
|
53
|
-
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function Hd(e){let t=
|
|
53
|
+
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function Hd(e){let t=eh(e)==="json"?Gd:Xg,r=t===Gd?Xg:Gd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Gd(e){return JSON.parse(e)}function Xg(e){return Dt(e)}function Ud(e,t){if(t==="toon"){let r=CS(e);if(r!==null)return r.endsWith(`
|
|
54
54
|
`)?`${r}
|
|
55
55
|
`:`${r}
|
|
56
56
|
|
|
57
57
|
`}return`${JSON.stringify(e)}
|
|
58
|
-
`}function
|
|
59
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await
|
|
60
|
-
`,1)[0]?.trim()??"";if(!t.startsWith(dh))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function WS(e,t,r){let n=t==null?Number.NaN:Date.parse(t.takenAt);if(Number.isFinite(n))return Math.max(0,r-n);try{return Math.max(0,r-(await OS(e)).mtimeMs)}catch{return null}}function Ye(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var HS="/tmp";function la(e){let t=e.env??process.env,r=AS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Ss(l,e.socketFileName).length<MS,o=t.XDG_RUNTIME_DIR;if(o){let l=Ss(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Ss(`red-skills-${s}`,r),a=Ss(IS(),i);return n(a)||process.platform==="win32"?a:Ss(HS,i)}Kr();import{homedir as pT}from"node:os";import{join as nc}from"node:path";import{spawnSync as fT}from"node:child_process";import{createHash as gT}from"node:crypto";import{existsSync as hT,readdirSync as mT}from"node:fs";import{mkdir as wh,readFile as bT,rename as yT,writeFile as kT}from"node:fs/promises";import{dirname as wT}from"node:path";var $n="@reddb-io/red-skills",eT="https://registry.npmjs.org",tT="canary",Bn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},rT=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Xd(e){return typeof e=="string"&&rT.test(e.trim())}function mh(e){return`${e}-.bundle.min.mjs`}var nT=".unversioned";function oT(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Xd(t))throw new Bn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${mh(e)}, a name no resolver prefers and one whose mere existence satisfies the cache-first test forever (#3153)`);return`${e}-${t.trim()}.bundle.min.mjs`}function pa(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return As(n,oT(t,r,o))}function sT(e){return e==="dev"?["rsp","redskilled"]:[]}function iT(e){return`${e}.bundle.min.mjs`}function aT(e){return As("dist",iT(e))}function lT(e,t="stable"){return`${$n}@${t==="canary"?tT:e}`}function Zd(e=$n){return`${eT}/${e.replace("/","%2F")}`}async function ec(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=pa({plugin:r,version:n,cacheDir:o,channel:s}),a=sT(r),l=a.map(p=>pa({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await cT(e,l))return i;let d=lT(n,s),c=As(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw kh(p,d)}for(let p of[r,...a]){let g=aT(p),f=As(u,g);if(!await e.exists(f))throw new Bn("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:pa({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await dT(e,o,[r,...a]),i}async function dT(e,t,r){if(e.rename)for(let n of r){let o=As(t,mh(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${nT}`)}catch{}}}async function cT(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function bh(e,t,r=$n){let n;try{n=await e.fetchText(Zd(r))}catch(s){throw kh(s,r)}let o=tc(n);return{sameMajor:uT(o,t),newest:rc(o)}}function tc(e){let t;try{t=JSON.parse(e)}catch{return[]}if(typeof t!="object"||t===null)return[];let r=t.versions;return typeof r!="object"||r===null?[]:Object.keys(r)}function uT(e,t){let r=Qd(t);if(r===null)return null;let n=null;for(let o of e)Qd(o)===r&&(n===null||yh(o,n)>0)&&(n=o);return n}function rc(e){let t=null;for(let r of e){let n=String(r).trim();Qd(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||yh(n,t)>0)&&(t=n)}return t}function Qd(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function yh(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e.trim()),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t.trim());return!r||!n?0:Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function kh(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Bn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Bn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Bn("network",`failed to resolve ${t}: ${r}`,e)}function As(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}Kr();var Rh={async materialize(e,t){await wh(t,{recursive:!0});let r=fT("npm",["install",e,"--prefix",t,"--no-save","--no-audit","--no-fund","--ignore-scripts","--loglevel=error"],{stdio:["ignore","ignore","pipe"],encoding:"utf8"});if(r.error)throw r.error;if(r.status!==0)throw new Error(`npm install ${e} -> ${r.status}: ${(r.stderr||"").trim()}`);return nc(t,"node_modules",...$n.split("/"))},async readFile(e){return new Uint8Array(await bT(e))},async writeFile(e,t){await wh(wT(e),{recursive:!0}),await kT(e,t)},async exists(e){return hT(e)},sha256(e){return gT("sha256").update(e).digest("hex")},async fetchText(e){let t=await fetch(e,{redirect:"follow"});if(!t.ok)throw new Error(`GET ${e} -> ${t.status}`);return await t.text()},async rename(e,t){await yT(e,t)}},RT="redskilled";function _T(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||nc(e.HOME||pT(),".cache");return nc(t,"red-skills","bundles")}var xT=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function ET(e,t){if(Xd(e.version))return e.version.trim();let r=e.listCacheDir??TT,n=vT(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??Rh).fetchText(Zd());return rc(tc(s))}catch{return null}}function vT(e,t){let r=null;for(let n of e){let o=xT.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||ST(s,r)>0)&&(r=s)}return r}function ST(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t);return Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function TT(e){try{return mT(e)}catch{return[]}}async function PT(e={},t={},r={}){let n=cn(e,t);if(Ar(n))return n;let o=r.env??t.env??process.env,s=_T(o),i=await ET(r,s);if(i===null)return n;try{await ec(r.bundleIO??Rh,{plugin:RT,version:i,cacheDir:s})}catch{return n}return cn(e,t)}async function _h(e={},t={},r={}){let n=await PT(e,t,r);if(Ar(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(Kr(),hh));throw new o(n)}var Co=3e5,xh=1e4,Eh=6e4,vh=15e3,oc=3e4,Sh=oc*2,Th=6e4,Cs=16;function Ph(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill"||e.event==="worker-death"&&e.exit_code===0)return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=!r&&!n&&e.signal!=null,s=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,i=t.startedAt==null?null:Date.parse(t.startedAt),a=Date.parse(e.ts),l=i!=null&&Number.isFinite(i)&&Number.isFinite(a)?Math.max(0,a-i)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":o?"user-signal":"unknown",confidence:r||n||o?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n||o?[s]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${s}`],project_label:e.project_label,...l===void 0?{}:{uptime_s:l},detail:t.refusal??e.detail,observed_exit:e.exit_code!=null||e.signal!=null}}function sc(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var Ah="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as Y0}from"node:crypto";import{mkdir as q1,rm as K1}from"node:fs/promises";import{dirname as V1}from"node:path";import{randomUUID as Ch}from"node:crypto";import{rm as AT}from"node:fs/promises";import{connect as CT,createServer as DT}from"node:net";var zt=class extends Error{constructor(r,n){super(`a redskilled daemon already owns ${JSON.stringify(r)}`);this.socketPath=r;this.lease=n;this.name="RedskilledAlreadyRunningError"}};async function ic(e,t=250){return await new Promise(r=>{let n=CT(e),o=!1,s=a=>{o||(o=!0,clearTimeout(i),n.destroy(),r(a))},i=setTimeout(()=>s("unknown"),t);i.unref?.(),n.once("connect",()=>s("owned")),n.once("error",a=>{s(a.code==="ECONNREFUSED"||a.code==="ENOENT"?"unowned":"unknown")})})}async function Dh(e,t){for(let r=0;r<2;r++){let n=DT();try{return await new Promise((o,s)=>{n.once("error",s),n.listen(e,()=>{n.off("error",s),o()})}),n}catch(o){if(n.close(),o.code!=="EADDRINUSE")throw o;if(await ic(e)!=="unowned")throw new zt(e);if(await t?.())throw new zt(e);await AT(e,{force:!0})}}throw new zt(e)}async function Jt(e,t=250){try{return(await aa({socketPath:e,timeoutMs:t},{id:Ch(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Oh(e,t){lh(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??Ch(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Nh(e){return{generated_at:e.now,hour:Ih("hour",36e5,e),day:Ih("day",864e5,e),history_48h:OT(e)}}function OT(e){let t=un(e.now),r=t==null?null:Math.floor(t/36e5)*36e5,n=r==null?null:r-47*36e5,o=Array.from({length:48},(d,c)=>n==null?null:n+c*36e5),s=FT(e.observations,o,t),i=o.map((d,c)=>({hour:d==null?e.now:new Date(d).toISOString(),value:s[c]??null,absent_reason:s[c]==null?"no token samples span this hour":null})),a=e.outcomes.map(d=>un(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:Fh(i),tickets_per_hour:Fh(l)}}function FT(e,t,r){if(r==null||t.some(i=>i==null))return t.map(()=>null);let n=new Map;for(let i of e){let a=un(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],y=Math.min(f+36e5,r),h=Math.max(0,Math.min(c.at,y)-Math.max(d.at,f));h!==0&&(a[g].tokens+=p*(h/u),a[g].duration+=h)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function Fh(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Nn(e,t,r){let n=un(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=un(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function Ih(e,t,r){let n=un(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:un(u.observed_at)})).filter(u=>u.at!=null&&jh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>un(u.ts)).filter(u=>u!=null&&jh(u,o,n)),l=Mh(i,u=>u.tokens,"tokens",s),d=Mh(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:IT(a.length,t,s),runner_share:Lh("runner",i,u=>u.runner,s),model_share:Lh("model",i,u=>u.model,s),unavailable:c}}function Mh(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function IT(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function Lh(e,t,r,n){let o=new Map;for(let d of t){let c=r(d.observation);c!=null?o.set(d.observation.worker_id,c):o.has(d.observation.worker_id)||o.set(d.observation.worker_id,null)}let s=new Map,i=0,a=0;for(let d of o.values()){if(d==null){a+=1;continue}i+=1,s.set(d,(s.get(d)??0)+1)}let l=[...s.entries()].map(([d,c])=>({key:d,worker_count:c,share:c/i})).sort((d,c)=>c.worker_count-d.worker_count||d.key.localeCompare(c.key));return{dimension:e,attributed_workers:i,unattributed_workers:a,shares:l,absent_reason:l.length>0?null:o.size===0?`no Worker was observed in the last ${n}`:`no Worker published a ${e} in the last ${n}`}}function jh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function un(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Gh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&$h(t.hour)&&$h(t.day)&&(t.history_48h===void 0||MT(t.history_48h))}function MT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Bh(t.tokens_per_hour)&&Bh(t.tickets_per_hour)}function Bh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function $h(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&ac(t.tokens_per_min)&&ac(t.tools_per_min)&&ac(t.issues_per_hour)&&Array.isArray(t.unavailable)}function ac(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.value===null||typeof t.value=="number")&&(t.absent_reason===null||typeof t.absent_reason=="string")&&Number.isInteger(t.samples)}function Wh(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Nn([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function Hh(e,t){return Nn(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as Kh,totalmem as jT}from"node:os";function Ds(e){if(e.applied_budget!=null)return e.applied_budget;let t=e.budget??{};return t.memory_max==null&&t.memory_high==null&&e.memory_ceiling!=null?{...t,memory_max:e.memory_ceiling}:t}function Uh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Ds(d),u=!1;for(let[p,g]of[[c.memory_high,f=>r+=f],[c.memory_max,f=>n+=f]]){if(p==null)continue;let f=Do(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:LT(e.length,n,a,l)}}function LT(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function Do(e){let t=/^\s*(\d+(?:\.\d+)?)\s*([KMGT]?)(?:B)?\s*$/i.exec(e);if(!t)return null;let r={"":1,k:1024,m:1024**2,g:1024**3,t:1024**4}[t[2].toLowerCase()];return Math.round(Number(t[1])*r)}function qh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Number.isInteger(t.worker_count)&&typeof t.memory_high_bytes=="number"&&typeof t.memory_max_bytes=="number"&&typeof t.cpu_weight_total=="number"&&Array.isArray(t.unaccounted_workers)&&Array.isArray(t.unisolated_workers)}var Vh="REDSKILLED_MEMORY_CEILING",dc="REDSKILLED_WORKER_CEILING",Qh="REDSKILLED_VALIDATION_CEILING",zh="REDSKILLED_INTERACTIVE_RESERVATION",Os=1,Jh=.7,BT=2*1024**3,$T=2;function Xh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Do(t)}function ga(e){let t=0,r=[];for(let n of e){let o=Xh(n.budget);o===null?r.push(n.worker_id):o!==void 0&&(t+=o)}return{worker_count:e.length,memory_bytes:t,unaccounted_workers:r.sort()}}function Zh(e){let{ceiling:t}=e,r=ga(e.workers),n=Xh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??Os),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function em(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=ga(e.workers),n=e.ceiling.memory_bytes-r.memory_bytes,o=e.ceiling.worker_count,s=o==null?n:Math.floor(e.ceiling.memory_bytes/o),i=Math.min(n,s);if(i<=0)return{memory_max:null,reason:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes is already fully committed to ${r.worker_count} Worker(s), so no positive per-Worker ceiling can be derived; the daemon's RSS sampling floor is the only remaining ceiling`};let a=o==null?`the headroom under this host's memory ceiling of ${e.ceiling.memory_bytes} bytes; this host declares no Worker slot count (${dc} is unset), so this ceiling is a per-Worker wall and not memory the host sets aside \u2014 N Workers may carry N such walls, and the host ceiling is not enforced host-wide. Declare a slot count to make it divide into shares that sum to it`:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes shared across its ${o} Worker slot(s)`;return{memory_max:String(i),reason:`derived from ${a} (ceiling source: ${e.ceiling.source})`}}function ha(e=process.env,t=jT(),r={}){let n=lc(r.flags?.memoryCeiling,e[Vh],r.config?.memoryCeiling),o=lc(r.flags?.workerCeiling,e[dc],r.config?.workerCeiling),s=lc(r.flags?.validationCeiling,e[Qh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[zh]??"").trim(),d=tm(a),c=l===""?Os:WT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!NT(a)&&(fa(`redskilled: ${cc(o)} ${dc}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=GT(i,t);if(p!==void 0)return Yh({memory_bytes:p,worker_count:d,interactive_reservation:c??Os,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Kh());fa(`redskilled: ${cc(n)} ${Vh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Jh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&fa(`redskilled: ${zh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Os} Worker(s) instead.`),Yh({memory_bytes:Math.floor(t*Jh),worker_count:d,interactive_reservation:c??Os,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Kh())}function Yh(e,t,r){if(t!==void 0){let i=tm(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};fa(`redskilled: ${cc(t)} ${Qh}=${JSON.stringify(t.value)} is not a positive integer; deriving the validation ceiling from host CPU, memory, and Worker capacity instead.`)}let n=Math.max(1,Math.floor(Math.max(1,r)/$T)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/BT)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function lc(e,t,r){if(e?.trim())return{value:e.trim(),source:"flag"};if(t?.trim())return{value:t.trim(),source:"environment"};if(r?.trim())return{value:r.trim(),source:"home-config"}}function cc(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function NT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var fa=e=>process.stderr.write(`${e}
|
|
61
|
-
`);function
|
|
58
|
+
`}function CS(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=ot(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function th(e,t){return!Zg(e)||!Zg(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Zg(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var rh=new Set;function nh(e){return rh.has(e)?"json":AS}function oh(e){rh.add(e)}var jS=108;async function aa(e,t,r="resident server"){let n=e.wire,o=n??nh(e.socketPath),s=await sh(e,t,r,o);return n||o==="json"||!th(t,s)?s:(oh(e.socketPath),await sh(e,t,r,"json"))}async function sh(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=MS(e.socketPath),l=!1,d="",c=setTimeout(()=>{u(()=>i(new Error(`${r} timed out`))),a.destroy()},o);function u(p){l||(l=!0,clearTimeout(c),p())}a.on("connect",()=>{a.write(Ud(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=Wd(d);g&&(d=g.rest,u(()=>{try{s(Hd(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",p=>u(()=>i(p))),a.on("close",()=>{l||u(()=>i(new Error(`${r} closed without response`)))})})}function dh(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=Wd(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(Ud(a,s.dialect))}catch{}};(async()=>{let a;try{a=Hd(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function BS(e){await ih(lh(e),{recursive:!0,mode:448});try{return await OS(e,qd.O_CREAT|qd.O_EXCL|qd.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var $S=6e4,ch="resident-spawn-lock v1",NS=3;async function uh(e,t={}){let r=t.maxAgeMs??$S,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Ye;await ih(lh(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await BS(e);if(l)return await l.writeFile(`${ch} pid=${o} taken=${new Date(n()).toISOString()}
|
|
59
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await WS(e),c=await US(e,d,n());if(a>=NS||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=GS(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 ah(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function ph(e){await e.handle.close().catch(()=>{}),await ah(e.lockPath,{force:!0})}function GS(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function fh(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 WS(e){try{return HS(await FS(e,"utf8"))}catch{return null}}function HS(e){let t=e.split(`
|
|
60
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(ch))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 US(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 IS(e)).mtimeMs)}catch{return null}}function Ye(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var qS="/tmp";function la(e){let t=e.env??process.env,r=DS("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Ss(l,e.socketFileName).length<jS,o=t.XDG_RUNTIME_DIR;if(o){let l=Ss(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Ss(`red-skills-${s}`,r),a=Ss(LS(),i);return n(a)||process.platform==="win32"?a:Ss(qS,i)}Kr();import{homedir as gT}from"node:os";import{join as nc}from"node:path";import{spawnSync as hT}from"node:child_process";import{createHash as mT}from"node:crypto";import{existsSync as bT,readdirSync as yT}from"node:fs";import{mkdir as Rh,readFile as kT,rename as wT,writeFile as RT}from"node:fs/promises";import{dirname as _T}from"node:path";var $n="@reddb-io/red-skills",rT="https://registry.npmjs.org",nT="canary",Bn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},oT=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function Xd(e){return typeof e=="string"&&oT.test(e.trim())}function bh(e){return`${e}-.bundle.min.mjs`}var sT=".unversioned";function iT(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!Xd(t))throw new Bn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${bh(e)}, a name no resolver prefers and one whose mere existence satisfies the cache-first test forever (#3153)`);return`${e}-${t.trim()}.bundle.min.mjs`}function pa(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return As(n,iT(t,r,o))}function aT(e){return e==="dev"?["rsp","redskilled"]:[]}function lT(e){return`${e}.bundle.min.mjs`}function dT(e){return As("dist",lT(e))}function cT(e,t="stable"){return`${$n}@${t==="canary"?nT:e}`}function Zd(e=$n){return`${rT}/${e.replace("/","%2F")}`}async function ec(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=pa({plugin:r,version:n,cacheDir:o,channel:s}),a=aT(r),l=a.map(p=>pa({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await pT(e,l))return i;let d=cT(n,s),c=As(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw wh(p,d)}for(let p of[r,...a]){let g=dT(p),f=As(u,g);if(!await e.exists(f))throw new Bn("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:pa({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await uT(e,o,[r,...a]),i}async function uT(e,t,r){if(e.rename)for(let n of r){let o=As(t,bh(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${sT}`)}catch{}}}async function pT(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function yh(e,t,r=$n){let n;try{n=await e.fetchText(Zd(r))}catch(s){throw wh(s,r)}let o=tc(n);return{sameMajor:fT(o,t),newest:rc(o)}}function tc(e){let t;try{t=JSON.parse(e)}catch{return[]}if(typeof t!="object"||t===null)return[];let r=t.versions;return typeof r!="object"||r===null?[]:Object.keys(r)}function fT(e,t){let r=Qd(t);if(r===null)return null;let n=null;for(let o of e)Qd(o)===r&&(n===null||kh(o,n)>0)&&(n=o);return n}function rc(e){let t=null;for(let r of e){let n=String(r).trim();Qd(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||kh(n,t)>0)&&(t=n)}return t}function Qd(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function kh(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 wh(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Bn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Bn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Bn("network",`failed to resolve ${t}: ${r}`,e)}function As(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}Kr();var _h={async materialize(e,t){await Rh(t,{recursive:!0});let r=hT("npm",["install",e,"--prefix",t,"--no-save","--no-audit","--no-fund","--ignore-scripts","--loglevel=error"],{stdio:["ignore","ignore","pipe"],encoding:"utf8"});if(r.error)throw r.error;if(r.status!==0)throw new Error(`npm install ${e} -> ${r.status}: ${(r.stderr||"").trim()}`);return nc(t,"node_modules",...$n.split("/"))},async readFile(e){return new Uint8Array(await kT(e))},async writeFile(e,t){await Rh(_T(e),{recursive:!0}),await RT(e,t)},async exists(e){return bT(e)},sha256(e){return mT("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 wT(e,t)}},xT="redskilled";function ET(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||nc(e.HOME||gT(),".cache");return nc(t,"red-skills","bundles")}var vT=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function ST(e,t){if(Xd(e.version))return e.version.trim();let r=e.listCacheDir??AT,n=TT(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??_h).fetchText(Zd());return rc(tc(s))}catch{return null}}function TT(e,t){let r=null;for(let n of e){let o=vT.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||PT(s,r)>0)&&(r=s)}return r}function PT(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 AT(e){try{return yT(e)}catch{return[]}}async function CT(e={},t={},r={}){let n=cn(e,t);if(Ar(n))return n;let o=r.env??t.env??process.env,s=ET(o),i=await ST(r,s);if(i===null)return n;try{await ec(r.bundleIO??_h,{plugin:xT,version:i,cacheDir:s})}catch{return n}return cn(e,t)}async function xh(e={},t={},r={}){let n=await CT(e,t,r);if(Ar(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(Kr(),mh));throw new o(n)}var Co=3e5,Eh=1e4,vh=6e4,Sh=15e3,oc=3e4,Th=oc*2,Ph=6e4,Cs=16;function Ah(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill"||e.event==="worker-death"&&e.exit_code===0)return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=!r&&!n&&e.signal!=null,s=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,i=t.startedAt==null?null:Date.parse(t.startedAt),a=Date.parse(e.ts),l=i!=null&&Number.isFinite(i)&&Number.isFinite(a)?Math.max(0,a-i)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":o?"user-signal":"unknown",confidence:r||n||o?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n||o?[s]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${s}`],project_label:e.project_label,...l===void 0?{}:{uptime_s:l},detail:t.refusal??e.detail,observed_exit:e.exit_code!=null||e.signal!=null}}function sc(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var Ch="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as X0}from"node:crypto";import{mkdir as z1,rm as J1}from"node:fs/promises";import{dirname as Y1}from"node:path";import{randomUUID as Dh}from"node:crypto";import{rm as DT}from"node:fs/promises";import{connect as OT,createServer as FT}from"node:net";var zt=class extends Error{constructor(r,n){super(`a redskilled daemon already owns ${JSON.stringify(r)}`);this.socketPath=r;this.lease=n;this.name="RedskilledAlreadyRunningError"}};async function ic(e,t=250){return await new Promise(r=>{let n=OT(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 Oh(e,t){for(let r=0;r<2;r++){let n=FT();try{return await new Promise((o,s)=>{n.once("error",s),n.listen(e,()=>{n.off("error",s),o()})}),n}catch(o){if(n.close(),o.code!=="EADDRINUSE")throw o;if(await ic(e)!=="unowned")throw new zt(e);if(await t?.())throw new zt(e);await DT(e,{force:!0})}}throw new zt(e)}async function Jt(e,t=250){try{return(await aa({socketPath:e,timeoutMs:t},{id:Dh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Fh(e,t){dh(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??Dh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Gh(e){return{generated_at:e.now,hour:Mh("hour",36e5,e),day:Mh("day",864e5,e),history_48h:IT(e)}}function IT(e){let t=un(e.now),r=t==null?null:Math.floor(t/36e5)*36e5,n=r==null?null:r-47*36e5,o=Array.from({length:48},(d,c)=>n==null?null:n+c*36e5),s=MT(e.observations,o,t),i=o.map((d,c)=>({hour:d==null?e.now:new Date(d).toISOString(),value:s[c]??null,absent_reason:s[c]==null?"no token samples span this hour":null})),a=e.outcomes.map(d=>un(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:Ih(i),tickets_per_hour:Ih(l)}}function MT(e,t,r){if(r==null||t.some(i=>i==null))return t.map(()=>null);let n=new Map;for(let i of e){let a=un(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],y=Math.min(f+36e5,r),h=Math.max(0,Math.min(c.at,y)-Math.max(d.at,f));h!==0&&(a[g].tokens+=p*(h/u),a[g].duration+=h)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function Ih(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Nn(e,t,r){let n=un(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=un(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function Mh(e,t,r){let n=un(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:un(u.observed_at)})).filter(u=>u.at!=null&&Bh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>un(u.ts)).filter(u=>u!=null&&Bh(u,o,n)),l=Lh(i,u=>u.tokens,"tokens",s),d=Lh(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:LT(a.length,t,s),runner_share:jh("runner",i,u=>u.runner,s),model_share:jh("model",i,u=>u.model,s),unavailable:c}}function Lh(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 LT(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 jh(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 Bh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function un(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Wh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Nh(t.hour)&&Nh(t.day)&&(t.history_48h===void 0||jT(t.history_48h))}function jT(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&$h(t.tokens_per_hour)&&$h(t.tickets_per_hour)}function $h(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 Nh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&ac(t.tokens_per_min)&&ac(t.tools_per_min)&&ac(t.issues_per_hour)&&Array.isArray(t.unavailable)}function ac(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.value===null||typeof t.value=="number")&&(t.absent_reason===null||typeof t.absent_reason=="string")&&Number.isInteger(t.samples)}function Hh(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Nn([...e,o],s=>s.observed_at,{now:n}),record:{kind:"worker-metrics",worker:r,ts:o.observed_at,tokens:o.tokens,tools:o.tools,runner:o.runner,model:o.model}}}function Uh(e,t){return Nn(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as Vh,totalmem as $T}from"node:os";function Ds(e){if(e.applied_budget!=null)return e.applied_budget;let t=e.budget??{};return t.memory_max==null&&t.memory_high==null&&e.memory_ceiling!=null?{...t,memory_max:e.memory_ceiling}:t}function qh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Ds(d),u=!1;for(let[p,g]of[[c.memory_high,f=>r+=f],[c.memory_max,f=>n+=f]]){if(p==null)continue;let f=Do(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:BT(e.length,n,a,l)}}function BT(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function Do(e){let t=/^\s*(\d+(?:\.\d+)?)\s*([KMGT]?)(?:B)?\s*$/i.exec(e);if(!t)return null;let r={"":1,k:1024,m:1024**2,g:1024**3,t:1024**4}[t[2].toLowerCase()];return Math.round(Number(t[1])*r)}function Kh(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 zh="REDSKILLED_MEMORY_CEILING",dc="REDSKILLED_WORKER_CEILING",Xh="REDSKILLED_VALIDATION_CEILING",Jh="REDSKILLED_INTERACTIVE_RESERVATION",Os=1,Yh=.7,NT=2*1024**3,GT=2;function Zh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Do(t)}function ga(e){let t=0,r=[];for(let n of e){let o=Zh(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 em(e){let{ceiling:t}=e,r=ga(e.workers),n=Zh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??Os),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function tm(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=ga(e.workers),n=e.ceiling.memory_bytes-r.memory_bytes,o=e.ceiling.worker_count,s=o==null?n:Math.floor(e.ceiling.memory_bytes/o),i=Math.min(n,s);if(i<=0)return{memory_max:null,reason:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes is already fully committed to ${r.worker_count} Worker(s), so no positive per-Worker ceiling can be derived; the daemon's RSS sampling floor is the only remaining ceiling`};let a=o==null?`the headroom under this host's memory ceiling of ${e.ceiling.memory_bytes} bytes; this host declares no Worker slot count (${dc} is unset), so this ceiling is a per-Worker wall and not memory the host sets aside \u2014 N Workers may carry N such walls, and the host ceiling is not enforced host-wide. Declare a slot count to make it divide into shares that sum to it`:`this host's memory ceiling of ${e.ceiling.memory_bytes} bytes shared across its ${o} Worker slot(s)`;return{memory_max:String(i),reason:`derived from ${a} (ceiling source: ${e.ceiling.source})`}}function ha(e=process.env,t=$T(),r={}){let n=lc(r.flags?.memoryCeiling,e[zh],r.config?.memoryCeiling),o=lc(r.flags?.workerCeiling,e[dc],r.config?.workerCeiling),s=lc(r.flags?.validationCeiling,e[Xh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Jh]??"").trim(),d=rm(a),c=l===""?Os:UT(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!WT(a)&&(fa(`redskilled: ${cc(o)} ${dc}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=HT(i,t);if(p!==void 0)return Qh({memory_bytes:p,worker_count:d,interactive_reservation:c??Os,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Vh());fa(`redskilled: ${cc(n)} ${zh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Yh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&fa(`redskilled: ${Jh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Os} Worker(s) instead.`),Qh({memory_bytes:Math.floor(t*Yh),worker_count:d,interactive_reservation:c??Os,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Vh())}function Qh(e,t,r){if(t!==void 0){let i=rm(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};fa(`redskilled: ${cc(t)} ${Xh}=${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)/GT)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/NT)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function lc(e,t,r){if(e?.trim())return{value:e.trim(),source:"flag"};if(t?.trim())return{value:t.trim(),source:"environment"};if(r?.trim())return{value:r.trim(),source:"home-config"}}function cc(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function WT(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var fa=e=>process.stderr.write(`${e}
|
|
61
|
+
`);function HT(e,t){let r=e.toLowerCase();if(["infinity","none","off","unbounded"].includes(r))return null;let n=/^(\d+(?:\.\d+)?)\s*%$/.exec(e);return n?Math.floor(t*(Number(n[1])/100)):Do(e)??void 0}function rm(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 UT(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as qT,mkdir as KT,open as VT,readFile as zT,rename as JT,rm as YT,stat as im,truncate as nm,writeFile as QT}from"node:fs/promises";import{dirname as XT}from"node:path";var ZT=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],Oo=["worker-birth","worker-death","worker-budget-kill"],eP=["demand-refusal","daemon-stop"],am="redskilled.log.toonl",tP=4*1024*1024,rP=.5;function ma(e){let t=e.worker.budget??{},r="kind"in e?e.kind:e.event;return{version:1,ts:e.ts,kind:r,event:r,worker_id:e.worker.worker_id,project_label:e.worker.project_label,pid:e.worker.pid,workspace_path:e.worker.workspace_path,fork_sha:e.worker.fork_sha??null,log_path:e.worker.log_path??null,isolated:e.worker.isolated,unit:e.worker.unit??null,memory_high:t.memory_high??null,memory_max:t.memory_max??null,cpu_weight:t.cpu_weight??null,admission_verdict:"admissionVerdict"in e?e.admissionVerdict??null:null,phase:"phase"in e?e.phase??null:null,step:"step"in e?e.step??null:null,tokens:"tokens"in e?e.tokens??null:null,tools:"tools"in e?e.tools??null:null,runner:"runner"in e?e.runner??null:null,model:"model"in e?e.model??null:null,base_head_sha:"baseHeadSha"in e?e.baseHeadSha??null:null,base_commits_ahead:"baseCommitsAhead"in e?e.baseCommitsAhead??null:null,heal_kind:"healKind"in e?e.healKind??null:null,detail:e.detail??null,exit_code:e.exitCode??null,signal:e.signal??null,reason:"reason"in e?e.reason??null:null}}var nP="daemon:";function oP(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${nP}${e.pid}`,project_label:"",pid:e.pid,workspace_path:e.socketPath,fork_sha:null,log_path:null,isolated:!1,unit:null,memory_high:null,memory_max:null,cpu_weight:null,admission_verdict:null,phase:null,step:null,tokens:null,tools:null,runner:null,model:null,base_head_sha:null,base_commits_ahead:null,heal_kind:null,detail:e.detail,exit_code:null,signal:e.signal??null,reason:e.reason}}function sP(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 lm(e,t={}){let r=t.maxBytes??tP,n=yt({trailer:!1}),o=Promise.resolve();async function s(i){let a=o.then(async()=>{await KT(XT(e),{recursive:!0,mode:448}),await lP(e);let l=n.push(cm(i));await iP(e,l,r)?await qT(e,l,{encoding:"utf8",mode:384}):(await aP(e,r,i),n=yt({trailer:!1}))});return o=a.catch(()=>{}),await a,i}return{path:e,record:i=>s(ma(i)),recordWorker:i=>s(ma(i)),recordDemandRefusal:i=>s(sP(i)),recordDaemonStop:i=>s(oP(i)),read:()=>dm(e),flush:async()=>{await o}}}async function iP(e,t,r){let n=0;try{n=(await im(e)).size}catch(o){if(o.code!=="ENOENT")throw o}return n+Buffer.byteLength(t)<=r}async function aP(e,t,r){let n=[...await dm(e),r],o=new Set([n.length-1]),s=Math.floor(t*rP),i;try{i=om(n,s,o)}catch(l){if(!(l instanceof Error)||!l.message.startsWith("redskilled event-lane baseline exceeds"))throw l;i=om(n,t,o)}let a=`${e}.rotate-${process.pid}`;try{await QT(a,uc(i),{encoding:"utf8",mode:384}),await JT(a,e)}finally{await YT(a,{force:!0})}}function om(e,t,r=new Set){let n=new Set(pc(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=sm(e,o,s.slice(d));Buffer.byteLength(uc(c))<=t?a=d:i=d+1}let l=sm(e,o,s.slice(i));if(Buffer.byteLength(uc(l))>t)throw new Error(`redskilled event-lane baseline exceeds its ${t}-byte ceiling`);return l}function sm(e,t,r){let n=new Set([...t,...r]);return e.filter((o,s)=>n.has(s))}function uc(e){if(e.length===0)return"";let t=yt({trailer:!1});return e.map(r=>t.push(cm(r))).join("")}async function lP(e){let t;try{t=(await im(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await VT(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 nm(e,s-i+l+1);return}}await nm(e,0)}finally{await n.close()}}async function dm(e){let t;try{t=await zT(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return dP(t)}function dP(e){let t=e.split(`
|
|
62
62
|
`);return t.pop(),t.length===0?[]:Tr(`${t.join(`
|
|
63
63
|
`)}
|
|
64
|
-
`).filter(lP).map(dP)}function pc(e){let t=new Map;for(let r of e)r.kind==="daemon-stop"||r.kind==="demand-refusal"||(r.kind==="worker-birth"?t.set(r.worker_id,aP(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function aP(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function lm(e){return{...e}}function lP(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...QT,...XT].includes(t)}function dP(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function dm(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target),d)-a);if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,y=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:y,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let h=0;h<y;h+=1)(s[h]??(s[h]=[])).push({project_label:i.project_label,index:a+h,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function cm(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function um(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var Fs={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function pm(e,t,r){if(t>=6e4)return Fs;let n=e.shortLifeStreak+1;return!(e.haltUntilMs!=null||e.probeWorkerId!=null)&&n<3?{shortLifeStreak:n,haltUntilMs:null,openedAtMs:null,probeWorkerId:null}:{shortLifeStreak:n,haltUntilMs:r+6e5,openedAtMs:r,probeWorkerId:null}}function fm(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function fc(){return Fs}function cP(e,t,r){if(t.haltUntilMs==null||t.openedAtMs==null)return null;let n=r>=t.haltUntilMs;return{name:"project-birth-breaker",project_label:e,state:n?"half-open":"open",opened_at:new Date(t.openedAtMs).toISOString(),reason:`${t.shortLifeStreak} Workers from this project died before surviving 60000ms`,closes:n?t.probeWorkerId==null?"the next demand tick admits one probe Worker; surviving the short-life window closes the latch":`probe Worker ${JSON.stringify(t.probeWorkerId)} surviving 60000ms closes the latch; a fast death re-opens it with a fresh cooldown`:`the cooldown ends at ${new Date(t.haltUntilMs).toISOString()}, then one probe Worker is admitted; surviving the short-life window closes the latch`,probe_worker_id:t.probeWorkerId,repair:{tool:"project_reset",args:{latch:"project-birth-breaker"},why:"clear the project's birth-breaker history and allow the next demand tick to birth normally"}}}function gm(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>cP(r,n,t)).filter(r=>r!=null)}function mm(e){let t=e.workers.map(uP),r=[...new Set([...t.map(o=>o.project_label),...e.projects??[]])].filter(o=>o!=="").sort(),n=t.filter(o=>o.survives).map(o=>o.worker_id);return{version:1,running:!0,stopped:!0,reason:e.reason,socket_path:e.socketPath,daemon_version:e.daemonVersion,pid:e.pid,holding:{workers:t,projects:r},surviving:n,detail:fP({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function bm(e){return{version:1,running:!1,stopped:!1,reason:"not-running",socket_path:e,daemon_version:null,pid:null,holding:{workers:[],projects:[]},surviving:[],detail:`no redskilled daemon is answering on ${JSON.stringify(e)}, so there was nothing to stop`}}function uP(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,survives:!0}}function pP(e){return e==="requested"?"an operator asked for it":e==="signal"?"the daemon was signalled":e==="idle"?"the daemon was idle and held nothing":e==="replaced"?"a newer published bundle is taking the session over":"no daemon was running"}function fP(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${pP(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${hm(e.held,"Worker")} across ${hm(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 a Worker is an init-system unit, so this is a restart and not an evacuation`}function hm(e,t){return`${e} ${t}${e===1?"":"s"}`}function gc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as gP,mkdir as hP,readFile as mP,rm as bP,writeFile as yP}from"node:fs/promises";import{dirname as ym,join as _m}from"node:path";import{tmpdir as km}from"node:os";var kP="redskilled.machine.claim.toon",mc="REDSKILLED_MACHINE_DIR",wP=8,Vr=class extends Error{constructor(r,n,o){super(_P(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},wm;function ba(){return wm??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},wm}function RP(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[mc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||km():km();return _m(o,`redskilled-${e.machineIdHash}`)}function Fo(e){return _m(RP(e),kP)}function Is(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){let l;try{l=await mP(e,"utf8")}catch(c){if(c.code==="ENOENT"||hc(c))return;throw c}let d=EP(l);return vP(d)?d:void 0}function i(l,d){return{version:1,scope:"machine",pid:l.pid,start_time:l.startTime,uid:l.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath,acquired_at:d,renewed_at:d}}async function a(){try{return await bP(e,{force:!0}),!0}catch(l){if(hc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await hP(ym(e),{recursive:!0,mode:1023})!=null&&await gP(ym(e),1023).catch(()=>{});let c=!1;for(let u=0;u<wP;u+=1){let p=i(l,n());try{return await yP(e,xP(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(hc(f))return{claimed:!1,reason:"stale-claim-not-reapable"};throw f}}let g=await s();if(!g){if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable"};c=!0;continue}if(Rm(g,l,t.socketPath))return{claimed:!0,reaped:c,claim:g};if(await o(g.pid))return{claimed:!1,reason:"held",claim:g};if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable",claim:g};c=!0}return{claimed:!1,reason:"contended"}},async release(l){let d=await s();return!d||!Rm(d,l,t.socketPath)?!1:await a()}}}function xm(e,t,r){return{kind:"machine",claim_path:e,owner_uid:r.uid,machine_id_hash:t.machineIdHash,session_key_hash:t.sessionKeyHash,socket_path:t.socketPath}}function Em(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.kind==="machine"&&typeof t.claim_path=="string"&&typeof t.owner_uid=="number"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&typeof t.socket_path=="string"}function _P(e,t,r){let n=r==null?"":` \u2014 held by pid ${r.pid} (uid ${r.uid}) on socket ${JSON.stringify(r.socket_path)}`;return t==="held"?`this machine already has a redskilled daemon${n}; a second one would void the host budget, so none was started. Reach that daemon, or stop it before starting another.`:t==="stale-claim-not-reapable"?`the redskilled machine claim ${JSON.stringify(e)} is stale and cannot be removed by this user${n}; remove it as its owner, then start again. No second daemon was started.`:`the redskilled machine claim ${JSON.stringify(e)} changed hands repeatedly; no daemon was started.`}function hc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function Rm(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function xP(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
65
|
-
`}function EP(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function vP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.scope!=="machine"||!Number.isInteger(t.pid)||t.pid<=0||!Number.isInteger(t.uid))return!1;for(let r of["start_time","machine_id_hash","session_key_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}var SP=["worker_id","slot","workspace_path","log_path"],ya=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${SP.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},vm=/\{\{([a-z_]+)\}\}/g;function TP(e,t){let r=(i,a)=>i.replace(vm,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new ya(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function Sm(e,t){if(!(e==null||e.trim()===""))return e.replace(vm,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ya(n,"the log path")}})}function ka(e,t,r){let n=TP(e,t),o=n.log_path??t.log_path,[s,...i]=n.argv;if(s===void 0||s==="")throw new Error(`redskilled cannot start a Worker for project ${JSON.stringify(r.project_label)}: its launch expanded to an argv with no command`);return{worker_id:t.worker_id,project_label:r.project_label,workspace_path:t.workspace_path,...o==null||o===""?{}:{log_path:o},command:s,args:i,env:n.env}}function wa(e,t){if(!Array.isArray(e)||e.length===0)throw new Error(`redskilled needs an argv to register project ${JSON.stringify(t)}: a registration with nothing to run is a project the host could never start a Worker for`);return e.map((r,n)=>{if(typeof r!="string"||r==="")throw new Error(`redskilled needs every word of an argv to be a non-empty string, and word ${n} of project ${JSON.stringify(t)} is not`);return r})}function Ra(e,t){if(e!=null){if(typeof e!="string"||e.trim()==="")throw new Error(`redskilled needs a declared log path to be a non-empty string to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}: a project that declares an empty path states a Worker whose output no surface can ever show, which reads as a Worker with nothing to say`);return e}}function _a(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}var PP=3e5,AP=.5,bc=class extends Error{constructor(r){super(`redskilled already holds a registration for project ${JSON.stringify(r.project_label)}, registered at ${r.registered_at} for a target of ${r.target} and standing until ${r.renew_by}: a project contributes one registration, so a second one is refused rather than silently replacing the first`);this.held=r;this.name="RedskilledProjectRegisteredError"}};function Tm(e,t){if(t.held!=null)throw new bc(t.held);let r=Ms(e.project_label,"a project label"),n=Ms(e.selector,"a selector"),o=MP(e.queue_poll,r),s=wa(e.argv,r),i=_a(e.env,r),a=Ra(e.log_path,r),l=OP(e.hooks,r),d=Ms(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:Ms(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Ms(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let u=e.renew_within_ms??PP;if(!Number.isFinite(u)||u<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let p=Date.parse(t.now);if(!Number.isFinite(p))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:d,...c==null?{}:{trunk:c},env:i,...a==null?{}:{log_path:a},...l==null?{}:{hooks:l},target:e.target,registered_at:new Date(p).toISOString(),renew_within_ms:u,renew_by:new Date(p+u).toISOString(),renewed_at:new Date(p).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var Gn=class extends Error{constructor(r,n={kind:"never"}){super(CP(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function CP(e,t){let r=JSON.stringify(e);if(t.kind==="lapsed"){let n=t.registered_at==null?"":` (registered ${t.registered_at})`;return`redskilled holds no registration for project ${r} to renew: it lapsed at ${t.at}${n}; renewal stopped \u2014 find why before registering it again`}return t.kind==="stopped"?`redskilled holds no registration for project ${r} to renew: it was stopped at ${t.at}; this is the requested state, so there is nothing to renew`:t.kind==="orphaned"?`redskilled holds no registration for project ${r} to renew: it is registered on a daemon this socket does not reach \u2014 do not register it again`:`redskilled holds no registration for project ${r} to renew: it was never registered on this host; register it first, stating the selector, the argv and the target`}function Pm(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to date a renewal, not ${JSON.stringify(t.now)}`);let n=t.renew_within_ms??e.renew_within_ms;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled needs a positive renewal window to renew project ${JSON.stringify(e.project_label)}, not ${JSON.stringify(t.renew_within_ms)}`);let o=t.launch==null?{env:e.env??{},launch_revision:e.launch_revision??0}:{argv:wa(t.launch.argv,e.project_label),env:_a(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Ra(t.launch.log_path,e.project_label),{log_path:i,...a}=e;return{...a,...s==null?{}:{log_path:s},...o,renew_within_ms:n,renewed_at:new Date(r).toISOString(),renew_by:new Date(r+n).toISOString(),renewals:e.renewals+1,session_renewals:(e.session_renewals??e.renewals)+1}}function yc(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to sustain a registration, not ${JSON.stringify(t.now)}`);let n=JSON.stringify(e.project_label),o=Math.max(0,t.liveWorkers??0),s=t.queue,i=s!=null&&s.outcome==="counted"?s.depth:null,a=i!=null&&i>0?"open-work":o>0?"live-worker":null;if(a==null){let l=i===0?"drained":"uncounted";return{registration:e,verdict:l,detail:l==="drained"?`project ${n} has nothing queued and no Worker running, so nothing holds its registration up and it lapses at ${e.renew_by}`:`no poll counted project ${n}, and an uncounted queue never sustains a registration \u2014 it stands on its own deadline of ${e.renew_by}`}}return{registration:{...e,renew_by:new Date(r+e.renew_within_ms).toISOString(),sustained_at:new Date(r).toISOString(),sustains:(e.sustains??0)+1,sustained_by:a,renewals:e.renewals+1,session_renewals:e.session_renewals??e.renewals},verdict:a,detail:a==="open-work"?`project ${n} has ${i} item(s) queued, so its registration stands past its window`:`project ${n} holds ${o} Worker(s), so its registration stands past its window`}}function DP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Am(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*AP;if(n(r))return"renewing";let o=e.sustained_at==null?Number.NaN:Date.parse(e.sustained_at);return n(o)?"self-renewing":"running-on"}function Cm(e,t){let r=[],n=[];for(let o of e)(DP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Ls(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.project_label=="string"&&typeof t.selector=="string"&&(t.queue_poll===void 0||Dm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||IP(t.trunk))&&Number.isInteger(t.target)&&typeof t.registered_at=="string"&&typeof t.renew_within_ms=="number"&&typeof t.renew_by=="string"&&(t.renewed_at===void 0||typeof t.renewed_at=="string")&&(t.renewals===void 0||Number.isInteger(t.renewals))&&(t.session_renewals===void 0||Number.isInteger(t.session_renewals))&&(t.env===void 0||Om(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||FP(t.hooks))&&(t.launch_revision===void 0||Number.isInteger(t.launch_revision))&&(t.sustained_at===void 0||typeof t.sustained_at=="string")&&(t.sustains===void 0||Number.isInteger(t.sustains))&&(t.sustained_by===void 0||t.sustained_by==="open-work"||t.sustained_by==="live-worker")}function OP(e,t){if(e==null)return;if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs project hooks to be a map keyed by public host event kind for project ${JSON.stringify(t)}`);let r={};for(let[n,o]of Object.entries(e)){if(!Oo.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${Oo.join(", ")}`);if(o===null||typeof o!="object"||Array.isArray(o))throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} to be a launch template`);let s=o,i=s.mode??"async";if(i!=="async"&&i!=="sync")throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} mode to be "async" or "sync", not ${JSON.stringify(i)}`);if(i==="sync"&&(typeof s.deadline_ms!="number"||!Number.isFinite(s.deadline_ms)||s.deadline_ms<=0))throw new Error(`redskilled cannot register sync ${n} hook for project ${JSON.stringify(t)} without a finite, positive deadline_ms: ${JSON.stringify(s.deadline_ms)} is not a bounded deadline`);r[n]={argv:wa(s.argv,t),env:_a(s.env,t),...s.log_path==null?{}:{log_path:Ra(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function FP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!Oo.includes(t)||r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return Array.isArray(n.argv)&&n.argv.length>0&&n.argv.every(o=>typeof o=="string"&&o!=="")&&(n.env===void 0||Om(n.env))&&(n.log_path===void 0||typeof n.log_path=="string"&&n.log_path!=="")&&(n.mode===void 0||n.mode==="async"||n.mode==="sync")&&(n.mode!=="sync"||typeof n.deadline_ms=="number"&&Number.isFinite(n.deadline_ms)&&n.deadline_ms>0)})}function IP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.remote=="string"&&t.remote.trim()!==""&&typeof t.branch=="string"&&t.branch.trim()!==""}function MP(e,t){if(e!==void 0){if(!Dm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function Dm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(r=>typeof r=="string"&&r!=="")&&(t.creator===void 0||typeof t.creator=="string")}function Om(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Ms(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var LP={ping:"host-read","host-state":"host-read","statusline-payload":"host-read",shutdown:"daemon-life","worker-start":"project-write","worker-stop":"project-write","worker-recycle":"project-write","worker-steer":"project-write","worker-heartbeat":"project-write","project-register":"project-write","project-renew":"project-write","project-reset":"project-write","project-deregister":"project-write"};function Fm(e){return`worker-${e}`}function Im(e){let t=LP[e.op]??"project-write",r=e.sessionProject??null,n=e.targetProject??null,o={version:1,op:e.op,reach:t,session_project:r,target_project:n};return t==="host-read"?{...o,permitted:!0,verdict:"permitted-host-read",reason:`redskilled permitted ${e.op}: a session reads the whole host, whichever project it was started in`}:t==="daemon-life"?{...o,permitted:!0,verdict:"permitted-daemon-life",reason:`redskilled permitted ${e.op}: it acts on the daemon's own process, not on any project's Workers`}:r==null||r===""?{...o,permitted:!0,verdict:"permitted-unattributed",reason:`redskilled permitted ${e.op}: the session named no project of its own, so there is nothing to refuse it against`}:n!=null&&n===r?{...o,permitted:!0,verdict:"permitted-own-project",reason:`redskilled permitted ${e.op}: the target belongs to project ${JSON.stringify(r)}, which is this session's own`}:{...o,permitted:!1,verdict:"refused-cross-project",reason:`redskilled refused ${e.op} from a session in project ${JSON.stringify(r)}: ${n==null?"it names no Worker of that project":`the target belongs to project ${JSON.stringify(n)}`}. A session reads the whole host and writes only its own project.`}}function Mm(e){return e==="single-object"?"rest":"graphql"}function Lm(e,t){return e==="stable-poll"?"rest":Mm(t)}function Yt(e){return{none:e}}function st(e,t,r,n,o,s,i){let a=typeof o=="string"?{fallback:o}:{fallback:null,noFallbackBecause:o.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??Lm(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ot(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var jm=[st("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),st("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),st("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),st("run view","single-object","stable-poll","rest",Yt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",Yt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),st("pr diff","single-object","one-shot","rest",Yt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),st("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),st("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),st("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),st("release list","multi-node","stable-poll","rest",Yt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",Yt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),st("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),st("issue list (search)","multi-node","stable-poll","search",Yt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),st("pr list (search)","multi-node","stable-poll","search",Yt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),st("search issues","multi-repository","one-shot","search",Yt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search prs","multi-repository","one-shot","search",Yt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search repos","multi-repository","one-shot","search",Yt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("api graphql","multi-node","one-shot","graphql",Yt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),st("api rest","single-object","one-shot","rest",Yt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ot("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ot("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ot("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ot("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ot("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ot("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ot("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ot("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ot("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ot("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ot("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ot("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ot("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ot("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],jP=new Map(jm.map(e=>[e.key,e]));function Bm(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function kc(e){let t=Bm(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var xa=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=kc(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}};function $m(e){return jP.get(kc(e))??null}function Nm(e){let t=$m(e);if(!t)throw new xa(e);return t}function wc(e){return Nm(e).surface}import{appendFile as BP,mkdir as $P,readFile as NP}from"node:fs/promises";import{dirname as GP}from"node:path";function Ea(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=WP(n.operation,n.cost,n.observedAt??t(),n.actor),s=yt().push(UP(o));return r=r.then(async()=>{await $P(GP(e.path),{recursive:!0}),await BP(e.path,s,"utf8")}),r},async report(n){await r;let o=Rc(n.from,"report window start"),s=Rc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await HP(e.path),a=new Map;for(let d of i.observations){let c=Date.parse(d.observed_at);if(c<o||c>=s||n.pool!==void 0&&d.pool!==n.pool)continue;let u=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,p=a.get(u);a.set(u,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+d.cost})}let l=[...a.values()].sort((d,c)=>c.cost-d.cost||c.count-d.count||d.operation_key.localeCompare(c.operation_key)||d.pool.localeCompare(c.pool)||(d.actor??"").localeCompare(c.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:l.reduce((d,c)=>d+c.count,0),total_cost:l.reduce((d,c)=>d+c.cost,0),operations:l,unreadable_records:i.unreadable}}}}function WP(e,t,r,n){if(Rc(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function HP(e){let t;try{t=await NP(e,"utf8")}catch(s){if(VP(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
64
|
+
`).filter(uP).map(pP)}function pc(e){let t=new Map;for(let r of e)r.kind==="daemon-stop"||r.kind==="demand-refusal"||(r.kind==="worker-birth"?t.set(r.worker_id,cP(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function cP(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function cm(e){return{...e}}function uP(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...ZT,...eP].includes(t)}function pP(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:gt(e.project_label)??"",pid:Number(e.pid??0),workspace_path:gt(e.workspace_path)??"",fork_sha:gt(e.fork_sha),log_path:gt(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:gt(e.unit),memory_high:gt(e.memory_high),memory_max:gt(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:gt(e.admission_verdict),phase:gt(e.phase),step:gt(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:gt(e.runner),model:gt(e.model),base_head_sha:gt(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:gt(e.heal_kind),detail:gt(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:gt(e.signal),reason:gt(e.reason)}}function gt(e){return e==null||e===""?null:String(e)}function um(e){let t=[...e.projects].sort((i,a)=>i.project_label.localeCompare(a.project_label)),r=e.backoffUntilMs??null,n=r!=null&&e.nowMs<r,o=[],s=[];for(let i of t){let a=Math.max(0,e.live[i.project_label]??0),l=Object.prototype.hasOwnProperty.call(e.queue,i.project_label),d=l?e.queue[i.project_label]??null:null,c={project_label:i.project_label,queue_depth:d,target:i.target,live:a};if(n){o.push({...c,outcome:"backing-off",wanted:0,detail:`the host refused a Worker, so no project is asked for one again before ${new Date(r).toISOString()}`});continue}let u=e.birthHealth?.[i.project_label],p=u?.haltUntilMs??e.birthHaltUntilMs?.[i.project_label];if(p!=null&&e.nowMs<p){o.push({...c,outcome:"birth-halted",wanted:0,detail:`project ${JSON.stringify(i.project_label)} lost 3 Workers in a row inside 60000ms of birth, so it is not asked for another before ${new Date(p).toISOString()} \u2014 a Worker that cannot survive boot will not survive the next one either, and every birth spends host quota shared with every project`});continue}if(u?.probeWorkerId!=null){o.push({...c,outcome:"half-open-probe",wanted:0,detail:`project ${JSON.stringify(i.project_label)} is half-open and probe Worker ${JSON.stringify(u.probeWorkerId)} has not yet survived 60000ms, so no second birth is admitted`});continue}if(d==null){o.push({...c,outcome:"queue-unknown",wanted:0,detail:l?`the last poll produced no depth for project ${JSON.stringify(i.project_label)}, and an absent depth is not a drained queue`:`no poll has counted project ${JSON.stringify(i.project_label)} yet, so it is not asked for a Worker on a depth nobody measured`});continue}if(d===0){o.push({...c,outcome:"queue-drained",wanted:0,detail:`project ${JSON.stringify(i.project_label)} has nothing queued, so it is asked for no Worker`});continue}let g=Math.max(0,Math.min(Math.max(0,i.target),d)-a);if(g===0){o.push({...c,outcome:"at-target",wanted:0,detail:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for none`});continue}let f=u?.haltUntilMs!=null&&e.nowMs>=u.haltUntilMs,y=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:y,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let h=0;h<y;h+=1)(s[h]??(s[h]=[])).push({project_label:i.project_label,index:a+h,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function pm(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function fm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.at=="string"&&Number.isInteger(t.requested)&&Array.isArray(t.granted)&&Number.isInteger(t.shortfall)&&(t.refusal===null||typeof t.refusal=="string")&&(t.retry_after===null||typeof t.retry_after=="string")&&Array.isArray(t.projects)}var Fs={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function gm(e,t,r){if(t>=6e4)return Fs;let n=e.shortLifeStreak+1;return!(e.haltUntilMs!=null||e.probeWorkerId!=null)&&n<3?{shortLifeStreak:n,haltUntilMs:null,openedAtMs:null,probeWorkerId:null}:{shortLifeStreak:n,haltUntilMs:r+6e5,openedAtMs:r,probeWorkerId:null}}function hm(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function fc(){return Fs}function fP(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 mm(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>fP(r,n,t)).filter(r=>r!=null)}function ym(e){let t=e.workers.map(gP),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:mP({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function km(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 gP(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,survives:!0}}function hP(e){return e==="requested"?"an operator asked for it":e==="signal"?"the daemon was signalled":e==="idle"?"the daemon was idle and held nothing":e==="replaced"?"a newer published bundle is taking the session over":"no daemon was running"}function mP(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${hP(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${bm(e.held,"Worker")} across ${bm(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 a Worker is an init-system unit, so this is a restart and not an evacuation`}function bm(e,t){return`${e} ${t}${e===1?"":"s"}`}function gc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as bP,mkdir as yP,readFile as kP,rm as wP,writeFile as RP}from"node:fs/promises";import{dirname as wm,join as Em}from"node:path";import{tmpdir as Rm}from"node:os";var _P="redskilled.machine.claim.toon",mc="REDSKILLED_MACHINE_DIR",xP=8,Vr=class extends Error{constructor(r,n,o){super(vP(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},_m;function ba(){return _m??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},_m}function EP(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[mc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||Rm():Rm();return Em(o,`redskilled-${e.machineIdHash}`)}function Fo(e){return Em(EP(e),_P)}function Is(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){let l;try{l=await kP(e,"utf8")}catch(c){if(c.code==="ENOENT"||hc(c))return;throw c}let d=TP(l);return PP(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 wP(e,{force:!0}),!0}catch(l){if(hc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await yP(wm(e),{recursive:!0,mode:1023})!=null&&await bP(wm(e),1023).catch(()=>{});let c=!1;for(let u=0;u<xP;u+=1){let p=i(l,n());try{return await RP(e,SP(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(hc(f))return{claimed:!1,reason:"stale-claim-not-reapable"};throw f}}let g=await s();if(!g){if(!await a())return{claimed:!1,reason:"stale-claim-not-reapable"};c=!0;continue}if(xm(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||!xm(d,l,t.socketPath)?!1:await a()}}}function vm(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 Sm(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 vP(e,t,r){let n=r==null?"":` \u2014 held by pid ${r.pid} (uid ${r.uid}) on socket ${JSON.stringify(r.socket_path)}`;return t==="held"?`this machine already has a redskilled daemon${n}; a second one would void the host budget, so none was started. Reach that daemon, or stop it before starting another.`:t==="stale-claim-not-reapable"?`the redskilled machine claim ${JSON.stringify(e)} is stale and cannot be removed by this user${n}; remove it as its owner, then start again. No second daemon was started.`:`the redskilled machine claim ${JSON.stringify(e)} changed hands repeatedly; no daemon was started.`}function hc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function xm(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function SP(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
65
|
+
`}function TP(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function PP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.scope!=="machine"||!Number.isInteger(t.pid)||t.pid<=0||!Number.isInteger(t.uid))return!1;for(let r of["start_time","machine_id_hash","session_key_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}var AP=["worker_id","slot","workspace_path","log_path"],ya=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${AP.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},Tm=/\{\{([a-z_]+)\}\}/g;function CP(e,t){let r=(i,a)=>i.replace(Tm,(l,d)=>{switch(d){case"worker_id":return t.worker_id;case"slot":return String(t.slot);case"workspace_path":return t.workspace_path;case"log_path":return t.log_path??"";default:throw new ya(d,a)}}),n=e.argv.map((i,a)=>r(i,`argv word ${a}`)),o={};for(let[i,a]of Object.entries(e.env??{}))o[i]=r(a,`env entry ${JSON.stringify(i)}`);let s=e.log_path==null?void 0:r(e.log_path,"the log path");return{argv:n,env:o,...s==null||s===""?{}:{log_path:s}}}function Pm(e,t){if(!(e==null||e.trim()===""))return e.replace(Tm,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new ya(n,"the log path")}})}function ka(e,t,r){let n=CP(e,t),o=n.log_path??t.log_path,[s,...i]=n.argv;if(s===void 0||s==="")throw new Error(`redskilled cannot start a Worker for project ${JSON.stringify(r.project_label)}: its launch expanded to an argv with no command`);return{worker_id:t.worker_id,project_label:r.project_label,workspace_path:t.workspace_path,...o==null||o===""?{}:{log_path:o},command:s,args:i,env:n.env}}function wa(e,t){if(!Array.isArray(e)||e.length===0)throw new Error(`redskilled needs an argv to register project ${JSON.stringify(t)}: a registration with nothing to run is a project the host could never start a Worker for`);return e.map((r,n)=>{if(typeof r!="string"||r==="")throw new Error(`redskilled needs every word of an argv to be a non-empty string, and word ${n} of project ${JSON.stringify(t)} is not`);return r})}function Ra(e,t){if(e!=null){if(typeof e!="string"||e.trim()==="")throw new Error(`redskilled needs a declared log path to be a non-empty string to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}: a project that declares an empty path states a Worker whose output no surface can ever show, which reads as a Worker with nothing to say`);return e}}function _a(e,t){if(e==null)return{};if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs a launch env to be a map of strings to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}`);let r={};for(let[n,o]of Object.entries(e)){if(n==="")throw new Error(`redskilled needs every launch env name of project ${JSON.stringify(t)} to be named`);if(typeof o!="string")throw new Error(`redskilled needs every launch env value to be a string, and ${JSON.stringify(n)} of project ${JSON.stringify(t)} is ${JSON.stringify(o)}`);r[n]=o}return r}var DP=3e5,OP=.5,bc=class extends Error{constructor(r){super(`redskilled already holds a registration for project ${JSON.stringify(r.project_label)}, registered at ${r.registered_at} for a target of ${r.target} and standing until ${r.renew_by}: a project contributes one registration, so a second one is refused rather than silently replacing the first`);this.held=r;this.name="RedskilledProjectRegisteredError"}};function Am(e,t){if(t.held!=null)throw new bc(t.held);let r=Ms(e.project_label,"a project label"),n=Ms(e.selector,"a selector"),o=BP(e.queue_poll,r),s=wa(e.argv,r),i=_a(e.env,r),a=Ra(e.log_path,r),l=MP(e.hooks,r),d=Ms(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:Ms(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Ms(e.trunk.branch,`a trunk branch for project ${JSON.stringify(r)}`)};if(!Number.isInteger(e.target)||e.target<0)throw new Error(`redskilled needs a whole, non-negative target to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.target)}`);let u=e.renew_within_ms??DP;if(!Number.isFinite(u)||u<=0)throw new Error(`redskilled needs a positive renewal window to register project ${JSON.stringify(r)}, not ${JSON.stringify(e.renew_within_ms)}: a registration that lapses on arrival is a poll nobody asked for`);let p=Date.parse(t.now);if(!Number.isFinite(p))throw new Error(`redskilled needs an instant to date a registration, not ${JSON.stringify(t.now)}`);return{version:1,project_label:r,selector:n,...o==null?{}:{queue_poll:o},argv:s,workspace_path:d,...c==null?{}:{trunk:c},env:i,...a==null?{}:{log_path:a},...l==null?{}:{hooks:l},target:e.target,registered_at:new Date(p).toISOString(),renew_within_ms:u,renew_by:new Date(p+u).toISOString(),renewed_at:new Date(p).toISOString(),renewals:0,session_renewals:0,launch_revision:0}}var Gn=class extends Error{constructor(r,n={kind:"never"}){super(FP(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function FP(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 Cm(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to date a renewal, not ${JSON.stringify(t.now)}`);let n=t.renew_within_ms??e.renew_within_ms;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled needs a positive renewal window to renew project ${JSON.stringify(e.project_label)}, not ${JSON.stringify(t.renew_within_ms)}`);let o=t.launch==null?{env:e.env??{},launch_revision:e.launch_revision??0}:{argv:wa(t.launch.argv,e.project_label),env:_a(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Ra(t.launch.log_path,e.project_label),{log_path:i,...a}=e;return{...a,...s==null?{}:{log_path:s},...o,renew_within_ms:n,renewed_at:new Date(r).toISOString(),renew_by:new Date(r+n).toISOString(),renewals:e.renewals+1,session_renewals:(e.session_renewals??e.renewals)+1}}function yc(e,t){let r=Date.parse(t.now);if(!Number.isFinite(r))throw new Error(`redskilled needs an instant to sustain a registration, not ${JSON.stringify(t.now)}`);let n=JSON.stringify(e.project_label),o=Math.max(0,t.liveWorkers??0),s=t.queue,i=s!=null&&s.outcome==="counted"?s.depth:null,a=i!=null&&i>0?"open-work":o>0?"live-worker":null;if(a==null){let l=i===0?"drained":"uncounted";return{registration:e,verdict:l,detail:l==="drained"?`project ${n} has nothing queued and no Worker running, so nothing holds its registration up and it lapses at ${e.renew_by}`:`no poll counted project ${n}, and an uncounted queue never sustains a registration \u2014 it stands on its own deadline of ${e.renew_by}`}}return{registration:{...e,renew_by:new Date(r+e.renew_within_ms).toISOString(),sustained_at:new Date(r).toISOString(),sustains:(e.sustains??0)+1,sustained_by:a,renewals:e.renewals+1,session_renewals:e.session_renewals??e.renewals},verdict:a,detail:a==="open-work"?`project ${n} has ${i} item(s) queued, so its registration stands past its window`:`project ${n} holds ${o} Worker(s), so its registration stands past its window`}}function IP(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Dm(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*OP;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 Om(e,t){let r=[],n=[];for(let o of e)(IP(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Ls(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.project_label=="string"&&typeof t.selector=="string"&&(t.queue_poll===void 0||Fm(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||jP(t.trunk))&&Number.isInteger(t.target)&&typeof t.registered_at=="string"&&typeof t.renew_within_ms=="number"&&typeof t.renew_by=="string"&&(t.renewed_at===void 0||typeof t.renewed_at=="string")&&(t.renewals===void 0||Number.isInteger(t.renewals))&&(t.session_renewals===void 0||Number.isInteger(t.session_renewals))&&(t.env===void 0||Im(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||LP(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 MP(e,t){if(e==null)return;if(typeof e!="object"||Array.isArray(e))throw new Error(`redskilled needs project hooks to be a map keyed by public host event kind for project ${JSON.stringify(t)}`);let r={};for(let[n,o]of Object.entries(e)){if(!Oo.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${Oo.join(", ")}`);if(o===null||typeof o!="object"||Array.isArray(o))throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} to be a launch template`);let s=o,i=s.mode??"async";if(i!=="async"&&i!=="sync")throw new Error(`redskilled needs hook ${JSON.stringify(n)} for project ${JSON.stringify(t)} mode to be "async" or "sync", not ${JSON.stringify(i)}`);if(i==="sync"&&(typeof s.deadline_ms!="number"||!Number.isFinite(s.deadline_ms)||s.deadline_ms<=0))throw new Error(`redskilled cannot register sync ${n} hook for project ${JSON.stringify(t)} without a finite, positive deadline_ms: ${JSON.stringify(s.deadline_ms)} is not a bounded deadline`);r[n]={argv:wa(s.argv,t),env:_a(s.env,t),...s.log_path==null?{}:{log_path:Ra(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function LP(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!Oo.includes(t)||r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return Array.isArray(n.argv)&&n.argv.length>0&&n.argv.every(o=>typeof o=="string"&&o!=="")&&(n.env===void 0||Im(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 jP(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 BP(e,t){if(e!==void 0){if(!Fm(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function Fm(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.owner=="string"&&t.owner!==""&&typeof t.repo=="string"&&t.repo!==""&&Array.isArray(t.labels)&&t.labels.length>0&&t.labels.every(r=>typeof r=="string"&&r!=="")&&(t.creator===void 0||typeof t.creator=="string")}function Im(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Ms(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var $P={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 Mm(e){return`worker-${e}`}function Lm(e){let t=$P[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 jm(e){return e==="single-object"?"rest":"graphql"}function Bm(e,t){return e==="stable-poll"?"rest":jm(t)}function Yt(e){return{none:e}}function st(e,t,r,n,o,s,i){let a=typeof o=="string"?{fallback:o}:{fallback:null,noFallbackBecause:o.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??Bm(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ot(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var $m=[st("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),st("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),st("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),st("run view","single-object","stable-poll","rest",Yt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",Yt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),st("pr diff","single-object","one-shot","rest",Yt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),st("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),st("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),st("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),st("release list","multi-node","stable-poll","rest",Yt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",Yt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),st("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),st("issue list (search)","multi-node","stable-poll","search",Yt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),st("pr list (search)","multi-node","stable-poll","search",Yt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),st("search issues","multi-repository","one-shot","search",Yt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search prs","multi-repository","one-shot","search",Yt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search repos","multi-repository","one-shot","search",Yt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("api graphql","multi-node","one-shot","graphql",Yt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),st("api rest","single-object","one-shot","rest",Yt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ot("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ot("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ot("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ot("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ot("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ot("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ot("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ot("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ot("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ot("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ot("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ot("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ot("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ot("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],NP=new Map($m.map(e=>[e.key,e]));function Nm(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function kc(e){let t=Nm(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var xa=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=kc(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}};function Gm(e){return NP.get(kc(e))??null}function Wm(e){let t=Gm(e);if(!t)throw new xa(e);return t}function wc(e){return Wm(e).surface}import{appendFile as GP,mkdir as WP,readFile as HP}from"node:fs/promises";import{dirname as UP}from"node:path";function Ea(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=qP(n.operation,n.cost,n.observedAt??t(),n.actor),s=yt().push(VP(o));return r=r.then(async()=>{await WP(UP(e.path),{recursive:!0}),await GP(e.path,s,"utf8")}),r},async report(n){await r;let o=Rc(n.from,"report window start"),s=Rc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await KP(e.path),a=new Map;for(let d of i.observations){let c=Date.parse(d.observed_at);if(c<o||c>=s||n.pool!==void 0&&d.pool!==n.pool)continue;let u=`${d.pool}\0${d.operation_key}\0${d.actor??""}`,p=a.get(u);a.set(u,{operation_key:d.operation_key,pool:d.pool,...d.actor===void 0?{}:{actor:d.actor},count:(p?.count??0)+1,cost:(p?.cost??0)+d.cost})}let l=[...a.values()].sort((d,c)=>c.cost-d.cost||c.count-d.count||d.operation_key.localeCompare(c.operation_key)||d.pool.localeCompare(c.pool)||(d.actor??"").localeCompare(c.actor??""));return{version:1,origin:"process-attribution",window:{from:n.from,to:n.to},pool:n.pool??null,total_count:l.reduce((d,c)=>d+c.count,0),total_cost:l.reduce((d,c)=>d+c.cost,0),operations:l,unreadable_records:i.unreadable}}}}function qP(e,t,r,n){if(Rc(r,"GitHub spend observation"),!Number.isSafeInteger(t)||t<0)throw new Error(`GitHub spend observation cost must be a non-negative safe integer; received ${t}`);if(n!==void 0&&n.trim()==="")throw new Error("GitHub spend observation actor must be non-empty when supplied");return{version:1,observed_at:r,operation_key:e.key,pool:e.budget,...n===void 0?{}:{actor:n},cost:t}}async function KP(e){let t;try{t=await HP(e,"utf8")}catch(s){if(YP(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
66
66
|
`);for(let s=0;s<o.length;s+=1){let i=o[s];if(i.trim()==="")continue;let a=o[s+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let l;try{l=Tr(`${i}
|
|
67
67
|
${a}
|
|
68
|
-
`)[0]}catch{n+=1,s+=1;continue}if(!
|
|
68
|
+
`)[0]}catch{n+=1,s+=1;continue}if(!zP(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function VP(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 zP(e){return JP(e)?e.version===1&&typeof e.observed_at=="string"&&Number.isFinite(Date.parse(e.observed_at))&&typeof e.operation_key=="string"&&e.operation_key!==""&&(e.pool==="rest"||e.pool==="graphql"||e.pool==="search")&&(e.actor===void 0||typeof e.actor=="string"&&e.actor!=="")&&typeof e.cost=="number"&&Number.isSafeInteger(e.cost)&&e.cost>=0:!1}function Rc(e,t){let r=Date.parse(e);if(!Number.isFinite(r))throw new Error(`${t} must be an ISO-8601 instant; received ${JSON.stringify(e)}`);return r}function JP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function YP(e){return e instanceof Error&&"code"in e}var Um=nd(Ec(),1);var zr=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let o=Object.assign({},n.request);n.request.headers.authorization&&(o.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=o}};var QP="0.0.0-development";function XP(e){return e.request!==void 0}async function Hm(e,t,r,n){if(!XP(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 ZP(e,t,r,n){let o=new Um.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(eA.bind(null,e,t,r),n)}async function eA(e,t,r,n){let o=await r(n);if(o.data&&o.data.errors&&o.data.errors.length>0&&/Something went wrong while executing your query/.test(o.data.errors[0].message)){let s=new zr(o.data.errors[0].message,500,{request:n,response:o});return Hm(e,t,s,n)}return o}function vc(e,t){let r=Object.assign({enabled:!0,retryAfterBaseValue:1e3,doNotRetry:[400,401,403,404,410,422,451],retries:3},t.retry),n={retry:{retryRequest:(o,s,i)=>(o.request.request=Object.assign({},o.request.request,{retries:s,retryAfter:i}),o)}};return r.enabled&&(e.hook.error("request",Hm.bind(null,r,n)),e.hook.wrap("request",ZP.bind(null,r,n))),n}vc.VERSION=QP;var Km=nd(Ec(),1),tA="0.0.0-development",Sc=()=>Promise.resolve();function rA(e,t,r){return e.retryLimiter.schedule(nA,e,t,r)}async function nA(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=oA(r.method,n),s=!o&&r.method!=="GET"&&r.method!=="HEAD",i=r.method==="GET"&&n.startsWith("/search/"),a=n.startsWith("/graphql"),d=~~t.retryCount>0?{priority:0,weight:0}:{};e.clustering&&(d.expiration=1e3*60),(s||a)&&await e.write.key(e.id).schedule(d,Sc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,Sc),i&&await e.search.key(e.id).schedule(d,Sc);let c=(o?e.auth:e.global).key(e.id).schedule(d,t,r);if(a){let u=await c;if(u.data.errors!=null&&u.data.errors.some(p=>p.type==="RATE_LIMITED"))throw Object.assign(new Error("GraphQL Rate Limit Exceeded"),{response:u,data:u.data})}return c}function oA(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 sA=["/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 iA(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var qm=iA(sA),Vm=qm.test.bind(qm),ar={},aA=function(e,t){ar.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ar.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ar.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ar.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ar.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function va(e,t){let{enabled:r=!0,Bottleneck:n=Km.default,id:o="no-id",timeout:s=1e3*60*2,connection:i}=t.throttle||{};if(!r)return{};let a={timeout:s};typeof i<"u"&&(a.connection=i);let l=Object.assign({clustering:i!=null,triggersNotification:Vm,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
69
69
|
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
70
70
|
See https://octokit.github.io/rest.js/#throttling
|
|
71
71
|
|
|
@@ -75,34 +75,34 @@ ${a}
|
|
|
75
75
|
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
76
76
|
}
|
|
77
77
|
})
|
|
78
|
-
`);let d=!1,c=()=>{if(d)return;d=!0,
|
|
78
|
+
`);let d=!1,c=()=>{if(d)return;d=!0,ar.global==null&&aA(n,a),l.global=l.global??ar.global,l.auth=l.auth??ar.auth,l.search=l.search??ar.search,l.write=l.write??ar.write,l.notifications=l.notifications??ar.notifications,l.retryLimiter=l.retryLimiter??new n;let u={},p=new n.Events(u);u.on("secondary-limit",l.onSecondaryRateLimit),u.on("rate-limit",l.onRateLimit),u.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),l.retryLimiter.on("failed",async function(g,f){let[y,h,R]=f.args,{pathname:T}=new URL(R.url,"http://github.test");if(!(T.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let D=~~h.retryCount;h.retryCount=D,R.request.retryCount=D;let{wantRetry:M,retryAfter:N=0}=await async function(){if(/\bsecondary rate\b/i.test(g.message)){let H=Number(g.response.headers["retry-after"])||y.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",H,R,e,D),retryAfter:H}}if(g.response.headers!=null&&g.response.headers["x-ratelimit-remaining"]==="0"||(g.response.data?.errors??[]).some(H=>H.type==="RATE_LIMITED")){let H=new Date(~~g.response.headers["x-ratelimit-reset"]*1e3).getTime(),G=Math.max(Math.ceil((H-Date.now())/1e3)+1,0);return{wantRetry:await p.trigger("rate-limit",G,R,e,D),retryAfter:G}}return{}}();if(M)return h.retryCount++,N*y.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),rA(l,u,p))),{}}va.VERSION=tA;va.triggersNotification=Vm;function pn(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}function Sa(e,t,r,n){if(typeof r!="function")throw new Error("method for before hook must be a function");return n||(n={}),Array.isArray(t)?t.reverse().reduce((o,s)=>Sa.bind(null,e,s,o,n),r)():Promise.resolve().then(()=>e.registry[t]?e.registry[t].reduce((o,s)=>s.hook.bind(null,o,n),r)():r(n))}function zm(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 Jm(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 Ym=Function.bind,Qm=Ym.bind(Ym);function Xm(e,t,r){let n=Qm(Jm,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]=Qm(zm,null).apply(null,s)})}function lA(){let e=Symbol("Singular"),t={registry:{}},r=Sa.bind(null,t,e);return Xm(r,t,e),r}function dA(){let e={registry:{}},t=Sa.bind(null,e);return Xm(t,e),t}var Zm={Singular:lA,Collection:dA};var cA="0.0.0-development",uA=`octokit-endpoint.js/${cA} ${pn()}`,pA={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":uA},mediaType:{format:""}};function fA(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function gA(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}function rb(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{gA(t[n])?n in e?r[n]=rb(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function eb(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Pc(e,t,r){if(typeof t=="string"){let[o,s]=t.split(" ");r=Object.assign(s?{method:o,url:s}:{url:o},r)}else r=Object.assign({},t);r.headers=fA(r.headers),eb(r),eb(r.headers);let n=rb(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 hA(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 mA=/\{[^{}}]+\}/g;function bA(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function yA(e){let t=e.match(mA);return t?t.map(bA).reduce((r,n)=>r.concat(n),[]):[]}function tb(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function nb(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function Mo(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function js(e,t,r){return t=e==="+"||e==="#"?nb(t):Mo(t),r?Mo(r)+"="+t:t}function Io(e){return e!=null}function Tc(e){return e===";"||e==="&"||e==="?"}function kA(e,t,r,n){var o=e[r],s=[];if(Io(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||typeof o=="boolean")o=o.toString(),n&&n!=="*"&&(o=o.substring(0,parseInt(n,10))),s.push(js(t,o,Tc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Io).forEach(function(i){s.push(js(t,i,Tc(t)?r:""))}):Object.keys(o).forEach(function(i){Io(o[i])&&s.push(js(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Io).forEach(function(a){i.push(js(t,a))}):Object.keys(o).forEach(function(a){Io(o[a])&&(i.push(Mo(a)),i.push(js(t,o[a].toString())))}),Tc(t)?s.push(Mo(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Io(o)&&s.push(Mo(r)):o===""&&(t==="&"||t==="?")?s.push(Mo(r)+"="):o===""&&s.push("");return s}function wA(e){return{expand:RA.bind(null,e)}}function RA(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(kA(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 nb(s)}),e==="/"?e:e.replace(/\/$/,"")}function ob(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=tb(e,["method","baseUrl","url","headers","request","mediaType"]),i=yA(r);r=wA(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=tb(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=hA(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 _A(e,t,r){return ob(Pc(e,t,r))}function sb(e,t){let r=Pc(e,t),n=_A.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:sb.bind(null,r),merge:Pc.bind(null,r),parse:ob})}var ib=sb(null,pA);var Eb=nd(fb(),1);var OA=/^-?\d+$/,Aa=/^-?\d+n+$/,fn=JSON.stringify,Oc=JSON.parse,yb=/^-?\d+n$/,gb=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,hb=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,Fc=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Ic=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",FA=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let o=typeof t=="function",s=Array.isArray(t)?new Set(t.map(String)):null,i=(f,y,h)=>(h!==null&&typeof h=="object"&&typeof h.toJSON=="function"&&(h=h.toJSON(y)),typeof h=="string"&&Aa.test(h)?h+"n":typeof h=="bigint"?"rawJSON"in JSON?JSON.rawJSON(h.toString()):h.toString()+"n":(o&&(h=t.call(f,y,h)),h!==null&&typeof h=="object"&&(h instanceof Number||h instanceof String||h instanceof Boolean)&&(h=h.valueOf()),h)),a=i({"":e},"",e);if(Fc(a))return;let l=a===null||typeof a!="object",d=Ic(a);if(l||d)return fn(a);let c=[],u=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(c.push(f.isArray?"[":"{"),u++);let y=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
|
|
79
79
|
`+n.repeat(u));let h=f.val[f.index],R=i(f.val,String(f.index),h);if(Fc(R))c.push("null"),f.first=!1,f.index++;else{let T=R!==null&&typeof R=="object",$=Ic(R);if(T&&!$){if(g.has(R))throw new TypeError("Converting circular structure to JSON");g.add(R),p.push({parent:f.val,key:String(f.index),val:R,isArray:Array.isArray(R),keys:Array.isArray(R)?null:Object.keys(R),index:0,first:!0}),f.first=!1,f.index++}else c.push(fn(R)),f.first=!1,f.index++}}else y=!0;else{for(;f.index<f.keys.length;){let R=f.keys[f.index++];if(s&&!s.has(R))continue;let $=f.val[R],D=i(f.val,R,$);if(Fc(D))continue;f.first||c.push(","),n?c.push(`
|
|
80
80
|
`+n.repeat(u)+fn(R)+": "):c.push(fn(R)+":");let M=D!==null&&typeof D=="object",N=Ic(D);if(M&&!N){if(g.has(D))throw new TypeError("Converting circular structure to JSON");g.add(D),p.push({parent:f.val,key:R,val:D,isArray:Array.isArray(D),keys:Array.isArray(D)?null:Object.keys(D),index:0,first:!0}),f.first=!1;break}else c.push(fn(D)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(y=!0)}y&&(u--,!f.first&&n&&c.push(`
|
|
81
|
-
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},
|
|
81
|
+
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},kb=(e,t,r)=>{try{return"rawJSON"in JSON?fn(e,(a,l)=>typeof l=="bigint"?JSON.rawJSON(l.toString()):typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r):e?fn(e,(a,l)=>typeof l=="string"&&Aa.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(gb,"$1$2$3").replace(hb,"$1$2$3"):fn(e,t,r)}catch(n){if(n instanceof RangeError){let o=FA(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(gb,"$1$2$3").replace(hb,"$1$2$3")}throw n}},Pa=new Map,IA=()=>{let e=JSON.parse.toString();if(Pa.has(e))return Pa.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return Pa.set(e,t),t}catch{return Pa.set(e,!1),!1}},MA=(e,t,r,n)=>typeof t=="string"&&yb.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&Aa.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,LA=(e,t)=>JSON.parse(e,(r,n,o)=>{let s=typeof n=="number",i=n>Number.MAX_SAFE_INTEGER||n<Number.MIN_SAFE_INTEGER,a=s&&i,l=o&&OA.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),wb=Number.MAX_SAFE_INTEGER.toString(),mb=wb.length,jA=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,BA=/^"-?\d+n+"$/,$A=(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"&&(yb.test(a)?a=BigInt(a.slice(0,-1)):Aa.test(a)&&(a=a.slice(0,-1))),typeof t=="function"&&(a=t.call(s,i,a)),a===void 0?delete s[i]:s[i]=a,n.pop()}else{o.visited=!0;let s=o.parent[o.key];if(s!==null&&typeof s=="object"){let a=Object.keys(s);for(let l=a.length-1;l>=0;l--)n.push({parent:s,key:a[l],visited:!1})}}}return r[""]},bb=e=>e.replace(jA,(t,r,n,o)=>{let s=t[0]==='"';if(s&&BA.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<mb||r.length===mb&&r<=wb);return s||a||l?t:'"'+t+'n"'}),Rb=(e,t)=>{if(!e)return Oc(e,t);try{if(IA())return LA(e,t);let r=bb(e);return Oc(r,(n,o,s)=>MA(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=bb(e),o=Oc(n);return $A(o,t)}throw r}};var NA="10.0.13",GA={headers:{"user-agent":`octokit-request.js/${NA} ${pn()}`}};function WA(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 _b=()=>"";async function xb(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=WA(e.body)||Array.isArray(e.body)?kb(e.body):e.body,s=Object.fromEntries(Object.entries(e.headers).map(([u,p])=>[u,String(p)])),i;try{i=await t(e.url,{method:e.method,body:o,redirect:e.request?.redirect,headers:s,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(u){let p="Unknown Error";if(u instanceof Error){if(u.name==="AbortError")throw u.status=500,u;p=u.message,u.name==="TypeError"&&"cause"in u&&(u.cause instanceof Error?p=u.cause.message:typeof u.cause=="string"&&(p=u.cause))}let g=new zr(p,500,{request:e});throw g.cause=u,g}let a=i.status,l=i.url,d={};for(let[u,p]of i.headers)d[u]=p;let c={url:l,status:a,headers:d,data:""};if("deprecation"in d){let u=d.link&&d.link.match(/<([^<>]+)>; rel="deprecation"/),p=u&&u.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${d.sunset}${p?`. See ${p}`:""}`)}if(a===204||a===205)return c;if(e.method==="HEAD"){if(a<400)return c;throw new zr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Mc(i),new zr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Mc(i),new zr(UA(c.data),a,{response:c,request:e});return c.data=n?await Mc(i):i.body,c}async function Mc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(_b);let r=(0,Eb.parse)(t);if(HA(r)){let n="";try{return n=await e.text(),Rb(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(_b):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function HA(e){return e.type==="application/json"||e.type==="application/scim+json"}function UA(e){if(typeof e=="string")return e;if(e instanceof ArrayBuffer)return"Unknown error";if(typeof e=="object"&&e!==null&&"message"in e){let t=e,r="documentation_url"in t?` - ${t.documentation_url}`:"";return Array.isArray(t.errors)?`${t.message}: ${t.errors.map(n=>JSON.stringify(n)).join(", ")}${r}`:`${t.message}${r}`}return`Unknown error: ${JSON.stringify(e)}`}function Lc(e,t){let r=e.defaults(t);return Object.assign(function(o,s){let i=r.merge(o,s);if(!i.request||!i.request.hook)return xb(r.parse(i));let a=(l,d)=>xb(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:Lc.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:Lc.bind(null,r)})}var Bs=Lc(ib,GA);var qA="0.0.0-development";function KA(e){return`Request failed due to following response errors:
|
|
82
82
|
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
83
|
-
`)}var UA=class extends Error{constructor(e,t,r){super(HA(r)),this.request=e,this.headers=t,this.response=r,this.errors=r.errors,this.data=r.data,Error.captureStackTrace&&Error.captureStackTrace(this,this.constructor)}request;headers;response;name="GraphqlResponseError";errors;data},qA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],KA=["query","method","url"],xb=/\/api\/v3\/?$/;function VA(e,t,r){if(r){if(typeof t=="string"&&"query"in r)return Promise.reject(new Error('[@octokit/graphql] "query" cannot be used as variable name'));for(let i in r)if(KA.includes(i))return Promise.reject(new Error(`[@octokit/graphql] "${i}" cannot be used as variable name`))}let n=typeof t=="string"?Object.assign({query:t},r):t,o=Object.keys(n).reduce((i,a)=>qA.includes(a)?(i[a]=n[a],i):(i.variables||(i.variables={}),i.variables[a]=n[a],i),{}),s=n.baseUrl||e.endpoint.DEFAULTS.baseUrl;return xb.test(s)&&(o.url=s.replace(xb,"/api/graphql")),e(o).then(i=>{if(i.data.errors){let a={};for(let l of Object.keys(i.headers))a[l]=i.headers[l];throw new UA(o,a,i.data)}return i.data.data})}function jc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>VA(r,o,s),{defaults:jc.bind(null,r),endpoint:r.endpoint})}var qG=jc(Bs,{headers:{"user-agent":`octokit-graphql.js/${WA} ${pn()}`},method:"POST",url:"/graphql"});function Eb(e){return jc(e,{method:"POST",url:"/graphql"})}var Bc="(?:[a-zA-Z0-9_-]+)",vb="\\.",Sb=new RegExp(`^${Bc}${vb}${Bc}${vb}${Bc}$`),zA=Sb.test.bind(Sb);async function JA(e){let t=zA(e),r=e.startsWith("v1.")||e.startsWith("ghs_"),n=e.startsWith("ghu_");return{type:"token",token:e,tokenType:t?"app":r?"installation":n?"user-to-server":"oauth"}}function YA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function QA(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=YA(e),t(o)}var Tb=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(JA.bind(null,t),{hook:QA.bind(null,t)})};var $c="7.0.7";var Pb=()=>{},XA=console.warn.bind(console),ZA=console.error.bind(console);function eC(e={}){return typeof e.debug!="function"&&(e.debug=Pb),typeof e.info!="function"&&(e.info=Pb),typeof e.warn!="function"&&(e.warn=XA),typeof e.error!="function"&&(e.error=ZA),e}var Ab=`octokit-core.js/${$c} ${pn()}`,Ca=class{static VERSION=$c;static defaults(t){return class extends this{constructor(...n){let o=n[0]||{};if(typeof t=="function"){super(t(o));return}super(Object.assign({},t,o,o.userAgent&&t.userAgent?{userAgent:`${o.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(o=>!r.includes(o)))}}constructor(t={}){let r=new Qm.Collection,n={baseUrl:Bs.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${Ab}`:Ab,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Bs.defaults(n),this.graphql=Eb(this.request).defaults(n),this.log=eC(t.log),this.hook=r,t.authStrategy){let{authStrategy:s,...i}=t,a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=Tb(t.auth);r.wrap("request",s.hook),this.auth=s}let o=this.constructor;for(let s=0;s<o.plugins.length;++s)Object.assign(this,o.plugins[s](this,t))}request;graphql;log;hook;auth};var Cb="6.0.0";function Nc(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),o=e.request.endpoint.parse(r),s=o.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}Nc.VERSION=Cb;var tC="0.0.0-development";function rC(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,o=e.data.total_count,s=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=o,e.data.total_commits=s,e}function Gc(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),o=typeof t=="function"?t:e.request,s=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let l=await o({method:s,url:a,headers:i}),d=rC(l);if(a=((d.headers.link||"").match(/<([^<>]+)>;\s*rel="next"/)||[])[1],!a&&"total_commits"in d.data){let c=new URL(d.url),u=c.searchParams,p=parseInt(u.get("page")||"1",10),g=parseInt(u.get("per_page")||"250",10);p*g<d.data.total_commits&&(u.set("page",String(p+1)),a=c.toString())}return{value:d}}catch(l){if(l.status!==409)throw l;return a="",{value:{status:200,headers:{},data:[]}}}}})}}function Db(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Ob(e,[],Gc(e,t,r)[Symbol.asyncIterator](),n)}function Ob(e,t,r,n){return r.next().then(o=>{if(o.done)return t;let s=!1;function i(){s=!0}return t=t.concat(n?n(o.value,i):o.value.data),s?t:Ob(e,t,r,n)})}var l5=Object.assign(Db,{iterator:Gc});function Wc(e){return{paginate:Object.assign(Db.bind(null,e),{iterator:Gc.bind(null,e)})}}Wc.VERSION=tC;var Hc="17.0.0";var nC={actions:{addCustomLabelsToSelfHostedRunnerForOrg:["POST /orgs/{org}/actions/runners/{runner_id}/labels"],addCustomLabelsToSelfHostedRunnerForRepo:["POST /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],addRepoAccessToSelfHostedRunnerGroupInOrg:["PUT /orgs/{org}/actions/runner-groups/{runner_group_id}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],approveWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/approve"],cancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/cancel"],createEnvironmentVariable:["POST /repos/{owner}/{repo}/environments/{environment_name}/variables"],createHostedRunnerForOrg:["POST /orgs/{org}/actions/hosted-runners"],createOrUpdateEnvironmentSecret:["PUT /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/actions/secrets/{secret_name}"],createOrgVariable:["POST /orgs/{org}/actions/variables"],createRegistrationTokenForOrg:["POST /orgs/{org}/actions/runners/registration-token"],createRegistrationTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/registration-token"],createRemoveTokenForOrg:["POST /orgs/{org}/actions/runners/remove-token"],createRemoveTokenForRepo:["POST /repos/{owner}/{repo}/actions/runners/remove-token"],createRepoVariable:["POST /repos/{owner}/{repo}/actions/variables"],createWorkflowDispatch:["POST /repos/{owner}/{repo}/actions/workflows/{workflow_id}/dispatches"],deleteActionsCacheById:["DELETE /repos/{owner}/{repo}/actions/caches/{cache_id}"],deleteActionsCacheByKey:["DELETE /repos/{owner}/{repo}/actions/caches{?key,ref}"],deleteArtifact:["DELETE /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],deleteCustomImageFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],deleteCustomImageVersionFromOrg:["DELETE /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],deleteEnvironmentSecret:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],deleteEnvironmentVariable:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],deleteHostedRunnerForOrg:["DELETE /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],deleteOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}"],deleteOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/actions/secrets/{secret_name}"],deleteRepoVariable:["DELETE /repos/{owner}/{repo}/actions/variables/{name}"],deleteSelfHostedRunnerFromOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}"],deleteSelfHostedRunnerFromRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}"],deleteWorkflowRun:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}"],deleteWorkflowRunLogs:["DELETE /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],disableSelectedRepositoryGithubActionsOrganization:["DELETE /orgs/{org}/actions/permissions/repositories/{repository_id}"],disableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/disable"],downloadArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}"],downloadJobLogsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}/logs"],downloadWorkflowRunAttemptLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/logs"],downloadWorkflowRunLogs:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/logs"],enableSelectedRepositoryGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories/{repository_id}"],enableWorkflow:["PUT /repos/{owner}/{repo}/actions/workflows/{workflow_id}/enable"],forceCancelWorkflowRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/force-cancel"],generateRunnerJitconfigForOrg:["POST /orgs/{org}/actions/runners/generate-jitconfig"],generateRunnerJitconfigForRepo:["POST /repos/{owner}/{repo}/actions/runners/generate-jitconfig"],getActionsCacheList:["GET /repos/{owner}/{repo}/actions/caches"],getActionsCacheUsage:["GET /repos/{owner}/{repo}/actions/cache/usage"],getActionsCacheUsageByRepoForOrg:["GET /orgs/{org}/actions/cache/usage-by-repository"],getActionsCacheUsageForOrg:["GET /orgs/{org}/actions/cache/usage"],getAllowedActionsOrganization:["GET /orgs/{org}/actions/permissions/selected-actions"],getAllowedActionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/selected-actions"],getArtifact:["GET /repos/{owner}/{repo}/actions/artifacts/{artifact_id}"],getCustomImageForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}"],getCustomImageVersionForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions/{version}"],getCustomOidcSubClaimForRepo:["GET /repos/{owner}/{repo}/actions/oidc/customization/sub"],getEnvironmentPublicKey:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/public-key"],getEnvironmentSecret:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets/{secret_name}"],getEnvironmentVariable:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],getGithubActionsDefaultWorkflowPermissionsOrganization:["GET /orgs/{org}/actions/permissions/workflow"],getGithubActionsDefaultWorkflowPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions/workflow"],getGithubActionsPermissionsOrganization:["GET /orgs/{org}/actions/permissions"],getGithubActionsPermissionsRepository:["GET /repos/{owner}/{repo}/actions/permissions"],getHostedRunnerForOrg:["GET /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],getHostedRunnersGithubOwnedImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/github-owned"],getHostedRunnersLimitsForOrg:["GET /orgs/{org}/actions/hosted-runners/limits"],getHostedRunnersMachineSpecsForOrg:["GET /orgs/{org}/actions/hosted-runners/machine-sizes"],getHostedRunnersPartnerImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/partner"],getHostedRunnersPlatformsForOrg:["GET /orgs/{org}/actions/hosted-runners/platforms"],getJobForWorkflowRun:["GET /repos/{owner}/{repo}/actions/jobs/{job_id}"],getOrgPublicKey:["GET /orgs/{org}/actions/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}"],getOrgVariable:["GET /orgs/{org}/actions/variables/{name}"],getPendingDeploymentsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],getRepoPermissions:["GET /repos/{owner}/{repo}/actions/permissions",{},{renamed:["actions","getGithubActionsPermissionsRepository"]}],getRepoPublicKey:["GET /repos/{owner}/{repo}/actions/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/actions/secrets/{secret_name}"],getRepoVariable:["GET /repos/{owner}/{repo}/actions/variables/{name}"],getReviewsForRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/approvals"],getSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}"],getSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}"],getWorkflow:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}"],getWorkflowAccessToRepository:["GET /repos/{owner}/{repo}/actions/permissions/access"],getWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}"],getWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}"],getWorkflowRunUsage:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/timing"],getWorkflowUsage:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/timing"],listArtifactsForRepo:["GET /repos/{owner}/{repo}/actions/artifacts"],listCustomImageVersionsForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom/{image_definition_id}/versions"],listCustomImagesForOrg:["GET /orgs/{org}/actions/hosted-runners/images/custom"],listEnvironmentSecrets:["GET /repos/{owner}/{repo}/environments/{environment_name}/secrets"],listEnvironmentVariables:["GET /repos/{owner}/{repo}/environments/{environment_name}/variables"],listGithubHostedRunnersInGroupForOrg:["GET /orgs/{org}/actions/runner-groups/{runner_group_id}/hosted-runners"],listHostedRunnersForOrg:["GET /orgs/{org}/actions/hosted-runners"],listJobsForWorkflowRun:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/jobs"],listJobsForWorkflowRunAttempt:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/attempts/{attempt_number}/jobs"],listLabelsForSelfHostedRunnerForOrg:["GET /orgs/{org}/actions/runners/{runner_id}/labels"],listLabelsForSelfHostedRunnerForRepo:["GET /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],listOrgSecrets:["GET /orgs/{org}/actions/secrets"],listOrgVariables:["GET /orgs/{org}/actions/variables"],listRepoOrganizationSecrets:["GET /repos/{owner}/{repo}/actions/organization-secrets"],listRepoOrganizationVariables:["GET /repos/{owner}/{repo}/actions/organization-variables"],listRepoSecrets:["GET /repos/{owner}/{repo}/actions/secrets"],listRepoVariables:["GET /repos/{owner}/{repo}/actions/variables"],listRepoWorkflows:["GET /repos/{owner}/{repo}/actions/workflows"],listRunnerApplicationsForOrg:["GET /orgs/{org}/actions/runners/downloads"],listRunnerApplicationsForRepo:["GET /repos/{owner}/{repo}/actions/runners/downloads"],listSelectedReposForOrgSecret:["GET /orgs/{org}/actions/secrets/{secret_name}/repositories"],listSelectedReposForOrgVariable:["GET /orgs/{org}/actions/variables/{name}/repositories"],listSelectedRepositoriesEnabledGithubActionsOrganization:["GET /orgs/{org}/actions/permissions/repositories"],listSelfHostedRunnersForOrg:["GET /orgs/{org}/actions/runners"],listSelfHostedRunnersForRepo:["GET /repos/{owner}/{repo}/actions/runners"],listWorkflowRunArtifacts:["GET /repos/{owner}/{repo}/actions/runs/{run_id}/artifacts"],listWorkflowRuns:["GET /repos/{owner}/{repo}/actions/workflows/{workflow_id}/runs"],listWorkflowRunsForRepo:["GET /repos/{owner}/{repo}/actions/runs"],reRunJobForWorkflowRun:["POST /repos/{owner}/{repo}/actions/jobs/{job_id}/rerun"],reRunWorkflow:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun"],reRunWorkflowFailedJobs:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/rerun-failed-jobs"],removeAllCustomLabelsFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels"],removeAllCustomLabelsFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],removeCustomLabelFromSelfHostedRunnerForOrg:["DELETE /orgs/{org}/actions/runners/{runner_id}/labels/{name}"],removeCustomLabelFromSelfHostedRunnerForRepo:["DELETE /repos/{owner}/{repo}/actions/runners/{runner_id}/labels/{name}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/actions/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgVariable:["DELETE /orgs/{org}/actions/variables/{name}/repositories/{repository_id}"],reviewCustomGatesForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/deployment_protection_rule"],reviewPendingDeploymentsForRun:["POST /repos/{owner}/{repo}/actions/runs/{run_id}/pending_deployments"],setAllowedActionsOrganization:["PUT /orgs/{org}/actions/permissions/selected-actions"],setAllowedActionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/selected-actions"],setCustomLabelsForSelfHostedRunnerForOrg:["PUT /orgs/{org}/actions/runners/{runner_id}/labels"],setCustomLabelsForSelfHostedRunnerForRepo:["PUT /repos/{owner}/{repo}/actions/runners/{runner_id}/labels"],setCustomOidcSubClaimForRepo:["PUT /repos/{owner}/{repo}/actions/oidc/customization/sub"],setGithubActionsDefaultWorkflowPermissionsOrganization:["PUT /orgs/{org}/actions/permissions/workflow"],setGithubActionsDefaultWorkflowPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions/workflow"],setGithubActionsPermissionsOrganization:["PUT /orgs/{org}/actions/permissions"],setGithubActionsPermissionsRepository:["PUT /repos/{owner}/{repo}/actions/permissions"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/actions/secrets/{secret_name}/repositories"],setSelectedReposForOrgVariable:["PUT /orgs/{org}/actions/variables/{name}/repositories"],setSelectedRepositoriesEnabledGithubActionsOrganization:["PUT /orgs/{org}/actions/permissions/repositories"],setWorkflowAccessToRepository:["PUT /repos/{owner}/{repo}/actions/permissions/access"],updateEnvironmentVariable:["PATCH /repos/{owner}/{repo}/environments/{environment_name}/variables/{name}"],updateHostedRunnerForOrg:["PATCH /orgs/{org}/actions/hosted-runners/{hosted_runner_id}"],updateOrgVariable:["PATCH /orgs/{org}/actions/variables/{name}"],updateRepoVariable:["PATCH /repos/{owner}/{repo}/actions/variables/{name}"]},activity:{checkRepoIsStarredByAuthenticatedUser:["GET /user/starred/{owner}/{repo}"],deleteRepoSubscription:["DELETE /repos/{owner}/{repo}/subscription"],deleteThreadSubscription:["DELETE /notifications/threads/{thread_id}/subscription"],getFeeds:["GET /feeds"],getRepoSubscription:["GET /repos/{owner}/{repo}/subscription"],getThread:["GET /notifications/threads/{thread_id}"],getThreadSubscriptionForAuthenticatedUser:["GET /notifications/threads/{thread_id}/subscription"],listEventsForAuthenticatedUser:["GET /users/{username}/events"],listNotificationsForAuthenticatedUser:["GET /notifications"],listOrgEventsForAuthenticatedUser:["GET /users/{username}/events/orgs/{org}"],listPublicEvents:["GET /events"],listPublicEventsForRepoNetwork:["GET /networks/{owner}/{repo}/events"],listPublicEventsForUser:["GET /users/{username}/events/public"],listPublicOrgEvents:["GET /orgs/{org}/events"],listReceivedEventsForUser:["GET /users/{username}/received_events"],listReceivedPublicEventsForUser:["GET /users/{username}/received_events/public"],listRepoEvents:["GET /repos/{owner}/{repo}/events"],listRepoNotificationsForAuthenticatedUser:["GET /repos/{owner}/{repo}/notifications"],listReposStarredByAuthenticatedUser:["GET /user/starred"],listReposStarredByUser:["GET /users/{username}/starred"],listReposWatchedByUser:["GET /users/{username}/subscriptions"],listStargazersForRepo:["GET /repos/{owner}/{repo}/stargazers"],listWatchedReposForAuthenticatedUser:["GET /user/subscriptions"],listWatchersForRepo:["GET /repos/{owner}/{repo}/subscribers"],markNotificationsAsRead:["PUT /notifications"],markRepoNotificationsAsRead:["PUT /repos/{owner}/{repo}/notifications"],markThreadAsDone:["DELETE /notifications/threads/{thread_id}"],markThreadAsRead:["PATCH /notifications/threads/{thread_id}"],setRepoSubscription:["PUT /repos/{owner}/{repo}/subscription"],setThreadSubscription:["PUT /notifications/threads/{thread_id}/subscription"],starRepoForAuthenticatedUser:["PUT /user/starred/{owner}/{repo}"],unstarRepoForAuthenticatedUser:["DELETE /user/starred/{owner}/{repo}"]},apps:{addRepoToInstallation:["PUT /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","addRepoToInstallationForAuthenticatedUser"]}],addRepoToInstallationForAuthenticatedUser:["PUT /user/installations/{installation_id}/repositories/{repository_id}"],checkToken:["POST /applications/{client_id}/token"],createFromManifest:["POST /app-manifests/{code}/conversions"],createInstallationAccessToken:["POST /app/installations/{installation_id}/access_tokens"],deleteAuthorization:["DELETE /applications/{client_id}/grant"],deleteInstallation:["DELETE /app/installations/{installation_id}"],deleteToken:["DELETE /applications/{client_id}/token"],getAuthenticated:["GET /app"],getBySlug:["GET /apps/{app_slug}"],getInstallation:["GET /app/installations/{installation_id}"],getOrgInstallation:["GET /orgs/{org}/installation"],getRepoInstallation:["GET /repos/{owner}/{repo}/installation"],getSubscriptionPlanForAccount:["GET /marketplace_listing/accounts/{account_id}"],getSubscriptionPlanForAccountStubbed:["GET /marketplace_listing/stubbed/accounts/{account_id}"],getUserInstallation:["GET /users/{username}/installation"],getWebhookConfigForApp:["GET /app/hook/config"],getWebhookDelivery:["GET /app/hook/deliveries/{delivery_id}"],listAccountsForPlan:["GET /marketplace_listing/plans/{plan_id}/accounts"],listAccountsForPlanStubbed:["GET /marketplace_listing/stubbed/plans/{plan_id}/accounts"],listInstallationReposForAuthenticatedUser:["GET /user/installations/{installation_id}/repositories"],listInstallationRequestsForAuthenticatedApp:["GET /app/installation-requests"],listInstallations:["GET /app/installations"],listInstallationsForAuthenticatedUser:["GET /user/installations"],listPlans:["GET /marketplace_listing/plans"],listPlansStubbed:["GET /marketplace_listing/stubbed/plans"],listReposAccessibleToInstallation:["GET /installation/repositories"],listSubscriptionsForAuthenticatedUser:["GET /user/marketplace_purchases"],listSubscriptionsForAuthenticatedUserStubbed:["GET /user/marketplace_purchases/stubbed"],listWebhookDeliveries:["GET /app/hook/deliveries"],redeliverWebhookDelivery:["POST /app/hook/deliveries/{delivery_id}/attempts"],removeRepoFromInstallation:["DELETE /user/installations/{installation_id}/repositories/{repository_id}",{},{renamed:["apps","removeRepoFromInstallationForAuthenticatedUser"]}],removeRepoFromInstallationForAuthenticatedUser:["DELETE /user/installations/{installation_id}/repositories/{repository_id}"],resetToken:["PATCH /applications/{client_id}/token"],revokeInstallationAccessToken:["DELETE /installation/token"],scopeToken:["POST /applications/{client_id}/token/scoped"],suspendInstallation:["PUT /app/installations/{installation_id}/suspended"],unsuspendInstallation:["DELETE /app/installations/{installation_id}/suspended"],updateWebhookConfigForApp:["PATCH /app/hook/config"]},billing:{getGithubActionsBillingOrg:["GET /orgs/{org}/settings/billing/actions"],getGithubActionsBillingUser:["GET /users/{username}/settings/billing/actions"],getGithubBillingPremiumRequestUsageReportOrg:["GET /organizations/{org}/settings/billing/premium_request/usage"],getGithubBillingPremiumRequestUsageReportUser:["GET /users/{username}/settings/billing/premium_request/usage"],getGithubBillingUsageReportOrg:["GET /organizations/{org}/settings/billing/usage"],getGithubBillingUsageReportUser:["GET /users/{username}/settings/billing/usage"],getGithubPackagesBillingOrg:["GET /orgs/{org}/settings/billing/packages"],getGithubPackagesBillingUser:["GET /users/{username}/settings/billing/packages"],getSharedStorageBillingOrg:["GET /orgs/{org}/settings/billing/shared-storage"],getSharedStorageBillingUser:["GET /users/{username}/settings/billing/shared-storage"]},campaigns:{createCampaign:["POST /orgs/{org}/campaigns"],deleteCampaign:["DELETE /orgs/{org}/campaigns/{campaign_number}"],getCampaignSummary:["GET /orgs/{org}/campaigns/{campaign_number}"],listOrgCampaigns:["GET /orgs/{org}/campaigns"],updateCampaign:["PATCH /orgs/{org}/campaigns/{campaign_number}"]},checks:{create:["POST /repos/{owner}/{repo}/check-runs"],createSuite:["POST /repos/{owner}/{repo}/check-suites"],get:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}"],getSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}"],listAnnotations:["GET /repos/{owner}/{repo}/check-runs/{check_run_id}/annotations"],listForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-runs"],listForSuite:["GET /repos/{owner}/{repo}/check-suites/{check_suite_id}/check-runs"],listSuitesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/check-suites"],rerequestRun:["POST /repos/{owner}/{repo}/check-runs/{check_run_id}/rerequest"],rerequestSuite:["POST /repos/{owner}/{repo}/check-suites/{check_suite_id}/rerequest"],setSuitesPreferences:["PATCH /repos/{owner}/{repo}/check-suites/preferences"],update:["PATCH /repos/{owner}/{repo}/check-runs/{check_run_id}"]},codeScanning:{commitAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix/commits"],createAutofix:["POST /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],createVariantAnalysis:["POST /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses"],deleteAnalysis:["DELETE /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}{?confirm_delete}"],deleteCodeqlDatabase:["DELETE /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getAlert:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}",{},{renamedParameters:{alert_id:"alert_number"}}],getAnalysis:["GET /repos/{owner}/{repo}/code-scanning/analyses/{analysis_id}"],getAutofix:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/autofix"],getCodeqlDatabase:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases/{language}"],getDefaultSetup:["GET /repos/{owner}/{repo}/code-scanning/default-setup"],getSarif:["GET /repos/{owner}/{repo}/code-scanning/sarifs/{sarif_id}"],getVariantAnalysis:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}"],getVariantAnalysisRepoTask:["GET /repos/{owner}/{repo}/code-scanning/codeql/variant-analyses/{codeql_variant_analysis_id}/repos/{repo_owner}/{repo_name}"],listAlertInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances"],listAlertsForOrg:["GET /orgs/{org}/code-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/code-scanning/alerts"],listAlertsInstances:["GET /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}/instances",{},{renamed:["codeScanning","listAlertInstances"]}],listCodeqlDatabases:["GET /repos/{owner}/{repo}/code-scanning/codeql/databases"],listRecentAnalyses:["GET /repos/{owner}/{repo}/code-scanning/analyses"],updateAlert:["PATCH /repos/{owner}/{repo}/code-scanning/alerts/{alert_number}"],updateDefaultSetup:["PATCH /repos/{owner}/{repo}/code-scanning/default-setup"],uploadSarif:["POST /repos/{owner}/{repo}/code-scanning/sarifs"]},codeSecurity:{attachConfiguration:["POST /orgs/{org}/code-security/configurations/{configuration_id}/attach"],attachEnterpriseConfiguration:["POST /enterprises/{enterprise}/code-security/configurations/{configuration_id}/attach"],createConfiguration:["POST /orgs/{org}/code-security/configurations"],createConfigurationForEnterprise:["POST /enterprises/{enterprise}/code-security/configurations"],deleteConfiguration:["DELETE /orgs/{org}/code-security/configurations/{configuration_id}"],deleteConfigurationForEnterprise:["DELETE /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],detachConfiguration:["DELETE /orgs/{org}/code-security/configurations/detach"],getConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}"],getConfigurationForRepository:["GET /repos/{owner}/{repo}/code-security-configuration"],getConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations"],getConfigurationsForOrg:["GET /orgs/{org}/code-security/configurations"],getDefaultConfigurations:["GET /orgs/{org}/code-security/configurations/defaults"],getDefaultConfigurationsForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/defaults"],getRepositoriesForConfiguration:["GET /orgs/{org}/code-security/configurations/{configuration_id}/repositories"],getRepositoriesForEnterpriseConfiguration:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}/repositories"],getSingleConfigurationForEnterprise:["GET /enterprises/{enterprise}/code-security/configurations/{configuration_id}"],setConfigurationAsDefault:["PUT /orgs/{org}/code-security/configurations/{configuration_id}/defaults"],setConfigurationAsDefaultForEnterprise:["PUT /enterprises/{enterprise}/code-security/configurations/{configuration_id}/defaults"],updateConfiguration:["PATCH /orgs/{org}/code-security/configurations/{configuration_id}"],updateEnterpriseConfiguration:["PATCH /enterprises/{enterprise}/code-security/configurations/{configuration_id}"]},codesOfConduct:{getAllCodesOfConduct:["GET /codes_of_conduct"],getConductCode:["GET /codes_of_conduct/{key}"]},codespaces:{addRepositoryForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],addSelectedRepoToOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],checkPermissionsForDevcontainer:["GET /repos/{owner}/{repo}/codespaces/permissions_check"],codespaceMachinesForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/machines"],createForAuthenticatedUser:["POST /user/codespaces"],createOrUpdateOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],createOrUpdateSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}"],createWithPrForAuthenticatedUser:["POST /repos/{owner}/{repo}/pulls/{pull_number}/codespaces"],createWithRepoForAuthenticatedUser:["POST /repos/{owner}/{repo}/codespaces"],deleteForAuthenticatedUser:["DELETE /user/codespaces/{codespace_name}"],deleteFromOrganization:["DELETE /orgs/{org}/members/{username}/codespaces/{codespace_name}"],deleteOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],deleteSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}"],exportForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/exports"],getCodespacesForUserInOrg:["GET /orgs/{org}/members/{username}/codespaces"],getExportDetailsForAuthenticatedUser:["GET /user/codespaces/{codespace_name}/exports/{export_id}"],getForAuthenticatedUser:["GET /user/codespaces/{codespace_name}"],getOrgPublicKey:["GET /orgs/{org}/codespaces/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}"],getPublicKeyForAuthenticatedUser:["GET /user/codespaces/secrets/public-key"],getRepoPublicKey:["GET /repos/{owner}/{repo}/codespaces/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/codespaces/secrets/{secret_name}"],getSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}"],listDevcontainersInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/devcontainers"],listForAuthenticatedUser:["GET /user/codespaces"],listInOrganization:["GET /orgs/{org}/codespaces",{},{renamedParameters:{org_id:"org"}}],listInRepositoryForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces"],listOrgSecrets:["GET /orgs/{org}/codespaces/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/codespaces/secrets"],listRepositoriesForSecretForAuthenticatedUser:["GET /user/codespaces/secrets/{secret_name}/repositories"],listSecretsForAuthenticatedUser:["GET /user/codespaces/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],preFlightWithRepoForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/new"],publishForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/publish"],removeRepositoryForSecretForAuthenticatedUser:["DELETE /user/codespaces/secrets/{secret_name}/repositories/{repository_id}"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/codespaces/secrets/{secret_name}/repositories/{repository_id}"],repoMachinesForAuthenticatedUser:["GET /repos/{owner}/{repo}/codespaces/machines"],setRepositoriesForSecretForAuthenticatedUser:["PUT /user/codespaces/secrets/{secret_name}/repositories"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/codespaces/secrets/{secret_name}/repositories"],startForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/start"],stopForAuthenticatedUser:["POST /user/codespaces/{codespace_name}/stop"],stopInOrganization:["POST /orgs/{org}/members/{username}/codespaces/{codespace_name}/stop"],updateForAuthenticatedUser:["PATCH /user/codespaces/{codespace_name}"]},copilot:{addCopilotSeatsForTeams:["POST /orgs/{org}/copilot/billing/selected_teams"],addCopilotSeatsForUsers:["POST /orgs/{org}/copilot/billing/selected_users"],cancelCopilotSeatAssignmentForTeams:["DELETE /orgs/{org}/copilot/billing/selected_teams"],cancelCopilotSeatAssignmentForUsers:["DELETE /orgs/{org}/copilot/billing/selected_users"],copilotMetricsForOrganization:["GET /orgs/{org}/copilot/metrics"],copilotMetricsForTeam:["GET /orgs/{org}/team/{team_slug}/copilot/metrics"],getCopilotOrganizationDetails:["GET /orgs/{org}/copilot/billing"],getCopilotSeatDetailsForUser:["GET /orgs/{org}/members/{username}/copilot"],listCopilotSeats:["GET /orgs/{org}/copilot/billing/seats"]},credentials:{revoke:["POST /credentials/revoke"]},dependabot:{addSelectedRepoToOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],createOrUpdateOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}"],createOrUpdateRepoSecret:["PUT /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],deleteOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}"],deleteRepoSecret:["DELETE /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],getAlert:["GET /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],getOrgPublicKey:["GET /orgs/{org}/dependabot/secrets/public-key"],getOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}"],getRepoPublicKey:["GET /repos/{owner}/{repo}/dependabot/secrets/public-key"],getRepoSecret:["GET /repos/{owner}/{repo}/dependabot/secrets/{secret_name}"],listAlertsForEnterprise:["GET /enterprises/{enterprise}/dependabot/alerts"],listAlertsForOrg:["GET /orgs/{org}/dependabot/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/dependabot/alerts"],listOrgSecrets:["GET /orgs/{org}/dependabot/secrets"],listRepoSecrets:["GET /repos/{owner}/{repo}/dependabot/secrets"],listSelectedReposForOrgSecret:["GET /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],removeSelectedRepoFromOrgSecret:["DELETE /orgs/{org}/dependabot/secrets/{secret_name}/repositories/{repository_id}"],repositoryAccessForOrg:["GET /organizations/{org}/dependabot/repository-access"],setRepositoryAccessDefaultLevel:["PUT /organizations/{org}/dependabot/repository-access/default-level"],setSelectedReposForOrgSecret:["PUT /orgs/{org}/dependabot/secrets/{secret_name}/repositories"],updateAlert:["PATCH /repos/{owner}/{repo}/dependabot/alerts/{alert_number}"],updateRepositoryAccessForOrg:["PATCH /organizations/{org}/dependabot/repository-access"]},dependencyGraph:{createRepositorySnapshot:["POST /repos/{owner}/{repo}/dependency-graph/snapshots"],diffRange:["GET /repos/{owner}/{repo}/dependency-graph/compare/{basehead}"],exportSbom:["GET /repos/{owner}/{repo}/dependency-graph/sbom"]},emojis:{get:["GET /emojis"]},enterpriseTeamMemberships:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/memberships/remove"],get:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"],list:["GET /enterprises/{enterprise}/teams/{enterprise-team}/memberships"],remove:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/memberships/{username}"]},enterpriseTeamOrganizations:{add:["PUT /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],bulkAdd:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/add"],bulkRemove:["POST /enterprises/{enterprise}/teams/{enterprise-team}/organizations/remove"],delete:["DELETE /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignment:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations/{org}"],getAssignments:["GET /enterprises/{enterprise}/teams/{enterprise-team}/organizations"]},enterpriseTeams:{create:["POST /enterprises/{enterprise}/teams"],delete:["DELETE /enterprises/{enterprise}/teams/{team_slug}"],get:["GET /enterprises/{enterprise}/teams/{team_slug}"],list:["GET /enterprises/{enterprise}/teams"],update:["PATCH /enterprises/{enterprise}/teams/{team_slug}"]},gists:{checkIsStarred:["GET /gists/{gist_id}/star"],create:["POST /gists"],createComment:["POST /gists/{gist_id}/comments"],delete:["DELETE /gists/{gist_id}"],deleteComment:["DELETE /gists/{gist_id}/comments/{comment_id}"],fork:["POST /gists/{gist_id}/forks"],get:["GET /gists/{gist_id}"],getComment:["GET /gists/{gist_id}/comments/{comment_id}"],getRevision:["GET /gists/{gist_id}/{sha}"],list:["GET /gists"],listComments:["GET /gists/{gist_id}/comments"],listCommits:["GET /gists/{gist_id}/commits"],listForUser:["GET /users/{username}/gists"],listForks:["GET /gists/{gist_id}/forks"],listPublic:["GET /gists/public"],listStarred:["GET /gists/starred"],star:["PUT /gists/{gist_id}/star"],unstar:["DELETE /gists/{gist_id}/star"],update:["PATCH /gists/{gist_id}"],updateComment:["PATCH /gists/{gist_id}/comments/{comment_id}"]},git:{createBlob:["POST /repos/{owner}/{repo}/git/blobs"],createCommit:["POST /repos/{owner}/{repo}/git/commits"],createRef:["POST /repos/{owner}/{repo}/git/refs"],createTag:["POST /repos/{owner}/{repo}/git/tags"],createTree:["POST /repos/{owner}/{repo}/git/trees"],deleteRef:["DELETE /repos/{owner}/{repo}/git/refs/{ref}"],getBlob:["GET /repos/{owner}/{repo}/git/blobs/{file_sha}"],getCommit:["GET /repos/{owner}/{repo}/git/commits/{commit_sha}"],getRef:["GET /repos/{owner}/{repo}/git/ref/{ref}"],getTag:["GET /repos/{owner}/{repo}/git/tags/{tag_sha}"],getTree:["GET /repos/{owner}/{repo}/git/trees/{tree_sha}"],listMatchingRefs:["GET /repos/{owner}/{repo}/git/matching-refs/{ref}"],updateRef:["PATCH /repos/{owner}/{repo}/git/refs/{ref}"]},gitignore:{getAllTemplates:["GET /gitignore/templates"],getTemplate:["GET /gitignore/templates/{name}"]},hostedCompute:{createNetworkConfigurationForOrg:["POST /orgs/{org}/settings/network-configurations"],deleteNetworkConfigurationFromOrg:["DELETE /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkConfigurationForOrg:["GET /orgs/{org}/settings/network-configurations/{network_configuration_id}"],getNetworkSettingsForOrg:["GET /orgs/{org}/settings/network-settings/{network_settings_id}"],listNetworkConfigurationsForOrg:["GET /orgs/{org}/settings/network-configurations"],updateNetworkConfigurationForOrg:["PATCH /orgs/{org}/settings/network-configurations/{network_configuration_id}"]},interactions:{getRestrictionsForAuthenticatedUser:["GET /user/interaction-limits"],getRestrictionsForOrg:["GET /orgs/{org}/interaction-limits"],getRestrictionsForRepo:["GET /repos/{owner}/{repo}/interaction-limits"],getRestrictionsForYourPublicRepos:["GET /user/interaction-limits",{},{renamed:["interactions","getRestrictionsForAuthenticatedUser"]}],removeRestrictionsForAuthenticatedUser:["DELETE /user/interaction-limits"],removeRestrictionsForOrg:["DELETE /orgs/{org}/interaction-limits"],removeRestrictionsForRepo:["DELETE /repos/{owner}/{repo}/interaction-limits"],removeRestrictionsForYourPublicRepos:["DELETE /user/interaction-limits",{},{renamed:["interactions","removeRestrictionsForAuthenticatedUser"]}],setRestrictionsForAuthenticatedUser:["PUT /user/interaction-limits"],setRestrictionsForOrg:["PUT /orgs/{org}/interaction-limits"],setRestrictionsForRepo:["PUT /repos/{owner}/{repo}/interaction-limits"],setRestrictionsForYourPublicRepos:["PUT /user/interaction-limits",{},{renamed:["interactions","setRestrictionsForAuthenticatedUser"]}]},issues:{addAssignees:["POST /repos/{owner}/{repo}/issues/{issue_number}/assignees"],addBlockedByDependency:["POST /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],addLabels:["POST /repos/{owner}/{repo}/issues/{issue_number}/labels"],addSubIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],checkUserCanBeAssigned:["GET /repos/{owner}/{repo}/assignees/{assignee}"],checkUserCanBeAssignedToIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/assignees/{assignee}"],create:["POST /repos/{owner}/{repo}/issues"],createComment:["POST /repos/{owner}/{repo}/issues/{issue_number}/comments"],createLabel:["POST /repos/{owner}/{repo}/labels"],createMilestone:["POST /repos/{owner}/{repo}/milestones"],deleteComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}"],deleteLabel:["DELETE /repos/{owner}/{repo}/labels/{name}"],deleteMilestone:["DELETE /repos/{owner}/{repo}/milestones/{milestone_number}"],get:["GET /repos/{owner}/{repo}/issues/{issue_number}"],getComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}"],getEvent:["GET /repos/{owner}/{repo}/issues/events/{event_id}"],getLabel:["GET /repos/{owner}/{repo}/labels/{name}"],getMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}"],getParent:["GET /repos/{owner}/{repo}/issues/{issue_number}/parent"],list:["GET /issues"],listAssignees:["GET /repos/{owner}/{repo}/assignees"],listComments:["GET /repos/{owner}/{repo}/issues/{issue_number}/comments"],listCommentsForRepo:["GET /repos/{owner}/{repo}/issues/comments"],listDependenciesBlockedBy:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by"],listDependenciesBlocking:["GET /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocking"],listEvents:["GET /repos/{owner}/{repo}/issues/{issue_number}/events"],listEventsForRepo:["GET /repos/{owner}/{repo}/issues/events"],listEventsForTimeline:["GET /repos/{owner}/{repo}/issues/{issue_number}/timeline"],listForAuthenticatedUser:["GET /user/issues"],listForOrg:["GET /orgs/{org}/issues"],listForRepo:["GET /repos/{owner}/{repo}/issues"],listLabelsForMilestone:["GET /repos/{owner}/{repo}/milestones/{milestone_number}/labels"],listLabelsForRepo:["GET /repos/{owner}/{repo}/labels"],listLabelsOnIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/labels"],listMilestones:["GET /repos/{owner}/{repo}/milestones"],listSubIssues:["GET /repos/{owner}/{repo}/issues/{issue_number}/sub_issues"],lock:["PUT /repos/{owner}/{repo}/issues/{issue_number}/lock"],removeAllLabels:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels"],removeAssignees:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/assignees"],removeDependencyBlockedBy:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/dependencies/blocked_by/{issue_id}"],removeLabel:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}"],removeSubIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/sub_issue"],reprioritizeSubIssue:["PATCH /repos/{owner}/{repo}/issues/{issue_number}/sub_issues/priority"],setLabels:["PUT /repos/{owner}/{repo}/issues/{issue_number}/labels"],unlock:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/lock"],update:["PATCH /repos/{owner}/{repo}/issues/{issue_number}"],updateComment:["PATCH /repos/{owner}/{repo}/issues/comments/{comment_id}"],updateLabel:["PATCH /repos/{owner}/{repo}/labels/{name}"],updateMilestone:["PATCH /repos/{owner}/{repo}/milestones/{milestone_number}"]},licenses:{get:["GET /licenses/{license}"],getAllCommonlyUsed:["GET /licenses"],getForRepo:["GET /repos/{owner}/{repo}/license"]},markdown:{render:["POST /markdown"],renderRaw:["POST /markdown/raw",{headers:{"content-type":"text/plain; charset=utf-8"}}]},meta:{get:["GET /meta"],getAllVersions:["GET /versions"],getOctocat:["GET /octocat"],getZen:["GET /zen"],root:["GET /"]},migrations:{deleteArchiveForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/archive"],deleteArchiveForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/archive"],downloadArchiveForOrg:["GET /orgs/{org}/migrations/{migration_id}/archive"],getArchiveForAuthenticatedUser:["GET /user/migrations/{migration_id}/archive"],getStatusForAuthenticatedUser:["GET /user/migrations/{migration_id}"],getStatusForOrg:["GET /orgs/{org}/migrations/{migration_id}"],listForAuthenticatedUser:["GET /user/migrations"],listForOrg:["GET /orgs/{org}/migrations"],listReposForAuthenticatedUser:["GET /user/migrations/{migration_id}/repositories"],listReposForOrg:["GET /orgs/{org}/migrations/{migration_id}/repositories"],listReposForUser:["GET /user/migrations/{migration_id}/repositories",{},{renamed:["migrations","listReposForAuthenticatedUser"]}],startForAuthenticatedUser:["POST /user/migrations"],startForOrg:["POST /orgs/{org}/migrations"],unlockRepoForAuthenticatedUser:["DELETE /user/migrations/{migration_id}/repos/{repo_name}/lock"],unlockRepoForOrg:["DELETE /orgs/{org}/migrations/{migration_id}/repos/{repo_name}/lock"]},oidc:{getOidcCustomSubTemplateForOrg:["GET /orgs/{org}/actions/oidc/customization/sub"],updateOidcCustomSubTemplateForOrg:["PUT /orgs/{org}/actions/oidc/customization/sub"]},orgs:{addSecurityManagerTeam:["PUT /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.addSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#add-a-security-manager-team"}],assignTeamToOrgRole:["PUT /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],assignUserToOrgRole:["PUT /orgs/{org}/organization-roles/users/{username}/{role_id}"],blockUser:["PUT /orgs/{org}/blocks/{username}"],cancelInvitation:["DELETE /orgs/{org}/invitations/{invitation_id}"],checkBlockedUser:["GET /orgs/{org}/blocks/{username}"],checkMembershipForUser:["GET /orgs/{org}/members/{username}"],checkPublicMembershipForUser:["GET /orgs/{org}/public_members/{username}"],convertMemberToOutsideCollaborator:["PUT /orgs/{org}/outside_collaborators/{username}"],createArtifactStorageRecord:["POST /orgs/{org}/artifacts/metadata/storage-record"],createInvitation:["POST /orgs/{org}/invitations"],createIssueType:["POST /orgs/{org}/issue-types"],createWebhook:["POST /orgs/{org}/hooks"],customPropertiesForOrgsCreateOrUpdateOrganizationValues:["PATCH /organizations/{org}/org-properties/values"],customPropertiesForOrgsGetOrganizationValues:["GET /organizations/{org}/org-properties/values"],customPropertiesForReposCreateOrUpdateOrganizationDefinition:["PUT /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposCreateOrUpdateOrganizationDefinitions:["PATCH /orgs/{org}/properties/schema"],customPropertiesForReposCreateOrUpdateOrganizationValues:["PATCH /orgs/{org}/properties/values"],customPropertiesForReposDeleteOrganizationDefinition:["DELETE /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinition:["GET /orgs/{org}/properties/schema/{custom_property_name}"],customPropertiesForReposGetOrganizationDefinitions:["GET /orgs/{org}/properties/schema"],customPropertiesForReposGetOrganizationValues:["GET /orgs/{org}/properties/values"],delete:["DELETE /orgs/{org}"],deleteAttestationsBulk:["POST /orgs/{org}/attestations/delete-request"],deleteAttestationsById:["DELETE /orgs/{org}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /orgs/{org}/attestations/digest/{subject_digest}"],deleteIssueType:["DELETE /orgs/{org}/issue-types/{issue_type_id}"],deleteWebhook:["DELETE /orgs/{org}/hooks/{hook_id}"],disableSelectedRepositoryImmutableReleasesOrganization:["DELETE /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],enableSelectedRepositoryImmutableReleasesOrganization:["PUT /orgs/{org}/settings/immutable-releases/repositories/{repository_id}"],get:["GET /orgs/{org}"],getImmutableReleasesSettings:["GET /orgs/{org}/settings/immutable-releases"],getImmutableReleasesSettingsRepositories:["GET /orgs/{org}/settings/immutable-releases/repositories"],getMembershipForAuthenticatedUser:["GET /user/memberships/orgs/{org}"],getMembershipForUser:["GET /orgs/{org}/memberships/{username}"],getOrgRole:["GET /orgs/{org}/organization-roles/{role_id}"],getOrgRulesetHistory:["GET /orgs/{org}/rulesets/{ruleset_id}/history"],getOrgRulesetVersion:["GET /orgs/{org}/rulesets/{ruleset_id}/history/{version_id}"],getWebhook:["GET /orgs/{org}/hooks/{hook_id}"],getWebhookConfigForOrg:["GET /orgs/{org}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}"],list:["GET /organizations"],listAppInstallations:["GET /orgs/{org}/installations"],listArtifactStorageRecords:["GET /orgs/{org}/artifacts/{subject_digest}/metadata/storage-records"],listAttestationRepositories:["GET /orgs/{org}/attestations/repositories"],listAttestations:["GET /orgs/{org}/attestations/{subject_digest}"],listAttestationsBulk:["POST /orgs/{org}/attestations/bulk-list{?per_page,before,after}"],listBlockedUsers:["GET /orgs/{org}/blocks"],listFailedInvitations:["GET /orgs/{org}/failed_invitations"],listForAuthenticatedUser:["GET /user/orgs"],listForUser:["GET /users/{username}/orgs"],listInvitationTeams:["GET /orgs/{org}/invitations/{invitation_id}/teams"],listIssueTypes:["GET /orgs/{org}/issue-types"],listMembers:["GET /orgs/{org}/members"],listMembershipsForAuthenticatedUser:["GET /user/memberships/orgs"],listOrgRoleTeams:["GET /orgs/{org}/organization-roles/{role_id}/teams"],listOrgRoleUsers:["GET /orgs/{org}/organization-roles/{role_id}/users"],listOrgRoles:["GET /orgs/{org}/organization-roles"],listOrganizationFineGrainedPermissions:["GET /orgs/{org}/organization-fine-grained-permissions"],listOutsideCollaborators:["GET /orgs/{org}/outside_collaborators"],listPatGrantRepositories:["GET /orgs/{org}/personal-access-tokens/{pat_id}/repositories"],listPatGrantRequestRepositories:["GET /orgs/{org}/personal-access-token-requests/{pat_request_id}/repositories"],listPatGrantRequests:["GET /orgs/{org}/personal-access-token-requests"],listPatGrants:["GET /orgs/{org}/personal-access-tokens"],listPendingInvitations:["GET /orgs/{org}/invitations"],listPublicMembers:["GET /orgs/{org}/public_members"],listSecurityManagerTeams:["GET /orgs/{org}/security-managers",{},{deprecated:"octokit.rest.orgs.listSecurityManagerTeams() is deprecated, see https://docs.github.com/rest/orgs/security-managers#list-security-manager-teams"}],listWebhookDeliveries:["GET /orgs/{org}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /orgs/{org}/hooks"],pingWebhook:["POST /orgs/{org}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /orgs/{org}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeMember:["DELETE /orgs/{org}/members/{username}"],removeMembershipForUser:["DELETE /orgs/{org}/memberships/{username}"],removeOutsideCollaborator:["DELETE /orgs/{org}/outside_collaborators/{username}"],removePublicMembershipForAuthenticatedUser:["DELETE /orgs/{org}/public_members/{username}"],removeSecurityManagerTeam:["DELETE /orgs/{org}/security-managers/teams/{team_slug}",{},{deprecated:"octokit.rest.orgs.removeSecurityManagerTeam() is deprecated, see https://docs.github.com/rest/orgs/security-managers#remove-a-security-manager-team"}],reviewPatGrantRequest:["POST /orgs/{org}/personal-access-token-requests/{pat_request_id}"],reviewPatGrantRequestsInBulk:["POST /orgs/{org}/personal-access-token-requests"],revokeAllOrgRolesTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}"],revokeAllOrgRolesUser:["DELETE /orgs/{org}/organization-roles/users/{username}"],revokeOrgRoleTeam:["DELETE /orgs/{org}/organization-roles/teams/{team_slug}/{role_id}"],revokeOrgRoleUser:["DELETE /orgs/{org}/organization-roles/users/{username}/{role_id}"],setImmutableReleasesSettings:["PUT /orgs/{org}/settings/immutable-releases"],setImmutableReleasesSettingsRepositories:["PUT /orgs/{org}/settings/immutable-releases/repositories"],setMembershipForUser:["PUT /orgs/{org}/memberships/{username}"],setPublicMembershipForAuthenticatedUser:["PUT /orgs/{org}/public_members/{username}"],unblockUser:["DELETE /orgs/{org}/blocks/{username}"],update:["PATCH /orgs/{org}"],updateIssueType:["PUT /orgs/{org}/issue-types/{issue_type_id}"],updateMembershipForAuthenticatedUser:["PATCH /user/memberships/orgs/{org}"],updatePatAccess:["POST /orgs/{org}/personal-access-tokens/{pat_id}"],updatePatAccesses:["POST /orgs/{org}/personal-access-tokens"],updateWebhook:["PATCH /orgs/{org}/hooks/{hook_id}"],updateWebhookConfigForOrg:["PATCH /orgs/{org}/hooks/{hook_id}/config"]},packages:{deletePackageForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}"],deletePackageForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}"],deletePackageForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}"],deletePackageVersionForAuthenticatedUser:["DELETE /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForOrg:["DELETE /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],deletePackageVersionForUser:["DELETE /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getAllPackageVersionsForAPackageOwnedByAnOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByOrg"]}],getAllPackageVersionsForAPackageOwnedByTheAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions",{},{renamed:["packages","getAllPackageVersionsForPackageOwnedByAuthenticatedUser"]}],getAllPackageVersionsForPackageOwnedByAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByOrg:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions"],getAllPackageVersionsForPackageOwnedByUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions"],getPackageForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}"],getPackageForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}"],getPackageForUser:["GET /users/{username}/packages/{package_type}/{package_name}"],getPackageVersionForAuthenticatedUser:["GET /user/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForOrganization:["GET /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}"],getPackageVersionForUser:["GET /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}"],listDockerMigrationConflictingPackagesForAuthenticatedUser:["GET /user/docker/conflicts"],listDockerMigrationConflictingPackagesForOrganization:["GET /orgs/{org}/docker/conflicts"],listDockerMigrationConflictingPackagesForUser:["GET /users/{username}/docker/conflicts"],listPackagesForAuthenticatedUser:["GET /user/packages"],listPackagesForOrganization:["GET /orgs/{org}/packages"],listPackagesForUser:["GET /users/{username}/packages"],restorePackageForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageForUser:["POST /users/{username}/packages/{package_type}/{package_name}/restore{?token}"],restorePackageVersionForAuthenticatedUser:["POST /user/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForOrg:["POST /orgs/{org}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"],restorePackageVersionForUser:["POST /users/{username}/packages/{package_type}/{package_name}/versions/{package_version_id}/restore"]},privateRegistries:{createOrgPrivateRegistry:["POST /orgs/{org}/private-registries"],deleteOrgPrivateRegistry:["DELETE /orgs/{org}/private-registries/{secret_name}"],getOrgPrivateRegistry:["GET /orgs/{org}/private-registries/{secret_name}"],getOrgPublicKey:["GET /orgs/{org}/private-registries/public-key"],listOrgPrivateRegistries:["GET /orgs/{org}/private-registries"],updateOrgPrivateRegistry:["PATCH /orgs/{org}/private-registries/{secret_name}"]},projects:{addItemForOrg:["POST /orgs/{org}/projectsV2/{project_number}/items"],addItemForUser:["POST /users/{username}/projectsV2/{project_number}/items"],deleteItemForOrg:["DELETE /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],deleteItemForUser:["DELETE /users/{username}/projectsV2/{project_number}/items/{item_id}"],getFieldForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields/{field_id}"],getFieldForUser:["GET /users/{username}/projectsV2/{project_number}/fields/{field_id}"],getForOrg:["GET /orgs/{org}/projectsV2/{project_number}"],getForUser:["GET /users/{username}/projectsV2/{project_number}"],getOrgItem:["GET /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],getUserItem:["GET /users/{username}/projectsV2/{project_number}/items/{item_id}"],listFieldsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/fields"],listFieldsForUser:["GET /users/{username}/projectsV2/{project_number}/fields"],listForOrg:["GET /orgs/{org}/projectsV2"],listForUser:["GET /users/{username}/projectsV2"],listItemsForOrg:["GET /orgs/{org}/projectsV2/{project_number}/items"],listItemsForUser:["GET /users/{username}/projectsV2/{project_number}/items"],updateItemForOrg:["PATCH /orgs/{org}/projectsV2/{project_number}/items/{item_id}"],updateItemForUser:["PATCH /users/{username}/projectsV2/{project_number}/items/{item_id}"]},pulls:{checkIfMerged:["GET /repos/{owner}/{repo}/pulls/{pull_number}/merge"],create:["POST /repos/{owner}/{repo}/pulls"],createReplyForReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments/{comment_id}/replies"],createReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],createReviewComment:["POST /repos/{owner}/{repo}/pulls/{pull_number}/comments"],deletePendingReview:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],deleteReviewComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}"],dismissReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/dismissals"],get:["GET /repos/{owner}/{repo}/pulls/{pull_number}"],getReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],getReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}"],list:["GET /repos/{owner}/{repo}/pulls"],listCommentsForReview:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/comments"],listCommits:["GET /repos/{owner}/{repo}/pulls/{pull_number}/commits"],listFiles:["GET /repos/{owner}/{repo}/pulls/{pull_number}/files"],listRequestedReviewers:["GET /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],listReviewComments:["GET /repos/{owner}/{repo}/pulls/{pull_number}/comments"],listReviewCommentsForRepo:["GET /repos/{owner}/{repo}/pulls/comments"],listReviews:["GET /repos/{owner}/{repo}/pulls/{pull_number}/reviews"],merge:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/merge"],removeRequestedReviewers:["DELETE /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],requestReviewers:["POST /repos/{owner}/{repo}/pulls/{pull_number}/requested_reviewers"],submitReview:["POST /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}/events"],update:["PATCH /repos/{owner}/{repo}/pulls/{pull_number}"],updateBranch:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/update-branch"],updateReview:["PUT /repos/{owner}/{repo}/pulls/{pull_number}/reviews/{review_id}"],updateReviewComment:["PATCH /repos/{owner}/{repo}/pulls/comments/{comment_id}"]},rateLimit:{get:["GET /rate_limit"]},reactions:{createForCommitComment:["POST /repos/{owner}/{repo}/comments/{comment_id}/reactions"],createForIssue:["POST /repos/{owner}/{repo}/issues/{issue_number}/reactions"],createForIssueComment:["POST /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],createForPullRequestReviewComment:["POST /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],createForRelease:["POST /repos/{owner}/{repo}/releases/{release_id}/reactions"],createForTeamDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],createForTeamDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"],deleteForCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}/reactions/{reaction_id}"],deleteForIssue:["DELETE /repos/{owner}/{repo}/issues/{issue_number}/reactions/{reaction_id}"],deleteForIssueComment:["DELETE /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions/{reaction_id}"],deleteForPullRequestComment:["DELETE /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions/{reaction_id}"],deleteForRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}/reactions/{reaction_id}"],deleteForTeamDiscussion:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions/{reaction_id}"],deleteForTeamDiscussionComment:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions/{reaction_id}"],listForCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}/reactions"],listForIssue:["GET /repos/{owner}/{repo}/issues/{issue_number}/reactions"],listForIssueComment:["GET /repos/{owner}/{repo}/issues/comments/{comment_id}/reactions"],listForPullRequestReviewComment:["GET /repos/{owner}/{repo}/pulls/comments/{comment_id}/reactions"],listForRelease:["GET /repos/{owner}/{repo}/releases/{release_id}/reactions"],listForTeamDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}/reactions"],listForTeamDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/reactions"]},repos:{acceptInvitation:["PATCH /user/repository_invitations/{invitation_id}",{},{renamed:["repos","acceptInvitationForAuthenticatedUser"]}],acceptInvitationForAuthenticatedUser:["PATCH /user/repository_invitations/{invitation_id}"],addAppAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],addCollaborator:["PUT /repos/{owner}/{repo}/collaborators/{username}"],addStatusCheckContexts:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],addTeamAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],addUserAccessRestrictions:["POST /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],cancelPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}/cancel"],checkAutomatedSecurityFixes:["GET /repos/{owner}/{repo}/automated-security-fixes"],checkCollaborator:["GET /repos/{owner}/{repo}/collaborators/{username}"],checkImmutableReleases:["GET /repos/{owner}/{repo}/immutable-releases"],checkPrivateVulnerabilityReporting:["GET /repos/{owner}/{repo}/private-vulnerability-reporting"],checkVulnerabilityAlerts:["GET /repos/{owner}/{repo}/vulnerability-alerts"],codeownersErrors:["GET /repos/{owner}/{repo}/codeowners/errors"],compareCommits:["GET /repos/{owner}/{repo}/compare/{base}...{head}"],compareCommitsWithBasehead:["GET /repos/{owner}/{repo}/compare/{basehead}"],createAttestation:["POST /repos/{owner}/{repo}/attestations"],createAutolink:["POST /repos/{owner}/{repo}/autolinks"],createCommitComment:["POST /repos/{owner}/{repo}/commits/{commit_sha}/comments"],createCommitSignatureProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],createCommitStatus:["POST /repos/{owner}/{repo}/statuses/{sha}"],createDeployKey:["POST /repos/{owner}/{repo}/keys"],createDeployment:["POST /repos/{owner}/{repo}/deployments"],createDeploymentBranchPolicy:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],createDeploymentProtectionRule:["POST /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],createDeploymentStatus:["POST /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],createDispatchEvent:["POST /repos/{owner}/{repo}/dispatches"],createForAuthenticatedUser:["POST /user/repos"],createFork:["POST /repos/{owner}/{repo}/forks"],createInOrg:["POST /orgs/{org}/repos"],createOrUpdateEnvironment:["PUT /repos/{owner}/{repo}/environments/{environment_name}"],createOrUpdateFileContents:["PUT /repos/{owner}/{repo}/contents/{path}"],createOrgRuleset:["POST /orgs/{org}/rulesets"],createPagesDeployment:["POST /repos/{owner}/{repo}/pages/deployments"],createPagesSite:["POST /repos/{owner}/{repo}/pages"],createRelease:["POST /repos/{owner}/{repo}/releases"],createRepoRuleset:["POST /repos/{owner}/{repo}/rulesets"],createUsingTemplate:["POST /repos/{template_owner}/{template_repo}/generate"],createWebhook:["POST /repos/{owner}/{repo}/hooks"],customPropertiesForReposCreateOrUpdateRepositoryValues:["PATCH /repos/{owner}/{repo}/properties/values"],customPropertiesForReposGetRepositoryValues:["GET /repos/{owner}/{repo}/properties/values"],declineInvitation:["DELETE /user/repository_invitations/{invitation_id}",{},{renamed:["repos","declineInvitationForAuthenticatedUser"]}],declineInvitationForAuthenticatedUser:["DELETE /user/repository_invitations/{invitation_id}"],delete:["DELETE /repos/{owner}/{repo}"],deleteAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],deleteAdminBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],deleteAnEnvironment:["DELETE /repos/{owner}/{repo}/environments/{environment_name}"],deleteAutolink:["DELETE /repos/{owner}/{repo}/autolinks/{autolink_id}"],deleteBranchProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection"],deleteCommitComment:["DELETE /repos/{owner}/{repo}/comments/{comment_id}"],deleteCommitSignatureProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],deleteDeployKey:["DELETE /repos/{owner}/{repo}/keys/{key_id}"],deleteDeployment:["DELETE /repos/{owner}/{repo}/deployments/{deployment_id}"],deleteDeploymentBranchPolicy:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],deleteFile:["DELETE /repos/{owner}/{repo}/contents/{path}"],deleteInvitation:["DELETE /repos/{owner}/{repo}/invitations/{invitation_id}"],deleteOrgRuleset:["DELETE /orgs/{org}/rulesets/{ruleset_id}"],deletePagesSite:["DELETE /repos/{owner}/{repo}/pages"],deletePullRequestReviewProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],deleteRelease:["DELETE /repos/{owner}/{repo}/releases/{release_id}"],deleteReleaseAsset:["DELETE /repos/{owner}/{repo}/releases/assets/{asset_id}"],deleteRepoRuleset:["DELETE /repos/{owner}/{repo}/rulesets/{ruleset_id}"],deleteWebhook:["DELETE /repos/{owner}/{repo}/hooks/{hook_id}"],disableAutomatedSecurityFixes:["DELETE /repos/{owner}/{repo}/automated-security-fixes"],disableDeploymentProtectionRule:["DELETE /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],disableImmutableReleases:["DELETE /repos/{owner}/{repo}/immutable-releases"],disablePrivateVulnerabilityReporting:["DELETE /repos/{owner}/{repo}/private-vulnerability-reporting"],disableVulnerabilityAlerts:["DELETE /repos/{owner}/{repo}/vulnerability-alerts"],downloadArchive:["GET /repos/{owner}/{repo}/zipball/{ref}",{},{renamed:["repos","downloadZipballArchive"]}],downloadTarballArchive:["GET /repos/{owner}/{repo}/tarball/{ref}"],downloadZipballArchive:["GET /repos/{owner}/{repo}/zipball/{ref}"],enableAutomatedSecurityFixes:["PUT /repos/{owner}/{repo}/automated-security-fixes"],enableImmutableReleases:["PUT /repos/{owner}/{repo}/immutable-releases"],enablePrivateVulnerabilityReporting:["PUT /repos/{owner}/{repo}/private-vulnerability-reporting"],enableVulnerabilityAlerts:["PUT /repos/{owner}/{repo}/vulnerability-alerts"],generateReleaseNotes:["POST /repos/{owner}/{repo}/releases/generate-notes"],get:["GET /repos/{owner}/{repo}"],getAccessRestrictions:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions"],getAdminBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],getAllDeploymentProtectionRules:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules"],getAllEnvironments:["GET /repos/{owner}/{repo}/environments"],getAllStatusCheckContexts:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts"],getAllTopics:["GET /repos/{owner}/{repo}/topics"],getAppsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps"],getAutolink:["GET /repos/{owner}/{repo}/autolinks/{autolink_id}"],getBranch:["GET /repos/{owner}/{repo}/branches/{branch}"],getBranchProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection"],getBranchRules:["GET /repos/{owner}/{repo}/rules/branches/{branch}"],getClones:["GET /repos/{owner}/{repo}/traffic/clones"],getCodeFrequencyStats:["GET /repos/{owner}/{repo}/stats/code_frequency"],getCollaboratorPermissionLevel:["GET /repos/{owner}/{repo}/collaborators/{username}/permission"],getCombinedStatusForRef:["GET /repos/{owner}/{repo}/commits/{ref}/status"],getCommit:["GET /repos/{owner}/{repo}/commits/{ref}"],getCommitActivityStats:["GET /repos/{owner}/{repo}/stats/commit_activity"],getCommitComment:["GET /repos/{owner}/{repo}/comments/{comment_id}"],getCommitSignatureProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_signatures"],getCommunityProfileMetrics:["GET /repos/{owner}/{repo}/community/profile"],getContent:["GET /repos/{owner}/{repo}/contents/{path}"],getContributorsStats:["GET /repos/{owner}/{repo}/stats/contributors"],getCustomDeploymentProtectionRule:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/{protection_rule_id}"],getDeployKey:["GET /repos/{owner}/{repo}/keys/{key_id}"],getDeployment:["GET /repos/{owner}/{repo}/deployments/{deployment_id}"],getDeploymentBranchPolicy:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],getDeploymentStatus:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses/{status_id}"],getEnvironment:["GET /repos/{owner}/{repo}/environments/{environment_name}"],getLatestPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/latest"],getLatestRelease:["GET /repos/{owner}/{repo}/releases/latest"],getOrgRuleSuite:["GET /orgs/{org}/rulesets/rule-suites/{rule_suite_id}"],getOrgRuleSuites:["GET /orgs/{org}/rulesets/rule-suites"],getOrgRuleset:["GET /orgs/{org}/rulesets/{ruleset_id}"],getOrgRulesets:["GET /orgs/{org}/rulesets"],getPages:["GET /repos/{owner}/{repo}/pages"],getPagesBuild:["GET /repos/{owner}/{repo}/pages/builds/{build_id}"],getPagesDeployment:["GET /repos/{owner}/{repo}/pages/deployments/{pages_deployment_id}"],getPagesHealthCheck:["GET /repos/{owner}/{repo}/pages/health"],getParticipationStats:["GET /repos/{owner}/{repo}/stats/participation"],getPullRequestReviewProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],getPunchCardStats:["GET /repos/{owner}/{repo}/stats/punch_card"],getReadme:["GET /repos/{owner}/{repo}/readme"],getReadmeInDirectory:["GET /repos/{owner}/{repo}/readme/{dir}"],getRelease:["GET /repos/{owner}/{repo}/releases/{release_id}"],getReleaseAsset:["GET /repos/{owner}/{repo}/releases/assets/{asset_id}"],getReleaseByTag:["GET /repos/{owner}/{repo}/releases/tags/{tag}"],getRepoRuleSuite:["GET /repos/{owner}/{repo}/rulesets/rule-suites/{rule_suite_id}"],getRepoRuleSuites:["GET /repos/{owner}/{repo}/rulesets/rule-suites"],getRepoRuleset:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}"],getRepoRulesetHistory:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history"],getRepoRulesetVersion:["GET /repos/{owner}/{repo}/rulesets/{ruleset_id}/history/{version_id}"],getRepoRulesets:["GET /repos/{owner}/{repo}/rulesets"],getStatusChecksProtection:["GET /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],getTeamsWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams"],getTopPaths:["GET /repos/{owner}/{repo}/traffic/popular/paths"],getTopReferrers:["GET /repos/{owner}/{repo}/traffic/popular/referrers"],getUsersWithAccessToProtectedBranch:["GET /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users"],getViews:["GET /repos/{owner}/{repo}/traffic/views"],getWebhook:["GET /repos/{owner}/{repo}/hooks/{hook_id}"],getWebhookConfigForRepo:["GET /repos/{owner}/{repo}/hooks/{hook_id}/config"],getWebhookDelivery:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}"],listActivities:["GET /repos/{owner}/{repo}/activity"],listAttestations:["GET /repos/{owner}/{repo}/attestations/{subject_digest}"],listAutolinks:["GET /repos/{owner}/{repo}/autolinks"],listBranches:["GET /repos/{owner}/{repo}/branches"],listBranchesForHeadCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/branches-where-head"],listCollaborators:["GET /repos/{owner}/{repo}/collaborators"],listCommentsForCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/comments"],listCommitCommentsForRepo:["GET /repos/{owner}/{repo}/comments"],listCommitStatusesForRef:["GET /repos/{owner}/{repo}/commits/{ref}/statuses"],listCommits:["GET /repos/{owner}/{repo}/commits"],listContributors:["GET /repos/{owner}/{repo}/contributors"],listCustomDeploymentRuleIntegrations:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment_protection_rules/apps"],listDeployKeys:["GET /repos/{owner}/{repo}/keys"],listDeploymentBranchPolicies:["GET /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies"],listDeploymentStatuses:["GET /repos/{owner}/{repo}/deployments/{deployment_id}/statuses"],listDeployments:["GET /repos/{owner}/{repo}/deployments"],listForAuthenticatedUser:["GET /user/repos"],listForOrg:["GET /orgs/{org}/repos"],listForUser:["GET /users/{username}/repos"],listForks:["GET /repos/{owner}/{repo}/forks"],listInvitations:["GET /repos/{owner}/{repo}/invitations"],listInvitationsForAuthenticatedUser:["GET /user/repository_invitations"],listLanguages:["GET /repos/{owner}/{repo}/languages"],listPagesBuilds:["GET /repos/{owner}/{repo}/pages/builds"],listPublic:["GET /repositories"],listPullRequestsAssociatedWithCommit:["GET /repos/{owner}/{repo}/commits/{commit_sha}/pulls"],listReleaseAssets:["GET /repos/{owner}/{repo}/releases/{release_id}/assets"],listReleases:["GET /repos/{owner}/{repo}/releases"],listTags:["GET /repos/{owner}/{repo}/tags"],listTeams:["GET /repos/{owner}/{repo}/teams"],listWebhookDeliveries:["GET /repos/{owner}/{repo}/hooks/{hook_id}/deliveries"],listWebhooks:["GET /repos/{owner}/{repo}/hooks"],merge:["POST /repos/{owner}/{repo}/merges"],mergeUpstream:["POST /repos/{owner}/{repo}/merge-upstream"],pingWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/pings"],redeliverWebhookDelivery:["POST /repos/{owner}/{repo}/hooks/{hook_id}/deliveries/{delivery_id}/attempts"],removeAppAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],removeCollaborator:["DELETE /repos/{owner}/{repo}/collaborators/{username}"],removeStatusCheckContexts:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],removeStatusCheckProtection:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],removeTeamAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],removeUserAccessRestrictions:["DELETE /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],renameBranch:["POST /repos/{owner}/{repo}/branches/{branch}/rename"],replaceAllTopics:["PUT /repos/{owner}/{repo}/topics"],requestPagesBuild:["POST /repos/{owner}/{repo}/pages/builds"],setAdminBranchProtection:["POST /repos/{owner}/{repo}/branches/{branch}/protection/enforce_admins"],setAppAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/apps",{},{mapToData:"apps"}],setStatusCheckContexts:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks/contexts",{},{mapToData:"contexts"}],setTeamAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/teams",{},{mapToData:"teams"}],setUserAccessRestrictions:["PUT /repos/{owner}/{repo}/branches/{branch}/protection/restrictions/users",{},{mapToData:"users"}],testPushWebhook:["POST /repos/{owner}/{repo}/hooks/{hook_id}/tests"],transfer:["POST /repos/{owner}/{repo}/transfer"],update:["PATCH /repos/{owner}/{repo}"],updateBranchProtection:["PUT /repos/{owner}/{repo}/branches/{branch}/protection"],updateCommitComment:["PATCH /repos/{owner}/{repo}/comments/{comment_id}"],updateDeploymentBranchPolicy:["PUT /repos/{owner}/{repo}/environments/{environment_name}/deployment-branch-policies/{branch_policy_id}"],updateInformationAboutPagesSite:["PUT /repos/{owner}/{repo}/pages"],updateInvitation:["PATCH /repos/{owner}/{repo}/invitations/{invitation_id}"],updateOrgRuleset:["PUT /orgs/{org}/rulesets/{ruleset_id}"],updatePullRequestReviewProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_pull_request_reviews"],updateRelease:["PATCH /repos/{owner}/{repo}/releases/{release_id}"],updateReleaseAsset:["PATCH /repos/{owner}/{repo}/releases/assets/{asset_id}"],updateRepoRuleset:["PUT /repos/{owner}/{repo}/rulesets/{ruleset_id}"],updateStatusCheckPotection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks",{},{renamed:["repos","updateStatusCheckProtection"]}],updateStatusCheckProtection:["PATCH /repos/{owner}/{repo}/branches/{branch}/protection/required_status_checks"],updateWebhook:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}"],updateWebhookConfigForRepo:["PATCH /repos/{owner}/{repo}/hooks/{hook_id}/config"],uploadReleaseAsset:["POST /repos/{owner}/{repo}/releases/{release_id}/assets{?name,label}",{baseUrl:"https://uploads.github.com"}]},search:{code:["GET /search/code"],commits:["GET /search/commits"],issuesAndPullRequests:["GET /search/issues"],labels:["GET /search/labels"],repos:["GET /search/repositories"],topics:["GET /search/topics"],users:["GET /search/users"]},secretScanning:{createPushProtectionBypass:["POST /repos/{owner}/{repo}/secret-scanning/push-protection-bypasses"],getAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],getScanHistory:["GET /repos/{owner}/{repo}/secret-scanning/scan-history"],listAlertsForOrg:["GET /orgs/{org}/secret-scanning/alerts"],listAlertsForRepo:["GET /repos/{owner}/{repo}/secret-scanning/alerts"],listLocationsForAlert:["GET /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}/locations"],listOrgPatternConfigs:["GET /orgs/{org}/secret-scanning/pattern-configurations"],updateAlert:["PATCH /repos/{owner}/{repo}/secret-scanning/alerts/{alert_number}"],updateOrgPatternConfigs:["PATCH /orgs/{org}/secret-scanning/pattern-configurations"]},securityAdvisories:{createFork:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/forks"],createPrivateVulnerabilityReport:["POST /repos/{owner}/{repo}/security-advisories/reports"],createRepositoryAdvisory:["POST /repos/{owner}/{repo}/security-advisories"],createRepositoryAdvisoryCveRequest:["POST /repos/{owner}/{repo}/security-advisories/{ghsa_id}/cve"],getGlobalAdvisory:["GET /advisories/{ghsa_id}"],getRepositoryAdvisory:["GET /repos/{owner}/{repo}/security-advisories/{ghsa_id}"],listGlobalAdvisories:["GET /advisories"],listOrgRepositoryAdvisories:["GET /orgs/{org}/security-advisories"],listRepositoryAdvisories:["GET /repos/{owner}/{repo}/security-advisories"],updateRepositoryAdvisory:["PATCH /repos/{owner}/{repo}/security-advisories/{ghsa_id}"]},teams:{addOrUpdateMembershipForUserInOrg:["PUT /orgs/{org}/teams/{team_slug}/memberships/{username}"],addOrUpdateRepoPermissionsInOrg:["PUT /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],checkPermissionsForRepoInOrg:["GET /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],create:["POST /orgs/{org}/teams"],createDiscussionCommentInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],createDiscussionInOrg:["POST /orgs/{org}/teams/{team_slug}/discussions"],deleteDiscussionCommentInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],deleteDiscussionInOrg:["DELETE /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],deleteInOrg:["DELETE /orgs/{org}/teams/{team_slug}"],getByName:["GET /orgs/{org}/teams/{team_slug}"],getDiscussionCommentInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],getDiscussionInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],getMembershipForUserInOrg:["GET /orgs/{org}/teams/{team_slug}/memberships/{username}"],list:["GET /orgs/{org}/teams"],listChildInOrg:["GET /orgs/{org}/teams/{team_slug}/teams"],listDiscussionCommentsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments"],listDiscussionsInOrg:["GET /orgs/{org}/teams/{team_slug}/discussions"],listForAuthenticatedUser:["GET /user/teams"],listMembersInOrg:["GET /orgs/{org}/teams/{team_slug}/members"],listPendingInvitationsInOrg:["GET /orgs/{org}/teams/{team_slug}/invitations"],listReposInOrg:["GET /orgs/{org}/teams/{team_slug}/repos"],removeMembershipForUserInOrg:["DELETE /orgs/{org}/teams/{team_slug}/memberships/{username}"],removeRepoInOrg:["DELETE /orgs/{org}/teams/{team_slug}/repos/{owner}/{repo}"],updateDiscussionCommentInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}/comments/{comment_number}"],updateDiscussionInOrg:["PATCH /orgs/{org}/teams/{team_slug}/discussions/{discussion_number}"],updateInOrg:["PATCH /orgs/{org}/teams/{team_slug}"]},users:{addEmailForAuthenticated:["POST /user/emails",{},{renamed:["users","addEmailForAuthenticatedUser"]}],addEmailForAuthenticatedUser:["POST /user/emails"],addSocialAccountForAuthenticatedUser:["POST /user/social_accounts"],block:["PUT /user/blocks/{username}"],checkBlocked:["GET /user/blocks/{username}"],checkFollowingForUser:["GET /users/{username}/following/{target_user}"],checkPersonIsFollowedByAuthenticated:["GET /user/following/{username}"],createGpgKeyForAuthenticated:["POST /user/gpg_keys",{},{renamed:["users","createGpgKeyForAuthenticatedUser"]}],createGpgKeyForAuthenticatedUser:["POST /user/gpg_keys"],createPublicSshKeyForAuthenticated:["POST /user/keys",{},{renamed:["users","createPublicSshKeyForAuthenticatedUser"]}],createPublicSshKeyForAuthenticatedUser:["POST /user/keys"],createSshSigningKeyForAuthenticatedUser:["POST /user/ssh_signing_keys"],deleteAttestationsBulk:["POST /users/{username}/attestations/delete-request"],deleteAttestationsById:["DELETE /users/{username}/attestations/{attestation_id}"],deleteAttestationsBySubjectDigest:["DELETE /users/{username}/attestations/digest/{subject_digest}"],deleteEmailForAuthenticated:["DELETE /user/emails",{},{renamed:["users","deleteEmailForAuthenticatedUser"]}],deleteEmailForAuthenticatedUser:["DELETE /user/emails"],deleteGpgKeyForAuthenticated:["DELETE /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","deleteGpgKeyForAuthenticatedUser"]}],deleteGpgKeyForAuthenticatedUser:["DELETE /user/gpg_keys/{gpg_key_id}"],deletePublicSshKeyForAuthenticated:["DELETE /user/keys/{key_id}",{},{renamed:["users","deletePublicSshKeyForAuthenticatedUser"]}],deletePublicSshKeyForAuthenticatedUser:["DELETE /user/keys/{key_id}"],deleteSocialAccountForAuthenticatedUser:["DELETE /user/social_accounts"],deleteSshSigningKeyForAuthenticatedUser:["DELETE /user/ssh_signing_keys/{ssh_signing_key_id}"],follow:["PUT /user/following/{username}"],getAuthenticated:["GET /user"],getById:["GET /user/{account_id}"],getByUsername:["GET /users/{username}"],getContextForUser:["GET /users/{username}/hovercard"],getGpgKeyForAuthenticated:["GET /user/gpg_keys/{gpg_key_id}",{},{renamed:["users","getGpgKeyForAuthenticatedUser"]}],getGpgKeyForAuthenticatedUser:["GET /user/gpg_keys/{gpg_key_id}"],getPublicSshKeyForAuthenticated:["GET /user/keys/{key_id}",{},{renamed:["users","getPublicSshKeyForAuthenticatedUser"]}],getPublicSshKeyForAuthenticatedUser:["GET /user/keys/{key_id}"],getSshSigningKeyForAuthenticatedUser:["GET /user/ssh_signing_keys/{ssh_signing_key_id}"],list:["GET /users"],listAttestations:["GET /users/{username}/attestations/{subject_digest}"],listAttestationsBulk:["POST /users/{username}/attestations/bulk-list{?per_page,before,after}"],listBlockedByAuthenticated:["GET /user/blocks",{},{renamed:["users","listBlockedByAuthenticatedUser"]}],listBlockedByAuthenticatedUser:["GET /user/blocks"],listEmailsForAuthenticated:["GET /user/emails",{},{renamed:["users","listEmailsForAuthenticatedUser"]}],listEmailsForAuthenticatedUser:["GET /user/emails"],listFollowedByAuthenticated:["GET /user/following",{},{renamed:["users","listFollowedByAuthenticatedUser"]}],listFollowedByAuthenticatedUser:["GET /user/following"],listFollowersForAuthenticatedUser:["GET /user/followers"],listFollowersForUser:["GET /users/{username}/followers"],listFollowingForUser:["GET /users/{username}/following"],listGpgKeysForAuthenticated:["GET /user/gpg_keys",{},{renamed:["users","listGpgKeysForAuthenticatedUser"]}],listGpgKeysForAuthenticatedUser:["GET /user/gpg_keys"],listGpgKeysForUser:["GET /users/{username}/gpg_keys"],listPublicEmailsForAuthenticated:["GET /user/public_emails",{},{renamed:["users","listPublicEmailsForAuthenticatedUser"]}],listPublicEmailsForAuthenticatedUser:["GET /user/public_emails"],listPublicKeysForUser:["GET /users/{username}/keys"],listPublicSshKeysForAuthenticated:["GET /user/keys",{},{renamed:["users","listPublicSshKeysForAuthenticatedUser"]}],listPublicSshKeysForAuthenticatedUser:["GET /user/keys"],listSocialAccountsForAuthenticatedUser:["GET /user/social_accounts"],listSocialAccountsForUser:["GET /users/{username}/social_accounts"],listSshSigningKeysForAuthenticatedUser:["GET /user/ssh_signing_keys"],listSshSigningKeysForUser:["GET /users/{username}/ssh_signing_keys"],setPrimaryEmailVisibilityForAuthenticated:["PATCH /user/email/visibility",{},{renamed:["users","setPrimaryEmailVisibilityForAuthenticatedUser"]}],setPrimaryEmailVisibilityForAuthenticatedUser:["PATCH /user/email/visibility"],unblock:["DELETE /user/blocks/{username}"],unfollow:["DELETE /user/following/{username}"],updateAuthenticated:["PATCH /user"]}},Fb=nC;var Wn=new Map;for(let[e,t]of Object.entries(Fb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Wn.has(e)||Wn.set(e,new Map),Wn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var oC={has({scope:e},t){return Wn.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Wn.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let o=Wn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=sC(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Uc(e){let t={};for(let r of Wn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},oC);return t}function sC(e,t,r,n,o){let s=e.request.defaults(n);function i(...a){let l=s.endpoint.merge(...a);if(o.mapToData)return l=Object.assign({},l,{data:l[o.mapToData],[o.mapToData]:void 0}),s(l);if(o.renamed){let[d,c]=o.renamed;e.log.warn(`octokit.${t}.${r}() has been renamed to octokit.${d}.${c}()`)}if(o.deprecated&&e.log.warn(o.deprecated),o.renamedParameters){let d=s.endpoint.merge(...a);for(let[c,u]of Object.entries(o.renamedParameters))c in d&&(e.log.warn(`"${c}" parameter is deprecated for "octokit.${t}.${r}()". Use "${u}" instead`),u in d||(d[u]=d[c]),delete d[c]);return s(d)}return s(...a)}return Object.assign(i,s)}function iC(e){return{rest:Uc(e)}}iC.VERSION=Hc;function qc(e){let t=Uc(e);return{...t,rest:t}}qc.VERSION=Hc;var Ib="22.0.1";var Mb=Ca.plugin(Nc,qc,Wc).defaults({userAgent:`octokit-rest.js/${Ib}`});function aC(e){return`r${e}`}function Lb(e){if(e.length===0)throw new Error("an aliased single-object query needs at least one read");let t=e[0].kind;if(e.some(s=>s.kind!==t))throw new Error("an aliased single-object query may contain only one object kind");let r={},n=t==="pr"?"pullRequest":"issue";return{query:["query CoalescedSingleObjectReads {",...e.map((s,i)=>{if(!Number.isSafeInteger(s.number)||s.number<=0)throw new Error(`an aliased single-object read needs a positive number, got ${s.number}`);let a=s.selection.trim();if(a==="")throw new Error("an aliased single-object read needs a field selection");let l=aC(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
|
|
83
|
+
`)}var VA=class extends Error{constructor(e,t,r){super(KA(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},zA=["method","baseUrl","url","headers","request","query","mediaType","operationName"],JA=["query","method","url"],vb=/\/api\/v3\/?$/;function YA(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(JA.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)=>zA.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 vb.test(s)&&(o.url=s.replace(vb,"/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 VA(o,a,i.data)}return i.data.data})}function jc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>YA(r,o,s),{defaults:jc.bind(null,r),endpoint:r.endpoint})}var VG=jc(Bs,{headers:{"user-agent":`octokit-graphql.js/${qA} ${pn()}`},method:"POST",url:"/graphql"});function Sb(e){return jc(e,{method:"POST",url:"/graphql"})}var Bc="(?:[a-zA-Z0-9_-]+)",Tb="\\.",Pb=new RegExp(`^${Bc}${Tb}${Bc}${Tb}${Bc}$`),QA=Pb.test.bind(Pb);async function XA(e){let t=QA(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 ZA(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function eC(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=ZA(e),t(o)}var Ab=function(t){if(!t)throw new Error("[@octokit/auth-token] No token passed to createTokenAuth");if(typeof t!="string")throw new Error("[@octokit/auth-token] Token passed to createTokenAuth is not a string");return t=t.replace(/^(token|bearer) +/i,""),Object.assign(XA.bind(null,t),{hook:eC.bind(null,t)})};var $c="7.0.7";var Cb=()=>{},tC=console.warn.bind(console),rC=console.error.bind(console);function nC(e={}){return typeof e.debug!="function"&&(e.debug=Cb),typeof e.info!="function"&&(e.info=Cb),typeof e.warn!="function"&&(e.warn=tC),typeof e.error!="function"&&(e.error=rC),e}var Db=`octokit-core.js/${$c} ${pn()}`,Ca=class{static VERSION=$c;static defaults(t){return class extends this{constructor(...n){let o=n[0]||{};if(typeof t=="function"){super(t(o));return}super(Object.assign({},t,o,o.userAgent&&t.userAgent?{userAgent:`${o.userAgent} ${t.userAgent}`}:null))}}}static plugins=[];static plugin(...t){let r=this.plugins;return class extends this{static plugins=r.concat(t.filter(o=>!r.includes(o)))}}constructor(t={}){let r=new Zm.Collection,n={baseUrl:Bs.endpoint.DEFAULTS.baseUrl,headers:{},request:Object.assign({},t.request,{hook:r.bind(null,"request")}),mediaType:{previews:[],format:""}};if(n.headers["user-agent"]=t.userAgent?`${t.userAgent} ${Db}`:Db,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Bs.defaults(n),this.graphql=Sb(this.request).defaults(n),this.log=nC(t.log),this.hook=r,t.authStrategy){let{authStrategy:s,...i}=t,a=s(Object.assign({request:this.request,log:this.log,octokit:this,octokitOptions:i},t.auth));r.wrap("request",a.hook),this.auth=a}else if(!t.auth)this.auth=async()=>({type:"unauthenticated"});else{let s=Ab(t.auth);r.wrap("request",s.hook),this.auth=s}let o=this.constructor;for(let s=0;s<o.plugins.length;++s)Object.assign(this,o.plugins[s](this,t))}request;graphql;log;hook;auth};var Ob="6.0.0";function Nc(e){e.hook.wrap("request",(t,r)=>{e.log.debug("request",r);let n=Date.now(),o=e.request.endpoint.parse(r),s=o.url.replace(r.baseUrl,"");return t(r).then(i=>{let a=i.headers["x-github-request-id"];return e.log.info(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i}).catch(i=>{let a=i.response?.headers["x-github-request-id"]||"UNKNOWN";throw e.log.error(`${o.method} ${s} - ${i.status} with id ${a} in ${Date.now()-n}ms`),i})})}Nc.VERSION=Ob;var oC="0.0.0-development";function sC(e){if(!e.data)return{...e,data:[]};if(!(("total_count"in e.data||"total_commits"in e.data)&&!("url"in e.data)))return e;let r=e.data.incomplete_results,n=e.data.repository_selection,o=e.data.total_count,s=e.data.total_commits;delete e.data.incomplete_results,delete e.data.repository_selection,delete e.data.total_count,delete e.data.total_commits;let i=Object.keys(e.data)[0],a=e.data[i];return e.data=a,typeof r<"u"&&(e.data.incomplete_results=r),typeof n<"u"&&(e.data.repository_selection=n),e.data.total_count=o,e.data.total_commits=s,e}function Gc(e,t,r){let n=typeof t=="function"?t.endpoint(r):e.request.endpoint(t,r),o=typeof t=="function"?t:e.request,s=n.method,i=n.headers,a=n.url;return{[Symbol.asyncIterator]:()=>({async next(){if(!a)return{done:!0};try{let l=await o({method:s,url:a,headers:i}),d=sC(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 Fb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Ib(e,[],Gc(e,t,r)[Symbol.asyncIterator](),n)}function Ib(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:Ib(e,t,r,n)})}var c5=Object.assign(Fb,{iterator:Gc});function Wc(e){return{paginate:Object.assign(Fb.bind(null,e),{iterator:Gc.bind(null,e)})}}Wc.VERSION=oC;var Hc="17.0.0";var iC={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"]}},Mb=iC;var Wn=new Map;for(let[e,t]of Object.entries(Mb))for(let[r,n]of Object.entries(t)){let[o,s,i]=n,[a,l]=o.split(/ /),d=Object.assign({method:a,url:l},s);Wn.has(e)||Wn.set(e,new Map),Wn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var aC={has({scope:e},t){return Wn.get(e).has(t)},getOwnPropertyDescriptor(e,t){return{value:this.get(e,t),configurable:!0,writable:!0,enumerable:!0}},defineProperty(e,t,r){return Object.defineProperty(e.cache,t,r),!0},deleteProperty(e,t){return delete e.cache[t],!0},ownKeys({scope:e}){return[...Wn.get(e).keys()]},set(e,t,r){return e.cache[t]=r},get({octokit:e,scope:t,cache:r},n){if(r[n])return r[n];let o=Wn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=lC(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function Uc(e){let t={};for(let r of Wn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},aC);return t}function lC(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 dC(e){return{rest:Uc(e)}}dC.VERSION=Hc;function qc(e){let t=Uc(e);return{...t,rest:t}}qc.VERSION=Hc;var Lb="22.0.1";var jb=Ca.plugin(Nc,qc,Wc).defaults({userAgent:`octokit-rest.js/${Lb}`});function cC(e){return`r${e}`}function Bb(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=cC(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
|
|
84
84
|
`)})," rateLimit { cost }","}"].join(`
|
|
85
|
-
`),aliases:r}}function jb(e,t){let r=t!==null&&typeof t=="object"?t:{},n=r.data??r,o=n!==null&&typeof n=="object"?n:{};return Object.entries(e.aliases).map(([s,i])=>{let a=o[s];if(a===null||typeof a!="object")return{read:i,value:null};let l=a.object;return{read:i,value:l!==null&&typeof l=="object"&&!Array.isArray(l)?l:null}})}var lC=Mb.plugin(vc,va);function Bb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function $b(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}var Lo=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}};function Kc(e){let t=e.etags??Bb(),r=new lC({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async c=>{let u=t.get(c.cacheKey),p={...c.parameters??{}},g=gn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),y=f.headers,h=Da(y,"etag");return h!==void 0&&t.set(c.cacheKey,{etag:h,data:f.data,headers:y}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:y,quotaFree:!1}}catch(f){if($s(f)===304){if(u===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(c.cacheKey)} without a held answer to reuse`,{cause:f});let y=Nb(f),h={...u.headers,...y},R=Da(h,"etag")??u.etag;return t.set(c.cacheKey,{etag:R,data:u.data,headers:h}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:h,quotaFree:!0}}throw $s(f)===401?new Lo({cause:f}):f}},o=new Map,s=!1,i=async c=>{let u=c.input,p=u.kind==="pr";try{let g=await n({cacheKey:u.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:u.owner,repo:u.repo,...p?{pull_number:u.number}:{issue_number:u.number}},operation:u.operation,actor:u.actor});c.resolve({data:u.project?u.project(g.data,"rest"):g.data,surface:"rest",quotaFree:g.quotaFree})}catch(g){c.reject(g)}},a=async c=>{try{let u=Lb(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=jb(u,p),f=cC(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:uC(c.map(({input:h})=>h.actor))}),g.forEach((h,R)=>{let T=c[R];h.value===null?T.reject(new Error(`GitHub returned no ${h.read.kind} #${h.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(h.value,"graphql"):h.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=$s(u)===401?new Lo({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=$b(c);s=!1;let p=[...o.values()];o.clear(),await Promise.all(p.map(async g=>{g.length>u?await a(g):await Promise.all(g.map(i))}))};return{conditionalRest:n,singleObject:c=>t.get(c.cacheKey)!==void 0?new Promise((u,p)=>{i({input:c,resolve:u,reject:p})}):new Promise((u,p)=>{let g=o.get(c.kind)??[];g.push({input:c,resolve:u,reject:p}),o.set(c.kind,g),s||(s=!0,setTimeout(()=>void l(),0))}),async conditionalPaginate(c){let u=[],p={},g=0,f=!0,y=1;for(;;){let h=await n({...c,cacheKey:`${c.cacheKey}:page:${y}`,parameters:{...c.parameters??{},per_page:100,page:y}});if(g+=1,f=f&&h.quotaFree,!Array.isArray(h.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${y}`);if(u.push(...h.data),p=h.headers,!dC(h.headers))break;y+=1}return{data:u,headers:p,requestCount:g,quotaFree:f}},async graphql(c,u={},p){try{let g=await r.graphql(c,u);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),g}catch(g){throw $s(g)===401?new Lo({cause:g}):g}}}}function dC(e){let t=Da(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Ns(e){let t=$s(e),r=Nb(e);return t===429||t===403&&Da(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function $s(e){if(gn(e))return typeof e.status=="number"?e.status:void 0}function Nb(e){return!gn(e)||!gn(e.response)||!gn(e.response.headers)?{}:e.response.headers}function Da(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function gn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function cC(e){let t=gn(e)?e:{},r=gn(t.data)?t.data:t,o=(gn(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(o)||o<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return o}function uC(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var Wb="rate_limit",Hb={rest:"core",graphql:"graphql",search:"search"},Jr=["rest","graphql","search"];function Ma(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Jr],detail:t??"no balance has been asked for yet, so none is known"}}var zc=15e3,jo=.15,Fa=[{at_or_below_fraction:0,every_ms:zc,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:jo,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}];var C5=60*6e4,Vc=2;function Ub(e,t){let r=Gb(e),n=Gb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Jr){let l=Hb[a],d=n[l],c=gC(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Jr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${Jr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Jc(e){try{let t=await e.transport();return Ub(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Ma(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Yc(e){let t=null;for(let r of Jr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function La(e,t){let r=Yc(e);if(r==null)return Ia(jo).every_ms;let n=Ia(r.fraction);if(r.remaining>0)return n.every_ms;let o=Kb(t.now,r.reset_at);return o==null?n.every_ms:Math.max(zc,Math.min(n.every_ms,o))}function Qc(e,t=jo){return Math.ceil(e.limit*t)}function qb(e,t,r=jo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Qc(n,r)?"reserved":"open"}function Xc(e){let t=e.reservedFraction??jo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Ia(t).every_ms*Vc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Ia(t).every_ms,pools:[],unreported_pools:[...Jr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=La(r,{now:e.now}),o=e.stalenessMs??n*Vc,s=Kb(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Jr.map(c=>r.pools[c]).filter(c=>c!=null),l=fC(r,t),d=Yc(r);return{version:1,origin:"asked",outcome:r.outcome,asked_at:r.asked_at,age_ms:s,threshold_ms:o,stale:i,posture:l,reserved_fraction:t,next_poll_ms:n,pools:a,unreported_pools:r.unreported_pools,reason:i?`this balance is stale: asked ${s==null?"at an unreadable instant":`${s}ms ago`}, past the ${o}ms window, so the posture below is the last one the token confirmed and not the current one`:pC(l,d,r,t)}}function Zc(e){if(!tu(e))return!1;let t=e;return t.version===1&&t.origin==="asked"&&(t.outcome==="asked"||t.outcome==="unanswered")&&(t.asked_at===null||typeof t.asked_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.posture=="string"&&typeof t.reserved_fraction=="number"&&typeof t.next_poll_ms=="number"&&Array.isArray(t.pools)&&Array.isArray(t.unreported_pools)&&typeof t.reason=="string"}function pC(e,t,r,n){if(t==null)return r.detail;let o=Qc(t,n);switch(e){case"spent":return`the ${t.pool} pool is spent and resets at ${t.reset_at}: work is not queued, it is refused`;case"reserved":return`the ${t.pool} pool has ${t.remaining} of ${t.limit} left, inside the reserved band of ${o}: convenience reads are refused and the claim, a landing and a closing comment still pass`;default:return`the ${t.pool} pool is the tightest at ${t.remaining} of ${t.limit}, above the reserved band of ${o}`}}function fC(e,t){let r="unknown";for(let n of Jr){if(e.pools[n]==null)continue;let o=qb(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Ia(e){for(let t of Fa)if(e<=t.at_or_below_fraction)return t;return Fa[Fa.length-1]}function gC(e,t,r){if(!tu(r))return null;let n=Oa(r.limit),o=Oa(r.remaining),s=Oa(r.used),i=Oa(r.reset);return n==null||n<=0||o==null?null:{pool:e,resource:t,limit:n,remaining:o,used:s??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:o/n}}function eu(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${Wb}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function Kb(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function Oa(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Gb(e){return tu(e)?e:{}}function tu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as hC}from"node:child_process";import{existsSync as mC,readFileSync as ja,readdirSync as bC}from"node:fs";import{dirname as yC,join as Hn}from"node:path";function Gs(e){let t=Ds(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Do(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Vb(e){let t=[],r=[];for(let n of e.workers){let o=Gs(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Ds(n).memory_max??Ds(n).memory_high)==null?"this Worker declared no memory budget and the host derived no ceiling for it, so the sampler has none to enforce":"this Worker's declared memory budget cannot be reduced to bytes, so the sampler has no ceiling to enforce"});continue}let s=e.rss[n.worker_id];if(typeof s!="number"||!Number.isFinite(s)){r.push({worker_id:n.worker_id,reason:"the host produced no RSS reading for this Worker on this tick, and an unmeasured Worker is never killed on suspicion"});continue}if(!(s<=o.bytes)){if(e.sources?.[n.worker_id]==="cgroup"&&o.name==="MemoryMax"){r.push({worker_id:n.worker_id,reason:`this Worker's ${o.name} of ${o.declared} is held by the kernel on its own cgroup, and the reading is memory.current \u2014 which counts reclaimable page cache the kernel drops before it kills anything, so the daemon does not duplicate an enforcement that can tell cache from anonymous memory`});continue}t.push(kC(n,o,s))}}return{terminations:t,unenforceable:r}}function kC(e,t,r){let n=`Worker ${JSON.stringify(e.worker_id)} of project ${JSON.stringify(e.project_label)}`;return{version:1,worker_id:e.worker_id,project_label:e.project_label,outcome:"terminated-over-memory-budget",classification:"budget-exceeded",stall:!1,budget_name:t.name,budget_declared:t.declared,budget_bytes:t.bytes,observed_rss_bytes:r,workspace_path:e.workspace_path,reason:`redskilled terminated ${n}: its tree RSS of ${r} bytes exceeded its ${t.name} budget of ${t.declared} (${t.bytes} bytes). This is a budget termination, not a stall, and the work in ${JSON.stringify(e.workspace_path)} is handed forward.`}}var wC=4096;function zb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=_C(e,r,t);for(let[u,p]of a){let g=vC(p);g!=null&&(o[u]=g.memoryBytes,g.cpuSeconds!=null&&(s[u]=g.cpuSeconds),i[u]="cgroup")}let l=e.filter(u=>i[u.worker_id]==null);if(l.length===0)return{rss:o,cpu_seconds:s,sources:i};let d=PC(r,t);if(d.size===0)return{rss:o,cpu_seconds:s,sources:i};let c=new Map;for(let u of d.values()){let p=c.get(u.ppid);p?p.push(u.pid):c.set(u.ppid,[u.pid])}for(let u of l){if(!d.has(u.pid))continue;let p=0,g=0,f=[u.pid],y=new Set;for(;f.length>0;){let h=f.pop();if(y.has(h))continue;y.add(h);let R=d.get(h);if(R){p+=R.rssBytes,g+=R.cpuSeconds;for(let T of c.get(h)??[])f.push(T)}}o[u.worker_id]=p,s[u.worker_id]=g,i[u.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,sources:i}}var RC="/sys/fs/cgroup";function _C(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??RC,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=xC(s,r);for(let l of i)for(let d of a){let c=Hn(d,l.unit);if(mC(Hn(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function xC(e,t){let r=t.selfCgroupPath??EC(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Hn(e,s));let a=yC(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(Hn(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function EC(){try{for(let e of ja("/proc/self/cgroup","utf8").split(`
|
|
86
|
-
`))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function
|
|
87
|
-
`)){let[r,n]=t.trim().split(/\s+/);if(r!=="usage_usec")continue;let o=Number(n);return!Number.isFinite(o)||o<0?null:o/1e6}return null}function
|
|
88
|
-
`)){let n=r.trim().split(/\s+/);if(n.length!==4)continue;let[o,s,i]=n.slice(0,3).map(Number);if(![o,s,i].every(l=>l!=null&&Number.isSafeInteger(l)&&l>=0))continue;let a=
|
|
89
|
-
`),aliases:s,closed_since:o}}function NC(e,t,r){let n=Bo(t),o=Bo(n.data),s=Array.isArray(n.errors)?n.errors.map(Bo):[],i=KC(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,project:c})=>{let u=c.owner+"/"+c.name,p=o[l],g=s.find(f=>Xb(f.path,l)||Xb(f.path,d));if(Ws(p)){let f=Zb(p.open_pull_requests),y=Zb(p.open_issues),h=VC(o[d]);if(f!=null&&y!=null&&h!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:y,recently_closed:h},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||iy(g)?{project_label:c.project_label,repository:u,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${u} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:c.project_label,repository:u,outcome:"unreachable",counts:null,detail:`${u} is not reachable with the host token: ${Ba(g?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function GC(e){return{version:1,fetched_at:e,request_count:0,project_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[]}}async function ty(e){if(e.projects.length===0)return GC(e.now);if(ou(e.projects,e.hostTokenRef),e.transport.conditionalList)return await HC(e);let t=ey(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return NC(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}var WC={key:"redskilled repository activity poll",budget:"rest"};async function HC(e){sy(e.projects);let t=Date.parse(e.now),r=Number.isFinite(t)?new Date(Math.floor(t/(60*60*1e3))*60*60*1e3).toISOString():e.now,n=ey(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let y=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:WC});i+=y.requestCount;let h=p==="open-prs"?y.data:y.data.filter(R=>!Ws(R.pull_request));u.push(p==="recently-closed"?h.filter(R=>Ba(R.closed_at)>=n.closed_since).length:h.length),a=Yb(a,qC(y.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=Ns(p);a=Yb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function ry(e){let t=e.stalenessMs??BC,r=e.activity;if(r==null)return{version:1,fetched_at:null,age_ms:null,threshold_ms:t,stale:!1,request_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[],reason:"the daemon polls no repository, so there are no counts to age"};let n=Date.parse(e.now),o=Date.parse(r.fetched_at),s=Number.isFinite(n)&&Number.isFinite(o)?Math.max(0,n-o):null,i=s==null||s>t;return{version:1,fetched_at:r.fetched_at,age_ms:s,threshold_ms:t,stale:r.projects.length>0&&i,request_count:r.request_count,rate_limit:r.rate_limit,projects:r.projects.map(a=>({...a,fetched_at:r.fetched_at,age_ms:s,stale:i})),reason:r.projects.length===0?"the daemon polls no repository, so there are no counts to age":s==null?"these counts carry no readable instant, so they cannot be presented as current":i?`these counts are ${s}ms old, past the ${t}ms window`:`fetched ${s}ms ago, within the ${t}ms window`}}function ny(e){if(!Ws(e))return!1;let t=e;return t.version===1&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&Number.isInteger(t.request_count)&&Ws(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function oy(e){let t=e.endpoint==null?void 0:UC(e.endpoint),r=Kc({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n}function UC(e){let t=new URL(e);return/\/api\/graphql\/?$/.test(t.pathname)?t.pathname=t.pathname.replace(/\/api\/graphql\/?$/,"/api/v3"):t.pathname=t.pathname.replace(/\/graphql\/?$/,""),t.search="",t.hash="",t.toString().replace(/\/$/,"")}function qC(e){let t=Qb(e,"x-ratelimit-remaining"),r=Qb(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Yb(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted,point_cost:null}}function Qb(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function sy(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Jb)throw new Error(`redskilled activity fetch spans at most ${Jb} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function KC(e,t){let r=Bo(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(iy),i=typeof r.cost=="number"&&Number.isFinite(r.cost)?r.cost:null;return{remaining:n,reset_at:o,exhausted:s||n===0,point_cost:i}}function iy(e){if(e==null)return!1;let t=Ba(e.type),r=Ba(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function Xb(e,t){return Array.isArray(e)&&e.includes(t)}function Zb(e){let t=Bo(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function VC(e){let t=Bo(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Bo(e){return Ws(e)?e:{}}function Ws(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ba(e){return typeof e=="string"?e:""}function ly(e,t){let r=[...e].sort((i,a)=>(Hs(a.ts)??0)-(Hs(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(ay),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=zC(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:ay(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function ay(e){return{kind:e.kind,id:e.id,pid:e.pid,ts:e.ts,last_seen:e.last_seen,last_phase:e.last_phase,sender_class:e.sender_class,confidence:e.confidence,signal:e.signal,evidence:e.evidence[0]??null}}function zC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>2||n.project_label==null||n.project_label===""||Hs(n.ts)==null)continue;let o=t.get(n.project_label)??[];o.push(n),t.set(n.project_label,o)}return[...t.entries()].filter(([,n])=>n.length>=3).map(([n,o])=>{let s=o[0],i=Hs(s.ts),a=Math.min(...o.map(d=>Hs(d.ts))),l=s.detail?.trim()||s.evidence[0]?.trim();return l==null||l===""?null:{project_label:n,count:o.length,span_ms:Math.max(0,i-a),latest_refusal:l}}).filter(n=>n!=null).sort((n,o)=>o.count-n.count||o.span_ms-n.span_ms)[0]??null}function su(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Number.isInteger(t.count)&&Array.isArray(t.recent)}function Hs(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var JC=3e4,YC=["logs","vitals","display"];function cy(e,t){if(t===void 0)return e;let r=YC.filter(o=>t[o]!==!0);if(r.length===0)return e;let n=o=>t[o]===!0;return{...e,workers:e.workers.map(o=>({...o,...n("vitals")?{}:{vitals:QC,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:XC},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var QC={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},XC={last_line:null,published_at:null,source:null};function uy(e){let t=e.stalenessMs??JC,r=iu(e.now),n=e.sampledAt==null?null:iu(e.sampledAt),o=r==null||n==null?null:Math.max(0,r-n),s=o!=null&&o<=t,i=new Set(e.reattachedWorkerIds??[]),a=e.hostState.workers.map(p=>eD(p,{rss:e.rss,sampledAt:e.sampledAt,ageMs:o,sampleFresh:s,nowMs:r,log:e.logLines?.[p.worker_id],display:e.displays?.[p.worker_id],state:i.has(p.worker_id)?"reattached":"running"})),l=a.filter(p=>p.vitals.rss_bytes==null).map(p=>p.worker_id).sort(),d=a.length-l.length,c=a.reduce((p,g)=>p+(g.vitals.rss_bytes??0),0),u=ga(e.hostState.workers);return{version:1,generated_at:e.now,daemon:{pid:e.hostState.pid,daemon_version:e.hostState.daemon_version,protocol_version:e.hostState.protocol_version,started_at:e.hostState.started_at,machine_id_hash:e.hostState.machine_id_hash,session_key_hash:e.hostState.session_key_hash},staleness:oD({sampledAt:e.sampledAt,ageMs:o,threshold:t,workerCount:a.length,measuredCount:d,unmeasured:l}),host:{worker_count:a.length,project_count:e.hostState.projects.length,ceiling:e.ceiling,consumption:u,budget_accounting:e.hostState.budget_accounting,observed_rss_bytes:c,measured_worker_count:d,ceiling_used_fraction:e.ceiling.memory_bytes==null||e.ceiling.memory_bytes<=0?null:u.memory_bytes/e.ceiling.memory_bytes},projects:nD(a),known_projects:rD(e.hostState),registered_projects:(e.hostState.registrations??[]).map(p=>p.project_label).sort((p,g)=>p.localeCompare(g)),lapsed_projects:(e.hostState.lapsed_registrations??[]).map(p=>({project_label:p.project_label,at:p.at,...p.registered_at==null?{}:{registered_at:p.registered_at},reason:p.detail})),stopped_projects:(e.hostState.stopped_registrations??[]).map(p=>({project_label:p.project_label,at:p.at})),orphaned_projects:(e.hostState.orphaned_registrations??[]).map(p=>p.project_label),workers:a,github_balance:Xc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:ry({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:ly(e.deaths,e.recentDeathLimit??4)},engine:ZC(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function ZC(e){let t=e.upgrade,r=t?.running_version??e.daemon_version,n=t?.published_version??null,o=t?.newest_published_version??null,s=(t?.newer_published??0)>0,i=(t?.major_held??0)>0;return{running_version:r,published_version:n,newer_published:s,major_held:i,current:n==null&&o==null?null:!s&&!i}}function eD(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Gs(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=iu(e.started_at);return{worker_id:e.worker_id,project_label:e.project_label,workspace_path:e.workspace_path,pid:e.pid,started_at:e.started_at,...e.base_commits_ahead==null?{}:{base_commits_ahead:e.base_commits_ahead},uptime_ms:t.nowMs==null||i==null?null:Math.max(0,t.nowMs-i),state:t.state,isolated:e.isolated,unit:e.unit??null,warnings:[...e.warnings],vitals:{rss_bytes:n,sampled_at:n==null?null:t.sampledAt,age_ms:n==null?null:t.ageMs,fresh:n!=null&&t.sampleFresh,rss_source:n==null?null:e.rss_source??null},budget:{name:o?.name??null,declared:o?.declared??s,bytes:o?.bytes??null,used_bytes:n,used_fraction:o==null||o.bytes<=0||n==null?null:n/o.bytes,enforceable:o!=null},log:tD(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function tD(e){let t={last_line:null,published_at:null,source:null};return e==null||e.line.trim()===""?t:{last_line:e.line,published_at:e.published_at,source:e.source}}function rD(e){let t=new Set;for(let r of e.registrations??[])t.add(r.project_label);for(let r of e.projects)t.add(r.project_label);for(let r of e.lapsed_registrations??[])t.add(r.project_label);for(let r of e.stopped_registrations??[])t.add(r.project_label);for(let r of e.orphaned_registrations??[])t.add(r.project_label);return[...t].sort((r,n)=>r.localeCompare(n))}function nD(e){let t=new Map;for(let r of e){let n=t.get(r.project_label)??{workers:0,declared:0,observed:0,measured:0};n.workers+=1,n.declared+=r.budget.bytes??0,n.observed+=r.vitals.rss_bytes??0,n.measured+=r.vitals.rss_bytes==null?0:1,t.set(r.project_label,n)}return[...t.entries()].map(([r,n])=>({project_label:r,worker_count:n.workers,declared_memory_bytes:n.declared,observed_rss_bytes:n.observed,measured_worker_count:n.measured})).sort((r,n)=>r.project_label.localeCompare(n.project_label))}function oD(e){let t={sampled_at:e.sampledAt,age_ms:e.ageMs,threshold_ms:e.threshold,measured_worker_count:e.measuredCount,unmeasured_workers:e.unmeasured};return e.workerCount===0?{...t,stale:!1,reason:"the host holds no Workers, so there is nothing to measure and nothing to age"}:e.sampledAt==null||e.ageMs==null?{...t,stale:!0,reason:`this answer is stale: the daemon has taken no measurement of its ${e.workerCount} live Worker(s) yet`}:e.ageMs>e.threshold?{...t,stale:!0,reason:`this answer is stale: its measurement is ${e.ageMs}ms old, past the ${e.threshold}ms staleness window`}:{...t,stale:!1,reason:`measured ${e.ageMs}ms ago, within the ${e.threshold}ms staleness window`}}function iu(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function au(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.daemon,n=t.staleness,o=t.host;return t.version===1&&typeof t.generated_at=="string"&&r!=null&&typeof r=="object"&&Number.isInteger(r.pid)&&typeof r.daemon_version=="string"&&typeof r.protocol_version=="number"&&n!=null&&typeof n=="object"&&typeof n.stale=="boolean"&&typeof n.threshold_ms=="number"&&Array.isArray(n.unmeasured_workers)&&o!=null&&typeof o=="object"&&Number.isInteger(o.worker_count)&&Number.isInteger(o.project_count)&&typeof o.observed_rss_bytes=="number"&&Array.isArray(t.projects)&&Array.isArray(t.workers)&&(t.known_projects===void 0||Array.isArray(t.known_projects)&&t.known_projects.every(s=>typeof s=="string"))&&(t.registered_projects===void 0||Array.isArray(t.registered_projects)&&t.registered_projects.every(s=>typeof s=="string"))&&(t.lapsed_projects===void 0||Array.isArray(t.lapsed_projects)&&t.lapsed_projects.every(sD))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(iD))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||ny(t.repository_activity))&&(t.github_balance===void 0||Zc(t.github_balance))&&(t.deaths===void 0||su(t.deaths))&&(t.engine===void 0||aD(t.engine))&&(t.metrics===void 0||Gh(t.metrics))}function sD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.reason=="string"}function iD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"}function aD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")}var py={runner:null,model:null,effort:null,origin:null,issue:null,phase:null,step:null,phase_index:null,phase_total:null,failed:!1,heartbeat:null,wait_kind:null,wait_subject:null,wait_pid:null,wait_started_at:null,wait_deadline:null,wait_escalation:null,started_at:null,context:null,eta:null,added:null,removed:null,tokens:null,tools:null,reasoning:null,text:null};function fy(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var kt=e=>`\x1B[${e}m`,Us=kt("48;2;114;47;55"),lu=kt("48;2;88;36;42"),hn=kt("38;2;255;255;255"),du=kt("38;2;201;150;158"),qs=kt("38;2;255;214;214"),Ks=kt("39"),Bt=kt("38;2;224;138;148"),cu=kt("38;2;240;200;120"),uu=kt("38;2;240;110;120"),pu=kt("38;2;255;214;214"),fu=kt("38;2;146;84;94"),gu=kt("38;2;255;95;95"),Cr=kt("49"),ar=kt("0"),$a=kt("1"),Na=kt("22");var lD=/\x1b\[[0-9;]*m/g,dD=/(\x1b\[[0-9;]*m)/,cD=/^\x1b\[[0-9;]*m$/;function Un(e){return e.replace(lD,"")}function uD(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Qt(e){return[...Un(e)].length}function Qe(e,t){if(t<=0)return"";if(Qt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(dD))if(i!==""){if(cD.test(i)){s+=i,o=!uD(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?ar:""}`;s+=a,n+=1}}return`${s}\u2026${o?ar:""}`}function Vs(e,t){return e+" ".repeat(Math.max(0,t-Qt(e)))}function hu(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"]){let n=t.indexOf(r);if(n===-1)continue;let s=t.slice(n+r.length).match(/^-(\d+(?:[-.]\d+)*)/)?.[1]?.split(/[-.]/)??[];return/^\d{8}$/.test(s.at(-1)??"")&&s.pop(),s.length===0?r:`${r}-${s.join(".")}`}return e}function lr(e){if(!Number.isFinite(e)||e<=0)return"0B";let t=["B","K","M","G","T"],r=e,n=0;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r>=100||n===0?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")}${t[n]}`}function zs(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function mn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return zs(e);if(e<=0)return"0";let t=(Math.round(e*10)/10).toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function bn(e){if(e==null||!Number.isFinite(e)||e<0)return"\u2014";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function $o(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Js="!unregistered",mu="!lapsed",Ys="\u21E1",Dr="\u2020",No="\u25D0",Go="\u25EF",bu="\u21B3",yu="redskilled unreachable \u2014 Worker state unknown";function Wo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Ga(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function Qs(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function ku(e){let t=[];return e.workers.length>0&&e.workers.length<=e.maxWorkers&&t.push("workers"),e.mode==="global"&&e.projects.length>0&&e.projects.length<=e.maxProjects&&t.push("projects"),t.push("host"),t}function Wa(e,t){return e.startsWith(t)?e.slice(t.length):e}function Or(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function wu(e,t,r){return r<110?{variant:"compact",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"work",header:"Work",flex:2,minWidth:14,truncate:!0},{key:"state",header:"State",flex:2,minWidth:14,truncate:!0},{key:"activity",header:"Latest activity",flex:3,minWidth:18,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,work:Or(Wa(n.cells.iss,"iss="),n.cells.phase),state:Or(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}:{variant:"operational",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"issue",header:"Issue",width:7},{key:"runner",header:"Runner",flex:1,minWidth:12,truncate:!0},{key:"phase",header:"Phase",flex:2,minWidth:16,truncate:!0},{key:"progress",header:"Progress",width:9},{key:"elapsed",header:"Elapsed",width:9,align:"right"},{key:"eta",header:"ETA",width:8,align:"right"},{key:"activity",header:"Activity",flex:2,minWidth:16,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,issue:Or(Wa(n.cells.iss,"iss=")),runner:Or(Wa(n.cells.run,"run=")),phase:Or(n.cells.phase),progress:Or(n.cells.bar),elapsed:Or(n.cells.elapsed),eta:Wa(Or(n.cells.eta),"eta="),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}}var yn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],$t={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},pD=" ",gy="\u2588",fD="\u25B6",gD="\u2717",hD="\u2591",mD=new Set(["gate","push-pr","merge","cascade"]),bD=new Set(["requeue"]),yD="repair";function Xs(e){return e.display?.origin===yD}function Ho(e,t=$t){let r=Qs(e,t.project),n=Wo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>Ua(y,t,e.generated_at)),i=DD(s),a=o.map((y,h)=>({worker_id:y.worker_id,project_label:y.project_label,mine:t.project!=null&&y.project_label===t.project,cells:s[h],line:Qe(OD(s[h],i),t.maxWidth)})),l=wu(a,o,t.maxWidth),d=wD(e,t,n,r),c=n.length-o.length,u=[d.line,...SD(e,t),...a.map(y=>y.line)];c>0&&u.push(Qe(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...ED(e,t)),u.push(...xD(e,t));let p=Math.max(1,Math.floor(t.maxHeight??$t.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Qe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:yn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function Ua(e,t,r){let n=e.display??py,o=Xs(e),s=[n.runner,n.model==null?null:hu(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&mD.has(n.phase),a=o||i||n.origin!=null&&bD.has(n.origin);return{wid:t.mode==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id,run:o||s===""?"":`run=${s}`,org:o?"lane=repair":i?"org=landing":n.origin==null?"":`org=${n.origin}`,iss:n.issue==null?"":o?`pr=#${n.issue.replace(/^#/,"")}`:`iss=${n.issue}`,bar:my(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:bn(fy(e,r)),eta:n.eta==null?"":`eta=${bn(n.eta*1e3)}`,hb:kD(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":CD(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${zs(n.tokens)}`,ctx:n.context==null?"":`ctx=${zs(n.context)}`,tls:a||n.tools==null?"":`tls=${n.tools}`,rsn:a||n.reasoning==null?"":`rsn=${n.reasoning}`,txt:a||n.text==null?"":`txt=${n.text}`}}function kD(e,t){if(e.wait_kind==null||e.wait_subject==null||e.wait_pid==null||e.wait_pid<=0||e.wait_started_at==null)return null;let r=Date.parse(e.wait_started_at),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:`${e.wait_kind}=${e.wait_subject} ${bn(Math.max(0,n-r))}`}function my(e){let t=e.phase_total,r=e.phase_index;if(t==null||t<=0||r==null||r<0)return"";let n=Math.min(Math.floor(r),Math.floor(t));if(n>=t)return gy.repeat(Math.floor(t));let o=e.failed?gD:fD;return`${gy.repeat(n)}${o}${hD.repeat(Math.floor(t)-n-1)}`}function wD(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=AD(r),l=o?.repository??t.project,d=e.engine??null,c=d?.running_version??e.daemon.daemon_version,u=e.deaths??null,p=e.metrics??null,g=[RD(l??"host",c,d!=null&&d.current===!1?Ys:"")];(n==="unregistered"||n==="name-only")&&g.push(Js),n==="lapsed"&&g.push(mu);let f=p?.history_48h==null?null:vD(p.history_48h);f!=null&&g.push(Yr(f));let y=e.workers.filter(Xs).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Yr(`workers=${M} coding +`)} ${Us}${hn}${y} repairing${Cr}${Bt}`)}else g.push(Yr(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Yr(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(Yr(PD(i))),a!=null&&g.push(`${Us}${hn}${a}${Cr}${Bt}`),s.open_pull_requests!=null&&g.push(Yr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Yr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Yr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let R=p==null?null:by(p.hour),T=R==null?null:Yr(R);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=$o(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${_D(M.span_ms)}`+(N==null?"":` \u2014 ${N}`))}if(e.staleness.stale){let M=e.staleness.age_ms;g.push(M==null?"!unmeasured":`!stale ${Math.round(M/1e3)}s`)}let $=`${g.join(" \xB7 ")}${ar}`,D=R!=null&&Qt($)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${ar}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Qe(D,t.maxWidth)}}function RD(e,t,r){return`${lu}${hn}${cu}\xBB${hn} ${$a}${e}${Na} ${du}v${t}${r}${hn}${Cr}${Bt}`}function Yr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${qs}${n}${Ks}${o}${Bt}`)}function _D(e){return bn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function by(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${mn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${mn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${mn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function xD(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?Go:No,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Qe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function ED(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Qe(`${Dr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Qe(`${Dr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Qe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function vD(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${mn(t)} ${Ru(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${mn(r)} ${Ru(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function SD(e,t){let r=e.metrics;return r==null?[Qe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Qe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[hy("tokens",r.history_48h.tokens_per_hour,t),hy("Tickets",r.history_48h.tickets_per_hour,t)]}var Ha=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function hy(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${mn(o)}/h ${Ru(t.trend)}`.trim();if(r.maxWidth<72)return Qe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Qe(`${n} 48h ${TD(t)} \xB7 ${a}${l}`,r.maxWidth)}function TD(e){let t=e.buckets.flatMap(n=>n.value==null?[]:[Math.max(0,n.value)]),r=Math.max(0,...t);return e.buckets.map(n=>n.value==null?"\xB7":r===0?Ha[0]:Ha[Math.min(Ha.length-1,Math.floor(Math.max(0,n.value)/r*(Ha.length-1)))]).join("")}function Ru(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function PD(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${lr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${lr(e.memory_used_bytes)}/${lr(e.memory_ceiling_bytes)}${t}`}function AD(e){for(let t of e){let r=t.display;if(r==null)continue;let n=[r.runner,r.model,r.effort].filter(o=>!!o);if(n.length>0)return n.join("\xB7")}return null}function CD(e,t){if(e==null&&t==null)return"";let r=[];return e!=null&&e>0&&r.push(`+${e}`),t!=null&&t>0&&r.push(`-${t}`),`loc=${r.length>0?r.join(" "):"0"}`}function DD(e){let t=Object.fromEntries(yn.map(r=>[r,0]));for(let r of e)for(let n of yn)t[n]=Math.max(t[n],Qt(r[n]));return t}function OD(e,t){let r=yn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>qa(o,Vs(e[o],s===r.length-1?Qt(e[o]):t[o])));return`${Cr}${Bt}${n.join(pD)}${ar}`}function qa(e,t){if(e==="wid")return`${$a}${t}${Na}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Us}${hn}${t.trimEnd()}${Cr}${Bt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${uu}${n}`).replace("\u25B6",`${pu}\u25B6`).replace("\u2717",`${gu}\u2717`).replace(/░+/g,n=>`${fu}${n}`)+Bt;let r=t.indexOf("=");return r>0?`${qs}${t.slice(0,r+1)}${Ks}${t.slice(r+1)}${Bt}`:t}function xu(e){return Object.freeze({none:!0,reason:e})}function Ka(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function _u(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError("repair args must contain only finite JSON numbers");return e}if(t.has(e))throw new TypeError("repair args must not contain cycles");t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(n=>_u(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=_u(o,t);return Object.freeze(r)}finally{t.delete(e)}}function FD(e){let t=_u(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Uo(e){if("none"in e.repair)return{prose:`${e.state}; repair: none because ${e.repair.reason}`,repair:"none",repair_reason:e.repair.reason};let t=FD(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ge={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function qn(e,t=Ge){let r=Qs(e,t.project),n=Wo(e,t),o=Ga(e,t),s=$D(e,t.project,r),i=MD(e,t,n,r,s.prose),a=ku({mode:t.mode,maxWorkers:t.maxWorkers,maxProjects:t.maxProjects,workers:n,projects:o}),l={detail:"host",line:i};for(let g of a){let f=g==="workers"?i:UD(i,ID(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Qt(f)<=t.maxWidth)break}let d=Qe(l.line,t.maxWidth),c=l.detail==="workers"?GD(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?WD(g,t):null;return y==null?[c.lines[f]]:[c.lines[f],y]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function Tu(e){let t=e.options??Ge,r=Qe(yu,t.maxWidth);return{version:1,line:r,lines:[r],verbose:t.verbose,mode:t.mode,project:t.project,project_match:"unanswered",detail:"host",degraded:!0,stale:!0,generated_at:e.generated_at}}function ID(e,t){return e==="projects"?t.map(HD):[]}function MD(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${Eu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(Su(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${Eu(r,r.length)}`),s.push(Su(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${Eu(r,r.length)}`),s.push(Su(e,t)),s.push(Js)):s.push(o),s.push(yy(e));let a=LD(e);a!=null&&s.push(a);let l=jD(e);l!=null&&s.push(l),e.staleness.stale&&s.push(ky(e));let d=s.join(" ");return!i||Qt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,yy(e),e.staleness.stale?ky(e):null].filter(c=>c!=null).join(" ")}function Eu(e,t){let r=e.filter(Xs).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function yy(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Ys}`}function LD(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Go} quota spent`:t.posture==="reserved"?`${No} quota band`:null}function jD(e){let t=e.deaths;if(t==null)return null;let r=t.sender_attributed_count??t.count,n=t.sender_attributed_count===void 0?t.latest:t.latest_sender_attributed??null;if(r<=0||n==null)return null;let o=t.boot_loop;if(o!=null){let s=$o(o.latest_refusal);return`${Dr}${r} boot-refused \xD7${o.count} in ${BD(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Dr}${r} ${n.sender_class}`}function BD(e){return bn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function $D(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return Uo({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:xu("this socket cannot safely replace a registration owned by an unreachable daemon")});if(r==="stopped"){let n=e.stopped_projects?.find(o=>o.project_label===t);return Uo({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${vu(n.at)}`}`,repair:Ka()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${vu(n.registered_at)})`;return Uo({state:`project unknown \u2014 ${t} lapsed at ${vu(n.at)}${o}`,repair:Ka()})}return Uo({state:`project unknown \u2014 ${t} lapsed`,repair:Ka()})}return r==="unresolved"?Uo({state:"project unknown \u2014 this directory resolved to no project",repair:xu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function vu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function Su(e,t){let r=t.mode==="global"?e.host.observed_rss_bytes:e.projects.filter(o=>o.project_label===t.project).reduce((o,s)=>o+s.observed_rss_bytes,0),n=e.host.ceiling.memory_bytes;return t.mode==="global"&&n!=null&&n>0?`${lr(r)}/${lr(n)}`:lr(r)}function ky(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function ND(e,t,r,n){let o=r.map(s=>qa(s,Vs(e[s],t[s])));return Qe(`${Cr}${Bt}${o.join(" ")}${ar}`,n)}function GD(e,t,r){let n=e.map(a=>Ua(a,t,r)),o=yn.filter(a=>n.some(l=>Qt(l[a])>0)),s=[...o],i=wy(n,s);for(;s.length>1&&Ry(i,s)>t.maxWidth;)s.pop(),i=wy(n,s);return{lines:n.map(a=>ND(a,i,s,t.maxWidth)),degraded:s.length<o.length||Ry(i,s)>t.maxWidth}}function wy(e,t){let r=Object.fromEntries(yn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Qt(n[o]));return r}function Ry(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function WD(e,t){let r=$o(e.log.last_line);return r==null?null:Qe(` ${bu} ${_y(e,t.mode)}: ${r}`,t.maxWidth)}function _y(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function HD(e){return`${e.project_label} ${e.worker_count}w ${lr(e.observed_rss_bytes)}`}function UD(e,t,r){return[e,...t].join(r)}var Va=1;async function Zs(e,t){return await aa(e,t,"redskilled daemon")}function Ey(e){let t=[...e.workers??[]],r=new Map;for(let n of t)r.set(n.project_label,(r.get(n.project_label)??0)+1);return{version:1,protocol_version:Va,daemon_version:e.daemonVersion,machine_id_hash:e.machineIdHash,session_key_hash:e.sessionKeyHash,pid:e.pid,started_at:e.startedAt,...e.ceiling==null?{}:{ceiling:e.ceiling},...e.scope==null?{}:{scope:e.scope},workers:t,projects:[...r.entries()].map(([n,o])=>({project_label:n,worker_count:o})).sort((n,o)=>n.project_label.localeCompare(o.project_label)),registrations:zD(e),...e.demand==null?{}:{demand:e.demand},...e.lapses==null||e.lapses.length===0?{}:{lapsed_registrations:[...e.lapses]},...e.stops==null||e.stops.length===0?{}:{stopped_registrations:[...e.stops]},...e.orphanedRegistrations==null||e.orphanedRegistrations.length===0?{}:{orphaned_registrations:[...e.orphanedRegistrations]},birth_latches:[...e.birthLatches??[]],budget_accounting:Uh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:JD(e)}}function zD(e){let t=e.now==null?Number.NaN:Date.parse(e.now),r=Number.isFinite(t),n=e.queue??null,o=new Map(n==null?[]:n.projects.map(s=>[s.project_label,s]));return[...e.registrations??[]].map(s=>{let i=o.get(s.project_label);return{...s,...r?{renewal:Am(s,t)}:{},...n==null||i==null?{}:{last_poll:{at:n.fetched_at,outcome:i.outcome,depth:i.depth,request_count:n.request_count,detail:i.detail}}}}).sort((s,i)=>s.project_label.localeCompare(i.project_label))}function JD(e){let t=e.daemonVersion,r=e.published?.version??null,n=e.published?.majorHold??null;return{running_version:t,published_version:r,published_unknown:+(r===null),newer_published:+(e.published?.newer===!0),replacement:e.published?.replacement??"none",checked_at:e.published?.checkedAt??null,checks:e.published?.checks??0,hold_reason:e.published?.holdReason??null,newest_published_version:e.published?.newest??null,major_held:+(n!==null),major_hold:n}}function vy(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&typeof t.protocol_version=="number"&&typeof t.daemon_version=="string"&&typeof t.machine_id_hash=="string"&&typeof t.session_key_hash=="string"&&Number.isInteger(t.pid)&&typeof t.started_at=="string"&&(t.ceiling===void 0||eO(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&qh(t.budget_accounting)&&(t.scope===void 0||Em(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Ls))&&(t.demand===void 0||um(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(QD))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(XD))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(ZD))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(YD))&&(t.upgrade===void 0||tO(t.upgrade))}function YD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.repair;return t.name==="project-birth-breaker"&&typeof t.project_label=="string"&&(t.state==="open"||t.state==="half-open")&&typeof t.opened_at=="string"&&typeof t.reason=="string"&&typeof t.closes=="string"&&(t.probe_worker_id===null||typeof t.probe_worker_id=="string")&&r!=null&&r.tool==="project_reset"&&typeof r.args=="object"&&r.args!==null&&typeof r.why=="string"}function QD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.at=="string"&&typeof t.renew_by=="string"&&Number.isInteger(t.renewals)&&Number.isInteger(t.sustains)&&typeof t.detail=="string"}function XD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.registered_at=="string"&&typeof t.at=="string"&&typeof t.detail=="string"}function ZD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")}function eO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=new Set(["flag","environment","home-config","derived-default"]);return(t.memory_bytes===null||typeof t.memory_bytes=="number")&&(t.worker_count===null||typeof t.worker_count=="number")&&(t.validation_count===void 0||Number.isInteger(t.validation_count)&&Number(t.validation_count)>0)&&(t.source==="declared"||t.source==="host-fraction")&&(t.memory_source===void 0||r.has(String(t.memory_source)))&&(t.worker_source===void 0||r.has(String(t.worker_source)))&&(t.validation_source===void 0||r.has(String(t.validation_source)))}function tO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")&&typeof t.published_unknown=="number"&&typeof t.newer_published=="number"&&(t.replacement==="none"||t.replacement==="pending"||t.replacement==="in-progress")&&(t.checked_at===null||typeof t.checked_at=="string")&&(t.newest_published_version===void 0||t.newest_published_version===null||typeof t.newest_published_version=="string")&&(t.major_held===void 0||typeof t.major_held=="number")&&(t.checks===void 0||typeof t.checks=="number")&&(t.hold_reason===void 0||t.hold_reason===null||typeof t.hold_reason=="string")&&(t.major_hold===void 0||t.major_hold===null||rO(t.major_hold))}function rO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{randomUUID as nO}from"node:crypto";import{mkdir as oO,readFile as sO,rename as iO,writeFile as aO}from"node:fs/promises";import{dirname as lO}from"node:path";function Sy(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await sO(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=dO(s);return cO(i)?i.registrations:[]}async function o(s){await oO(lO(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${nO()}.tmp`,a={version:1,registrations:[...s]};await aO(i,`${ot(a,{keyedMapCollapse:!0})}
|
|
90
|
-
`,{encoding:"utf8",mode:384}),await
|
|
91
|
-
`),e.command,...e.args]}function
|
|
92
|
-
`);s=l.pop()??"";for(let d of l)i(d)}),n.on("end",()=>{s!==""&&i(s)})};r(e.stdout,"worker.stdout"),r(e.stderr,"worker.stderr")}function
|
|
93
|
-
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function
|
|
94
|
-
`),aliases:n}}function
|
|
95
|
-
`);for(let r=t.length-1;r>=0;r-=1){let n=t[r].replace(/\r$/,"");if(n.trim()!=="")return n}return null}import{spawn as
|
|
96
|
-
`)}function
|
|
97
|
-
`);
|
|
85
|
+
`),aliases:r}}function $b(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 uC=jb.plugin(vc,va);function Nb(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function Gb(e){if(e?.outcome!=="asked")return Number.POSITIVE_INFINITY;let t=e.pools.rest,r=e.pools.graphql;return t===null||r===null||r.remaining<=0||r.fraction<=0?Number.POSITIVE_INFINITY:t.remaining<=0||t.fraction<=0?1:!Number.isFinite(t.fraction)||!Number.isFinite(r.fraction)?Number.POSITIVE_INFINITY:Math.max(1,Math.ceil(t.fraction/r.fraction))}var Lo=class extends Error{status=401;constructor(t){super("GitHub rejected the host credential; refresh the stored login with `gh auth login` or provide a current host token",t),this.name="GithubCredentialError"}};function Kc(e){let t=e.etags??Nb(),r=new uC({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async c=>{let u=t.get(c.cacheKey),p={...c.parameters??{}},g=gn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),y=f.headers,h=Da(y,"etag");return h!==void 0&&t.set(c.cacheKey,{etag:h,data:f.data,headers:y}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:y,quotaFree:!1}}catch(f){if($s(f)===304){if(u===void 0)throw new Error(`GitHub returned 304 for ${JSON.stringify(c.cacheKey)} without a held answer to reuse`,{cause:f});let y=Wb(f),h={...u.headers,...y},R=Da(h,"etag")??u.etag;return t.set(c.cacheKey,{etag:R,data:u.data,headers:h}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:h,quotaFree:!0}}throw $s(f)===401?new Lo({cause:f}):f}},o=new Map,s=!1,i=async c=>{let u=c.input,p=u.kind==="pr";try{let g=await n({cacheKey:u.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:u.owner,repo:u.repo,...p?{pull_number:u.number}:{issue_number:u.number}},operation:u.operation,actor:u.actor});c.resolve({data:u.project?u.project(g.data,"rest"):g.data,surface:"rest",quotaFree:g.quotaFree})}catch(g){c.reject(g)}},a=async c=>{try{let u=Bb(c.map(({input:h})=>h)),p=await r.graphql(u.query),g=$b(u,p),f=fC(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:gC(c.map(({input:h})=>h.actor))}),g.forEach((h,R)=>{let T=c[R];h.value===null?T.reject(new Error(`GitHub returned no ${h.read.kind} #${h.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(h.value,"graphql"):h.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=$s(u)===401?new Lo({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=Gb(c);s=!1;let p=[...o.values()];o.clear(),await Promise.all(p.map(async g=>{g.length>u?await a(g):await Promise.all(g.map(i))}))};return{conditionalRest:n,singleObject:c=>t.get(c.cacheKey)!==void 0?new Promise((u,p)=>{i({input:c,resolve:u,reject:p})}):new Promise((u,p)=>{let g=o.get(c.kind)??[];g.push({input:c,resolve:u,reject:p}),o.set(c.kind,g),s||(s=!0,setTimeout(()=>void l(),0))}),async conditionalPaginate(c){let u=[],p={},g=0,f=!0,y=1;for(;;){let h=await n({...c,cacheKey:`${c.cacheKey}:page:${y}`,parameters:{...c.parameters??{},per_page:100,page:y}});if(g+=1,f=f&&h.quotaFree,!Array.isArray(h.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${y}`);if(u.push(...h.data),p=h.headers,!pC(h.headers))break;y+=1}return{data:u,headers:p,requestCount:g,quotaFree:f}},async graphql(c,u={},p){try{let g=await r.graphql(c,u);return p&&await e.attribution?.record({operation:p.operation,cost:1,actor:p.actor}),g}catch(g){throw $s(g)===401?new Lo({cause:g}):g}}}}function pC(e){let t=Da(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Ns(e){let t=$s(e),r=Wb(e);return t===429||t===403&&Da(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function $s(e){if(gn(e))return typeof e.status=="number"?e.status:void 0}function Wb(e){return!gn(e)||!gn(e.response)||!gn(e.response.headers)?{}:e.response.headers}function Da(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function gn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function fC(e){let t=gn(e)?e:{},r=gn(t.data)?t.data:t,o=(gn(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(o)||o<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return o}function gC(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var Ub="rate_limit",qb={rest:"core",graphql:"graphql",search:"search"},Jr=["rest","graphql","search"];function Ma(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Jr],detail:t??"no balance has been asked for yet, so none is known"}}var zc=15e3,jo=.15,Fa=[{at_or_below_fraction:0,every_ms:zc,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:jo,every_ms:3e4,why:"inside the reserved band: the posture can change between two calls"},{at_or_below_fraction:.5,every_ms:12e4,why:"below half: tightening, because the band is now reachable inside one window"},{at_or_below_fraction:1,every_ms:6e5,why:"above half: rare, because nothing this balance decides is anywhere close"}];var O5=60*6e4,Vc=2;function Kb(e,t){let r=Hb(e),n=Hb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Jr){let l=qb[a],d=n[l],c=bC(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Jr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${Jr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function Jc(e){try{let t=await e.transport();return Kb(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Ma(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Yc(e){let t=null;for(let r of Jr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function La(e,t){let r=Yc(e);if(r==null)return Ia(jo).every_ms;let n=Ia(r.fraction);if(r.remaining>0)return n.every_ms;let o=zb(t.now,r.reset_at);return o==null?n.every_ms:Math.max(zc,Math.min(n.every_ms,o))}function Qc(e,t=jo){return Math.ceil(e.limit*t)}function Vb(e,t,r=jo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<Qc(n,r)?"reserved":"open"}function Xc(e){let t=e.reservedFraction??jo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Ia(t).every_ms*Vc,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Ia(t).every_ms,pools:[],unreported_pools:[...Jr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=La(r,{now:e.now}),o=e.stalenessMs??n*Vc,s=zb(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Jr.map(c=>r.pools[c]).filter(c=>c!=null),l=mC(r,t),d=Yc(r);return{version:1,origin:"asked",outcome:r.outcome,asked_at:r.asked_at,age_ms:s,threshold_ms:o,stale:i,posture:l,reserved_fraction:t,next_poll_ms:n,pools:a,unreported_pools:r.unreported_pools,reason:i?`this balance is stale: asked ${s==null?"at an unreadable instant":`${s}ms ago`}, past the ${o}ms window, so the posture below is the last one the token confirmed and not the current one`:hC(l,d,r,t)}}function Zc(e){if(!tu(e))return!1;let t=e;return t.version===1&&t.origin==="asked"&&(t.outcome==="asked"||t.outcome==="unanswered")&&(t.asked_at===null||typeof t.asked_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.posture=="string"&&typeof t.reserved_fraction=="number"&&typeof t.next_poll_ms=="number"&&Array.isArray(t.pools)&&Array.isArray(t.unreported_pools)&&typeof t.reason=="string"}function hC(e,t,r,n){if(t==null)return r.detail;let o=Qc(t,n);switch(e){case"spent":return`the ${t.pool} pool is spent and resets at ${t.reset_at}: work is not queued, it is refused`;case"reserved":return`the ${t.pool} pool has ${t.remaining} of ${t.limit} left, inside the reserved band of ${o}: convenience reads are refused and the claim, a landing and a closing comment still pass`;default:return`the ${t.pool} pool is the tightest at ${t.remaining} of ${t.limit}, above the reserved band of ${o}`}}function mC(e,t){let r="unknown";for(let n of Jr){if(e.pools[n]==null)continue;let o=Vb(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Ia(e){for(let t of Fa)if(e<=t.at_or_below_fraction)return t;return Fa[Fa.length-1]}function bC(e,t,r){if(!tu(r))return null;let n=Oa(r.limit),o=Oa(r.remaining),s=Oa(r.used),i=Oa(r.reset);return n==null||n<=0||o==null?null:{pool:e,resource:t,limit:n,remaining:o,used:s??0,reset_at:i==null?"":new Date(i*1e3).toISOString(),fraction:o/n}}function eu(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${Ub}`,{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 zb(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function Oa(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function Hb(e){return tu(e)?e:{}}function tu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as yC}from"node:child_process";import{existsSync as kC,readFileSync as ja,readdirSync as wC}from"node:fs";import{dirname as RC,join as Hn}from"node:path";function Gs(e){let t=Ds(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Do(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function Jb(e){let t=[],r=[];for(let n of e.workers){let o=Gs(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Ds(n).memory_max??Ds(n).memory_high)==null?"this Worker declared no memory budget and the host derived no ceiling for it, so the sampler has none to enforce":"this Worker's declared memory budget cannot be reduced to bytes, so the sampler has no ceiling to enforce"});continue}let s=e.rss[n.worker_id];if(typeof s!="number"||!Number.isFinite(s)){r.push({worker_id:n.worker_id,reason:"the host produced no RSS reading for this Worker on this tick, and an unmeasured Worker is never killed on suspicion"});continue}if(!(s<=o.bytes)){if(e.sources?.[n.worker_id]==="cgroup"&&o.name==="MemoryMax"){r.push({worker_id:n.worker_id,reason:`this Worker's ${o.name} of ${o.declared} is held by the kernel on its own cgroup, and the reading is memory.current \u2014 which counts reclaimable page cache the kernel drops before it kills anything, so the daemon does not duplicate an enforcement that can tell cache from anonymous memory`});continue}t.push(_C(n,o,s))}}return{terminations:t,unenforceable:r}}function _C(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 xC=4096;function Yb(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=vC(e,r,t);for(let[u,p]of a){let g=PC(p);g!=null&&(o[u]=g.memoryBytes,g.cpuSeconds!=null&&(s[u]=g.cpuSeconds),i[u]="cgroup")}let l=e.filter(u=>i[u.worker_id]==null);if(l.length===0)return{rss:o,cpu_seconds:s,sources:i};let d=DC(r,t);if(d.size===0)return{rss:o,cpu_seconds:s,sources:i};let c=new Map;for(let u of d.values()){let p=c.get(u.ppid);p?p.push(u.pid):c.set(u.ppid,[u.pid])}for(let u of l){if(!d.has(u.pid))continue;let p=0,g=0,f=[u.pid],y=new Set;for(;f.length>0;){let h=f.pop();if(y.has(h))continue;y.add(h);let R=d.get(h);if(R){p+=R.rssBytes,g+=R.cpuSeconds;for(let T of c.get(h)??[])f.push(T)}}o[u.worker_id]=p,s[u.worker_id]=g,i[u.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,sources:i}}var EC="/sys/fs/cgroup";function vC(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??EC,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=SC(s,r);for(let l of i)for(let d of a){let c=Hn(d,l.unit);if(kC(Hn(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function SC(e,t){let r=t.selfCgroupPath??TC(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Hn(e,s));let a=RC(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(Hn(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function TC(){try{for(let e of ja("/proc/self/cgroup","utf8").split(`
|
|
86
|
+
`))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function PC(e){let t;try{t=ja(Hn(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:AC(e)}}function AC(e){let t;try{t=ja(Hn(e,"cpu.stat"),"utf8")}catch{return null}return CC(t)}function CC(e){for(let t of e.split(`
|
|
87
|
+
`)){let[r,n]=t.trim().split(/\s+/);if(r!=="usage_usec")continue;let o=Number(n);return!Number.isFinite(o)||o<0?null:o/1e6}return null}function DC(e,t){return t.procRoot!=null||e==="linux"?jC(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?MC(OC(t.psTable)):new Map}function OC(e){try{return(e??FC)()}catch{return""}}function FC(){return yC("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var IC=1024;function MC(e){let t=new Map;for(let r of e.split(`
|
|
88
|
+
`)){let n=r.trim().split(/\s+/);if(n.length!==4)continue;let[o,s,i]=n.slice(0,3).map(Number);if(![o,s,i].every(l=>l!=null&&Number.isSafeInteger(l)&&l>=0))continue;let a=LC(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*IC,cpuSeconds:a})}return t}function LC(e){let t=e.indexOf("-"),r=t<0?0:Number(e.slice(0,t));if(!Number.isFinite(r)||r<0)return null;let n=e.slice(t+1).split(":"),o=r*86400,s=1;for(let i=n.length-1;i>=0;i--){let a=Number(n[i]);if(!Number.isFinite(a)||a<0||n[i]==="")return null;o+=a*s,s*=60}return o}function jC(e){let t=new Map,r;try{r=wC(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=ja(Hn(e,n,"stat"),"utf8")}catch{continue}let s=$C(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*xC,cpuSeconds:s.cpuTicks/BC})}return t}var BC=100;function $C(e){let t=e.lastIndexOf(")");if(t<0)return null;let r=Number(e.slice(0,e.indexOf(" "))),n=e.slice(t+1).trim().split(/\s+/),o=Number(n[1]),s=Number(n[11]),i=Number(n[12]),a=Number(n[21]);return!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(i)?null:{pid:r,ppid:o,rssPages:Math.max(0,a),cpuTicks:Math.max(0,s)+Math.max(0,i)}}var NC=["api","graphql"],dW=wc(NC);var Qb=100,nu=6e4,GC=2*nu,WC=7*24*60*60*1e3,ru=class extends Error{constructor(r,n,o){super(`redskilled polls every repository with one host token ${JSON.stringify(o)}, and project ${JSON.stringify(r)} declares its own credential ${JSON.stringify(n)}: a project needing its own credential invalidates the host-scoped poller (ADR 0130 Amendment 1) rather than bending it, so the poller returns to the projects instead of reaching this repository under the wrong identity`);this.projectLabel=r;this.tokenRef=n;this.hostTokenRef=o;this.name="RedskilledSplitCredentialError"}};function ou(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new ru(r.project_label,r.token_ref,t)}function ry(e,t={now:new Date(0).toISOString()}){ay(e);let r=t.closedWindowMs??WC,n=Date.parse(t.now);if(!Number.isFinite(n))throw new Error(`redskilled activity fetch needs an instant, not ${JSON.stringify(t.now)}`);let o=new Date(n-Math.max(0,r)).toISOString(),s=e.map((l,d)=>({alias:`r${d}`,search_alias:`c${d}`,project:l}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...s.flatMap(({alias:l,search_alias:d,project:c})=>{let u=JSON.stringify(c.owner),p=JSON.stringify(c.name),g=JSON.stringify(`repo:${c.owner}/${c.name} is:closed closed:>=${o}`);return[` ${l}: repository(owner: ${u}, name: ${p}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${d}: search(query: ${g}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
|
|
89
|
+
`),aliases:s,closed_since:o}}function HC(e,t,r){let n=Bo(t),o=Bo(n.data),s=Array.isArray(n.errors)?n.errors.map(Bo):[],i=JC(o.rateLimit,s),a=e.aliases.map(({alias:l,search_alias:d,project:c})=>{let u=c.owner+"/"+c.name,p=o[l],g=s.find(f=>ey(f.path,l)||ey(f.path,d));if(Ws(p)){let f=ty(p.open_pull_requests),y=ty(p.open_issues),h=YC(o[d]);if(f!=null&&y!=null&&h!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:y,recently_closed:h},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||ly(g)?{project_label:c.project_label,repository:u,outcome:"rate-limited",counts:null,detail:`the host token's quota was spent before ${u} answered, so this project has no counts rather than zero counts${i.reset_at==null?"":`; the quota resets at ${i.reset_at}`}`}:{project_label:c.project_label,repository:u,outcome:"unreachable",counts:null,detail:`${u} is not reachable with the host token: ${Ba(g?.message)||"the query returned no such repository"}`}});return{version:1,fetched_at:r.fetchedAt,request_count:1,project_count:a.length,rate_limit:i,projects:a}}function UC(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 ny(e){if(e.projects.length===0)return UC(e.now);if(ou(e.projects,e.hostTokenRef),e.transport.conditionalList)return await KC(e);let t=ry(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return HC(t,r,{fetchedAt:e.now})}catch(r){let n=r instanceof Error?r.message:String(r),o=/rate limit|secondary rate|429/i.test(n);return{version:1,fetched_at:e.now,request_count:1,project_count:e.projects.length,rate_limit:{remaining:null,reset_at:null,exhausted:o,point_cost:null},projects:e.projects.map(s=>({project_label:s.project_label,repository:`${s.owner}/${s.name}`,outcome:o?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${s.owner}/${s.name} answered: ${n}`}))}}}var qC={key:"redskilled repository activity poll",budget:"rest"};async function KC(e){ay(e.projects);let t=Date.parse(e.now),r=Number.isFinite(t)?new Date(Math.floor(t/(60*60*1e3))*60*60*1e3).toISOString():e.now,n=ry(e.projects,{now:r,closedWindowMs:e.closedWindowMs}),o=e.transport.conditionalList,s=[],i=0,a={remaining:null,reset_at:null,exhausted:!1,point_cost:null};for(let l of e.projects){let d=`${l.owner}/${l.name}`,c=[["open-prs","GET /repos/{owner}/{repo}/pulls",{owner:l.owner,repo:l.name,state:"open"}],["open-issues","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"open"}],["recently-closed","GET /repos/{owner}/{repo}/issues",{owner:l.owner,repo:l.name,state:"closed",since:n.closed_since}]],u=[];try{for(let[p,g,f]of c){let y=await o({cacheKey:`activity:${d}:${p}:${JSON.stringify(f)}`,route:g,parameters:f,operation:qC});i+=y.requestCount;let h=p==="open-prs"?y.data:y.data.filter(R=>!Ws(R.pull_request));u.push(p==="recently-closed"?h.filter(R=>Ba(R.closed_at)>=n.closed_since).length:h.length),a=Xb(a,zC(y.headers))}s.push({project_label:l.project_label,repository:d,outcome:"counted",counts:{open_pull_requests:u[0],open_issues:u[1],recently_closed:u[2]},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(p){let g=Ns(p);a=Xb(a,{remaining:null,reset_at:null,exhausted:g,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:g?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${p instanceof Error?p.message:String(p)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function oy(e){let t=e.stalenessMs??GC,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 sy(e){if(!Ws(e))return!1;let t=e;return t.version===1&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&Number.isInteger(t.request_count)&&Ws(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function iy(e){let t=e.endpoint==null?void 0:VC(e.endpoint),r=Kc({token:e.token,...t?{baseUrl:t}:{},...e.fetchImpl?{fetchImpl:e.fetchImpl}:{},...e.attribution?{attribution:e.attribution}:{},...e.retryCount===void 0?{}:{retryCount:e.retryCount},...e.throttle===void 0?{}:{throttle:e.throttle}}),n=async o=>await r.graphql(o);return n.conditionalList=async o=>await r.conditionalPaginate({cacheKey:o.cacheKey,route:o.route,parameters:o.parameters,operation:o.operation}),n}function VC(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 zC(e){let t=Zb(e,"x-ratelimit-remaining"),r=Zb(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Xb(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 Zb(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 ay(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>Qb)throw new Error(`redskilled activity fetch spans at most ${Qb} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function JC(e,t){let r=Bo(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(ly),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 ly(e){if(e==null)return!1;let t=Ba(e.type),r=Ba(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function ey(e,t){return Array.isArray(e)&&e.includes(t)}function ty(e){let t=Bo(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function YC(e){let t=Bo(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Bo(e){return Ws(e)?e:{}}function Ws(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ba(e){return typeof e=="string"?e:""}function cy(e,t){let r=[...e].sort((i,a)=>(Hs(a.ts)??0)-(Hs(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(dy),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=QC(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:dy(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function dy(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 QC(e){let t=new Map;for(let n of e){if(n.sender_class!=="boot-refused"||n.uptime_s==null||n.uptime_s>2||n.project_label==null||n.project_label===""||Hs(n.ts)==null)continue;let o=t.get(n.project_label)??[];o.push(n),t.set(n.project_label,o)}return[...t.entries()].filter(([,n])=>n.length>=3).map(([n,o])=>{let s=o[0],i=Hs(s.ts),a=Math.min(...o.map(d=>Hs(d.ts))),l=s.detail?.trim()||s.evidence[0]?.trim();return l==null||l===""?null:{project_label:n,count:o.length,span_ms:Math.max(0,i-a),latest_refusal:l}}).filter(n=>n!=null).sort((n,o)=>o.count-n.count||o.span_ms-n.span_ms)[0]??null}function su(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Number.isInteger(t.count)&&Array.isArray(t.recent)}function Hs(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var XC=3e4,ZC=["logs","vitals","display"];function py(e,t){if(t===void 0)return e;let r=ZC.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:eD,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:tD},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var eD={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},tD={last_line:null,published_at:null,source:null};function fy(e){let t=e.stalenessMs??XC,r=iu(e.now),n=e.sampledAt==null?null:iu(e.sampledAt),o=r==null||n==null?null:Math.max(0,r-n),s=o!=null&&o<=t,i=new Set(e.reattachedWorkerIds??[]),a=e.hostState.workers.map(p=>nD(p,{rss:e.rss,sampledAt:e.sampledAt,ageMs:o,sampleFresh:s,nowMs:r,log:e.logLines?.[p.worker_id],display:e.displays?.[p.worker_id],state:i.has(p.worker_id)?"reattached":"running"})),l=a.filter(p=>p.vitals.rss_bytes==null).map(p=>p.worker_id).sort(),d=a.length-l.length,c=a.reduce((p,g)=>p+(g.vitals.rss_bytes??0),0),u=ga(e.hostState.workers);return{version:1,generated_at:e.now,daemon:{pid:e.hostState.pid,daemon_version:e.hostState.daemon_version,protocol_version:e.hostState.protocol_version,started_at:e.hostState.started_at,machine_id_hash:e.hostState.machine_id_hash,session_key_hash:e.hostState.session_key_hash},staleness:aD({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:iD(a),known_projects:sD(e.hostState),registered_projects:(e.hostState.registrations??[]).map(p=>p.project_label).sort((p,g)=>p.localeCompare(g)),lapsed_projects:(e.hostState.lapsed_registrations??[]).map(p=>({project_label:p.project_label,at:p.at,...p.registered_at==null?{}:{registered_at:p.registered_at},reason:p.detail})),stopped_projects:(e.hostState.stopped_registrations??[]).map(p=>({project_label:p.project_label,at:p.at})),orphaned_projects:(e.hostState.orphaned_registrations??[]).map(p=>p.project_label),workers:a,github_balance:Xc({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:oy({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),...e.deaths===void 0?{}:{deaths:cy(e.deaths,e.recentDeathLimit??4)},engine:rD(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function rD(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 nD(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Gs(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=iu(e.started_at);return{worker_id:e.worker_id,project_label:e.project_label,workspace_path:e.workspace_path,pid:e.pid,started_at:e.started_at,...e.base_commits_ahead==null?{}:{base_commits_ahead:e.base_commits_ahead},uptime_ms:t.nowMs==null||i==null?null:Math.max(0,t.nowMs-i),state:t.state,isolated:e.isolated,unit:e.unit??null,warnings:[...e.warnings],vitals:{rss_bytes:n,sampled_at:n==null?null:t.sampledAt,age_ms:n==null?null:t.ageMs,fresh:n!=null&&t.sampleFresh,rss_source:n==null?null:e.rss_source??null},budget:{name:o?.name??null,declared:o?.declared??s,bytes:o?.bytes??null,used_bytes:n,used_fraction:o==null||o.bytes<=0||n==null?null:n/o.bytes,enforceable:o!=null},log:oD(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function oD(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 sD(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 iD(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 aD(e){let t={sampled_at:e.sampledAt,age_ms:e.ageMs,threshold_ms:e.threshold,measured_worker_count:e.measuredCount,unmeasured_workers:e.unmeasured};return e.workerCount===0?{...t,stale:!1,reason:"the host holds no Workers, so there is nothing to measure and nothing to age"}:e.sampledAt==null||e.ageMs==null?{...t,stale:!0,reason:`this answer is stale: the daemon has taken no measurement of its ${e.workerCount} live Worker(s) yet`}:e.ageMs>e.threshold?{...t,stale:!0,reason:`this answer is stale: its measurement is ${e.ageMs}ms old, past the ${e.threshold}ms staleness window`}:{...t,stale:!1,reason:`measured ${e.ageMs}ms ago, within the ${e.threshold}ms staleness window`}}function iu(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function au(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.daemon,n=t.staleness,o=t.host;return t.version===1&&typeof t.generated_at=="string"&&r!=null&&typeof r=="object"&&Number.isInteger(r.pid)&&typeof r.daemon_version=="string"&&typeof r.protocol_version=="number"&&n!=null&&typeof n=="object"&&typeof n.stale=="boolean"&&typeof n.threshold_ms=="number"&&Array.isArray(n.unmeasured_workers)&&o!=null&&typeof o=="object"&&Number.isInteger(o.worker_count)&&Number.isInteger(o.project_count)&&typeof o.observed_rss_bytes=="number"&&Array.isArray(t.projects)&&Array.isArray(t.workers)&&(t.known_projects===void 0||Array.isArray(t.known_projects)&&t.known_projects.every(s=>typeof s=="string"))&&(t.registered_projects===void 0||Array.isArray(t.registered_projects)&&t.registered_projects.every(s=>typeof s=="string"))&&(t.lapsed_projects===void 0||Array.isArray(t.lapsed_projects)&&t.lapsed_projects.every(lD))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(dD))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||sy(t.repository_activity))&&(t.github_balance===void 0||Zc(t.github_balance))&&(t.deaths===void 0||su(t.deaths))&&(t.engine===void 0||cD(t.engine))&&(t.metrics===void 0||Wh(t.metrics))}function lD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.reason=="string"}function dD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.at=="string"}function cD(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 gy={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 hy(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var kt=e=>`\x1B[${e}m`,Us=kt("48;2;114;47;55"),lu=kt("48;2;88;36;42"),hn=kt("38;2;255;255;255"),du=kt("38;2;201;150;158"),qs=kt("38;2;255;214;214"),Ks=kt("39"),Bt=kt("38;2;224;138;148"),cu=kt("38;2;240;200;120"),uu=kt("38;2;240;110;120"),pu=kt("38;2;255;214;214"),fu=kt("38;2;146;84;94"),gu=kt("38;2;255;95;95"),Cr=kt("49"),lr=kt("0"),$a=kt("1"),Na=kt("22");var uD=/\x1b\[[0-9;]*m/g,pD=/(\x1b\[[0-9;]*m)/,fD=/^\x1b\[[0-9;]*m$/;function Un(e){return e.replace(uD,"")}function gD(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Qt(e){return[...Un(e)].length}function Qe(e,t){if(t<=0)return"";if(Qt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(pD))if(i!==""){if(fD.test(i)){s+=i,o=!gD(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 Vs(e,t){return e+" ".repeat(Math.max(0,t-Qt(e)))}function hu(e){let t=e.toLowerCase();for(let r of["opus","sonnet","haiku","fable"]){let n=t.indexOf(r);if(n===-1)continue;let s=t.slice(n+r.length).match(/^-(\d+(?:[-.]\d+)*)/)?.[1]?.split(/[-.]/)??[];return/^\d{8}$/.test(s.at(-1)??"")&&s.pop(),s.length===0?r:`${r}-${s.join(".")}`}return e}function dr(e){if(!Number.isFinite(e)||e<=0)return"0B";let t=["B","K","M","G","T"],r=e,n=0;for(;r>=1024&&n<t.length-1;)r/=1024,n+=1;return`${r>=100||n===0?Math.round(r).toString():r.toFixed(1).replace(/\.0$/,"")}${t[n]}`}function zs(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function mn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return zs(e);if(e<=0)return"0";let t=(Math.round(e*10)/10).toFixed(1);return t.endsWith(".0")?t.slice(0,-2):t}function bn(e){if(e==null||!Number.isFinite(e)||e<0)return"\u2014";let t=Math.floor(e/1e3);if(t<60)return`${t}s`;let r=Math.floor(t/60);if(r<60)return`${r}m${t%60}s`;let n=Math.floor(r/60);return n<24?`${n}h${r%60}m`:`${Math.floor(n/24)}d${n%24}h`}function $o(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Js="!unregistered",mu="!lapsed",Ys="\u21E1",Dr="\u2020",No="\u25D0",Go="\u25EF",bu="\u21B3",yu="redskilled unreachable \u2014 Worker state unknown";function Wo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Ga(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function Qs(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function ku(e){let t=[];return e.workers.length>0&&e.workers.length<=e.maxWorkers&&t.push("workers"),e.mode==="global"&&e.projects.length>0&&e.projects.length<=e.maxProjects&&t.push("projects"),t.push("host"),t}function Wa(e,t){return e.startsWith(t)?e.slice(t.length):e}function Or(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function wu(e,t,r){return r<110?{variant:"compact",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"work",header:"Work",flex:2,minWidth:14,truncate:!0},{key:"state",header:"State",flex:2,minWidth:14,truncate:!0},{key:"activity",header:"Latest activity",flex:3,minWidth:18,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,work:Or(Wa(n.cells.iss,"iss="),n.cells.phase),state:Or(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}:{variant:"operational",columns:[{key:"worker",header:"Worker",flex:2,minWidth:16,truncate:!0},{key:"issue",header:"Issue",width:7},{key:"runner",header:"Runner",flex:1,minWidth:12,truncate:!0},{key:"phase",header:"Phase",flex:2,minWidth:16,truncate:!0},{key:"progress",header:"Progress",width:9},{key:"elapsed",header:"Elapsed",width:9,align:"right"},{key:"eta",header:"ETA",width:8,align:"right"},{key:"activity",header:"Activity",flex:2,minWidth:16,truncate:!0}],rows:e.map((n,o)=>({worker:n.cells.wid,issue:Or(Wa(n.cells.iss,"iss=")),runner:Or(Wa(n.cells.run,"run=")),phase:Or(n.cells.phase),progress:Or(n.cells.bar),elapsed:Or(n.cells.elapsed),eta:Wa(Or(n.cells.eta),"eta="),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}}var yn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],$t={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},hD=" ",my="\u2588",mD="\u25B6",bD="\u2717",yD="\u2591",kD=new Set(["gate","push-pr","merge","cascade"]),wD=new Set(["requeue"]),RD="repair";function Xs(e){return e.display?.origin===RD}function Ho(e,t=$t){let r=Qs(e,t.project),n=Wo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>Ua(y,t,e.generated_at)),i=ID(s),a=o.map((y,h)=>({worker_id:y.worker_id,project_label:y.project_label,mine:t.project!=null&&y.project_label===t.project,cells:s[h],line:Qe(MD(s[h],i),t.maxWidth)})),l=wu(a,o,t.maxWidth),d=xD(e,t,n,r),c=n.length-o.length,u=[d.line,...AD(e,t),...a.map(y=>y.line)];c>0&&u.push(Qe(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...TD(e,t)),u.push(...SD(e,t));let p=Math.max(1,Math.floor(t.maxHeight??$t.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Qe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:yn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function Ua(e,t,r){let n=e.display??gy,o=Xs(e),s=[n.runner,n.model==null?null:hu(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&kD.has(n.phase),a=o||i||n.origin!=null&&wD.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:yy(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:bn(hy(e,r)),eta:n.eta==null?"":`eta=${bn(n.eta*1e3)}`,hb:_D(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":FD(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${zs(n.tokens)}`,ctx:n.context==null?"":`ctx=${zs(n.context)}`,tls:a||n.tools==null?"":`tls=${n.tools}`,rsn:a||n.reasoning==null?"":`rsn=${n.reasoning}`,txt:a||n.text==null?"":`txt=${n.text}`}}function _D(e,t){if(e.wait_kind==null||e.wait_subject==null||e.wait_pid==null||e.wait_pid<=0||e.wait_started_at==null)return null;let r=Date.parse(e.wait_started_at),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:`${e.wait_kind}=${e.wait_subject} ${bn(Math.max(0,n-r))}`}function yy(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 my.repeat(Math.floor(t));let o=e.failed?bD:mD;return`${my.repeat(n)}${o}${yD.repeat(Math.floor(t)-n-1)}`}function xD(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s={open_pull_requests:o?.counts?.open_pull_requests??null,recently_closed:o?.counts?.recently_closed??null,open_issues:o?.counts?.open_issues??null,stale:o?.stale===!0},i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=OD(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=[ED(l??"host",c,d!=null&&d.current===!1?Ys:"")];(n==="unregistered"||n==="name-only")&&g.push(Js),n==="lapsed"&&g.push(mu);let f=p?.history_48h==null?null:PD(p.history_48h);f!=null&&g.push(Yr(f));let y=e.workers.filter(Xs).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Yr(`workers=${M} coding +`)} ${Us}${hn}${y} repairing${Cr}${Bt}`)}else g.push(Yr(`wrk=${r.length}/${e.host.worker_count}`));let h=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Yr(`${h} reserve=${i.interactive_reservation} interactive`)),g.push(Yr(DD(i))),a!=null&&g.push(`${Us}${hn}${a}${Cr}${Bt}`),s.open_pull_requests!=null&&g.push(Yr(`prs=${s.open_pull_requests}`)),s.recently_closed!=null&&g.push(Yr(`cpr=${s.recently_closed}`)),s.open_issues!=null&&g.push(Yr(`iss=${s.open_issues}`)),s.stale&&g.push("!counts stale");let R=p==null?null:ky(p.hour),T=R==null?null:Yr(R);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=$o(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${vD(M.span_ms)}`+(N==null?"":` \u2014 ${N}`))}if(e.staleness.stale){let M=e.staleness.age_ms;g.push(M==null?"!unmeasured":`!stale ${Math.round(M/1e3)}s`)}let $=`${g.join(" \xB7 ")}${lr}`,D=R!=null&&Qt($)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${lr}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Qe(D,t.maxWidth)}}function ED(e,t,r){return`${lu}${hn}${cu}\xBB${hn} ${$a}${e}${Na} ${du}v${t}${r}${hn}${Cr}${Bt}`}function Yr(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${qs}${n}${Ks}${o}${Bt}`)}function vD(e){return bn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function ky(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${mn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${mn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${mn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function SD(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?Go:No,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Qe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function TD(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Qe(`${Dr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Qe(`${Dr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Qe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function PD(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${mn(t)} ${Ru(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${mn(r)} ${Ru(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function AD(e,t){let r=e.metrics;return r==null?[Qe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Qe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[by("tokens",r.history_48h.tokens_per_hour,t),by("Tickets",r.history_48h.tickets_per_hour,t)]}var Ha=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function by(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${mn(o)}/h ${Ru(t.trend)}`.trim();if(r.maxWidth<72)return Qe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Qe(`${n} 48h ${CD(t)} \xB7 ${a}${l}`,r.maxWidth)}function CD(e){let t=e.buckets.flatMap(n=>n.value==null?[]:[Math.max(0,n.value)]),r=Math.max(0,...t);return e.buckets.map(n=>n.value==null?"\xB7":r===0?Ha[0]:Ha[Math.min(Ha.length-1,Math.floor(Math.max(0,n.value)/r*(Ha.length-1)))]).join("")}function Ru(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function DD(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${dr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${dr(e.memory_used_bytes)}/${dr(e.memory_ceiling_bytes)}${t}`}function OD(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 FD(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 ID(e){let t=Object.fromEntries(yn.map(r=>[r,0]));for(let r of e)for(let n of yn)t[n]=Math.max(t[n],Qt(r[n]));return t}function MD(e,t){let r=yn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>qa(o,Vs(e[o],s===r.length-1?Qt(e[o]):t[o])));return`${Cr}${Bt}${n.join(hD)}${lr}`}function qa(e,t){if(e==="wid")return`${$a}${t}${Na}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Us}${hn}${t.trimEnd()}${Cr}${Bt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${uu}${n}`).replace("\u25B6",`${pu}\u25B6`).replace("\u2717",`${gu}\u2717`).replace(/░+/g,n=>`${fu}${n}`)+Bt;let r=t.indexOf("=");return r>0?`${qs}${t.slice(0,r+1)}${Ks}${t.slice(r+1)}${Bt}`:t}function xu(e){return Object.freeze({none:!0,reason:e})}function Ka(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function _u(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError("repair args must contain only finite JSON numbers");return e}if(t.has(e))throw new TypeError("repair args must not contain cycles");t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(n=>_u(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=_u(o,t);return Object.freeze(r)}finally{t.delete(e)}}function LD(e){let t=_u(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Uo(e){if("none"in e.repair)return{prose:`${e.state}; repair: none because ${e.repair.reason}`,repair:"none",repair_reason:e.repair.reason};let t=LD(e.repair);return{prose:`${e.state}; repair: call \`${t.tool}\` with \`${JSON.stringify(t.args)}\` because ${t.why}`,repair:t}}var Ge={mode:"local",project:null,maxWorkers:4,maxProjects:4,maxWidth:120,separator:" \xB7 ",verbose:!1};function qn(e,t=Ge){let r=Qs(e,t.project),n=Wo(e,t),o=Ga(e,t),s=WD(e,t.project,r),i=BD(e,t,n,r,s.prose),a=ku({mode:t.mode,maxWorkers:t.maxWorkers,maxProjects:t.maxProjects,workers:n,projects:o}),l={detail:"host",line:i};for(let g of a){let f=g==="workers"?i:VD(i,jD(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Qt(f)<=t.maxWidth)break}let d=Qe(l.line,t.maxWidth),c=l.detail==="workers"?UD(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?qD(g,t):null;return y==null?[c.lines[f]]:[c.lines[f],y]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function Tu(e){let t=e.options??Ge,r=Qe(yu,t.maxWidth);return{version:1,line:r,lines:[r],verbose:t.verbose,mode:t.mode,project:t.project,project_match:"unanswered",detail:"host",degraded:!0,stale:!0,generated_at:e.generated_at}}function jD(e,t){return e==="projects"?t.map(KD):[]}function BD(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${Eu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(Su(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${Eu(r,r.length)}`),s.push(Su(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${Eu(r,r.length)}`),s.push(Su(e,t)),s.push(Js)):s.push(o),s.push(wy(e));let a=$D(e);a!=null&&s.push(a);let l=ND(e);l!=null&&s.push(l),e.staleness.stale&&s.push(Ry(e));let d=s.join(" ");return!i||Qt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,wy(e),e.staleness.stale?Ry(e):null].filter(c=>c!=null).join(" ")}function Eu(e,t){let r=e.filter(Xs).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function wy(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Ys}`}function $D(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Go} quota spent`:t.posture==="reserved"?`${No} quota band`:null}function ND(e){let t=e.deaths;if(t==null)return null;let r=t.sender_attributed_count??t.count,n=t.sender_attributed_count===void 0?t.latest:t.latest_sender_attributed??null;if(r<=0||n==null)return null;let o=t.boot_loop;if(o!=null){let s=$o(o.latest_refusal);return`${Dr}${r} boot-refused \xD7${o.count} in ${GD(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Dr}${r} ${n.sender_class}`}function GD(e){return bn(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function WD(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return Uo({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:xu("this socket cannot safely replace a registration owned by an unreachable daemon")});if(r==="stopped"){let n=e.stopped_projects?.find(o=>o.project_label===t);return Uo({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${vu(n.at)}`}`,repair:Ka()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${vu(n.registered_at)})`;return Uo({state:`project unknown \u2014 ${t} lapsed at ${vu(n.at)}${o}`,repair:Ka()})}return Uo({state:`project unknown \u2014 ${t} lapsed`,repair:Ka()})}return r==="unresolved"?Uo({state:"project unknown \u2014 this directory resolved to no project",repair:xu("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function vu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function Su(e,t){let r=t.mode==="global"?e.host.observed_rss_bytes:e.projects.filter(o=>o.project_label===t.project).reduce((o,s)=>o+s.observed_rss_bytes,0),n=e.host.ceiling.memory_bytes;return t.mode==="global"&&n!=null&&n>0?`${dr(r)}/${dr(n)}`:dr(r)}function Ry(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function HD(e,t,r,n){let o=r.map(s=>qa(s,Vs(e[s],t[s])));return Qe(`${Cr}${Bt}${o.join(" ")}${lr}`,n)}function UD(e,t,r){let n=e.map(a=>Ua(a,t,r)),o=yn.filter(a=>n.some(l=>Qt(l[a])>0)),s=[...o],i=_y(n,s);for(;s.length>1&&xy(i,s)>t.maxWidth;)s.pop(),i=_y(n,s);return{lines:n.map(a=>HD(a,i,s,t.maxWidth)),degraded:s.length<o.length||xy(i,s)>t.maxWidth}}function _y(e,t){let r=Object.fromEntries(yn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Qt(n[o]));return r}function xy(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function qD(e,t){let r=$o(e.log.last_line);return r==null?null:Qe(` ${bu} ${Ey(e,t.mode)}: ${r}`,t.maxWidth)}function Ey(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function KD(e){return`${e.project_label} ${e.worker_count}w ${dr(e.observed_rss_bytes)}`}function VD(e,t,r){return[e,...t].join(r)}var Va=1;async function Zs(e,t){return await aa(e,t,"redskilled daemon")}function Sy(e){let t=[...e.workers??[]],r=new Map;for(let n of t)r.set(n.project_label,(r.get(n.project_label)??0)+1);return{version:1,protocol_version:Va,daemon_version:e.daemonVersion,machine_id_hash:e.machineIdHash,session_key_hash:e.sessionKeyHash,pid:e.pid,started_at:e.startedAt,...e.ceiling==null?{}:{ceiling:e.ceiling},...e.scope==null?{}:{scope:e.scope},workers:t,projects:[...r.entries()].map(([n,o])=>({project_label:n,worker_count:o})).sort((n,o)=>n.project_label.localeCompare(o.project_label)),registrations:QD(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:qh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:XD(e)}}function QD(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:Dm(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 XD(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 Ty(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||nO(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Kh(t.budget_accounting)&&(t.scope===void 0||Sm(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Ls))&&(t.demand===void 0||fm(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(eO))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(tO))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(rO))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(ZD))&&(t.upgrade===void 0||oO(t.upgrade))}function ZD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.repair;return t.name==="project-birth-breaker"&&typeof t.project_label=="string"&&(t.state==="open"||t.state==="half-open")&&typeof t.opened_at=="string"&&typeof t.reason=="string"&&typeof t.closes=="string"&&(t.probe_worker_id===null||typeof t.probe_worker_id=="string")&&r!=null&&r.tool==="project_reset"&&typeof r.args=="object"&&r.args!==null&&typeof r.why=="string"}function eO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.at=="string"&&typeof t.renew_by=="string"&&Number.isInteger(t.renewals)&&Number.isInteger(t.sustains)&&typeof t.detail=="string"}function tO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.project_label=="string"&&typeof t.registered_at=="string"&&typeof t.at=="string"&&typeof t.detail=="string"}function rO(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 nO(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 oO(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||sO(t.major_hold))}function sO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.version=="string"&&Number.isInteger(t.running_major)&&Number.isInteger(t.held_major)&&typeof t.reason=="string"&&typeof t.action=="string"&&t.action.trim()!==""}import{randomUUID as iO}from"node:crypto";import{mkdir as aO,readFile as lO,rename as dO,writeFile as cO}from"node:fs/promises";import{dirname as uO}from"node:path";function Py(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await lO(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=pO(s);return fO(i)?i.registrations:[]}async function o(s){await aO(uO(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${iO()}.tmp`,a={version:1,registrations:[...s]};await cO(i,`${ot(a,{keyedMapCollapse:!0})}
|
|
90
|
+
`,{encoding:"utf8",mode:384}),await dO(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 pO(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function fO(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Array.isArray(t.registrations)&&t.registrations.every(Ls)}import{randomInt as DO}from"node:crypto";import{spawn as OO}from"node:child_process";import{appendFileSync as FO,mkdirSync as IO}from"node:fs";import{dirname as MO}from"node:path";import{delimiter as Ay,dirname as gO}from"node:path";function hO(e,t=Ay){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function mO(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=gO(t);return r===""||r==="."?null:r}function Cy(e,t=process.execPath,r=Ay){let n=hO(e,r),o=mO(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}import{existsSync as Ou}from"node:fs";import{delimiter as vO,join as Ny}from"node:path";import{join as Dy}from"node:path";import{existsSync as bO}from"node:fs";import{createRequire as yO}from"node:module";var Oy="redskilled-job-object.node",Kn=100;function qo(e){return{available:!1,reason:e}}function kO(e,t,r){return[Dy(r,"prebuilds",`${e}-${t}`,Oy),Dy(r,"native","build","Release",Oy)]}function Fy(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return qo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??RO(),o=e.exists??bO,s=kO(t,r,n),i=s.find(d=>o(d));if(i==null)return qo(`no Job Object addon was found for ${t}-${r} (looked in ${s.join(", ")}); either install the prebuild for this platform and architecture or build the addon locally`);let a=e.requireFn??yO(import.meta.url),l;try{l=a(i)}catch(d){return qo(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return wO(l)?{available:!0,binding:l}:qo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function wO(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function RO(){return new URL("..",import.meta.url).pathname}function Iy(e){let t=e??{},r=[],n=_O(t);n==null&&(t.memory_max??t.memory_high)!=null&&r.push("the declared memory budget could not be reduced to bytes, so the job carries no memory ceiling");let o;return t.cpu_weight!=null&&(t.cpu_weight<Kn?o=Math.max(1,Math.min(100,Math.round(t.cpu_weight))):r.push(`cpu_weight=${t.cpu_weight} is at or above the fair share of ${Kn}, and Windows CPU rate control is an absolute cap rather than a share, so no rate limit is set`)),{...n!=null?{memory_limit_bytes:n.bytes,memory_budget_name:n.name,memory_budget_declared:n.declared}:{},...o!=null?{cpu_rate_percent:o}:{},kill_on_close:!0,...r.length>0?{note:r.join("; ")}:{}}}function _O(e){return Gs({budget:e})}var za=5,My=19;function Pu(e){return{available:!1,reason:e}}var xO="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 jy(e,t){let r=e??{},n=[],o;if(!t.canRenice)n.push("nice is not on this host, so no priority control was applied and the Worker competes with interactive work");else if(r.cpu_weight==null)o=za;else if(r.cpu_weight<Kn){let a=Math.round(My*(Kn-r.cpu_weight)/Kn);o=Math.min(My,Math.max(za,a))}else o=za,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${Kn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${za}`);let s=Ly(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=Ly(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:xO,...n.length>0?{note:n.join("; ")}:{}}}function By(e){let{limits:t}=e,r=[];return t.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t.nice!=null&&e.nice!=null?`exec ${EO(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
|
|
91
|
+
`),e.command,...e.args]}function $y(e){let t=[];return e.nice!=null?t.push(`the Worker runs at nice ${e.nice} so it yields to interactive work`):t.push("no priority control was applied"),e.max_processes!=null&&t.push(`its processes are capped at ${e.max_processes}`),e.cpu_seconds!=null&&t.push(`its CPU time is capped at ${e.cpu_seconds} seconds`),`macOS placement applied POSIX limits: ${t.join(", ")}. macOS has no resource-group equivalent, so the Worker is charged to the daemon's own resource group, and ${e.memory_ceiling_reason}`+(e.note!=null?` (${e.note})`:"")}function Au(e){let t=e??{},r=[t.max_processes!=null?"max_processes":null,t.cpu_seconds!=null?"cpu_seconds":null].filter(n=>n!=null);return r.length===0?null:`${r.join(" and ")} ${r.length===1?"is a POSIX rlimit":"are POSIX rlimits"} honoured only by the macOS placement backend, so this placement carries no equivalent`}function Ly(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function EO(e){return`'${e.replace(/'/g,"'\\''")}'`}var Gy="REDSKILLED_PLACEMENT",Ja="red-worker",Cu="/bin/sh";function Wy(e=process.env,t=process.platform){let r=Pu(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:Fy({platform:t}),posix:r};let n=qo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);if(t==="darwin")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:SO(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&Ou(Ny(o,"systemd","private"));return{platform:t,systemdRun:Ky("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function SO(e){return Ou(Cu)?{available:!0,shell:Cu,nice:Ky("nice",e)}:Pu(`no POSIX shell was found at ${Cu}, so there is nothing to apply rlimits or priority in`)}function Hy(e=process.env){let t=(e[Gy]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function TO(e,t,r=Ja){return Uy(e,t,r).replace(/\.service$/,"")}function Uy(e,t,r=Ja){return`${Du(r,"red-worker",24)}-${Du(e,"project",32)}-${Du(t,"worker",32)}.service`}function qy(e){let t=[...e.args??[]],r={...e.budget??{},...e.budget?.memory_max==null&&e.memoryCeiling?.memory_max!=null?{memory_max:e.memoryCeiling.memory_max}:{}},n=r.memory_max??r.memory_high??null,o=r.memory_high!=null||r.memory_max!=null||r.cpu_weight!=null,s=e.target??{isolation:"transient-unit"},i=u=>({isolated:!1,backend:"none",command:e.command,args:t,cwd:e.workspacePath,warning:u,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Es({scope:null,memory_ceiling:n,scope_degradation:u}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}});if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${Gy}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return AO(e,t,r,n,o,i);if(e.probes.platform==="darwin")return PO(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=Uy(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`];e.pipeOutput===!0&&l.push("--pipe"),r.memory_high!=null&&l.push(`--property=MemoryHigh=${r.memory_high}`),r.memory_max!=null&&l.push(`--property=MemoryMax=${r.memory_max}`),r.cpu_weight!=null&&l.push(`--property=CPUWeight=${r.cpu_weight}`);let d=Es({scope:a,memory_ceiling:n,scope_degradation:null});for(let[u,p]of Object.entries({...e.env??{},...d}))l.push(`--setenv=${u}=${p}`);let c=Au(e.budget);return{isolated:!0,backend:"transient-unit",unit:a,command:e.probes.systemdRun,args:[...l,"--",e.command,...t],budget:r,...n!=null?{memoryCeiling:n}:{},environment:d,...c!=null?{budgetWarning:c}:{}}}function PO(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=jy(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=$y(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:By({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:Es({scope:null,memory_ceiling:n,scope_degradation:l}),...a?{budgetWarning:"the declared memory budget is enforced by the daemon's RSS sampling floor rather than by the kernel: "+i.memory_ceiling_reason}:{}}}function AO(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=Iy(r),l=TO(e.projectLabel,e.workerId,e.target?.unit_prefix);return{isolated:!0,backend:"job-object",command:e.command,args:[...t],cwd:e.workspacePath,job:{name:l,limits:a},budget:r,...n!=null?{memoryCeiling:n}:{},environment:Es({scope:l,memory_ceiling:n,scope_degradation:null}),...CO(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,Au(e.budget))}}function CO(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function Ky(e,t){for(let r of(t.PATH??"").split(vO)){if(!r)continue;let n=Ny(r,e);if(Ou(n))return n}return null}function Du(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}var Ko=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},Xt=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},Fu="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",Vy=4,LO=Fu.length**Vy;function ei(e,t=DO){let r=new Set(e);for(let n=0;n<LO;n+=1){let o="h";for(let s=0;s<Vy;s+=1)o+=Fu[t(Fu.length)];if(!r.has(o))return o}throw new Ko("redskilled exhausted the host Worker id space")}function jO(e){if(e==null||e.trim()==="")return{ready:!1};let t=MO(e);try{return IO(t,{recursive:!0}),{ready:!0}}catch(r){let n=r?.code;return{ready:!1,warning:`redskilled could not create the log directory ${JSON.stringify(t)} for ${JSON.stringify(e)}${n==null?"":` (${n})`}: ${Iu(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function BO(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{FO(t,yt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
|
|
92
|
+
`);s=l.pop()??"";for(let d of l)i(d)}),n.on("end",()=>{s!==""&&i(s)})};r(e.stdout,"worker.stdout"),r(e.stderr,"worker.stderr")}function $O(e){let t=[["project_label",e.project_label],["workspace_path",e.workspace_path],["command",e.command]];for(let[r,n]of t)if(typeof n!="string"||n.trim()==="")throw new Ko(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new Ko("redskilled worker spec args must be an array")}function NO(e){if(e==null)throw new Xt("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new Xt(e.reason,e)}function zy(e){let{spec:t,admission:r}=e;NO(r),$O(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||ei(e.liveWorkerIds??[]),i=e.probes??Wy(n),a=Pm(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),l=e.openLog===!1?{ready:!1}:jO(a),d=l.ready,c={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:Cy(t.env?.PATH??n.PATH,e.execPath??process.execPath)},u=qy({workerId:s,projectLabel:t.project_label,workspacePath:t.workspace_path,command:t.command,args:t.args,budget:t.budget,...e.memoryCeiling!=null?{memoryCeiling:e.memoryCeiling}:{},target:t.placement,env:c,enabled:e.enabled??Hy(n),probes:i,pipeOutput:d}),g=(e.spawnFn??OO)(u.command,u.args,{...u.cwd!=null?{cwd:u.cwd}:{},detached:!0,stdio:d?["ignore","pipe","pipe"]:"ignore",env:u.backend==="transient-unit"?{...n}:{...n,...c,...u.environment}});if(d&&a!=null&&BO(g,a),g.pid==null)throw g.once("error",()=>{}),new Ko(`redskilled could not spawn ${JSON.stringify(u.command)} for worker ${s}`);let f=u.job!=null?GO(u,i,g.pid):null;g.once("error",()=>{}),g.once("exit",(T,$)=>{try{f?.job?.close()}catch{}e.onExit?.(s,T,$)}),g.unref();let y=u.job!=null?f?.job!=null:u.isolated,h=[u.warning,f?.warning,u.budgetWarning,l.warning].filter(T=>T!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:g.pid,started_at:o(),workspace_path:t.workspace_path,...d&&a!=null?{log_path:a}:{},isolated:y,...u.unit!=null?{unit:u.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(u.budget).length>0?{applied_budget:u.budget}:{},...u.memoryCeiling!=null?{memory_ceiling:u.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:h},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:h,plan:u,child:g,...f?.job!=null?{job:f.job}:{}}}function GO(e,t,r){let n=e.job;if(n==null)return{};let o="the Worker is charged to the daemon's own resource group and the daemon's RSS sampling floor is the only remaining ceiling";if(!t.jobObjects.available)return{warning:`Job Object placement unavailable: ${t.jobObjects.reason}. ${o}`};let s;try{s=t.jobObjects.binding.createJobObject({name:n.name,limits:n.limits})}catch(i){return{warning:`Job Object ${JSON.stringify(n.name)} could not be created: ${Iu(i)}. ${o}`}}try{s.assign(r)}catch(i){try{s.close()}catch{}return{warning:`Worker pid ${r} could not be assigned to Job Object ${JSON.stringify(n.name)}: ${Iu(i)}. ${o}`}}return{job:s}}function Iu(e){return e instanceof Error?e.message:String(e)}async function WO(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 Jy(e){let t=new Set,r=new Set;function n(o,s){let i=e.registration(s.project_label)?.hooks?.[o];if(i!=null)try{let a=ka(i,{worker_id:ei(e.liveWorkerIds()),slot:0,workspace_path:s.workspace_path},{project_label:s.project_label}),l=e.admit(a);if(!l.admitted)throw new Xt(l.reason,l);let d=e.start(a,l);if(t.add(d.worker_id),i.mode==="sync"){let c=i.deadline_ms,u=WO({deadlineMs:c,waiting:()=>t.has(d.worker_id),expire:()=>{e.recordExpiry(s.project_label,`project ${JSON.stringify(s.project_label)} sync ${o} hook exceeded its declared ${c}ms deadline; redskilled stopped waiting and proceeded`)}});r.add(u),u.finally(()=>r.delete(u))}}catch(a){let l=a instanceof Error?a.message:String(a);e.refuse(s.project_label,`project ${JSON.stringify(s.project_label)} registered an async ${o} hook, but redskilled refused it before launch: ${l}`)}}return{track:o=>t.add(o),onEvent(o,s){let i=t.has(s.worker_id);!i&&Oo.includes(o)&&n(o,s),i&&(o==="worker-death"||o==="worker-budget-kill")&&t.delete(s.worker_id)},async waitForSettled(){for(;r.size>0;)await Promise.all(r)}}}import{spawnSync as Ya}from"node:child_process";async function Mu(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}var Yy=3e4;function Qy(e){return e.unit!=null&&e.unit!==""?HO(e.unit):Ye(e.pid)}function HO(e){let t=Ya("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var UO="REDSKILLED_UNIT_DISCOVERY",Xy="(unowned)";function Zy(e){let t=Ya("systemctl",["--user","show","--property=MainPID","--value",e],{encoding:"utf8"});if(t.error!=null||t.status!==0)return null;let r=Number.parseInt((t.stdout??"").trim(),10);return Number.isInteger(r)&&r>0?r:null}function qO(e=process.env){let t=(e[UO]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function e0(e,t,r=process.env){return qO(r)&&e===t}function t0(e=Ja){let t=Ya("systemctl",["--user","list-units","--type=service","--state=active","--plain","--no-legend","--no-pager",`${e}-*.service`],{encoding:"utf8"});return t.error!=null||t.status!==0?[]:(t.stdout??"").split(`
|
|
93
|
+
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function r0(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:Xy,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 n0(e){return e.project_label.trim()!==""?e:{...e,project_label:Xy,warnings:[...e.warnings,"adopted at start with no owning project on the event lane: the daemon that birthed it recorded no project label, so it is held and counted under a stated placeholder rather than dropped"]}}function o0(e){if(e.unit!=null&&e.unit!==""){let t=Ya("systemctl",["--user","stop",e.unit],{stdio:"ignore"});return t.error==null&&t.status===0}try{return process.kill(e.pid,"SIGTERM"),!0}catch{return!1}}var ni=50,ju=15e3,xU=2*ju;function KO(e,t=ni){if(Bu(e),!Number.isInteger(t)||t<=0)throw new Error(`redskilled queue discovery needs a whole, positive batch size, not ${JSON.stringify(t)}`);let r=[];for(let n=0;n<e.length;n+=t)r.push(e.slice(n,n+t));return r}function i0(e,t={}){let r=t.batchSize??ni;if(Bu(e),e.length>r)throw new Error(`redskilled queue discovery spans at most ${r} selectors in one query, and this batch holds ${e.length}: split it with planQueueDiscoveryBatches rather than dropping the remainder`);let n=e.map((i,a)=>({alias:`q${a}`,project:i}));return{query:["query RedskilledQueueDiscovery {"," rateLimit { remaining resetAt }",...n.map(({alias:i,project:a})=>` ${i}: search(query: ${JSON.stringify(a.selector)}, type: ISSUE, first: 1) { issueCount }`),"}"].join(`
|
|
94
|
+
`),aliases:n}}function a0(e,t){let r=ri(t),n=ri(r.data),o=Array.isArray(r.errors)?r.errors.map(ri):[],s=QO(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=ZO(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=>XO(u.path,a));return s.exhausted||c0(c)?{project_label:l.project_label,outcome:"rate-limited",depth:null,detail:`the host token's quota was spent before project ${JSON.stringify(l.project_label)} answered, so this queue has no depth rather than a depth of zero`+(s.reset_at==null?"":`; the quota resets at ${s.reset_at}`)}:{project_label:l.project_label,outcome:"unreachable",depth:null,detail:`project ${JSON.stringify(l.project_label)} could not be counted with the host token: ${Lu(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function VO(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:ni,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function l0(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:ni,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:e.map(n=>({project_label:n.project_label,outcome:"unconfigured",depth:null,detail:`project ${JSON.stringify(n.project_label)} was not counted because this host polls no tracker: ${r}`}))}}async function d0(e){if(e.projects.length===0)return VO(e.now);if(e.transport.conditionalList)return await JO(e);let t=e.batchSize??ni,r=KO(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=i0(s,{batchSize:t});try{let a=await e.transport(i.query),l=a0(i,a);n.push(...l.projects),o=ti(o,l.rate_limit)}catch(a){let l=a instanceof Error?a.message:String(a),d=/rate limit|secondary rate|429/i.test(l);o=ti(o,{remaining:null,reset_at:null,exhausted:d});for(let c of s)n.push({project_label:c.project_label,outcome:d?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(c.project_label)} answered: ${l}`})}}return{version:1,fetched_at:e.now,request_count:r.length,project_count:n.length,batch_size:t,rate_limit:o,projects:n}}var zO={key:"redskilled queue poll",budget:"rest"};async function JO(e){Bu(e.projects);let t=e.transport.conditionalList,r=[],n={remaining:null,reset_at:null,exhausted:!1},o=0;for(let s of e.projects)try{if(s.poll==null){let l=i0([s],{batchSize:1}),d=a0(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=ti(n,d.rate_limit);continue}let i=await t({cacheKey:`queue:${s.project_label}:${JSON.stringify(s.poll)}`,route:"GET /repos/{owner}/{repo}/issues",parameters:{owner:s.poll.owner,repo:s.poll.repo,state:"open",labels:s.poll.labels.join(","),...s.poll.creator==null?{}:{creator:s.poll.creator}},operation:zO});o+=i.requestCount;let a=i.data.filter(l=>!u0(l.pull_request)).length;n=ti(n,YO(i.headers)),r.push({project_label:s.project_label,outcome:"counted",depth:a,detail:`project ${JSON.stringify(s.project_label)} has ${a} item(s) matching its selector`})}catch(i){let a=Ns(i);n=ti(n,{remaining:null,reset_at:null,exhausted:a}),r.push({project_label:s.project_label,outcome:a?"rate-limited":"unreachable",depth:null,detail:`the queue fetch failed before project ${JSON.stringify(s.project_label)} answered: ${i instanceof Error?i.message:String(i)}`})}return{version:1,fetched_at:e.now,request_count:o,project_count:r.length,batch_size:1,rate_limit:n,projects:r}}function Bu(e){if(e.length===0)throw new Error("redskilled queue discovery needs at least one registered project");let t=new Set;for(let r of e){if(typeof r.project_label!="string"||r.project_label==="")throw new Error("redskilled queue discovery needs a project label for every registered project");if(typeof r.selector!="string"||r.selector==="")throw new Error(`redskilled queue discovery needs a selector for project ${JSON.stringify(r.project_label)}: a project that names no work has no queue to discover`);if(t.has(r.project_label))throw new Error(`redskilled holds one selector per project, and ${JSON.stringify(r.project_label)} is registered twice`);t.add(r.project_label)}}function ti(e,t){return{remaining:t.remaining==null?e.remaining:e.remaining==null?t.remaining:Math.min(e.remaining,t.remaining),reset_at:t.reset_at??e.reset_at,exhausted:e.exhausted||t.exhausted}}function YO(e){let t=s0(e,"x-ratelimit-remaining"),r=s0(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function s0(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 QO(e,t){let r=ri(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null;return{remaining:n,reset_at:o,exhausted:t.some(c0)||n===0}}function c0(e){return e==null?!1:Lu(e.type)==="RATE_LIMITED"||/rate limit/i.test(Lu(e.message))}function XO(e,t){return Array.isArray(e)&&e.includes(t)}function ZO(e){let t=ri(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function ri(e){return u0(e)?e:{}}function u0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Lu(e){return typeof e=="string"?e:""}function p0(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(e1,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=t1?Math.max(t,3e4):o<=r1?Math.max(t,2e4):t}var e1=1e5,t1=250,r1=1e3;var n1={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},o1=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],s1=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function f0(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...n1};for(let n of o1){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of s1){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{execFile as i1}from"node:child_process";var a1="refs/heads/red-trunk";function $u(e){return`${e.workspace_path}\0${e.trunk.remote}\0${e.trunk.branch}`}function g0(e,t,r){let n=r instanceof Error?r.message:String(r);return{...e,admitted:!1,verdict:"refused-unreachable-trunk-remote",reason:`refused-unreachable-trunk-remote: redskilled refused this Worker because trunk remote ${JSON.stringify(t.trunk.remote)} could not refresh branch ${JSON.stringify(t.trunk.branch)}: ${n}`}}function Qa(e,t){return new Promise((r,n)=>{i1("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function h0(e){await Qa(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Qa(e.workspace_path,["rev-parse","--verify","FETCH_HEAD^{commit}"]);if(t==="")throw new Error("the fetched trunk did not resolve to a commit");return await Qa(e.workspace_path,["update-ref",a1,t]),t}async function m0(e){let t=await Qa(e.workspace_path,["rev-list","--count",`${e.fork_sha}..${e.head_sha}`]),r=Number(t);if(!Number.isInteger(r)||r<0)throw new Error(`git returned an invalid base movement count: ${t}`);return r}import{open as l1,stat as d1}from"node:fs/promises";var c1=16*1024;async function b0(e,t=c1){let r;try{r=(await d1(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await l1(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 u1(o)}function u1(e){let t=e.split(`
|
|
95
|
+
`);for(let r=t.length-1;r>=0;r-=1){let n=t[r].replace(/\r$/,"");if(n.trim()!=="")return n}return null}import{spawn as P1}from"node:child_process";import{existsSync as A1,readdirSync as C1}from"node:fs";import{dirname as D1,join as P0,resolve as O1}from"node:path";var p1="<version>";function kn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():p1;return[`npx -y -p ${$n}@${n}`,e,...t].join(" ")}function cr(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?{major:Number(t[1]),minor:Number(t[2]),patch:Number(t[3])}:null}function Nu(e,t){let r=cr(e),n=cr(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var MU=4*60*60*1e3;Kr();Kr();import{spawnSync as f1}from"node:child_process";import{randomUUID as g1}from"node:crypto";import{mkdir as h1,rm as m1,writeFile as b1}from"node:fs/promises";import{existsSync as y1,mkdirSync as k1,renameSync as w1,writeFileSync as R1}from"node:fs";import{homedir as _1}from"node:os";import{dirname as y0,join as oi}from"node:path";var Zt="redskilled.service",Gu="REDSKILLED_SUPERVISED",x1="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function E1(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||oi(e.HOME?.trim()||_1(),".config");return oi(t,"systemd","user")}function Vo(e=process.env){return oi(E1(e),Zt)}function k0(e,t={}){let r=t.env??process.env,n=ua(t.override??{},t.entryLookup??{}),o=[...n.args,...dn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:Zt,unitPath:Vo(r),command:n.command,args:o,text:v1(n.command,o,e)}}function v1(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${x1}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(_0).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${Gu}=1"`,`Environment="REDSKILLED_SESSION=${x0(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
|
|
96
|
+
`)}function S1(e=process.env){return oi(`${Vo(e)}.d`,"10-current-entry.conf")}function w0(e){return oi(`${e}.d`,"10-current-entry.conf")}function R0(e,t,r={}){let n=S1(r.env??process.env),o=`${n}.${process.pid}.${g1()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...dn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(_0).join(" ")}`,""].join(`
|
|
97
|
+
`);k1(y0(n),{recursive:!0,mode:448}),R1(o,i,{encoding:"utf8",mode:384}),w1(o,n);let a=(r.run??Za)(["systemctl","--user","daemon-reload"]);if(a.status!==0)throw new Error(`redskilled wrote the supervised replacement drop-in ${n}, but systemd did not reload it: ${(a.stderr??a.stdout??`status ${a.status}`).trim()}`);return n}function _0(e){return/[\s"'\\$%]/.test(e)?`"${x0(e)}"`:e}function x0(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function E0(e,t={}){let r=t.writeFile??T1,n=t.removeFile??T0,o=t.run??Za,s=[];return await r(e.unitPath,e.text),await n(w0(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(Xa("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(Xa("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function v0(e={}){let t=e.removeFile??T0,r=e.run??Za,n=Vo(e.env??process.env),o=[Xa("disable",r,["systemctl","--user","disable","--now",Zt])];return await t(n),await t(w0(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(Xa("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function S0(e={}){let t=e.exists??y1,r=e.run??Za,n=Vo(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Zt]).status===0,i=o&&r(["systemctl","--user","is-active",Zt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Zt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Zt}`}]:[];return{unitName:Zt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function Xa(e,t,r){let n=t(r),o=(n.stderr??n.stdout??"").trim();return{step:e,argv:r,ok:n.status===0,...o?{detail:o}:{}}}async function T1(e,t){await h1(y0(e),{recursive:!0}),await b1(e,t,{encoding:"utf8",mode:420})}async function T0(e){await m1(e,{force:!0})}function Za(e){let t=f1(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 A0=75,D0=9e5,C0="redskilled-replacement-entry-unresolved",F1="REDSKILLED_NO_REGISTRY_PROBE",O0="REDSKILLED_BORN_BY_REPLACEMENT";function F0(e=process.env){return e[O0]==="1"}function I0(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function M0(e){let t=e.running.trim();if(si(t))return null;let r=e.newest?.trim()??"",n=cr(r),o=cr(t);return n===null||o===null||n.major<=o.major?null:{version:r,running_major:o.major,held_major:n.major,reason:`redskilled ${r} is published and this daemon runs ${t}; a major version is deliberately never adopted by the background check, because a breaking change must not arrive on a machine that is holding Workers`,action:I1(n.major,e.supervised)}}function I1(e,t){let r=`install the ${e}.x bundle (update this machine's plugin pin), then `;return t?`${r}re-point the unit and restart it: ${kn("red-skills-redskilled",["unit","install"])} && systemctl --user restart redskilled.service`:`${r}stop this daemon \u2014 the next client start resolves the newly installed bundle`}function L0(e){let t=e.running.trim();if(si(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||cr(r)===null?{act:"hold",reason:"published-unknown"}:Nu(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function si(e){let t=e.trim();return cr(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function j0(e=process.env){return e[Gu]==="1"}var Wu=class extends Error{code=C0;searched;constructor(t,r){super(`${C0}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled
|
|
98
98
|
searched:
|
|
99
99
|
${r.map(n=>` ${n}`).join(`
|
|
100
|
-
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function
|
|
101
|
-
`}function G1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function W1(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||!Number.isInteger(t.pid)||t.pid<=0)return!1;for(let r of["start_time","session_key_hash","machine_id_hash","socket_path","acquired_at","renewed_at"])if(typeof t[r]!="string"||t[r].length===0)return!1;return!0}async function Q0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Co,o=e.clock??(()=>new Date().toISOString()),s=e.launch??Ky,i=e.refreshTrunk??f0,a=e.countBaseMovement??g0,l=e.ceiling??ha();e.repositoryActivity!=null&&ou(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??V0(),c=e.leaseStore??z0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??ba(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Is(t.machineClaimPath,p,{clock:o});await q1(V1(t.socketPath),{recursive:!0,mode:448});let[f,y]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),h=Date.parse(o()),R=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&y!=null&&f.pid===y.pid&&f.start_time===y.start_time&&f.socket_path===t.socketPath&&y.socket_path===t.socketPath&&Number.isFinite(h)&&Number.isFinite(R)&&h-R>=Sh&&await ic(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:y.pid,startTime:y.start_time,uid:y.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new zt(t.socketPath):new Vr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new zt(t.socketPath,D.lease);let M;try{M=await Dh(t.socketPath,async()=>{let[b,P]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return b!=null&&b.pid!==d.pid&&Ye(b.pid)?!0:P!=null&&P.socket_path===t.socketPath&&P.pid!==u.pid&&Ye(P.pid)})}catch(b){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),b}let N=o(),H=e.eventLane??im(t.eventLanePath),G=e.registrationIntentStore??Sy(t.registrationIntentPath),I=e.liveness??Jy,W=e.livenessGraceMs??zy,q=e.stopWorker??r0,oe=e.unitInventory??(()=>Xy(t.machineClaimPath,Fo({machineIdHash:t.machineIdHash}))?Zy():[]),ae=e.unitMainPid??Qy,se=e.treeSampler??zb,Z=e.readLogTail??h0,pe=e.sampleMs??vh,Ae=e.leaseRenewMs??oc,Ee=e.registrationSustainMs??Th,ke=e.publishedVersion??(b=>B0(b)),Y=e.replaceCheckMs??A0,de=e.publishedProbeTimeoutMs??xh,Re=e.localPublishedEvidence??(b=>$0(b,e.replacementIO?.env??process.env)),De=e.bornByReplacement??D0(),ve=e.replaceBootCheckMs??Eh,we=e.supervised??M0(),Se=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??nu,_e=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??fe?.transport,Gt=Fe?.unconfiguredReason??Ah,tn=Fe?.intervalMs??ju,rn=e.demandMs??15e3,go=e.demandBackoffMs??3e4,ce=new Map,Wt=new Map,ct=new Set,Ze=new Map,_t=new Map,lt=[],ut=[],xt=e.deaths===void 0?void 0:[...e.deaths],Et=await G.read().catch(()=>[]),Gr=Date.parse(N),Ce=new Map,Le=new Map;for(let b of Et){let P=Date.parse(b.renew_by);!Number.isFinite(Gr)||!Number.isFinite(P)||P>=Gr?Ce.set(b.project_label,b):Gr-P<=b.renew_within_ms&&Le.set(b.project_label,b)}let J=Vy({registration:b=>Ce.get(b),liveWorkerIds:()=>ce.keys(),admit:yo,start:(b,P)=>bs(b,{admission:P,hook:!0}).worker,refuse:(b,P)=>void H.recordDemandRefusal({ts:o(),projectLabel:b,detail:P}).catch(()=>{}),recordExpiry:(b,P)=>void H.recordDemandRefusal({ts:o(),projectLabel:b,detail:P}).catch(()=>{})}),C=Promise.resolve();function w(b){let P=C.then(async()=>{await J.waitForSettled();let j=await b();return await J.waitForSettled(),j});return C=P.then(()=>{},()=>{}),P}let F=new Set,L={},B=null,K=null,X=null,xe=!1,je=0,Be=null,Lt="none",nn=null,Rr=null,on=null,_r=null,vt=null,re=null,me=[],$e=[],Ht=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),jt=null,et={},ho=!1,sn,Tn,Pn,Ne,An,Cn,Dn,xr,Wr,Me,tt=!1,Hr=!1,On=null,kf,Jl=new Promise(b=>{kf=b});function mo(b){wf(b);let P=Date.parse(b),j=Cm(Ce.values(),P);for(let U of j.lapsed){Ce.delete(U.project_label);let z=vt?.projects.find(le=>le.project_label===U.project_label),ne=[...ce.values()].some(le=>le.project_label===U.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(U.project_label,U),Rx(U,P)}return j.lapsed.length>0&&bo(),j.lapsed}function bo(){let b=new Map(Le);for(let[P,j]of Ce)b.set(P,j);G.replace([...b.values()]).catch(()=>{})}function Rx(b,P){let j=Number.isFinite(P)?new Date(P).toISOString():b.renew_by;me.push({project_label:b.project_label,registered_at:b.registered_at,at:j,renew_by:b.renew_by,renewals:b.renewals,sustains:b.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(b.project_label)}: it stood until ${b.renew_by} and nothing renewed it \u2014 no session spoke for it, and no poll found it work or a Worker to hold it up`}),me.length>Cs&&me.splice(0,me.length-Cs)}function wf(b){if(Ce.size===0)return;let P=Date.parse(b);if(!Number.isFinite(P))return;let j={};for(let le of ce.values())j[le.project_label]=(j[le.project_label]??0)+1;let U=vt==null?Number.NaN:Date.parse(vt.fetched_at),z=new Map((vt?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...Ce.values()]){let Je=Number.isFinite(U)&&P-U<=le.renew_within_ms?z.get(le.project_label):void 0,ko=yc(le,{now:b,...Je==null?{}:{queue:{outcome:Je.outcome,depth:Je.depth}},liveWorkers:j[le.project_label]??0});ko.registration!==le&&(Ce.set(le.project_label,ko.registration),ne=!0)}ne&&bo()}function Rf(b){if(Le.size===0)return;let P=Date.parse(b);if(!Number.isFinite(P))return;let j=new Map((vt?.projects??[]).map(z=>[z.project_label,z])),U=!1;for(let[z,ne]of[...Le]){if(P-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),U=!0;continue}let le=j.get(z),rt=yc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ce.values()].filter(Je=>Je.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(Ce.set(z,rt.registration),Le.delete(z),U=!0):rt.verdict==="drained"&&(Le.delete(z),U=!0)}U&&bo()}function Li(){let b=o();return mo(b),Ey({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:xm(g.claimPath,p,u),workers:[...ce.values()],registrations:[...Ce.values()],demand:re,lapses:me,stops:$e,orphanedRegistrations:[...Ht.values()],birthLatches:gm(et,Date.parse(b)),queue:vt,published:{version:K,checkedAt:X,newer:xe,replacement:Lt,newest:nn,majorHold:Rr,checks:je,holdReason:Be}})}function ji(){return uy({hostState:Li(),ceiling:l,rss:L,sampledAt:B,logLines:Object.fromEntries(Ze),displays:Object.fromEntries(_t),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:on,githubBalance:_r,...xt===void 0?{}:{deaths:xt},metrics:Nh({observations:lt,outcomes:ut,now:o()})})}function _x(b,P){let j=Wh(lt,b,P,o());lt=j.observations,H.recordWorker(j.record).catch(()=>{})}function xx(b){ut=Nn([...ut,b],P=>P.ts,{now:o()})}async function Yl(){return fe==null||fe.projects.length===0?null:(on=await ty({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),on)}async function _f(){return _e==null?null:(_r=await Jc({transport:_e.transport,now:o()}),_r)}function Ex(){if(tt||Wr!=null||_e==null)return;let b=()=>{Wr=void 0,_f().catch(()=>{}).then(()=>{if(tt)return;let P=_e.intervalMsOverride??La(_r??vx(),{now:o()});Wr=setTimeout(b,P),Wr.unref()})};b()}function vx(){return Ma(o())}function Sx(){if(!(at!=null||Fe?.armTransport==null))try{let b=Fe.armTransport();if(b.transport!=null){at=b.transport;return}b.unconfiguredReason!=null&&(Gt=b.unconfiguredReason)}catch(b){Gt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function xf(){let b=o();mo(b);let P=Date.parse(b);for(let[ne,le]of[...Le])Number.isFinite(P)&&P-Date.parse(le.renew_by)>le.renew_within_ms&&Le.delete(ne);let U=[...new Map([...Le,...Ce]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,le)=>ne.project_label.localeCompare(le.project_label));if(U.length===0)return null;if(Sx(),at==null)return vt=i0(U,b,Gt),vt;vt=await a0({projects:U,transport:at,now:b,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return Rf(z),wf(z),vt}async function Ef(){let b=o();if(ho)return re??cm(b);ho=!0;try{await Xl().catch(()=>{});let P={};for(let be of ce.values())P[be.project_label]=(P[be.project_label]??0)+1;let j={};for(let be of vt?.projects??[])j[be.project_label]=be.depth;let U=Date.parse(b),z=Number.isFinite(U)?U:0;for(let[be,St]of Object.entries(et)){if(St.probeWorkerId==null)continue;let Ui=ce.get(St.probeWorkerId);Ui!=null&&z-Date.parse(Ui.started_at)>=6e4&&(et[be]=fc())}let ne=dm({projects:[...Ce.values()].map(be=>({project_label:be.project_label,selector:be.selector,argv:be.argv,workspace_path:be.workspace_path,target:be.target})),queue:j,live:P,nowMs:z,backoffUntilMs:jt,birthHealth:et}),le=[],rt=new Map,Je=null;for(let be of ne.births){let St,Ui=ei(ce.keys()),wo=Ce.get(be.project_label),qi=ka({argv:be.argv,...wo?.env==null?{}:{env:wo.env},...wo?.log_path==null?{}:{log_path:wo.log_path}},{worker_id:Ui,slot:be.index,workspace_path:be.workspace_path},{project_label:be.project_label});try{if(wo?.trunk==null)St=await w(()=>bs(qi));else{let Ur={workspace_path:be.workspace_path,trunk:wo.trunk},ys=yo(qi);if(!ys.admitted)throw new Xt(ys.reason,ys);let Nf=$u(Ur),Ki=rt.get(Nf);Ki==null&&(Ki=Ql(Ur),rt.set(Nf,Ki)),St=await w(()=>Df(qi,Ur,Ki,ys))}}catch(Ur){Je=Ur instanceof Error?Ur.message:String(Ur),Ur instanceof Xt&&Ur.admission?.verdict==="refused-unreachable-trunk-remote"||(jt=(Number.isFinite(U)?U:Date.now())+go);break}le.push({project_label:be.project_label,worker_id:St.worker.worker_id,pid:St.worker.pid,...St.fork_sha==null?{}:{fork_sha:St.fork_sha},warnings:qi.log_path==null?[...St.warnings,`project ${JSON.stringify(be.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(St.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:St.warnings});let td=et[be.project_label];td?.haltUntilMs!=null&&z>=td.haltUntilMs&&(et[be.project_label]=fm(td,St.worker.worker_id))}Je==null&&ne.births.length>0&&(jt=null);let ko=new Set(le.map(be=>be.project_label));for(let be of ne.intents){if(be.queue_depth==null||be.queue_depth<=0||be.live>=be.target||ko.has(be.project_label))continue;let St=Je!=null&&(be.outcome==="asking"||be.outcome==="half-open-probe")?`project ${JSON.stringify(be.project_label)} was birth-eligible but the host refused it: ${Je}`:be.detail;await H.recordDemandRefusal({ts:b,projectLabel:be.project_label,detail:St}).catch(()=>{})}return re={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Je,retry_after:jt==null?null:new Date(jt).toISOString(),projects:ne.intents},re}finally{ho=!1}}function Tx(b){return qn(ji(),{...Ge,mode:b?.mode??Ge.mode,project:b?.project??Ge.project,maxWorkers:b?.max_workers??Ge.maxWorkers,maxProjects:b?.max_projects??Ge.maxProjects,maxWidth:b?.max_width??Ge.maxWidth,verbose:b?.verbose??Ge.verbose})}function Px(b){return Ho(ji(),{mode:b?.mode??$t.mode,project:b?.project??$t.project,maxWidth:b?.max_width??$t.maxWidth,maxRows:b?.max_rows??$t.maxRows,maxHeight:b?.max_height??$t.maxHeight,showDeathDetails:b?.show_death_details??$t.showDeathDetails})}function Fn(b,P,j){return Im({op:b,sessionProject:P??null,targetProject:j})}async function Ax(b){let P=ce.get(b.worker_id),j=Fn(Fm(b.command),b.session_project,P?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(b.command!=="stop")throw new Error(`redskilled does not implement ${b.command}: it owns birth, death and limits, and ${b.command} is a work decision the project's own bundle makes on top of them`);let U=P!=null&&await Ix(P,b.detail??"stopped by its own project");return{version:1,command:b.command,worker_id:b.worker_id,applied:U,reach:j,detail:U?`redskilled stopped Worker ${JSON.stringify(b.worker_id)} of project ${JSON.stringify(P.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to stop`}}function Bi(b){ce.delete(b),ct.delete(b),Ze.delete(b),_t.delete(b)}function vf(b){let P=ce.get(b.worker_id),j=Fn("worker-heartbeat",b.session_project,P?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof b.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(P==null)return{version:1,worker_id:b.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to publish a line for`};let U=o();Ze.set(b.worker_id,{line:b.last_log_line,published_at:U,source:"heartbeat"});let z=b.display===void 0?null:u0(b.display);if(z!=null){let ne=_t.get(b.worker_id)?.display,le={display:z,published_at:U};_t.set(b.worker_id,le),_x(le,P),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ut("worker-activity",P,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ut("worker-heal",P,`${b.mechanical_heal.cause}; cycle ${b.mechanical_heal.cycle}/${b.mechanical_heal.cap}; free=${b.mechanical_heal.free}`,{healKind:b.mechanical_heal.heal_kind}),{version:1,worker_id:b.worker_id,accepted:!0,reach:j,published_at:U,detail:`redskilled stored a line for Worker ${JSON.stringify(b.worker_id)} without reading it`}}async function Cx(b,P,j){let U=`exit code=${P??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await Ox(b)){Fx(b,`its launch client ended (${U}) while unit ${JSON.stringify(b.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=b.log_path==null?null:sc(await Z(b.log_path).catch(()=>null));Bi(b.worker_id),Ut("worker-death",b,z==null?U:`session-error: ${z}`,{exitCode:P,signal:j,refusal:z}),pt()}function Dx(b,P){if(!Number.isFinite(P)||P<0){et[b]=Fs;return}let j=et[b]??Fs,U=pm(j,P,Date.parse(o()));et[b]=U,U.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(b)} lost ${U.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(U.haltUntilMs).toISOString()}
|
|
102
|
-
`)}function Sf(b,P){let j=Fn("project-reset",P,b);if(!j.permitted)throw new Error(j.reason);let U=et[b]?.haltUntilMs!=null||et[b]?.probeWorkerId!=null;return et[b]=fc(),{version:1,project_label:b,latch:"project-birth-breaker",reset:U,reach:j,detail:U?`redskilled cleared project ${JSON.stringify(b)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(b)}; nothing changed`}}async function Ox(b){try{return await I(b)===!0}catch{return!1}}function Fx(b,P){let j=b.unit==null?null:ae(b.unit);ce.set(b.worker_id,{...b,...j!=null&&j>0?{pid:j}:{},warnings:[...b.warnings,P]}),ct.add(b.worker_id),pt()}function Tf(b,P){let j=Fn("project-register",P,b.project_label);if(!j.permitted)throw new Error(j.reason);let U=o();mo(U);let z=Tm(b,{now:U,held:Ce.get(b.project_label)});return Ce.set(z.project_label,z),bo(),Cf(z.project_label),pt(),{version:1,registration:z,reach:j,detail:`redskilled holds a registration for project ${JSON.stringify(z.project_label)} at a target of ${z.target} until ${z.renew_by}, and has read neither its selector nor its argv`}}function Pf(b,P={}){let j=Fn("project-renew",P.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let U=o();mo(U);let z=Ce.get(b);if(z==null){if(Ht.has(b))throw new Gn(b,{kind:"orphaned"});let le=[...$e].reverse().find(Je=>Je.project_label===b);if(le!=null)throw new Gn(b,{kind:"stopped",at:le.at});let rt=[...me].reverse().find(Je=>Je.project_label===b);throw rt!=null?new Gn(b,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new Gn(b)}let ne=Pm(z,{now:U,...P.renewWithinMs==null?{}:{renew_within_ms:P.renewWithinMs},...P.launch==null?{}:{launch:P.launch}});return Ce.set(ne.project_label,ne),bo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(P.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function Af(b,P){let j=Fn("project-deregister",P,b);if(!j.permitted)throw new Error(j.reason);let U=Ce.get(b)??Le.get(b),z=Ce.delete(b),ne=Le.delete(b),le=z||ne;if(U!=null){let rt=`redskilled released the registration for project ${JSON.stringify(b)}`;Cf(b),$e.push({project_label:b,registered_at:U.registered_at,at:o(),detail:rt}),$e.length>Cs&&$e.splice(0,$e.length-Cs)}return le&&bo(),{version:1,project_label:b,released:le,reach:j,detail:le?`redskilled released the registration for project ${JSON.stringify(b)}`:`redskilled held no registration for project ${JSON.stringify(b)}, so there was nothing to release`}}function Cf(b){Le.delete(b);for(let P=me.length-1;P>=0;P-=1)me[P].project_label===b&&me.splice(P,1);for(let P=$e.length-1;P>=0;P-=1)$e[P].project_label===b&&$e.splice(P,1);Ht.delete(b)}async function Ix(b,P){try{await q(b)}catch{}return Bi(b.worker_id),Ut("worker-death",b,P),pt(),!0}function yo(b){return Zh({ceiling:l,workers:[...ce.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function Ql(b){let P=$u(b),j=Wt.get(P);if(j!=null)return j;let U=i(b).finally(()=>{Wt.get(P)===U&&Wt.delete(P)});return Wt.set(P,U),U}async function Df(b,P,j,U){let z=U??yo(b);if(!z.admitted)throw new Xt(z.reason,z);let ne;try{ne=await(j??Ql(P))}catch(rt){let Je=p0(z,P,rt);throw new Xt(Je.reason,Je)}let le=yo(b);if(!le.admitted)throw new Xt(le.reason,le);return bs(b,{admission:le,forkSha:ne})}function bs(b,P={}){let j=em({ceiling:l,workers:[...ce.values()],budget:b.budget}),U=s({spec:b,admission:P.admission??yo(b),...P.forkSha==null?{}:{forkSha:P.forkSha},memoryCeiling:j,liveWorkerIds:ce.keys(),clock:o,onExit:(rt,Je,ko)=>{let be=ce.get(rt);if(be==null){pt();return}Cx(be,Je,ko).catch(()=>{})}}),z=P.forkSha??U.fork_sha??U.worker.fork_sha,ne=z==null||z===""?U.worker:{...U.worker,fork_sha:z},le={...U,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ce.set(ne.worker_id,ne),P.hook===!0&&J.track(ne.worker_id),Ut("worker-birth",ne,null,{admissionVerdict:P.admission?.verdict??U.admission.verdict}),pt(),le}function Ut(b,P,j,U={}){if(tt)return;let z=o(),ne={kind:b,worker:P,ts:z,detail:j,...U};(b==="worker-death"||b==="worker-budget-kill")&&(xx({worker_id:P.worker_id,ts:z,outcome:b}),Of(ma(ne),{startedAt:P.started_at,...U.refusal==null?{}:{refusal:U.refusal}}),Dx(P.project_label,Date.parse(z)-Date.parse(P.started_at))),H.recordWorker(ne).catch(()=>{}),J.onEvent(b,P)}function Of(b,P={}){let j=Ph(b,P);if(j==null)return;let U=[j,...(xt??[]).filter(z=>z.kind!==j.kind||z.id!==j.id||z.ts!==j.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));xt=Nn(U,z=>z.ts,{now:o()})}async function Xl(){let b=Date.parse(o()),P=[...ce.values()].filter(U=>{if(ct.has(U.worker_id))return!0;let z=Date.parse(U.started_at);return!Number.isFinite(z)||b-z>=W});if(P.length===0)return[];let{dead:j}=await Mu(P,I);for(let U of j)Bi(U.worker_id),Ut("worker-death",U,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function Ff(b,P){let j=ce.get(b);if(!j)return!1;try{await q(j)}catch{}return Bi(b),Ut("worker-budget-kill",j,P),pt(),!0}async function If(){let b=[...ce.values()];if(b.length===0)return[];let P;try{P=await se(b)}catch{return[]}let j=P.rss;L=j,B=o(),Mx(P.cpu_seconds,B);let{terminations:U}=Vb({workers:b,rss:j}),z=[];for(let ne of U)await Ff(ne.worker_id,ne.reason)&&z.push(ne);return z}function Mx(b,P){for(let[j,U]of Object.entries(b)){if(typeof U!="number"||!Number.isFinite(U))continue;let z=ce.get(j);z&&ce.set(j,{...z,cpu:{cpu_seconds:U,sampled_at:P}})}}async function Lx(){try{return de<=0?await ke(r):await new Promise(b=>{let P=setTimeout(()=>b(Zl()),de);P.unref(),ke(r).then(j=>{clearTimeout(P),b(j)},()=>{clearTimeout(P),b(Zl())})})}catch{return Zl()}}function Zl(){try{return Re(r)}catch{return null}}async function Mf(){if(si(r))return je+=1,X=o(),Be="local-build",{act:"hold",reason:"local-build"};let b=O0(await Lx()),P=b.version;K=P,nn=b.newest??null,X=o(),Rr=F0({running:r,newest:nn,supervised:we});let j=I0({running:r,published:P,supervised:we});return xe=j.act==="replace",je+=1,Be=j.act==="hold"?j.reason:null,Lt!=="in-progress"&&(Lt=j.act==="replace"?"pending":"none"),j}async function $i(){let b=await Mf();if(b.act!=="replace"||Lt==="in-progress")return b;let P=L0(b,Se,t,n);return Lt="in-progress",await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Gi({reason:"replaced"}),j0(P,t,{...n==null?{}:{idleMs:n},io:Se}),b}function jx(){tt||Cn!=null||Y<=0||(!De&&ve>0&&(Dn=setTimeout(()=>{$i().catch(()=>{})},ve),Dn.unref()),Cn=setInterval(()=>{$i().catch(()=>{})},Y),Cn.unref())}async function Lf(){return await c.renew(d).catch(()=>null)}function Bx(){tt||Pn!=null||Ae<=0||(Pn=setInterval(()=>{Lf()},Ae),Pn.unref())}function $x(){tt||Ne!=null||Ee<=0||(Ne=setInterval(()=>{mo(o())},Ee),Ne.unref())}function Nx(){tt||Tn!=null||pe<=0||(Tn=setInterval(()=>{If().catch(()=>{})},pe),Tn.unref())}function Gx(){tt||xr!=null||fe==null||fe.projects.length===0||ie<=0||(Yl().catch(()=>{}),xr=setInterval(()=>{Yl().catch(()=>{})},ie),xr.unref())}function Wx(){if(tt||Me!=null||tn<=0)return;let b=P=>{Me=setTimeout(()=>{Me=void 0,jf().then(()=>xf()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());b(c0(vt,tn,Number.isFinite(j)?j:Date.now()))})},P),Me.unref()};b(tn)}async function jf(){await Promise.allSettled([...Ce.values()].filter(b=>b.trunk!=null).map(async b=>{let P=await Ql({workspace_path:b.workspace_path,trunk:b.trunk}),j=[...ce.values()].filter(U=>U.project_label===b.project_label&&U.fork_sha!=null&&U.fork_sha!=="");await Promise.allSettled(j.map(async U=>{let z=await a({workspace_path:b.workspace_path,fork_sha:U.fork_sha,head_sha:P}),ne=ce.get(U.worker_id);if(ne==null||ne.fork_sha!==U.fork_sha)return;let le={...ne,base_head_sha:P,base_commits_ahead:z};ce.set(U.worker_id,le),(ne.base_head_sha!==P||ne.base_commits_ahead!==z)&&Ut("worker-drift",le,null,{baseHeadSha:P,baseCommitsAhead:z})}))}))}function Hx(){tt||An!=null||rn<=0||(An=setInterval(()=>{Ef().catch(()=>{})},rn),An.unref())}function pt(){tt||(sn&&clearTimeout(sn),sn=setTimeout(()=>{Xl().catch(()=>{}).then(()=>Bf())},n),sn.unref())}function Bf(){return ce.size>0?(pt(),"held-by-workers"):(mo(o()),Ce.size>0?(pt(),"held-by-registrations"):(Ux(),"exited"))}async function Ux(){if(!si(r)){if((await $i().catch(()=>null))?.act==="replace"||Hr||tt)return;if(ce.size>0||Ce.size>0){pt();return}}await Gi({reason:"idle"})}function Ni(b){return mm({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ce.values()],projects:[...Ce.keys()]})}function $f(b){if(On!=null)return On;let P=b.reason??"requested",j=b.note?.trim();return On=H.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:P,detail:j==null||j===""?Ni(P).detail:`${Ni(P).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),On}async function Gi(b={}){if(Hr)return await Jl;Hr=!0,await $f(b),tt=!0,sn&&clearTimeout(sn),Tn&&clearInterval(Tn),Pn&&clearInterval(Pn),Ne&&clearInterval(Ne),Cn&&clearInterval(Cn),Dn&&clearTimeout(Dn),xr&&clearInterval(xr),Wr&&clearTimeout(Wr),Me&&clearTimeout(Me),An&&clearInterval(An),await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let P of F)P.destroy();return await new Promise(P=>M.once("close",()=>P())),await K1(t.socketPath,{force:!0}),kf(),await Jl}let Wi=await H.read().catch(()=>[]),Hi=new Map;for(let b of Wi){if(b.event==="worker-birth"){Hi.set(b.worker_id,b.ts);continue}let P=sc(b.detail);Of(b,{...Hi.get(b.worker_id)==null?{}:{startedAt:Hi.get(b.worker_id)},...P==null?{}:{refusal:P}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Hi.delete(b.worker_id)}ut=Nn(Wi.filter(b=>b.event==="worker-death"||b.event==="worker-budget-kill").map(b=>({worker_id:b.worker_id,ts:b.ts,outcome:b.event})),b=>b.ts,{now:o()}),lt=Hh(Wi,o());let qx=pc(Wi),ed=await Mu(qx,I);for(let b of ed.alive){let P=t0(b),j=P.unit==null||Ye(P.pid)?null:ae(P.unit);ce.set(P.worker_id,j!=null&&j>0?{...P,pid:j}:P),ct.add(P.worker_id)}for(let b of ed.dead)Ut("worker-death",b,"the Worker ended while no daemon was watching");let Kx=e0({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ce.values()],mainPid:ae,now:N});for(let b of Kx)ce.set(b.worker_id,b),ct.add(b.worker_id),Ut("worker-birth",b,"adopted from an active unit with no birth on this lane");Rf(o());for(let b of ed.alive){if(b.log_path==null||Ze.has(b.worker_id))continue;let P=await Z(b.log_path).catch(()=>null);P==null||P.trim()===""||Ze.set(b.worker_id,{line:P,published_at:o(),source:"rehydrated"})}M.on("connection",b=>{F.add(b),b.once("close",()=>F.delete(b)),pt(),Oh(b,async(P,j)=>{pt();let U=await Vx(P);j(U),P.op==="shutdown"&&setImmediate(()=>void Gi({reason:"requested"}).catch(()=>{}))})});async function Vx(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:Va,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Li()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:cy(ji(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:Tx(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:Px(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:vf(b.heartbeat)};if(b.op==="project-register"){let j=Tf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=Pf(b.project_label,{...b.session_project==null?{}:{sessionProject:b.session_project},...b.renew_within_ms==null?{}:{renewWithinMs:b.renew_within_ms},...b.launch==null?{}:{launch:b.launch}});return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-deregister"){let j=Af(b.project_label,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-reset")return{id:b.id,ok:!0,value:Sf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await Ax(b.command)};if(b.op==="worker-start"){let j=Fn("worker-start",b.session_project,b.spec.project_label);if(!j.permitted)return{id:b.id,ok:!1,error:j.reason};let U=await w(()=>b.spec.trunk==null?bs(b.spec):Df(b.spec,{workspace_path:b.spec.workspace_path,trunk:b.spec.trunk}));return await H.flush().catch(()=>{}),{id:b.id,ok:!0,value:{worker:U.worker,admission:U.admission,fork_sha:U.fork_sha,warnings:U.warnings}}}if(b.op==="shutdown"){let j=Ni("requested");return await $f({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let P=b;return{id:P.id??Y0(),ok:!1,error:`unsupported redskilled op: ${P.op??"unknown"}`}}catch(P){return{id:b.id??Y0(),ok:!1,error:P instanceof Error?P.message:String(P)}}}return pt(),Nx(),Bx(),$x(),jx(),Gx(),Ex(),Wx(),Hx(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:Jl,startWorker:bs,admit:yo,ceiling:()=>l,killWorkerOverBudget:Ff,sampleMemoryBudgets:If,renewLease:Lf,pollRepositoryActivity:Yl,pollGithubBalance:_f,githubBalance:()=>_r,pollQueueDiscovery:xf,queueDiscovery:()=>vt,driveDemand:Ef,demand:()=>re,sweepWorkerLiveness:Xl,publishWorkerHeartbeat:vf,reattached:()=>[...ct].map(b=>ce.get(b)).filter(b=>b!=null),flushEvents:async()=>{await C,await J.waitForSettled(),await H.flush()},trackWorker(b){ce.set(b.worker_id,b),Ut("worker-birth",b,null),pt()},releaseWorker(b){let P=ce.get(b),j=ce.delete(b);return ct.delete(b),Ze.delete(b),_t.delete(b),P&&Ut("worker-death",P,"released by the daemon"),pt(),j},workerCount:()=>ce.size,registerProject:Tf,renewProject:Pf,resetProjectBirthBreaker:Sf,deregisterProject:Af,registrations:()=>Li().registrations??[],hostState:Li,refreshRegisteredTrunks:jf,statuslinePayload:ji,evaluateIdle:Bf,observePublishedVersion:Mf,checkForReplacement:$i,stopReport:Ni,stop:Gi}}function Ku(e){let t=e.socketPath,r=z1(e);return e.answers?{version:1,kind:"answering",socket_path:t,holder:r,reason:`a redskilled daemon answered on ${JSON.stringify(t)}`,repair:"nothing to repair"}:r!=null?{version:1,kind:"held-unresponsive",socket_path:t,holder:r,reason:`redskilled pid ${r.pid} is alive and has held ${JSON.stringify(t)} since ${r.acquired_at}${r.uptime_ms==null?"":` (up ${X0(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${kn("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${kn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Vu(e){return`${e.reason} ${e.repair}`}function z1(e){let t=e.lease;return t==null||e.holderAlive!==!0||t.socket_path!==e.socketPath?null:{pid:t.pid,socket_path:t.socket_path,acquired_at:t.acquired_at,renewed_at:t.renewed_at,uptime_ms:J1(t.acquired_at,e.now??new Date().toISOString())}}function J1(e,t){let r=Date.parse(e),n=Date.parse(t);return!Number.isFinite(r)||!Number.isFinite(n)?null:Math.max(0,n-r)}function X0(e){let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h${String(n).padStart(2,"0")}m`:n>0?`${n}m${String(o).padStart(2,"0")}s`:`${o}s`}import{spawnSync as Y1}from"node:child_process";import{existsSync as Q1}from"node:fs";import{basename as Z0,dirname as X1,join as ek}from"node:path";async function ii(e){let r=await Is(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==ba().uid||!Ye(r.pid))return{paths:e,joined:!1};let n=X1(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:ek(n,Z0(e.lockPath)),leasePath:ek(n,Z0(e.leasePath))}}}async function tk(e){let r=await Is(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Ye(r.pid)))throw new Vr(e.machineClaimPath,"held",r)}async function rk(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[mc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Fo({env:n,machineIdHash:e.machineIdHash}))||!(o??Q1(Vo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=Y1("systemctl",["--user","start",Zt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Zt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await Z1(e,t,r),!0}async function Z1(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ii(e);if(await Jt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Zt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}Kr();var Ju=1e4,Vn=class extends Error{constructor(r,n,o){super(`redskilled daemon is unreachable on ${JSON.stringify(r)}, so no Worker was started: ${n instanceof Error?n.message:String(n)}${o!=null&&o.kind==="held-unresponsive"?`. ${Vu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},zu=class extends Vn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},tl=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function rl(e,t={}){let r=t.answers??await Jt(e.socketPath),n=await zo(e.leasePath).catch(()=>{});return Ku({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Ye(n.pid)})}async function Yu(e,t={}){let r=await ii(e);try{let n=await nF(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Vr||n instanceof Vn)throw n;let o=await rl(r.paths).catch(()=>{});throw new Vn(r.paths.socketPath,n,o)}}async function nF(e,t){if(await tF(rF(e.socketPath),{recursive:!0,mode:448}),await Jt(e.socketPath))return"already-running";await tk(e);let r=await sF(e,t);if(r!=null)return r;if(await rk(e,t,Ju))return"joined";let n=await ch(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??oF});if(!n.acquired)return await nk(e,t,void 0,n),"joined";try{if(await Jt(e.socketPath))return"already-running";let o=await aF(e,t);return await nk(e,t,o),"spawned"}finally{await uh(n)}}function oF(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
|
|
103
|
-
`)}async function
|
|
104
|
-
`)}import{chmod as
|
|
105
|
-
`)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return
|
|
100
|
+
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function M1(e,t={}){let r=t.env??process.env,n=t.exists??A1,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=[[P0(ca(r),i),"bundle-cache"]];s&&l.push([P0(D1(O1(s)),i),"caller-sibling-bundle"]);for(let[d,c]of l)if(a.push(d),n(d))return{command:o,args:[d],version:e,source:c,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new Wu(e,a);return{command:r.RED_SKILLS_NPX||"npx",args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function B0(e,t={},r,n){let s=(t.resolveEntry??(i=>M1(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>R0(a,l,{...t.env==null?{}:{env:t.env},...d==null?{}:{idleMs:d}}));if(r==null)throw new Error("a supervised redskilled replacement needs its serve target before exit");i(s,r,n)}return{via:e.via,to:e.to,entry:s}}function $0(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??j1)(A0),{...e,exitCode:A0};let o=[...e.entry.args,...dn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??L1(n.env))(e.entry,o),e}function L1(e){return(t,r)=>{let n=P1(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[O0]:"1"}});n.on("error",()=>{}),n.unref()}}function j1(e){process.exitCode=e,process.exit(e)}async function N0(e,t=process.env,r=B1){let n=W0(t),o=H0(e,t);if(t[F1]==="1")return{version:o,newest:n};let s=cr(e)===null?"0.0.0":e;try{let i=await yh({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function G0(e,t=process.env,r){let n=r??Hu;return{version:H0(e,t,n),newest:W0(t,n)}}function W0(e=process.env,t=Hu){return q0(U0(e,t))}function H0(e,t=process.env,r=Hu){let n=cr(e.trim())?.major;return n===void 0?null:q0(U0(t,r).filter(o=>cr(o)?.major===n))}function U0(e,t){let r=[];for(let n of t(ca(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||cr(o)===null||r.push(o)}return r}function q0(e){let t=null;for(let r of e)(t===null||Nu(r,t)>0)&&(t=r);return t}function Hu(e){try{return C1(e)}catch{return[]}}async function B1(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 $1,readFile as N1,rename as G1,rm as Uu,writeFile as K0}from"node:fs/promises";import{randomUUID as W1}from"node:crypto";import{dirname as H1}from"node:path";var el=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function zo(e){let t;try{t=await N1(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=U1(t);return q1(r)?r:void 0}var V0;function J0(){return V0??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},V0}function Y0(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){return await zo(e)}async function i(l){let d=`${e}.${l.pid}.${W1()}.tmp`;await K0(d,z0(l),{encoding:"utf8",mode:384}),await G1(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 $1(H1(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await K0(e,z0(u),{encoding:"utf8",mode:384,flag:"wx"}),{acquired:!0,reaped:d,lease:u}}catch(g){if(g.code!=="EEXIST")throw g}let p=await s();if(!p){await Uu(e,{force:!0}),d=!0;continue}if(qu(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await Uu(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!qu(d,l))throw new el(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!qu(d,l))throw new el(e);return await Uu(e,{force:!0}),!0}}}function qu(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function z0(e){return`${ot(e,{keyedMapCollapse:!0})}
|
|
101
|
+
`}function U1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Dt(t)}catch{return null}}}function q1(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 Z0(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Co,o=e.clock??(()=>new Date().toISOString()),s=e.launch??zy,i=e.refreshTrunk??h0,a=e.countBaseMovement??m0,l=e.ceiling??ha();e.repositoryActivity!=null&&ou(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??J0(),c=e.leaseStore??Y0(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??ba(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Is(t.machineClaimPath,p,{clock:o});await z1(Y1(t.socketPath),{recursive:!0,mode:448});let[f,y]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),h=Date.parse(o()),R=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&y!=null&&f.pid===y.pid&&f.start_time===y.start_time&&f.socket_path===t.socketPath&&y.socket_path===t.socketPath&&Number.isFinite(h)&&Number.isFinite(R)&&h-R>=Th&&await ic(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:y.pid,startTime:y.start_time,uid:y.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new zt(t.socketPath):new Vr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new zt(t.socketPath,D.lease);let M;try{M=await Oh(t.socketPath,async()=>{let[b,P]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return b!=null&&b.pid!==d.pid&&Ye(b.pid)?!0:P!=null&&P.socket_path===t.socketPath&&P.pid!==u.pid&&Ye(P.pid)})}catch(b){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),b}let N=o(),H=e.eventLane??lm(t.eventLanePath),G=e.registrationIntentStore??Py(t.registrationIntentPath),I=e.liveness??Qy,W=e.livenessGraceMs??Yy,q=e.stopWorker??o0,oe=e.unitInventory??(()=>e0(t.machineClaimPath,Fo({machineIdHash:t.machineIdHash}))?t0():[]),ae=e.unitMainPid??Zy,se=e.treeSampler??Yb,Z=e.readLogTail??b0,pe=e.sampleMs??Sh,Ae=e.leaseRenewMs??oc,Ee=e.registrationSustainMs??Ph,ke=e.publishedVersion??(b=>N0(b)),Y=e.replaceCheckMs??D0,de=e.publishedProbeTimeoutMs??Eh,Re=e.localPublishedEvidence??(b=>G0(b,e.replacementIO?.env??process.env)),De=e.bornByReplacement??F0(),ve=e.replaceBootCheckMs??vh,we=e.supervised??j0(),Se=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??nu,_e=e.githubBalance,Fe=e.queueDiscovery,at=Fe?.transport??fe?.transport,Gt=Fe?.unconfiguredReason??Ch,tn=Fe?.intervalMs??ju,rn=e.demandMs??15e3,go=e.demandBackoffMs??3e4,ce=new Map,Wt=new Map,ct=new Set,Ze=new Map,_t=new Map,lt=[],ut=[],xt=e.deaths===void 0?void 0:[...e.deaths],Et=await G.read().catch(()=>[]),Gr=Date.parse(N),Ce=new Map,Le=new Map;for(let b of Et){let P=Date.parse(b.renew_by);!Number.isFinite(Gr)||!Number.isFinite(P)||P>=Gr?Ce.set(b.project_label,b):Gr-P<=b.renew_within_ms&&Le.set(b.project_label,b)}let J=Jy({registration:b=>Ce.get(b),liveWorkerIds:()=>ce.keys(),admit:yo,start:(b,P)=>bs(b,{admission:P,hook:!0}).worker,refuse:(b,P)=>void H.recordDemandRefusal({ts:o(),projectLabel:b,detail:P}).catch(()=>{}),recordExpiry:(b,P)=>void H.recordDemandRefusal({ts:o(),projectLabel:b,detail:P}).catch(()=>{})}),C=Promise.resolve();function w(b){let P=C.then(async()=>{await J.waitForSettled();let j=await b();return await J.waitForSettled(),j});return C=P.then(()=>{},()=>{}),P}let F=new Set,L={},B=null,K=null,X=null,xe=!1,je=0,Be=null,Lt="none",nn=null,Rr=null,on=null,_r=null,vt=null,re=null,me=[],$e=[],Ht=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),jt=null,et={},ho=!1,sn,Tn,Pn,Ne,An,Cn,Dn,xr,Wr,Me,tt=!1,Hr=!1,On=null,wf,Jl=new Promise(b=>{wf=b});function mo(b){Rf(b);let P=Date.parse(b),j=Om(Ce.values(),P);for(let U of j.lapsed){Ce.delete(U.project_label);let z=vt?.projects.find(le=>le.project_label===U.project_label),ne=[...ce.values()].some(le=>le.project_label===U.project_label);(z?.outcome==="counted"&&(z.depth??0)>0||ne)&&Le.set(U.project_label,U),xx(U,P)}return j.lapsed.length>0&&bo(),j.lapsed}function bo(){let b=new Map(Le);for(let[P,j]of Ce)b.set(P,j);G.replace([...b.values()]).catch(()=>{})}function xx(b,P){let j=Number.isFinite(P)?new Date(P).toISOString():b.renew_by;me.push({project_label:b.project_label,registered_at:b.registered_at,at:j,renew_by:b.renew_by,renewals:b.renewals,sustains:b.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(b.project_label)}: it stood until ${b.renew_by} and nothing renewed it \u2014 no session spoke for it, and no poll found it work or a Worker to hold it up`}),me.length>Cs&&me.splice(0,me.length-Cs)}function Rf(b){if(Ce.size===0)return;let P=Date.parse(b);if(!Number.isFinite(P))return;let j={};for(let le of ce.values())j[le.project_label]=(j[le.project_label]??0)+1;let U=vt==null?Number.NaN:Date.parse(vt.fetched_at),z=new Map((vt?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...Ce.values()]){let Je=Number.isFinite(U)&&P-U<=le.renew_within_ms?z.get(le.project_label):void 0,ko=yc(le,{now:b,...Je==null?{}:{queue:{outcome:Je.outcome,depth:Je.depth}},liveWorkers:j[le.project_label]??0});ko.registration!==le&&(Ce.set(le.project_label,ko.registration),ne=!0)}ne&&bo()}function _f(b){if(Le.size===0)return;let P=Date.parse(b);if(!Number.isFinite(P))return;let j=new Map((vt?.projects??[]).map(z=>[z.project_label,z])),U=!1;for(let[z,ne]of[...Le]){if(P-Date.parse(ne.renew_by)>ne.renew_within_ms){Le.delete(z),U=!0;continue}let le=j.get(z),rt=yc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ce.values()].filter(Je=>Je.project_label===z).length});rt.verdict==="open-work"||rt.verdict==="live-worker"?(Ce.set(z,rt.registration),Le.delete(z),U=!0):rt.verdict==="drained"&&(Le.delete(z),U=!0)}U&&bo()}function Li(){let b=o();return mo(b),Sy({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:vm(g.claimPath,p,u),workers:[...ce.values()],registrations:[...Ce.values()],demand:re,lapses:me,stops:$e,orphanedRegistrations:[...Ht.values()],birthLatches:mm(et,Date.parse(b)),queue:vt,published:{version:K,checkedAt:X,newer:xe,replacement:Lt,newest:nn,majorHold:Rr,checks:je,holdReason:Be}})}function ji(){return fy({hostState:Li(),ceiling:l,rss:L,sampledAt:B,logLines:Object.fromEntries(Ze),displays:Object.fromEntries(_t),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:on,githubBalance:_r,...xt===void 0?{}:{deaths:xt},metrics:Gh({observations:lt,outcomes:ut,now:o()})})}function Ex(b,P){let j=Hh(lt,b,P,o());lt=j.observations,H.recordWorker(j.record).catch(()=>{})}function vx(b){ut=Nn([...ut,b],P=>P.ts,{now:o()})}async function Yl(){return fe==null||fe.projects.length===0?null:(on=await ny({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),on)}async function xf(){return _e==null?null:(_r=await Jc({transport:_e.transport,now:o()}),_r)}function Sx(){if(tt||Wr!=null||_e==null)return;let b=()=>{Wr=void 0,xf().catch(()=>{}).then(()=>{if(tt)return;let P=_e.intervalMsOverride??La(_r??Tx(),{now:o()});Wr=setTimeout(b,P),Wr.unref()})};b()}function Tx(){return Ma(o())}function Px(){if(!(at!=null||Fe?.armTransport==null))try{let b=Fe.armTransport();if(b.transport!=null){at=b.transport;return}b.unconfiguredReason!=null&&(Gt=b.unconfiguredReason)}catch(b){Gt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function Ef(){let b=o();mo(b);let P=Date.parse(b);for(let[ne,le]of[...Le])Number.isFinite(P)&&P-Date.parse(le.renew_by)>le.renew_within_ms&&Le.delete(ne);let U=[...new Map([...Le,...Ce]).values()].map(ne=>({project_label:ne.project_label,selector:ne.selector,...ne.queue_poll==null?{}:{poll:ne.queue_poll}})).sort((ne,le)=>ne.project_label.localeCompare(le.project_label));if(U.length===0)return null;if(Px(),at==null)return vt=l0(U,b,Gt),vt;vt=await d0({projects:U,transport:at,now:b,...Fe?.batchSize==null?{}:{batchSize:Fe.batchSize}});let z=o();return _f(z),Rf(z),vt}async function vf(){let b=o();if(ho)return re??pm(b);ho=!0;try{await Xl().catch(()=>{});let P={};for(let be of ce.values())P[be.project_label]=(P[be.project_label]??0)+1;let j={};for(let be of vt?.projects??[])j[be.project_label]=be.depth;let U=Date.parse(b),z=Number.isFinite(U)?U:0;for(let[be,St]of Object.entries(et)){if(St.probeWorkerId==null)continue;let Ui=ce.get(St.probeWorkerId);Ui!=null&&z-Date.parse(Ui.started_at)>=6e4&&(et[be]=fc())}let ne=um({projects:[...Ce.values()].map(be=>({project_label:be.project_label,selector:be.selector,argv:be.argv,workspace_path:be.workspace_path,target:be.target})),queue:j,live:P,nowMs:z,backoffUntilMs:jt,birthHealth:et}),le=[],rt=new Map,Je=null;for(let be of ne.births){let St,Ui=ei(ce.keys()),wo=Ce.get(be.project_label),qi=ka({argv:be.argv,...wo?.env==null?{}:{env:wo.env},...wo?.log_path==null?{}:{log_path:wo.log_path}},{worker_id:Ui,slot:be.index,workspace_path:be.workspace_path},{project_label:be.project_label});try{if(wo?.trunk==null)St=await w(()=>bs(qi));else{let Ur={workspace_path:be.workspace_path,trunk:wo.trunk},ys=yo(qi);if(!ys.admitted)throw new Xt(ys.reason,ys);let Gf=$u(Ur),Ki=rt.get(Gf);Ki==null&&(Ki=Ql(Ur),rt.set(Gf,Ki)),St=await w(()=>Of(qi,Ur,Ki,ys))}}catch(Ur){Je=Ur instanceof Error?Ur.message:String(Ur),Ur instanceof Xt&&Ur.admission?.verdict==="refused-unreachable-trunk-remote"||(jt=(Number.isFinite(U)?U:Date.now())+go);break}le.push({project_label:be.project_label,worker_id:St.worker.worker_id,pid:St.worker.pid,...St.fork_sha==null?{}:{fork_sha:St.fork_sha},warnings:qi.log_path==null?[...St.warnings,`project ${JSON.stringify(be.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(St.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:St.warnings});let td=et[be.project_label];td?.haltUntilMs!=null&&z>=td.haltUntilMs&&(et[be.project_label]=hm(td,St.worker.worker_id))}Je==null&&ne.births.length>0&&(jt=null);let ko=new Set(le.map(be=>be.project_label));for(let be of ne.intents){if(be.queue_depth==null||be.queue_depth<=0||be.live>=be.target||ko.has(be.project_label))continue;let St=Je!=null&&(be.outcome==="asking"||be.outcome==="half-open-probe")?`project ${JSON.stringify(be.project_label)} was birth-eligible but the host refused it: ${Je}`:be.detail;await H.recordDemandRefusal({ts:b,projectLabel:be.project_label,detail:St}).catch(()=>{})}return re={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Je,retry_after:jt==null?null:new Date(jt).toISOString(),projects:ne.intents},re}finally{ho=!1}}function Ax(b){return qn(ji(),{...Ge,mode:b?.mode??Ge.mode,project:b?.project??Ge.project,maxWorkers:b?.max_workers??Ge.maxWorkers,maxProjects:b?.max_projects??Ge.maxProjects,maxWidth:b?.max_width??Ge.maxWidth,verbose:b?.verbose??Ge.verbose})}function Cx(b){return Ho(ji(),{mode:b?.mode??$t.mode,project:b?.project??$t.project,maxWidth:b?.max_width??$t.maxWidth,maxRows:b?.max_rows??$t.maxRows,maxHeight:b?.max_height??$t.maxHeight,showDeathDetails:b?.show_death_details??$t.showDeathDetails})}function Fn(b,P,j){return Lm({op:b,sessionProject:P??null,targetProject:j})}async function Dx(b){let P=ce.get(b.worker_id),j=Fn(Mm(b.command),b.session_project,P?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(b.command!=="stop")throw new Error(`redskilled does not implement ${b.command}: it owns birth, death and limits, and ${b.command} is a work decision the project's own bundle makes on top of them`);let U=P!=null&&await Lx(P,b.detail??"stopped by its own project");return{version:1,command:b.command,worker_id:b.worker_id,applied:U,reach:j,detail:U?`redskilled stopped Worker ${JSON.stringify(b.worker_id)} of project ${JSON.stringify(P.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to stop`}}function Bi(b){ce.delete(b),ct.delete(b),Ze.delete(b),_t.delete(b)}function Sf(b){let P=ce.get(b.worker_id),j=Fn("worker-heartbeat",b.session_project,P?.project_label??null);if(!j.permitted)throw new Error(j.reason);if(typeof b.last_log_line!="string")throw new Error("redskilled worker heartbeat last_log_line must be a string");if(P==null)return{version:1,worker_id:b.worker_id,accepted:!1,reach:j,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(b.worker_id)} to publish a line for`};let U=o();Ze.set(b.worker_id,{line:b.last_log_line,published_at:U,source:"heartbeat"});let z=b.display===void 0?null:f0(b.display);if(z!=null){let ne=_t.get(b.worker_id)?.display,le={display:z,published_at:U};_t.set(b.worker_id,le),Ex(le,P),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ut("worker-activity",P,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ut("worker-heal",P,`${b.mechanical_heal.cause}; cycle ${b.mechanical_heal.cycle}/${b.mechanical_heal.cap}; free=${b.mechanical_heal.free}`,{healKind:b.mechanical_heal.heal_kind}),{version:1,worker_id:b.worker_id,accepted:!0,reach:j,published_at:U,detail:`redskilled stored a line for Worker ${JSON.stringify(b.worker_id)} without reading it`}}async function Ox(b,P,j){let U=`exit code=${P??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await Ix(b)){Mx(b,`its launch client ended (${U}) while unit ${JSON.stringify(b.unit)} stayed active, so the daemon holds it by unit name from here on and its death is discovered by asking the host`);return}let z=b.log_path==null?null:sc(await Z(b.log_path).catch(()=>null));Bi(b.worker_id),Ut("worker-death",b,z==null?U:`session-error: ${z}`,{exitCode:P,signal:j,refusal:z}),pt()}function Fx(b,P){if(!Number.isFinite(P)||P<0){et[b]=Fs;return}let j=et[b]??Fs,U=gm(j,P,Date.parse(o()));et[b]=U,U.haltUntilMs!=null&&j.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(b)} lost ${U.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(U.haltUntilMs).toISOString()}
|
|
102
|
+
`)}function Tf(b,P){let j=Fn("project-reset",P,b);if(!j.permitted)throw new Error(j.reason);let U=et[b]?.haltUntilMs!=null||et[b]?.probeWorkerId!=null;return et[b]=fc(),{version:1,project_label:b,latch:"project-birth-breaker",reset:U,reach:j,detail:U?`redskilled cleared project ${JSON.stringify(b)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(b)}; nothing changed`}}async function Ix(b){try{return await I(b)===!0}catch{return!1}}function Mx(b,P){let j=b.unit==null?null:ae(b.unit);ce.set(b.worker_id,{...b,...j!=null&&j>0?{pid:j}:{},warnings:[...b.warnings,P]}),ct.add(b.worker_id),pt()}function Pf(b,P){let j=Fn("project-register",P,b.project_label);if(!j.permitted)throw new Error(j.reason);let U=o();mo(U);let z=Am(b,{now:U,held:Ce.get(b.project_label)});return Ce.set(z.project_label,z),bo(),Df(z.project_label),pt(),{version:1,registration:z,reach:j,detail:`redskilled holds a registration for project ${JSON.stringify(z.project_label)} at a target of ${z.target} until ${z.renew_by}, and has read neither its selector nor its argv`}}function Af(b,P={}){let j=Fn("project-renew",P.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let U=o();mo(U);let z=Ce.get(b);if(z==null){if(Ht.has(b))throw new Gn(b,{kind:"orphaned"});let le=[...$e].reverse().find(Je=>Je.project_label===b);if(le!=null)throw new Gn(b,{kind:"stopped",at:le.at});let rt=[...me].reverse().find(Je=>Je.project_label===b);throw rt!=null?new Gn(b,{kind:"lapsed",at:rt.at,...rt.registered_at==null?{}:{registered_at:rt.registered_at}}):new Gn(b)}let ne=Cm(z,{now:U,...P.renewWithinMs==null?{}:{renew_within_ms:P.renewWithinMs},...P.launch==null?{}:{launch:P.launch}});return Ce.set(ne.project_label,ne),bo(),pt(),{version:1,registration:ne,reach:j,detail:`redskilled renewed the registration for project ${JSON.stringify(ne.project_label)}, which now stands until ${ne.renew_by} after renewal ${ne.renewals}`+(P.launch==null?"":`, carrying launch revision ${ne.launch_revision} for its next Worker`)}}function Cf(b,P){let j=Fn("project-deregister",P,b);if(!j.permitted)throw new Error(j.reason);let U=Ce.get(b)??Le.get(b),z=Ce.delete(b),ne=Le.delete(b),le=z||ne;if(U!=null){let rt=`redskilled released the registration for project ${JSON.stringify(b)}`;Df(b),$e.push({project_label:b,registered_at:U.registered_at,at:o(),detail:rt}),$e.length>Cs&&$e.splice(0,$e.length-Cs)}return le&&bo(),{version:1,project_label:b,released:le,reach:j,detail:le?`redskilled released the registration for project ${JSON.stringify(b)}`:`redskilled held no registration for project ${JSON.stringify(b)}, so there was nothing to release`}}function Df(b){Le.delete(b);for(let P=me.length-1;P>=0;P-=1)me[P].project_label===b&&me.splice(P,1);for(let P=$e.length-1;P>=0;P-=1)$e[P].project_label===b&&$e.splice(P,1);Ht.delete(b)}async function Lx(b,P){try{await q(b)}catch{}return Bi(b.worker_id),Ut("worker-death",b,P),pt(),!0}function yo(b){return em({ceiling:l,workers:[...ce.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function Ql(b){let P=$u(b),j=Wt.get(P);if(j!=null)return j;let U=i(b).finally(()=>{Wt.get(P)===U&&Wt.delete(P)});return Wt.set(P,U),U}async function Of(b,P,j,U){let z=U??yo(b);if(!z.admitted)throw new Xt(z.reason,z);let ne;try{ne=await(j??Ql(P))}catch(rt){let Je=g0(z,P,rt);throw new Xt(Je.reason,Je)}let le=yo(b);if(!le.admitted)throw new Xt(le.reason,le);return bs(b,{admission:le,forkSha:ne})}function bs(b,P={}){let j=tm({ceiling:l,workers:[...ce.values()],budget:b.budget}),U=s({spec:b,admission:P.admission??yo(b),...P.forkSha==null?{}:{forkSha:P.forkSha},memoryCeiling:j,liveWorkerIds:ce.keys(),clock:o,onExit:(rt,Je,ko)=>{let be=ce.get(rt);if(be==null){pt();return}Ox(be,Je,ko).catch(()=>{})}}),z=P.forkSha??U.fork_sha??U.worker.fork_sha,ne=z==null||z===""?U.worker:{...U.worker,fork_sha:z},le={...U,worker:ne,...z==null||z===""?{}:{fork_sha:z}};return ce.set(ne.worker_id,ne),P.hook===!0&&J.track(ne.worker_id),Ut("worker-birth",ne,null,{admissionVerdict:P.admission?.verdict??U.admission.verdict}),pt(),le}function Ut(b,P,j,U={}){if(tt)return;let z=o(),ne={kind:b,worker:P,ts:z,detail:j,...U};(b==="worker-death"||b==="worker-budget-kill")&&(vx({worker_id:P.worker_id,ts:z,outcome:b}),Ff(ma(ne),{startedAt:P.started_at,...U.refusal==null?{}:{refusal:U.refusal}}),Fx(P.project_label,Date.parse(z)-Date.parse(P.started_at))),H.recordWorker(ne).catch(()=>{}),J.onEvent(b,P)}function Ff(b,P={}){let j=Ah(b,P);if(j==null)return;let U=[j,...(xt??[]).filter(z=>z.kind!==j.kind||z.id!==j.id||z.ts!==j.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));xt=Nn(U,z=>z.ts,{now:o()})}async function Xl(){let b=Date.parse(o()),P=[...ce.values()].filter(U=>{if(ct.has(U.worker_id))return!0;let z=Date.parse(U.started_at);return!Number.isFinite(z)||b-z>=W});if(P.length===0)return[];let{dead:j}=await Mu(P,I);for(let U of j)Bi(U.worker_id),Ut("worker-death",U,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function If(b,P){let j=ce.get(b);if(!j)return!1;try{await q(j)}catch{}return Bi(b),Ut("worker-budget-kill",j,P),pt(),!0}async function Mf(){let b=[...ce.values()];if(b.length===0)return[];let P;try{P=await se(b)}catch{return[]}let j=P.rss;L=j,B=o(),jx(P.cpu_seconds,B);let{terminations:U}=Jb({workers:b,rss:j}),z=[];for(let ne of U)await If(ne.worker_id,ne.reason)&&z.push(ne);return z}function jx(b,P){for(let[j,U]of Object.entries(b)){if(typeof U!="number"||!Number.isFinite(U))continue;let z=ce.get(j);z&&ce.set(j,{...z,cpu:{cpu_seconds:U,sampled_at:P}})}}async function Bx(){try{return de<=0?await ke(r):await new Promise(b=>{let P=setTimeout(()=>b(Zl()),de);P.unref(),ke(r).then(j=>{clearTimeout(P),b(j)},()=>{clearTimeout(P),b(Zl())})})}catch{return Zl()}}function Zl(){try{return Re(r)}catch{return null}}async function Lf(){if(si(r))return je+=1,X=o(),Be="local-build",{act:"hold",reason:"local-build"};let b=I0(await Bx()),P=b.version;K=P,nn=b.newest??null,X=o(),Rr=M0({running:r,newest:nn,supervised:we});let j=L0({running:r,published:P,supervised:we});return xe=j.act==="replace",je+=1,Be=j.act==="hold"?j.reason:null,Lt!=="in-progress"&&(Lt=j.act==="replace"?"pending":"none"),j}async function $i(){let b=await Lf();if(b.act!=="replace"||Lt==="in-progress")return b;let P=B0(b,Se,t,n);return Lt="in-progress",await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Gi({reason:"replaced"}),$0(P,t,{...n==null?{}:{idleMs:n},io:Se}),b}function $x(){tt||Cn!=null||Y<=0||(!De&&ve>0&&(Dn=setTimeout(()=>{$i().catch(()=>{})},ve),Dn.unref()),Cn=setInterval(()=>{$i().catch(()=>{})},Y),Cn.unref())}async function jf(){return await c.renew(d).catch(()=>null)}function Nx(){tt||Pn!=null||Ae<=0||(Pn=setInterval(()=>{jf()},Ae),Pn.unref())}function Gx(){tt||Ne!=null||Ee<=0||(Ne=setInterval(()=>{mo(o())},Ee),Ne.unref())}function Wx(){tt||Tn!=null||pe<=0||(Tn=setInterval(()=>{Mf().catch(()=>{})},pe),Tn.unref())}function Hx(){tt||xr!=null||fe==null||fe.projects.length===0||ie<=0||(Yl().catch(()=>{}),xr=setInterval(()=>{Yl().catch(()=>{})},ie),xr.unref())}function Ux(){if(tt||Me!=null||tn<=0)return;let b=P=>{Me=setTimeout(()=>{Me=void 0,Bf().then(()=>Ef()).catch(()=>{}).finally(()=>{if(tt)return;let j=Date.parse(o());b(p0(vt,tn,Number.isFinite(j)?j:Date.now()))})},P),Me.unref()};b(tn)}async function Bf(){await Promise.allSettled([...Ce.values()].filter(b=>b.trunk!=null).map(async b=>{let P=await Ql({workspace_path:b.workspace_path,trunk:b.trunk}),j=[...ce.values()].filter(U=>U.project_label===b.project_label&&U.fork_sha!=null&&U.fork_sha!=="");await Promise.allSettled(j.map(async U=>{let z=await a({workspace_path:b.workspace_path,fork_sha:U.fork_sha,head_sha:P}),ne=ce.get(U.worker_id);if(ne==null||ne.fork_sha!==U.fork_sha)return;let le={...ne,base_head_sha:P,base_commits_ahead:z};ce.set(U.worker_id,le),(ne.base_head_sha!==P||ne.base_commits_ahead!==z)&&Ut("worker-drift",le,null,{baseHeadSha:P,baseCommitsAhead:z})}))}))}function qx(){tt||An!=null||rn<=0||(An=setInterval(()=>{vf().catch(()=>{})},rn),An.unref())}function pt(){tt||(sn&&clearTimeout(sn),sn=setTimeout(()=>{Xl().catch(()=>{}).then(()=>$f())},n),sn.unref())}function $f(){return ce.size>0?(pt(),"held-by-workers"):(mo(o()),Ce.size>0?(pt(),"held-by-registrations"):(Kx(),"exited"))}async function Kx(){if(!si(r)){if((await $i().catch(()=>null))?.act==="replace"||Hr||tt)return;if(ce.size>0||Ce.size>0){pt();return}}await Gi({reason:"idle"})}function Ni(b){return ym({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ce.values()],projects:[...Ce.keys()]})}function Nf(b){if(On!=null)return On;let P=b.reason??"requested",j=b.note?.trim();return On=H.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:P,detail:j==null||j===""?Ni(P).detail:`${Ni(P).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),On}async function Gi(b={}){if(Hr)return await Jl;Hr=!0,await Nf(b),tt=!0,sn&&clearTimeout(sn),Tn&&clearInterval(Tn),Pn&&clearInterval(Pn),Ne&&clearInterval(Ne),Cn&&clearInterval(Cn),Dn&&clearTimeout(Dn),xr&&clearInterval(xr),Wr&&clearTimeout(Wr),Me&&clearTimeout(Me),An&&clearInterval(An),await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await c.release(d),await g.release(u),M.close();for(let P of F)P.destroy();return await new Promise(P=>M.once("close",()=>P())),await J1(t.socketPath,{force:!0}),wf(),await Jl}let Wi=await H.read().catch(()=>[]),Hi=new Map;for(let b of Wi){if(b.event==="worker-birth"){Hi.set(b.worker_id,b.ts);continue}let P=sc(b.detail);Ff(b,{...Hi.get(b.worker_id)==null?{}:{startedAt:Hi.get(b.worker_id)},...P==null?{}:{refusal:P}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Hi.delete(b.worker_id)}ut=Nn(Wi.filter(b=>b.event==="worker-death"||b.event==="worker-budget-kill").map(b=>({worker_id:b.worker_id,ts:b.ts,outcome:b.event})),b=>b.ts,{now:o()}),lt=Uh(Wi,o());let Vx=pc(Wi),ed=await Mu(Vx,I);for(let b of ed.alive){let P=n0(b),j=P.unit==null||Ye(P.pid)?null:ae(P.unit);ce.set(P.worker_id,j!=null&&j>0?{...P,pid:j}:P),ct.add(P.worker_id)}for(let b of ed.dead)Ut("worker-death",b,"the Worker ended while no daemon was watching");let zx=r0({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ce.values()],mainPid:ae,now:N});for(let b of zx)ce.set(b.worker_id,b),ct.add(b.worker_id),Ut("worker-birth",b,"adopted from an active unit with no birth on this lane");_f(o());for(let b of ed.alive){if(b.log_path==null||Ze.has(b.worker_id))continue;let P=await Z(b.log_path).catch(()=>null);P==null||P.trim()===""||Ze.set(b.worker_id,{line:P,published_at:o(),source:"rehydrated"})}M.on("connection",b=>{F.add(b),b.once("close",()=>F.delete(b)),pt(),Fh(b,async(P,j)=>{pt();let U=await Jx(P);j(U),P.op==="shutdown"&&setImmediate(()=>void Gi({reason:"requested"}).catch(()=>{}))})});async function Jx(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:Va,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Li()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:py(ji(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:Ax(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:Cx(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:Sf(b.heartbeat)};if(b.op==="project-register"){let j=Pf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=Af(b.project_label,{...b.session_project==null?{}:{sessionProject:b.session_project},...b.renew_within_ms==null?{}:{renewWithinMs:b.renew_within_ms},...b.launch==null?{}:{launch:b.launch}});return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-deregister"){let j=Cf(b.project_label,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-reset")return{id:b.id,ok:!0,value:Tf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await Dx(b.command)};if(b.op==="worker-start"){let j=Fn("worker-start",b.session_project,b.spec.project_label);if(!j.permitted)return{id:b.id,ok:!1,error:j.reason};let U=await w(()=>b.spec.trunk==null?bs(b.spec):Of(b.spec,{workspace_path:b.spec.workspace_path,trunk:b.spec.trunk}));return await H.flush().catch(()=>{}),{id:b.id,ok:!0,value:{worker:U.worker,admission:U.admission,fork_sha:U.fork_sha,warnings:U.warnings}}}if(b.op==="shutdown"){let j=Ni("requested");return await Nf({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let P=b;return{id:P.id??X0(),ok:!1,error:`unsupported redskilled op: ${P.op??"unknown"}`}}catch(P){return{id:b.id??X0(),ok:!1,error:P instanceof Error?P.message:String(P)}}}return pt(),Wx(),Nx(),Gx(),$x(),Hx(),Sx(),Ux(),qx(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:Jl,startWorker:bs,admit:yo,ceiling:()=>l,killWorkerOverBudget:If,sampleMemoryBudgets:Mf,renewLease:jf,pollRepositoryActivity:Yl,pollGithubBalance:xf,githubBalance:()=>_r,pollQueueDiscovery:Ef,queueDiscovery:()=>vt,driveDemand:vf,demand:()=>re,sweepWorkerLiveness:Xl,publishWorkerHeartbeat:Sf,reattached:()=>[...ct].map(b=>ce.get(b)).filter(b=>b!=null),flushEvents:async()=>{await C,await J.waitForSettled(),await H.flush()},trackWorker(b){ce.set(b.worker_id,b),Ut("worker-birth",b,null),pt()},releaseWorker(b){let P=ce.get(b),j=ce.delete(b);return ct.delete(b),Ze.delete(b),_t.delete(b),P&&Ut("worker-death",P,"released by the daemon"),pt(),j},workerCount:()=>ce.size,registerProject:Pf,renewProject:Af,resetProjectBirthBreaker:Tf,deregisterProject:Cf,registrations:()=>Li().registrations??[],hostState:Li,refreshRegisteredTrunks:Bf,statuslinePayload:ji,evaluateIdle:$f,observePublishedVersion:Lf,checkForReplacement:$i,stopReport:Ni,stop:Gi}}function Ku(e){let t=e.socketPath,r=Q1(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 ${ek(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${kn("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${kn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function Vu(e){return`${e.reason} ${e.repair}`}function Q1(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:X1(t.acquired_at,e.now??new Date().toISOString())}}function X1(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 ek(e){let t=Math.floor(e/1e3),r=Math.floor(t/3600),n=Math.floor(t%3600/60),o=t%60;return r>0?`${r}h${String(n).padStart(2,"0")}m`:n>0?`${n}m${String(o).padStart(2,"0")}s`:`${o}s`}import{spawnSync as Z1}from"node:child_process";import{existsSync as eF}from"node:fs";import{basename as tk,dirname as tF,join as rk}from"node:path";async function ii(e){let r=await Is(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==ba().uid||!Ye(r.pid))return{paths:e,joined:!1};let n=tF(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:rk(n,tk(e.lockPath)),leasePath:rk(n,tk(e.leasePath))}}}async function nk(e){let r=await Is(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Ye(r.pid)))throw new Vr(e.machineClaimPath,"held",r)}async function ok(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[mc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Fo({env:n,machineIdHash:e.machineIdHash}))||!(o??eF(Vo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=Z1("systemctl",["--user","start",Zt],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${Zt}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await rF(e,t,r),!0}async function rF(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ii(e);if(await Jt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${Zt} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}Kr();var Ju=1e4,Vn=class extends Error{constructor(r,n,o){super(`redskilled daemon is unreachable on ${JSON.stringify(r)}, so no Worker was started: ${n instanceof Error?n.message:String(n)}${o!=null&&o.kind==="held-unresponsive"?`. ${Vu(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},zu=class extends Vn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},tl=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function rl(e,t={}){let r=t.answers??await Jt(e.socketPath),n=await zo(e.leasePath).catch(()=>{});return Ku({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Ye(n.pid)})}async function Yu(e,t={}){let r=await ii(e);try{let n=await iF(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Vr||n instanceof Vn)throw n;let o=await rl(r.paths).catch(()=>{});throw new Vn(r.paths.socketPath,n,o)}}async function iF(e,t){if(await oF(sF(e.socketPath),{recursive:!0,mode:448}),await Jt(e.socketPath))return"already-running";await nk(e);let r=await lF(e,t);if(r!=null)return r;if(await ok(e,t,Ju))return"joined";let n=await uh(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??aF});if(!n.acquired)return await sk(e,t,void 0,n),"joined";try{if(await Jt(e.socketPath))return"already-running";let o=await cF(e,t);return await sk(e,t,o),"spawned"}finally{await ph(n)}}function aF(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
|
|
103
|
+
`)}async function lF(e,t){let r=await rl(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??Ju,o=Date.now()+n;for(;;){if(await Jt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await rl(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new zu(e.socketPath,s,new Error(`it did not answer a ping within ${n}ms, and no second daemon was spawned because pid ${s.holder?.pid??"unknown"} still holds this socket`))}async function ak(e,t,r={}){await Yu(e,r);let n=(await ii(e)).paths,o;try{o=await Zs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:ik()})}catch(s){throw new Vn(n.socketPath,s,await rl(n).catch(()=>{}))}if(!o.ok)throw new tl(o.error);return o.value}async function lk(e,t={},r={}){let n=(await ii(e)).paths;if(!await Jt(n.socketPath))return km(n.socketPath);let o;try{o=await Zs({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:ik(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Vn(n.socketPath,a)}if(!o.ok)throw new tl(o.error);if(!gc(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await dF(n,s.pid,t.settleTimeoutMs??5e3);return i.complete?s:{...s,stopped:!1,detail:`${s.detail}; the daemon accepted the stop but did not finish its bounded drain by ${i.deadline}: ${i.pending.join(", ")}`}}async function dF(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await Jt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await zo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Ye(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function dk(e,t={}){let r=await ak(e,{op:"host-state"},t);if(!Ty(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function ck(e,t={},r){let n=await ak(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!au(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function uk(e,t=Ge,r={}){let n=await ck(e,r,{vitals:!0,logs:t.verbose,display:!0});return qn(n,t)}async function pk(e,t={},r={}){let n=await ck(e,r,{vitals:!0,logs:!0,display:!0});return Ho(n,{...$t,...t})}async function sk(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??Ju);for(;;){if(await Jt(e.socketPath))return;if(r?.failure)throw new Error(`redskilled daemon failed to start from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source}): ${r.failure.message}`);if(Date.now()>=o){if(n!=null)throw new Error(`no redskilled daemon answered on ${JSON.stringify(e.socketPath)} within the ready window, and ${fh(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 cF(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await xh({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...dn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=nF(n.command,s,{detached:!0,stdio:"ignore",env:{...t.env??process.env,REDSKILLED_DAEMON:"1"}});return i.on("error",a=>{o.failure=a}),i.on("exit",(a,l)=>{o.exit=l?`died on ${l}`:`exited with code ${a??-1}`}),i.unref(),o}Kr();import{readFile as uF}from"node:fs/promises";import{homedir as pF,totalmem as fF}from"node:os";import{join as gF}from"node:path";var hF="REDSKILLED_IDLE_MS",mF=".red/config.yaml";async function gk(e=pF()){let t=gF(e,mF),r;try{r=await uF(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Qu(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${fk(n)}`),{})}try{let n=yF(r);return{...nl(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...nl(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...nl(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...nl(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Qu(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${fk(n)}`),{}}}function hk(e={}){let t=e.env??process.env,r=e.config??{},n=ha(t,e.totalMemoryBytes??fF(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=bF(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[hF],r.idleMs);if(o==null)return{ceiling:n,idleMs:Co,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Qu(`redskilled: ${RF(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Co}ms instead.`),{ceiling:n,idleMs:Co,idleMsSource:"derived-default"})}function bF(e,t,r){if(e!==void 0)return{value:e.trim(),source:"flag"};if(t!==void 0)return{value:t.trim(),source:"environment"};if(r!==void 0)return{value:r.trim(),source:"home-config"}}function nl(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function yF(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=kF(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(".")]=wF(c.trim())}return t}function kF(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 wF(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function RF(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function fk(e){return e instanceof Error?e.message:String(e)}function Qu(e){process.stderr.write(`${e}
|
|
104
|
+
`)}import{chmod as xk,mkdir as vk,readFile as Sk,stat as LF,writeFile as Tk}from"node:fs/promises";import{homedir as ep}from"node:os";import{dirname as Pk,join as ol}from"node:path";import{join as SF}from"node:path";import{existsSync as _F,readFileSync as Q3}from"node:fs";import{dirname as xF,join as EF}from"node:path";function mk(e,t){let r=e;for(let n=0;n<16;n++){let o=EF(r,t);if(_F(o))return o;let s=xF(r);if(s===r)break;r=s}return null}function vF(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Jo(e,t){let r=[];for(let n of e.split(`
|
|
105
|
+
`)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return vF(d)}}var bk=["local","tmp","host"],TF="local",ai="plugins.dev.workspace.target";var Xu=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function kk(e){let t=Jo(e,ai),r=CF(t??"").trim();return r===""?void 0:r}function wk(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:TF};let r=bk.find(n=>n===t.toLowerCase());if(r)return{kind:"preset",preset:r};if(t.startsWith("/")||t==="~"||t.startsWith("~/"))return{kind:"custom",parentDir:t};throw new Xu(`${ai}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${bk.join(", ")}) or an absolute parent directory for Workers.`)}function Rk(e,t){return e.kind==="preset"?e.preset==="host":AF(PF(e.parentDir,t),ir(t))}function PF(e,t){return e==="~"?yk(t):e.startsWith("~/")?SF(t,e.slice(2)):yk(e)}function AF(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function yk(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function CF(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}Kr();import{createHash as DF}from"node:crypto";import{hostname as OF}from"node:os";import{join as li}from"node:path";var Yo="redskilled.sock",FF="REDSKILLED_SESSION";function IF(e={}){let t=e.env??process.env,r=t[FF]?.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 MF(e={}){return _k(e.host??OF())}function er(e={}){let t=IF(e),r=e.runtimeDir??la({key:`redskilled:${t}`,socketFileName:Yo,env:e.env,uid:e.uid}),n=MF(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:_k(t),machineIdHash:n,runtimeDir:r,socketPath:li(r,Yo),lockPath:li(r,"redskilled.spawn.lock"),leasePath:li(r,"redskilled.lease.toon"),eventLanePath:li(ir(o),am),registrationIntentPath:li(ir(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Fo({env:e.env,machineIdHash:n,platform:e.platform})}}function _k(e){return DF("sha256").update(e).digest("hex").slice(0,12)}var Zu=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${kn("red-skills-redskilled",["provision"])}\` directly`,jF=`# Host-scoped redskilled policy. This file is never read from a repository.
|
|
106
106
|
plugins:
|
|
107
107
|
dev:
|
|
108
108
|
redskilled:
|
|
@@ -110,15 +110,15 @@ plugins:
|
|
|
110
110
|
# memory_ceiling: 8G
|
|
111
111
|
# validation_ceiling: 2
|
|
112
112
|
# idle_ms: 300000
|
|
113
|
-
`;async function
|
|
114
|
-
`)}async function
|
|
115
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function ip(e){let t="",r=0;for(;r<e.length;){if(e[r]===Qo){let o=zn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!
|
|
116
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
113
|
+
`;async function Ak(e=ep()){let t=ir(e),r=ol(Pk(t),"config.yaml"),n=await rp(t),o=!1,s=!1;n===void 0?(await vk(t,{recursive:!0,mode:qr}),await xk(t,qr),o=!0):n!==qr&&(await xk(t,qr),s=!0);let i=!1;try{await Tk(r,jF,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:qr,configPath:r,configCreated:i}}var Ck={needed:!1,declaredBy:`no ${ai} in view`};async function tp(e={}){let t=e.homeDir??ep(),r=e.declaredTarget?.trim();if(r)return Ek(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return Ck;let o=ol(n,".red","config.yaml"),s=await Sk(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=kk(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:Ek(i,t,o)}function Ek(e,t,r){let n=`${ai}: ${e} (${r})`;try{return{needed:Rk(wk(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function Dk(e){let t=[BF(e),$F(e),NF(e),GF(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 BF(e){let t=e.homeNeed??Ck;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Zu}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??qr;return r!==qr?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${qr.toString(8)}`,fix:`${Zu} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function $F(e){return Ar(e.entry)?{check:"daemon-entry",verdict:"ok",evidence:`${e.entry.entry??e.entry.command} (resolved as ${e.entry.source})`,fix:""}:{check:"daemon-entry",verdict:"missing",evidence:`no published redskilled bundle; probed ${e.entry.searched.join(", ")||"nothing"}`,fix:`install or warm the RedSkills bundle for this host, then re-run \`${kn("red-skills-redskilled",["provision"])}\``}}function NF(e){return e.reachable?{check:"reach",verdict:"ok",evidence:`daemon answered on ${e.socketPath}`,fix:""}:{check:"reach",verdict:"missing",evidence:`no daemon answered on ${e.socketPath}`,fix:`${Zu} \u2014 it starts the daemon and waits for the socket`}}function GF(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 Ok(e={}){let t=e.env??process.env,r=e.homeDir??ep(),n=e.paths??er({env:t}),o=ir(r),[s,i,a]=await Promise.all([rp(o),Jt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):tp({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:cn(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await HF(UF(e,t,r),t)}}var WF="redskilled.service";function Fk(e){return ol(e,"systemd","user",WF)}function Ik(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
|
|
114
|
+
`)}async function Mk(e){let t=Fk(e.configHome);return await rp(t)!==void 0?{path:t,status:"already-present"}:(await vk(Pk(t),{recursive:!0}),await Tk(t,e.unit,"utf8"),{path:t,status:"installed"})}async function HF(e,t){if(process.platform!=="linux")return"unsupported";try{return await Sk(Fk(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function UF(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??ol(r,".config")}async function rp(e){try{return(await LF(e)).mode&511}catch{return}}import{readdir as jk,rm as qF,stat as KF}from"node:fs/promises";import{dirname as VF,join as np}from"node:path";var zF=5*6e4,JF="redskilled.";function YF(e={}){let t=e.env??process.env,r=i=>VF(la({key:"redskilled:reclaim-probe",socketFileName:Yo,env:i,...e.uid===void 0?{}:{uid:e.uid}})),{XDG_RUNTIME_DIR:n,...o}=t,s=[r(t),r(o)];return[...new Set(s)]}async function Bk(e={}){let t=e.roots??YF(e),r=e.graceMs??zF,n=e.now??Date.now,o=e.isPidAlive??Ye,s=e.answers??eI,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await jk(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await QF(np(l,c),{graceMs:r,now:n,pidAlive:o,answers:s,dryRun:i}))}return{roots:t,scanned:a.length,reclaimed:a.filter(l=>l.verdict==="reclaimed").length,dryRun:i,entries:a}}async function QF(e,t){let r;try{r=(await jk(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:$k(i),removed:[]}}let n=r.filter(i=>i.startsWith(JF));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await XF(np(e,"redskilled.lease.toon"));if(o!==void 0)return await t.pidAlive(o.pid)?{dir:e,verdict:"live",reason:`lease pid ${o.pid} is alive`,removed:[]}:await Lk(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(Yo)&&await t.answers(np(e,Yo)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await ZF(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 Lk(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function Lk(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await qF(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:$k(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function XF(e){try{return await zo(e)}catch{return}}async function ZF(e,t){try{return Math.max(0,t()-(await KF(e)).mtimeMs)}catch{return}}async function eI(e){try{return(await Zs({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function $k(e){return e instanceof Error?e.message:String(e)}var sl,il=new Map,tI=256;function Hk(){if(sl!==void 0)return sl;let e=Intl.Segmenter;return sl=e?new e(void 0,{granularity:"grapheme"}):null,sl}function op(e){return e===8205||e>=768&&e<=879||e>=6832&&e<=6911||e>=7616&&e<=7679||e>=8400&&e<=8447||e>=65024&&e<=65039||e>=65056&&e<=65071||e>=127995&&e<=127999||e>=917536&&e<=917631||e>=917760&&e<=917999}function Nk(e){let t=il.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return il.size>=tI&&il.clear(),il.set(e,r),r}function Gk(e){return e>=127462&&e<=127487}function Wk(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function rI(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function nI(e,t,r){if(Nk(t)||rI(t)||Wk(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(op(n)||Nk(n)||Wk(n)||Gk(t)&&Gk(n)||t===13&&n===10)}function oI(e){let t=[],r=0;for(;r<e.length;){let n=r,o=!1,s=e.codePointAt(r);for(r+=s>65535?2:1;r<e.length;){let i=e.codePointAt(r);if(!o&&!op(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function Uk(e){let t=Hk();if(!t)return oI(e);let r=[...t.segment(e)];return r.map((n,o)=>({segment:n.segment,index:n.index,end:r[o+1]?.index??e.length}))}function sp(e,t){if(t<0||t>=e.length)return null;let r=e.codePointAt(t);if(r===void 0)return null;let n=t+(r>65535?2:1);if(nI(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=Hk();if(o){let a=o.segment(e).containing(t);return a?{segment:a.segment,index:a.index,end:a.index+a.segment.length}:null}let s=n,i=!1;for(;s<e.length;){let a=e.codePointAt(s);if(!i&&!op(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var Qo="\x1B",sI="\x07",O6=`${Qo}\\`;function iI(e){return e>=64&&e<=126}function aI(e,t){for(let r=t;r<e.length;r++){if(e[r]===sI)return r+1;if(e[r]===Qo&&e[r+1]==="\\")return r+2}return e.length}function zn(e,t){if(e[t]!==Qo)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:Qo,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!iI(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=aI(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 qk(e){return e<=31||e>=127&&e<=159}function Xo(e){let t="",r=0;for(;r<e.length;){if(e[r]===Qo){let o=zn(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!qk(n)||e[r]===`
|
|
115
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function ip(e){let t="",r=0;for(;r<e.length;){if(e[r]===Qo){let o=zn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!qk(n)||e[r]===`
|
|
116
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function Kk(e){return ip(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var zk="\x1B",Vk=/^[\x20-\x7e]*$/,al=new Map,lI=256;function dI(e){return ip(e)}function ye(e){if(Vk.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return Jk(t);let r=dI(e);if(Vk.test(r))return r.length;let n=0;for(let{segment:o}of Uk(r))n+=cI(o);return n}function Jn(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=sp(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function cI(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?Jk(t[0]):t.every(o=>o<=31||o>=127&&o<=159||Yk(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(Qk)?2:1}function Jk(e){let t=al.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||Yk(e)?r=0:r=Qk(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,al.size>=lI&&al.clear(),al.set(e,r),r}function Yk(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 Qk(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||uI(e)}function uI(e){let t=[9986,9989,9992,9993,9994,9995,9996,9997,9999,10002,10004,10006,10024,10035,10036,10052,10055,10060,10062,10067,10068,10069,10071,10083,10084,10133,10134,10135,10145,10160],r=[9728,9729,9730,9731,9732,9742,9745,9748,9749,9752,9757,9760,9762,9763,9766,9770,9774,9775,9784,9785,9786,9792,9794,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9823,9824,9827,9829,9830,9832,9851,9854,9855,9874,9875,9876,9877,9878,9879,9881,9883,9884,9889,9898,9899,9904,9905,9917,9918,9924,9925,9934,9940,9962,9970,9971,9973,9978,9981];return t.includes(e)||r.includes(e)}function Yn(e,t,r){if(t<=0)return e.split(`
|
|
117
117
|
`);let n=[];for(let o of e.split(`
|
|
118
|
-
`)){if(r==="truncate"||r==="truncate-end"){n.push(Qr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Qr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Qr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...fI(o,t))}return n}function fI(e,t){if(ye(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(ye(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),ye(o)<=t){n=o;continue}let i=gI(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function gI(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===Kk){let l=zn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Jn(e,s);if(!i)break;let a=ye(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Qr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(ye(e)<=t)return e;if(t<ye(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=ye(l);return n==="start"?hI(e,t,l,d,i):n==="middle"?bI(e,t,l,d,i):mI(e,t,l,d,i)}function hI(e,t,r,n,o){let s=t-n,i=Zo(e,ye(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function mI(e,t,r,n,o){let s=t-n,i=Zo(e,0,s);if(o){let a=i.lastIndexOf(" ");if(a!==-1&&i.length-a<4)return i.slice(0,a)+r}return i+r}function bI(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Zo(e,0,i),d=Zo(e,ye(e)-a);if(o){let c=l.lastIndexOf(" ");c!==-1&&l.length-c<4&&(l=l.slice(0,c));let u=d.indexOf(" ");u!==-1&&u<4&&(d=d.slice(u+1))}return l+r+d}function Zo(e,t,r){let n=Number.isFinite(t)?Math.max(0,Math.trunc(t)):0,o=r===void 0?void 0:Number.isFinite(r)?Math.max(n,Math.trunc(r)):n,s="",i=0,a="",l=0,d=!1;for(;l<e.length&&(o===void 0||i<o);){if(e[l]===Kk){let f=zn(e,l);if(f){if(l=f.end,f.kind!=="sgr")continue;a=f.value==="\x1B[0m"?"":a+f.value,i>=n&&(o===void 0||i<o)&&(s+=f.value);continue}}let c=sp(e,l);if(!c){l++;continue}let u=ye(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function di(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function ap(e,t,r){if(t===void 0)return dt(e,117);if(t===null)return dt(e,110);switch(typeof t){case"boolean":return dt(dt(e,98),t?49:48);case"number":return di(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return di(dt(e,105),t.toString());case"string":return di(dt(e,115),t);case"function":return r.ignoreFunctions===!1?dt(e,102):e;case"object":{if(Array.isArray(t)){let i=dt(e,91);for(let a of t)i=ap(i,a,r),i=dt(i,124);return dt(i,93)}let n=dt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=di(dt(n,107),i),n=dt(n,58),n=ap(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return di(dt(e,63),String(t))}}function Ft(e,t={}){return ap(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as yI}from"node:async_hooks";var Fr=Symbol("tuiuiu.runtime-resource-dispose"),Yk=new yI,cl=new Set,kI=1,es={id:0,resources:new Map};function Qk(){let e={id:kI++,resources:new Map};return cl.add(e),e}function wI(e){cl.delete(e)}function Xk(e){if(e!==null&&typeof e=="object"&&Fr in e)try{e[Fr]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function RI(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)Xk(r)}function ts(e){wI(e),RI(e)}function qe(e,t){return Yk.run(e,t)}function Xr(e,t){return(...r)=>qe(e,()=>t(...r))}function lp(){return Yk.getStore()??null}function We(e){if(e)return e;let t=lp();return t||(cl.size===1?cl.values().next().value??es:es)}function Ir(){return es}function Oe(e,t,r){let n=We(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function It(e,t){return es.resources.has(e)||es.resources.set(e,t()),es.resources.get(e)}function ul(e,t){let r=We(t),n=r.resources.get(e);r.resources.delete(e),Xk(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function dp(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function _I(e){let t=e.props,r=typeof t.width=="number"&&t.width>0&&t.width!==1/0,n=typeof t.height=="number"&&t.height>0&&t.height!==1/0;return!(!r||!n||(t.flexGrow??0)>0||t.width==="fill"||t.height==="fill")}var cp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=dp();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=dp()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&_I(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Ft({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=dp()}},xI=Symbol("tuiuiu.dirty-registry");function Mr(e){return Oe(xI,()=>new cp,e)}function Zk(e){Mr().beginFrame(e)}function ew(e,t){Mr().registerNode(e,t)}function wn(e,t=Pe.CONTENT){Mr().markDirty(e,t)}function tw(e){Mr().markLayoutClean(e)}function ci(e){Mr().noteReuse(e)}function Qn(e){Mr().noteFresh(e)}function pl(e){return Mr().canReuseSubtree(e)}function rw(){return Mr().getDiagnostics()}function ui(){Mr().clearGlobalDirty()}function rs(e){Mr().markClean(e.node);for(let r of e.children)rs(r)}var nw=new WeakMap;function wt(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function fl(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var At=e=>e==="auto"?0:wt(e,"margin"),EI=new Set(["layoutRef","__scrollQuery"]),vI=new Set(["display","position","flexDirection","flexWrap","flexGrow","flexShrink","flexBasis","flex","justifyContent","alignItems","alignSelf","alignContent","padding","paddingX","paddingY","paddingTop","paddingBottom","paddingLeft","paddingRight","margin","marginX","marginY","marginTop","marginBottom","marginLeft","marginRight","gap","columnGap","rowGap","width","height","minWidth","minHeight","maxWidth","maxHeight","top","bottom","left","right","borderStyle","borderTop","borderBottom","borderLeft","borderRight","overflow","overflowX","overflowY"]),SI=new Set(["children","wrap"]);function TI(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function ns(e){let t=e.props??{},r=e.type==="text"?SI:vI,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ft(n,{ignoreKeys:EI})}function PI(e,t){if(e.children.length!==t.length)return!1;for(let r=0;r<t.length;r++)if(e.children[r]!==t[r])return!1;return!0}function AI(e,t){if(!pl(e)){Qn("layout");return}let r=nw.get(e);if(!r){Qn("layout");return}if(r.ctxKey!==t){wn(e,Pe.LAYOUT),Qn("layout");return}let n=ns(e);if(r.propsKey!==n||!PI(e,r.childRefs)){wn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Qn("layout");return}return ci("layout"),r.layout}function pi(e,t,r,n){nw.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),tw(e)}function ht(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function ow(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Mt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function sw(e,t=0,r=0){let n=t+e.x,o=r+e.y;Mt(e.node,{...e,x:n,y:o});let s=e.node.props,i=wt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=wt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)sw(u,d,c)}function iw(e,t,r=1/0){if(!Number.isFinite(t)||t<0)throw new RangeError("availableWidth must be a finite non-negative number");if(r!==1/0&&(!Number.isFinite(r)||r<0))throw new RangeError("availableHeight must be a non-negative number or Infinity");t=Math.floor(t),r!==1/0&&(r=Math.floor(r)),Zk(e);let n=Lr(e,{x:0,y:0,width:t,height:r},null);return sw(n),n}function CI(e,t){let r=e.props.__divider;if(r==="horizontal")return{x:t.x,y:t.y,width:t.width,height:Math.min(1,t.height),node:e,children:[]};if(r==="vertical")return{x:t.x,y:t.y,width:Math.min(1,t.width),height:e.props.__splitDivider?Math.min(1,t.height):t.height,node:e,children:[]};let n=Yn(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>ye(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function DI(e,t){let r=typeof e.props.height=="number"?e.props.height:1;return{x:t.x,y:t.y,width:t.width,height:Math.min(r,t.height),node:e,children:[]}}function OI(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function Lr(e,t,r){ew(e,r);let n=TI(t),o=AI(e,n);if(o)return Mt(e,o),o;let s;if(e.type==="text")return s=CI(e,t),pi(e,n,ns(e),s),s;if(e.type==="spacer")return s=DI(e,t),pi(e,n,ns(e),s),s;if(e.type==="newline")return s=OI(e,t),pi(e,n,ns(e),s),s;let i=e.props;if(i.display==="none")return s={x:t.x,y:t.y,width:0,height:0,node:e,children:[]},Mt(e,s),pi(e,n,ns(e),s),s;let a=wt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=wt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=wt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=wt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=At(i.marginTop??i.marginY??i.margin),p=At(i.marginBottom??i.marginY??i.margin),g=At(i.marginLeft??i.marginX??i.margin),f=At(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,h=fi(i.width,t.width),R=fi(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?h:t.width)-d-c-y*2),M=Math.max(0,($?R:t.height)-a-l-y*2),N=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:M,H=[],G=i.flexDirection??"column",I=G==="row"||G==="row-reverse",W=G==="row-reverse"||G==="column-reverse",q=wt(I?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],ae=[];if(e.children.length>0){for(let ie of e.children)ie.props.position==="absolute"?oe.push(ie):ae.push(ie);let fe=W?[...ae].reverse():ae;I?H.push(...aw(fe,D,N,q,i,$,e)):H.push(...II(fe,D,N,q,i,e))}let se=0,Z=0;if(I)for(let fe of H){let ie=fe.node.props,_e=At(ie.marginRight??ie.marginX??ie.margin),Fe=At(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.x+fe.width+_e),Z=Math.max(Z,fe.y+fe.height+Fe)}else for(let fe of H){let ie=fe.node.props,_e=At(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+_e)}let Ae=fl(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,ke=T?h:Ae?t.width:Ee,Y=$?R:Z+a+l+y*2,de=wt(i.minWidth,"minWidth"),Re=wt(i.minHeight,"minHeight");if(ke=Math.max(ke,de),Y=Math.max(Y,Re),i.maxWidth!==void 0&&(ke=Math.min(ke,wt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(Y=Math.min(Y,wt(i.maxHeight,"maxHeight"))),I&&i.alignItems==="stretch"){let fe=Math.max(0,Y-a-l-y*2);for(let ie=0;ie<H.length;ie++){let _e=H[ie],Fe=_e.node.props;Fe.height===void 0&&(H[ie]=ow(_e,Math.max(_e.height,fe),Fe),Mt(_e.node,H[ie]))}}let De=t.x+g,ve=t.y+u,we=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(Y,Math.max(0,t.height-u-p)));for(let fe of oe){let ie=fe.props,_e=Lr(fe,{x:0,y:0,width:D,height:N},e),Fe=De+d+y,at=ve+a+y;ie.left!==void 0?Fe=De+d+y+ie.left:ie.right!==void 0&&(Fe=De+we-c-y-_e.width-ie.right),ie.top!==void 0?at=ve+a+y+ie.top:ie.bottom!==void 0&&(at=ve+Se-l-y-_e.height-ie.bottom);let Gt=ht(_e,{x:Fe,y:at});Mt(fe,Gt),H.push(Gt)}return s={x:De,y:ve,width:we,height:Se,node:e,children:H},Mt(e,s),pi(e,n,ns(e),s),s}function aw(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return FI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let G of e){let I=G.props,W=I.flexGrow;W===void 0?W=I.width==="fill"||G.type==="spacer"?1:0:W=fl(W,"flexGrow");let q=wt(I.minWidth,"minWidth"),oe=I.flexBasis==="content"?Lr(G,{x:0,y:0,width:t,height:r},i).width:I.flexBasis===void 0||I.flexBasis==="auto"?q:fi(I.flexBasis,t),ae=I.flexShrink===void 0?1:fl(I.flexShrink,"flexShrink"),se=At(I.marginLeft??I.marginX??I.margin),Z=At(I.marginRight??I.marginX??I.margin);if(W>0)c+=W,d+=oe+se+Z,u.push({node:G,flex:W,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:Z});else{let Ae=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?fi(I.width,t)+se+Z:t,Ee=Lr(G,{x:0,y:0,width:Ae,height:r},i);d+=Ee.width+se+Z,u.push({node:G,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:Z,layout:Ee,measuredCtxWidth:Ae})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let G=u.map(()=>0),I=Math.ceil(p);for(;I>0;){let W=u.map((Z,pe)=>{let Ae=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,Ae-G[pe]);return{index:pe,capacity:Ee,maxReduction:Ae,weight:Z.shrink*Z.basis}}).filter(Z=>Z.capacity>0&&Z.weight>0),q=W.reduce((Z,pe)=>Z+pe.weight,0);if(q<=0)break;let oe=W.map(Z=>{let pe=I*Z.weight/q,Ae=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Ae,fraction:pe-Math.floor(pe)}}),ae=0;for(let Z of oe)Z.whole>0&&(G[Z.index]+=Z.whole,ae+=Z.whole);if(I-=ae,I<=0)break;oe.sort((Z,pe)=>pe.fraction-Z.fraction||pe.weight-Z.weight||pe.capacity-Z.capacity);let se=!1;for(let Z of oe){if(I<=0)break;G[Z.index]<Z.maxReduction&&(G[Z.index]+=1,I-=1,se=!0)}if(!se)break}if(G.some(W=>W>0)){for(let W=0;W<u.length;W++){let q=u[W];q.targetWidth=Math.max(q.minWidth,q.basis-G[W])}d=u.reduce((W,q)=>W+(q.targetWidth??q.basis)+q.marginLeft+q.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,y=0,h=o.justifyContent??"flex-start",R=d+(c>0?g:0),T=t-R,$=0,D=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?$=T/(u.length-1):h==="space-around"?(D=T/(u.length*2),y=D):h==="space-evenly"?($=T/(u.length+1),y=$):h==="flex-end"?y=T:h==="center"&&(y=T/2));let M=0,N=[];for(let G=0;G<u.length;G++){let I=u[G],q=(I.targetWidth??(I.flex>0?I.basis+Math.floor(f*I.flex):I.basis))+I.marginLeft+I.marginRight,oe=I.layout&&I.measuredCtxWidth===q?ht(I.layout,{x:I.layout.x+y}):Lr(I.node,{x:y,y:0,width:q,height:r},i),ae=I.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),y+=I.marginLeft+oe.width+I.marginRight,h==="space-between"&&G<u.length-1?y+=$:h==="space-around"?y+=D*2:h==="space-evenly"?y+=$:y+=n}let H=s?r:M;for(let G of N){let{style:I}=G,{layout:W}=G,q=I.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(I.height===void 0&&(se=Math.max(W.height,H)),ae=0):oe==="center"?ae=Math.floor((H-W.height)/2):oe==="flex-end"?ae=H-W.height:oe==="baseline"&&(ae=0),W=ow(W,se,I),W=ht(W,{y:ae}),Mt(W.node,W),a.push(W)}return a}function FI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=At(M.marginLeft??M.marginX??M.margin),H=At(M.marginRight??M.marginX??M.margin),G=Lr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:fi(M.flexBasis,t))+N+H,q=c+(d.length>0?n:0)+W;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=wt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let M=aw(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((H,G)=>Math.max(H,G.y+G.height),0);return{layouts:M,height:N}}),g=p.reduce((D,M)=>D+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",h=0,R=0;y==="flex-end"?h=f:y==="center"?h=Math.floor(f/2):y==="space-between"&&p.length>1?R=f/(p.length-1):y==="space-around"&&p.length>0?(R=f/p.length,h=Math.floor(R/2)):y==="stretch"&&p.length>0&&(R=f/p.length);let T=[],$=h;for(let D of p){for(let M of D.layouts){let N=ht(M,{y:M.y+Math.floor($)});Mt(N.node,N),T.push(N)}$+=D.height+u+R}return T}function II(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,y=[];for(let h of e){let R=h.props,T=At(R.marginTop??R.marginY??R.margin),$=At(R.marginBottom??R.marginY??R.margin),D=R.flexGrow;D===void 0?D=R.height==="fill"||h.type==="spacer"?1:0:D=fl(D,"flexGrow");let M=wt(R.minHeight,"minHeight"),N=R.maxHeight===void 0?void 0:wt(R.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,y.push({node:h,flex:D,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$});else{let H=Lr(h,{x:0,y:0,width:t,height:r},s);g+=H.height+T+$,y.push({node:h,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$,layout:H})}}if(g+=n*Math.max(0,e.length-1),f>0){let R=Math.max(0,r-g)/f,T=0;for(let $=0;$<y.length;$++){let D=y[$],N=D.node.props.alignSelf,H=N!=="auto"&&N?N:o.alignItems??"flex-start",G=D.layout;if(D.flex>0){let q=Math.floor(R*D.flex);q=Math.max(D.minHeight,q),D.maxHeight!==void 0&&(q=Math.min(D.maxHeight,q)),G=Lr(D.node,{x:0,y:T,width:t,height:q},s),G=ht(G,{height:q})}G||(G=Lr(D.node,{x:0,y:T,width:t,height:r},s));let I=G.x,W=G.width;H==="center"?I=Math.floor((t-G.width)/2):H==="flex-end"?I=t-G.width:H==="stretch"&&(W=t),G=ht(G,{x:I,y:T,width:W}),Mt(G.node,G),i.push(G),T+=D.marginTop+G.height+D.marginBottom,$<y.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],y=f.props,h=At(y.marginTop??y.marginY??y.margin),R=At(y.marginBottom??y.marginY??y.margin),T=Lr(f,{x:0,y:l,width:t,height:r-l},s),$=y.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",M=T.x,N=T.width;D==="center"?M=Math.floor((t-T.width)/2):D==="flex-end"?M=t-T.width:D==="stretch"&&(N=t);let H=ht(T,{x:M,width:N});Mt(H.node,H),i.push(H),l+=h+T.height+R,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*y)}),Mt(i[y].node,i[y]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),Mt(i[y].node,i[y]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(y+1))}),Mt(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),Mt(i[f].node,i[f])}return i}function fi(e,t){if(e===void 0||e==="auto")return 0;if(e==="fill")return t;if(typeof e=="number"){if(!Number.isFinite(e)||e<0)throw new RangeError("Layout size must be a finite non-negative number");return Math.floor(e)}if(e.endsWith("%")){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0)throw new RangeError("Layout percentage must be finite and non-negative");return t===1/0?0:Math.floor(n/100*t)}let r=Number(e);if(!Number.isFinite(r)||r<0)throw new RangeError(`Invalid layout size: ${e}`);return Math.floor(r)}var lw={background:0,normal:1,modal:2,critical:3};var dw=new Set;function uw(e,t){process.env.NODE_ENV==="production"||dw.has(e)||(dw.add(e),console.warn(`[tuiuiu] ${t}`))}var MI=Symbol("tuiuiu.hook-runtime-state"),up=new WeakMap;function LI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function ze(e){return Oe(MI,LI,e)}function pp(e){return up.get(e)??null}function pw(e="hooks"){let t=ze();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function fw(){let e=ze();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&uw("hook-count-changed",`Hook count changed between renders (${e.lastMaxHookIndex} \u2192 ${t}). A component with internal hooks (Select, Tabs, Menu, ChatList, ScrollList, etc.) was conditionally added or removed from the render tree. FIX: Keep hook-bearing components always rendered \u2014 use height: 0, isActive: false, or display: "none" to hide them instead of removing them with ternaries or When().`),t<e.lastMaxHookIndex)for(let r=t;r<e.lastMaxHookIndex;r++){mw(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(gi(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function gw(){return ze().isRendering}function hw(){return ze().renderPhaseMode}function ur(e){let t=ze();t.isRendering||uw("hook-outside-render","A hook (useState, useMemo, useComputed, etc.) was called outside a component render. Hooks must be called inside a component function, not at module scope or in event handlers. Move the hook call inside your component function.");let r=t.hookIndex++;return r>=t.hookState.state.length?(t.hookState.state.push(e),{value:e,isNew:!0}):{value:t.hookState.state[r],isNew:!1}}function pr(e,t){ze().hookState.state[e]=t}function jr(e){return ze().hookState.state[e]}function er(){return ze().hookIndex-1}function Xn(e,t=er()){let r=ze(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function mw(e,t){let r=t.hookCleanups.get(e);if(r){t.hookCleanups.delete(e);for(let n of[...r].reverse())try{n()}catch(o){console.error("[tuiuiu] Error during hook cleanup:",o)}}}function gl(e){let t=We(e),r=ze(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))mw(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function Zr(e){return ze(e).appContext}function fp(e,t){let r=We(t),n=ze(r),o=n.appContext;n.appContext=e,o&&o!==e&&up.delete(o),e&&up.set(e,r)}function hl(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=ze(),s=o.handlerIdCounter++,i={handler:e,priorityValue:lw[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function gi(e){let t=ze(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function bw(e,t,r){let o=[...ze().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function yw(e){let t=ze(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function gp(e,t){ze(t).focusManager=e}function kw(e){let t=ze(),r=BI(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function ww(e){let t=ze(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var jI=300,cw=2;function BI(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<jI&&Math.abs(t.x-n.x)<=cw&&Math.abs(t.y-n.y)<=cw?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function Rw(e,t){let r=[...ze().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function _w(e){let t=ze(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var hi=[],bl=!1,hp=!1,ml=0,mi=null,bi=null;function xw(){if(!hp){hp=!0;for(let e=hi.length-1;e>=0;e--)try{hi[e]()}catch{}hp=!1}}function en(e){return hi.push(e),()=>{let t=hi.indexOf(e);t!==-1&&hi.splice(t,1)}}function Ew(){ml++,bl||(bl=!0,mi=()=>{xw()},bi=()=>{xw()},process.on("exit",mi),process.on("uncaughtExceptionMonitor",bi));let e=!1;return()=>{e||(e=!0,ml=Math.max(0,ml-1),ml===0&&$I())}}function $I(){bl&&(mi&&process.off("exit",mi),bi&&process.off("uncaughtExceptionMonitor",bi),mi=null,bi=null,bl=!1)}var vw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Sw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,Tw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Pw=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function yl(e,t,r,n){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||e<0||t<1||r<1)return null;let o=e&3,s=(e&32)!==0,i=(e&64)!==0,a,l;return i?(a=e&1?"scroll-down":"scroll-up",l="click"):(o===0?a="left":o===1?a="middle":o===2?a="right":a="none",s&&o===3?l="move":n||o===3?l="release":s?l="drag":l="click"),{x:t-1,y:r-1,button:a,action:l,modifiers:{shift:(e&4)!==0,alt:(e&8)!==0,ctrl:(e&16)!==0}}}function Aw(e){let t=vw.exec(e);if(t){let s=fr(t[1]),i=fr(t[2]),a=fr(t[3]),l=fr(t[4]),d=fr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=yl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Sw.exec(e);if(r){let s=fr(r[1]),i=fr(r[2]),a=fr(r[3]);if(s===null||i===null||a===null)return null;let l=yl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=Tw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=yl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Pw.exec(e);if(o){let s=fr(o[1]),i=fr(o[2]),a=fr(o[3]);if(s===null||i===null||a===null)return null;let l=yl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function Cw(e){return vw.test(e)||Sw.test(e)||Tw.test(e)||Pw.test(e)}var NI="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Dw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",GI=Symbol("tuiuiu.mouse-runtime-state");function yi(e){return Oe(GI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function mp(e){return Zr(e)?.stdout??process.stdout}function bp(e){return"isTTY"in e&&!!e.isTTY}function ki(e){return Aw(e)}function yp(e){return Cw(e)}function os(e){let t=We(e),r=yi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,WI(t);let n=mp(t);r.outputStream=n,bp(n)&&n.write(NI)}}function Zn(e){let t=We(e),r=yi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??mp(t);bp(n)&&n.write(Dw),r.outputStream=null}}function kl(e){let t=We(e),r=yi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??mp(t);bp(n)&&n.write(Dw),r.outputStream=null}}function WI(e){let t=yi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=en(Xr(e,()=>kl(e))))}function Ow(e){let t=yi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as qI}from"node:zlib";var He={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},HI={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...He,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:He}};function UI(e=process.env){let t=e.TERM_PROGRAM||"",r=e.TERM||"";return e.KITTY_WINDOW_ID?"kitty":e.ALACRITTY_WINDOW_ID||e.ALACRITTY_LOG?"alacritty":e.GHOSTTY_RESOURCES_DIR?"ghostty":e.WEZTERM_PANE||t==="WezTerm"?"wezterm":t==="rio"?"rio":e.WARP_IS_LOCAL_SHELL_SESSION?"warp":r.startsWith("foot")||r==="foot"?"foot":e.CONTOUR_TERMINAL_ID?"contour":e.VSCODE_PID||t==="vscode"?"vscode":t==="iTerm.app"?"iterm2":t==="Apple_Terminal"?"terminal-app":e.WT_SESSION?"windows-terminal":e.KONSOLE_VERSION?"konsole":e.VTE_VERSION?e.TILIX_ID?"tilix":"gnome-terminal":t==="Hyper"?"hyper":e.TERMINOLOGY?"terminology":t==="mlterm"?"mlterm":t==="blackbox"||e.BLACKBOX_THEMES_DIR?"black-box":t==="Bobcat"?"bobcat":r.includes("rxvt-unicode")||r.includes("rxvt")?"rxvt-unicode":r.includes("mlterm")?"mlterm":r==="st-256color"||r==="st"?"st":"unknown"}function Fw(e=process.env){return e.TMUX?{type:"tmux",version:e.TMUX?.split(",")[1],needsPassthrough:!0}:e.STY?{type:"screen",version:void 0,needsPassthrough:!0}:e.ZELLIJ?{type:"zellij",version:(e.ZELLIJ_SESSION_NAME,void 0),needsPassthrough:!1}:null}function wl(e=process.env){let t=UI(e),r=HI[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var $w=Symbol("tuiuiu.graphics-runtime-state");function Nw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:It($w,()=>Nw(Ir())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function _p(){let e=We();return Oe($w,()=>Nw(e),e)}var Iw={width:10,height:20};function Rl(e){return{width:Math.max(1,Math.round(e?.width??Iw.width)),height:Math.max(1,Math.round(e?.height??Iw.height))}}function KI(){let e=process.env,t=e.TERM?.toLowerCase()||"",r=e.COLORTERM?.toLowerCase()||"",n=e.TERM_PROGRAM?.toLowerCase()||"";return e.FORCE_COLOR==="0"?!1:e.FORCE_COLOR==="2"||e.FORCE_COLOR==="3"?!0:r==="truecolor"||r==="24bit"||t.includes("256color")||t.includes("direct")||n==="iterm.app"||n==="wezterm"||n==="hyper"||!!e.WT_SESSION}function Gw(){return KI()?"halfblock":"braille"}function ss(e){return e==="none"?Gw():e}function Ww(e){let t=ss(e);return t==="halfblock"||t==="braille"}function Hw(e){let t=ss(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function Mw(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function Uw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&YI(e)?e:null}function qw(){let e=process.env.TERM_PROGRAM?.toLowerCase()||"",t=process.env.KITTY_WINDOW_ID,r=process.env.ITERM_SESSION_ID;return t||e==="kitty"?"kitty":r||e==="iterm.app"?"iterm2":null}function Kw(){return wl(process.env).knownCaps.preferredGraphics||null}function Vw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function VI(){let e=Uw();if(e)return e;let t=qw();if(t)return t;let r=Kw();return r||Vw()}function zI(e){return Uw()===e||qw()===e?"env":Kw()===e?"profile":Vw()===e?"env":"fallback"}function is(){let e=_p();if(e.manualOverride)return Mw(e.manualOverride,"manual",Rl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=JI();return Mw(t,zI(t),Rl())}function JI(){let e=_p();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=VI()??Gw()),e.detectedProtocol)}function YI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function zw(){let e=_p();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:Rl(void 0)};let r=e.negotiatedCapabilities.cellSize;if(t.width!==r.width||t.height!==r.height)for(let n of[...e.cellSizeChangeListeners])n(r)}}function QI(e){let t=2166136261;t^=e.width,t=Math.imul(t,16777619),t^=e.height,t=Math.imul(t,16777619);for(let r=0;r<e.pixels.length;r++)t^=e.pixels[r],t=Math.imul(t,16777619);return(t>>>0).toString(16).padStart(8,"0")}function Jw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function Ri(e){return Jw(e)?e:xl(e)}function Lw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function xl(e,t={}){let r=Rl(t.cellSize??is().cellSize);return{pixels:e.pixels,width:e.width,height:e.height,cellSize:r,desiredColumns:Math.max(1,Math.ceil(e.width/r.width)),desiredRows:Math.max(1,Math.ceil(e.height/r.height)),hash:QI(e)}}function _i(e,t={}){let r=Jw(e)?e:xl(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=Lw(r.desiredRows,r.desiredColumns,l),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(s!==void 0&&o===void 0)d=s,l=Lw(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),y=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=y*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var as={transmit(e,t={}){let r=Ri(e),n=_i(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=nM(r),l=Yw(a),d=4096,c=[];for(let u=0;u<l.length;u+=d){let p=l.slice(u,u+d),f=u+d>=l.length?0:1;u===0?c.push(`\x1B_Ga=T,f=100,c=${o},r=${s}${i},m=${f};${p}\x1B\\`):c.push(`\x1B_Gm=${f};${p}\x1B\\`)}return c.join("")},display(e,t,r){return`\x1B_Ga=p,i=${e},p=1,X=${t},Y=${r}\x1B\\`},delete(e){return e!==void 0?`\x1B_Ga=d,d=i,i=${e}\x1B\\`:"\x1B_Ga=d,d=A\x1B\\"},clear(){return"\x1B_Ga=d,d=A\x1B\\"}},XI={display(e,t={}){let{pixels:r}=Ri(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Yw(r);return`\x1B]1337;File=inline=1;${n};${o}:${s}\x07`},displayFile(e,t={}){let r=t.width?`width=${t.width}`:"width=auto",n=t.height?`height=${t.height}`:"height=auto",o=Buffer.from(e).toString("base64");return`\x1B]1337;File=inline=1;${r};${n}:${o}\x07`}},ZI={encode(e,t={}){let r=Ri(e),n=_i(r,t),o=t.width!==void 0||t.height!==void 0?Qw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=oM(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),y=Math.round(p/255*100),h=Math.round(g/255*100);d+=`#${c};2;${f};${y};${h}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let y=0;for(let h=0;h<6;h++){let R=c+h;if(R>=i)continue;let T=(R*s+f)*4,$=a[T],D=a[T+1],M=a[T+2];sM([$,D,M],l)===u&&(y|=1<<h,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function jw(e,t,r){if(t<0||t>=e.width||r<0||r>=e.height)return{r:0,g:0,b:0,a:0};let n=(r*e.width+t)*4;return{r:e.pixels[n]??0,g:e.pixels[n+1]??0,b:e.pixels[n+2]??0,a:e.pixels[n+3]??0}}function kp(e,t){let r=[];return e&&e.a>0&&r.push(`38;2;${e.r};${e.g};${e.b}`),t&&t.a>0&&r.push(`48;2;${t.r};${t.g};${t.b}`),r.length>0?`\x1B[${r.join(";")}m`:void 0}var Bw={render(e,t={}){let r=Ri(e),n=_i(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Qw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=jw(i,u,l),g=jw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=kp(p,g)):p.a>0?(f="\u2580",y=kp(p)):g.a>0&&(f="\u2584",y=kp(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
119
|
-
`)}},wi=10240,
|
|
118
|
+
`)){if(r==="truncate"||r==="truncate-end"){n.push(Qr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Qr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Qr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...pI(o,t))}return n}function pI(e,t){if(ye(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(ye(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),ye(o)<=t){n=o;continue}let i=fI(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function fI(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===zk){let l=zn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Jn(e,s);if(!i)break;let a=ye(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Qr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(ye(e)<=t)return e;if(t<ye(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=ye(l);return n==="start"?gI(e,t,l,d,i):n==="middle"?mI(e,t,l,d,i):hI(e,t,l,d,i)}function gI(e,t,r,n,o){let s=t-n,i=Zo(e,ye(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function hI(e,t,r,n,o){let s=t-n,i=Zo(e,0,s);if(o){let a=i.lastIndexOf(" ");if(a!==-1&&i.length-a<4)return i.slice(0,a)+r}return i+r}function mI(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=Zo(e,0,i),d=Zo(e,ye(e)-a);if(o){let c=l.lastIndexOf(" ");c!==-1&&l.length-c<4&&(l=l.slice(0,c));let u=d.indexOf(" ");u!==-1&&u<4&&(d=d.slice(u+1))}return l+r+d}function Zo(e,t,r){let n=Number.isFinite(t)?Math.max(0,Math.trunc(t)):0,o=r===void 0?void 0:Number.isFinite(r)?Math.max(n,Math.trunc(r)):n,s="",i=0,a="",l=0,d=!1;for(;l<e.length&&(o===void 0||i<o);){if(e[l]===zk){let f=zn(e,l);if(f){if(l=f.end,f.kind!=="sgr")continue;a=f.value==="\x1B[0m"?"":a+f.value,i>=n&&(o===void 0||i<o)&&(s+=f.value);continue}}let c=sp(e,l);if(!c){l++;continue}let u=ye(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function dt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function di(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function ap(e,t,r){if(t===void 0)return dt(e,117);if(t===null)return dt(e,110);switch(typeof t){case"boolean":return dt(dt(e,98),t?49:48);case"number":return di(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return di(dt(e,105),t.toString());case"string":return di(dt(e,115),t);case"function":return r.ignoreFunctions===!1?dt(e,102):e;case"object":{if(Array.isArray(t)){let i=dt(e,91);for(let a of t)i=ap(i,a,r),i=dt(i,124);return dt(i,93)}let n=dt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=di(dt(n,107),i),n=dt(n,58),n=ap(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return di(dt(e,63),String(t))}}function Ft(e,t={}){return ap(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as bI}from"node:async_hooks";var Fr=Symbol("tuiuiu.runtime-resource-dispose"),Xk=new bI,ll=new Set,yI=1,es={id:0,resources:new Map};function Zk(){let e={id:yI++,resources:new Map};return ll.add(e),e}function kI(e){ll.delete(e)}function ew(e){if(e!==null&&typeof e=="object"&&Fr in e)try{e[Fr]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function wI(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)ew(r)}function ts(e){kI(e),wI(e)}function qe(e,t){return Xk.run(e,t)}function Xr(e,t){return(...r)=>qe(e,()=>t(...r))}function lp(){return Xk.getStore()??null}function We(e){if(e)return e;let t=lp();return t||(ll.size===1?ll.values().next().value??es:es)}function Ir(){return es}function Oe(e,t,r){let n=We(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function It(e,t){return es.resources.has(e)||es.resources.set(e,t()),es.resources.get(e)}function dl(e,t){let r=We(t),n=r.resources.get(e);r.resources.delete(e),ew(n)}var Pe;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Pe||(Pe={}));function dp(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function RI(e){let t=e.props,r=typeof t.width=="number"&&t.width>0&&t.width!==1/0,n=typeof t.height=="number"&&t.height>0&&t.height!==1/0;return!(!r||!n||(t.flexGrow??0)>0||t.width==="fill"||t.height==="fill")}var cp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=dp();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Pe.NONE,subtreeFlags:Pe.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=dp()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Pe.LAYOUT&&RI(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Pe.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Pe.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Pe.NONE,r.subtreeFlags=Pe.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL),r.subtreeFlags&=~(Pe.LAYOUT|Pe.CHILDREN|Pe.FORCE_FULL)}markChildrenDirty(t,r=Pe.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Pe.NONE||r.subtreeFlags!==Pe.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Pe.NONE&&r.subtreeFlags===Pe.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Ft({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=dp()}},_I=Symbol("tuiuiu.dirty-registry");function Mr(e){return Oe(_I,()=>new cp,e)}function tw(e){Mr().beginFrame(e)}function rw(e,t){Mr().registerNode(e,t)}function wn(e,t=Pe.CONTENT){Mr().markDirty(e,t)}function nw(e){Mr().markLayoutClean(e)}function ci(e){Mr().noteReuse(e)}function Qn(e){Mr().noteFresh(e)}function cl(e){return Mr().canReuseSubtree(e)}function ow(){return Mr().getDiagnostics()}function ui(){Mr().clearGlobalDirty()}function rs(e){Mr().markClean(e.node);for(let r of e.children)rs(r)}var sw=new WeakMap;function wt(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function ul(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var At=e=>e==="auto"?0:wt(e,"margin"),xI=new Set(["layoutRef","__scrollQuery"]),EI=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"]),vI=new Set(["children","wrap"]);function SI(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function ns(e){let t=e.props??{},r=e.type==="text"?vI:EI,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ft(n,{ignoreKeys:xI})}function TI(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 PI(e,t){if(!cl(e)){Qn("layout");return}let r=sw.get(e);if(!r){Qn("layout");return}if(r.ctxKey!==t){wn(e,Pe.LAYOUT),Qn("layout");return}let n=ns(e);if(r.propsKey!==n||!TI(e,r.childRefs)){wn(e,r.propsKey!==n?Pe.LAYOUT:Pe.CHILDREN),Qn("layout");return}return ci("layout"),r.layout}function pi(e,t,r,n){sw.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),nw(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 iw(e,t,r){if(t<=e.height)return ht(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return ht(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>ht(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>ht(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>ht(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Mt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function aw(e,t=0,r=0){let n=t+e.x,o=r+e.y;Mt(e.node,{...e,x:n,y:o});let s=e.node.props,i=wt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=wt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)aw(u,d,c)}function lw(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)),tw(e);let n=Lr(e,{x:0,y:0,width:t,height:r},null);return aw(n),n}function AI(e,t){let r=e.props.__divider;if(r==="horizontal")return{x:t.x,y:t.y,width:t.width,height:Math.min(1,t.height),node:e,children:[]};if(r==="vertical")return{x:t.x,y:t.y,width:Math.min(1,t.width),height:e.props.__splitDivider?Math.min(1,t.height):t.height,node:e,children:[]};let n=Yn(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>ye(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function CI(e,t){let r=typeof e.props.height=="number"?e.props.height:1;return{x:t.x,y:t.y,width:t.width,height:Math.min(r,t.height),node:e,children:[]}}function DI(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function Lr(e,t,r){rw(e,r);let n=SI(t),o=PI(e,n);if(o)return Mt(e,o),o;let s;if(e.type==="text")return s=AI(e,t),pi(e,n,ns(e),s),s;if(e.type==="spacer")return s=CI(e,t),pi(e,n,ns(e),s),s;if(e.type==="newline")return s=DI(e,t),pi(e,n,ns(e),s),s;let i=e.props;if(i.display==="none")return s={x:t.x,y:t.y,width:0,height:0,node:e,children:[]},Mt(e,s),pi(e,n,ns(e),s),s;let a=wt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=wt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=wt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=wt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=At(i.marginTop??i.marginY??i.margin),p=At(i.marginBottom??i.marginY??i.margin),g=At(i.marginLeft??i.marginX??i.margin),f=At(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,h=fi(i.width,t.width),R=fi(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?h:t.width)-d-c-y*2),M=Math.max(0,($?R:t.height)-a-l-y*2),N=e.props.__scrollQuery!==void 0||e.props.__scrollOffsetY!==void 0?1/0:M,H=[],G=i.flexDirection??"column",I=G==="row"||G==="row-reverse",W=G==="row-reverse"||G==="column-reverse",q=wt(I?i.columnGap??i.gap:i.rowGap??i.gap,"gap"),oe=[],ae=[];if(e.children.length>0){for(let ie of e.children)ie.props.position==="absolute"?oe.push(ie):ae.push(ie);let fe=W?[...ae].reverse():ae;I?H.push(...dw(fe,D,N,q,i,$,e)):H.push(...FI(fe,D,N,q,i,e))}let se=0,Z=0;if(I)for(let fe of H){let ie=fe.node.props,_e=At(ie.marginRight??ie.marginX??ie.margin),Fe=At(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.x+fe.width+_e),Z=Math.max(Z,fe.y+fe.height+Fe)}else for(let fe of H){let ie=fe.node.props,_e=At(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+_e)}let Ae=ul(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,ke=T?h:Ae?t.width:Ee,Y=$?R:Z+a+l+y*2,de=wt(i.minWidth,"minWidth"),Re=wt(i.minHeight,"minHeight");if(ke=Math.max(ke,de),Y=Math.max(Y,Re),i.maxWidth!==void 0&&(ke=Math.min(ke,wt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(Y=Math.min(Y,wt(i.maxHeight,"maxHeight"))),I&&i.alignItems==="stretch"){let fe=Math.max(0,Y-a-l-y*2);for(let ie=0;ie<H.length;ie++){let _e=H[ie],Fe=_e.node.props;Fe.height===void 0&&(H[ie]=iw(_e,Math.max(_e.height,fe),Fe),Mt(_e.node,H[ie]))}}let De=t.x+g,ve=t.y+u,we=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Se=Math.max(0,Math.min(Y,Math.max(0,t.height-u-p)));for(let fe of oe){let ie=fe.props,_e=Lr(fe,{x:0,y:0,width:D,height:N},e),Fe=De+d+y,at=ve+a+y;ie.left!==void 0?Fe=De+d+y+ie.left:ie.right!==void 0&&(Fe=De+we-c-y-_e.width-ie.right),ie.top!==void 0?at=ve+a+y+ie.top:ie.bottom!==void 0&&(at=ve+Se-l-y-_e.height-ie.bottom);let Gt=ht(_e,{x:Fe,y:at});Mt(fe,Gt),H.push(Gt)}return s={x:De,y:ve,width:we,height:Se,node:e,children:H},Mt(e,s),pi(e,n,ns(e),s),s}function dw(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return OI(e,t,r,n,o,s,i,l);let d=0,c=0,u=[];for(let G of e){let I=G.props,W=I.flexGrow;W===void 0?W=I.width==="fill"||G.type==="spacer"?1:0:W=ul(W,"flexGrow");let q=wt(I.minWidth,"minWidth"),oe=I.flexBasis==="content"?Lr(G,{x:0,y:0,width:t,height:r},i).width:I.flexBasis===void 0||I.flexBasis==="auto"?q:fi(I.flexBasis,t),ae=I.flexShrink===void 0?1:ul(I.flexShrink,"flexShrink"),se=At(I.marginLeft??I.marginX??I.margin),Z=At(I.marginRight??I.marginX??I.margin);if(W>0)c+=W,d+=oe+se+Z,u.push({node:G,flex:W,minWidth:q,basis:oe,shrink:ae,marginLeft:se,marginRight:Z});else{let Ae=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?fi(I.width,t)+se+Z:t,Ee=Lr(G,{x:0,y:0,width:Ae,height:r},i);d+=Ee.width+se+Z,u.push({node:G,flex:0,minWidth:q,basis:Ee.width,shrink:ae,marginLeft:se,marginRight:Z,layout:Ee,measuredCtxWidth:Ae})}}d+=n*Math.max(0,e.length-1);let p=Math.max(0,d-t);if(p>0){let G=u.map(()=>0),I=Math.ceil(p);for(;I>0;){let W=u.map((Z,pe)=>{let Ae=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,Ae-G[pe]);return{index:pe,capacity:Ee,maxReduction:Ae,weight:Z.shrink*Z.basis}}).filter(Z=>Z.capacity>0&&Z.weight>0),q=W.reduce((Z,pe)=>Z+pe.weight,0);if(q<=0)break;let oe=W.map(Z=>{let pe=I*Z.weight/q,Ae=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Ae,fraction:pe-Math.floor(pe)}}),ae=0;for(let Z of oe)Z.whole>0&&(G[Z.index]+=Z.whole,ae+=Z.whole);if(I-=ae,I<=0)break;oe.sort((Z,pe)=>pe.fraction-Z.fraction||pe.weight-Z.weight||pe.capacity-Z.capacity);let se=!1;for(let Z of oe){if(I<=0)break;G[Z.index]<Z.maxReduction&&(G[Z.index]+=1,I-=1,se=!0)}if(!se)break}if(G.some(W=>W>0)){for(let W=0;W<u.length;W++){let q=u[W];q.targetWidth=Math.max(q.minWidth,q.basis-G[W])}d=u.reduce((W,q)=>W+(q.targetWidth??q.basis)+q.marginLeft+q.marginRight,n*Math.max(0,e.length-1))}}let g=Math.max(0,t-d),f=c>0?g/c:0,y=0,h=o.justifyContent??"flex-start",R=d+(c>0?g:0),T=t-R,$=0,D=0;c===0&&u.length>0&&(h==="space-between"&&u.length>1?$=T/(u.length-1):h==="space-around"?(D=T/(u.length*2),y=D):h==="space-evenly"?($=T/(u.length+1),y=$):h==="flex-end"?y=T:h==="center"&&(y=T/2));let M=0,N=[];for(let G=0;G<u.length;G++){let I=u[G],q=(I.targetWidth??(I.flex>0?I.basis+Math.floor(f*I.flex):I.basis))+I.marginLeft+I.marginRight,oe=I.layout&&I.measuredCtxWidth===q?ht(I.layout,{x:I.layout.x+y}):Lr(I.node,{x:y,y:0,width:q,height:r},i),ae=I.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),y+=I.marginLeft+oe.width+I.marginRight,h==="space-between"&&G<u.length-1?y+=$:h==="space-around"?y+=D*2:h==="space-evenly"?y+=$:y+=n}let H=s?r:M;for(let G of N){let{style:I}=G,{layout:W}=G,q=I.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(I.height===void 0&&(se=Math.max(W.height,H)),ae=0):oe==="center"?ae=Math.floor((H-W.height)/2):oe==="flex-end"?ae=H-W.height:oe==="baseline"&&(ae=0),W=iw(W,se,I),W=ht(W,{y:ae}),Mt(W.node,W),a.push(W)}return a}function OI(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=At(M.marginLeft??M.marginX??M.margin),H=At(M.marginRight??M.marginX??M.margin),G=Lr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:fi(M.flexBasis,t))+N+H,q=c+(d.length>0?n:0)+W;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=wt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let M=dw(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((H,G)=>Math.max(H,G.y+G.height),0);return{layouts:M,height:N}}),g=p.reduce((D,M)=>D+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",h=0,R=0;y==="flex-end"?h=f:y==="center"?h=Math.floor(f/2):y==="space-between"&&p.length>1?R=f/(p.length-1):y==="space-around"&&p.length>0?(R=f/p.length,h=Math.floor(R/2)):y==="stretch"&&p.length>0&&(R=f/p.length);let T=[],$=h;for(let D of p){for(let M of D.layouts){let N=ht(M,{y:M.y+Math.floor($)});Mt(N.node,N),T.push(N)}$+=D.height+u+R}return T}function FI(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,y=[];for(let h of e){let R=h.props,T=At(R.marginTop??R.marginY??R.margin),$=At(R.marginBottom??R.marginY??R.margin),D=R.flexGrow;D===void 0?D=R.height==="fill"||h.type==="spacer"?1:0:D=ul(D,"flexGrow");let M=wt(R.minHeight,"minHeight"),N=R.maxHeight===void 0?void 0:wt(R.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,y.push({node:h,flex:D,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$});else{let H=Lr(h,{x:0,y:0,width:t,height:r},s);g+=H.height+T+$,y.push({node:h,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$,layout:H})}}if(g+=n*Math.max(0,e.length-1),f>0){let R=Math.max(0,r-g)/f,T=0;for(let $=0;$<y.length;$++){let D=y[$],N=D.node.props.alignSelf,H=N!=="auto"&&N?N:o.alignItems??"flex-start",G=D.layout;if(D.flex>0){let q=Math.floor(R*D.flex);q=Math.max(D.minHeight,q),D.maxHeight!==void 0&&(q=Math.min(D.maxHeight,q)),G=Lr(D.node,{x:0,y:T,width:t,height:q},s),G=ht(G,{height:q})}G||(G=Lr(D.node,{x:0,y:T,width:t,height:r},s));let I=G.x,W=G.width;H==="center"?I=Math.floor((t-G.width)/2):H==="flex-end"?I=t-G.width:H==="stretch"&&(W=t),G=ht(G,{x:I,y:T,width:W}),Mt(G.node,G),i.push(G),T+=D.marginTop+G.height+D.marginBottom,$<y.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],y=f.props,h=At(y.marginTop??y.marginY??y.margin),R=At(y.marginBottom??y.marginY??y.margin),T=Lr(f,{x:0,y:l,width:t,height:r-l},s),$=y.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",M=T.x,N=T.width;D==="center"?M=Math.floor((t-T.width)/2):D==="flex-end"?M=t-T.width:D==="stretch"&&(N=t);let H=ht(T,{x:M,width:N});Mt(H.node,H),i.push(H),l+=h+T.height+R,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*y)}),Mt(i[y].node,i[y]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),Mt(i[y].node,i[y]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let y=0;y<i.length;y++)i[y]=ht(i[y],{y:i[y].y+Math.floor(f*(y+1))}),Mt(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=ht(i[f],{y:i[f].y+g}),Mt(i[f].node,i[f])}return i}function fi(e,t){if(e===void 0||e==="auto")return 0;if(e==="fill")return t;if(typeof e=="number"){if(!Number.isFinite(e)||e<0)throw new RangeError("Layout size must be a finite non-negative number");return Math.floor(e)}if(e.endsWith("%")){let n=Number.parseFloat(e);if(!Number.isFinite(n)||n<0)throw new RangeError("Layout percentage must be finite and non-negative");return t===1/0?0:Math.floor(n/100*t)}let r=Number(e);if(!Number.isFinite(r)||r<0)throw new RangeError(`Invalid layout size: ${e}`);return Math.floor(r)}var cw={background:0,normal:1,modal:2,critical:3};var uw=new Set;function fw(e,t){process.env.NODE_ENV==="production"||uw.has(e)||(uw.add(e),console.warn(`[tuiuiu] ${t}`))}var II=Symbol("tuiuiu.hook-runtime-state"),up=new WeakMap;function MI(){return{appContext:null,focusManager:null,inputHandlers:[],handlerIdCounter:0,hookState:{state:[],effects:[]},hookIndex:0,isRendering:!1,lastMaxHookIndex:0,renderPhaseMode:"hooks",hookCleanups:new Map,mouseHandlers:[],mouseHandlerIdCounter:0,lastMouseClick:null,pasteHandlers:[],pasteHandlerIdCounter:0}}function ze(e){return Oe(II,MI,e)}function pp(e){return up.get(e)??null}function gw(e="hooks"){let t=ze();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function hw(){let e=ze();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&fw("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++){yw(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 mw(){return ze().isRendering}function bw(){return ze().renderPhaseMode}function ur(e){let t=ze();t.isRendering||fw("hook-outside-render","A hook (useState, useMemo, useComputed, etc.) was called outside a component render. Hooks must be called inside a component function, not at module scope or in event handlers. Move the hook call inside your component function.");let r=t.hookIndex++;return r>=t.hookState.state.length?(t.hookState.state.push(e),{value:e,isNew:!0}):{value:t.hookState.state[r],isNew:!1}}function pr(e,t){ze().hookState.state[e]=t}function jr(e){return ze().hookState.state[e]}function tr(){return ze().hookIndex-1}function Xn(e,t=tr()){let r=ze(),n=r.hookCleanups.get(t);return n||(n=new Set,r.hookCleanups.set(t,n)),n.add(e),()=>{n?.delete(e),n?.size===0&&r.hookCleanups.delete(t)}}function yw(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 pl(e){let t=We(e),r=ze(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))yw(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function Zr(e){return ze(e).appContext}function fp(e,t){let r=We(t),n=ze(r),o=n.appContext;n.appContext=e,o&&o!==e&&up.delete(o),e&&up.set(e,r)}function fl(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=ze(),s=o.handlerIdCounter++,i={handler:e,priorityValue:cw[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function gi(e){let t=ze(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function kw(e,t,r){let o=[...ze().inputHandlers].sort((i,a)=>a.priorityValue!==i.priorityValue?a.priorityValue-i.priorityValue:i.id-a.id),s={input:e,key:t,isPasted:!1,...r};for(let i of o)try{let a=i.handler(e,t,s);if(i.stopPropagation&&a)break}catch(a){console.error("[tuiuiu] Error in input handler:",a)}}function ww(e){let t=ze(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function gp(e,t){ze(t).focusManager=e}function Rw(e){let t=ze(),r=jI(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function _w(e){let t=ze(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var LI=300,pw=2;function jI(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<LI&&Math.abs(t.x-n.x)<=pw&&Math.abs(t.y-n.y)<=pw?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function xw(e,t){let r=[...ze().pasteHandlers].sort((o,s)=>s.priorityValue!==o.priorityValue?s.priorityValue-o.priorityValue:o.id-s.id),n={text:e,isBracketed:t};for(let o of r)try{let s=o.handler(n);if(o.stopPropagation&&s)break}catch(s){console.error("[tuiuiu] Error in paste handler:",s)}}function Ew(e){let t=ze(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var hi=[],hl=!1,hp=!1,gl=0,mi=null,bi=null;function vw(){if(!hp){hp=!0;for(let e=hi.length-1;e>=0;e--)try{hi[e]()}catch{}hp=!1}}function en(e){return hi.push(e),()=>{let t=hi.indexOf(e);t!==-1&&hi.splice(t,1)}}function Sw(){gl++,hl||(hl=!0,mi=()=>{vw()},bi=()=>{vw()},process.on("exit",mi),process.on("uncaughtExceptionMonitor",bi));let e=!1;return()=>{e||(e=!0,gl=Math.max(0,gl-1),gl===0&&BI())}}function BI(){hl&&(mi&&process.off("exit",mi),bi&&process.off("uncaughtExceptionMonitor",bi),mi=null,bi=null,hl=!1)}var Tw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Pw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,Aw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,Cw=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function ml(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 Dw(e){let t=Tw.exec(e);if(t){let s=fr(t[1]),i=fr(t[2]),a=fr(t[3]),l=fr(t[4]),d=fr(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=ml(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Pw.exec(e);if(r){let s=fr(r[1]),i=fr(r[2]),a=fr(r[3]);if(s===null||i===null||a===null)return null;let l=ml(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=Aw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=ml(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=Cw.exec(e);if(o){let s=fr(o[1]),i=fr(o[2]),a=fr(o[3]);if(s===null||i===null||a===null)return null;let l=ml(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function Ow(e){return Tw.test(e)||Pw.test(e)||Aw.test(e)||Cw.test(e)}var $I="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Fw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",NI=Symbol("tuiuiu.mouse-runtime-state");function yi(e){return Oe(NI,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function mp(e){return Zr(e)?.stdout??process.stdout}function bp(e){return"isTTY"in e&&!!e.isTTY}function ki(e){return Dw(e)}function yp(e){return Ow(e)}function os(e){let t=We(e),r=yi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,GI(t);let n=mp(t);r.outputStream=n,bp(n)&&n.write($I)}}function Zn(e){let t=We(e),r=yi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??mp(t);bp(n)&&n.write(Fw),r.outputStream=null}}function bl(e){let t=We(e),r=yi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??mp(t);bp(n)&&n.write(Fw),r.outputStream=null}}function GI(e){let t=yi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=en(Xr(e,()=>bl(e))))}function Iw(e){let t=yi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as UI}from"node:zlib";var He={synchronizedOutput:!1,styledUnderlines:!1,coloredUnderlines:!1,clipboard:!1,notifications:!1,cursorStyleControl:!1,windowTitle:!1,kittyKeyboard:!1,kittyGraphics:!1,sixel:!1,iterm2Graphics:!1,preferredGraphics:!1,hyperlinks:!1,trueColor:!1,mouse:!1,italic:!1,strikethrough:!1,focusEvents:!1,nerdFonts:!1},Ke={mouse:!0,italic:!0,strikethrough:!0},WI={kitty:{id:"kitty",name:"Kitty",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},alacritty:{id:"alacritty",name:"Alacritty",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},ghostty:{id:"ghostty",name:"Ghostty",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc99",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!0,preferredGraphics:"kitty",hyperlinks:!0,trueColor:!0,focusEvents:!0}},wezterm:{id:"wezterm",name:"WezTerm",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,kittyGraphics:!1,sixel:!1,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},rio:{id:"rio",name:"Rio",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,iterm2Graphics:!0,sixel:!1,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},warp:{id:"warp",name:"Warp",gpuAccelerated:!0,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},foot:{id:"foot",name:"Foot",gpuAccelerated:!1,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!0,preferredGraphics:"sixel",hyperlinks:!0,trueColor:!0,focusEvents:!0}},contour:{id:"contour",name:"Contour",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,kittyKeyboard:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},hyper:{id:"hyper",name:"Hyper",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},vscode:{id:"vscode",name:"VS Code Terminal",gpuAccelerated:!1,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},iterm2:{id:"iterm2",name:"iTerm2",gpuAccelerated:!1,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,notifications:"osc9",cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,preferredGraphics:"iterm2",hyperlinks:!0,trueColor:!0,focusEvents:!0}},"terminal-app":{id:"terminal-app",name:"Terminal.app",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},"windows-terminal":{id:"windows-terminal",name:"Windows Terminal",gpuAccelerated:!0,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},konsole:{id:"konsole",name:"Konsole",gpuAccelerated:!1,knownCaps:{...He,...Ke,synchronizedOutput:!0,styledUnderlines:!0,coloredUnderlines:!0,clipboard:!0,cursorStyleControl:!0,windowTitle:!0,sixel:!1,preferredGraphics:!1,hyperlinks:!0,trueColor:!0,focusEvents:!0}},"gnome-terminal":{id:"gnome-terminal",name:"GNOME Terminal",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},tilix:{id:"tilix",name:"Tilix",gpuAccelerated:!1,knownCaps:{...He,...Ke,notifications:"osc777",cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,hyperlinks:!0,trueColor:!0}},terminology:{id:"terminology",name:"Terminology",gpuAccelerated:!0,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!0}},mlterm:{id:"mlterm",name:"mlterm",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},"black-box":{id:"black-box",name:"Black Box",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,sixel:!0,preferredGraphics:"sixel",trueColor:!0}},bobcat:{id:"bobcat",name:"Bobcat",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,iterm2Graphics:!0,sixel:!0,preferredGraphics:"iterm2",trueColor:!0}},st:{id:"st",name:"st (suckless)",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,preferredGraphics:!1,trueColor:!0}},"rxvt-unicode":{id:"rxvt-unicode",name:"rxvt-unicode",gpuAccelerated:!1,knownCaps:{...He,...Ke,cursorStyleControl:!0,windowTitle:!0,preferredGraphics:!1,trueColor:!1}},unknown:{id:"unknown",name:"Unknown",gpuAccelerated:!1,knownCaps:He}};function HI(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 Mw(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 yl(e=process.env){let t=HI(e),r=WI[t],n;switch(t){case"iterm2":n=e.TERM_PROGRAM_VERSION;break;case"konsole":n=e.KONSOLE_VERSION;break;case"vscode":n=e.TERM_PROGRAM_VERSION;break;case"wezterm":n=e.TERM_PROGRAM_VERSION;break;default:n=void 0}return{...r,version:n}}var Gw=Symbol("tuiuiu.graphics-runtime-state");function Ww(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:It(Gw,()=>Ww(Ir())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function _p(){let e=We();return Oe(Gw,()=>Ww(e),e)}var Lw={width:10,height:20};function kl(e){return{width:Math.max(1,Math.round(e?.width??Lw.width)),height:Math.max(1,Math.round(e?.height??Lw.height))}}function qI(){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 Hw(){return qI()?"halfblock":"braille"}function ss(e){return e==="none"?Hw():e}function Uw(e){let t=ss(e);return t==="halfblock"||t==="braille"}function qw(e){let t=ss(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function jw(e,t,r){switch(e){case"kitty":return{protocol:"kitty",supportsTransparency:!0,supportsAnimation:!0,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!0,supportsClear:!0};case"iterm2":return{protocol:"iterm2",supportsTransparency:!0,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"sixel":return{protocol:"sixel",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!0,supportsPlacement:!1,supportsClear:!1,maxWidth:1024,maxHeight:1024};case"halfblock":return{protocol:"halfblock",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};case"braille":return{protocol:"braille",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1};default:return{protocol:"none",supportsTransparency:!1,supportsAnimation:!1,detectedBy:t,cellSize:r,supportsQueries:!1,supportsPlacement:!1,supportsClear:!1}}}function Kw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&JI(e)?e:null}function Vw(){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 zw(){return yl(process.env).knownCaps.preferredGraphics||null}function Jw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function KI(){let e=Kw();if(e)return e;let t=Vw();if(t)return t;let r=zw();return r||Jw()}function VI(e){return Kw()===e||Vw()===e?"env":zw()===e?"profile":Jw()===e?"env":"fallback"}function is(){let e=_p();if(e.manualOverride)return jw(e.manualOverride,"manual",kl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=zI();return jw(t,VI(t),kl())}function zI(){let e=_p();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=KI()??Hw()),e.detectedProtocol)}function JI(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function Yw(){let e=_p();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:kl(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 YI(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 Qw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function Ri(e){return Qw(e)?e:Rl(e)}function Bw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function Rl(e,t={}){let r=kl(t.cellSize??is().cellSize);return{pixels:e.pixels,width:e.width,height:e.height,cellSize:r,desiredColumns:Math.max(1,Math.ceil(e.width/r.width)),desiredRows:Math.max(1,Math.ceil(e.height/r.height)),hash:YI(e)}}function _i(e,t={}){let r=Qw(e)?e:Rl(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=Bw(r.desiredRows,r.desiredColumns,l),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(s!==void 0&&o===void 0)d=s,l=Bw(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),y=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=y*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var as={transmit(e,t={}){let r=Ri(e),n=_i(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=rM(r),l=Xw(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\\"}},QI={display(e,t={}){let{pixels:r}=Ri(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Xw(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`}},XI={encode(e,t={}){let r=Ri(e),n=_i(r,t),o=t.width!==void 0||t.height!==void 0?Zw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=nM(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),y=Math.round(p/255*100),h=Math.round(g/255*100);d+=`#${c};2;${f};${y};${h}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let y=0;for(let h=0;h<6;h++){let R=c+h;if(R>=i)continue;let T=(R*s+f)*4,$=a[T],D=a[T+1],M=a[T+2];oM([$,D,M],l)===u&&(y|=1<<h,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function $w(e,t,r){if(t<0||t>=e.width||r<0||r>=e.height)return{r:0,g:0,b:0,a:0};let n=(r*e.width+t)*4;return{r:e.pixels[n]??0,g:e.pixels[n+1]??0,b:e.pixels[n+2]??0,a:e.pixels[n+3]??0}}function kp(e,t){let r=[];return e&&e.a>0&&r.push(`38;2;${e.r};${e.g};${e.b}`),t&&t.a>0&&r.push(`48;2;${t.r};${t.g};${t.b}`),r.length>0?`\x1B[${r.join(";")}m`:void 0}var Nw={render(e,t={}){let r=Ri(e),n=_i(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Zw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=$w(i,u,l),g=$w(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=kp(p,g)):p.a>0?(f="\u2580",y=kp(p)):g.a>0&&(f="\u2584",y=kp(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
119
|
+
`)}},wi=10240,ZI={render(e,t={}){let{width:r,height:n,pixels:o}=Ri(e),s=t.threshold??128,i=t.dither??!1,a=Math.ceil(r/2),l=Math.ceil(n/4),d=new Float32Array(r*n);for(let u=0;u<r*n;u++){let p=o[u*4],g=o[u*4+1],f=o[u*4+2];d[u]=.299*p+.587*g+.114*f}i&&sM(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,y=[[0,0,0],[0,1,1],[0,2,2],[1,0,3],[1,1,4],[1,2,5],[0,3,6],[1,3,7]];for(let[h,R,T]of y){let $=g*2+h,D=u*4+R;if($<r&&D<n){let M=D*r+$;d[M]<s&&(f|=1<<T)}}p+=String.fromCharCode(wi+f)}c.push(p)}return c.join(`
|
|
120
120
|
`)},invert(e){let t="";for(let r of e){if(r===`
|
|
121
|
-
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=wi&&n<wi+256){let o=wi+(255-(n-wi));t+=String.fromCharCode(o)}else t+=r}return t}};function
|
|
121
|
+
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=wi&&n<wi+256){let o=wi+(255-(n-wi));t+=String.fromCharCode(o)}else t+=r}return t}};function _l(e,t,r={}){switch(ss(e)){case"kitty":return as.transmit(t,r);case"iterm2":return QI.display(t,r);case"sixel":return XI.encode(t,r);case"halfblock":return Nw.render(t,r);case"braille":return ZI.render(t,r);default:return Nw.render(t,r)}}function xl(e){switch(ss(e)){case"kitty":return as.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var wp=null;function eM(){if(wp)return wp;let e=new Uint32Array(256);for(let t=0;t<256;t++){let r=t;for(let n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r>>>0}return wp=e,e}function tM(e){let t=eM(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function wl(e,t,r){e[r]=t>>>24&255,e[r+1]=t>>>16&255,e[r+2]=t>>>8&255,e[r+3]=t&255}function Rp(e,t){let r=new Uint8Array(8+t.length+4);wl(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 wl(r,tM(n),8+t.length),r}function rM(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);wl(s,t,0),wl(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=Rp("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let y=f*a,h=f*(1+a);l[h]=1;for(let R=0;R<a;R++){let T=n[y+R],$=R>=4?n[y+R-4]:0;l[h+1+R]=T-$&255}}let d=UI(Buffer.from(l)),c=Rp("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=Rp("IEND",new Uint8Array(0)),p=new Uint8Array(o.length+i.length+c.length+u.length),g=0;return p.set(o,g),g+=o.length,p.set(i,g),g+=i.length,p.set(c,g),g+=c.length,p.set(u,g),p}function Xw(e){return Buffer.from(e).toString("base64")}function nM(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 oM(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 sM(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 Zw(e,t,r){let{width:n,height:o,pixels:s}=e,i=new Uint8Array(t*r*4);for(let a=0;a<r;a++)for(let l=0;l<t;l++){let d=Math.floor(l/t*n),u=(Math.floor(a/r*o)*n+d)*4,p=(a*t+l)*4;i[p]=s[u],i[p+1]=s[u+1],i[p+2]=s[u+2],i[p+3]=s[u+3]}return{pixels:i,width:t,height:r}}function Ep(e){let t=e.props;return!!(t.onClick||t.onDoubleClick||t.onMouseDown||t.onMouseUp||t.onMouseMove||t.onMouseEnter||t.onMouseLeave||t.onContextMenu||t.onScroll)}function El(e,t,r=0,n=0,o=null,s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=r+a,g=n+l,f=s?Math.max(p,s.x):p,y=s?Math.max(g,s.y):g,h=s?Math.min(p+d,s.x+s.width):p+d,R=s?Math.min(g+c,s.y+s.height):g+c;h>f&&R>y&&t(i,f,y,h-f,R-y,o);let T=i.props,$=T.paddingTop??T.paddingY??T.padding??0,D=T.paddingLeft??T.paddingX??T.padding??0,M=T.borderStyle&&T.borderStyle!=="none"?1:0,N=p+D+M,H=typeof T.__scrollOffsetY=="number"&&Number.isFinite(T.__scrollOffsetY)?Math.max(0,Math.floor(T.__scrollOffsetY)):0,G=g+$+M-H,I=T.overflow==="hidden"||T.overflowX==="hidden",W=T.overflow==="hidden"||T.overflowY==="hidden",q={x:I?p:s?.x??Number.MIN_SAFE_INTEGER,y:W?g:s?.y??Number.MIN_SAFE_INTEGER,width:I?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:W?c:s?.height??Number.MAX_SAFE_INTEGER*2},oe=I||W?iM(s,q):s;for(let ae of u)El(ae,t,N,G,i,oe)}function iM(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 eR(e){let t=[],r=0;return El(e,(n,o,s,i,a)=>{Ep(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var xp=class{elements=[];boundsByNode=new Map;parentMap=new Map;zCounter=0;hoveredElement=null;lastClickTime=0;lastClickPos={x:-1,y:-1};lastClickButton="none";mouseTrackingEnabled=!1;inputHandler=null;clear(){this.elements=[],this.boundsByNode.clear(),this.parentMap.clear(),this.zCounter=0}register(t,r,n,o,s,i){if(this.parentMap.set(t,i),Ep(t)){let a={node:t,x:r,y:n,width:o,height:s,zIndex:this.zCounter++};this.elements.push(a),this.boundsByNode.set(t,a)}}registerFromLayout(t,r=0,n=0,o=null){El(t,(s,i,a,l,d,c)=>{this.register(s,i,a,l,d,c)},r,n,o)}hitTest(t,r){for(let n=this.elements.length-1;n>=0;n--){let o=this.elements[n];if(t>=o.x&&t<o.x+o.width&&r>=o.y&&r<o.y+o.height)return{node:o.node,relativeX:t-o.x,relativeY:r-o.y,absoluteX:t,absoluteY:r}}return null}pixelHitTest(t,r,n){let o=Math.floor(t/n.width),s=Math.floor(r/n.height),i=this.hitTest(o,s);if(!i)return null;let a=this.elements.find(l=>l.node===i.node);return a&&(i.pixelRelativeX=t-a.x*n.width,i.pixelRelativeY=r-a.y*n.height),i}handleMouseEvent(t){let r;if(t.pixelX!=null&&t.pixelY!=null){let d=is().cellSize;r=this.pixelHitTest(t.pixelX,t.pixelY,d)}else r=this.hitTest(t.x,t.y);let n=Date.now(),o=!1,s=d=>{let c=d?this.boundsByNode.get(d):void 0,u=c?t.x-c.x:r?.relativeX??0,p=c?t.y-c.y:r?.relativeY??0,g={x:u,y:p,absoluteX:t.x,absoluteY:t.y,button:t.button,modifiers:t.modifiers,target:d,stopPropagation:()=>{o=!0}};if(t.pixelX!=null&&t.pixelY!=null&&c){let f=is().cellSize;g.pixelRelativeX=t.pixelX-c.x*f.width,g.pixelRelativeY=t.pixelY-c.y*f.height}else r?.pixelRelativeX!=null&&(g.pixelRelativeX=r.pixelRelativeX),r?.pixelRelativeY!=null&&(g.pixelRelativeY=r.pixelRelativeY);return g},i=r?.node??null;if(i!==this.hoveredElement){if(this.hoveredElement?.props.onMouseLeave){let d=s(this.hoveredElement);this.hoveredElement.props.onMouseLeave(d)}if(i?.props.onMouseEnter){let d=s(i);i.props.onMouseEnter(d)}this.hoveredElement=i}if(!r)return;let a=s(r.node),l=r.node.props;switch(t.action){case"click":let d=n-this.lastClickTime<300&&Math.abs(t.x-this.lastClickPos.x)<=2&&Math.abs(t.y-this.lastClickPos.y)<=2&&t.button===this.lastClickButton;d&&l.onDoubleClick?l.onDoubleClick(a):t.button==="left"&&l.onClick?l.onClick(a):t.button==="right"&&l.onContextMenu?l.onContextMenu(a):(t.button==="scroll-up"||t.button==="scroll-down")&&l.onScroll&&l.onScroll(a),d?this.lastClickTime=0:(this.lastClickTime=n,this.lastClickPos={x:t.x,y:t.y},this.lastClickButton=t.button),l.onMouseDown&&l.onMouseDown(a);break;case"release":l.onMouseUp&&l.onMouseUp(a);break;case"drag":case"move":l.onMouseMove&&l.onMouseMove(a);break;case"double-click":l.onDoubleClick&&l.onDoubleClick(a);break}o||this.bubbleEvent(r.node,t,a)}bubbleEvent(t,r,n){let o=!1,s=this.parentMap.get(t)??null;for(;s&&!o;){let i=this.boundsByNode.get(s);if(i){let a=i.node.props,l={x:n.absoluteX-i.x,y:n.absoluteY-i.y,absoluteX:n.absoluteX,absoluteY:n.absoluteY,button:n.button,modifiers:n.modifiers,target:i.node,stopPropagation:()=>{o=!0}};r.action==="click"&&r.button==="left"&&a.onClick&&a.onClick(l)}s=this.parentMap.get(s)??null}}enable(t){this.mouseTrackingEnabled||(this.mouseTrackingEnabled=!0,os(),this.inputHandler=r=>{let n=ki(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,Zn(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},aM=Symbol("tuiuiu.hit-test-registry");function ls(e){return Oe(aM,()=>new xp,e)}function vp(e,t=0){let r=ls();if(r.clear(),t===0){r.registerFromLayout(e);return}El(e,(n,o,s,i,a,l)=>{Ep(n)&&r.register(n,o,s+t,i,a,l)})}import rr from"node:path";import{fileURLToPath as oR}from"node:url";var lM=[{code:"signals-inside-component-render",title:"Signals Inside Component Render",anchor:"signals-inside-component-render",summary:"Do not call createSignal() inside a component render. It recreates state every rerender.",whyItBreaks:["Signals created inside the component are replaced every time render runs again.","Input handlers and effects often keep references to the old signal instance.","The UI reads a fresh signal while callbacks mutate an older one, so state appears stuck or resets."],wrongExample:`function App() {
|
|
122
122
|
const [count, setCount] = createSignal(0);
|
|
123
123
|
useHotkeys('up', () => setCount(c => c + 1));
|
|
124
124
|
return Text({}, \`Count: \${count()}\`);
|
|
@@ -188,47 +188,51 @@ useEffect(() => {
|
|
|
188
188
|
return Box({},
|
|
189
189
|
ComputedText(() => \`Score: \${score()}\`),
|
|
190
190
|
);
|
|
191
|
-
})`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function
|
|
192
|
-
`).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=tR(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function bM(e,t){!oR()||eR.has(e)||(eR.add(e),console.warn(`[tuiuiu] ${t}`))}function xi(e){Tl++;try{return e()}finally{Tl=Math.max(0,Tl-1)}}function sR(e,t){if(!oR()||Tl>0||!gw()||hw()!=="component")return;let r=mM(e,[t])[0];if(!r||gM(r.filePath))return;let n=hM(r);bM(`create-signal-in-render:${n}`,`createSignal() was called during component render at ${n}. This recreates state every render. Move it to module scope or use useState(). ${Zw("signals-inside-component-render")}`)}var Rn=null,vi=new Set,Ei=!1,Tp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return Rn&&Rn._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof _n){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof _n){let r=this._subs;Ei?vi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ei?vi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof _n){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},Sp=null;var Pp=!1,Pl=new Set;function yM(e){Pl.add(e),Pp||(Pp=!0,queueMicrotask(kM))}function kM(){Pp=!1;let e=[...Pl];Pl.clear(),iR(e,t=>t.run())}function iR(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var _n=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?yM(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=Sp;Sp=this._cleanups;let r=Rn;Rn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{Rn=r,Sp=t}let n=this.dependencies,o=this._nextDeps;if(this._nextDeps=null,!this._samesDeps(n,o)){for(let s of n)o.has(s)||s.unsubscribe(this);for(let s of o)n.has(s)||s._addSub(this);this.dependencies=o}}finally{this.running=!1}}}_samesDeps(t,r){if(t.size!==r.size)return!1;for(let n of t)if(!r.has(n))return!1;return!0}_runCleanups(){let t=[];this._returnCleanup&&(t.push(this._returnCleanup),this._returnCleanup=void 0),t.push(...this._cleanups.splice(0));let r=[];for(let n of t)try{n()}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive cleanups failed")}dispose(){if(this.disposed)return;this.disposed=!0,Pl.delete(this),vi.delete(this);let t;try{this._runCleanups()}catch(r){t=r}finally{for(let r of this.dependencies)r.unsubscribe(this);this.dependencies.clear()}if(t!==void 0)throw t}};function gr(e){sR(new Error().stack,import.meta.url);let t=new Tp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function aR(e,t={}){let r=new _n(e,t);return()=>r.dispose()}function Nt(e){let t=Ei;Ei=!0;try{e()}finally{if(Ei=t,!t){let r=[...vi];vi.clear(),iR(r,n=>n.notify())}}}function ds(e){let t=Rn;Rn=null;try{return e()}finally{Rn=t}}var wM=Symbol("tuiuiu.terminal-focus-state");function RM(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function Ap(e){return Oe(wM,RM,e)}function hr(e){return Ap(e).read()}function Cp(e,t){let r=Ap(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Al(e,t){let r=Ap(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function Dp(e){Cp(!0,e)}var eo={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},dR=Symbol("tuiuiu.motion-runtime-state");function cR(e){let t=e.id===0?null:It(dR,()=>cR(Ir())),r={config:{...t?.config??eo},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[Fr](){pR(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function Fp(){let e=We();return Oe(dR,()=>cR(e),e)}function Cl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function Op(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function _M(e){switch(e.presentationPressure){case"elevated":return e.config.frameBudgetMs*e.config.elevatedFrameBudgetFactor;case"critical":return e.config.frameBudgetMs*e.config.criticalFrameBudgetFactor;case"normal":default:return 0}}function uR(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function xM(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Al(Xr(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}Dl(e)})))}function Ip(e,t=hr(e.scope)){if(!t)return 1e3/e.config.unfocusedFps;switch(e.qualityTier){case"reduced":return 1e3/e.config.reducedFps;case"skip":return 0;case"full":default:return 1e3/e.config.targetFps}}function lR(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:hr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function EM(e,t){let r=hr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=Ip(e,r),s=e.lastPresentationAt===0?0:t-e.lastPresentationAt;n=Math.min(n,Math.max(0,o-s))}for(let o of e.intervalSubscriptions.values()){if(!r&&o.pauseWhenUnfocused)continue;let s=t-o.lastRunAt;n=Math.min(n,Math.max(0,o.intervalMs-s))}return Number.isFinite(n)?Math.ceil(n):null}function pR(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function fR(e){if(e.schedulerTimer||!uR(e))return;xM(e);let t=EM(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(Xr(e.scope,()=>vM(e)),t))}function vM(e){if(e.schedulerTimer=null,!uR(e))return;let t=Date.now(),r=hr(e.scope),n=Ip(e,r),o=e.lastPresentationAt===0?n:t-e.lastPresentationAt;if(e.frameCallbacks.size>0&&o>=n){e.lastPresentationAt=t;let s=[...e.frameCallbacks.values()];e.frameCallbacks.clear();let i=lR(e,t,n,n===0?0:Math.max(n,o));for(let a of s)a(i)}for(let s of e.intervalSubscriptions.values()){if(!r&&s.pauseWhenUnfocused)continue;let i=t-s.lastRunAt;i<s.intervalMs||(s.lastRunAt=t,s.callback(lR(e,t,n,Math.max(s.intervalMs,i))))}fR(e)}function Dl(e){pR(e),fR(e)}function gR(e){let t=Fp(),r=Cl(e.targetFps??t.config.targetFps,eo.targetFps),n=Cl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Cl(e.unfocusedFps??t.config.unfocusedFps,eo.unfocusedFps),frameBudgetMs:Op(e.frameBudgetMs??t.config.frameBudgetMs,eo.frameBudgetMs),recoveryFrames:Cl(e.recoveryFrames??t.config.recoveryFrames,eo.recoveryFrames),elevatedFrameBudgetFactor:Op(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,eo.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:Op(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,eo.criticalFrameBudgetFactor)},Dl(t)}function Ol(){let e=Fp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:hr(e.scope),targetFrameMs:Ip(e),recommendedPresentationIntervalMs:_M(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function SM(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function TM(e){if(e.presentationPressure==="normal"){e.pressureOnBudgetStreak=0;return}e.pressureOnBudgetStreak++,!(e.pressureOnBudgetStreak<e.config.recoveryFrames)&&(e.presentationPressure==="critical"?e.presentationPressure="elevated":e.presentationPressure="normal",e.pressureOnBudgetStreak=0)}function hR(e){let t=Fp();if(!Number.isFinite(e.totalMs)||e.totalMs<0)return t.qualityTier;let r=e.overBudget??e.totalMs>t.config.frameBudgetMs,n=(e.phaseOverrunCount??0)>0;return r?(t.onBudgetStreak=0,t.qualityTier==="full"?t.qualityTier="reduced":t.qualityTier==="reduced"&&(t.qualityTier="skip"),Dl(t)):(t.onBudgetStreak++,t.onBudgetStreak>=t.config.recoveryFrames&&(t.qualityTier==="skip"?(t.qualityTier="reduced",t.onBudgetStreak=0):t.qualityTier==="reduced"&&(t.qualityTier="full",t.onBudgetStreak=0))),r||n?SM(t):TM(t),Dl(t),t.qualityTier}function xn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function mR(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function bR(e){return e?Ft({key:e.key,transforms:e.transforms}):null}function Si(e){return e.type==="text"?{...e,style:{...e.style},compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}:{...e,compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}}function PM(e,t){let r=Si(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function AM(e,t){let r=xn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Si(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function CM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function DM(e,t,r){let n=xn(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=Si(e);return a.clip=CM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function OM(e,t,r,n){let o=e.x;return(e.type==="text"?e.x+Math.max(1,e.maxWidth):e.x+Math.max(1,e.width))>r&&o<n&&e.y>=t.y&&e.y<t.y+t.height}function FM(e,t,r){if(e.type!=="text")return e;let n=xn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*xn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!OM(e,r,o,s))return e;let i=Si(e);return i.style={...i.style,bold:!0,inverse:!0},i}function IM(e,t,r){let n=xn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Si(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let $=o.x,D=o.x+Math.max(1,o.maxWidth),M=Math.max($,g),N=Math.min(D,f);if(N<=M)return null;let H=Math.max(0,M-$),G=Math.max(H,N-$);return o.text=Zo(o.text,H,G),o.x=M,o.maxWidth=Math.max(0,N-M),o.maxWidth>0&&o.text.length>0?o:null}let y=o.x,h=o.x+Math.max(1,o.width),R=Math.max(y,g),T=Math.min(h,f);return T<=R?null:(o.x=R,o.width=Math.max(0,T-R),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function MM(e,t,r){let n=Ol().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&xn(s.opacity)<=0||s.kind==="scale"&&xn(s.scale)<=0||s.kind==="reveal"&&xn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=PM(o,s);break;case"fade":o=AM(o,s);break;case"scale":o=DM(o,s,r);break;case"shimmer":o=FM(o,s,r);break;case"reveal":o=IM(o,s,r);break}}return o}function yR(e,t){if(e.length===0||t.size===0)return[...e];let r=[];for(let n of e){let o=n.compositorKeys;if(!o||o.length===0){r.push(n);continue}let s=n;for(let i of o){if(!s)break;let a=t.get(i);!a||a.transforms.length===0||(s=MM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var LM=1,jM=Symbol("tuiuiu.frame-runtime-state");function Lp(e){return Oe(jM,()=>({committedFrameSnapshot:null}),e)}var BM=new Set(["__terminalImage","__compositor"]),$M=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),NM=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Mp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Fl=new WeakMap,vn=new Map,RR=4096;function En(){return typeof performance<"u"?performance.now():Date.now()}function GM(e){return{width:e.width,height:e.height,pointer:e.pointer?{...e.pointer}:void 0,scrollDelta:e.scrollDelta?{...e.scrollDelta}:void 0,deltaTimeMs:e.deltaTimeMs}}function WM(e){return{eagerHitTargets:e?.eagerHitTargets??Mp.eagerHitTargets,eagerQueries:e?.eagerQueries??Mp.eagerQueries,eagerWarnings:e?.eagerWarnings??Mp.eagerWarnings}}function HM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function UM(e){return!!(e&&typeof e=="object"&&typeof e.getViewport=="function"&&typeof e.getContent=="function"&&typeof e.getOffset=="function"&&typeof e.getMaxOffset=="function"&&typeof e.scrollTo=="function"&&typeof e.scrollBy=="function"&&typeof e.scrollToStart=="function"&&typeof e.scrollToEnd=="function")}function qM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0&&UM(f.__scrollQuery)){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function KM(e){let t=[];for(let[r,n]of e)n.length>1&&t.push({code:"duplicate-id",severity:"warning",id:r,message:`Duplicate explicit id "${r}" was found ${n.length} times in the committed frame.`});return t}function cs(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function kR(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r;return{id:t,status:"found",found:!0,ambiguous:!1,bounds:n.bounds,nodeType:n.nodeType}}function VM(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r,o=n.metadata.getViewport(),s=n.metadata.getContent(),i=n.metadata.getOffset(),a=n.metadata.getMaxOffset();return{id:t,status:"found",found:!0,ambiguous:!1,nodeType:n.nodeType,viewport:{width:o.width??n.bounds.width,height:o.height??n.bounds.height},content:{width:s.width??o.width??n.bounds.width,height:s.height??o.height??n.bounds.height},offset:i,maxOffset:a,controls:{scrollTo:l=>n.metadata.scrollTo(l),scrollBy:l=>n.metadata.scrollBy(l),scrollToStart:()=>n.metadata.scrollToStart(),scrollToEnd:()=>n.metadata.scrollToEnd()}}}function zM(e,t,r,n,o){return{getElement:s=>{let i=kR(e,s);return i.status==="missing"?cs(n,o,{code:"query-missing",severity:"warning",id:s,message:`Element query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&cs(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Element query for explicit id "${s}" matched multiple committed elements in the current frame.`}),i},pointerOver:s=>{if(!r.pointer)return!1;let i=kR(e,s);return!i.found||!i.bounds?(i.status==="missing"?cs(n,o,{code:"query-missing",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&cs(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" matched multiple committed elements in the current frame.`}),!1):r.pointer.x>=i.bounds.x&&r.pointer.x<i.bounds.x+i.bounds.width&&r.pointer.y>=i.bounds.y&&r.pointer.y<i.bounds.y+i.bounds.height},getScrollContainer:s=>{let i=VM(t,s);return i.status==="missing"?cs(n,o,{code:"scroll-target-missing",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" did not match any committed scroll target in the current frame.`}):i.status==="ambiguous"&&cs(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" matched multiple committed scroll targets in the current frame.`}),i}}}function JM(e,t,r,n=[],o){let s=n.length>0?Ft(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function YM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function QM(e,t){let r=e.type==="text"?NM:$M,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Ft({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:BM})}function XM(e,t,r,n,o,s){return Ft([t,r,bR(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function ZM(e,t,r){if(!pl(e.node))return;let n=Fl.get(e);if(!n)return;if(n.cacheKey!==t){wn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){wn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){wn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){wn(e.node,Pe.CHILDREN);return}return n}function wR(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Fl.set(e,i),i}function eL(e){return e.map((t,r)=>({...t,order:r}))}function _R(e,t){return t?`${e}|motion:${Ol().qualityTier}`:e}function tL(){let e=Math.max(1,Math.ceil(RR*.1)),t=vn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;vn.delete(n.value)}}function rL(e){return vn.get(e)}function nL(e,t,r){let n=vn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!vn.has(e)&&vn.size>=RR&&tL(),vn.set(e,o),o}function oL(e,t,r){let n=vn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function sL(e,t){for(let r of t)e.push(r)}function iL(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function aL(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function xR(e){let t=e.props;return mR(t?.__compositor)?t.__compositor:null}function ER(e,t=new Map){let r=xR(e.node);r&&t.set(r.key,{...r,bounds:{x:e.x,y:e.y,width:e.width,height:e.height}});for(let n of e.children)ER(n,t);return t}function lL(e,t,r,n,o,s){if(!aL(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let y=s.__terminalImage,h=is(),R=iL(y.source)?y.source:xl(y.source,{cellSize:h.cellSize}),T=y.options?.protocol??h.protocol,$=ss(T),D=_i(R,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,D.renderColumns)),N=Math.max(0,Math.min(f,D.renderRows));return M<=0||N<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:M,height:N,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:R,fit:D.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:$,cellRender:Ww($),protocolState:y.protocolState}}function dL(e){return e.flatMap(t=>t.type!=="terminal-image"||t.cellRender||t.clip&&(t.x<t.clip.x||t.y<t.clip.y||t.x+t.width>t.clip.x+t.clip.width||t.y+t.height>t.clip.y+t.clip.height)?[]:[{type:"terminal-image",id:t.id,protocol:t.protocol,x:t.x,y:t.y,width:t.width,height:t.height}])}function vR(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,y=xR(i),h=y?[...o,y.key]:[...o],R=y!==null,T=lL(e,p,g,d,c,f),$=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",D=JM(t,r,n,h,s)+$,M,N=()=>(M===void 0&&(M=QM(i,T)),M),H=ZM(e,D,N);if(H)return ci("draw"),{commands:H.commands,hasCompositor:H.hasCompositor,subtreeSignature:H.subtreeSignature};let G=N(),I=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,q=[],oe=[],ae=f.paddingTop??f.paddingY??f.padding??0,se=f.paddingLeft??f.paddingX??f.padding??0,Z=f.borderStyle&&f.borderStyle!=="none"?1:0,pe=p+se+Z,Ae=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-Ae,ke=W??n,Y=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",Re={x:Y?p:s?.x??Number.MIN_SAFE_INTEGER,y:de?g:s?.y??Number.MIN_SAFE_INTEGER,width:Y?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:de?c:s?.height??Number.MAX_SAFE_INTEGER*2},De=Y||de?YM(s,Re):s;for(let ie of u){let _e=vR(ie,pe,Ee,ke,h,De);q.push(_e),R||=_e.hasCompositor,oe.push(_e.subtreeSignature)}let ve=XM(e,D,G,y,h,oe),we=rL(ve);if(we){ci("draw");let ie=wR(e,D,G,we.commands,we.hasCompositor,ve),_e=_R(ve,we.hasCompositor);return we.materialized&&we.materializedSignature===_e&&(ie.materialized=we.materialized,ie.materializedSignature=_e),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let _e=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:I,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:g,width:d,height:c,backgroundColor:W,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:_e,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ie=String(f.children??""),_e=Math.max(1,ye(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
|
|
191
|
+
})`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function dM(e){let t=lM.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function cM(e){return`docs/resources/common-mistakes.md#${dM(e).anchor}`}function tR(e){return`See ${cM(e)} or tuiuiu://guide/common-mistakes.`}var rR=new Set,sR=rr.normalize(oR(import.meta.url)),uM=rr.dirname(rr.dirname(sR)),pM=rr.dirname(uM),vl=0;function iR(){return process.env.NODE_ENV!=="production"}function nR(e){return e.startsWith("file://")?rr.normalize(oR(e)):rr.normalize(e)}function fM(e){let t=rr.normalize(e);return t.startsWith(pM)?t.includes(`${rr.sep}src${rr.sep}`)||t.includes(`${rr.sep}dist${rr.sep}`):!1}function gM(e){let t=rr.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function hM(e,t=[]){if(!e)return[];let r=new Set([sR,...t.map(nR)]),n=e.split(`
|
|
192
|
+
`).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=nR(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function mM(e,t){!iR()||rR.has(e)||(rR.add(e),console.warn(`[tuiuiu] ${t}`))}function xi(e){vl++;try{return e()}finally{vl=Math.max(0,vl-1)}}function aR(e,t){if(!iR()||vl>0||!mw()||bw()!=="component")return;let r=hM(e,[t])[0];if(!r||fM(r.filePath))return;let n=gM(r);mM(`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(). ${tR("signals-inside-component-render")}`)}var Rn=null,vi=new Set,Ei=!1,Tp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return Rn&&Rn._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof _n){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof _n){let r=this._subs;Ei?vi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ei?vi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof _n){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},Sp=null;var Pp=!1,Sl=new Set;function bM(e){Sl.add(e),Pp||(Pp=!0,queueMicrotask(yM))}function yM(){Pp=!1;let e=[...Sl];Sl.clear(),lR(e,t=>t.run())}function lR(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var _n=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?bM(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=Sp;Sp=this._cleanups;let r=Rn;Rn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{Rn=r,Sp=t}let n=this.dependencies,o=this._nextDeps;if(this._nextDeps=null,!this._samesDeps(n,o)){for(let s of n)o.has(s)||s.unsubscribe(this);for(let s of o)n.has(s)||s._addSub(this);this.dependencies=o}}finally{this.running=!1}}}_samesDeps(t,r){if(t.size!==r.size)return!1;for(let n of t)if(!r.has(n))return!1;return!0}_runCleanups(){let t=[];this._returnCleanup&&(t.push(this._returnCleanup),this._returnCleanup=void 0),t.push(...this._cleanups.splice(0));let r=[];for(let n of t)try{n()}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive cleanups failed")}dispose(){if(this.disposed)return;this.disposed=!0,Sl.delete(this),vi.delete(this);let t;try{this._runCleanups()}catch(r){t=r}finally{for(let r of this.dependencies)r.unsubscribe(this);this.dependencies.clear()}if(t!==void 0)throw t}};function gr(e){aR(new Error().stack,import.meta.url);let t=new Tp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function dR(e,t={}){let r=new _n(e,t);return()=>r.dispose()}function Nt(e){let t=Ei;Ei=!0;try{e()}finally{if(Ei=t,!t){let r=[...vi];vi.clear(),lR(r,n=>n.notify())}}}function ds(e){let t=Rn;Rn=null;try{return e()}finally{Rn=t}}var kM=Symbol("tuiuiu.terminal-focus-state");function wM(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function Ap(e){return Oe(kM,wM,e)}function hr(e){return Ap(e).read()}function Cp(e,t){let r=Ap(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Tl(e,t){let r=Ap(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function Dp(e){Cp(!0,e)}var eo={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},uR=Symbol("tuiuiu.motion-runtime-state");function pR(e){let t=e.id===0?null:It(uR,()=>pR(Ir())),r={config:{...t?.config??eo},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[Fr](){gR(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function Fp(){let e=We();return Oe(uR,()=>pR(e),e)}function Pl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function Op(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function RM(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 fR(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function _M(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Tl(Xr(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}Al(e)})))}function Ip(e,t=hr(e.scope)){if(!t)return 1e3/e.config.unfocusedFps;switch(e.qualityTier){case"reduced":return 1e3/e.config.reducedFps;case"skip":return 0;case"full":default:return 1e3/e.config.targetFps}}function cR(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:hr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function xM(e,t){let r=hr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=Ip(e,r),s=e.lastPresentationAt===0?0:t-e.lastPresentationAt;n=Math.min(n,Math.max(0,o-s))}for(let o of e.intervalSubscriptions.values()){if(!r&&o.pauseWhenUnfocused)continue;let s=t-o.lastRunAt;n=Math.min(n,Math.max(0,o.intervalMs-s))}return Number.isFinite(n)?Math.ceil(n):null}function gR(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function hR(e){if(e.schedulerTimer||!fR(e))return;_M(e);let t=xM(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(Xr(e.scope,()=>EM(e)),t))}function EM(e){if(e.schedulerTimer=null,!fR(e))return;let t=Date.now(),r=hr(e.scope),n=Ip(e,r),o=e.lastPresentationAt===0?n:t-e.lastPresentationAt;if(e.frameCallbacks.size>0&&o>=n){e.lastPresentationAt=t;let s=[...e.frameCallbacks.values()];e.frameCallbacks.clear();let i=cR(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(cR(e,t,n,Math.max(s.intervalMs,i))))}hR(e)}function Al(e){gR(e),hR(e)}function mR(e){let t=Fp(),r=Pl(e.targetFps??t.config.targetFps,eo.targetFps),n=Pl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Pl(e.unfocusedFps??t.config.unfocusedFps,eo.unfocusedFps),frameBudgetMs:Op(e.frameBudgetMs??t.config.frameBudgetMs,eo.frameBudgetMs),recoveryFrames:Pl(e.recoveryFrames??t.config.recoveryFrames,eo.recoveryFrames),elevatedFrameBudgetFactor:Op(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,eo.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:Op(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,eo.criticalFrameBudgetFactor)},Al(t)}function Cl(){let e=Fp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:hr(e.scope),targetFrameMs:Ip(e),recommendedPresentationIntervalMs:RM(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function vM(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function SM(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 bR(e){let t=Fp();if(!Number.isFinite(e.totalMs)||e.totalMs<0)return t.qualityTier;let r=e.overBudget??e.totalMs>t.config.frameBudgetMs,n=(e.phaseOverrunCount??0)>0;return r?(t.onBudgetStreak=0,t.qualityTier==="full"?t.qualityTier="reduced":t.qualityTier==="reduced"&&(t.qualityTier="skip"),Al(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?vM(t):SM(t),Al(t),t.qualityTier}function xn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function yR(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function kR(e){return e?Ft({key:e.key,transforms:e.transforms}):null}function Si(e){return e.type==="text"?{...e,style:{...e.style},compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}:{...e,compositorKeys:e.compositorKeys?[...e.compositorKeys]:void 0}}function TM(e,t){let r=Si(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function PM(e,t){let r=xn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Si(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function AM(e,t){if(!e)return t;let r=Math.max(e.x,t.x),n=Math.max(e.y,t.y),o=Math.min(e.x+e.width,t.x+t.width),s=Math.min(e.y+e.height,t.y+t.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function CM(e,t,r){let n=xn(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=Si(e);return a.clip=AM(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function DM(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 OM(e,t,r){if(e.type!=="text")return e;let n=xn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*xn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!DM(e,r,o,s))return e;let i=Si(e);return i.style={...i.style,bold:!0,inverse:!0},i}function FM(e,t,r){let n=xn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Si(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let $=o.x,D=o.x+Math.max(1,o.maxWidth),M=Math.max($,g),N=Math.min(D,f);if(N<=M)return null;let H=Math.max(0,M-$),G=Math.max(H,N-$);return o.text=Zo(o.text,H,G),o.x=M,o.maxWidth=Math.max(0,N-M),o.maxWidth>0&&o.text.length>0?o:null}let y=o.x,h=o.x+Math.max(1,o.width),R=Math.max(y,g),T=Math.min(h,f);return T<=R?null:(o.x=R,o.width=Math.max(0,T-R),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function IM(e,t,r){let n=Cl().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&xn(s.opacity)<=0||s.kind==="scale"&&xn(s.scale)<=0||s.kind==="reveal"&&xn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=TM(o,s);break;case"fade":o=PM(o,s);break;case"scale":o=CM(o,s,r);break;case"shimmer":o=OM(o,s,r);break;case"reveal":o=FM(o,s,r);break}}return o}function wR(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=IM(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var MM=1,LM=Symbol("tuiuiu.frame-runtime-state");function Lp(e){return Oe(LM,()=>({committedFrameSnapshot:null}),e)}var jM=new Set(["__terminalImage","__compositor"]),BM=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),$M=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Mp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Dl=new WeakMap,vn=new Map,xR=4096;function En(){return typeof performance<"u"?performance.now():Date.now()}function NM(e){return{width:e.width,height:e.height,pointer:e.pointer?{...e.pointer}:void 0,scrollDelta:e.scrollDelta?{...e.scrollDelta}:void 0,deltaTimeMs:e.deltaTimeMs}}function GM(e){return{eagerHitTargets:e?.eagerHitTargets??Mp.eagerHitTargets,eagerQueries:e?.eagerQueries??Mp.eagerQueries,eagerWarnings:e?.eagerWarnings??Mp.eagerWarnings}}function WM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function HM(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 UM(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,y=typeof f.id=="string"?f.id:void 0;if(y&&y.length>0&&HM(f.__scrollQuery)){let M=t.get(y)??[];M.push({id:y,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(y,M)}let h=f.paddingTop??f.paddingY??f.padding??0,R=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,$=p+R+T,D=g+h+T;for(let M of u)r(M,$,D)};return r(e),t}function qM(e){let t=[];for(let[r,n]of e)n.length>1&&t.push({code:"duplicate-id",severity:"warning",id:r,message:`Duplicate explicit id "${r}" was found ${n.length} times in the committed frame.`});return t}function cs(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function RR(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r;return{id:t,status:"found",found:!0,ambiguous:!1,bounds:n.bounds,nodeType:n.nodeType}}function KM(e,t){let r=e().get(t)??[];if(r.length===0)return{id:t,status:"missing",found:!1,ambiguous:!1};if(r.length>1)return{id:t,status:"ambiguous",found:!1,ambiguous:!0};let[n]=r,o=n.metadata.getViewport(),s=n.metadata.getContent(),i=n.metadata.getOffset(),a=n.metadata.getMaxOffset();return{id:t,status:"found",found:!0,ambiguous:!1,nodeType:n.nodeType,viewport:{width:o.width??n.bounds.width,height:o.height??n.bounds.height},content:{width:s.width??o.width??n.bounds.width,height:s.height??o.height??n.bounds.height},offset:i,maxOffset:a,controls:{scrollTo:l=>n.metadata.scrollTo(l),scrollBy:l=>n.metadata.scrollBy(l),scrollToStart:()=>n.metadata.scrollToStart(),scrollToEnd:()=>n.metadata.scrollToEnd()}}}function VM(e,t,r,n,o){return{getElement:s=>{let i=RR(e,s);return i.status==="missing"?cs(n,o,{code:"query-missing",severity:"warning",id:s,message:`Element query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&cs(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Element query for explicit id "${s}" matched multiple committed elements in the current frame.`}),i},pointerOver:s=>{if(!r.pointer)return!1;let i=RR(e,s);return!i.found||!i.bounds?(i.status==="missing"?cs(n,o,{code:"query-missing",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" did not match any committed element in the current frame.`}):i.status==="ambiguous"&&cs(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Pointer-over query for explicit id "${s}" matched multiple committed elements in the current frame.`}),!1):r.pointer.x>=i.bounds.x&&r.pointer.x<i.bounds.x+i.bounds.width&&r.pointer.y>=i.bounds.y&&r.pointer.y<i.bounds.y+i.bounds.height},getScrollContainer:s=>{let i=KM(t,s);return i.status==="missing"?cs(n,o,{code:"scroll-target-missing",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" did not match any committed scroll target in the current frame.`}):i.status==="ambiguous"&&cs(n,o,{code:"query-ambiguous",severity:"warning",id:s,message:`Scroll-container query for explicit id "${s}" matched multiple committed scroll targets in the current frame.`}),i}}}function zM(e,t,r,n=[],o){let s=n.length>0?Ft(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function JM(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 YM(e,t){let r=e.type==="text"?$M:BM,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Ft({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:jM})}function QM(e,t,r,n,o,s){return Ft([t,r,kR(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function XM(e,t,r){if(!cl(e.node))return;let n=Dl.get(e);if(!n)return;if(n.cacheKey!==t){wn(e.node,Pe.LAYOUT);return}let o=r();if(n.fingerprint!==o){wn(e.node,Pe.CONTENT|Pe.STYLE);return}if(n.childRefs.length!==e.node.children.length){wn(e.node,Pe.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){wn(e.node,Pe.CHILDREN);return}return n}function _R(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Dl.set(e,i),i}function ZM(e){return e.map((t,r)=>({...t,order:r}))}function ER(e,t){return t?`${e}|motion:${Cl().qualityTier}`:e}function eL(){let e=Math.max(1,Math.ceil(xR*.1)),t=vn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;vn.delete(n.value)}}function tL(e){return vn.get(e)}function rL(e,t,r){let n=vn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!vn.has(e)&&vn.size>=xR&&eL(),vn.set(e,o),o}function nL(e,t,r){let n=vn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function oL(e,t){for(let r of t)e.push(r)}function sL(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function iL(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function vR(e){let t=e.props;return yR(t?.__compositor)?t.__compositor:null}function SR(e,t=new Map){let r=vR(e.node);r&&t.set(r.key,{...r,bounds:{x:e.x,y:e.y,width:e.width,height:e.height}});for(let n of e.children)SR(n,t);return t}function aL(e,t,r,n,o,s){if(!iL(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let y=s.__terminalImage,h=is(),R=sL(y.source)?y.source:Rl(y.source,{cellSize:h.cellSize}),T=y.options?.protocol??h.protocol,$=ss(T),D=_i(R,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,D.renderColumns)),N=Math.max(0,Math.min(f,D.renderRows));return M<=0||N<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:M,height:N,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:R,fit:D.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:$,cellRender:Uw($),protocolState:y.protocolState}}function lL(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 TR(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,y=vR(i),h=y?[...o,y.key]:[...o],R=y!==null,T=aL(e,p,g,d,c,f),$=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",D=zM(t,r,n,h,s)+$,M,N=()=>(M===void 0&&(M=YM(i,T)),M),H=XM(e,D,N);if(H)return ci("draw"),{commands:H.commands,hasCompositor:H.hasCompositor,subtreeSignature:H.subtreeSignature};let G=N(),I=typeof f.id=="string"?f.id:void 0,W=typeof f.backgroundColor=="string"?f.backgroundColor:void 0,q=[],oe=[],ae=f.paddingTop??f.paddingY??f.padding??0,se=f.paddingLeft??f.paddingX??f.padding??0,Z=f.borderStyle&&f.borderStyle!=="none"?1:0,pe=p+se+Z,Ae=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-Ae,ke=W??n,Y=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",Re={x:Y?p:s?.x??Number.MIN_SAFE_INTEGER,y:de?g:s?.y??Number.MIN_SAFE_INTEGER,width:Y?d:s?.width??Number.MAX_SAFE_INTEGER*2,height:de?c:s?.height??Number.MAX_SAFE_INTEGER*2},De=Y||de?JM(s,Re):s;for(let ie of u){let _e=TR(ie,pe,Ee,ke,h,De);q.push(_e),R||=_e.hasCompositor,oe.push(_e.subtreeSignature)}let ve=QM(e,D,G,y,h,oe),we=tL(ve);if(we){ci("draw");let ie=_R(e,D,G,we.commands,we.hasCompositor,ve),_e=ER(ve,we.hasCompositor);return we.materialized&&we.materializedSignature===_e&&(ie.materialized=we.materialized,ie.materializedSignature=_e),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Se=[];if(i.type==="box"&&(W||f.__fillChar||f.borderStyle&&f.borderStyle!=="none")){let _e=f.borderTop!==void 0||f.borderBottom!==void 0||f.borderLeft!==void 0||f.borderRight!==void 0?{top:f.borderTop??!0,bottom:f.borderBottom??!0,left:f.borderLeft??!0,right:f.borderRight??!0}:void 0;Se.push({type:"box",id:I,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:g,width:d,height:c,backgroundColor:W,fillChar:typeof f.__fillChar=="string"?f.__fillChar:void 0,borderStyle:f.borderStyle,borderColor:typeof f.borderColor=="string"?f.borderColor:void 0,borderSides:_e,borderText:typeof f.borderText=="string"?f.borderText:void 0,borderTextAlign:f.borderTextAlign,borderTextColor:typeof f.borderTextColor=="string"?f.borderTextColor:void 0,borderTextBold:f.borderTextBold===!0,clip:s})}else if(i.type==="text"){let ie=String(f.children??""),_e=Math.max(1,ye(ie)),Fe=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
|
|
193
193
|
`):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/_e)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>ie).join(`
|
|
194
|
-
`):ie;Se.push({type:"text",id:I,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:h.length>0?[...h]:void 0,clip:s});for(let ie of q)sL(Se,ie.commands);Qn("draw");let fe=wR(e,D,G,Se,R,ve);return nL(ve,fe.commands,R),{commands:fe.commands,hasCompositor:R,subtreeSignature:ve}}function cL(e){if(e.type==="text"){let s=Math.round(e.x),i=Math.round(e.y),a=Math.max(0,Math.round(e.maxWidth));return s===e.x&&i===e.y&&a===e.maxWidth?e:{...e,x:s,y:i,maxWidth:a}}let t=Math.round(e.x),r=Math.round(e.y),n=Math.max(0,Math.round(e.width)),o=Math.max(0,Math.round(e.height));return t===e.x&&r===e.y&&n===e.width&&o===e.height?e:{...e,x:t,y:r,width:n,height:o}}function uL(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=cL(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function pL(e){let t=vR(e),r=Fl.get(e),n=_R(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=eL(t.commands),s=t.hasCompositor?yR(o,ER(e)):o,i=uL(s),a=Fl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),oL(t.subtreeSignature,i,n),i}function SR(e,t,r={}){let n=WM(r),o=GM(t),s=Date.now(),i=En(),a=En(),l=iw(e,o.width,o.height),d=En()-a,c=En(),u=pL(l),p=dL(u),g=En()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},y=rw();f.structural.layoutReuseCount=y.layoutReuseCount,f.structural.layoutFreshCount=y.layoutFreshCount,f.structural.drawReuseCount=y.drawReuseCount,f.structural.drawFreshCount=y.drawFreshCount,f.structural.invalidationEscalationCount=y.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=y.absorbedLayoutDirtyCount;let h,R,T,$=[],D=!1,M=()=>(h||(h=HM(l)),h),N=()=>(R||(R=qM(l)),R),H=()=>{if(!T){let ae=En();T=Xw(l),f.phases.hitTargetRegistrationMs=En()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...KM(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&H();let I=zM(M,N,o,$,f),W=Date.now(),q=En()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:LM++,committedAt:W,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:I,metrics:f,get hitTargets(){return H()},get warnings(){return G()}}}function TR(e,t){Lp(t).committedFrameSnapshot=e}function PR(e){return Lp(e).committedFrameSnapshot}function AR(e){Lp(e).committedFrameSnapshot=null}function it(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Ct(e,t,r){e.metrics.structural[t]=r}function CR(e,t,r=Date.now()){e.metrics.runtimeStartAt=t,e.metrics.runtimeEndAt=r,e.metrics.runtimeTotalMs=Math.max(0,r-t),e.metrics.frameEndAt=r}var OR=Symbol("tuiuiu.progressive-runtime-state");function DR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function fL(e){if(e.id===0)return DR();let t=It(OR,DR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function jp(){let e=We();return Oe(OR,()=>fL(e),e)}function FR(){return jp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function IR(){return jp().capabilityOverrides}function Bp(){return jp().progressiveVersion}function gL(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=wl(t),a=Fw(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",y=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",h=l.strikethrough||y,R=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,$=T.columns||80,D=T.rows||24,M=FR(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:h,hyperlinks:R,terminalName:c,isCI:d,columns:$,rows:D,profile:i,synchronizedOutput:l.synchronizedOutput,styledUnderlines:l.styledUnderlines,coloredUnderlines:l.coloredUnderlines,clipboard:l.clipboard,notifications:l.notifications,multiplexer:a,cursorStyleControl:l.cursorStyleControl,windowTitle:l.windowTitle,gpuAccelerated:i.gpuAccelerated,kittyKeyboard:l.kittyKeyboard,focusEvents:l.focusEvents,nerdFonts:M},H=IR();return H&&Object.assign(N,H),N}var MR=Symbol("tuiuiu.capability-runtime-state");function LR(e){let t=e.id===0?"auto":ds(It(MR,()=>LR(Ir())).renderModeSignal),[r,n]=gr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Fr](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function Ti(e){let t=We(e);return Oe(MR,()=>LR(t),t)}function jR(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function hL(e){return gL({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Il(e){return e.cachedCapabilities=hL(e),e.cachedProgressiveVersion=Bp(),e.cachedCapabilities}function BR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Il(e);let r=jR(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function $R(e){let t=Ti(),r=t.source.stdout??process.stdout;t.resizeListener&&(r.off("resize",t.resizeListener),t.resizeListener=null),t.source={...e},t.cachedCapabilities=null,t.cachedProgressiveVersion=-1,BR(t)}function Br(){let e=Ti(),t=Bp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Il(e),e.cachedCapabilities??Il(e)}function NR(){return Il(Ti())}function GR(){return jR(Ti())}function WR(e){let t=Ti();return t.resizeHandlers.add(e),BR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var HR={black:0,red:1,green:2,yellow:3,blue:4,magenta:5,cyan:6,white:7,gray:8,grey:8,blackBright:8,redBright:9,greenBright:10,yellowBright:11,blueBright:12,magentaBright:13,cyanBright:14,whiteBright:15},mL={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},bL=512,to=new Map,UR=4e6;function $r(){return{char:" ",attrs:{}}}function Np(e,t){if(e===t)return!0;if(e===void 0||t===void 0)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="object"&&typeof t=="object"){if("r"in e&&"r"in t)return e.r===t.r&&e.g===t.g&&e.b===t.b;if("ansi256"in e&&"ansi256"in t)return e.ansi256===t.ansi256}return!1}function yL(e,t){let r=e.underline||!1,n=t.underline||!1;return!!e.bold==!!t.bold&&!!e.dim==!!t.dim&&!!e.italic==!!t.italic&&r===n&&Np(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function qR(e,t){return e.char===t.char&&Np(e.fg,t.fg)&&Np(e.bg,t.bg)&&yL(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Ml(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Nr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>UR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${UR} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push($r());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||ye(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,ye(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}if(this.cells[r][t]=n,this.invalidateRow(r),!n.isWide&&o>1&&t+o<=this.width)for(let s=1;s<o;s++)this.clearWideFootprint(t+s,r),this.cells[r][t+s]={char:"",fg:n.fg,bg:n.bg,attrs:n.attrs,isWide:!0};this.addDamage(t,r,Math.min(o,this.width-t),1)}}clearWideFootprint(t,r){if(!Number.isInteger(t)||!Number.isInteger(r)||t<0||t>=this.width||r<0||r>=this.height)return;let n=this.cells[r][t];if(n.isWide){if(this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&ye(s.char)>1&&(this.cells[r][t-1]=$r(),this.addDamage(t-1,r,1,1))}return}let o=ye(n.char);if(!(o<=1)){this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1);for(let s=1;s<o&&t+s<this.width;s++)this.cells[r][t+s]?.isWide&&(this.cells[r][t+s]=$r(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=ye(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=Jn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
195
|
-
`)continue;if(a>=this.width)break;let c=ye(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(ye(o)!==1){let c=ye(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(ye(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=$r();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,
|
|
196
|
-
`)}function Wp(e,t,r=!1){if(e.length===0)return"";r||e.sort((d,c)=>d.y!==c.y?d.y-c.y:d.x-c.x);let n=[],o=-1,s=-1,i=null,a="",l=()=>{a.length>0&&(n.push(a),a="")};for(let d of e){let{x:c,y:u,cell:p}=d;if(p.isWide||c<0||c>=t||u<0)continue;(u!==s||c!==o+1)&&(l(),n.push(`\x1B[${u+1};${c+1}H`));let g=zR(p.fg,p.bg,p.attrs);g!==i&&(l(),i!==null&&n.push("\x1B[0m"),g!==null&&n.push(`\x1B[${g}m`),i=g),a+=p.char,o=c+(EL(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function jl(e,t){let r=t??Br().multiplexer;if(!r)return e;switch(r.type){case"tmux":return`\x1BPtmux;${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"screen":return`\x1BP${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"zellij":return e}}var vL="\x1B[?2026h",SL="\x1B[?2026l";function JR(e){let t=e??Br();return t.synchronizedOutput?jl(vL,t.multiplexer):""}function YR(e){let t=e??Br();return t.synchronizedOutput?jl(SL,t.multiplexer):""}var Hp={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",top:"\u2550",bottom:"\u2550",left:"\u2551",right:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2558",bottomRight:"\u255B",top:"\u2550",bottom:"\u2550",left:"\u2502",right:"\u2502"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},asciiDouble:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"=",bottom:"=",left:"|",right:"|"},markdown:{topLeft:"|",topRight:"|",bottomLeft:"|",bottomRight:"|",top:"-",bottom:"-",left:"|",right:"|"},arrow:{topLeft:"\u2198",topRight:"\u2199",bottomLeft:"\u2197",bottomRight:"\u2196",top:"\u2193",bottom:"\u2191",left:"\u2192",right:"\u2190"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u254C",bottom:"\u254C",left:"\u254E",right:"\u254E"},dashedHeavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u254D",bottom:"\u254D",left:"\u254F",right:"\u254F"},heavyHead:{topLeft:"\u250E",topRight:"\u2512",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2501",bottom:"\u2500",left:"\u2502",right:"\u2502"},doubleHead:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2550",bottom:"\u2500",left:"\u2502",right:"\u2502"},heavyEdge:{topLeft:"\u250D",topRight:"\u2511",bottomLeft:"\u2515",bottomRight:"\u2519",top:"\u2500",bottom:"\u2500",left:"\u2503",right:"\u2503"},doubleEdge:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},minimal:{topLeft:"\u2500",topRight:"\u2500",bottomLeft:"\u2500",bottomRight:"\u2500",top:"\u2500",bottom:"\u2500",left:" ",right:" "},minimalHeavy:{topLeft:"\u2501",topRight:"\u2501",bottomLeft:"\u2501",bottomRight:"\u2501",top:"\u2501",bottom:"\u2501",left:" ",right:" "},minimalDouble:{topLeft:"\u2550",topRight:"\u2550",bottomLeft:"\u2550",bottomRight:"\u2550",top:"\u2550",bottom:"\u2550",left:" ",right:" "},horizontals:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:"\u2500",bottom:"\u2500",left:" ",right:" "},inner:{topLeft:"\u2597",topRight:"\u2596",bottomLeft:"\u259D",bottomRight:"\u2598",top:"\u2584",bottom:"\u2580",left:"\u2590",right:"\u258C"},outer:{topLeft:"\u259B",topRight:"\u259C",bottomLeft:"\u2599",bottomRight:"\u259F",top:"\u2580",bottom:"\u2584",left:"\u258C",right:"\u2590"},thick:{topLeft:"\u2588",topRight:"\u2588",bottomLeft:"\u2588",bottomRight:"\u2588",top:"\u2580",bottom:"\u2584",left:"\u2588",right:"\u2588"},block:{topLeft:"\u2584",topRight:"\u2584",bottomLeft:"\u2580",bottomRight:"\u2580",top:"\u2584",bottom:"\u2580",left:"\u2588",right:"\u2588"},hkey:{topLeft:"\u2594",topRight:"\u2594",bottomLeft:"\u2581",bottomRight:"\u2581",top:"\u2594",bottom:"\u2581",left:" ",right:" "},vkey:{topLeft:"\u258F",topRight:"\u2595",bottomLeft:"\u258F",bottomRight:"\u2595",top:" ",bottom:" ",left:"\u258F",right:"\u2595"},tall:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2594",bottom:"\u2581",left:"\u258A",right:"\u258E"},panel:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2588",bottom:"\u2581",left:"\u258A",right:"\u258E"},tab:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},wide:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},hidden:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},blank:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "}};var XR="\x1B[?25h",TL="\x1B[?25l",Bl=!1,QR=!1,PL=null,Up=null;function qp(e){return"isTTY"in e&&!!e.isTTY}function AL(){let e=Up??process.stdout;qp(e)&&Bl&&(e.write(XR),Bl=!1)}function CL(){QR||(QR=!0,PL=en(AL))}function us(e=process.stdout){qp(e)&&(Up=e,Bl=!1,e.write(XR))}function ps(e=process.stdout){qp(e)&&(Up=e,CL(),Bl=!0,e.write(TL))}var DL="#ffffff",OL="#000000",FL="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},IL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},ML={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},m={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},Ue={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ue={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},LL={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ge={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},jL={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},BL={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},he={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},$L={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},NL={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Xe={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},GL={50:"#f0f9ff",100:"#e0f2fe",200:"#bae6fd",300:"#7dd3fc",400:"#38bdf8",500:"#0ea5e9",600:"#0284c7",700:"#0369a1",800:"#075985",900:"#0c4a6e",950:"#082f49"},te={50:"#eff6ff",100:"#dbeafe",200:"#bfdbfe",300:"#93c5fd",400:"#60a5fa",500:"#3b82f6",600:"#2563eb",700:"#1d4ed8",800:"#1e40af",900:"#1e3a8a",950:"#172554"},WL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},HL={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},UL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},qL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},KL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},VL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},ZR={white:DL,black:OL,transparent:FL,slate:k,gray:IL,zinc:ML,neutral:m,stone:Ue,red:ue,orange:LL,amber:ge,yellow:jL,lime:BL,green:he,emerald:$L,teal:NL,cyan:Xe,sky:GL,blue:te,indigo:WL,violet:HL,purple:UL,fuchsia:qL,pink:KL,rose:VL};var ee={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},Kp={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:ee,background:{lowest:k[950],base:k[900],subtle:k[800],surface:k[700],raised:k[600],elevated:k[500],popover:k[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:k[50],secondary:k[200],muted:k[400],disabled:k[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:ee.success[500],warning:ee.warning[500],critical:ee.danger[500],info:Xe[500],highlight:ee.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:ee.primary[400],ring:{color:ee.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:ee.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:ee.primary[500],danger:ee.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:ee.primary[500],fg:"#ffffff",hoverBg:ee.primary[400],activeBg:ee.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:ee.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:ee.primary[500]},ghost:{bg:"transparent",fg:k[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:k[800],headerBg:k[700],footerBg:k[700],border:k[700]},menu:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],activeBg:ee.primary[700],selectedBg:ee.primary[600],disabledFg:k[500]}},tabs:{bg:k[800],border:k[700],tab:{fg:k[400],activeFg:k[50],activeBg:k[700],hoverFg:k[200],indicator:ee.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:ee.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:ee.primary[500],invalidBorder:ee.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:ee.primary[500]},radio:{bg:k[800],dotColor:ee.primary[500],border:k[600],checkedBorder:ee.primary[500]},tooltip:{bg:k[700],fg:k[50]},modal:{bg:k[800],border:k[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:k[700],fg:k[50]},success:{bg:ee.success[500],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:ee.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:ee.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:ee.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.success[700]},warning:{bg:ee.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:ee.warning[600]},danger:{bg:ee.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:ee.primary[600],fg:"#ffffff"},info:{bg:Xe[600],fg:"#ffffff"},success:{bg:ee.success[600],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:ee.primary[400],subtitleFg:k[400],border:ee.primary[700]},secondary:{bg:k[900],titleFg:k[200],subtitleFg:k[500],border:k[700]}},appshell:{bg:k[950],dividerFg:k[700],sidebarBg:k[900],asideBg:k[900]},collapsible:{default:{headerBg:k[800],headerFg:k[50],contentBg:k[900],border:k[700],iconFg:k[400]},primary:{headerBg:ee.primary[700],headerFg:"#ffffff",contentBg:k[900],border:ee.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:k[700],headerFg:k[50],contentBg:k[800],border:k[600],iconFg:k[400]}},commandPalette:{bg:k[800],border:k[700],inputBg:k[900],inputFg:k[50],inputPlaceholder:k[500],itemFg:k[50],itemHoverBg:k[700],itemSelectedBg:ee.primary[700],itemSelectedFg:"#ffffff",highlightFg:ee.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:ee.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:ee.success[900],fg:ee.success[100],border:ee.success[600],iconFg:ee.success[400]},error:{bg:ee.danger[900],fg:ee.danger[100],border:ee.danger[600],iconFg:ee.danger[400]},warning:{bg:ee.warning[900],fg:ee.warning[100],border:ee.warning[500],iconFg:ee.warning[400]},info:{bg:Xe[900],fg:Xe[100],border:Xe[600],iconFg:Xe[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:ee.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:ee.primary[600],titleBarFg:"#ffffff",border:ee.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:ee.success[600],titleBarFg:"#ffffff",border:ee.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:ee.warning[500],titleBarFg:k[900],border:ee.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:ee.danger[600],titleBarFg:"#ffffff",border:ee.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Q={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},e_={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Q,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:he[600],warning:ge[600],critical:ue[600],info:Xe[600],highlight:Q.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Q.primary[600],ring:{color:Q.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Q.primary[100],fg:Q.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Q.primary[600],danger:Q.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Q.primary[600],fg:"#ffffff",hoverBg:Q.primary[700],activeBg:Q.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Q.primary[600],hoverBg:Q.primary[50],activeBg:Q.primary[100],border:Q.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Q.primary[100],selectedBg:Q.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Q.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Q.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Q.primary[600],invalidBorder:Q.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Q.primary[600]},radio:{bg:"#ffffff",dotColor:Q.primary[600],border:k[300],checkedBorder:Q.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Q.success[100],fg:Q.success[800]},warning:{bg:Q.warning[100],fg:Q.warning[800]},danger:{bg:Q.danger[100],fg:Q.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Q.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Q.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Q.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.success[700]},warning:{bg:Q.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Q.warning[600]},danger:{bg:Q.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Q.primary[600],fg:"#ffffff"},info:{bg:Xe[600],fg:"#ffffff"},success:{bg:Q.success[600],fg:"#ffffff"},warning:{bg:Q.warning[500],fg:k[900]},danger:{bg:Q.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Q.primary[700],subtitleFg:k[600],border:Q.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Q.primary[100],headerFg:Q.primary[900],contentBg:"#ffffff",border:Q.primary[200],iconFg:Q.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Q.primary[100],itemSelectedFg:Q.primary[900],highlightFg:Q.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Q.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Q.success[50],fg:Q.success[900],border:Q.success[200],iconFg:Q.success[600]},error:{bg:Q.danger[50],fg:Q.danger[900],border:Q.danger[200],iconFg:Q.danger[600]},warning:{bg:Q.warning[50],fg:Q.warning[900],border:Q.warning[200],iconFg:Q.warning[600]},info:{bg:Xe[50],fg:Xe[900],border:Xe[200],iconFg:Xe[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Q.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Q.primary[600],titleBarFg:"#ffffff",border:Q.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Q.success[600],titleBarFg:"#ffffff",border:Q.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Q.warning[500],titleBarFg:k[900],border:Q.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Q.danger[600],titleBarFg:"#ffffff",border:Q.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},ro={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:Ue[50],100:Ue[100],200:Ue[200],300:Ue[300],400:Ue[400],500:Ue[500],600:Ue[600],700:Ue[700],800:Ue[800],900:Ue[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},t_={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:ro,background:{lowest:O.backgroundDark,base:O.background,subtle:O.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:O.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:O.foreground,secondary:"#E8E8E2",muted:O.comment,disabled:"#5B5A4F",inverse:{base:O.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:O.green,warning:O.yellow,critical:O.pink,info:O.cyan,highlight:O.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:O.green,ring:{color:O.green,width:2}},disabled:{opacity:.4,bg:O.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:O.foreground}},borders:{default:"#49483E",subtle:O.backgroundLight,strong:O.comment,accent:O.green,danger:O.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:O.green,fg:O.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:O.foreground,hoverBg:"#5B5A4F",activeBg:O.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:O.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:O.green},ghost:{bg:"transparent",fg:O.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:O.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:O.backgroundLight,border:"#49483E",tab:{fg:O.comment,activeFg:O.foreground,activeBg:O.background,hoverFg:"#E8E8E2",indicator:O.green}},dropdown:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:O.backgroundLight,fg:O.foreground,placeholder:O.comment,border:"#49483E",focusBorder:O.green,invalidBorder:O.pink},checkbox:{bg:O.backgroundLight,border:"#5B5A4F",checkColor:O.background,checkedBg:O.green},radio:{bg:O.backgroundLight,dotColor:O.green,border:"#5B5A4F",checkedBorder:O.green},tooltip:{bg:"#49483E",fg:O.foreground},modal:{bg:O.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:O.foreground},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:O.backgroundLight,selectedBg:"#49483E",fg:O.foreground}},header:{default:{bg:O.backgroundLight,fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#5B5A4F"},success:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:O.yellow,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:O.orange},danger:{bg:O.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:O.backgroundLight,fg:O.comment},primary:{bg:O.green,fg:O.background},info:{bg:O.cyan,fg:O.background},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},page:{default:{bg:O.background,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.background,titleFg:O.green,subtitleFg:O.comment,border:O.green},secondary:{bg:O.background,titleFg:"#E8E8E2",subtitleFg:O.comment,border:"#49483E"}},appshell:{bg:O.backgroundDark,dividerFg:"#49483E",sidebarBg:O.background,asideBg:O.background},collapsible:{default:{headerBg:O.backgroundLight,headerFg:O.foreground,contentBg:O.background,border:"#49483E",iconFg:O.comment},primary:{headerBg:"#49483E",headerFg:O.green,contentBg:O.background,border:O.green,iconFg:O.green},secondary:{headerBg:"#49483E",headerFg:O.foreground,contentBg:O.backgroundLight,border:"#5B5A4F",iconFg:O.comment}},commandPalette:{bg:O.backgroundLight,border:"#49483E",inputBg:O.background,inputFg:O.foreground,inputPlaceholder:O.comment,itemFg:O.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:O.foreground,highlightFg:O.green,categoryFg:O.comment},splitPanel:{bg:O.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:O.green,border:"#49483E",titleFg:O.comment},toast:{success:{bg:ro.success[900],fg:ro.success[100],border:O.green,iconFg:O.green},error:{bg:ro.danger[900],fg:ro.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:ro.warning[900],fg:ro.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var A={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},no={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},r_={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:no,background:{lowest:"#21222C",base:A.background,subtle:A.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:A.comment,popover:A.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:A.foreground,secondary:"#E8E8E2",muted:A.comment,disabled:"#565869",inverse:{base:A.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:A.green,warning:A.yellow,critical:A.red,info:A.cyan,highlight:A.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:A.purple,ring:{color:A.purple,width:2}},disabled:{opacity:.4,bg:A.currentLine,fg:"#565869"},selected:{bg:A.currentLine,fg:A.foreground}},borders:{default:A.comment,subtle:A.currentLine,strong:A.purple,accent:A.purple,danger:A.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:A.purple,fg:A.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:A.currentLine,fg:A.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:A.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:A.purple},ghost:{bg:"transparent",fg:A.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:A.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:A.comment},menu:{bg:A.currentLine,border:A.comment,item:{fg:A.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:A.currentLine,border:A.comment,tab:{fg:A.comment,activeFg:A.foreground,activeBg:A.background,hoverFg:"#E8E8E2",indicator:A.purple}},dropdown:{bg:A.currentLine,border:A.comment,item:{fg:A.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:A.currentLine,fg:A.foreground,placeholder:A.comment,border:A.comment,focusBorder:A.purple,invalidBorder:A.red},checkbox:{bg:A.currentLine,border:A.comment,checkColor:A.foreground,checkedBg:A.purple},radio:{bg:A.currentLine,dotColor:A.purple,border:A.comment,checkedBorder:A.purple},tooltip:{bg:"#4D4F5F",fg:A.foreground},modal:{bg:A.currentLine,border:A.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:A.comment,fg:A.foreground},success:{bg:A.green,fg:A.background},warning:{bg:A.yellow,fg:A.background},danger:{bg:A.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:A.currentLine,selectedBg:"#4D4F5F",fg:A.foreground}},header:{default:{bg:A.currentLine,fg:A.foreground,titleFg:A.foreground,subtitleFg:A.comment,border:A.comment},primary:{bg:A.purple,fg:A.foreground,titleFg:A.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:A.foreground,titleFg:A.foreground,subtitleFg:A.comment,border:"#565869"},success:{bg:A.green,fg:A.background,titleFg:A.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:A.yellow,fg:A.background,titleFg:A.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:A.orange},danger:{bg:A.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:A.currentLine,fg:A.comment},primary:{bg:A.purple,fg:A.foreground},info:{bg:A.cyan,fg:A.background},success:{bg:A.green,fg:A.background},warning:{bg:A.yellow,fg:A.background},danger:{bg:A.red,fg:"#ffffff"}},page:{default:{bg:A.background,titleFg:A.foreground,subtitleFg:A.comment,border:A.comment},primary:{bg:A.background,titleFg:A.purple,subtitleFg:A.comment,border:A.purple},secondary:{bg:A.background,titleFg:"#E8E8E2",subtitleFg:A.comment,border:A.currentLine}},appshell:{bg:"#21222C",dividerFg:A.comment,sidebarBg:A.background,asideBg:A.background},collapsible:{default:{headerBg:A.currentLine,headerFg:A.foreground,contentBg:A.background,border:A.comment,iconFg:A.comment},primary:{headerBg:"#4D4F5F",headerFg:A.purple,contentBg:A.background,border:A.purple,iconFg:A.purple},secondary:{headerBg:"#4D4F5F",headerFg:A.foreground,contentBg:A.currentLine,border:"#565869",iconFg:A.comment}},commandPalette:{bg:A.currentLine,border:A.comment,inputBg:A.background,inputFg:A.foreground,inputPlaceholder:A.comment,itemFg:A.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:A.foreground,highlightFg:A.purple,categoryFg:A.comment},splitPanel:{bg:A.background,dividerBg:A.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:A.purple,border:A.comment,titleFg:A.comment},toast:{success:{bg:no.success[900],fg:no.success[100],border:A.green,iconFg:A.green},error:{bg:no.danger[900],fg:no.danger[100],border:A.red,iconFg:A.red},warning:{bg:no.warning[900],fg:no.warning[100],border:A.yellow,iconFg:A.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:A.cyan,iconFg:A.cyan}},window:{default:{bg:A.background,fg:A.foreground,titleBarBg:A.currentLine,titleBarFg:A.foreground,border:A.comment,buttonFg:A.comment,closeFg:A.red},primary:{bg:A.background,fg:A.foreground,titleBarBg:A.purple,titleBarFg:A.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:A.foreground},success:{bg:A.background,fg:A.foreground,titleBarBg:A.green,titleBarFg:A.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:A.background},warning:{bg:A.background,fg:A.foreground,titleBarBg:A.yellow,titleBarFg:A.background,border:A.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:A.background},danger:{bg:A.background,fg:A.foreground,titleBarBg:A.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={nord0:"#2E3440",nord1:"#3B4252",nord2:"#434C5E",nord3:"#4C566A",nord4:"#D8DEE9",nord5:"#E5E9F0",nord6:"#ECEFF4",nord7:"#8FBCBB",nord8:"#88C0D0",nord9:"#81A1C1",nord10:"#5E81AC",nord11:"#BF616A",nord12:"#D08770",nord13:"#EBCB8B",nord14:"#A3BE8C",nord15:"#B48EAD"},oo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:E.nord8,400:E.nord8,500:E.nord8,600:E.nord9,700:E.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:E.nord14,500:E.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:E.nord13,400:E.nord13,500:E.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:E.nord11,500:E.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:E.nord6,100:E.nord5,200:E.nord4,300:"#A3ADB8",400:"#7A8694",500:E.nord3,600:E.nord2,700:E.nord1,800:E.nord0,900:"#242933"}},n_={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:oo,background:{lowest:"#242933",base:E.nord0,subtle:E.nord1,surface:E.nord2,raised:E.nord3,elevated:"#5E6779",popover:E.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:E.nord6,secondary:E.nord5,muted:E.nord4,disabled:E.nord3,inverse:{base:E.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:E.nord14,warning:E.nord13,critical:E.nord11,info:E.nord9,highlight:E.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.nord8,ring:{color:E.nord8,width:2}},disabled:{opacity:.4,bg:E.nord1,fg:E.nord3},selected:{bg:E.nord1,fg:E.nord6}},borders:{default:E.nord3,subtle:E.nord1,strong:E.nord4,accent:E.nord8,danger:E.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:E.nord8,fg:E.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:E.nord2,fg:E.nord6,hoverBg:E.nord3,activeBg:E.nord1,border:"transparent"},outline:{bg:"transparent",fg:E.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:E.nord8},ghost:{bg:"transparent",fg:E.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.nord1,headerBg:E.nord2,footerBg:E.nord2,border:E.nord3},menu:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,activeBg:E.nord3,selectedBg:E.nord2,disabledFg:E.nord3}},tabs:{bg:E.nord1,border:E.nord3,tab:{fg:E.nord4,activeFg:E.nord6,activeBg:E.nord0,hoverFg:E.nord5,indicator:E.nord8}},dropdown:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,selectedBg:E.nord3}},input:{bg:E.nord1,fg:E.nord6,placeholder:E.nord4,border:E.nord3,focusBorder:E.nord8,invalidBorder:E.nord11},checkbox:{bg:E.nord1,border:E.nord3,checkColor:E.nord0,checkedBg:E.nord8},radio:{bg:E.nord1,dotColor:E.nord8,border:E.nord3,checkedBorder:E.nord8},tooltip:{bg:E.nord2,fg:E.nord6},modal:{bg:E.nord1,border:E.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:E.nord3,fg:E.nord6},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.nord1,selectedBg:E.nord2,fg:E.nord6}},header:{default:{bg:E.nord1,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord8,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:E.nord9},secondary:{bg:E.nord2,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},success:{bg:E.nord14,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:E.nord13,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:E.nord12},danger:{bg:E.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:E.nord1,fg:E.nord4},primary:{bg:E.nord8,fg:E.nord0},info:{bg:E.nord9,fg:"#ffffff"},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},page:{default:{bg:E.nord0,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord0,titleFg:E.nord8,subtitleFg:E.nord4,border:E.nord8},secondary:{bg:E.nord0,titleFg:E.nord5,subtitleFg:E.nord4,border:E.nord1}},appshell:{bg:"#242933",dividerFg:E.nord3,sidebarBg:E.nord0,asideBg:E.nord0},collapsible:{default:{headerBg:E.nord1,headerFg:E.nord6,contentBg:E.nord0,border:E.nord3,iconFg:E.nord4},primary:{headerBg:E.nord2,headerFg:E.nord8,contentBg:E.nord0,border:E.nord8,iconFg:E.nord8},secondary:{headerBg:E.nord2,headerFg:E.nord6,contentBg:E.nord1,border:E.nord3,iconFg:E.nord4}},commandPalette:{bg:E.nord1,border:E.nord3,inputBg:E.nord0,inputFg:E.nord6,inputPlaceholder:E.nord4,itemFg:E.nord6,itemHoverBg:E.nord2,itemSelectedBg:E.nord3,itemSelectedFg:E.nord6,highlightFg:E.nord8,categoryFg:E.nord4},splitPanel:{bg:E.nord0,dividerBg:E.nord3,dividerHoverBg:E.nord2,dividerActiveBg:E.nord8,border:E.nord3,titleFg:E.nord4},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:oo.danger[900],fg:oo.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:oo.warning[900],fg:oo.warning[100],border:E.nord13,iconFg:E.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.nord9,iconFg:E.nord9}},window:{default:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord1,titleBarFg:E.nord6,border:E.nord3,buttonFg:E.nord4,closeFg:E.nord11},primary:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord8,titleBarFg:E.nord0,border:E.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},success:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord14,titleBarFg:E.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},warning:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord13,titleBarFg:E.nord0,border:E.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},danger:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},so={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:S.blue,500:S.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:S.green,500:S.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:S.yellow,500:S.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.red,500:S.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.base3,100:S.base2,200:S.base1,300:S.base0,400:S.base00,500:S.base01,600:"#4A5A60",700:S.base02,800:S.base03,900:"#001E26"}},o_={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:so,background:{lowest:"#001E26",base:S.base03,subtle:S.base02,surface:"#094652",raised:"#0B5A66",elevated:S.base01,popover:S.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.base0,secondary:S.base1,muted:S.base00,disabled:S.base01,inverse:{base:S.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:S.green,warning:S.yellow,critical:S.red,info:S.cyan,highlight:S.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.blue,ring:{color:S.blue,width:2}},disabled:{opacity:.4,bg:S.base02,fg:S.base01},selected:{bg:S.base02,fg:S.base1}},borders:{default:S.base01,subtle:S.base02,strong:S.base0,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:S.base02,fg:S.base1,hoverBg:"#094652",activeBg:S.base03,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.base02,headerBg:"#094652",footerBg:"#094652",border:S.base01},menu:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:S.base01}},tabs:{bg:S.base02,border:S.base01,tab:{fg:S.base00,activeFg:S.base1,activeBg:S.base03,hoverFg:S.base0,indicator:S.blue}},dropdown:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:S.base02,fg:S.base0,placeholder:S.base00,border:S.base01,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.base02,border:S.base01,checkColor:S.base3,checkedBg:S.blue},radio:{bg:S.base02,dotColor:S.blue,border:S.base01,checkedBorder:S.blue},tooltip:{bg:"#094652",fg:S.base1},modal:{bg:S.base02,border:S.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.base01,fg:S.base1},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.base02,selectedBg:"#094652",fg:S.base0}},header:{default:{bg:S.base02,fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.blue,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:"#0B5A66"},success:{bg:S.green,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.base03,titleFg:S.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.base02,fg:S.base00},primary:{bg:S.blue,fg:S.base3},info:{bg:S.cyan,fg:S.base03},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.base03,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.base03,titleFg:S.blue,subtitleFg:S.base00,border:S.blue},secondary:{bg:S.base03,titleFg:S.base0,subtitleFg:S.base00,border:S.base02}},appshell:{bg:"#001E26",dividerFg:S.base01,sidebarBg:S.base03,asideBg:S.base03},collapsible:{default:{headerBg:S.base02,headerFg:S.base1,contentBg:S.base03,border:S.base01,iconFg:S.base00},primary:{headerBg:"#094652",headerFg:S.blue,contentBg:S.base03,border:S.blue,iconFg:S.blue},secondary:{headerBg:"#094652",headerFg:S.base1,contentBg:S.base02,border:"#0B5A66",iconFg:S.base00}},commandPalette:{bg:S.base02,border:S.base01,inputBg:S.base03,inputFg:S.base0,inputPlaceholder:S.base00,itemFg:S.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:S.base1,highlightFg:S.blue,categoryFg:S.base00},splitPanel:{bg:S.base03,dividerBg:S.base01,dividerHoverBg:"#094652",dividerActiveBg:S.blue,border:S.base01,titleFg:S.base00},toast:{success:{bg:so.success[900],fg:so.success[100],border:S.green,iconFg:S.green},error:{bg:so.danger[900],fg:so.danger[100],border:S.red,iconFg:S.red},warning:{bg:so.warning[900],fg:so.warning[100],border:S.yellow,iconFg:S.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.cyan,iconFg:S.cyan}},window:{default:{bg:S.base03,fg:S.base0,titleBarBg:S.base02,titleBarFg:S.base1,border:S.base01,buttonFg:S.base00,closeFg:S.red},primary:{bg:S.base03,fg:S.base0,titleBarBg:S.blue,titleBarFg:S.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},success:{bg:S.base03,fg:S.base0,titleBarBg:S.green,titleBarFg:S.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},warning:{bg:S.base03,fg:S.base0,titleBarBg:S.yellow,titleBarFg:S.base03,border:S.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:S.base03},danger:{bg:S.base03,fg:S.base0,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},io={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:Ue[50],100:Ue[100],200:Ue[200],300:Ue[300],400:Ue[400],500:Ue[500],600:Ue[600],700:Ue[700],800:Ue[800],900:Ue[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:_.red,500:_.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:_.fg0,100:_.fg1,200:_.fg2,300:_.fg3,400:_.fg4,500:_.gray,600:_.bg4,700:_.bg3,800:_.bg2,900:_.bg1}},s_={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:io,background:{lowest:_.bg0_h,base:_.bg0,subtle:_.bg1,surface:_.bg2,raised:_.bg3,elevated:_.bg4,popover:_.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.fg1,secondary:_.fg2,muted:_.gray,disabled:_.bg3,inverse:{base:_.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.blue,highlight:_.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.green,ring:{color:_.green,width:2}},disabled:{opacity:.4,bg:_.bg1,fg:_.bg3},selected:{bg:_.bg2,fg:_.fg1}},borders:{default:_.bg3,subtle:_.bg2,strong:_.gray,accent:_.green,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.green,fg:_.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:_.bg2,fg:_.fg1,hoverBg:_.bg3,activeBg:_.bg1,border:"transparent"},outline:{bg:"transparent",fg:_.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:_.green},ghost:{bg:"transparent",fg:_.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.bg1,headerBg:_.bg2,footerBg:_.bg2,border:_.bg3},menu:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,activeBg:_.bg3,selectedBg:_.bg2,disabledFg:_.bg3}},tabs:{bg:_.bg1,border:_.bg3,tab:{fg:_.gray,activeFg:_.fg1,activeBg:_.bg0,hoverFg:_.fg2,indicator:_.green}},dropdown:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,selectedBg:_.bg3}},input:{bg:_.bg1,fg:_.fg1,placeholder:_.gray,border:_.bg3,focusBorder:_.green,invalidBorder:_.red},checkbox:{bg:_.bg1,border:_.bg3,checkColor:_.bg0,checkedBg:_.green},radio:{bg:_.bg1,dotColor:_.green,border:_.bg3,checkedBorder:_.green},tooltip:{bg:_.bg2,fg:_.fg1},modal:{bg:_.bg1,border:_.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.bg3,fg:_.fg1},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.bg1,selectedBg:_.bg2,fg:_.fg1}},header:{default:{bg:_.bg1,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:_.bg2,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},success:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:_.yellow,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:_.orange},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:_.bg1,fg:_.gray},primary:{bg:_.green,fg:_.bg0},info:{bg:_.blue,fg:_.bg0},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.bg0,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.bg0,titleFg:_.green,subtitleFg:_.gray,border:_.green},secondary:{bg:_.bg0,titleFg:_.fg2,subtitleFg:_.gray,border:_.bg2}},appshell:{bg:_.bg0_h,dividerFg:_.bg3,sidebarBg:_.bg0,asideBg:_.bg0},collapsible:{default:{headerBg:_.bg1,headerFg:_.fg1,contentBg:_.bg0,border:_.bg3,iconFg:_.gray},primary:{headerBg:_.bg2,headerFg:_.green,contentBg:_.bg0,border:_.green,iconFg:_.green},secondary:{headerBg:_.bg2,headerFg:_.fg1,contentBg:_.bg1,border:_.bg3,iconFg:_.gray}},commandPalette:{bg:_.bg1,border:_.bg3,inputBg:_.bg0,inputFg:_.fg1,inputPlaceholder:_.gray,itemFg:_.fg1,itemHoverBg:_.bg2,itemSelectedBg:_.bg3,itemSelectedFg:_.fg1,highlightFg:_.green,categoryFg:_.gray},splitPanel:{bg:_.bg0,dividerBg:_.bg3,dividerHoverBg:_.bg2,dividerActiveBg:_.green,border:_.bg3,titleFg:_.gray},toast:{success:{bg:io.success[900],fg:io.success[100],border:_.green,iconFg:_.green},error:{bg:io.danger[900],fg:io.danger[100],border:_.red,iconFg:_.red},warning:{bg:io.warning[900],fg:io.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.blue,iconFg:_.blue}},window:{default:{bg:_.bg0,fg:_.fg1,titleBarBg:_.bg1,titleBarFg:_.fg1,border:_.bg3,buttonFg:_.gray,closeFg:_.red},primary:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},success:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},warning:{bg:_.bg0,fg:_.fg1,titleBarBg:_.yellow,titleBarFg:_.bg0,border:_.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},danger:{bg:_.bg0,fg:_.fg1,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={bg:"#1A1B26",bgDark:"#16161E",bgHighlight:"#24283B",bgPopup:"#2F3549",fg:"#A9B1D6",fgDark:"#9AA5CE",blue:"#7AA2F7",cyan:"#7DCFFF",green:"#9ECE6A",magenta:"#BB9AF7",orange:"#FF9E64",purple:"#9D7CD8",red:"#F7768E",teal:"#73DACA",yellow:"#E0AF68",comment:"#565F89",dark3:"#414868",dark5:"#737AA2"},ao={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:v.blue,500:v.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:v.green,500:v.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:v.yellow,500:v.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:v.red,500:v.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},i_={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:ao,background:{lowest:v.bgDark,base:v.bg,subtle:v.bgHighlight,surface:v.bgPopup,raised:v.dark3,elevated:v.comment,popover:v.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:v.fg,secondary:v.fgDark,muted:v.comment,disabled:v.dark3,inverse:{base:v.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:v.green,warning:v.yellow,critical:v.red,info:v.cyan,highlight:v.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.blue,ring:{color:v.blue,width:2}},disabled:{opacity:.4,bg:v.bgHighlight,fg:v.dark3},selected:{bg:v.bgHighlight,fg:v.fg}},borders:{default:v.dark3,subtle:v.bgHighlight,strong:v.comment,accent:v.blue,danger:v.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:v.blue,fg:v.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:v.bgHighlight,fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,border:"transparent"},outline:{bg:"transparent",fg:v.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:v.blue},ghost:{bg:"transparent",fg:v.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.bgHighlight,headerBg:v.bgPopup,footerBg:v.bgPopup,border:v.dark3},menu:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,selectedBg:v.bgPopup,disabledFg:v.dark3}},tabs:{bg:v.bgHighlight,border:v.dark3,tab:{fg:v.comment,activeFg:v.fg,activeBg:v.bg,hoverFg:v.fgDark,indicator:v.blue}},dropdown:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,selectedBg:v.dark3}},input:{bg:v.bgHighlight,fg:v.fg,placeholder:v.comment,border:v.dark3,focusBorder:v.blue,invalidBorder:v.red},checkbox:{bg:v.bgHighlight,border:v.dark3,checkColor:v.bg,checkedBg:v.blue},radio:{bg:v.bgHighlight,dotColor:v.blue,border:v.dark3,checkedBorder:v.blue},tooltip:{bg:v.bgPopup,fg:v.fg},modal:{bg:v.bgHighlight,border:v.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:v.dark3,fg:v.fg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.bgHighlight,selectedBg:v.bgPopup,fg:v.fg}},header:{default:{bg:v.bgHighlight,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.blue,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:v.bgPopup,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},success:{bg:v.green,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:v.yellow,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:v.orange},danger:{bg:v.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:v.bgHighlight,fg:v.comment},primary:{bg:v.blue,fg:v.bg},info:{bg:v.cyan,fg:v.bg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},page:{default:{bg:v.bg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.bg,titleFg:v.blue,subtitleFg:v.comment,border:v.blue},secondary:{bg:v.bg,titleFg:v.fgDark,subtitleFg:v.comment,border:v.bgHighlight}},appshell:{bg:v.bgDark,dividerFg:v.dark3,sidebarBg:v.bg,asideBg:v.bg},collapsible:{default:{headerBg:v.bgHighlight,headerFg:v.fg,contentBg:v.bg,border:v.dark3,iconFg:v.comment},primary:{headerBg:v.bgPopup,headerFg:v.blue,contentBg:v.bg,border:v.blue,iconFg:v.blue},secondary:{headerBg:v.bgPopup,headerFg:v.fg,contentBg:v.bgHighlight,border:v.dark3,iconFg:v.comment}},commandPalette:{bg:v.bgHighlight,border:v.dark3,inputBg:v.bg,inputFg:v.fg,inputPlaceholder:v.comment,itemFg:v.fg,itemHoverBg:v.bgPopup,itemSelectedBg:v.dark3,itemSelectedFg:v.fg,highlightFg:v.blue,categoryFg:v.comment},splitPanel:{bg:v.bg,dividerBg:v.dark3,dividerHoverBg:v.bgPopup,dividerActiveBg:v.blue,border:v.dark3,titleFg:v.comment},toast:{success:{bg:ao.success[900],fg:ao.success[100],border:v.green,iconFg:v.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:v.red,iconFg:v.red},warning:{bg:ao.warning[900],fg:ao.warning[100],border:v.yellow,iconFg:v.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.cyan,iconFg:v.cyan}},window:{default:{bg:v.bg,fg:v.fg,titleBarBg:v.bgHighlight,titleBarFg:v.fg,border:v.dark3,buttonFg:v.comment,closeFg:v.red},primary:{bg:v.bg,fg:v.fg,titleBarBg:v.blue,titleBarFg:v.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},success:{bg:v.bg,fg:v.fg,titleBarBg:v.green,titleBarFg:v.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},warning:{bg:v.bg,fg:v.fg,titleBarBg:v.yellow,titleBarFg:v.bg,border:v.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},danger:{bg:v.bg,fg:v.fg,titleBarBg:v.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},lo={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:x.mauve,500:x.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.green,500:x.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:x.yellow,500:x.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:x.red,500:x.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:x.text,100:x.subtext1,200:x.subtext0,300:x.overlay2,400:x.overlay1,500:x.overlay0,600:x.surface2,700:x.surface1,800:x.surface0,900:x.base}},a_={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:lo,background:{lowest:x.crust,base:x.base,subtle:x.surface0,surface:x.surface1,raised:x.surface2,elevated:x.overlay0,popover:x.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.text,secondary:x.subtext1,muted:x.overlay0,disabled:x.surface2,inverse:{base:x.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.sky,highlight:x.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.mauve,ring:{color:x.mauve,width:2}},disabled:{opacity:.4,bg:x.surface0,fg:x.surface2},selected:{bg:x.surface0,fg:x.text}},borders:{default:x.overlay0,subtle:x.surface1,strong:x.subtext1,accent:x.mauve,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.mauve,fg:x.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:x.surface0,fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,border:"transparent"},outline:{bg:"transparent",fg:x.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:x.mauve},ghost:{bg:"transparent",fg:x.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.surface0,headerBg:x.surface1,footerBg:x.surface1,border:x.overlay0},menu:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,selectedBg:x.surface1,disabledFg:x.surface2}},tabs:{bg:x.surface0,border:x.overlay0,tab:{fg:x.overlay0,activeFg:x.text,activeBg:x.base,hoverFg:x.subtext1,indicator:x.mauve}},dropdown:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,selectedBg:x.surface2}},input:{bg:x.surface0,fg:x.text,placeholder:x.overlay0,border:x.overlay0,focusBorder:x.mauve,invalidBorder:x.red},checkbox:{bg:x.surface0,border:x.overlay0,checkColor:x.base,checkedBg:x.mauve},radio:{bg:x.surface0,dotColor:x.mauve,border:x.overlay0,checkedBorder:x.mauve},tooltip:{bg:x.surface1,fg:x.text},modal:{bg:x.surface0,border:x.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.surface2,fg:x.text},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.surface0,selectedBg:x.surface1,fg:x.text}},header:{default:{bg:x.surface0,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.mauve,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:x.surface1,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.surface2},success:{bg:x.green,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:x.yellow,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:x.peach},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:x.surface0,fg:x.overlay0},primary:{bg:x.mauve,fg:x.base},info:{bg:x.sky,fg:x.base},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.base,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.base,titleFg:x.mauve,subtitleFg:x.overlay0,border:x.mauve},secondary:{bg:x.base,titleFg:x.subtext1,subtitleFg:x.overlay0,border:x.surface0}},appshell:{bg:x.crust,dividerFg:x.overlay0,sidebarBg:x.base,asideBg:x.base},collapsible:{default:{headerBg:x.surface0,headerFg:x.text,contentBg:x.base,border:x.overlay0,iconFg:x.overlay0},primary:{headerBg:x.surface1,headerFg:x.mauve,contentBg:x.base,border:x.mauve,iconFg:x.mauve},secondary:{headerBg:x.surface1,headerFg:x.text,contentBg:x.surface0,border:x.surface2,iconFg:x.overlay0}},commandPalette:{bg:x.surface0,border:x.overlay0,inputBg:x.base,inputFg:x.text,inputPlaceholder:x.overlay0,itemFg:x.text,itemHoverBg:x.surface1,itemSelectedBg:x.surface2,itemSelectedFg:x.text,highlightFg:x.mauve,categoryFg:x.overlay0},splitPanel:{bg:x.base,dividerBg:x.overlay0,dividerHoverBg:x.surface1,dividerActiveBg:x.mauve,border:x.overlay0,titleFg:x.overlay0},toast:{success:{bg:lo.success[900],fg:lo.success[100],border:x.green,iconFg:x.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:x.red,iconFg:x.red},warning:{bg:lo.warning[900],fg:lo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.sky,iconFg:x.sky}},window:{default:{bg:x.base,fg:x.text,titleBarBg:x.surface0,titleBarFg:x.text,border:x.overlay0,buttonFg:x.overlay0,closeFg:x.red},primary:{bg:x.base,fg:x.text,titleBarBg:x.mauve,titleBarFg:x.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},success:{bg:x.base,fg:x.text,titleBarBg:x.green,titleBarFg:x.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},warning:{bg:x.base,fg:x.text,titleBarBg:x.yellow,titleBarFg:x.base,border:x.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},danger:{bg:x.base,fg:x.text,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var co={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},l_={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:co,background:{lowest:"#000000",base:"#000000",subtle:m[950],surface:m[900],raised:m[800],elevated:m[700],popover:m[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:m[100],muted:m[300],disabled:m[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:he[400],warning:ge[400],critical:ue[400],info:Xe[400],highlight:te[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:te[400],ring:{color:te[400],width:3}},disabled:{opacity:.5,bg:m[900],fg:m[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:m[500],subtle:m[700],strong:m[300],accent:te[400],danger:ue[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:te[500],fg:"#ffffff",hoverBg:te[400],activeBg:te[600],border:te[300]},secondary:{bg:m[800],fg:"#ffffff",hoverBg:m[700],activeBg:m[900],border:m[500]},outline:{bg:"transparent",fg:te[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:te[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:m[950],headerBg:m[900],footerBg:m[900],border:m[500]},menu:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],activeBg:te[800],selectedBg:te[900],disabledFg:m[500]}},tabs:{bg:m[950],border:m[500],tab:{fg:m[300],activeFg:"#ffffff",activeBg:m[800],hoverFg:m[100],indicator:te[400]}},dropdown:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:m[400],border:m[500],focusBorder:te[400],invalidBorder:ue[400]},checkbox:{bg:"#000000",border:m[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:m[400],checkedBorder:te[400]},tooltip:{bg:m[800],fg:"#ffffff"},modal:{bg:m[950],border:m[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:m[700],fg:"#ffffff"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:m[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:m[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:m[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},success:{bg:he[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:he[300]},warning:{bg:ge[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[600]},danger:{bg:ue[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ue[300]}},statusbar:{default:{bg:m[950],fg:m[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Xe[500],fg:"#000000"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:m[300],border:te[400]},secondary:{bg:"#000000",titleFg:m[100],subtitleFg:m[400],border:m[700]}},appshell:{bg:"#000000",dividerFg:m[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:m[950],headerFg:"#ffffff",contentBg:"#000000",border:m[500],iconFg:m[300]},primary:{headerBg:m[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:m[900],headerFg:"#ffffff",contentBg:m[950],border:m[500],iconFg:m[300]}},commandPalette:{bg:m[950],border:m[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:m[400],itemFg:"#ffffff",itemHoverBg:m[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:m[400]},splitPanel:{bg:"#000000",dividerBg:m[500],dividerHoverBg:m[400],dividerActiveBg:te[400],border:m[500],titleFg:m[300]},toast:{success:{bg:co.success[900],fg:co.success[100],border:he[400],iconFg:he[400]},error:{bg:co.danger[900],fg:co.danger[100],border:ue[400],iconFg:ue[400]},warning:{bg:co.warning[900],fg:co.warning[100],border:ge[400],iconFg:ge[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Xe[400],iconFg:Xe[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:m[950],titleBarFg:"#ffffff",border:m[500],buttonFg:m[300],closeFg:ue[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:te[500],titleBarFg:"#ffffff",border:te[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:he[500],titleBarFg:"#000000",border:he[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[400],titleBarFg:"#000000",border:ge[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ue[500],titleBarFg:"#ffffff",border:ue[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var zL={primary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},warning:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},danger:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},d_={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:zL,background:{lowest:m[950],base:m[900],subtle:m[800],surface:m[700],raised:m[600],elevated:m[500],popover:m[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:m[50],secondary:m[200],muted:m[400],disabled:m[500],inverse:{base:m[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:m[300],warning:m[400],critical:m[200],info:m[300],highlight:m[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:m[400],ring:{color:m[400],width:2}},disabled:{opacity:.4,bg:m[800],fg:m[500]},selected:{bg:m[700],fg:m[50]}},borders:{default:m[600],subtle:m[700],strong:m[400],accent:m[400],danger:m[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:m[300],fg:m[900],hoverBg:m[200],activeBg:m[400],border:"transparent"},secondary:{bg:m[700],fg:m[50],hoverBg:m[600],activeBg:m[800],border:"transparent"},outline:{bg:"transparent",fg:m[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:m[400]},ghost:{bg:"transparent",fg:m[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:m[800],headerBg:m[700],footerBg:m[700],border:m[600]},menu:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],activeBg:m[600],selectedBg:m[700],disabledFg:m[500]}},tabs:{bg:m[800],border:m[600],tab:{fg:m[400],activeFg:m[50],activeBg:m[700],hoverFg:m[200],indicator:m[300]}},dropdown:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],selectedBg:m[600]}},input:{bg:m[800],fg:m[50],placeholder:m[500],border:m[600],focusBorder:m[400],invalidBorder:m[300]},checkbox:{bg:m[800],border:m[500],checkColor:m[900],checkedBg:m[300]},radio:{bg:m[800],dotColor:m[300],border:m[500],checkedBorder:m[300]},tooltip:{bg:m[700],fg:m[50]},modal:{bg:m[800],border:m[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:m[700],fg:m[50]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},list:{item:{bg:"transparent",hoverBg:m[800],selectedBg:m[700],fg:m[50]}},header:{default:{bg:m[800],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]},secondary:{bg:m[700],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},success:{bg:m[400],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[500]},warning:{bg:m[500],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[600]},danger:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]}},statusbar:{default:{bg:m[800],fg:m[400]},primary:{bg:m[300],fg:m[900]},info:{bg:m[400],fg:m[900]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},page:{default:{bg:m[900],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[900],titleFg:m[200],subtitleFg:m[400],border:m[500]},secondary:{bg:m[900],titleFg:m[300],subtitleFg:m[500],border:m[700]}},appshell:{bg:m[950],dividerFg:m[600],sidebarBg:m[900],asideBg:m[900]},collapsible:{default:{headerBg:m[800],headerFg:m[50],contentBg:m[900],border:m[600],iconFg:m[400]},primary:{headerBg:m[700],headerFg:m[200],contentBg:m[900],border:m[500],iconFg:m[300]},secondary:{headerBg:m[700],headerFg:m[50],contentBg:m[800],border:m[600],iconFg:m[400]}},commandPalette:{bg:m[800],border:m[600],inputBg:m[900],inputFg:m[50],inputPlaceholder:m[500],itemFg:m[50],itemHoverBg:m[700],itemSelectedBg:m[600],itemSelectedFg:m[50],highlightFg:m[200],categoryFg:m[500]},splitPanel:{bg:m[900],dividerBg:m[600],dividerHoverBg:m[500],dividerActiveBg:m[300],border:m[600],titleFg:m[400]},toast:{success:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]},error:{bg:m[800],fg:m[100],border:m[300],iconFg:m[200]},warning:{bg:m[800],fg:m[100],border:m[500],iconFg:m[400]},info:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]}},window:{default:{bg:m[900],fg:m[50],titleBarBg:m[800],titleBarFg:m[50],border:m[600],buttonFg:m[400],closeFg:m[300]},primary:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},success:{bg:m[900],fg:m[50],titleBarBg:m[400],titleBarFg:m[900],border:m[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},warning:{bg:m[900],fg:m[50],titleBarBg:m[500],titleBarFg:m[900],border:m[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},danger:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]}}},borderRadius:"none"};var u_=Symbol("tuiuiu.theme-runtime-state");function c_(){let[e,t]=gr(Kp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function JL(e){if(e.id===0)return c_();let t=It(u_,c_),[r,n]=gr(ds(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function p_(){let e=We();return Oe(u_,()=>JL(e),e)}function f_(){return ds(p_().currentTheme)}var YL={dark:Kp,light:e_,monokai:t_,dracula:r_,nord:n_,solarizedDark:o_,gruvbox:s_,tokyoNight:i_,catppuccin:a_,highContrastDark:l_,monochrome:d_},M9=Object.keys(YL);function QL(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function Rt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&QL(e)>.4?"black":"white"}function XL(e,t=500){let r=ZR[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var ZL={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>Rt(e.palette.primary[500]),"primary-foreground":e=>Rt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>Rt(e.palette.secondary[500]),"secondary-foreground":e=>Rt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>Rt(e.accents.positive),"success-foreground":e=>Rt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>Rt(e.accents.warning),"warning-foreground":e=>Rt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>Rt(e.accents.critical),"danger-foreground":e=>Rt(e.accents.critical),errorForeground:e=>Rt(e.accents.critical),destructiveForeground:e=>Rt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>Rt(e.accents.info),"info-foreground":e=>Rt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>Rt(e.palette.primary[400]),"accent-foreground":e=>Rt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function g_(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=ds(p_().currentTheme),r=ZL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return XL(o,i)}return e}var ej={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},h_=Symbol("tuiuiu.perf-inspector-runtime-state");function tj(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function m_(e){let t=e.id===0?null:It(h_,()=>m_(Ir())),r=tj(t?.config??ej);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function b_(){let e=We();return Oe(h_,()=>m_(e),e)}function rj(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function nj(e,t){let r=ij().slice(-t);e.ring=new Array(t),e.start=0,e.count=r.length;for(let n=0;n<r.length;n++)e.ring[n]=r[n]}function oj(e,t){e.ring.length!==e.config.maxFrames&&nj(e,e.config.maxFrames);let r=(e.start+e.count)%e.ring.length;if(e.ring[r]=t,e.count<e.ring.length){e.count++;return}e.start=(e.start+1)%e.ring.length}function sj(e,t){let r={};if(!t)return r;for(let[n,o]of Object.entries(t)){if(!Number.isFinite(o)||o<0)continue;let s=e[n];if(typeof s!="number")continue;let i=s-o;i>0&&(r[n]=i)}return r}function y_(e,t={}){let r=b_(),n=rj(e),o=Math.max(0,n-r.config.budget.frameMs),s=sj(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;hR({totalMs:n,overBudget:o>0,phaseOverrunCount:i});let l={frameId:e.info.frameId,committedAt:e.info.committedAt,renderer:t.renderer??(e.metrics.phases.deltaRenderMs!==void 0?"delta":"ansi"),totalMs:n,budgetOverrunMs:o,phaseBudgetOverruns:s,overBudgetPhaseCount:i,slow:a,phases:{...e.metrics.phases},structural:{...e.metrics.structural}};if(!r.config.enabled)return null;if(oj(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function ij(){let e=b_(),t=[];for(let r=0;r<e.count;r++){let n=e.ring[(e.start+r)%e.ring.length];n&&t.push(n)}return t}var aj={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function uo(e,t){return SR(e,t,aj)}function Vp(e){TR(e)}function Sn(e,t){CR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),y_(e,{renderer:t.renderer})}var lj=.4,dj=64;function po(){return typeof performance<"u"?performance.now():Date.now()}var k_=new WeakMap;function cj(){let e=f_(),t=k_.get(e);return t||(t=new Map,k_.set(e,t)),t}function uj(e,t){return e.type!==t.type||e.order!==t.order||e.zIndex!==t.zIndex||e.id!==t.id||e.nodeType!==t.nodeType||e.clip?.x!==t.clip?.x||e.clip?.y!==t.clip?.y||e.clip?.width!==t.clip?.width||e.clip?.height!==t.clip?.height?!1:e.type==="box"&&t.type==="box"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.backgroundColor===t.backgroundColor&&e.fillChar===t.fillChar&&e.borderStyle===t.borderStyle&&e.borderColor===t.borderColor&&e.borderText===t.borderText&&e.borderTextAlign===t.borderTextAlign&&e.borderTextColor===t.borderTextColor&&e.borderTextBold===t.borderTextBold&&e.borderSides?.top===t.borderSides?.top&&e.borderSides?.bottom===t.borderSides?.bottom&&e.borderSides?.left===t.borderSides?.left&&e.borderSides?.right===t.borderSides?.right:e.type==="text"&&t.type==="text"?e.x===t.x&&e.y===t.y&&e.maxWidth===t.maxWidth&&e.text===t.text&&e.inheritedBackgroundColor===t.inheritedBackgroundColor&&pj(e.style,t.style):e.type==="terminal-image"&&t.type==="terminal-image"?e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height&&e.protocol===t.protocol&&e.fit===t.fit&&e.threshold===t.threshold&&e.dither===t.dither&&e.preserveAspectRatio===t.preserveAspectRatio&&e.cellRender===t.cellRender&&e.source.hash===t.source.hash:!1}function pj(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o of r)if(e[o]!==t[o])return!1;return!0}function __(e,t){return!(e.x+e.width<=t.x||t.x+t.width<=e.x||e.y+e.height<=t.y||t.y+t.height<=e.y)}function x_(e,t,r){let n=Math.max(0,e.x),o=Math.max(0,e.y),s=Math.min(t,e.x+e.width),i=Math.min(r,e.y+e.height);return s<=n||i<=o?null:{x:n,y:o,width:s-n,height:i-o}}function fj(e,t,r){let n=e.map(s=>x_(s,t,r)).filter(s=>s!==null).sort((s,i)=>s.y-i.y||s.x-i.x);if(n.length<=1)return n;let o=[];for(let s of n){let i=o[o.length-1];if(!i){o.push({...s});continue}if(!(__(i,s)||s.y<=i.y+i.height&&s.x<=i.x+i.width)){o.push({...s});continue}let l=Math.min(i.x,s.x),d=Math.min(i.y,s.y),c=Math.max(i.x+i.width,s.x+s.width),u=Math.max(i.y+i.height,s.y+s.height);i.x=l,i.y=d,i.width=c-l,i.height=u-d}return o}function gj(e,t,r){let n=new Map;for(let i of e){let a=x_(i,t,r);if(!a)continue;let l=a.x,d=a.x+a.width,c=a.y+a.height;for(let u=a.y;u<c;u++){let p=n.get(u);p?p.push({x1:l,x2:d}):n.set(u,[{x1:l,x2:d}])}}let o=[...n.keys()].sort((i,a)=>i-a),s=[];for(let i of o){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1}),l=c}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1})}return s}function E_(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new Pi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function h(I){H(t.columns||80,t.rows||24);let W=uo(I,{width:s,height:i});R(W)}function R(I){H(I.info.viewport.width,I.info.viewport.height),G(I),rs(I.layout),ui(),c=I.root,u=I}function T(){l=!0,c?h(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Pi(s,i),l=!0}function D(){!r&&d&&(us(t),d=!1)}function M(){let I=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:y,totalCells:I,updatePercentage:I>0?y/I*100:0}}function N(I,W){s=I,i=W,a.resize(s,i),l=!0}function H(I,W){!r&&!d&&(ps(t),d=!0),(I!==s||W!==i)&&N(I,W)}function G(I){let W=po(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=Ej(u,I),Ae=Br(),Ee=JR(Ae),ke=YR(Ae),Y=Re=>{let De=po();t.write(Re),q+=po()-De,oe+=typeof Re=="string"?Buffer.byteLength(Re):Re.byteLength};if(!l&&n&&u){let{renderRects:Re,diffRects:De}=mj(u.drawCommands,I.drawCommands,s,i);if(Ct(I,"dirtyRectCount",Re.length),Ct(I,"diffRectCount",De.length),Re.length===0){pe&&Y(pe),y=0,Ct(I,"patchCount",0),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}let ve=bj(Re);if(!(Re.length>dj||ve>Z*lj)){Ee&&Y(Ee),yj(se,Re),wj(I.drawCommands,Re,se,I.reservedRegions);let Se=ae.diffRects(se,De);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,Ct(I,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${Re.length}, patches: ${Se.length}, cells: ${Z}`),pe&&Y(pe),Se.length>0){let fe=Wp(Se,s,!0);Y(fe),g++}ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}}Ee&&Y(Ee),se.clear(),T_(I.drawCommands,se,I.reservedRegions);let de=a.swap();if(y=de.length,Ct(I,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let Re=Ll(a.getFrontBuffer());pe&&Y(pe),Y("\x1B[H"),Y(Re),f++,l=!1,ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}if(pe&&Y(pe),de.length>0){let Re=Wp(de,s,!0);Y(Re),g++}l=!1,ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"})}return{render:h,renderFrame:R,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function hj(e){if(e.maxWidth<=0||e.text.length===0)return{x:e.x,y:e.y,width:0,height:0};let t=0,r=-1,n=Yn(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,ye(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function zp(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:hj(e);if(!e.clip)return t;let r=Math.max(t.x,e.clip.x),n=Math.max(t.y,e.clip.y),o=Math.min(t.x+t.width,e.clip.x+e.clip.width),s=Math.min(t.y+t.height,e.clip.y+e.clip.height);return{x:r,y:n,width:Math.max(0,o-r),height:Math.max(0,s-n)}}function mj(e,t,r,n){let o=[],s=Math.max(e.length,t.length);for(let i=0;i<s;i++){let a=e[i],l=t[i];a&&l&&uj(a,l)||(a&&o.push(zp(a)),l&&o.push(zp(l)))}return{renderRects:fj(o,r,n),diffRects:gj(o,r,n)}}function bj(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function yj(e,t){let r=$r();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function v_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function br(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,ye(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||v_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function kj(e,t,r,n,o,s,i,a,l={},d){for(let c=0;c<o;c++)(!d||r+c>=d.x&&r+c<d.x+d.width&&n>=d.y&&n<d.y+d.height)&&!v_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function S_(e,t,r){switch(e.type){case"box":Rj(e,t,r);break;case"text":O_(e,t,r);break;case"terminal-image":_j(e,t);break}}function wj(e,t,r,n){for(let o of e){let s=zp(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(__(s,i)){S_(o,r,n);break}}}}function T_(e,t,r){for(let n of e)S_(n,t,r)}function P_(e,t=new Nr(e.info.viewport.width,e.info.viewport.height)){return T_(e.drawCommands,t,e.reservedRegions),t}function Rj(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:y,clip:h}=e,R=a?fo(a):void 0,T=c?fo(c):void 0,$=f?fo(f):T;if(R||l!==" "){let D=d&&d!=="none"?1:0,M=n+D,N=o+D,H=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let I=0;I<G;I++)kj(t,r,M,N+I,H,l,void 0,R,{},h)}if(d&&d!=="none"){let D=Hp[d]??Hp.single,M={},N=u?.top!==!1,H=u?.bottom!==!1,G=u?.left!==!1,I=u?.right!==!1;if(N){let W=G?D.topLeft:D.top;br(t,r,n,o,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o,D.top,T,void 0,M,h);if(s>1){let q=I?D.topRight:D.top;br(t,r,n+s-1,o,q,T,void 0,M,h)}if(p&&s>4){let q=s-4,ae=` ${Qr(Uk(p),q,{truncationCharacter:""})} `,se=ye(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ae=0,Ee=pe;for(;Ae<ae.length&&Ee<n+s-1;){let ke=Jn(ae,Ae);if(!ke)break;Ae=ke.nextIndex;let Y=ye(ke.symbol);Y<=0||Ee+Y>n+s-1||(br(t,r,Ee,o,ke.symbol,$,void 0,y?{...M,bold:!0}:M,h),Ee+=Y)}}}for(let W=1;W<i-1;W++)G&&br(t,r,n,o+W,D.left,T,void 0,M,h),I&&s>1&&br(t,r,n+s-1,o+W,D.right,T,void 0,M,h);if(H&&i>1){let W=G?D.bottomLeft:D.bottom;br(t,r,n,o+i-1,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o+i-1,D.bottom,T,void 0,M,h);if(s>1){let q=I?D.bottomRight:D.bottom;br(t,r,n+s-1,o+i-1,q,T,void 0,M,h)}}}}function _j(e,t){e.cellRender&&O_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:D_(e),style:{},clip:e.clip},t,[])}function A_(e){let t={width:e.width,height:e.height,fit:e.fit,threshold:e.threshold,dither:e.dither,preserveAspectRatio:e.preserveAspectRatio};return e.protocol==="kitty"&&e.kittyImageId?{...t,imageId:e.kittyImageId}:t}function C_(e){let t=A_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function Ai(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${C_(e)}:${e.x}:${e.y}`)}function fs(e){return[Ai(e),e.x,e.y,C_(e)].join(":")}function D_(e){let t=A_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:El(e.protocol,e.source,t)}function w_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender&&(!t.clip||t.x>=t.clip.x&&t.y>=t.clip.y&&t.x+t.width<=t.clip.x+t.clip.width&&t.y+t.height<=t.clip.y+t.clip.height)):[]}function xj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ai(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ai(s));if(!i||fs(s)!==fs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=as.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${vl("kitty")}\x1B8`}}return o}function Ej(e,t){let r=w_(e),n=w_(t),o=r.map(fs).join("|"),s=n.map(fs).join("|");if(e&&o===s)return"";let i=xj(r,n),a=new Map(r.map(l=>[Ai(l),l]));for(let l of n){let d=a.get(Ai(l));d&&fs(d)===fs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=D_(l),i+="\x1B8")}return i}function gs(e){if(e===void 0||!/^\d{1,3}$/u.test(e))return null;let t=Number(e);return t>=0&&t<=255?t:null}function vj(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=gs(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(gs);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function Sj(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=gs(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[gs(e[t+2]),gs(e[t+3]),gs(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var R_={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function Tj(e,t,r,n={}){let o=[],s=t,i=r,a={...n},l="",d=0;for(;d<e.length;){if(e[d]==="\x1B"){let c=zn(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let y=p[g].split(":"),h=Number(y[0]||0);if(y.length>1){if(h===4){let R=Number(y[1]||0);R in R_&&(a.underline=R_[R])}else if(h===38||h===48||h===58){let R=vj(y);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R)}continue}if(h===0)s=t,i=r,a={...n};else if(h===1)a.bold=!0;else if(h===2)a.dim=!0;else if(h===3)a.italic=!0;else if(h===4)a.underline=!0;else if(h===5)a.blink=!0;else if(h===7)a.inverse=!0;else if(h===8)a.hidden=!0;else if(h===9)a.strikethrough=!0;else if(h===21)a.underline="double";else if(h===22)a.bold=!1,a.dim=!1;else if(h===23)a.italic=!1;else if(h===24)a.underline=!1;else if(h===25)a.blink=!1;else if(h===27)a.inverse=!1;else if(h===28)a.hidden=!1;else if(h===29)a.strikethrough=!1;else if(h>=30&&h<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][h-30];else if(h===39)s=t;else if(h>=40&&h<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][h-40];else if(h===49)i=r;else if(h===59)a.underlineColor=n.underlineColor;else if(h>=90&&h<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-90];else if(h>=100&&h<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-100];else if(h===38||h===48||h===58){let{color:R,consumed:T}=Sj(p,g);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function O_(e,t,r){let{x:n,y:o,maxWidth:s,text:i,style:a,inheritedBackgroundColor:l}=e;if(s<=0)return;let d=e.prebuiltAnsi===!0,c=d?void 0:a.color?fo(a.color):void 0,u=d?void 0:a.backgroundColor?fo(a.backgroundColor):l?fo(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?fo(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Yn(i,s,a.wrap);if(g){let y=Tj(f.join(`
|
|
194
|
+
`):ie;Se.push({type:"text",id:I,nodeType:i.type,compositorKeys:h.length>0?[...h]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Fe,style:{color:f.color,backgroundColor:f.backgroundColor,bold:f.bold,dim:f.dim,italic:f.italic,underline:f.underline,strikethrough:f.strikethrough,inverse:f.inverse,wrap:f.wrap},inheritedBackgroundColor:n,clip:s,...f.__prebuiltAnsi?{prebuiltAnsi:!0}:void 0})}T&&Se.push({...T,compositorKeys:h.length>0?[...h]:void 0,clip:s});for(let ie of q)oL(Se,ie.commands);Qn("draw");let fe=_R(e,D,G,Se,R,ve);return rL(ve,fe.commands,R),{commands:fe.commands,hasCompositor:R,subtreeSignature:ve}}function dL(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 cL(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=dL(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function uL(e){let t=TR(e),r=Dl.get(e),n=ER(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=ZM(t.commands),s=t.hasCompositor?wR(o,SR(e)):o,i=cL(s),a=Dl.get(e);return a&&(a.materialized=i,a.materializedSignature=n),nL(t.subtreeSignature,i,n),i}function PR(e,t,r={}){let n=GM(r),o=NM(t),s=Date.now(),i=En(),a=En(),l=lw(e,o.width,o.height),d=En()-a,c=En(),u=uL(l),p=lL(u),g=En()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},y=ow();f.structural.layoutReuseCount=y.layoutReuseCount,f.structural.layoutFreshCount=y.layoutFreshCount,f.structural.drawReuseCount=y.drawReuseCount,f.structural.drawFreshCount=y.drawFreshCount,f.structural.invalidationEscalationCount=y.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=y.absorbedLayoutDirtyCount;let h,R,T,$=[],D=!1,M=()=>(h||(h=WM(l)),h),N=()=>(R||(R=UM(l)),R),H=()=>{if(!T){let ae=En();T=eR(l),f.phases.hitTargetRegistrationMs=En()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...qM(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&H();let I=VM(M,N,o,$,f),W=Date.now(),q=En()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:MM++,committedAt:W,viewport:{width:o.width,height:o.height}},input:o,root:e,layout:l,drawCommands:u,reservedRegions:p,queries:I,metrics:f,get hitTargets(){return H()},get warnings(){return G()}}}function AR(e,t){Lp(t).committedFrameSnapshot=e}function CR(e){return Lp(e).committedFrameSnapshot}function DR(e){Lp(e).committedFrameSnapshot=null}function it(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Ct(e,t,r){e.metrics.structural[t]=r}function OR(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 IR=Symbol("tuiuiu.progressive-runtime-state");function FR(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function pL(e){if(e.id===0)return FR();let t=It(IR,FR);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function jp(){let e=We();return Oe(IR,()=>pL(e),e)}function MR(){return jp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function LR(){return jp().capabilityOverrides}function Bp(){return jp().progressiveVersion}function fL(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=yl(t),a=Mw(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",y=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",h=l.strikethrough||y,R=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,$=T.columns||80,D=T.rows||24,M=MR(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:h,hyperlinks:R,terminalName:c,isCI:d,columns:$,rows:D,profile:i,synchronizedOutput:l.synchronizedOutput,styledUnderlines:l.styledUnderlines,coloredUnderlines:l.coloredUnderlines,clipboard:l.clipboard,notifications:l.notifications,multiplexer:a,cursorStyleControl:l.cursorStyleControl,windowTitle:l.windowTitle,gpuAccelerated:i.gpuAccelerated,kittyKeyboard:l.kittyKeyboard,focusEvents:l.focusEvents,nerdFonts:M},H=LR();return H&&Object.assign(N,H),N}var jR=Symbol("tuiuiu.capability-runtime-state");function BR(e){let t=e.id===0?"auto":ds(It(jR,()=>BR(Ir())).renderModeSignal),[r,n]=gr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Fr](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function Ti(e){let t=We(e);return Oe(jR,()=>BR(t),t)}function $R(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function gL(e){return fL({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Ol(e){return e.cachedCapabilities=gL(e),e.cachedProgressiveVersion=Bp(),e.cachedCapabilities}function NR(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Ol(e);let r=$R(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function GR(e){let t=Ti(),r=t.source.stdout??process.stdout;t.resizeListener&&(r.off("resize",t.resizeListener),t.resizeListener=null),t.source={...e},t.cachedCapabilities=null,t.cachedProgressiveVersion=-1,NR(t)}function Br(){let e=Ti(),t=Bp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Ol(e),e.cachedCapabilities??Ol(e)}function WR(){return Ol(Ti())}function HR(){return $R(Ti())}function UR(e){let t=Ti();return t.resizeHandlers.add(e),NR(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var qR={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},hL={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},mL=512,to=new Map,KR=4e6;function $r(){return{char:" ",attrs:{}}}function Np(e,t){if(e===t)return!0;if(e===void 0||t===void 0)return!1;if(typeof e=="string"&&typeof t=="string")return e===t;if(typeof e=="object"&&typeof t=="object"){if("r"in e&&"r"in t)return e.r===t.r&&e.g===t.g&&e.b===t.b;if("ansi256"in e&&"ansi256"in t)return e.ansi256===t.ansi256}return!1}function bL(e,t){let r=e.underline||!1,n=t.underline||!1;return!!e.bold==!!t.bold&&!!e.dim==!!t.dim&&!!e.italic==!!t.italic&&r===n&&Np(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function VR(e,t){return e.char===t.char&&Np(e.fg,t.fg)&&Np(e.bg,t.bg)&&bL(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Fl(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Nr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>KR)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${KR} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push($r());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||ye(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,ye(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}if(this.cells[r][t]=n,this.invalidateRow(r),!n.isWide&&o>1&&t+o<=this.width)for(let s=1;s<o;s++)this.clearWideFootprint(t+s,r),this.cells[r][t+s]={char:"",fg:n.fg,bg:n.bg,attrs:n.attrs,isWide:!0};this.addDamage(t,r,Math.min(o,this.width-t),1)}}clearWideFootprint(t,r){if(!Number.isInteger(t)||!Number.isInteger(r)||t<0||t>=this.width||r<0||r>=this.height)return;let n=this.cells[r][t];if(n.isWide){if(this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&ye(s.char)>1&&(this.cells[r][t-1]=$r(),this.addDamage(t-1,r,1,1))}return}let o=ye(n.char);if(!(o<=1)){this.cells[r][t]=$r(),this.invalidateRow(r),this.addDamage(t,r,1,1);for(let s=1;s<o&&t+s<this.width;s++)this.cells[r][t+s]?.isWide&&(this.cells[r][t+s]=$r(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=ye(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=Jn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
195
|
+
`)continue;if(a>=this.width)break;let c=ye(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(ye(o)!==1){let c=ye(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(ye(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=$r();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,Fl(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];VR(a,l)||r.push({x:i,y:s,cell:Fl(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=yL(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];VR(d,c)||n.push({x:l,y:i.y,cell:Fl(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Fl(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}${JR(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function yL(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||kL(o)?zR(s,i,o):wL(s,i,o)}function kL(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 zR(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 wL(e,t,r){let n=new Map;for(let i of r){let a=Math.max(0,i.x),l=Math.max(0,i.y),d=Math.min(e,i.x+i.width),c=Math.min(t,i.y+i.height);if(!(d<=a||c<=l))for(let u=l;u<c;u++){let p=n.get(u);p?p.push({x1:a,x2:d}):n.set(u,[{x1:a,x2:d}])}}let o=[],s=[...n.keys()].sort((i,a)=>i-a);for(let i of s){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}o.push({y:i,x1:l.x1,x2:l.x2}),l=c}o.push({y:i,x1:l.x1,x2:l.x2})}return o}var Pi=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Nr(t,r),this.back=new Nr(t,r)}getBackBuffer(){return this.back}getFrontBuffer(){return this.front}swap(){let t=this.front.diff(this.back),r=this.front;return this.front=this.back,this.back=r,this.back.clearDamage(),t}swapDirty(t){let r=this.front.diffRects(this.back,t),n=this.front;return this.front=this.back,this.back=n,this.back.clearDamage(),r}resize(t,r){this.width=t,this.height=r,this.front=new Nr(t,r),this.back=new Nr(t,r)}};function Gp(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(qR[e]!==void 0){let n=t?40:30,o=qR[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 RL(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(hL[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=_L(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 _L(e){let t=Gp(e,!1);if(!t)return"";if(t.startsWith("38;"))return`58;${t.slice(3)}`;let r=Number.parseInt(t,10);return Number.isNaN(r)?"":r>=30&&r<=37?`58;5;${r-30}`:r>=90&&r<=97?`58;5;${r-82}`:""}function $p(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function JR(e,t,r){return[r.bold?"1":"0",r.dim?"1":"0",r.italic?"1":"0",r.underline===void 0||r.underline===!1?"0":String(r.underline),$p(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",$p(e),$p(t)].join("|")}function YR(e,t,r){let n=JR(e,t,r),o=to.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...RL(r));let i=Gp(e,!1),a=Gp(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(to.has(n))to.delete(n);else if(to.size>=mL){let d=to.keys().next();d.done||to.delete(d.value)}return to.set(n,l),l===""?null:l}function xL(e){return e.length===1&&e.charCodeAt(0)<=127?1:ye(e)}function Il(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=YR(l.fg,l.bg,l.attrs);d!==i&&(a(),i!==null&&o.push("\x1B[0m"),d!==null&&o.push(`\x1B[${d}m`),i=d),s+=l.char}a(),i!==null&&o.push("\x1B[0m"),r.push(o.join("").trimEnd())}if(!t)for(;r.length>0&&r[r.length-1]==="";)r.pop();return r.join(`
|
|
196
|
+
`)}function Wp(e,t,r=!1){if(e.length===0)return"";r||e.sort((d,c)=>d.y!==c.y?d.y-c.y:d.x-c.x);let n=[],o=-1,s=-1,i=null,a="",l=()=>{a.length>0&&(n.push(a),a="")};for(let d of e){let{x:c,y:u,cell:p}=d;if(p.isWide||c<0||c>=t||u<0)continue;(u!==s||c!==o+1)&&(l(),n.push(`\x1B[${u+1};${c+1}H`));let g=YR(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+(xL(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Ml(e,t){let r=t??Br().multiplexer;if(!r)return e;switch(r.type){case"tmux":return`\x1BPtmux;${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"screen":return`\x1BP${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"zellij":return e}}var EL="\x1B[?2026h",vL="\x1B[?2026l";function QR(e){let t=e??Br();return t.synchronizedOutput?Ml(EL,t.multiplexer):""}function XR(e){let t=e??Br();return t.synchronizedOutput?Ml(vL,t.multiplexer):""}var Hp={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",top:"\u2550",bottom:"\u2550",left:"\u2551",right:"\u2551"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",top:"\u2500",bottom:"\u2500",left:"\u2502",right:"\u2502"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},heavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u2501",bottom:"\u2501",left:"\u2503",right:"\u2503"},singleDouble:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},doubleSingle:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2558",bottomRight:"\u255B",top:"\u2550",bottom:"\u2550",left:"\u2502",right:"\u2502"},classic:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"-",bottom:"-",left:"|",right:"|"},asciiDouble:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",top:"=",bottom:"=",left:"|",right:"|"},markdown:{topLeft:"|",topRight:"|",bottomLeft:"|",bottomRight:"|",top:"-",bottom:"-",left:"|",right:"|"},arrow:{topLeft:"\u2198",topRight:"\u2199",bottomLeft:"\u2197",bottomRight:"\u2196",top:"\u2193",bottom:"\u2191",left:"\u2192",right:"\u2190"},dashed:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u254C",bottom:"\u254C",left:"\u254E",right:"\u254E"},dashedHeavy:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",top:"\u254D",bottom:"\u254D",left:"\u254F",right:"\u254F"},heavyHead:{topLeft:"\u250E",topRight:"\u2512",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2501",bottom:"\u2500",left:"\u2502",right:"\u2502"},doubleHead:{topLeft:"\u2552",topRight:"\u2555",bottomLeft:"\u2514",bottomRight:"\u2518",top:"\u2550",bottom:"\u2500",left:"\u2502",right:"\u2502"},heavyEdge:{topLeft:"\u250D",topRight:"\u2511",bottomLeft:"\u2515",bottomRight:"\u2519",top:"\u2500",bottom:"\u2500",left:"\u2503",right:"\u2503"},doubleEdge:{topLeft:"\u2553",topRight:"\u2556",bottomLeft:"\u2559",bottomRight:"\u255C",top:"\u2500",bottom:"\u2500",left:"\u2551",right:"\u2551"},minimal:{topLeft:"\u2500",topRight:"\u2500",bottomLeft:"\u2500",bottomRight:"\u2500",top:"\u2500",bottom:"\u2500",left:" ",right:" "},minimalHeavy:{topLeft:"\u2501",topRight:"\u2501",bottomLeft:"\u2501",bottomRight:"\u2501",top:"\u2501",bottom:"\u2501",left:" ",right:" "},minimalDouble:{topLeft:"\u2550",topRight:"\u2550",bottomLeft:"\u2550",bottomRight:"\u2550",top:"\u2550",bottom:"\u2550",left:" ",right:" "},horizontals:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:"\u2500",bottom:"\u2500",left:" ",right:" "},inner:{topLeft:"\u2597",topRight:"\u2596",bottomLeft:"\u259D",bottomRight:"\u2598",top:"\u2584",bottom:"\u2580",left:"\u2590",right:"\u258C"},outer:{topLeft:"\u259B",topRight:"\u259C",bottomLeft:"\u2599",bottomRight:"\u259F",top:"\u2580",bottom:"\u2584",left:"\u258C",right:"\u2590"},thick:{topLeft:"\u2588",topRight:"\u2588",bottomLeft:"\u2588",bottomRight:"\u2588",top:"\u2580",bottom:"\u2584",left:"\u2588",right:"\u2588"},block:{topLeft:"\u2584",topRight:"\u2584",bottomLeft:"\u2580",bottomRight:"\u2580",top:"\u2584",bottom:"\u2580",left:"\u2588",right:"\u2588"},hkey:{topLeft:"\u2594",topRight:"\u2594",bottomLeft:"\u2581",bottomRight:"\u2581",top:"\u2594",bottom:"\u2581",left:" ",right:" "},vkey:{topLeft:"\u258F",topRight:"\u2595",bottomLeft:"\u258F",bottomRight:"\u2595",top:" ",bottom:" ",left:"\u258F",right:"\u2595"},tall:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2594",bottom:"\u2581",left:"\u258A",right:"\u258E"},panel:{topLeft:"\u258A",topRight:"\u258E",bottomLeft:"\u258A",bottomRight:"\u258E",top:"\u2588",bottom:"\u2581",left:"\u258A",right:"\u258E"},tab:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},wide:{topLeft:"\u2581",topRight:"\u2581",bottomLeft:"\u2594",bottomRight:"\u2594",top:"\u2581",bottom:"\u2594",left:"\u258E",right:"\u258A"},none:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},hidden:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "},blank:{topLeft:" ",topRight:" ",bottomLeft:" ",bottomRight:" ",top:" ",bottom:" ",left:" ",right:" "}};var e_="\x1B[?25h",SL="\x1B[?25l",Ll=!1,ZR=!1,TL=null,Up=null;function qp(e){return"isTTY"in e&&!!e.isTTY}function PL(){let e=Up??process.stdout;qp(e)&&Ll&&(e.write(e_),Ll=!1)}function AL(){ZR||(ZR=!0,TL=en(PL))}function us(e=process.stdout){qp(e)&&(Up=e,Ll=!1,e.write(e_))}function ps(e=process.stdout){qp(e)&&(Up=e,AL(),Ll=!0,e.write(SL))}var CL="#ffffff",DL="#000000",OL="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},FL={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},IL={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},m={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},Ue={50:"#fafaf9",100:"#f5f5f4",200:"#e7e5e4",300:"#d6d3d1",400:"#a8a29e",500:"#78716c",600:"#57534e",700:"#44403c",800:"#292524",900:"#1c1917",950:"#0c0a09"},ue={50:"#fef2f2",100:"#fee2e2",200:"#fecaca",300:"#fca5a5",400:"#f87171",500:"#ef4444",600:"#dc2626",700:"#b91c1c",800:"#991b1b",900:"#7f1d1d",950:"#450a0a"},ML={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},ge={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},LL={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},jL={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},he={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},BL={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},$L={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Xe={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},NL={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"},GL={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},WL={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},HL={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},UL={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},qL={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},KL={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},t_={white:CL,black:DL,transparent:OL,slate:k,gray:FL,zinc:IL,neutral:m,stone:Ue,red:ue,orange:ML,amber:ge,yellow:LL,lime:jL,green:he,emerald:BL,teal:$L,cyan:Xe,sky:NL,blue:te,indigo:GL,violet:WL,purple:HL,fuchsia:UL,pink:qL,rose:KL};var ee={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},Kp={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:ee,background:{lowest:k[950],base:k[900],subtle:k[800],surface:k[700],raised:k[600],elevated:k[500],popover:k[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:k[50],secondary:k[200],muted:k[400],disabled:k[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:ee.success[500],warning:ee.warning[500],critical:ee.danger[500],info:Xe[500],highlight:ee.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:ee.primary[400],ring:{color:ee.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:ee.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:ee.primary[500],danger:ee.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:ee.primary[500],fg:"#ffffff",hoverBg:ee.primary[400],activeBg:ee.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:ee.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:ee.primary[500]},ghost:{bg:"transparent",fg:k[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:k[800],headerBg:k[700],footerBg:k[700],border:k[700]},menu:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],activeBg:ee.primary[700],selectedBg:ee.primary[600],disabledFg:k[500]}},tabs:{bg:k[800],border:k[700],tab:{fg:k[400],activeFg:k[50],activeBg:k[700],hoverFg:k[200],indicator:ee.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:ee.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:ee.primary[500],invalidBorder:ee.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:ee.primary[500]},radio:{bg:k[800],dotColor:ee.primary[500],border:k[600],checkedBorder:ee.primary[500]},tooltip:{bg:k[700],fg:k[50]},modal:{bg:k[800],border:k[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:k[700],fg:k[50]},success:{bg:ee.success[500],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:ee.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:ee.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:ee.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.success[700]},warning:{bg:ee.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:ee.warning[600]},danger:{bg:ee.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:ee.primary[600],fg:"#ffffff"},info:{bg:Xe[600],fg:"#ffffff"},success:{bg:ee.success[600],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:ee.primary[400],subtitleFg:k[400],border:ee.primary[700]},secondary:{bg:k[900],titleFg:k[200],subtitleFg:k[500],border:k[700]}},appshell:{bg:k[950],dividerFg:k[700],sidebarBg:k[900],asideBg:k[900]},collapsible:{default:{headerBg:k[800],headerFg:k[50],contentBg:k[900],border:k[700],iconFg:k[400]},primary:{headerBg:ee.primary[700],headerFg:"#ffffff",contentBg:k[900],border:ee.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:k[700],headerFg:k[50],contentBg:k[800],border:k[600],iconFg:k[400]}},commandPalette:{bg:k[800],border:k[700],inputBg:k[900],inputFg:k[50],inputPlaceholder:k[500],itemFg:k[50],itemHoverBg:k[700],itemSelectedBg:ee.primary[700],itemSelectedFg:"#ffffff",highlightFg:ee.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:ee.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:ee.success[900],fg:ee.success[100],border:ee.success[600],iconFg:ee.success[400]},error:{bg:ee.danger[900],fg:ee.danger[100],border:ee.danger[600],iconFg:ee.danger[400]},warning:{bg:ee.warning[900],fg:ee.warning[100],border:ee.warning[500],iconFg:ee.warning[400]},info:{bg:Xe[900],fg:Xe[100],border:Xe[600],iconFg:Xe[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:ee.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:ee.primary[600],titleBarFg:"#ffffff",border:ee.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:ee.success[600],titleBarFg:"#ffffff",border:ee.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:ee.warning[500],titleBarFg:k[900],border:ee.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:ee.danger[600],titleBarFg:"#ffffff",border:ee.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var Q={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]}},r_={name:"light",mode:"light",meta:{version:"1.0.0",author:"tuiuiu",description:"Light background theme with blue primary and slate neutrals"},palette:Q,background:{lowest:k[100],base:"#ffffff",subtle:k[50],surface:"#ffffff",raised:k[100],elevated:k[200],popover:"#ffffff",overlay:"rgba(0, 0, 0, 0.5)"},foreground:{primary:k[950],secondary:k[700],muted:k[500],disabled:k[400],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.8)",subtle:"rgba(255, 255, 255, 0.6)"}},accents:{positive:he[600],warning:ge[600],critical:ue[600],info:Xe[600],highlight:Q.primary[600]},states:{hover:{bg:"rgba(0, 0, 0, 0.05)",fg:null},active:{bg:"rgba(0, 0, 0, 0.1)"},focus:{border:Q.primary[600],ring:{color:Q.primary[600],width:2}},disabled:{opacity:.4,bg:k[100],fg:k[400]},selected:{bg:Q.primary[100],fg:Q.primary[900]}},borders:{default:k[200],subtle:k[100],strong:k[300],accent:Q.primary[600],danger:Q.danger[600]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:Q.primary[600],fg:"#ffffff",hoverBg:Q.primary[700],activeBg:Q.primary[800],border:"transparent"},secondary:{bg:k[100],fg:k[900],hoverBg:k[200],activeBg:k[300],border:"transparent"},outline:{bg:"transparent",fg:Q.primary[600],hoverBg:Q.primary[50],activeBg:Q.primary[100],border:Q.primary[600]},ghost:{bg:"transparent",fg:k[900],hoverBg:"rgba(0, 0, 0, 0.05)",activeBg:"rgba(0, 0, 0, 0.1)",border:"transparent"}},panel:{bg:"#ffffff",headerBg:k[50],footerBg:k[50],border:k[200]},menu:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],activeBg:Q.primary[100],selectedBg:Q.primary[50],disabledFg:k[400]}},tabs:{bg:"#ffffff",border:k[200],tab:{fg:k[600],activeFg:k[900],activeBg:"#ffffff",hoverFg:k[900],indicator:Q.primary[600]}},dropdown:{bg:"#ffffff",border:k[200],item:{fg:k[900],hoverBg:k[100],selectedBg:Q.primary[100]}},input:{bg:"#ffffff",fg:k[900],placeholder:k[400],border:k[300],focusBorder:Q.primary[600],invalidBorder:Q.danger[600]},checkbox:{bg:"#ffffff",border:k[300],checkColor:"#ffffff",checkedBg:Q.primary[600]},radio:{bg:"#ffffff",dotColor:Q.primary[600],border:k[300],checkedBorder:Q.primary[600]},tooltip:{bg:k[900],fg:k[50]},modal:{bg:"#ffffff",border:k[200],overlay:"rgba(0, 0, 0, 0.5)"},badge:{default:{bg:k[100],fg:k[700]},success:{bg:Q.success[100],fg:Q.success[800]},warning:{bg:Q.warning[100],fg:Q.warning[800]},danger:{bg:Q.danger[100],fg:Q.danger[800]}},list:{item:{bg:"transparent",hoverBg:k[50],selectedBg:Q.primary[100],fg:k[900]}},header:{default:{bg:k[100],fg:k[900],titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:Q.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.primary[700]},secondary:{bg:k[200],fg:k[800],titleFg:k[800],subtitleFg:k[600],border:k[300]},success:{bg:Q.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.success[700]},warning:{bg:Q.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:Q.warning[600]},danger:{bg:Q.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:Q.danger[700]}},statusbar:{default:{bg:k[100],fg:k[600]},primary:{bg:Q.primary[600],fg:"#ffffff"},info:{bg:Xe[600],fg:"#ffffff"},success:{bg:Q.success[600],fg:"#ffffff"},warning:{bg:Q.warning[500],fg:k[900]},danger:{bg:Q.danger[600],fg:"#ffffff"}},page:{default:{bg:"#ffffff",titleFg:k[900],subtitleFg:k[600],border:k[200]},primary:{bg:"#ffffff",titleFg:Q.primary[700],subtitleFg:k[600],border:Q.primary[200]},secondary:{bg:k[50],titleFg:k[700],subtitleFg:k[500],border:k[200]}},appshell:{bg:k[100],dividerFg:k[300],sidebarBg:"#ffffff",asideBg:"#ffffff"},collapsible:{default:{headerBg:k[100],headerFg:k[900],contentBg:"#ffffff",border:k[200],iconFg:k[600]},primary:{headerBg:Q.primary[100],headerFg:Q.primary[900],contentBg:"#ffffff",border:Q.primary[200],iconFg:Q.primary[600]},secondary:{headerBg:k[200],headerFg:k[800],contentBg:k[50],border:k[300],iconFg:k[600]}},commandPalette:{bg:"#ffffff",border:k[200],inputBg:k[50],inputFg:k[900],inputPlaceholder:k[400],itemFg:k[900],itemHoverBg:k[100],itemSelectedBg:Q.primary[100],itemSelectedFg:Q.primary[900],highlightFg:Q.primary[600],categoryFg:k[500]},splitPanel:{bg:"#ffffff",dividerBg:k[200],dividerHoverBg:k[300],dividerActiveBg:Q.primary[500],border:k[200],titleFg:k[600]},toast:{success:{bg:Q.success[50],fg:Q.success[900],border:Q.success[200],iconFg:Q.success[600]},error:{bg:Q.danger[50],fg:Q.danger[900],border:Q.danger[200],iconFg:Q.danger[600]},warning:{bg:Q.warning[50],fg:Q.warning[900],border:Q.warning[200],iconFg:Q.warning[600]},info:{bg:Xe[50],fg:Xe[900],border:Xe[200],iconFg:Xe[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg:Q.danger[500]},primary:{bg:"#ffffff",fg:k[900],titleBarBg:Q.primary[600],titleBarFg:"#ffffff",border:Q.primary[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#ffffff",fg:k[900],titleBarBg:Q.success[600],titleBarFg:"#ffffff",border:Q.success[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:"#ffffff",fg:k[900],titleBarBg:Q.warning[500],titleBarFg:k[900],border:Q.warning[200],buttonFg:k[700],closeFg:k[900]},danger:{bg:"#ffffff",fg:k[900],titleBarBg:Q.danger[600],titleBarFg:"#ffffff",border:Q.danger[200],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var O={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},ro={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:Ue[50],100:Ue[100],200:Ue[200],300:Ue[300],400:Ue[400],500:Ue[500],600:Ue[600],700:Ue[700],800:Ue[800],900:Ue[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:"#A6E22E",500:"#A6E22E",600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#E6DB74",500:"#E6DB74",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:"#F92672",500:"#F92672",600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#FAFAF9",100:"#F5F5F4",200:"#E7E5E4",300:"#D6D3D1",400:"#A8A29E",500:"#78716C",600:"#57534E",700:"#44403C",800:"#292524",900:"#1C1917"}},n_={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:ro,background:{lowest:O.backgroundDark,base:O.background,subtle:O.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:O.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:O.foreground,secondary:"#E8E8E2",muted:O.comment,disabled:"#5B5A4F",inverse:{base:O.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:O.green,warning:O.yellow,critical:O.pink,info:O.cyan,highlight:O.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:O.green,ring:{color:O.green,width:2}},disabled:{opacity:.4,bg:O.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:O.foreground}},borders:{default:"#49483E",subtle:O.backgroundLight,strong:O.comment,accent:O.green,danger:O.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:O.green,fg:O.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:O.foreground,hoverBg:"#5B5A4F",activeBg:O.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:O.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:O.green},ghost:{bg:"transparent",fg:O.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:O.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:O.backgroundLight,border:"#49483E",tab:{fg:O.comment,activeFg:O.foreground,activeBg:O.background,hoverFg:"#E8E8E2",indicator:O.green}},dropdown:{bg:O.backgroundLight,border:"#49483E",item:{fg:O.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:O.backgroundLight,fg:O.foreground,placeholder:O.comment,border:"#49483E",focusBorder:O.green,invalidBorder:O.pink},checkbox:{bg:O.backgroundLight,border:"#5B5A4F",checkColor:O.background,checkedBg:O.green},radio:{bg:O.backgroundLight,dotColor:O.green,border:"#5B5A4F",checkedBorder:O.green},tooltip:{bg:"#49483E",fg:O.foreground},modal:{bg:O.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:O.foreground},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:O.backgroundLight,selectedBg:"#49483E",fg:O.foreground}},header:{default:{bg:O.backgroundLight,fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:O.foreground,titleFg:O.foreground,subtitleFg:O.comment,border:"#5B5A4F"},success:{bg:O.green,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:O.yellow,fg:O.background,titleFg:O.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:O.orange},danger:{bg:O.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:O.backgroundLight,fg:O.comment},primary:{bg:O.green,fg:O.background},info:{bg:O.cyan,fg:O.background},success:{bg:O.green,fg:O.background},warning:{bg:O.yellow,fg:O.background},danger:{bg:O.pink,fg:"#ffffff"}},page:{default:{bg:O.background,titleFg:O.foreground,subtitleFg:O.comment,border:"#49483E"},primary:{bg:O.background,titleFg:O.green,subtitleFg:O.comment,border:O.green},secondary:{bg:O.background,titleFg:"#E8E8E2",subtitleFg:O.comment,border:"#49483E"}},appshell:{bg:O.backgroundDark,dividerFg:"#49483E",sidebarBg:O.background,asideBg:O.background},collapsible:{default:{headerBg:O.backgroundLight,headerFg:O.foreground,contentBg:O.background,border:"#49483E",iconFg:O.comment},primary:{headerBg:"#49483E",headerFg:O.green,contentBg:O.background,border:O.green,iconFg:O.green},secondary:{headerBg:"#49483E",headerFg:O.foreground,contentBg:O.backgroundLight,border:"#5B5A4F",iconFg:O.comment}},commandPalette:{bg:O.backgroundLight,border:"#49483E",inputBg:O.background,inputFg:O.foreground,inputPlaceholder:O.comment,itemFg:O.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:O.foreground,highlightFg:O.green,categoryFg:O.comment},splitPanel:{bg:O.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:O.green,border:"#49483E",titleFg:O.comment},toast:{success:{bg:ro.success[900],fg:ro.success[100],border:O.green,iconFg:O.green},error:{bg:ro.danger[900],fg:ro.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:ro.warning[900],fg:ro.warning[100],border:O.yellow,iconFg:O.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:O.cyan,iconFg:O.cyan}},window:{default:{bg:O.background,fg:O.foreground,titleBarBg:O.backgroundLight,titleBarFg:O.foreground,border:"#49483E",buttonFg:O.comment,closeFg:O.pink},primary:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},success:{bg:O.background,fg:O.foreground,titleBarBg:O.green,titleBarFg:O.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},warning:{bg:O.background,fg:O.foreground,titleBarBg:O.yellow,titleBarFg:O.background,border:O.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:O.background},danger:{bg:O.background,fg:O.foreground,titleBarBg:O.pink,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var A={background:"#282A36",currentLine:"#44475A",foreground:"#F8F8F2",comment:"#6272A4",cyan:"#8BE9FD",green:"#50FA7B",orange:"#FFB86C",pink:"#FF79C6",purple:"#BD93F9",red:"#FF5555",yellow:"#F1FA8C"},no={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:"#BD93F9",500:"#BD93F9",600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#ECFDF5",100:"#D1FAE5",200:"#A7F3D0",300:"#6EE7B7",400:"#50FA7B",500:"#50FA7B",600:"#059669",700:"#047857",800:"#065F46",900:"#064E3B"},warning:{50:"#FEFCE8",100:"#FEF9C3",200:"#FEF08A",300:"#FDE047",400:"#F1FA8C",500:"#F1FA8C",600:"#CA8A04",700:"#A16207",800:"#854D0E",900:"#713F12"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:"#FF5555",500:"#FF5555",600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},o_={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:no,background:{lowest:"#21222C",base:A.background,subtle:A.currentLine,surface:"#4D4F5F",raised:"#565869",elevated:A.comment,popover:A.currentLine,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:A.foreground,secondary:"#E8E8E2",muted:A.comment,disabled:"#565869",inverse:{base:A.background,soft:"rgba(40, 42, 54, 0.8)",subtle:"rgba(40, 42, 54, 0.6)"}},accents:{positive:A.green,warning:A.yellow,critical:A.red,info:A.cyan,highlight:A.purple},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:A.purple,ring:{color:A.purple,width:2}},disabled:{opacity:.4,bg:A.currentLine,fg:"#565869"},selected:{bg:A.currentLine,fg:A.foreground}},borders:{default:A.comment,subtle:A.currentLine,strong:A.purple,accent:A.purple,danger:A.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:A.purple,fg:A.foreground,hoverBg:"#CDA4FF",activeBg:"#A77EE8",border:"transparent"},secondary:{bg:A.currentLine,fg:A.foreground,hoverBg:"#565869",activeBg:"#4D4F5F",border:"transparent"},outline:{bg:"transparent",fg:A.purple,hoverBg:"rgba(189, 147, 249, 0.1)",activeBg:"rgba(189, 147, 249, 0.2)",border:A.purple},ghost:{bg:"transparent",fg:A.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:A.currentLine,headerBg:"#4D4F5F",footerBg:"#4D4F5F",border:A.comment},menu:{bg:A.currentLine,border:A.comment,item:{fg:A.foreground,hoverBg:"#4D4F5F",activeBg:"#565869",selectedBg:"#4D4F5F",disabledFg:"#565869"}},tabs:{bg:A.currentLine,border:A.comment,tab:{fg:A.comment,activeFg:A.foreground,activeBg:A.background,hoverFg:"#E8E8E2",indicator:A.purple}},dropdown:{bg:A.currentLine,border:A.comment,item:{fg:A.foreground,hoverBg:"#4D4F5F",selectedBg:"#565869"}},input:{bg:A.currentLine,fg:A.foreground,placeholder:A.comment,border:A.comment,focusBorder:A.purple,invalidBorder:A.red},checkbox:{bg:A.currentLine,border:A.comment,checkColor:A.foreground,checkedBg:A.purple},radio:{bg:A.currentLine,dotColor:A.purple,border:A.comment,checkedBorder:A.purple},tooltip:{bg:"#4D4F5F",fg:A.foreground},modal:{bg:A.currentLine,border:A.comment,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:A.comment,fg:A.foreground},success:{bg:A.green,fg:A.background},warning:{bg:A.yellow,fg:A.background},danger:{bg:A.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:A.currentLine,selectedBg:"#4D4F5F",fg:A.foreground}},header:{default:{bg:A.currentLine,fg:A.foreground,titleFg:A.foreground,subtitleFg:A.comment,border:A.comment},primary:{bg:A.purple,fg:A.foreground,titleFg:A.foreground,subtitleFg:"rgba(248, 248, 242, 0.8)",border:"#A78BFA"},secondary:{bg:"#4D4F5F",fg:A.foreground,titleFg:A.foreground,subtitleFg:A.comment,border:"#565869"},success:{bg:A.green,fg:A.background,titleFg:A.background,subtitleFg:"rgba(40, 42, 54, 0.8)",border:"#059669"},warning:{bg:A.yellow,fg:A.background,titleFg:A.background,subtitleFg:"rgba(40, 42, 54, 0.7)",border:A.orange},danger:{bg:A.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:A.currentLine,fg:A.comment},primary:{bg:A.purple,fg:A.foreground},info:{bg:A.cyan,fg:A.background},success:{bg:A.green,fg:A.background},warning:{bg:A.yellow,fg:A.background},danger:{bg:A.red,fg:"#ffffff"}},page:{default:{bg:A.background,titleFg:A.foreground,subtitleFg:A.comment,border:A.comment},primary:{bg:A.background,titleFg:A.purple,subtitleFg:A.comment,border:A.purple},secondary:{bg:A.background,titleFg:"#E8E8E2",subtitleFg:A.comment,border:A.currentLine}},appshell:{bg:"#21222C",dividerFg:A.comment,sidebarBg:A.background,asideBg:A.background},collapsible:{default:{headerBg:A.currentLine,headerFg:A.foreground,contentBg:A.background,border:A.comment,iconFg:A.comment},primary:{headerBg:"#4D4F5F",headerFg:A.purple,contentBg:A.background,border:A.purple,iconFg:A.purple},secondary:{headerBg:"#4D4F5F",headerFg:A.foreground,contentBg:A.currentLine,border:"#565869",iconFg:A.comment}},commandPalette:{bg:A.currentLine,border:A.comment,inputBg:A.background,inputFg:A.foreground,inputPlaceholder:A.comment,itemFg:A.foreground,itemHoverBg:"#4D4F5F",itemSelectedBg:"#565869",itemSelectedFg:A.foreground,highlightFg:A.purple,categoryFg:A.comment},splitPanel:{bg:A.background,dividerBg:A.comment,dividerHoverBg:"#4D4F5F",dividerActiveBg:A.purple,border:A.comment,titleFg:A.comment},toast:{success:{bg:no.success[900],fg:no.success[100],border:A.green,iconFg:A.green},error:{bg:no.danger[900],fg:no.danger[100],border:A.red,iconFg:A.red},warning:{bg:no.warning[900],fg:no.warning[100],border:A.yellow,iconFg:A.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:A.cyan,iconFg:A.cyan}},window:{default:{bg:A.background,fg:A.foreground,titleBarBg:A.currentLine,titleBarFg:A.foreground,border:A.comment,buttonFg:A.comment,closeFg:A.red},primary:{bg:A.background,fg:A.foreground,titleBarBg:A.purple,titleBarFg:A.foreground,border:"#A78BFA",buttonFg:"rgba(248, 248, 242, 0.8)",closeFg:A.foreground},success:{bg:A.background,fg:A.foreground,titleBarBg:A.green,titleBarFg:A.background,border:"#059669",buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:A.background},warning:{bg:A.background,fg:A.foreground,titleBarBg:A.yellow,titleBarFg:A.background,border:A.orange,buttonFg:"rgba(40, 42, 54, 0.8)",closeFg:A.background},danger:{bg:A.background,fg:A.foreground,titleBarBg:A.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var E={nord0:"#2E3440",nord1:"#3B4252",nord2:"#434C5E",nord3:"#4C566A",nord4:"#D8DEE9",nord5:"#E5E9F0",nord6:"#ECEFF4",nord7:"#8FBCBB",nord8:"#88C0D0",nord9:"#81A1C1",nord10:"#5E81AC",nord11:"#BF616A",nord12:"#D08770",nord13:"#EBCB8B",nord14:"#A3BE8C",nord15:"#B48EAD"},oo={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:E.nord8,400:E.nord8,500:E.nord8,600:E.nord9,700:E.nord10,800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:E.nord14,500:E.nord14,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:E.nord13,400:E.nord13,500:E.nord13,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:E.nord11,500:E.nord11,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:E.nord6,100:E.nord5,200:E.nord4,300:"#A3ADB8",400:"#7A8694",500:E.nord3,600:E.nord2,700:E.nord1,800:E.nord0,900:"#242933"}},s_={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:oo,background:{lowest:"#242933",base:E.nord0,subtle:E.nord1,surface:E.nord2,raised:E.nord3,elevated:"#5E6779",popover:E.nord1,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:E.nord6,secondary:E.nord5,muted:E.nord4,disabled:E.nord3,inverse:{base:E.nord0,soft:"rgba(46, 52, 64, 0.8)",subtle:"rgba(46, 52, 64, 0.6)"}},accents:{positive:E.nord14,warning:E.nord13,critical:E.nord11,info:E.nord9,highlight:E.nord8},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:E.nord8,ring:{color:E.nord8,width:2}},disabled:{opacity:.4,bg:E.nord1,fg:E.nord3},selected:{bg:E.nord1,fg:E.nord6}},borders:{default:E.nord3,subtle:E.nord1,strong:E.nord4,accent:E.nord8,danger:E.nord11},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:E.nord8,fg:E.nord0,hoverBg:"#9CD0DF",activeBg:"#6FAFBF",border:"transparent"},secondary:{bg:E.nord2,fg:E.nord6,hoverBg:E.nord3,activeBg:E.nord1,border:"transparent"},outline:{bg:"transparent",fg:E.nord8,hoverBg:"rgba(136, 192, 208, 0.1)",activeBg:"rgba(136, 192, 208, 0.2)",border:E.nord8},ghost:{bg:"transparent",fg:E.nord6,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:E.nord1,headerBg:E.nord2,footerBg:E.nord2,border:E.nord3},menu:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,activeBg:E.nord3,selectedBg:E.nord2,disabledFg:E.nord3}},tabs:{bg:E.nord1,border:E.nord3,tab:{fg:E.nord4,activeFg:E.nord6,activeBg:E.nord0,hoverFg:E.nord5,indicator:E.nord8}},dropdown:{bg:E.nord1,border:E.nord3,item:{fg:E.nord6,hoverBg:E.nord2,selectedBg:E.nord3}},input:{bg:E.nord1,fg:E.nord6,placeholder:E.nord4,border:E.nord3,focusBorder:E.nord8,invalidBorder:E.nord11},checkbox:{bg:E.nord1,border:E.nord3,checkColor:E.nord0,checkedBg:E.nord8},radio:{bg:E.nord1,dotColor:E.nord8,border:E.nord3,checkedBorder:E.nord8},tooltip:{bg:E.nord2,fg:E.nord6},modal:{bg:E.nord1,border:E.nord3,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:E.nord3,fg:E.nord6},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:E.nord1,selectedBg:E.nord2,fg:E.nord6}},header:{default:{bg:E.nord1,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord8,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:E.nord9},secondary:{bg:E.nord2,fg:E.nord6,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},success:{bg:E.nord14,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.8)",border:"#16A34A"},warning:{bg:E.nord13,fg:E.nord0,titleFg:E.nord0,subtitleFg:"rgba(46, 52, 64, 0.7)",border:E.nord12},danger:{bg:E.nord11,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:E.nord1,fg:E.nord4},primary:{bg:E.nord8,fg:E.nord0},info:{bg:E.nord9,fg:"#ffffff"},success:{bg:E.nord14,fg:E.nord0},warning:{bg:E.nord13,fg:E.nord0},danger:{bg:E.nord11,fg:"#ffffff"}},page:{default:{bg:E.nord0,titleFg:E.nord6,subtitleFg:E.nord4,border:E.nord3},primary:{bg:E.nord0,titleFg:E.nord8,subtitleFg:E.nord4,border:E.nord8},secondary:{bg:E.nord0,titleFg:E.nord5,subtitleFg:E.nord4,border:E.nord1}},appshell:{bg:"#242933",dividerFg:E.nord3,sidebarBg:E.nord0,asideBg:E.nord0},collapsible:{default:{headerBg:E.nord1,headerFg:E.nord6,contentBg:E.nord0,border:E.nord3,iconFg:E.nord4},primary:{headerBg:E.nord2,headerFg:E.nord8,contentBg:E.nord0,border:E.nord8,iconFg:E.nord8},secondary:{headerBg:E.nord2,headerFg:E.nord6,contentBg:E.nord1,border:E.nord3,iconFg:E.nord4}},commandPalette:{bg:E.nord1,border:E.nord3,inputBg:E.nord0,inputFg:E.nord6,inputPlaceholder:E.nord4,itemFg:E.nord6,itemHoverBg:E.nord2,itemSelectedBg:E.nord3,itemSelectedFg:E.nord6,highlightFg:E.nord8,categoryFg:E.nord4},splitPanel:{bg:E.nord0,dividerBg:E.nord3,dividerHoverBg:E.nord2,dividerActiveBg:E.nord8,border:E.nord3,titleFg:E.nord4},toast:{success:{bg:oo.success[900],fg:oo.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:oo.danger[900],fg:oo.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:oo.warning[900],fg:oo.warning[100],border:E.nord13,iconFg:E.nord13},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:E.nord9,iconFg:E.nord9}},window:{default:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord1,titleBarFg:E.nord6,border:E.nord3,buttonFg:E.nord4,closeFg:E.nord11},primary:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord8,titleBarFg:E.nord0,border:E.nord9,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},success:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord14,titleBarFg:E.nord0,border:"#16A34A",buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},warning:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord13,titleBarFg:E.nord0,border:E.nord12,buttonFg:"rgba(46, 52, 64, 0.8)",closeFg:E.nord0},danger:{bg:E.nord0,fg:E.nord6,titleBarBg:E.nord11,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var S={base03:"#002B36",base02:"#073642",base01:"#586E75",base00:"#657B83",base0:"#839496",base1:"#93A1A1",base2:"#EEE8D5",base3:"#FDF6E3",yellow:"#B58900",orange:"#CB4B16",red:"#DC322F",magenta:"#D33682",violet:"#6C71C4",blue:"#268BD2",cyan:"#2AA198",green:"#859900"},so={primary:{50:"#F0F9FF",100:"#E0F2FE",200:"#BAE6FD",300:"#7DD3FC",400:S.blue,500:S.blue,600:"#0284C7",700:"#0369A1",800:"#075985",900:"#0C4A6E"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:S.green,500:S.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:S.yellow,500:S.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:S.red,500:S.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:S.base3,100:S.base2,200:S.base1,300:S.base0,400:S.base00,500:S.base01,600:"#4A5A60",700:S.base02,800:S.base03,900:"#001E26"}},i_={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:so,background:{lowest:"#001E26",base:S.base03,subtle:S.base02,surface:"#094652",raised:"#0B5A66",elevated:S.base01,popover:S.base02,overlay:"rgba(0, 0, 0, 0.6)"},foreground:{primary:S.base0,secondary:S.base1,muted:S.base00,disabled:S.base01,inverse:{base:S.base3,soft:"rgba(253, 246, 227, 0.8)",subtle:"rgba(253, 246, 227, 0.6)"}},accents:{positive:S.green,warning:S.yellow,critical:S.red,info:S.cyan,highlight:S.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:S.blue,ring:{color:S.blue,width:2}},disabled:{opacity:.4,bg:S.base02,fg:S.base01},selected:{bg:S.base02,fg:S.base1}},borders:{default:S.base01,subtle:S.base02,strong:S.base0,accent:S.blue,danger:S.red},opacity:{disabled:.4,muted:.7,overlay:.6,ghost:.2},components:{button:{primary:{bg:S.blue,fg:S.base3,hoverBg:"#3A9BE3",activeBg:"#1F7ABF",border:"transparent"},secondary:{bg:S.base02,fg:S.base1,hoverBg:"#094652",activeBg:S.base03,border:"transparent"},outline:{bg:"transparent",fg:S.blue,hoverBg:"rgba(38, 139, 210, 0.1)",activeBg:"rgba(38, 139, 210, 0.2)",border:S.blue},ghost:{bg:"transparent",fg:S.base0,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:S.base02,headerBg:"#094652",footerBg:"#094652",border:S.base01},menu:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",activeBg:"#0B5A66",selectedBg:"#094652",disabledFg:S.base01}},tabs:{bg:S.base02,border:S.base01,tab:{fg:S.base00,activeFg:S.base1,activeBg:S.base03,hoverFg:S.base0,indicator:S.blue}},dropdown:{bg:S.base02,border:S.base01,item:{fg:S.base0,hoverBg:"#094652",selectedBg:"#0B5A66"}},input:{bg:S.base02,fg:S.base0,placeholder:S.base00,border:S.base01,focusBorder:S.blue,invalidBorder:S.red},checkbox:{bg:S.base02,border:S.base01,checkColor:S.base3,checkedBg:S.blue},radio:{bg:S.base02,dotColor:S.blue,border:S.base01,checkedBorder:S.blue},tooltip:{bg:"#094652",fg:S.base1},modal:{bg:S.base02,border:S.base01,overlay:"rgba(0, 0, 0, 0.6)"},badge:{default:{bg:S.base01,fg:S.base1},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:S.base02,selectedBg:"#094652",fg:S.base0}},header:{default:{bg:S.base02,fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.blue,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#0284C7"},secondary:{bg:"#094652",fg:S.base0,titleFg:S.base1,subtitleFg:S.base00,border:"#0B5A66"},success:{bg:S.green,fg:S.base3,titleFg:S.base3,subtitleFg:"rgba(253, 246, 227, 0.8)",border:"#65A30D"},warning:{bg:S.yellow,fg:S.base03,titleFg:S.base03,subtitleFg:"rgba(0, 43, 54, 0.7)",border:S.orange},danger:{bg:S.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:S.base02,fg:S.base00},primary:{bg:S.blue,fg:S.base3},info:{bg:S.cyan,fg:S.base03},success:{bg:S.green,fg:S.base3},warning:{bg:S.yellow,fg:S.base03},danger:{bg:S.red,fg:"#ffffff"}},page:{default:{bg:S.base03,titleFg:S.base1,subtitleFg:S.base00,border:S.base01},primary:{bg:S.base03,titleFg:S.blue,subtitleFg:S.base00,border:S.blue},secondary:{bg:S.base03,titleFg:S.base0,subtitleFg:S.base00,border:S.base02}},appshell:{bg:"#001E26",dividerFg:S.base01,sidebarBg:S.base03,asideBg:S.base03},collapsible:{default:{headerBg:S.base02,headerFg:S.base1,contentBg:S.base03,border:S.base01,iconFg:S.base00},primary:{headerBg:"#094652",headerFg:S.blue,contentBg:S.base03,border:S.blue,iconFg:S.blue},secondary:{headerBg:"#094652",headerFg:S.base1,contentBg:S.base02,border:"#0B5A66",iconFg:S.base00}},commandPalette:{bg:S.base02,border:S.base01,inputBg:S.base03,inputFg:S.base0,inputPlaceholder:S.base00,itemFg:S.base0,itemHoverBg:"#094652",itemSelectedBg:"#0B5A66",itemSelectedFg:S.base1,highlightFg:S.blue,categoryFg:S.base00},splitPanel:{bg:S.base03,dividerBg:S.base01,dividerHoverBg:"#094652",dividerActiveBg:S.blue,border:S.base01,titleFg:S.base00},toast:{success:{bg:so.success[900],fg:so.success[100],border:S.green,iconFg:S.green},error:{bg:so.danger[900],fg:so.danger[100],border:S.red,iconFg:S.red},warning:{bg:so.warning[900],fg:so.warning[100],border:S.yellow,iconFg:S.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:S.cyan,iconFg:S.cyan}},window:{default:{bg:S.base03,fg:S.base0,titleBarBg:S.base02,titleBarFg:S.base1,border:S.base01,buttonFg:S.base00,closeFg:S.red},primary:{bg:S.base03,fg:S.base0,titleBarBg:S.blue,titleBarFg:S.base3,border:"#0284C7",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},success:{bg:S.base03,fg:S.base0,titleBarBg:S.green,titleBarFg:S.base3,border:"#65A30D",buttonFg:"rgba(253, 246, 227, 0.8)",closeFg:S.base3},warning:{bg:S.base03,fg:S.base0,titleBarBg:S.yellow,titleBarFg:S.base03,border:S.orange,buttonFg:"rgba(0, 43, 54, 0.8)",closeFg:S.base03},danger:{bg:S.base03,fg:S.base0,titleBarBg:S.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var _={bg0_h:"#1D2021",bg0:"#282828",bg1:"#3C3836",bg2:"#504945",bg3:"#665C54",bg4:"#7C6F64",fg0:"#FBF1C7",fg1:"#EBDBB2",fg2:"#D5C4A1",fg3:"#BDAE93",fg4:"#A89984",red:"#FB4934",green:"#B8BB26",yellow:"#FABD2F",blue:"#83A598",purple:"#D3869B",aqua:"#8EC07C",orange:"#FE8019",gray:"#928374"},io={primary:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},secondary:{50:Ue[50],100:Ue[100],200:Ue[200],300:Ue[300],400:Ue[400],500:Ue[500],600:Ue[600],700:Ue[700],800:Ue[800],900:Ue[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:_.green,500:_.green,600:"#84CC16",700:"#65A30D",800:"#4D7C0F",900:"#3F6212"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:_.yellow,500:_.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FEF2F2",100:"#FEE2E2",200:"#FECACA",300:"#FCA5A5",400:_.red,500:_.red,600:"#DC2626",700:"#B91C1C",800:"#991B1B",900:"#7F1D1D"},neutral:{50:_.fg0,100:_.fg1,200:_.fg2,300:_.fg3,400:_.fg4,500:_.gray,600:_.bg4,700:_.bg3,800:_.bg2,900:_.bg1}},a_={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:io,background:{lowest:_.bg0_h,base:_.bg0,subtle:_.bg1,surface:_.bg2,raised:_.bg3,elevated:_.bg4,popover:_.bg1,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:_.fg1,secondary:_.fg2,muted:_.gray,disabled:_.bg3,inverse:{base:_.bg0,soft:"rgba(40, 40, 40, 0.8)",subtle:"rgba(40, 40, 40, 0.6)"}},accents:{positive:_.green,warning:_.yellow,critical:_.red,info:_.blue,highlight:_.green},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:_.green,ring:{color:_.green,width:2}},disabled:{opacity:.4,bg:_.bg1,fg:_.bg3},selected:{bg:_.bg2,fg:_.fg1}},borders:{default:_.bg3,subtle:_.bg2,strong:_.gray,accent:_.green,danger:_.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:_.green,fg:_.bg0,hoverBg:"#C9CC38",activeBg:"#A6A91E",border:"transparent"},secondary:{bg:_.bg2,fg:_.fg1,hoverBg:_.bg3,activeBg:_.bg1,border:"transparent"},outline:{bg:"transparent",fg:_.green,hoverBg:"rgba(184, 187, 38, 0.1)",activeBg:"rgba(184, 187, 38, 0.2)",border:_.green},ghost:{bg:"transparent",fg:_.fg1,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:_.bg1,headerBg:_.bg2,footerBg:_.bg2,border:_.bg3},menu:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,activeBg:_.bg3,selectedBg:_.bg2,disabledFg:_.bg3}},tabs:{bg:_.bg1,border:_.bg3,tab:{fg:_.gray,activeFg:_.fg1,activeBg:_.bg0,hoverFg:_.fg2,indicator:_.green}},dropdown:{bg:_.bg1,border:_.bg3,item:{fg:_.fg1,hoverBg:_.bg2,selectedBg:_.bg3}},input:{bg:_.bg1,fg:_.fg1,placeholder:_.gray,border:_.bg3,focusBorder:_.green,invalidBorder:_.red},checkbox:{bg:_.bg1,border:_.bg3,checkColor:_.bg0,checkedBg:_.green},radio:{bg:_.bg1,dotColor:_.green,border:_.bg3,checkedBorder:_.green},tooltip:{bg:_.bg2,fg:_.fg1},modal:{bg:_.bg1,border:_.bg3,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:_.bg3,fg:_.fg1},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:_.bg1,selectedBg:_.bg2,fg:_.fg1}},header:{default:{bg:_.bg1,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},secondary:{bg:_.bg2,fg:_.fg1,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},success:{bg:_.green,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.8)",border:"#84CC16"},warning:{bg:_.yellow,fg:_.bg0,titleFg:_.bg0,subtitleFg:"rgba(40, 40, 40, 0.7)",border:_.orange},danger:{bg:_.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#DC2626"}},statusbar:{default:{bg:_.bg1,fg:_.gray},primary:{bg:_.green,fg:_.bg0},info:{bg:_.blue,fg:_.bg0},success:{bg:_.green,fg:_.bg0},warning:{bg:_.yellow,fg:_.bg0},danger:{bg:_.red,fg:"#ffffff"}},page:{default:{bg:_.bg0,titleFg:_.fg1,subtitleFg:_.gray,border:_.bg3},primary:{bg:_.bg0,titleFg:_.green,subtitleFg:_.gray,border:_.green},secondary:{bg:_.bg0,titleFg:_.fg2,subtitleFg:_.gray,border:_.bg2}},appshell:{bg:_.bg0_h,dividerFg:_.bg3,sidebarBg:_.bg0,asideBg:_.bg0},collapsible:{default:{headerBg:_.bg1,headerFg:_.fg1,contentBg:_.bg0,border:_.bg3,iconFg:_.gray},primary:{headerBg:_.bg2,headerFg:_.green,contentBg:_.bg0,border:_.green,iconFg:_.green},secondary:{headerBg:_.bg2,headerFg:_.fg1,contentBg:_.bg1,border:_.bg3,iconFg:_.gray}},commandPalette:{bg:_.bg1,border:_.bg3,inputBg:_.bg0,inputFg:_.fg1,inputPlaceholder:_.gray,itemFg:_.fg1,itemHoverBg:_.bg2,itemSelectedBg:_.bg3,itemSelectedFg:_.fg1,highlightFg:_.green,categoryFg:_.gray},splitPanel:{bg:_.bg0,dividerBg:_.bg3,dividerHoverBg:_.bg2,dividerActiveBg:_.green,border:_.bg3,titleFg:_.gray},toast:{success:{bg:io.success[900],fg:io.success[100],border:_.green,iconFg:_.green},error:{bg:io.danger[900],fg:io.danger[100],border:_.red,iconFg:_.red},warning:{bg:io.warning[900],fg:io.warning[100],border:_.yellow,iconFg:_.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:_.blue,iconFg:_.blue}},window:{default:{bg:_.bg0,fg:_.fg1,titleBarBg:_.bg1,titleBarFg:_.fg1,border:_.bg3,buttonFg:_.gray,closeFg:_.red},primary:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},success:{bg:_.bg0,fg:_.fg1,titleBarBg:_.green,titleBarFg:_.bg0,border:"#84CC16",buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},warning:{bg:_.bg0,fg:_.fg1,titleBarBg:_.yellow,titleBarFg:_.bg0,border:_.orange,buttonFg:"rgba(40, 40, 40, 0.8)",closeFg:_.bg0},danger:{bg:_.bg0,fg:_.fg1,titleBarBg:_.red,titleBarFg:"#ffffff",border:"#DC2626",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var v={bg:"#1A1B26",bgDark:"#16161E",bgHighlight:"#24283B",bgPopup:"#2F3549",fg:"#A9B1D6",fgDark:"#9AA5CE",blue:"#7AA2F7",cyan:"#7DCFFF",green:"#9ECE6A",magenta:"#BB9AF7",orange:"#FF9E64",purple:"#9D7CD8",red:"#F7768E",teal:"#73DACA",yellow:"#E0AF68",comment:"#565F89",dark3:"#414868",dark5:"#737AA2"},ao={primary:{50:"#EFF6FF",100:"#DBEAFE",200:"#BFDBFE",300:"#93C5FD",400:v.blue,500:v.blue,600:"#2563EB",700:"#1D4ED8",800:"#1E40AF",900:"#1E3A8A"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F7FEE7",100:"#ECFCCB",200:"#D9F99D",300:"#BEF264",400:v.green,500:v.green,600:"#65A30D",700:"#4D7C0F",800:"#3F6212",900:"#365314"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:v.yellow,500:v.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:v.red,500:v.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:"#F8FAFC",100:"#F1F5F9",200:"#E2E8F0",300:"#CBD5E1",400:"#94A3B8",500:"#64748B",600:"#475569",700:"#334155",800:"#1E293B",900:"#0F172A"}},l_={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:ao,background:{lowest:v.bgDark,base:v.bg,subtle:v.bgHighlight,surface:v.bgPopup,raised:v.dark3,elevated:v.comment,popover:v.bgHighlight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:v.fg,secondary:v.fgDark,muted:v.comment,disabled:v.dark3,inverse:{base:v.bg,soft:"rgba(26, 27, 38, 0.8)",subtle:"rgba(26, 27, 38, 0.6)"}},accents:{positive:v.green,warning:v.yellow,critical:v.red,info:v.cyan,highlight:v.blue},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:v.blue,ring:{color:v.blue,width:2}},disabled:{opacity:.4,bg:v.bgHighlight,fg:v.dark3},selected:{bg:v.bgHighlight,fg:v.fg}},borders:{default:v.dark3,subtle:v.bgHighlight,strong:v.comment,accent:v.blue,danger:v.red},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:v.blue,fg:v.bg,hoverBg:"#8BB3FF",activeBg:"#6691E8",border:"transparent"},secondary:{bg:v.bgHighlight,fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,border:"transparent"},outline:{bg:"transparent",fg:v.blue,hoverBg:"rgba(122, 162, 247, 0.1)",activeBg:"rgba(122, 162, 247, 0.2)",border:v.blue},ghost:{bg:"transparent",fg:v.fg,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:v.bgHighlight,headerBg:v.bgPopup,footerBg:v.bgPopup,border:v.dark3},menu:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,activeBg:v.dark3,selectedBg:v.bgPopup,disabledFg:v.dark3}},tabs:{bg:v.bgHighlight,border:v.dark3,tab:{fg:v.comment,activeFg:v.fg,activeBg:v.bg,hoverFg:v.fgDark,indicator:v.blue}},dropdown:{bg:v.bgHighlight,border:v.dark3,item:{fg:v.fg,hoverBg:v.bgPopup,selectedBg:v.dark3}},input:{bg:v.bgHighlight,fg:v.fg,placeholder:v.comment,border:v.dark3,focusBorder:v.blue,invalidBorder:v.red},checkbox:{bg:v.bgHighlight,border:v.dark3,checkColor:v.bg,checkedBg:v.blue},radio:{bg:v.bgHighlight,dotColor:v.blue,border:v.dark3,checkedBorder:v.blue},tooltip:{bg:v.bgPopup,fg:v.fg},modal:{bg:v.bgHighlight,border:v.dark3,overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:v.dark3,fg:v.fg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:v.bgHighlight,selectedBg:v.bgPopup,fg:v.fg}},header:{default:{bg:v.bgHighlight,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.blue,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#2563EB"},secondary:{bg:v.bgPopup,fg:v.fg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},success:{bg:v.green,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.8)",border:"#65A30D"},warning:{bg:v.yellow,fg:v.bg,titleFg:v.bg,subtitleFg:"rgba(26, 27, 38, 0.7)",border:v.orange},danger:{bg:v.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:v.bgHighlight,fg:v.comment},primary:{bg:v.blue,fg:v.bg},info:{bg:v.cyan,fg:v.bg},success:{bg:v.green,fg:v.bg},warning:{bg:v.yellow,fg:v.bg},danger:{bg:v.red,fg:"#ffffff"}},page:{default:{bg:v.bg,titleFg:v.fg,subtitleFg:v.comment,border:v.dark3},primary:{bg:v.bg,titleFg:v.blue,subtitleFg:v.comment,border:v.blue},secondary:{bg:v.bg,titleFg:v.fgDark,subtitleFg:v.comment,border:v.bgHighlight}},appshell:{bg:v.bgDark,dividerFg:v.dark3,sidebarBg:v.bg,asideBg:v.bg},collapsible:{default:{headerBg:v.bgHighlight,headerFg:v.fg,contentBg:v.bg,border:v.dark3,iconFg:v.comment},primary:{headerBg:v.bgPopup,headerFg:v.blue,contentBg:v.bg,border:v.blue,iconFg:v.blue},secondary:{headerBg:v.bgPopup,headerFg:v.fg,contentBg:v.bgHighlight,border:v.dark3,iconFg:v.comment}},commandPalette:{bg:v.bgHighlight,border:v.dark3,inputBg:v.bg,inputFg:v.fg,inputPlaceholder:v.comment,itemFg:v.fg,itemHoverBg:v.bgPopup,itemSelectedBg:v.dark3,itemSelectedFg:v.fg,highlightFg:v.blue,categoryFg:v.comment},splitPanel:{bg:v.bg,dividerBg:v.dark3,dividerHoverBg:v.bgPopup,dividerActiveBg:v.blue,border:v.dark3,titleFg:v.comment},toast:{success:{bg:ao.success[900],fg:ao.success[100],border:v.green,iconFg:v.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:v.red,iconFg:v.red},warning:{bg:ao.warning[900],fg:ao.warning[100],border:v.yellow,iconFg:v.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:v.cyan,iconFg:v.cyan}},window:{default:{bg:v.bg,fg:v.fg,titleBarBg:v.bgHighlight,titleBarFg:v.fg,border:v.dark3,buttonFg:v.comment,closeFg:v.red},primary:{bg:v.bg,fg:v.fg,titleBarBg:v.blue,titleBarFg:v.bg,border:"#2563EB",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},success:{bg:v.bg,fg:v.fg,titleBarBg:v.green,titleBarFg:v.bg,border:"#65A30D",buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},warning:{bg:v.bg,fg:v.fg,titleBarBg:v.yellow,titleBarFg:v.bg,border:v.orange,buttonFg:"rgba(26, 27, 38, 0.8)",closeFg:v.bg},danger:{bg:v.bg,fg:v.fg,titleBarBg:v.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var x={base:"#1E1E2E",mantle:"#181825",crust:"#11111B",surface0:"#313244",surface1:"#45475A",surface2:"#585B70",overlay0:"#6C7086",overlay1:"#7F849C",overlay2:"#9399B2",text:"#CDD6F4",subtext1:"#BAC2DE",subtext0:"#A6ADC8",rosewater:"#F5E0DC",flamingo:"#F2CDCD",pink:"#F5C2E7",mauve:"#CBA6F7",red:"#F38BA8",maroon:"#EBA0AC",peach:"#FAB387",yellow:"#F9E2AF",green:"#A6E3A1",teal:"#94E2D5",sky:"#89DCEB",sapphire:"#74C7EC",blue:"#89B4FA",lavender:"#B4BEFE"},lo={primary:{50:"#FAF5FF",100:"#F3E8FF",200:"#E9D5FF",300:"#D8B4FE",400:x.mauve,500:x.mauve,600:"#A78BFA",700:"#8B5CF6",800:"#7C3AED",900:"#6D28D9"},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:"#F0FDF4",100:"#DCFCE7",200:"#BBF7D0",300:"#86EFAC",400:x.green,500:x.green,600:"#16A34A",700:"#15803D",800:"#166534",900:"#14532D"},warning:{50:"#FFFBEB",100:"#FEF3C7",200:"#FDE68A",300:"#FCD34D",400:x.yellow,500:x.yellow,600:"#D97706",700:"#B45309",800:"#92400E",900:"#78350F"},danger:{50:"#FFF1F2",100:"#FFE4E6",200:"#FECDD3",300:"#FDA4AF",400:x.red,500:x.red,600:"#E11D48",700:"#BE123C",800:"#9F1239",900:"#881337"},neutral:{50:x.text,100:x.subtext1,200:x.subtext0,300:x.overlay2,400:x.overlay1,500:x.overlay0,600:x.surface2,700:x.surface1,800:x.surface0,900:x.base}},d_={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:lo,background:{lowest:x.crust,base:x.base,subtle:x.surface0,surface:x.surface1,raised:x.surface2,elevated:x.overlay0,popover:x.surface0,overlay:"rgba(0, 0, 0, 0.65)"},foreground:{primary:x.text,secondary:x.subtext1,muted:x.overlay0,disabled:x.surface2,inverse:{base:x.base,soft:"rgba(30, 30, 46, 0.8)",subtle:"rgba(30, 30, 46, 0.6)"}},accents:{positive:x.green,warning:x.yellow,critical:x.red,info:x.sky,highlight:x.mauve},states:{hover:{bg:"rgba(255, 255, 255, 0.08)",fg:null},active:{bg:"rgba(255, 255, 255, 0.15)"},focus:{border:x.mauve,ring:{color:x.mauve,width:2}},disabled:{opacity:.4,bg:x.surface0,fg:x.surface2},selected:{bg:x.surface0,fg:x.text}},borders:{default:x.overlay0,subtle:x.surface1,strong:x.subtext1,accent:x.mauve,danger:x.red},opacity:{disabled:.4,muted:.7,overlay:.65,ghost:.2},components:{button:{primary:{bg:x.mauve,fg:x.base,hoverBg:"#D9B6FF",activeBg:"#B98EE8",border:"transparent"},secondary:{bg:x.surface0,fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,border:"transparent"},outline:{bg:"transparent",fg:x.mauve,hoverBg:"rgba(203, 166, 247, 0.1)",activeBg:"rgba(203, 166, 247, 0.2)",border:x.mauve},ghost:{bg:"transparent",fg:x.text,hoverBg:"rgba(255, 255, 255, 0.08)",activeBg:"rgba(255, 255, 255, 0.15)",border:"transparent"}},panel:{bg:x.surface0,headerBg:x.surface1,footerBg:x.surface1,border:x.overlay0},menu:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,activeBg:x.surface2,selectedBg:x.surface1,disabledFg:x.surface2}},tabs:{bg:x.surface0,border:x.overlay0,tab:{fg:x.overlay0,activeFg:x.text,activeBg:x.base,hoverFg:x.subtext1,indicator:x.mauve}},dropdown:{bg:x.surface0,border:x.overlay0,item:{fg:x.text,hoverBg:x.surface1,selectedBg:x.surface2}},input:{bg:x.surface0,fg:x.text,placeholder:x.overlay0,border:x.overlay0,focusBorder:x.mauve,invalidBorder:x.red},checkbox:{bg:x.surface0,border:x.overlay0,checkColor:x.base,checkedBg:x.mauve},radio:{bg:x.surface0,dotColor:x.mauve,border:x.overlay0,checkedBorder:x.mauve},tooltip:{bg:x.surface1,fg:x.text},modal:{bg:x.surface0,border:x.overlay0,overlay:"rgba(0, 0, 0, 0.65)"},badge:{default:{bg:x.surface2,fg:x.text},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:x.surface0,selectedBg:x.surface1,fg:x.text}},header:{default:{bg:x.surface0,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.mauve,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#A78BFA"},secondary:{bg:x.surface1,fg:x.text,titleFg:x.text,subtitleFg:x.overlay0,border:x.surface2},success:{bg:x.green,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.8)",border:"#16A34A"},warning:{bg:x.yellow,fg:x.base,titleFg:x.base,subtitleFg:"rgba(30, 30, 46, 0.7)",border:x.peach},danger:{bg:x.red,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:x.surface0,fg:x.overlay0},primary:{bg:x.mauve,fg:x.base},info:{bg:x.sky,fg:x.base},success:{bg:x.green,fg:x.base},warning:{bg:x.yellow,fg:x.base},danger:{bg:x.red,fg:"#ffffff"}},page:{default:{bg:x.base,titleFg:x.text,subtitleFg:x.overlay0,border:x.overlay0},primary:{bg:x.base,titleFg:x.mauve,subtitleFg:x.overlay0,border:x.mauve},secondary:{bg:x.base,titleFg:x.subtext1,subtitleFg:x.overlay0,border:x.surface0}},appshell:{bg:x.crust,dividerFg:x.overlay0,sidebarBg:x.base,asideBg:x.base},collapsible:{default:{headerBg:x.surface0,headerFg:x.text,contentBg:x.base,border:x.overlay0,iconFg:x.overlay0},primary:{headerBg:x.surface1,headerFg:x.mauve,contentBg:x.base,border:x.mauve,iconFg:x.mauve},secondary:{headerBg:x.surface1,headerFg:x.text,contentBg:x.surface0,border:x.surface2,iconFg:x.overlay0}},commandPalette:{bg:x.surface0,border:x.overlay0,inputBg:x.base,inputFg:x.text,inputPlaceholder:x.overlay0,itemFg:x.text,itemHoverBg:x.surface1,itemSelectedBg:x.surface2,itemSelectedFg:x.text,highlightFg:x.mauve,categoryFg:x.overlay0},splitPanel:{bg:x.base,dividerBg:x.overlay0,dividerHoverBg:x.surface1,dividerActiveBg:x.mauve,border:x.overlay0,titleFg:x.overlay0},toast:{success:{bg:lo.success[900],fg:lo.success[100],border:x.green,iconFg:x.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:x.red,iconFg:x.red},warning:{bg:lo.warning[900],fg:lo.warning[100],border:x.yellow,iconFg:x.yellow},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:x.sky,iconFg:x.sky}},window:{default:{bg:x.base,fg:x.text,titleBarBg:x.surface0,titleBarFg:x.text,border:x.overlay0,buttonFg:x.overlay0,closeFg:x.red},primary:{bg:x.base,fg:x.text,titleBarBg:x.mauve,titleBarFg:x.base,border:"#A78BFA",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},success:{bg:x.base,fg:x.text,titleBarBg:x.green,titleBarFg:x.base,border:"#16A34A",buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},warning:{bg:x.base,fg:x.text,titleBarBg:x.yellow,titleBarFg:x.base,border:x.peach,buttonFg:"rgba(30, 30, 46, 0.8)",closeFg:x.base},danger:{bg:x.base,fg:x.text,titleBarBg:x.red,titleBarFg:"#ffffff",border:"#E11D48",buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var co={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:he[50],100:he[100],200:he[200],300:he[300],400:he[400],500:he[500],600:he[600],700:he[700],800:he[800],900:he[900]},warning:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},danger:{50:ue[50],100:ue[100],200:ue[200],300:ue[300],400:ue[400],500:ue[500],600:ue[600],700:ue[700],800:ue[800],900:ue[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},c_={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:co,background:{lowest:"#000000",base:"#000000",subtle:m[950],surface:m[900],raised:m[800],elevated:m[700],popover:m[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:m[100],muted:m[300],disabled:m[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:he[400],warning:ge[400],critical:ue[400],info:Xe[400],highlight:te[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:te[400],ring:{color:te[400],width:3}},disabled:{opacity:.5,bg:m[900],fg:m[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:m[500],subtle:m[700],strong:m[300],accent:te[400],danger:ue[400]},opacity:{disabled:.5,muted:.8,overlay:.8,ghost:.25},components:{button:{primary:{bg:te[500],fg:"#ffffff",hoverBg:te[400],activeBg:te[600],border:te[300]},secondary:{bg:m[800],fg:"#ffffff",hoverBg:m[700],activeBg:m[900],border:m[500]},outline:{bg:"transparent",fg:te[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:te[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:m[950],headerBg:m[900],footerBg:m[900],border:m[500]},menu:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],activeBg:te[800],selectedBg:te[900],disabledFg:m[500]}},tabs:{bg:m[950],border:m[500],tab:{fg:m[300],activeFg:"#ffffff",activeBg:m[800],hoverFg:m[100],indicator:te[400]}},dropdown:{bg:m[950],border:m[500],item:{fg:"#ffffff",hoverBg:m[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:m[400],border:m[500],focusBorder:te[400],invalidBorder:ue[400]},checkbox:{bg:"#000000",border:m[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:m[400],checkedBorder:te[400]},tooltip:{bg:m[800],fg:"#ffffff"},modal:{bg:m[950],border:m[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:m[700],fg:"#ffffff"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:m[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:m[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:m[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},success:{bg:he[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:he[300]},warning:{bg:ge[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[600]},danger:{bg:ue[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ue[300]}},statusbar:{default:{bg:m[950],fg:m[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Xe[500],fg:"#000000"},success:{bg:he[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:m[300],border:m[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:m[300],border:te[400]},secondary:{bg:"#000000",titleFg:m[100],subtitleFg:m[400],border:m[700]}},appshell:{bg:"#000000",dividerFg:m[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:m[950],headerFg:"#ffffff",contentBg:"#000000",border:m[500],iconFg:m[300]},primary:{headerBg:m[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:m[900],headerFg:"#ffffff",contentBg:m[950],border:m[500],iconFg:m[300]}},commandPalette:{bg:m[950],border:m[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:m[400],itemFg:"#ffffff",itemHoverBg:m[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:m[400]},splitPanel:{bg:"#000000",dividerBg:m[500],dividerHoverBg:m[400],dividerActiveBg:te[400],border:m[500],titleFg:m[300]},toast:{success:{bg:co.success[900],fg:co.success[100],border:he[400],iconFg:he[400]},error:{bg:co.danger[900],fg:co.danger[100],border:ue[400],iconFg:ue[400]},warning:{bg:co.warning[900],fg:co.warning[100],border:ge[400],iconFg:ge[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Xe[400],iconFg:Xe[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:m[950],titleBarFg:"#ffffff",border:m[500],buttonFg:m[300],closeFg:ue[400]},primary:{bg:"#000000",fg:"#ffffff",titleBarBg:te[500],titleBarFg:"#ffffff",border:te[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:"#000000",fg:"#ffffff",titleBarBg:he[500],titleBarFg:"#000000",border:he[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:ge[400],titleBarFg:"#000000",border:ge[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ue[500],titleBarFg:"#ffffff",border:ue[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var VL={primary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},secondary:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},success:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},warning:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},danger:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]},neutral:{50:m[50],100:m[100],200:m[200],300:m[300],400:m[400],500:m[500],600:m[600],700:m[700],800:m[800],900:m[900]}},u_={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:VL,background:{lowest:m[950],base:m[900],subtle:m[800],surface:m[700],raised:m[600],elevated:m[500],popover:m[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:m[50],secondary:m[200],muted:m[400],disabled:m[500],inverse:{base:m[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:m[300],warning:m[400],critical:m[200],info:m[300],highlight:m[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:m[400],ring:{color:m[400],width:2}},disabled:{opacity:.4,bg:m[800],fg:m[500]},selected:{bg:m[700],fg:m[50]}},borders:{default:m[600],subtle:m[700],strong:m[400],accent:m[400],danger:m[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:m[300],fg:m[900],hoverBg:m[200],activeBg:m[400],border:"transparent"},secondary:{bg:m[700],fg:m[50],hoverBg:m[600],activeBg:m[800],border:"transparent"},outline:{bg:"transparent",fg:m[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:m[400]},ghost:{bg:"transparent",fg:m[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:m[800],headerBg:m[700],footerBg:m[700],border:m[600]},menu:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],activeBg:m[600],selectedBg:m[700],disabledFg:m[500]}},tabs:{bg:m[800],border:m[600],tab:{fg:m[400],activeFg:m[50],activeBg:m[700],hoverFg:m[200],indicator:m[300]}},dropdown:{bg:m[800],border:m[600],item:{fg:m[50],hoverBg:m[700],selectedBg:m[600]}},input:{bg:m[800],fg:m[50],placeholder:m[500],border:m[600],focusBorder:m[400],invalidBorder:m[300]},checkbox:{bg:m[800],border:m[500],checkColor:m[900],checkedBg:m[300]},radio:{bg:m[800],dotColor:m[300],border:m[500],checkedBorder:m[300]},tooltip:{bg:m[700],fg:m[50]},modal:{bg:m[800],border:m[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:m[700],fg:m[50]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},list:{item:{bg:"transparent",hoverBg:m[800],selectedBg:m[700],fg:m[50]}},header:{default:{bg:m[800],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]},secondary:{bg:m[700],fg:m[50],titleFg:m[50],subtitleFg:m[400],border:m[600]},success:{bg:m[400],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[500]},warning:{bg:m[500],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[600]},danger:{bg:m[300],fg:m[900],titleFg:m[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:m[400]}},statusbar:{default:{bg:m[800],fg:m[400]},primary:{bg:m[300],fg:m[900]},info:{bg:m[400],fg:m[900]},success:{bg:m[400],fg:m[900]},warning:{bg:m[500],fg:m[900]},danger:{bg:m[300],fg:m[900]}},page:{default:{bg:m[900],titleFg:m[50],subtitleFg:m[400],border:m[600]},primary:{bg:m[900],titleFg:m[200],subtitleFg:m[400],border:m[500]},secondary:{bg:m[900],titleFg:m[300],subtitleFg:m[500],border:m[700]}},appshell:{bg:m[950],dividerFg:m[600],sidebarBg:m[900],asideBg:m[900]},collapsible:{default:{headerBg:m[800],headerFg:m[50],contentBg:m[900],border:m[600],iconFg:m[400]},primary:{headerBg:m[700],headerFg:m[200],contentBg:m[900],border:m[500],iconFg:m[300]},secondary:{headerBg:m[700],headerFg:m[50],contentBg:m[800],border:m[600],iconFg:m[400]}},commandPalette:{bg:m[800],border:m[600],inputBg:m[900],inputFg:m[50],inputPlaceholder:m[500],itemFg:m[50],itemHoverBg:m[700],itemSelectedBg:m[600],itemSelectedFg:m[50],highlightFg:m[200],categoryFg:m[500]},splitPanel:{bg:m[900],dividerBg:m[600],dividerHoverBg:m[500],dividerActiveBg:m[300],border:m[600],titleFg:m[400]},toast:{success:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]},error:{bg:m[800],fg:m[100],border:m[300],iconFg:m[200]},warning:{bg:m[800],fg:m[100],border:m[500],iconFg:m[400]},info:{bg:m[800],fg:m[100],border:m[400],iconFg:m[300]}},window:{default:{bg:m[900],fg:m[50],titleBarBg:m[800],titleBarFg:m[50],border:m[600],buttonFg:m[400],closeFg:m[300]},primary:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},success:{bg:m[900],fg:m[50],titleBarBg:m[400],titleBarFg:m[900],border:m[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},warning:{bg:m[900],fg:m[50],titleBarBg:m[500],titleBarFg:m[900],border:m[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]},danger:{bg:m[900],fg:m[50],titleBarBg:m[300],titleBarFg:m[900],border:m[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:m[900]}}},borderRadius:"none"};var f_=Symbol("tuiuiu.theme-runtime-state");function p_(){let[e,t]=gr(Kp);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function zL(e){if(e.id===0)return p_();let t=It(f_,p_),[r,n]=gr(ds(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function g_(){let e=We();return Oe(f_,()=>zL(e),e)}function h_(){return ds(g_().currentTheme)}var JL={dark:Kp,light:r_,monokai:n_,dracula:o_,nord:s_,solarizedDark:i_,gruvbox:a_,tokyoNight:l_,catppuccin:d_,highContrastDark:c_,monochrome:u_},F9=Object.keys(JL);function YL(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function Rt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&YL(e)>.4?"black":"white"}function QL(e,t=500){let r=t_[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var XL={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>Rt(e.palette.primary[500]),"primary-foreground":e=>Rt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>Rt(e.palette.secondary[500]),"secondary-foreground":e=>Rt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>Rt(e.accents.positive),"success-foreground":e=>Rt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>Rt(e.accents.warning),"warning-foreground":e=>Rt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>Rt(e.accents.critical),"danger-foreground":e=>Rt(e.accents.critical),errorForeground:e=>Rt(e.accents.critical),destructiveForeground:e=>Rt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>Rt(e.accents.info),"info-foreground":e=>Rt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>Rt(e.palette.primary[400]),"accent-foreground":e=>Rt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function m_(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=ds(g_().currentTheme),r=XL[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return QL(o,i)}return e}var ZL={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},b_=Symbol("tuiuiu.perf-inspector-runtime-state");function ej(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function y_(e){let t=e.id===0?null:It(b_,()=>y_(Ir())),r=ej(t?.config??ZL);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function k_(){let e=We();return Oe(b_,()=>y_(e),e)}function tj(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function rj(e,t){let r=sj().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 nj(e,t){e.ring.length!==e.config.maxFrames&&rj(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 oj(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 w_(e,t={}){let r=k_(),n=tj(e),o=Math.max(0,n-r.config.budget.frameMs),s=oj(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;bR({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(nj(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function sj(){let e=k_(),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 ij={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function uo(e,t){return PR(e,t,ij)}function Vp(e){AR(e)}function Sn(e,t){OR(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),w_(e,{renderer:t.renderer})}var aj=.4,lj=64;function po(){return typeof performance<"u"?performance.now():Date.now()}var R_=new WeakMap;function dj(){let e=h_(),t=R_.get(e);return t||(t=new Map,R_.set(e,t)),t}function cj(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&&uj(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 uj(e,t){let r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(let o of r)if(e[o]!==t[o])return!1;return!0}function E_(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 v_(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 pj(e,t,r){let n=e.map(s=>v_(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(!(E_(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 fj(e,t,r){let n=new Map;for(let i of e){let a=v_(i,t,r);if(!a)continue;let l=a.x,d=a.x+a.width,c=a.y+a.height;for(let u=a.y;u<c;u++){let p=n.get(u);p?p.push({x1:l,x2:d}):n.set(u,[{x1:l,x2:d}])}}let o=[...n.keys()].sort((i,a)=>i-a),s=[];for(let i of o){let a=n.get(i);a.sort((d,c)=>d.x1-c.x1);let l=a[0];for(let d=1;d<a.length;d++){let c=a[d];if(c.x1<=l.x2){l.x2=Math.max(l.x2,c.x2);continue}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1}),l=c}s.push({x:l.x1,y:i,width:l.x2-l.x1,height:1})}return s}function S_(e={}){let{stdout:t=process.stdout,showCursor:r=!1,useDelta:n=!0,debug:o=!1}=e,s=t.columns||80,i=t.rows||24,a=new Pi(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function h(I){H(t.columns||80,t.rows||24);let W=uo(I,{width:s,height:i});R(W)}function R(I){H(I.info.viewport.width,I.info.viewport.height),G(I),rs(I.layout),ui(),c=I.root,u=I}function T(){l=!0,c?h(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Pi(s,i),l=!0}function D(){!r&&d&&(us(t),d=!1)}function M(){let I=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:y,totalCells:I,updatePercentage:I>0?y/I*100:0}}function N(I,W){s=I,i=W,a.resize(s,i),l=!0}function H(I,W){!r&&!d&&(ps(t),d=!0),(I!==s||W!==i)&&N(I,W)}function G(I){let W=po(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=xj(u,I),Ae=Br(),Ee=QR(Ae),ke=XR(Ae),Y=Re=>{let De=po();t.write(Re),q+=po()-De,oe+=typeof Re=="string"?Buffer.byteLength(Re):Re.byteLength};if(!l&&n&&u){let{renderRects:Re,diffRects:De}=hj(u.drawCommands,I.drawCommands,s,i);if(Ct(I,"dirtyRectCount",Re.length),Ct(I,"diffRectCount",De.length),Re.length===0){pe&&Y(pe),y=0,Ct(I,"patchCount",0),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}let ve=mj(Re);if(!(Re.length>lj||ve>Z*aj)){Ee&&Y(Ee),bj(se,Re),kj(I.drawCommands,Re,se,I.reservedRegions);let Se=ae.diffRects(se,De);if(ae.applyPatches(Se),se.clearDamage(),y=Se.length,Ct(I,"patchCount",Se.length),o&&console.error(`[delta-render] dirty-rects: ${Re.length}, patches: ${Se.length}, cells: ${Z}`),pe&&Y(pe),Se.length>0){let fe=Wp(Se,s,!0);Y(fe),g++}ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}}Ee&&Y(Ee),se.clear(),A_(I.drawCommands,se,I.reservedRegions);let de=a.swap();if(y=de.length,Ct(I,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let Re=Il(a.getFrontBuffer());pe&&Y(pe),Y("\x1B[H"),Y(Re),f++,l=!1,ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"});return}if(pe&&Y(pe),de.length>0){let Re=Wp(de,s,!0);Y(Re),g++}l=!1,ke&&Y(ke),Ct(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Sn(I,{renderer:"delta"})}return{render:h,renderFrame:R,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function gj(e){if(e.maxWidth<=0||e.text.length===0)return{x:e.x,y:e.y,width:0,height:0};let t=0,r=-1,n=Yn(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,ye(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function zp(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:gj(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 hj(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&&cj(a,l)||(a&&o.push(zp(a)),l&&o.push(zp(l)))}return{renderRects:pj(o,r,n),diffRects:fj(o,r,n)}}function mj(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function bj(e,t){let r=$r();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function T_(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function br(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,ye(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||T_(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function yj(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)&&!T_(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function P_(e,t,r){switch(e.type){case"box":wj(e,t,r);break;case"text":I_(e,t,r);break;case"terminal-image":Rj(e,t);break}}function kj(e,t,r,n){for(let o of e){let s=zp(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(E_(s,i)){P_(o,r,n);break}}}}function A_(e,t,r){for(let n of e)P_(n,t,r)}function C_(e,t=new Nr(e.info.viewport.width,e.info.viewport.height)){return A_(e.drawCommands,t,e.reservedRegions),t}function wj(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:y,clip:h}=e,R=a?fo(a):void 0,T=c?fo(c):void 0,$=f?fo(f):T;if(R||l!==" "){let D=d&&d!=="none"?1:0,M=n+D,N=o+D,H=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let I=0;I<G;I++)yj(t,r,M,N+I,H,l,void 0,R,{},h)}if(d&&d!=="none"){let D=Hp[d]??Hp.single,M={},N=u?.top!==!1,H=u?.bottom!==!1,G=u?.left!==!1,I=u?.right!==!1;if(N){let W=G?D.topLeft:D.top;br(t,r,n,o,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o,D.top,T,void 0,M,h);if(s>1){let q=I?D.topRight:D.top;br(t,r,n+s-1,o,q,T,void 0,M,h)}if(p&&s>4){let q=s-4,ae=` ${Qr(Kk(p),q,{truncationCharacter:""})} `,se=ye(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Ae=0,Ee=pe;for(;Ae<ae.length&&Ee<n+s-1;){let ke=Jn(ae,Ae);if(!ke)break;Ae=ke.nextIndex;let Y=ye(ke.symbol);Y<=0||Ee+Y>n+s-1||(br(t,r,Ee,o,ke.symbol,$,void 0,y?{...M,bold:!0}:M,h),Ee+=Y)}}}for(let W=1;W<i-1;W++)G&&br(t,r,n,o+W,D.left,T,void 0,M,h),I&&s>1&&br(t,r,n+s-1,o+W,D.right,T,void 0,M,h);if(H&&i>1){let W=G?D.bottomLeft:D.bottom;br(t,r,n,o+i-1,W,T,void 0,M,h);for(let q=1;q<s-1;q++)br(t,r,n+q,o+i-1,D.bottom,T,void 0,M,h);if(s>1){let q=I?D.bottomRight:D.bottom;br(t,r,n+s-1,o+i-1,q,T,void 0,M,h)}}}}function Rj(e,t){e.cellRender&&I_({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:F_(e),style:{},clip:e.clip},t,[])}function D_(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 O_(e){let t=D_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function Ai(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${O_(e)}:${e.x}:${e.y}`)}function fs(e){return[Ai(e),e.x,e.y,O_(e)].join(":")}function F_(e){let t=D_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:_l(e.protocol,e.source,t)}function __(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 _j(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ai(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ai(s));if(!i||fs(s)!==fs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=as.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${xl("kitty")}\x1B8`}}return o}function xj(e,t){let r=__(e),n=__(t),o=r.map(fs).join("|"),s=n.map(fs).join("|");if(e&&o===s)return"";let i=_j(r,n),a=new Map(r.map(l=>[Ai(l),l]));for(let l of n){let d=a.get(Ai(l));d&&fs(d)===fs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=F_(l),i+="\x1B8")}return i}function gs(e){if(e===void 0||!/^\d{1,3}$/u.test(e))return null;let t=Number(e);return t>=0&&t<=255?t:null}function Ej(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=gs(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(gs);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function vj(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=gs(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[gs(e[t+2]),gs(e[t+3]),gs(e[t+4])];return{color:n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]},consumed:4}}return{color:null,consumed:0}}var x_={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function Sj(e,t,r,n={}){let o=[],s=t,i=r,a={...n},l="",d=0;for(;d<e.length;){if(e[d]==="\x1B"){let c=zn(e,d);if(!c){d++;continue}if(l&&(o.push({text:l,fg:s,bg:i,attrs:{...a}}),l=""),c.kind==="sgr"){let u=c.value.slice(2,-1),p=u===""?["0"]:u.split(";");for(let g=0;g<p.length;g++){let y=p[g].split(":"),h=Number(y[0]||0);if(y.length>1){if(h===4){let R=Number(y[1]||0);R in x_&&(a.underline=x_[R])}else if(h===38||h===48||h===58){let R=Ej(y);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R)}continue}if(h===0)s=t,i=r,a={...n};else if(h===1)a.bold=!0;else if(h===2)a.dim=!0;else if(h===3)a.italic=!0;else if(h===4)a.underline=!0;else if(h===5)a.blink=!0;else if(h===7)a.inverse=!0;else if(h===8)a.hidden=!0;else if(h===9)a.strikethrough=!0;else if(h===21)a.underline="double";else if(h===22)a.bold=!1,a.dim=!1;else if(h===23)a.italic=!1;else if(h===24)a.underline=!1;else if(h===25)a.blink=!1;else if(h===27)a.inverse=!1;else if(h===28)a.hidden=!1;else if(h===29)a.strikethrough=!1;else if(h>=30&&h<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][h-30];else if(h===39)s=t;else if(h>=40&&h<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][h-40];else if(h===49)i=r;else if(h===59)a.underlineColor=n.underlineColor;else if(h>=90&&h<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-90];else if(h>=100&&h<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][h-100];else if(h===38||h===48||h===58){let{color:R,consumed:T}=vj(p,g);R&&(h===38?s=R:h===48?i=R:a.underlineColor=R),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function I_(e,t,r){let{x:n,y:o,maxWidth:s,text:i,style:a,inheritedBackgroundColor:l}=e;if(s<=0)return;let d=e.prebuiltAnsi===!0,c=d?void 0:a.color?fo(a.color):void 0,u=d?void 0:a.backgroundColor?fo(a.backgroundColor):l?fo(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?fo(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Yn(i,s,a.wrap);if(g){let y=Sj(f.join(`
|
|
197
197
|
`),c,u,p),h=0,R=0;for(let T of y){let $=0;for(;$<T.text.length;){let D=Jn(T.text,$);if(!D)break;let M=D.symbol;if(M===`
|
|
198
|
-
`){R++,h=0,$=D.nextIndex;continue}let N=ye(M);N>0&&(br(t,r,n+h,o+R,M,T.fg,T.bg,T.attrs,e.clip),h+=N),$=D.nextIndex}}}else for(let y=0;y<f.length;y++){let h=0,R=0;for(;R<f[y].length;){let T=Jn(f[y],R);if(!T)break;let $=T.symbol;if(h>=s)break;let D=ye($);D>0&&(br(t,r,n+h,o+y,$,c,u,p,e.clip),h+=D),R=T.nextIndex}}}function fo(e){let t=
|
|
198
|
+
`){R++,h=0,$=D.nextIndex;continue}let N=ye(M);N>0&&(br(t,r,n+h,o+R,M,T.fg,T.bg,T.attrs,e.clip),h+=N),$=D.nextIndex}}}else for(let y=0;y<f.length;y++){let h=0,R=0;for(;R<f[y].length;){let T=Jn(f[y],R);if(!T)break;let $=T.symbol;if(h>=s)break;let D=ye($);D>0&&(br(t,r,n+h,o+y,$,c,u,p,e.clip),h+=D),R=T.nextIndex}}}function fo(e){let t=dj(),r=t.get(e);if(r)return r;let n=m_(e);return t.set(e,n),n}var Z9=Symbol("tuiuiu.delta-renderer-state");function M_(){return typeof performance<"u"?performance.now():Date.now()}function j_(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=j_(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function Tj(e,t){return typeof e=="object"?{width:e.width??process.stdout.columns??80,height:e.height??1e3,fullHeight:e.fullHeight??!1}:{width:e??process.stdout.columns??80,height:t??1e3,fullHeight:!1}}function Yp(e,t={}){let r=M_(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=j_(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Nr(e.info.viewport.width,u);C_(e,p);let g=Il(p,n),f=Cj(e,o);return it(e,"ansiRenderMs",M_()-r),f+g}function B_(e,t,r){let n=Tj(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=uo(e,{width:n.width,height:s});return Yp(i,{fullHeight:n.fullHeight})}function $_(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 N_(e){let t=$_(e);return e.protocolState?e.protocolState.getCacheKey(e.source,{protocol:e.protocol,...t}):[e.protocol,e.kittyImageId??"",e.id??"",e.source.hash,t.width,t.height,t.fit,t.threshold??"",t.dither?1:0,t.preserveAspectRatio?1:0].join(":")}function Ci(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${N_(e)}:${e.x}:${e.y}`)}function hs(e){return[Ci(e),e.x,e.y,N_(e)].join(":")}function Pj(e){let t=$_(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:_l(e.protocol,e.source,t)}function L_(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function Jp(e,t){if(!qw(t))return e;let r=Br();return r.multiplexer?Ml(e,r.multiplexer):e}function Aj(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ci(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ci(s));if(!i||hs(s)!==hs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=Jp(`\x1B7\x1B[H${as.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return Jp(`\x1B7\x1B[H${xl("kitty")}\x1B8`,"kitty")}}return o}function Cj(e,t){let r=L_(e);if(r.length===0&&!t)return"";let n=L_(t),o=n.map(hs).join("|"),s=r.map(hs).join("|");if(t&&o===s)return"";let i=Aj(n,r),a=new Map(n.map(l=>[Ci(l),l]));for(let l of r){let d=a.get(Ci(l));if(d&&hs(d)===hs(l))continue;let c=Pj(l);i+=Jp(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function jl(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=xi(()=>gr(e)),o=tr();return pr(o,n),n}return t}function G_(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=xi(e);return pr(tr(),n),n}return t}function Di(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=tr(),o={effect:null,fn:e,dispose:null};pr(n,o);let s=new _n(()=>{let a=jr(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,Xn(i,n),i}else return t.fn=e,t.dispose}var kq=Symbol("tuiuiu.keyboard-protocol-runtime-state");function W_(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,y)=>{if(f===void 0)return y??null;if(!/^\d+$/u.test(f))return null;let h=Number(f);return Number.isSafeInteger(h)?h:null},n=f=>f>=0&&f<=1114111&&!(f>=55296&&f<=57343),o=r(t[1],0),s=r(t[2]),i=r(t[3]),a=r(t[4],1),l=r(t[5],1),d=t[6];if(o===null||a===null||a<1||l===null||s!==null&&!n(s)||i!==null&&!n(i))return null;let c=a-1,u={shift:!!(c&1),alt:!!(c&2),ctrl:!!(c&4),super:!!(c&8),hyper:!!(c&16),meta:!!(c&32),capsLock:!!(c&64),numLock:!!(c&128)},p="press";l===2?p="repeat":l===3&&(p="release");let g="";if(d){let f=d.split(":").map(y=>r(y));if(f.length===0||f.some(y=>y===null||!n(y)))return null;g=f.map(y=>String.fromCodePoint(y)).join("")}else o>=32&&o<127&&(g=String.fromCharCode(o));return{keyCode:o,baseKey:i??void 0,shiftedKey:s??void 0,text:g,eventType:p,modifiers:u}}var Qp="\x1B[200~",ms="\x1B[201~",Dj="\x1B[I",Oj="\x1B[O";function H_(){return"\x1B[?2004h"}function U_(){return"\x1B[?2004l"}function q_(){return"\x1B[?1004h"}function K_(){return"\x1B[?1004l"}function V_(e){return e===Dj?{focused:!0}:e===Oj?{focused:!1}:null}function z_(){return"\x1B[?1049h"}function Xp(){return"\x1B[?1049l"}var Fj={OP:"f1",OQ:"f2",OR:"f3",OS:"f4","[11~":"f1","[12~":"f2","[13~":"f3","[14~":"f4","[[A":"f1","[[B":"f2","[[C":"f3","[[D":"f4","[[E":"f5","[15~":"f5","[17~":"f6","[18~":"f7","[19~":"f8","[20~":"f9","[21~":"f10","[23~":"f11","[24~":"f12","[A":"up","[B":"down","[C":"right","[D":"left","[E":"clear","[F":"end","[H":"home",OA:"up",OB:"down",OC:"right",OD:"left",OE:"clear",OF:"end",OH:"home","[1~":"home","[2~":"insert","[3~":"delete","[4~":"end","[5~":"pageup","[6~":"pagedown","[[5~":"pageup","[[6~":"pagedown","[7~":"home","[8~":"end","[a":"up","[b":"down","[c":"right","[d":"left","[e":"clear","[2$":"insert","[3$":"delete","[5$":"pageup","[6$":"pagedown","[7$":"home","[8$":"end",Oa:"up",Ob:"down",Oc:"right",Od:"left",Oe:"clear","[2^":"insert","[3^":"delete","[5^":"pageup","[6^":"pagedown","[7^":"home","[8^":"end","[Z":"tab"},Ij=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),Mj=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),Lj=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,jj=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,Bj=/^\x1b\[27;(\d+);(\d+)~/;function $j(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 Y_(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function J_(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!Y_(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function Nj(e,t){switch(t){case"up":e.upArrow=!0;break;case"down":e.downArrow=!0;break;case"left":e.leftArrow=!0;break;case"right":e.rightArrow=!0;break;case"pageup":e.pageUp=!0;break;case"pagedown":e.pageDown=!0;break;case"home":e.home=!0;break;case"end":e.end=!0;break;case"insert":e.insert=!0;break;case"delete":e.delete=!0;break;case"clear":e.clear=!0;break;case"tab":e.tab=!0;break;case"f1":e.f1=!0;break;case"f2":e.f2=!0;break;case"f3":e.f3=!0;break;case"f4":e.f4=!0;break;case"f5":e.f5=!0;break;case"f6":e.f6=!0;break;case"f7":e.f7=!0;break;case"f8":e.f8=!0;break;case"f9":e.f9=!0;break;case"f10":e.f10=!0;break;case"f11":e.f11=!0;break;case"f12":e.f12=!0;break}}function Zp(e){let t=e.toString();Buffer.isBuffer(e)&&e[0]!==void 0&&e[0]>127&&e[1]===void 0&&(t="\x1B"+String.fromCharCode(e[0]-128));let r={upArrow:!1,downArrow:!1,leftArrow:!1,rightArrow:!1,pageUp:!1,pageDown:!1,home:!1,end:!1,insert:!1,return:!1,escape:!1,tab:!1,backspace:!1,delete:!1,clear:!1,ctrl:!1,shift:!1,meta:!1,option:!1,f1:!1,f2:!1,f3:!1,f4:!1,f5:!1,f6:!1,f7:!1,f8:!1,f9:!1,f10:!1,f11:!1,f12:!1},n="";if(t==="\r")return r.return=!0,{input:n,key:r,length:1};if(t===`
|
|
199
199
|
`)return r.return=!0,{input:n,key:r,length:1};if(t==="\x1B\r"||t===`\x1B
|
|
200
|
-
`)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=Bj.exec(t);if(o){let d=N_(o[0]);if(d){r.shift=d.modifiers.shift,r.option=d.modifiers.alt,r.ctrl=d.modifiers.ctrl,r.meta=d.modifiers.alt||d.modifiers.super||d.modifiers.hyper||d.modifiers.meta,r.eventType=d.eventType;let c=o[0].split(";").length>=3;return n=V_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=$j.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(Nj(r,d)&&z_(c))return n=V_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=jj.exec(t);if(i&&i.index===0){let d=[...t];d[0]==="\x1B"&&d[1]==="\x1B"&&(r.option=!0);let c=[i[1],i[2],i[4],i[6]].filter(Boolean).join(""),u=(i[3]||i[5]||1)-1;r.ctrl=!!(u&4),r.meta=!!(u&10),r.shift=!!(u&1);let p=Ij[c];return p&&Gj(r,p),Mj.has(c)&&(r.shift=!0),Lj.has(c)&&(r.ctrl=!0),{input:n,key:r,length:i[0].length}}let a=/^(?:)([a-zA-Z0-9])/.exec(t);if(a)return r.meta=!0,r.shift=/^[A-Z]$/.test(a[1]),n=a[1].toLowerCase(),{input:n,key:r,length:2};let l=/^[^\x00-\x1f\x7f]+/u.exec(t);if(l){let d=l[0];return d.length===1&&d>="A"&&d<="Z"?(r.shift=!0,n=d.toLowerCase(),{input:n,key:r,length:1}):(n=d,{input:n,key:r,length:d.length})}return{input:n,key:r,length:t.length}}function ef(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=ur(null);if(i||s===null){let c=function(){return jr(d)},a=(u,p,g)=>{let f=c();if(f&&f.registered)return f.handler(u,p,g)},l={handler:e,wrapper:a,registered:r,handlerId:null,priority:n,stopPropagation:o},d=er();pr(d,l),r&&(l.handlerId=hl(a,{priority:n,stopPropagation:o})),Xn(()=>{l.handlerId!==null&&(gi(l.handlerId),l.handlerId=null),l.registered=!1},d)}else{let a=s.registered;s.handler=e,s.registered=r;let l=s.priority!==n,d=s.stopPropagation!==o;r&&!a?(s.priority=n,s.stopPropagation=o,s.handlerId=hl(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(gi(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&gi(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=hl(s.wrapper,{priority:n,stopPropagation:o}))}}function J_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(J_):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function yr(e,...t){return{type:"box",props:{...e},children:J_(t.length>0?t:e.children)}}function mt(e,...t){let r=t.filter(o=>o!=null),n=r.length>0?r.join(""):Array.isArray(e.children)?e.children.filter(o=>o!=null).join(""):String(e.children??"");return{type:"text",props:{...e,children:n},children:[]}}var Wj=0,Y_=Symbol("tuiuiu.focus-zone-manager"),tf=class e{zones=new Map;stack=[];activeZoneId=null;rootZoneId=null;maxStackDepth=10;listeners=new Set;constructor(){this.createZone({id:"__root__"}),this.rootZoneId="__root__",this.activeZoneId="__root__"}static getInstance(){return Oe(Y_,()=>new e)}static reset(){ul(Y_)}[Fr](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Wj++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function Q_(){return tf.getInstance()}var Oi=class{zoneManager=Q_();zoneId;constructor(t="__root__"){this.zoneId=t}register(t,r){this.zoneManager.registerElement(t,this.zoneId,{onFocus:r})}unregister(t){this.zoneManager.unregisterElement(t,this.zoneId)}focus(t){this.zoneManager.focusElement(t,this.zoneId)}focusNext(){this.zoneManager.focusNextInZone(this.zoneId)}focusPrevious(){this.zoneManager.focusPreviousInZone(this.zoneId)}blur(){this.zoneManager.blur(this.zoneId)}getActiveId(){return this.zoneManager.getActiveId(this.zoneId)??void 0}};import{StringDecoder as Hj}from"node:string_decoder";function X_(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function Uj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function qj(e){let t=0;for(;t<e.length;){let r=e.indexOf("\x1B",t);if(r===-1)return-1;if(r+1>=e.length)return r;let n=e[r+1];if(n==="["){let o=r+2;for(;o<e.length;){let s=e.charCodeAt(o);if(s>=64&&s<=126)break;o++}if(o>=e.length)return r;t=o+1;continue}if(n==="]"||n==="P"||n==="^"||n==="_"){let o=r+2,s=!1;for(;o<e.length;){if(n==="]"&&e.charCodeAt(o)===7){o++,s=!0;break}if(e[o]==="\x1B"&&e[o+1]==="\\"){o+=2,s=!0;break}o++}if(!s)return r;t=o;continue}if(n==="O"&&r+2>=e.length)return r;t=Math.min(e.length,r+(n==="O"?3:2))}return-1}function Kj(e){let t=qj(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function Vj(e){let t=Math.min(e.length,ms.length-1);for(let r=t;r>0;r--)if(e.endsWith(ms.slice(0,r)))return r;return 0}var rf=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new Hj("utf8");pendingInput="";pasteBuffer=null;pasteBufferBytes=0;pasteOverflowed=!1;pasteTerminatorPrefix="";disposed=!1;constructor(t={}){this.maxPasteBytes=t.maxPasteBytes??1024*1024,this.maxPendingEscapeBytes=t.maxPendingEscapeBytes??4096,this.pasteHeuristicThreshold=t.pasteHeuristicThreshold??32,X_(this.maxPasteBytes,"maxPasteBytes"),X_(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),Uj(this.pasteHeuristicThreshold,"pasteHeuristicThreshold")}get status(){return{pendingEscapeBytes:Buffer.byteLength(this.pendingInput,"utf8"),pasteBytes:this.pasteBufferBytes,pasteActive:this.pasteBuffer!==null,pasteOverflowed:this.pasteOverflowed}}push(t){if(this.disposed)return[];let r=typeof t=="string"?t:this.decoder.write(t);if(!r&&!this.pendingInput)return[];let n=this.pendingInput+r;this.pendingInput="";let{complete:o,pending:s}=Kj(n),i=o?this.processCompleteInput(o):[];return s&&(Buffer.byteLength(s,"utf8")>this.maxPendingEscapeBytes?i.push(...this.processCompleteInput(s)):this.pendingInput=s),i}flushPendingInput(){if(this.disposed||!this.pendingInput)return[];let t=this.pendingInput;return this.pendingInput="",this.processCompleteInput(t)}abortPaste(){let t=this.pasteBuffer!==null;this.pasteBuffer=null,this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="",t&&ms.startsWith(this.pendingInput)&&(this.pendingInput="")}dispose(){this.disposed||(this.disposed=!0,this.pendingInput="",this.abortPaste(),this.decoder.end())}appendPaste(t){if(this.pasteBuffer===null||this.pasteOverflowed||!t)return;let r=Buffer.byteLength(t,"utf8");if(this.pasteBufferBytes+r>this.maxPasteBytes){this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!0;return}this.pasteBuffer+=t,this.pasteBufferBytes+=r}consumeActivePaste(t,r){let n=this.pasteTerminatorPrefix+t;this.pasteTerminatorPrefix="";let o=n.indexOf(ms);if(o===-1){let s=Vj(n),i=n.length-s;return this.appendPaste(n.slice(0,i)),this.pasteTerminatorPrefix=n.slice(i),null}return this.appendPaste(n.slice(0,o)),!this.pasteOverflowed&&this.pasteBuffer!==null&&r.push({type:"paste",text:this.pasteBuffer,bracketed:!0}),this.abortPaste(),n.slice(o+ms.length)}processCompleteInput(t){let r=[],n=t;if(this.pasteBuffer!==null){let o=this.consumeActivePaste(n,r);if(o===null||(n=o,!n))return r}for(;n.length>0;){let o=n.indexOf(Qp);if(o!==-1){let s=n.slice(0,o);s&&r.push({type:"input",input:s}),this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="";let i=this.consumeActivePaste(n.slice(o+Qp.length),r);if(i===null)return r;n=i;continue}return n.length>this.pasteHeuristicThreshold&&!n.includes("\x1B")?(Buffer.byteLength(n,"utf8")<=this.maxPasteBytes&&r.push({type:"paste",text:n,bracketed:!1}),r):(r.push({type:"input",input:n}),r)}return r}};function Z_(e={}){return new rf(e)}function ex(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=y=>{typeof r.write=="function"&&r.write(y)},p=y=>{if(!(d||!t.isTTY||!t.setRawMode)){if(y){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(H_()),a&&o&&u(G_()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let y,h=R=>{try{R()}catch(T){y??=T}};if(c=0,h(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),h(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&h(()=>u(U_())),a&&o&&h(()=>u(W_())),y)throw y}}}function Wl(){let e=Zr();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Nl=new WeakSet,Gl=new WeakSet;function nf(e,t,r={}){let n=lp();if(n&&Zr(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(Nl.has(e)||Gl.has(t))throw new Error("[tuiuiu] A terminal stream cannot be shared by simultaneous apps. Use distinct stdin/stdout pairs or dispose the current owner first.");let u=Qk();Nl.add(e),Gl.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,h=!1,R=o,T,$=qe(u,()=>($R({stdout:t}),!!(e.isTTY&&p&&Br().focusEvents))),D=ex({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(Y){Nl.delete(e),Gl.delete(t);try{D.dispose()}finally{ts(u)}throw Y}Dp(u);let H=qe(u,()=>new Oi);gp(H,u);let G=Z_({maxPasteBytes:a,maxPendingEscapeBytes:l}),I=null,W=null,q=()=>{I&&(clearTimeout(I),I=null)},oe=()=>{q(),I=setTimeout(()=>{G.abortPaste(),I=null},Math.max(0,c))},ae=Y=>{let de=Y;for(;de.length>0;){let Re=q_(de.slice(0,3));if(Re){Nt(()=>{Cp(Re.focused)}),de=de.slice(3);continue}if(yp(de)){let fe=ki(de);if(fe){Nt(()=>{ls().handleMouseEvent(fe.event),kw(fe.event)}),de=de.slice(fe.length);continue}}let{input:De,key:ve,length:we}=Zp(de),Se=we>0?we:1;if(de=de.slice(Se),s&&ve.ctrl&&De==="c"){ke();return}if(R){if(ve.tab&&!ve.shift){Nt(()=>{H.focusNext()});continue}if(ve.tab&&ve.shift){Nt(()=>{H.focusPrevious()});continue}if(ve.escape&&H.getActiveId()!==void 0){Nt(()=>{H.blur()});continue}}Nt(()=>{bw(De,ve)})}},se=Y=>{for(let de of Y){if(h)return;de.type==="paste"?Nt(()=>{Rw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{h||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!h&&(se(G.flushPendingInput()),Z())},Ae=Xr(u,Y=>{h||(se(G.push(Y)),Z())});e.on("data",Ae);let Ee=()=>{if(h)return;h=!0;let Y=de=>{try{de()}catch(Re){console.error("[tuiuiu] Error while disposing app state:",Re)}};try{Y(()=>e.off("data",Ae)),W&&(clearTimeout(W),W=null),q(),Y(()=>G.dispose()),Y(()=>D.dispose()),Y(()=>gl(u)),Y(()=>Dp(u)),Y(()=>yw(u)),Y(()=>_w(u)),Y(()=>ww(u)),Y(()=>kl(u)),Y(()=>Ow(u)),Y(()=>gp(null,u)),Y(()=>{Zr(u)===T&&fp(null,u)})}finally{Nl.delete(e),Gl.delete(t),g.clear(),ts(u)}},ke=Y=>{if(f)return;f=!0,y=Y;let de=[...g];g.clear(),Ee();for(let Re of de)try{Re(Y)}catch(De){console.error("[tuiuiu] Error in app exit callback:",De)}Y&&console.error(Y),i&&process.exit(Y?1:0)};return T={exit:ke,dispose:Ee,stdin:e,stdout:t,writeLine:Y=>{let de=Xo(String(Y)).replace(/\r\n?/g,`
|
|
200
|
+
`)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=jj.exec(t);if(o){let d=W_(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=J_(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=Bj.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if($j(r,d)&&Y_(c))return n=J_(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=Lj.exec(t);if(i&&i.index===0){let d=[...t];d[0]==="\x1B"&&d[1]==="\x1B"&&(r.option=!0);let c=[i[1],i[2],i[4],i[6]].filter(Boolean).join(""),u=(i[3]||i[5]||1)-1;r.ctrl=!!(u&4),r.meta=!!(u&10),r.shift=!!(u&1);let p=Fj[c];return p&&Nj(r,p),Ij.has(c)&&(r.shift=!0),Mj.has(c)&&(r.ctrl=!0),{input:n,key:r,length:i[0].length}}let a=/^(?:)([a-zA-Z0-9])/.exec(t);if(a)return r.meta=!0,r.shift=/^[A-Z]$/.test(a[1]),n=a[1].toLowerCase(),{input:n,key:r,length:2};let l=/^[^\x00-\x1f\x7f]+/u.exec(t);if(l){let d=l[0];return d.length===1&&d>="A"&&d<="Z"?(r.shift=!0,n=d.toLowerCase(),{input:n,key:r,length:1}):(n=d,{input:n,key:r,length:d.length})}return{input:n,key:r,length:t.length}}function ef(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=ur(null);if(i||s===null){let c=function(){return jr(d)},a=(u,p,g)=>{let f=c();if(f&&f.registered)return f.handler(u,p,g)},l={handler:e,wrapper:a,registered:r,handlerId:null,priority:n,stopPropagation:o},d=tr();pr(d,l),r&&(l.handlerId=fl(a,{priority:n,stopPropagation:o})),Xn(()=>{l.handlerId!==null&&(gi(l.handlerId),l.handlerId=null),l.registered=!1},d)}else{let a=s.registered;s.handler=e,s.registered=r;let l=s.priority!==n,d=s.stopPropagation!==o;r&&!a?(s.priority=n,s.stopPropagation=o,s.handlerId=fl(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=fl(s.wrapper,{priority:n,stopPropagation:o}))}}function Q_(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(Q_):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function yr(e,...t){return{type:"box",props:{...e},children:Q_(t.length>0?t:e.children)}}function mt(e,...t){let r=t.filter(o=>o!=null),n=r.length>0?r.join(""):Array.isArray(e.children)?e.children.filter(o=>o!=null).join(""):String(e.children??"");return{type:"text",props:{...e,children:n},children:[]}}var Gj=0,X_=Symbol("tuiuiu.focus-zone-manager"),tf=class e{zones=new Map;stack=[];activeZoneId=null;rootZoneId=null;maxStackDepth=10;listeners=new Set;constructor(){this.createZone({id:"__root__"}),this.rootZoneId="__root__",this.activeZoneId="__root__"}static getInstance(){return Oe(X_,()=>new e)}static reset(){dl(X_)}[Fr](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Gj++}`,n={id:r,elements:new Map,order:[],activeId:null,previousActiveId:null,options:{trap:!1,autoFocus:!0,wrap:!0,direction:"vertical",disabled:!1,restoreFocus:!0,...t},parentId:this.activeZoneId,isActive:!1};return this.zones.set(r,n),r}destroyZone(t){t===this.rootZoneId||!this.zones.get(t)||(this.activeZoneId===t&&this.deactivateZone(t),this.stack=this.stack.filter(n=>n.zoneId!==t),this.zones.delete(t))}activateZone(t){let r=this.zones.get(t);if(!r||r.options.disabled)return;let o=this.getActiveZone()?.activeId??null;this.stack.length>=this.maxStackDepth&&console.warn(`Focus stack overflow: ${this.stack.length} zones stacked`),this.activeZoneId&&this.activeZoneId!==t&&this.stack.push({zoneId:this.activeZoneId,previousFocusId:o,previousZoneId:this.activeZoneId,timestamp:Date.now()}),this.activeZoneId=t,r.isActive=!0,r.options.autoFocus&&r.order.length>0&&this.focusElement(r.order[0],t)}deactivateZone(t){let r=this.zones.get(t);if(!r)return;r.isActive=!1;let n=this.stack.pop();n?(this.activeZoneId=n.previousZoneId,r.options.restoreFocus&&n.previousFocusId&&this.zones.get(n.previousZoneId)&&this.focusElement(n.previousFocusId,n.previousZoneId)):this.activeZoneId=this.rootZoneId}getActiveZone(){return this.activeZoneId?this.zones.get(this.activeZoneId)??null:null}getZone(t){return this.zones.get(t)??null}registerElement(t,r=this.activeZoneId||"__root__",n={}){let o=this.zones.get(r);if(!o)return;let s={id:t,order:n.order??o.order.length,isActive:n.isActive??!0,tabIndex:n.tabIndex,onFocus:n.onFocus,node:n.node,group:n.group};o.elements.set(t,s),this.updateOrder(o)}unregisterElement(t,r){let n=r?[this.zones.get(r)]:Array.from(this.zones.values());for(let o of n)if(o&&o.elements.has(t)){o.activeId===t&&this.focusNextInZone(o.id),o.elements.delete(t),this.updateOrder(o);return}}updateElement(t,r,n){let o=n?[this.zones.get(n)]:Array.from(this.zones.values());for(let s of o){if(!s)continue;let i=s.elements.get(t);if(i){Object.assign(i,r),r.order!==void 0&&this.updateOrder(s);return}}}updateOrder(t){let r=Array.from(t.elements.entries()).filter(([,n])=>n.isActive&&n.tabIndex!==-1).sort((n,o)=>n[1].order-o[1].order);t.order=r.map(([n])=>n)}focusElement(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;let o=n.elements.get(t);if(!o||!o.isActive)return!1;let s=n.activeId;return s&&s!==t&&n.elements.get(s)?.onFocus?.(!1),n.previousActiveId=s,n.activeId=t,o.onFocus?.(!0),this.notifyFocusChange({elementId:t,previousElementId:s,zoneId:n.id,isInitial:s===null}),!0}focusNext(){let t=this.getActiveZone();return t?this.focusNextInZone(t.id):!1}focusPrevious(){let t=this.getActiveZone();return t?this.focusPreviousInZone(t.id):!1}focusNextInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):-1)+1;if(o>=r.order.length)if(r.options.wrap)o=0;else return r.options.trap?!1:r.parentId?this.focusNextInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusPreviousInZone(t){let r=this.zones.get(t);if(!r||r.order.length===0)return!1;let o=(r.activeId?r.order.indexOf(r.activeId):r.order.length)-1;if(o<0)if(r.options.wrap)o=r.order.length-1;else return r.options.trap?!1:r.parentId?this.focusPreviousInZone(r.parentId):!1;return this.focusElement(r.order[o],t)}focusFirst(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[0],r.id)}focusLast(t){let r=t?this.zones.get(t):this.getActiveZone();return!r||r.order.length===0?!1:this.focusElement(r.order[r.order.length-1],r.id)}blur(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r||!r.activeId)return;r.elements.get(r.activeId)?.onFocus?.(!1),r.previousActiveId=r.activeId,r.activeId=null,this.notifyFocusChange({elementId:null,previousElementId:r.previousActiveId,zoneId:r.id,isInitial:!1})}getActiveId(t){return(t?this.zones.get(t):this.getActiveZone())?.activeId??null}getActiveElement(t){let r=t?this.zones.get(t):this.getActiveZone();return r?.activeId?r.elements.get(r.activeId)??null:null}isFocused(t,r){return(r?this.zones.get(r):this.getActiveZone())?.activeId===t}getFocusOrder(t){return(t?this.zones.get(t):this.getActiveZone())?.order??[]}getStackDepth(){return this.stack.length}onFocusChange(t){return this.listeners.add(t),()=>this.listeners.delete(t)}notifyFocusChange(t){for(let r of this.listeners)try{r(t)}catch(n){console.error("Error in focus change listener:",n)}}focusGroup(t,r){let n=r?this.zones.get(r):this.getActiveZone();if(!n)return!1;for(let o of n.order)if(n.elements.get(o)?.group===t)return this.focusElement(o,n.id);return!1}focusNextGroup(t){let r=t?this.zones.get(t):this.getActiveZone();if(!r)return!1;let o=(r.activeId?r.elements.get(r.activeId):null)?.group,s=r.activeId?r.order.indexOf(r.activeId):-1;for(let i=s+1;i<r.order.length;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id);if(r.options.wrap){for(let i=0;i<=s;i++)if(r.elements.get(r.order[i])?.group!==o)return this.focusElement(r.order[i],r.id)}return!1}};function Z_(){return tf.getInstance()}var Oi=class{zoneManager=Z_();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 Wj}from"node:string_decoder";function ex(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function Hj(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function Uj(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 qj(e){let t=Uj(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function Kj(e){let t=Math.min(e.length,ms.length-1);for(let r=t;r>0;r--)if(e.endsWith(ms.slice(0,r)))return r;return 0}var rf=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new Wj("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,ex(this.maxPasteBytes,"maxPasteBytes"),ex(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),Hj(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}=qj(n),i=o?this.processCompleteInput(o):[];return s&&(Buffer.byteLength(s,"utf8")>this.maxPendingEscapeBytes?i.push(...this.processCompleteInput(s)):this.pendingInput=s),i}flushPendingInput(){if(this.disposed||!this.pendingInput)return[];let t=this.pendingInput;return this.pendingInput="",this.processCompleteInput(t)}abortPaste(){let t=this.pasteBuffer!==null;this.pasteBuffer=null,this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="",t&&ms.startsWith(this.pendingInput)&&(this.pendingInput="")}dispose(){this.disposed||(this.disposed=!0,this.pendingInput="",this.abortPaste(),this.decoder.end())}appendPaste(t){if(this.pasteBuffer===null||this.pasteOverflowed||!t)return;let r=Buffer.byteLength(t,"utf8");if(this.pasteBufferBytes+r>this.maxPasteBytes){this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!0;return}this.pasteBuffer+=t,this.pasteBufferBytes+=r}consumeActivePaste(t,r){let n=this.pasteTerminatorPrefix+t;this.pasteTerminatorPrefix="";let o=n.indexOf(ms);if(o===-1){let s=Kj(n),i=n.length-s;return this.appendPaste(n.slice(0,i)),this.pasteTerminatorPrefix=n.slice(i),null}return this.appendPaste(n.slice(0,o)),!this.pasteOverflowed&&this.pasteBuffer!==null&&r.push({type:"paste",text:this.pasteBuffer,bracketed:!0}),this.abortPaste(),n.slice(o+ms.length)}processCompleteInput(t){let r=[],n=t;if(this.pasteBuffer!==null){let o=this.consumeActivePaste(n,r);if(o===null||(n=o,!n))return r}for(;n.length>0;){let o=n.indexOf(Qp);if(o!==-1){let s=n.slice(0,o);s&&r.push({type:"input",input:s}),this.pasteBuffer="",this.pasteBufferBytes=0,this.pasteOverflowed=!1,this.pasteTerminatorPrefix="";let i=this.consumeActivePaste(n.slice(o+Qp.length),r);if(i===null)return r;n=i;continue}return n.length>this.pasteHeuristicThreshold&&!n.includes("\x1B")?(Buffer.byteLength(n,"utf8")<=this.maxPasteBytes&&r.push({type:"paste",text:n,bracketed:!1}),r):(r.push({type:"input",input:n}),r)}return r}};function tx(e={}){return new rf(e)}function rx(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=y=>{typeof r.write=="function"&&r.write(y)},p=y=>{if(!(d||!t.isTTY||!t.setRawMode)){if(y){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(q_()),a&&o&&u(H_()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let y,h=R=>{try{R()}catch(T){y??=T}};if(c=0,h(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),h(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&h(()=>u(K_())),a&&o&&h(()=>u(U_())),y)throw y}}}function Nl(){let e=Zr();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Bl=new WeakSet,$l=new WeakSet;function nf(e,t,r={}){let n=lp();if(n&&Zr(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(Bl.has(e)||$l.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=Zk();Bl.add(e),$l.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,h=!1,R=o,T,$=qe(u,()=>(GR({stdout:t}),!!(e.isTTY&&p&&Br().focusEvents))),D=rx({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(Y){Bl.delete(e),$l.delete(t);try{D.dispose()}finally{ts(u)}throw Y}Dp(u);let H=qe(u,()=>new Oi);gp(H,u);let G=tx({maxPasteBytes:a,maxPendingEscapeBytes:l}),I=null,W=null,q=()=>{I&&(clearTimeout(I),I=null)},oe=()=>{q(),I=setTimeout(()=>{G.abortPaste(),I=null},Math.max(0,c))},ae=Y=>{let de=Y;for(;de.length>0;){let Re=V_(de.slice(0,3));if(Re){Nt(()=>{Cp(Re.focused)}),de=de.slice(3);continue}if(yp(de)){let fe=ki(de);if(fe){Nt(()=>{ls().handleMouseEvent(fe.event),Rw(fe.event)}),de=de.slice(fe.length);continue}}let{input:De,key:ve,length:we}=Zp(de),Se=we>0?we:1;if(de=de.slice(Se),s&&ve.ctrl&&De==="c"){ke();return}if(R){if(ve.tab&&!ve.shift){Nt(()=>{H.focusNext()});continue}if(ve.tab&&ve.shift){Nt(()=>{H.focusPrevious()});continue}if(ve.escape&&H.getActiveId()!==void 0){Nt(()=>{H.blur()});continue}}Nt(()=>{kw(De,ve)})}},se=Y=>{for(let de of Y){if(h)return;de.type==="paste"?Nt(()=>{xw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{h||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!h&&(se(G.flushPendingInput()),Z())},Ae=Xr(u,Y=>{h||(se(G.push(Y)),Z())});e.on("data",Ae);let Ee=()=>{if(h)return;h=!0;let Y=de=>{try{de()}catch(Re){console.error("[tuiuiu] Error while disposing app state:",Re)}};try{Y(()=>e.off("data",Ae)),W&&(clearTimeout(W),W=null),q(),Y(()=>G.dispose()),Y(()=>D.dispose()),Y(()=>pl(u)),Y(()=>Dp(u)),Y(()=>ww(u)),Y(()=>Ew(u)),Y(()=>_w(u)),Y(()=>bl(u)),Y(()=>Iw(u)),Y(()=>gp(null,u)),Y(()=>{Zr(u)===T&&fp(null,u)})}finally{Bl.delete(e),$l.delete(t),g.clear(),ts(u)}},ke=Y=>{if(f)return;f=!0,y=Y;let de=[...g];g.clear(),Ee();for(let Re of de)try{Re(Y)}catch(De){console.error("[tuiuiu] Error in app exit callback:",De)}Y&&console.error(Y),i&&process.exit(Y?1:0)};return T={exit:ke,dispose:Ee,stdin:e,stdout:t,writeLine:Y=>{let de=Xo(String(Y)).replace(/\r\n?/g,`
|
|
201
201
|
`);t.write(`${de.replace(/\n+$/u,"")}
|
|
202
|
-
`)},onExit:Y=>{if(f){try{Y(y)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(Y),()=>{g.delete(Y)}},autoTabNavigation:R,setAutoTabNavigation:Y=>{R=Y},setRawMode:M,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>hr(u),enqueueExternalUpdate:Y=>{Nt(()=>{Y()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},fp(T,u),T}function of(e){let t=Zr();t&&(t.clearScreen=e)}function
|
|
202
|
+
`)},onExit:Y=>{if(f){try{Y(y)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(Y),()=>{g.delete(Y)}},autoTabNavigation:R,setAutoTabNavigation:Y=>{R=Y},setRawMode:M,get rawModeEnabledCount(){return D.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>hr(u),enqueueExternalUpdate:Y=>{Nt(()=>{Y()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},fp(T,u),T}function of(e){let t=Zr();t&&(t.clearScreen=e)}function Gl(e){let t=Zr();t&&(t.writeLine=e??(r=>{let n=Xo(String(r)).replace(/\r\n?/g,`
|
|
203
203
|
`);t.stdout.write(`${n.replace(/\n+$/u,"")}
|
|
204
|
-
`)}))}function
|
|
204
|
+
`)}))}function Wl(e){let t=Zr();if(t){if(!e){t.enqueueExternalUpdate=r=>{Nt(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function sf(){let[e,t]=G_(()=>gr(HR()));return Di(()=>UR(n=>{t(n)})),e()}function af(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=ur(null);if(i||s===null){let a=tr(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=jr(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=jr(a);c&&c.callback()},d.delay))},stop:()=>{let d=jr(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>jr(a)?.running??!1};return pr(a,l),Xn(l.stop,a),n&&(o&&e(),l.start()),{start:l.start,stop:l.stop,isRunning:l.isRunning}}else return s.callback=e,s.delay=t,n!==s.enabled&&(s.enabled=n,n?s.start():s.stop()),{start:s.start,stop:s.stop,isRunning:s.isRunning}}var kr="\x1B[",lf=`${kr}H`,Fi=`${kr}J`,Hl=`${kr}K`,nx=e=>{let t="";for(let r=0;r<e;r++)t+=kr+"2K",r<e-1&&(t+=kr+"1A");return e>0&&(t+="\r"),t},ox=e=>e>0?`${kr}${e}A`:"",Vj=`${kr}1E`,zj=`${kr}2K`;function Jj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${kr}${n+1}H`:lf,d=c=>{!r&&!a&&(ps(e),a=!0);let u=c+`
|
|
205
205
|
`;if(u===o)return;let p=c.split(`
|
|
206
|
-
`),g=p.map(T=>ye(T)),f=p.length,y=[];for(let T=0;T<p.length;T++){let $=p[T],D=g[T],M=i[T]??0;D<M?y.push($+
|
|
207
|
-
`+
|
|
206
|
+
`),g=p.map(T=>ye(T)),f=p.length,y=[];for(let T=0;T<p.length;T++){let $=p[T],D=g[T],M=i[T]??0;D<M?y.push($+Hl):y.push($)}let h=s-f,R="";if(h>0)for(let T=0;T<h;T++)R+=`
|
|
207
|
+
`+Hl;o=u,s=f,i=g,e.write(l+y.join(`
|
|
208
208
|
`)+R+`
|
|
209
209
|
`+Fi)};return d.clear=()=>{e.write(l+Fi),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(us(e),a=!1)},d.sync=c=>{let u=c.split(`
|
|
210
210
|
`);o=c+`
|
|
211
|
-
`,s=u.length,i=u.map(p=>ye(p))},d}function
|
|
211
|
+
`,s=u.length,i=u.map(p=>ye(p))},d}function Yj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${kr}${n+1}H`:lf,l=d=>{!r&&!i&&(ps(e),i=!0);let c=d+`
|
|
212
212
|
`;if(c===s)return;let u=o.length,p=c.split(`
|
|
213
213
|
`),g=p.length,f=g-1;if(c===`
|
|
214
|
-
`||s.length===0){e.write(a+
|
|
214
|
+
`||s.length===0){e.write(a+nx(u)+c),s=c,o=p;return}let y=[];g<u?y.push(nx(u-g+1),ox(f)):y.push(ox(u-1));for(let h=0;h<f;h++){if(p[h]===o[h]){y.push(Vj);continue}y.push(zj+p[h]+`
|
|
215
215
|
`)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Fi),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(us(e),i=!1)},l.sync=d=>{let c=d+`
|
|
216
216
|
`;s=c,o=c.split(`
|
|
217
|
-
`)},l}function
|
|
218
|
-
`),p=u.length,g=c;if(g=u.map(y=>y+
|
|
217
|
+
`)},l}function Qj(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${kr}${n+1}H`:lf,l=d=>{!r&&!i&&(ps(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
|
|
218
|
+
`),p=u.length,g=c;if(g=u.map(y=>y+Hl).join(`
|
|
219
219
|
`),s>p){let y=s-p;for(let h=0;h<y;h++)g+=`
|
|
220
|
-
`+
|
|
221
|
-
`).length},l}function df(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?
|
|
220
|
+
`+Hl}e.write(a+g+Fi),o=c,s=p};return l.clear=()=>{e.write(a+Fi),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(us(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
|
|
221
|
+
`).length},l}function df(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?Qj(e,t):r?Yj(e,t):Jj(e,t)}function sx(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 ix=Symbol("tuiuiu.overlay-runtime-state");function Xj(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function ax(e){let t=e.id===0?null:It(ix,()=>ax(Ir())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Fr](){Xj(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function Zj(){let e=We();return Oe(ix,()=>ax(e),e)}function cf(e,t){let r=Zj();r.terminalSize={width:e,height:t}}function lx(e){return"__reactive"in e}function eB(e){let t=e.__reactive(),r=Ft(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function dx(e){let t=0,r=n=>{lx(n)&&eB(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function cx(e){let t=new Set,r=n=>{lx(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function tB(e){return!!e.props.__static}function rB(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Ft(e.children??[])}`}function nB(e){let t=[];function r(o){if(tB(o))return t.push(o),null;if(o.children&&o.children.length>0){let s=o.children.map(i=>i&&typeof i=="object"&&"type"in i?r(i):i).filter(i=>i!==null);return{...o,children:s}}return o}let n=r(e)??{type:"fragment",props:{},children:[]};return{staticNodes:t,interactiveNode:n}}var uf={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},oB={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function pf(e,t={}){let r=t.screenMode?oB[t.screenMode]:void 0,{stdout:n=process.stdout,stdin:o=process.stdin,debug:s=!1,exitOnCtrlC:i=!0,exitProcess:a=!1,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u,maxFps:p=30,showCursor:g=!1,autoTabNavigation:f=!0,useDeltaRenderer:y=!0,fixedStep:h}=t,R=t.clearOnStart??r?.clearOnStart??!0,T=t.fullHeight??r?.fullHeight??!1,$=t.alternateScreen??r?.alternateScreen??!0;if(!Number.isFinite(p)||p<0)throw new Error("[tuiuiu] maxFps must be a finite non-negative number");if(h){if(!Number.isFinite(h.updateFps)||h.updateFps<=0)throw new Error("[tuiuiu] fixedStep.updateFps must be a finite positive number");if(h.maxCatchUpUpdates!==void 0&&(!Number.isSafeInteger(h.maxCatchUpUpdates)||h.maxCatchUpUpdates<1))throw new Error("[tuiuiu] fixedStep.maxCatchUpUpdates must be a positive safe integer")}let D=nf(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=pp(D);if(!M)throw D.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,H=()=>{},G=[];try{H=Sw(),G.push(en(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),G.push(en(()=>{n.write("\x1B[?1004l")})),G.push(en(()=>{n.write("\x1B[?2004l")})),$&&(n.write(z_()),G.push(en(()=>{n.write(Xp())})))}catch(re){for(let me of G.splice(0))try{me()}catch{}try{H()}catch{}throw D.dispose(),ts(N),re}let I=typeof e=="function"?e:()=>e,W=!1,q=0,oe=0,ae=0,se,Z,pe=()=>{W=!1,xe()},Ae=()=>{q++,q===1&&(oe=0,ae=0)},Ee=()=>q===0?{bytes:0,writeMs:0}:(q--,q===0?{bytes:oe,writeMs:ae}:{bytes:0,writeMs:0}),ke=re=>{let me=q>0?performance.now():0,$e=n.write(re);return q>0&&(ae+=performance.now()-me,oe+=typeof re=="string"?Buffer.byteLength(re):re.byteLength),!$e&&!W&&!we&&(W=!0,n.once("drain",pe)),$e},Y={get columns(){return n.columns},get rows(){return n.rows},get isTTY(){return n.isTTY},write(re){return ke(re)},on:n.on.bind(n),off:n.off.bind(n),once:n.once.bind(n),emit:n.emit.bind(n)},de=df(Y,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),Re=0,De=null,ve="",we=!1,Se=[],fe,ie,_e,Fe=new Set,at=0,Gt=()=>{Re=at,de=df(Y,{showCursor:g,incremental:!1,fullScreen:T,topOffset:Re}),ve=""},tn=()=>{de.clear(),ke(uf.clearTerminal),ve="",Fe.clear(),at=0,Se=[],Gt()},rn=re=>{de.clear(),ke(`${re}
|
|
222
222
|
`),at+=re.split(`
|
|
223
|
-
`).length,Gt()};qe(N,()=>of(tn)),fe=new Promise((re,me)=>{ie=re,_e=me});let go=D.dispose;D.dispose=()=>{if(we){go();return}_r(),ie()};let ce=p>0?Math.ceil(1e3/p):0;qe(N,()=>{
|
|
224
|
-
`).replace(/\n+$/u,"");Se.push(me),X(on)});qe(N,()=>
|
|
225
|
-
`))}Ht.staticNodes.length>0&&jt();let et=Math.max(1,$e-at);if(C&&!s){let Me=uo(De,{width:me,height:et});Me.metrics.runtimeStartAt=re,se!==void 0&&it(Me,"vnodeEvalMs",se);let tt=performance.now();Vp(Me),vp(Me.layout,at);let Hr=ls();Hr.hasClickableElements()&&!J?(os(),J=!0):!Hr.hasClickableElements()&&J&&(Zn(),J=!1),it(Me,"frameCommitMs",performance.now()-tt),Ct(Me,"reservedRegionCount",Me.reservedRegions.length),C.renderFrame(Me),se=void 0,Z=void 0;return}let{staticNodes:ho,interactiveNode:sn}=Ht,Tn=performance.now();Ae();for(let Me=0;Me<ho.length;Me++){let tt=ho[Me],Hr=
|
|
226
|
-
`):de(xr);let Wr=Ee();it(Ne,"outputWriteMs",Wr.writeMs),Ct(Ne,"outputByteCount",Wr.bytes),Sn(Ne,{renderer:"ansi",runtimeStartAt:re}),rs(Ne.layout),ui(),ve=xr,se=void 0,Z=void 0}function _r(){return qe(N,vt)}function vt(){if(we)return;we=!0;let re=me=>{try{me()}catch($e){console.error("[tuiuiu] Error while cleaning up the render loop:",$e)}};Ze&&(clearTimeout(Ze),Ze=null),lt&&(clearTimeout(lt),lt=null),Ce?.(),Ce=null,W=!1,re(()=>n.off("drain",pe)),_t=null,ct=!1,L.cancel(),Le=[],
|
|
227
|
-
`),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(Ze&&(clearTimeout(Ze),Ze=null),_t=null,ct=!1,tn(),W?X(()=>{on()}):on())}),writeLine:je}}var iB={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topMid:"\u2566",bottomMid:"\u2569",leftMid:"\u2560",rightMid:"\u2563",midMid:"\u256C"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topMid:"\u2533",bottomMid:"\u253B",leftMid:"\u2523",rightMid:"\u252B",midMid:"\u254B"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",topMid:"+",bottomMid:"+",leftMid:"+",rightMid:"+",midMid:"+"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",topMid:"",bottomMid:"",leftMid:"",rightMid:"",midMid:""}};function wr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function ff(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function aB(e,t,r,n=1,o){let s=[],i=wr(n,1),a=o===void 0?void 0:wr(o,0);for(let d of e){let c=ye(d.header);for(let p of t){let g=p[d.key];d.format&&(g=d.format(g,p));let f=String(g??"");c=Math.max(c,ye(f))}let u=ff(d);d.width!==void 0?c=wr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):wr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,wr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,wr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:ff(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((y,h,R)=>y+(ff(e[R])>0?0:h),0),p=l.reduce((y,h)=>y+s[h.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let y=l.reduce((h,R)=>h+R.flex,0);for(let h of l){let R=Math.floor(h.flex/y*f);s[h.index]=s[h.index]+R,h.col.maxWidth!==void 0&&(s[h.index]=Math.min(s[h.index],wr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=wr(r,0),c=e.length*i*2,u=e.length+1,p=s.reduce((g,f)=>g+f,0)+c+u;if(p>d){let g=p-d,f=s.map((h,R)=>{let T=wr(e[R].minWidth,3);return Math.max(0,h-T)}),y=f.reduce((h,R)=>h+R,0);if(y>0)for(let h=0;h<s.length;h++){let R=Math.floor(f[h]/y*g);s[h]=Math.max(wr(e[h].minWidth,3),s[h]-R)}}}return s}function dx(e,t,r){let n=Qr(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=ye(n);if(o>=t)return n;let s=t-o;switch(r){case"right":return" ".repeat(s)+n;case"center":let i=Math.floor(s/2),a=s-i;return" ".repeat(i)+n+" ".repeat(a);default:return n+" ".repeat(s)}}function lB(e,t){return Qr(e,t,{truncationCharacter:"\u2026"})}function dB(){try{return process.stdout.columns||80}catch{return 80}}function gf(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,y=g?0:wr(d,1),h=iB[n],R=n!=="none",T=p??dB(),$=aB(t,r,u,y,T),D=[],M=(N,H,G,I)=>{if(!R)return yr({});let W=[N];for(let q=0;q<$.length;q++)W.push(I.repeat($[q]+y*2)),q<$.length-1&&W.push(H);return W.push(G),yr({flexDirection:"row"},mt({color:o},W.join("")))};if(R&&D.push(M(h.topLeft,h.topMid,h.topRight,h.horizontal)),s){let N=[];R&&N.push(mt({color:o},h.vertical));for(let H=0;H<t.length;H++){let G=t[H],I=" ".repeat(y),W=G.headerAlign??G.align??"left",q=dx(G.header,$[H],W);N.push(mt({color:o},I),mt({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":H+1},q),mt({color:o},I)),R&&N.push(mt({color:o},h.vertical))}D.push(yr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let N=0;N<r.length;N++){let H=r[N],G=a&&N%2===1,I=t.map((oe,ae)=>{let se=H[oe.key];oe.format&&(se=oe.format(se,H));let Z=String(se??"");if(oe.wrap)return Yn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Qr(pe,$[ae],{truncationCharacter:""}):lB(pe,$[ae])]}),W=Math.max(1,...I.map(oe=>oe.length)),q=[];for(let oe=0;oe<W;oe++){let ae=[];R&&ae.push(mt({color:o},h.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(y),Ae=dx(I[se]?.[oe]??"",$[se],Z.align??"left"),Ee=Z.color??(G?l:void 0);ae.push(mt({color:o},pe),mt({color:Ee,dim:G,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Ae),mt({color:o},pe)),R&&ae.push(mt({color:o},h.vertical))}q.push(yr({flexDirection:"row"},...ae))}D.push(yr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}return R&&D.push(M(h.bottomLeft,h.bottomMid,h.bottomRight,h.horizontal)),yr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...D)}function Kl(e,t){return mt({wrap:"truncate-end"},t?Un(e):e)}function cB(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>Kl(c,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(c=>({...c})),l=e.table.rows.map(c=>Object.fromEntries(Object.entries(c).map(([u,p])=>[u,r?Un(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>Kl(c,r)),gf({columns:a,data:l,borderStyle:"none",availableWidth:d,maxWidth:d,compact:!1,padding:1,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!0,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(c=>Kl(c,r))]}function uB(e){let t=Math.max(1,Math.floor(e.columns)),r=Math.max(1,Math.floor(e.rows)),n=Math.max(0,r-1),o=`q quit \xB7 r refresh \xB7 v deaths: ${e.showDeathDetails?"details":"summary"} \xB7 live 1s`,s=e.noColor===!0,i=e.frame.dashboard==null?e.frame.lines.map(a=>Kl(a,s)):cB(e.frame.dashboard,t,s);return yr({flexDirection:"column",width:t,height:r,overflow:"hidden"},yr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function cx(e){let t=!1;function r(){let o=Wl(),s=sf(),[i,a]=$l({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=$l(e.initialShowDeathDetails),c=()=>{t||(t=!0,e.readFrame({columns:Math.max(1,s.columns||80),rows:Math.max(1,(s.rows||24)-1),showDeathDetails:l()}).then(a).catch(u=>{a({lines:[`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`]})}).finally(()=>{t=!1}))};return Di(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),af(c,e.refreshMs??1e3),ef((u,p)=>{let g=u.toLowerCase();if(g==="q"||p.escape){o.exit();return}if(g==="r"){c();return}g==="v"&&(d(f=>!f),setTimeout(c,0))}),uB({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await pf(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as RB}from"node:child_process";import{readFileSync as _B}from"node:fs";import{dirname as mx,join as xB}from"node:path";import{createHash as pB}from"node:crypto";var fB="project.name";function px(e){let t=Jo(e,fB)?.trim();return t===void 0||t===""?void 0:t}var gB=8,fx="project";function gx(e){let t=kB(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:hB(e.remoteUrl)??{name:mB(e.checkoutPath,t),source:"basename"},o=yB(t??hf(e.checkoutPath));return{name:n.name,slug:`${bB(n.name)}-${o}`,hash:o,source:n.source}}function hx(e){let t=(e??"").trim();if(t==="")return;let r=t.replace(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\//,""),n=/^[^/]*?:(?!\d)(.+)$/.exec(r),s=(n?n[1]:r.replace(/^[^/]*/,"")).replace(/\.git$/,"").split("/").map(i=>i.trim()).filter(i=>i!=="");if(s.length!==0)return s.slice(-2).join("/")}function hB(e){let t=hx(e);return t===void 0?void 0:{name:t,source:"remote"}}function mB(e,t){let r=t===void 0?"":ux(wB(t));if(r!=="")return r;let n=ux(hf(e));return n===""?fx:n}function bB(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?fx:r}function yB(e){return pB("sha256").update(e).digest("hex").slice(0,gB)}function kB(e){let t=hf(e??"");return t===""?void 0:t}function hf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function ux(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function wB(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var EB=2e3;function bx(e){return vB(e).name}function vB(e){let t=bf(e),r=mf(e,["rev-parse","--absolute-git-dir"])??mf(e,["rev-parse","--git-common-dir"]),n=mf(e,["remote","get-url","origin"]);return gx({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function bf(e){let t=gk(e,xB(".red","config.yaml"));if(t==null)return{};let r;try{r=_B(t,"utf8")}catch{return{}}let n=px(r),o=mx(mx(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function mf(e,t){try{let r=RB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:EB}).trim();return r===""?void 0:r}catch{return}}function Vl(e){let t=bf(e);return t.configText==null?{label:null}:{configText:t.configText,label:bx(e)}}async function yf(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=sl(e),s=Vl(t.cwd??process.cwd()),i=il({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
|
|
228
|
-
`);let a=t.paths??
|
|
223
|
+
`).length,Gt()};qe(N,()=>of(tn)),fe=new Promise((re,me)=>{ie=re,_e=me});let go=D.dispose;D.dispose=()=>{if(we){go();return}_r(),ie()};let ce=p>0?Math.ceil(1e3/p):0;qe(N,()=>{mR({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:ce>0?ce:16.67}),cf(n.columns||80,n.rows||24)});let Wt=0,ct=!1,Ze=null,_t=null,lt=null,ut=0,xt=0,Et=0,Gr=0,Ce=null,Le=[],J=!1,C=null;y&&(C=S_({stdout:Y,showCursor:g,useDelta:!0})),R&&!s&&ke(uf.clearTerminal);let w=ce>0?ce:16,L=sx(()=>{Le.length!==0&&Nt(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let me of re)me()}})},w);qe(N,()=>Wl({enqueue(re){we||(Le.push(re),L.schedule())},flush(){we||L.flush()},isPending(){return Le.length>0||L.isPending()}}));let B=()=>{let re=performance.now();Z=Date.now(),gw("component");try{De=I(),dx(De)}finally{hw(),se=performance.now()-re}},K=()=>qe(N,()=>{B(),on()});function X(re){we||(_t=re,!W&&xe())}function xe(){if(ct||we||W||!_t)return;let me=Date.now()-Wt,$e=Wt===0||me>=ce?0:ce-me,Ht=()=>{let jt=_t;if(_t=null,ct=!1,Ze=null,!we)try{jt?.()}catch(et){D.exit(et instanceof Error?et:new Error(String(et)))}};if(ct=!0,$e===0){queueMicrotask(Ht);return}Ze=setTimeout(Ht,$e)}let je=re=>qe(N,()=>{if(we)return;let me=Xo(String(re)).replace(/\r\n?/g,`
|
|
224
|
+
`).replace(/\n+$/u,"");Se.push(me),X(on)});qe(N,()=>Gl(je));function Be(){if(!h||we||(h.pauseWhenUnfocused??!0)&&!hr())return;let me=1e3/Math.max(1,h.updateFps),$e=Math.max(0,Math.ceil(me-ut));lt=setTimeout(Lt,$e)}function Lt(){if(!(!h||we))try{if((h.pauseWhenUnfocused??!0)&&!hr()){lt=null,ut=0,xt=Date.now();return}let me=1e3/h.updateFps,$e=h.maxCatchUpUpdates??5,Ht=Date.now();ut+=Ht-xt,xt=Ht;let jt=0;for(;ut>=me&&jt<$e;)ut-=me,Et++,Gr+=me,Nt(()=>{h.onUpdate({deltaTimeMs:me,step:Et,elapsedMs:Gr})}),jt++;ut>=me&&(ut%=me),Be()}catch(re){lt=null,D.exit(re instanceof Error?re:new Error(String(re)))}}let nn=Xr(N,()=>{we||(WR(),cf(n.columns||80,n.rows||24),Yw(),X(K))});n.on("resize",nn);let Rr=()=>{};D.onExit(re=>qe(N,()=>{_r(),Rr(),re?_e(re):ie()}));function on(){if(we||!De)return;Wt=Date.now();let re=Z??Date.now(),me=n.columns||80,$e=n.rows||24,Ht=nB(De),jt=()=>{C&&(C.cleanup(),C=null,ke(uf.clearTerminal),Fe.clear(),at=0,Gt())};if(Se.length>0){jt();let Me=Se;Se=[],rn(Me.join(`
|
|
225
|
+
`))}Ht.staticNodes.length>0&&jt();let et=Math.max(1,$e-at);if(C&&!s){let Me=uo(De,{width:me,height:et});Me.metrics.runtimeStartAt=re,se!==void 0&&it(Me,"vnodeEvalMs",se);let tt=performance.now();Vp(Me),vp(Me.layout,at);let Hr=ls();Hr.hasClickableElements()&&!J?(os(),J=!0):!Hr.hasClickableElements()&&J&&(Zn(),J=!1),it(Me,"frameCommitMs",performance.now()-tt),Ct(Me,"reservedRegionCount",Me.reservedRegions.length),C.renderFrame(Me),se=void 0,Z=void 0;return}let{staticNodes:ho,interactiveNode:sn}=Ht,Tn=performance.now();Ae();for(let Me=0;Me<ho.length;Me++){let tt=ho[Me],Hr=rB(tt,Me);if(!Fe.has(Hr)){let On=B_(tt,me);On.trim()&&(rn(On),Fe.add(Hr))}}let Pn=CR(),Ne=uo(sn,{width:me,height:et});Ne.metrics.runtimeStartAt=re,se!==void 0&&it(Ne,"vnodeEvalMs",se);let An=performance.now()-Tn;it(Ne,"staticRenderMs",An);let Cn=performance.now();Vp(Ne),vp(Ne.layout,at);let Dn=ls();Dn.hasClickableElements()&&!J?(os(),J=!0):!Dn.hasClickableElements()&&J&&(Zn(),J=!1),it(Ne,"frameCommitMs",performance.now()-Cn),Ct(Ne,"reservedRegionCount",Ne.reservedRegions.length);let xr=Yp(Ne,{fullHeight:T,previousFrame:Pn});if(xr===ve&&!s){let Me=Ee();it(Ne,"outputWriteMs",Me.writeMs),Ct(Ne,"outputByteCount",Me.bytes),Sn(Ne,{renderer:"ansi",runtimeStartAt:re}),rs(Ne.layout),ui(),se=void 0,Z=void 0;return}s?ke(xr+`
|
|
226
|
+
`):de(xr);let Wr=Ee();it(Ne,"outputWriteMs",Wr.writeMs),Ct(Ne,"outputByteCount",Wr.bytes),Sn(Ne,{renderer:"ansi",runtimeStartAt:re}),rs(Ne.layout),ui(),ve=xr,se=void 0,Z=void 0}function _r(){return qe(N,vt)}function vt(){if(we)return;we=!0;let re=me=>{try{me()}catch($e){console.error("[tuiuiu] Error while cleaning up the render loop:",$e)}};Ze&&(clearTimeout(Ze),Ze=null),lt&&(clearTimeout(lt),lt=null),Ce?.(),Ce=null,W=!1,re(()=>n.off("drain",pe)),_t=null,ct=!1,L.cancel(),Le=[],Wl(null),Gl(null),J&&(re(()=>Zn()),J=!1),re(()=>n.off("resize",nn)),re(C?()=>C?.cleanup():()=>de.done()),$&&re(()=>{n.write(Xp())}),W=!1,re(()=>n.off("drain",pe)),re(()=>pl(N)),De&&re(()=>cx(De)),re(()=>D.dispose());for(let me of G.splice(0))re(me);re(H),re(()=>DR()),re(()=>ts(N))}try{Rr=qe(N,()=>dR(()=>{K()},{scheduler:X})),qe(N,()=>{h&&(xt=Date.now(),(h.pauseWhenUnfocused??!0)&&(Ce=Tl(re=>{if(!(we||!h)){if(!re){lt&&(clearTimeout(lt),lt=null),ut=0,xt=Date.now();return}ut=0,xt=Date.now(),lt||Be()}})),Be())})}catch(re){try{Rr()}catch(me){console.error("[tuiuiu] Error while rolling back the render effect:",me)}throw _r(),re}return{rerender:re=>qe(N,()=>{I=()=>re,X(K)}),unmount:()=>qe(N,()=>{_r(),Rr(),s||ke(`
|
|
227
|
+
`),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(Ze&&(clearTimeout(Ze),Ze=null),_t=null,ct=!1,tn(),W?X(()=>{on()}):on())}),writeLine:je}}var sB={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topMid:"\u2566",bottomMid:"\u2569",leftMid:"\u2560",rightMid:"\u2563",midMid:"\u256C"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topMid:"\u2533",bottomMid:"\u253B",leftMid:"\u2523",rightMid:"\u252B",midMid:"\u254B"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",topMid:"+",bottomMid:"+",leftMid:"+",rightMid:"+",midMid:"+"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",topMid:"",bottomMid:"",leftMid:"",rightMid:"",midMid:""}};function wr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function ff(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function iB(e,t,r,n=1,o){let s=[],i=wr(n,1),a=o===void 0?void 0:wr(o,0);for(let d of e){let c=ye(d.header);for(let p of t){let g=p[d.key];d.format&&(g=d.format(g,p));let f=String(g??"");c=Math.max(c,ye(f))}let u=ff(d);d.width!==void 0?c=wr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):wr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,wr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,wr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:ff(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((y,h,R)=>y+(ff(e[R])>0?0:h),0),p=l.reduce((y,h)=>y+s[h.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let y=l.reduce((h,R)=>h+R.flex,0);for(let h of l){let R=Math.floor(h.flex/y*f);s[h.index]=s[h.index]+R,h.col.maxWidth!==void 0&&(s[h.index]=Math.min(s[h.index],wr(h.col.maxWidth,s[h.index])))}}}if(r!==void 0){let d=wr(r,0),c=e.length*i*2,u=e.length+1,p=s.reduce((g,f)=>g+f,0)+c+u;if(p>d){let g=p-d,f=s.map((h,R)=>{let T=wr(e[R].minWidth,3);return Math.max(0,h-T)}),y=f.reduce((h,R)=>h+R,0);if(y>0)for(let h=0;h<s.length;h++){let R=Math.floor(f[h]/y*g);s[h]=Math.max(wr(e[h].minWidth,3),s[h]-R)}}}return s}function ux(e,t,r){let n=Qr(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=ye(n);if(o>=t)return n;let s=t-o;switch(r){case"right":return" ".repeat(s)+n;case"center":let i=Math.floor(s/2),a=s-i;return" ".repeat(i)+n+" ".repeat(a);default:return n+" ".repeat(s)}}function aB(e,t){return Qr(e,t,{truncationCharacter:"\u2026"})}function lB(){try{return process.stdout.columns||80}catch{return 80}}function gf(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,y=g?0:wr(d,1),h=sB[n],R=n!=="none",T=p??lB(),$=iB(t,r,u,y,T),D=[],M=(N,H,G,I)=>{if(!R)return yr({});let W=[N];for(let q=0;q<$.length;q++)W.push(I.repeat($[q]+y*2)),q<$.length-1&&W.push(H);return W.push(G),yr({flexDirection:"row"},mt({color:o},W.join("")))};if(R&&D.push(M(h.topLeft,h.topMid,h.topRight,h.horizontal)),s){let N=[];R&&N.push(mt({color:o},h.vertical));for(let H=0;H<t.length;H++){let G=t[H],I=" ".repeat(y),W=G.headerAlign??G.align??"left",q=ux(G.header,$[H],W);N.push(mt({color:o},I),mt({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":H+1},q),mt({color:o},I)),R&&N.push(mt({color:o},h.vertical))}D.push(yr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}for(let N=0;N<r.length;N++){let H=r[N],G=a&&N%2===1,I=t.map((oe,ae)=>{let se=H[oe.key];oe.format&&(se=oe.format(se,H));let Z=String(se??"");if(oe.wrap)return Yn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Qr(pe,$[ae],{truncationCharacter:""}):aB(pe,$[ae])]}),W=Math.max(1,...I.map(oe=>oe.length)),q=[];for(let oe=0;oe<W;oe++){let ae=[];R&&ae.push(mt({color:o},h.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(y),Ae=ux(I[se]?.[oe]??"",$[se],Z.align??"left"),Ee=Z.color??(G?l:void 0);ae.push(mt({color:o},pe),mt({color:Ee,dim:G,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Ae),mt({color:o},pe)),R&&ae.push(mt({color:o},h.vertical))}q.push(yr({flexDirection:"row"},...ae))}D.push(yr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&R&&D.push(M(h.leftMid,h.midMid,h.rightMid,h.horizontal))}return R&&D.push(M(h.bottomLeft,h.bottomMid,h.bottomRight,h.horizontal)),yr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...D)}function Ul(e,t){return mt({wrap:"truncate-end"},t?Un(e):e)}function dB(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>Ul(c,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(c=>({...c})),l=e.table.rows.map(c=>Object.fromEntries(Object.entries(c).map(([u,p])=>[u,r?Un(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>Ul(c,r)),gf({columns:a,data:l,borderStyle:"none",availableWidth:d,maxWidth:d,compact:!1,padding:1,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!0,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(c=>Ul(c,r))]}function cB(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=>Ul(a,s)):dB(e.frame.dashboard,t,s);return yr({flexDirection:"column",width:t,height:r,overflow:"hidden"},yr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function px(e){let t=!1;function r(){let o=Nl(),s=sf(),[i,a]=jl({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=jl(e.initialShowDeathDetails),c=()=>{t||(t=!0,e.readFrame({columns:Math.max(1,s.columns||80),rows:Math.max(1,(s.rows||24)-1),showDeathDetails:l()}).then(a).catch(u=>{a({lines:[`redskilled dashboard failed \u2014 ${u instanceof Error?u.message:String(u)}`]})}).finally(()=>{t=!1}))};return Di(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),af(c,e.refreshMs??1e3),ef((u,p)=>{let g=u.toLowerCase();if(g==="q"||p.escape){o.exit();return}if(g==="r"){c();return}g==="v"&&(d(f=>!f),setTimeout(c,0))}),cB({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await pf(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as wB}from"node:child_process";import{readFileSync as RB}from"node:fs";import{dirname as yx,join as _B}from"node:path";import{createHash as uB}from"node:crypto";var pB="project.name";function gx(e){let t=Jo(e,pB)?.trim();return t===void 0||t===""?void 0:t}var fB=8,hx="project";function mx(e){let t=yB(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:gB(e.remoteUrl)??{name:hB(e.checkoutPath,t),source:"basename"},o=bB(t??hf(e.checkoutPath));return{name:n.name,slug:`${mB(n.name)}-${o}`,hash:o,source:n.source}}function bx(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 gB(e){let t=bx(e);return t===void 0?void 0:{name:t,source:"remote"}}function hB(e,t){let r=t===void 0?"":fx(kB(t));if(r!=="")return r;let n=fx(hf(e));return n===""?hx:n}function mB(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?hx:r}function bB(e){return uB("sha256").update(e).digest("hex").slice(0,fB)}function yB(e){let t=hf(e??"");return t===""?void 0:t}function hf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function fx(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function kB(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var xB=2e3;function kx(e){return EB(e).name}function EB(e){let t=bf(e),r=mf(e,["rev-parse","--absolute-git-dir"])??mf(e,["rev-parse","--git-common-dir"]),n=mf(e,["remote","get-url","origin"]);return mx({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function bf(e){let t=mk(e,_B(".red","config.yaml"));if(t==null)return{};let r;try{r=RB(t,"utf8")}catch{return{}}let n=gx(r),o=yx(yx(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function mf(e,t){try{let r=wB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:xB}).trim();return r===""?void 0:r}catch{return}}function ql(e){let t=bf(e);return t.configText==null?{label:null}:{configText:t.configText,label:kx(e)}}var vB="plugins.dev.statusline",SB="dev.statusline";function TB(e){let t=[],r=a=>{for(let l of[vB,SB]){let d=`${l}.${a}`,c=Jo(e,d)?.trim();if(c!=null&&c!=="")return{key:d,value:c}}},n=r("mode"),o={};n!=null&&(n.value==="local"||n.value==="global"?o.mode=n.value:t.push({...n,reason:"expected `local` or `global`"}));let s=[{leaf:"max_workers",assign:a=>{o.maxWorkers=a}},{leaf:"max_projects",assign:a=>{o.maxProjects=a}},{leaf:"max_width",assign:a=>{o.maxWidth=a}}];for(let a of s){let l=r(a.leaf);if(l==null)continue;let d=Number(l.value);Number.isInteger(d)&&d>=0?a.assign(d):t.push({...l,reason:"expected a whole number of zero or more"})}let i=r("verbose");return i!=null&&(i.value==="true"||i.value==="false"?o.verbose=i.value==="true":t.push({...i,reason:"expected `true` or `false`"})),{config:o,warnings:t}}var PB={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 Kl(e){let{values:t,positionals:r}=ln(e,PB),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 Vl(e={}){let t=e.configText==null?{config:{},warnings:[]}:TB(e.configText),r=e.flags??{};return{options:{...Ge,mode:r.mode??t.config.mode??Ge.mode,project:r.project!==void 0?r.project:e.project??Ge.project,maxWorkers:r.maxWorkers??t.config.maxWorkers??Ge.maxWorkers,maxProjects:r.maxProjects??t.config.maxProjects??Ge.maxProjects,maxWidth:r.maxWidth??t.config.maxWidth??Ge.maxWidth,verbose:r.verbose??t.config.verbose??Ge.verbose},warnings:t.warnings}}async function yf(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=Kl(e),s=ql(t.cwd??process.cwd()),i=Vl({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
|
|
228
|
+
`);let a=t.paths??er(),l=t.readDashboard??pk,d=t.terminal===void 0?process.stdout.isTTY===!0:t.terminal===!0,c=(t.env??process.env).NO_COLOR!==void 0,u={...i.options.project==null?{}:{project:i.options.project},mode:i.options.mode,showDeathDetails:i.options.verbose},p=async(g,f=!0)=>{try{let y=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:y,lines:c?y.lines.map(Un):y.lines}}catch(y){let h=y instanceof Error?y.message:String(y);return f&&n(`redskilled dashboard: ${h}
|
|
229
229
|
`),{lines:[`redskilled unreachable \u2014 ${h}`]}}};if(!d){let g=await p({...u,...i.options.maxWidth==null?{}:{maxWidth:i.options.maxWidth}});return r(`${g.lines.join(`
|
|
230
230
|
`)}
|
|
231
|
-
`),0}return await(t.runTui??
|
|
231
|
+
`),0}return await(t.runTui??px)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:y})=>{let h=Math.max(1,Math.min(i.options.maxWidth??g,g)),R=Math.max(1,f);return await p({...u,maxWidth:h,maxHeight:R,maxRows:Math.max(0,R-8),showDeathDetails:y},!1)}}),0}async function kf(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=Kl(e),s=ql(t.cwd??process.cwd()),i=Vl({...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}
|
|
232
|
+
`);let a;try{a=await uk(t.paths??er(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
|
|
233
|
+
`),a=Tu({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
|
|
234
|
+
`)}
|
|
235
|
+
`),0}var CB=`Usage: redskilled <command> [options]
|
|
232
236
|
|
|
233
237
|
Commands:
|
|
234
238
|
host-state (default) print the host's state as JSON
|
|
@@ -242,7 +246,7 @@ Commands:
|
|
|
242
246
|
|
|
243
247
|
Run \`redskilled <command> --help\` for a command's own usage.
|
|
244
248
|
\`--version\` (\`-v\`) prints the build stamp; both answer offline.
|
|
245
|
-
`,
|
|
249
|
+
`,DB={serve:`Usage: redskilled serve [options]
|
|
246
250
|
|
|
247
251
|
Runs the daemon in this process. Every path is a flag and none is derived
|
|
248
252
|
(ADR 0130 rule 3); what is absent falls back to the session derivation.
|
|
@@ -329,23 +333,19 @@ Reports every session runtime dir it looked at and why it kept or removed it.
|
|
|
329
333
|
|
|
330
334
|
--dry-run the same report with nothing removed
|
|
331
335
|
--grace-ms <n> how long a dir must be idle before it is reclaimed
|
|
332
|
-
`};function
|
|
333
|
-
`:`${
|
|
334
|
-
`),0}if(
|
|
335
|
-
`);let p=
|
|
336
|
-
`),0}var
|
|
337
|
-
`),0}function
|
|
338
|
-
`),o.running&&!o.stopped?1:0}async function
|
|
339
|
-
`),0;if(o==="install"){let s=await
|
|
340
|
-
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await
|
|
341
|
-
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}async function
|
|
342
|
-
`)
|
|
343
|
-
`),
|
|
344
|
-
`)}
|
|
345
|
-
`),0}var GB={"no-start":{kind:"boolean"},"install-unit":{kind:"boolean"},check:{kind:"boolean"},project:{kind:"value",coerce:e=>e},workspace:{kind:"value",coerce:e=>e}};async function WB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=ln(e,GB),o=t.paths??cr(),s=t.homeDir??Ii(),i=await tp({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await Tk(s),l;if(!n.check&&!n["no-start"])try{await Yu(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await Ck({paths:o,homeNeed:i,...t.homeDir==null?{}:{homeDir:t.homeDir},...t.configHome==null?{}:{configHome:t.configHome},...t.client?.serverCommand==null?{}:{entryOverride:{serverCommand:t.client.serverCommand,serverArgs:t.client.serverArgs}}}),c=n["install-unit"]&&Ar(d.entry)?await Fk({configHome:t.configHome??qB(),unit:Ok({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=Ak(d);return r(`${ot({verdict:u.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...c==null?{}:{unit:{path:c.path,status:c.status}},checks:u.rows.map(p=>({check:p.check,verdict:p.verdict,evidence:p.evidence})),fixes:u.findings.map(p=>({check:p.check,fix:p.fix}))})}
|
|
346
|
-
`),u.verdict==="ok"?0:1}var HB={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function UB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=ln(e,HB),o=await Lk({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${ot({roots:[...o.roots],scanned:o.scanned,reclaimed:o.reclaimed,dry_run:o.dryRun,entries:o.entries.map(s=>({dir:s.dir,verdict:s.verdict,reason:s.reason,removed:[...s.removed]}))})}
|
|
347
|
-
`),o.entries.some(s=>s.verdict==="failed")?1:0}function qB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:zl(Ii(),".config")}function KB(e){let t=cr();return{...t,socketPath:e.socket??t.socketPath,leasePath:e.lease??t.leasePath,eventLanePath:e.events??t.eventLanePath,sessionKeyHash:e["session-key-hash"]??t.sessionKeyHash,machineIdHash:e["machine-id-hash"]??t.machineIdHash,machineClaimPath:e["machine-claim"]??t.machineClaimPath}}var VB=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(VB){let e=process.argv.slice(2);FB(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
|
|
348
|
-
`),process.exitCode=1})}export{kx as REDSKILLED_HOST_TOKEN_ENV,TB as REDSKILLED_USAGE,yx as armRedskilledQueueTransport,wx as resolveRedskilledHostToken,OB as resolveServeGithubBalance,DB as resolveServeQueueDiscovery,yf as runDashboard,MB as runGithubSpend,WB as runProvision,UB as runReclaim,FB as runRedskilledCli,NB as runStatusline,BB as runStop,$B as runUnit};
|
|
336
|
+
`};function OB(e){return e==="--help"||e==="-h"||e==="help"}var FB={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)}},Rx="REDSKILLED_HOST_TOKEN";function Mi(){try{let t=AB("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function _x(e=process.env,t=Mi){let r=(e[Rx]??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 IB(e,t=process.env,r=Mi,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...wx(e,t,r,n),armTransport:()=>wx(e,t,r,n)}}function MB(e,t=process.env,r=Mi){let n=_x(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:eu({token:n.token,...o?{origin:o}:{}})}}function wx(e,t=process.env,r=Mi,n){let o=_x(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${Rx}, 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:iy({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function LB(e){if(e[0]==="--version"||e[0]==="-v"){let o=xd("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
|
|
337
|
+
`:`${Sg(o)}
|
|
338
|
+
`),0}if(OB(e[0]))return process.stdout.write(CB),0;let{command:t,args:r}=Cg(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(DB[t]),0;if(t==="serve"){let{values:o}=ln(r,FB),s=await gk(Ii()),i=hk({flags:{...o["worker-ceiling"]==null?{}:{workerCeiling:o["worker-ceiling"]},...o["memory-ceiling"]==null?{}:{memoryCeiling:o["memory-ceiling"]},...o["idle-ms"]==null?{}:{idleMs:o["idle-ms"]}},config:s}),a=zl(ir(Ii()),"state"),l=Ea({path:zl(a,"github","spend.toonl")}),d=IB(o,process.env,Mi,l),c=MB(o),u=Yg({stateRoot:a});process.stderr.write(`${Qg(u)}
|
|
339
|
+
`);let p=qg({lanePath:Po(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g;try{g=await Z0({paths:zB(o),idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??xd("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}})}catch(f){if(!(f instanceof zt))throw f;return p.uninstall(),0}for(let f of["SIGTERM","SIGINT"])process.once(f,()=>void g.stop({reason:"signal",signal:f}).catch(()=>{}));return await g.closed,p.phase("closed"),0}if(t==="stop")return await GB(r);if(t==="statusline")return await kf(r);if(t==="dashboard")return await yf(r);if(t==="github-spend")return await BB(r);if(t==="unit")return await WB(r);if(t==="provision")return await UB(r);if(t==="reclaim")return await KB(r);let n=await dk(er());return process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
340
|
+
`),0}var jB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function BB(e,t={}){let{values:r}=ln(e,jB,{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:$B(o),i=(t.now??(()=>new Date().toISOString()))(),a=Date.parse(i);if(!Number.isFinite(a))throw new Error(`redskilled github-spend clock returned an invalid instant: ${i}`);let l=new Date(a-n*60*60*1e3).toISOString(),c=await(t.ledger??Ea({path:zl(ir(t.homeDir??Ii()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${ot({version:c.version,origin:c.origin,window:{from:c.window.from,to:c.window.to},pool:c.pool,total_count:c.total_count,total_cost:c.total_cost,operations:c.operations.map(u=>({operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:u.count,cost:u.cost})),unreadable_records:c.unreadable_records})}
|
|
341
|
+
`),0}function $B(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 NB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function GB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=ln(e,NB),o=await lk(t.paths??er(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${ot({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,survives:s.survives})),detail:o.detail})}
|
|
342
|
+
`),o.running&&!o.stopped?1:0}async function WB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??er(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(S0(t.unitIO??{}),null,2)}
|
|
343
|
+
`),0;if(o==="install"){let s=await E0(k0(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
|
|
344
|
+
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await v0(t.unitIO??{}),null,2)}
|
|
345
|
+
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}var HB={"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 UB(e,t={}){let r=t.write??(p=>process.stdout.write(p)),{values:n}=ln(e,HB),o=t.paths??er(),s=t.homeDir??Ii(),i=await tp({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await Ak(s),l;if(!n.check&&!n["no-start"])try{await Yu(o,t.client??{})}catch(p){l=p instanceof Error?p.message:String(p)}let d=await Ok({paths:o,homeNeed:i,...t.homeDir==null?{}:{homeDir:t.homeDir},...t.configHome==null?{}:{configHome:t.configHome},...t.client?.serverCommand==null?{}:{entryOverride:{serverCommand:t.client.serverCommand,serverArgs:t.client.serverArgs}}}),c=n["install-unit"]&&Ar(d.entry)?await Mk({configHome:t.configHome??VB(),unit:Ik({command:[d.entry.command,...d.entry.args].join(" "),socketPath:o.socketPath})}):void 0,u=Dk(d);return r(`${ot({verdict:u.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...c==null?{}:{unit:{path:c.path,status:c.status}},checks:u.rows.map(p=>({check:p.check,verdict:p.verdict,evidence:p.evidence})),fixes:u.findings.map(p=>({check:p.check,fix:p.fix}))})}
|
|
346
|
+
`),u.verdict==="ok"?0:1}var qB={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function KB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=ln(e,qB),o=await Bk({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${ot({roots:[...o.roots],scanned:o.scanned,reclaimed:o.reclaimed,dry_run:o.dryRun,entries:o.entries.map(s=>({dir:s.dir,verdict:s.verdict,reason:s.reason,removed:[...s.removed]}))})}
|
|
347
|
+
`),o.entries.some(s=>s.verdict==="failed")?1:0}function VB(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:zl(Ii(),".config")}function zB(e){let t=er();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 JB=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(JB){let e=process.argv.slice(2);LB(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
|
|
348
|
+
`),process.exitCode=1})}export{Rx as REDSKILLED_HOST_TOKEN_ENV,CB as REDSKILLED_USAGE,wx as armRedskilledQueueTransport,_x as resolveRedskilledHostToken,MB as resolveServeGithubBalance,IB as resolveServeQueueDiscovery,yf as runDashboard,BB as runGithubSpend,UB as runProvision,KB as runReclaim,LB as runRedskilledCli,kf as runStatusline,GB as runStop,WB as runUnit};
|
|
349
349
|
/*! Bundled license information:
|
|
350
350
|
|
|
351
351
|
content-type/dist/index.js:
|