@reddb-io/red-skills 3.14.0 → 3.15.0
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/bin/{red-skills-castle-mcp.mjs → red-skills-redskilled-mcp.mjs} +2 -2
- package/dist/brain.bundle.min.mjs +1 -1
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +653 -650
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/{castle-mcp.bundle.min.mjs → redskilled-mcp.bundle.min.mjs} +406 -401
- package/dist/redskilled.bundle.min.mjs +136 -125
- package/dist/rsp.bundle.min.mjs +147 -145
- package/package.json +2 -2
|
@@ -1,71 +1,72 @@
|
|
|
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 kv=Object.create;var Sd=Object.defineProperty;var Rv=Object.getOwnPropertyDescriptor;var wv=Object.getOwnPropertyNames;var _v=Object.getPrototypeOf,xv=Object.prototype.hasOwnProperty;var Ev=(e,t)=>()=>(e&&(t=e(e=0)),t);var kg=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),vv=(e,t)=>{for(var r in t)Sd(e,r,{get:t[r],enumerable:!0})},Sv=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of wv(t))!xv.call(e,o)&&o!==r&&Sd(e,o,{get:()=>t[o],enumerable:!(n=Rv(t,o))||n.enumerable});return e};var Td=(e,t,r)=>(r=e!=null?kv(_v(e)):{},Sv(t||!e||!e.__esModule?Sd(r,"default",{value:e,enumerable:!0}):r,e));var ch={};vv(ch,{REDSKILLED_BIN_ENV:()=>bc,REDSKILLED_BUNDLE_ASSET:()=>Tr,REDSKILLED_ENTRY_UNRESOLVED:()=>js,RedskilledDaemonEntryError:()=>$s,isRedskilledEntryPath:()=>Rc,isResolvedRedskilledEntry:()=>Pr,redskilledBundleCacheRoot:()=>Ra,redskilledServeArgv:()=>un,requireRedskilledEntry:()=>wa,resolveRedskilledEntry:()=>pn});import{existsSync as NP,readdirSync as GP}from"node:fs";import{homedir as WP}from"node:os";import{basename as yc,dirname as hc,join as zt,resolve as ka}from"node:path";function Pr(e){return"command"in e}function un(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 Ra(e=process.env){return dh(e)}function pn(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??NP,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[bc];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&Rc(i))return a(ka(i),"caller-entry");let d=[];for(let[c,u]of KP(i,t.rootDir,r,t.listDir??JP))if(d.push(c),n(c))return a(c,u);return{diagnostic:js,searched:d,...i?{callerEntry:ka(i)}:{}}}function wa(e={},t={}){let r=pn(e,t);if(Pr(r))return r;throw new $s(r)}function Rc(e){let t=yc(e);return t===Tr||kc.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:qP(ka(e))}function qP(e){let t=hc(e);for(let r=0;r<4;r++){if(yc(t)==="redskilled")return!0;let n=hc(t);if(n===t)return!1;t=n}return!1}function*KP(e,t,r,n){if(e){let s=hc(ka(e));yield[zt(s,Tr),"caller-sibling-bundle"];let i=HP.exec(yc(e));i&&(yield[zt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[zt(s,"..","dist",Tr),"caller-sibling-bundle"]}for(let s of UP){let i=r[s];i&&(yield[zt(i,"dist",Tr),"plugin-root-bundle"],yield[zt(i,"..","..","dist",Tr),"plugin-root-bundle"])}t&&(yield[zt(t,"dist",Tr),"repo-bundle"],yield[zt(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[zt(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=dh(r);yield[zt(o,Tr),"bundle-cache"];for(let s of VP(o,n))yield[zt(o,s),"bundle-cache"]}function dh(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||zt(e.HOME||WP(),".cache");return zt(t,"red-skills","bundles")}function VP(e,t){return t(e).filter(r=>kc.test(r)).sort((r,n)=>zP(lh(n),lh(r)))}function lh(e){return kc.exec(e)?.[1]??""}function zP(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 JP(e){try{return GP(e)}catch{return[]}}var Tr,js,bc,$s,HP,kc,UP,zr=Ev(()=>{"use strict";Tr="redskilled.bundle.min.mjs",js="redskilled-daemon-entry-unresolved",bc="REDSKILLED_BIN";$s=class extends Error{code=js;searched;callerEntry;constructor(t){super(`${js}: no published ${Tr} found to spawn the redskilled daemon from${t.callerEntry?` (caller entry: ${t.callerEntry}, which is NOT used as a fallback)`:""}
|
|
4
4
|
searched:
|
|
5
5
|
${t.searched.map(r=>` ${r}`).join(`
|
|
6
|
-
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};jT=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,ac=/^redskilled-(.+)\.bundle\.min\.mjs$/,$T=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var Lc=og((Ic,Mc)=>{(function(e,t){typeof Ic=="object"&&typeof Mc<"u"?Mc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Ic,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,D,R={}){var F,L,$;for(F in D)$=D[F],R[F]=(L=J[F])!=null?L:$;return R},n=function(J,D,R={}){var F,L;for(F in J)L=J[F],D[F]!==void 0&&(R[F]=L);return R},o={load:r,overwrite:n},s;s=class{constructor(D,R){this.incr=D,this.decr=R,this._first=null,this._last=null,this.length=0}push(D){var R;this.length++,typeof this.incr=="function"&&this.incr(),R={value:D,prev:this._last,next:null},this._last!=null?(this._last.next=R,this._last=R):this._first=this._last=R}shift(){var D;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),D=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,D}first(){if(this._first!=null)return this._first.value}getArray(){var D,R,F;for(D=this._first,F=[];D!=null;)F.push((R=D,D=D.next,R.value));return F}forEachShift(D){var R;for(R=this.shift();R!=null;)D(R),R=this.shift()}debug(){var D,R,F,L,$;for(D=this._first,$=[];D!=null;)$.push((R=D,D=D.next,{value:R.value,prev:(F=R.prev)!=null?F.value:void 0,next:(L=R.next)!=null?L.value:void 0}));return $}};var i=s,a;a=class{constructor(D){if(this.instance=D,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(R,F)=>this._addListener(R,"many",F),this.instance.once=(R,F)=>this._addListener(R,"once",F),this.instance.removeAllListeners=(R=null)=>R!=null?delete this._events[R]:this._events={}}_addListener(D,R,F){var L;return(L=this._events)[D]==null&&(L[D]=[]),this._events[D].push({cb:F,status:R}),this.instance}listenerCount(D){return this._events[D]!=null?this._events[D].length:0}async trigger(D,...R){var F,L;try{return D!=="debug"&&this.trigger("debug",`Event triggered: ${D}`,R),this._events[D]==null?void 0:(this._events[D]=this._events[D].filter(function($){return $.status!=="none"}),L=this._events[D].map(async $=>{var K,X;if($.status!=="none"){$.status==="once"&&($.status="none");try{return X=typeof $.cb=="function"?$.cb(...R):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($){return $!=null}))}catch($){return F=$,this.trigger("error",F),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(D){var R;this.Events=new c(this),this._length=0,this._lists=function(){var F,L,$;for($=[],R=F=1,L=D;1<=L?F<=L:F>=L;R=1<=L?++F:--F)$.push(new d(()=>this.incr(),()=>this.decr()));return $}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(D){return this._lists[D.options.priority].push(D)}queued(D){return D!=null?this._lists[D].length:this._length}shiftAll(D){return this._lists.forEach(function(R){return R.forEachShift(D)})}getFirst(D=this._lists){var R,F,L;for(R=0,F=D.length;R<F;R++)if(L=D[R],L.length>0)return L;return[]}shiftLastFrom(D){return this.getFirst(this._lists.slice(D).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,m,w,T,B;T=10,m=5,B=o,y=f,w=class{constructor(D,R,F,L,$,K,X,xe){this.task=D,this.args=R,this.rejectOnDrop=$,this.Events=K,this._states=X,this.Promise=xe,this.options=B.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,$e)=>{this._resolve=je,this._reject=$e}),this.retryCount=0}_sanitizePriority(D){var R;return R=~~D!==D?m:D,R<0?0:R>T-1?T-1:R}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:D,message:R="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(D??new y(R)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(D){var R;if(R=this._states.jobStatus(this.options.id),!(R===D||D==="DONE"&&R===null))throw new y(`Invalid job status ${R}, expected ${D}. 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(D,R){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:D,blocked:R})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(D,R,F,L){var $,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(D!=null?D.schedule(this.options,this.task,...this.args):this.task(...this.args)),R())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(xe){return $=xe,this._onFailure($,K,R,F,L)}}doExpire(D,R,F){var L,$;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),$={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,$,D,R,F)}async _onFailure(D,R,F,L,$){var K,X;if(F())return K=await this.Events.trigger("failed",D,R),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,R),this.retryCount++,L(X)):(this.doDone(R),await $(this.options,R),this._assertStatus("DONE"),this._reject(D))}doDone(D){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",D)}};var C=w,M,N,H;H=o,M=f,N=class{constructor(D,R,F){this.instance=D,this.storeOptions=R,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 D;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(D=this.heartbeat=setInterval(()=>{var R,F,L,$,K;if($=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&$>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=$,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&$>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:R,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=$,F=L!=null?Math.min(R,L-K):R,F>0))return this.storeOptions.reservoir+=F,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?D.unref():void 0:clearInterval(this.heartbeat)}async __publish__(D){return await this.yieldLoop(),this.instance.Events.trigger("message",D.toString())}async __disconnect__(D){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(D=0){return new this.Promise(function(R,F){return setTimeout(R,D)})}computePenalty(){var D;return(D=this.storeOptions.penalty)!=null?D:15*this.storeOptions.minTime||5e3}async __updateSettings__(D){return await this.yieldLoop(),H.overwrite(D,D,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__(D){return await this.yieldLoop(),this._nextRequest+this.timeout<D}computeCapacity(){var D,R;return{maxConcurrent:D,reservoir:R}=this.storeOptions,D!=null&&R!=null?Math.min(D-this._running,R):D!=null?D-this._running:R??null}conditionsCheck(D){var R;return R=this.computeCapacity(),R==null||D<=R}async __incrementReservoir__(D){var R;return await this.yieldLoop(),R=this.storeOptions.reservoir+=D,this.instance._drainAll(this.computeCapacity()),R}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(D){return this._unblockTime>=D}check(D,R){return this.conditionsCheck(D)&&this._nextRequest-R<=0}async __check__(D){var R;return await this.yieldLoop(),R=Date.now(),this.check(D,R)}async __register__(D,R,F){var L,$;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(R)?(this._running+=R,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=R),$=Math.max(this._nextRequest-L,0),this._nextRequest=L+$+this.storeOptions.minTime,{success:!0,wait:$,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(D,R){var F,L,$;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&R>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${R} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return L=Date.now(),$=this.storeOptions.highWater!=null&&D===this.storeOptions.highWater&&!this.check(R,L),F=this.strategyIsBlock()&&($||this.isBlocked(L)),F&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:$,blocked:F,strategy:this.storeOptions.strategy}}async __free__(D,R){return await this.yieldLoop(),this._running-=R,this._done+=R,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,I,W;I=f,W=class{constructor(D){this.status=D,this._jobs={},this.counts=this.status.map(function(){return 0})}next(D){var R,F;if(R=this._jobs[D],F=R+1,R!=null&&F<this.status.length)return this.counts[R]--,this.counts[F]++,this._jobs[D]++;if(R!=null)return this.counts[R]--,delete this._jobs[D]}start(D){var R;return R=0,this._jobs[D]=R,this.counts[R]++}remove(D){var R;return R=this._jobs[D],R!=null&&(this.counts[R]--,delete this._jobs[D]),R!=null}jobStatus(D){var R;return(R=this.status[this._jobs[D]])!=null?R:null}statusJobs(D){var R,F,L,$,K;if(D!=null){if(F=this.status.indexOf(D),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);L=this._jobs,$=[];for(R in L)K=L[R],K===F&&$.push(R);return $}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((D,R,F)=>(D[this.status[F]]=R,D),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(D,R){this.schedule=this.schedule.bind(this),this.name=D,this.Promise=R,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var D,R,F,L,$,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:D,resolve:$,reject:L}=this._queue.shift(),R=await async function(){try{return K=await X(...D),function(){return $(K)}}catch(xe){return F=xe,function(){return L(F)}}}(),this._running--,this._tryToRun(),R()}schedule(D,...R){var F,L,$;return $=L=null,F=new this.Promise(function(K,X){return $=K,L=X}),this._queue.push({task:D,args:R,resolve:$,reject:L}),this._tryToRun(),F}};var se=ae,Z="2.19.5",pe={version:Z},De=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,we,Oe,ve,Re,Te;Te=o,de=l,ve=Ee,Oe=ke,Re=Y,we=function(){class J{constructor(R={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=R,Te.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=Pe,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 Oe(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(R=""){var F;return(F=this.instances[R])!=null?F:(()=>{var L;return L=this.instances[R]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${R}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",L,R),L})()}async deleteKey(R=""){var F,L;return L=this.instances[R],this.connection&&(F=await this.connection.__runCommand__(["del",...Re.allKeys(`${this.id}-${R}`)])),L!=null&&(delete this.instances[R],await L.disconnect()),L!=null||F>0}limiters(){var R,F,L,$;F=this.instances,L=[];for(R in F)$=F[R],L.push({key:R,limiter:$});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var R,F,L,$,K,X,xe,je,$e;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],R=null,$e=`b_${this.id}-`.length,F=9;R!==0;)for([je,L]=await this.connection.__runCommand__(["scan",R??0,"match",`b_${this.id}-*_settings`,"count",1e4]),R=~~je,$=0,xe=L.length;$<xe;$++)K=L[$],X.push(K.slice($e,-F));return X}_startAutoCleanup(){var R;return clearInterval(this.interval),typeof(R=this.interval=setInterval(async()=>{var F,L,$,K,X,xe;X=Date.now(),$=this.instances,K=[];for(L in $){xe=$[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"?R.unref():void 0}updateSettings(R={}){if(Te.overwrite(R,this.defaults,this),Te.overwrite(R,R,this.limiterOptions),R.timeout!=null)return this._startAutoCleanup()}disconnect(R=!0){var F;if(!this.sharedConnection)return(F=this.connection)!=null?F.disconnect(R):void 0}}return J.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},J}.call(e);var fe=we,ie,_e,Ie;Ie=o,_e=l,ie=function(){class J{constructor(R={}){this.options=R,Ie.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((R,F)=>this._resolve=R)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(R){var F;return this._arr.push(R),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,Nt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),en=t(De),tn,go,ce,Gt,ct,Ze,Rt,lt,ut,wt,_t,Gr=[].splice;Ze=10,go=5,_t=o,Rt=p,Gt=C,ct=G,lt=Nt,ce=l,ut=q,wt=se,tn=function(){class J{constructor(R={},...F){var L,$;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(R,F),_t.load(R,this.instanceDefaults,this),this._queues=new Rt(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 wt("submit",this.Promise),this._registerLock=new wt("register",this.Promise),$=_t.load(R,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=_t.load(R,this.redisStoreDefaults,{}),new lt(this,$,L);if(this.datastore==="local")return L=_t.load(R,this.localStoreDefaults,{}),new ct(this,$,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(R,F){if(!(R!=null&&typeof R=="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(R){return this._store.__publish__(R)}disconnect(R=!0){return this._store.__disconnect__(R)}chain(R){return this._limiter=R,this}queued(R){return this._queues.queued(R)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(R){return this._states.jobStatus(R)}jobs(R){return this._states.statusJobs(R)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(R=1){return this._store.__check__(R)}_clearGlobalState(R){return this._scheduled[R]!=null?(clearTimeout(this._scheduled[R].expiration),delete this._scheduled[R],!0):!1}async _free(R,F,L,$){var K,X;try{if({running:X}=await this._store.__free__(R,L.weight),this.Events.trigger("debug",`Freed ${L.id}`,$),X===0&&this.empty())return this.Events.trigger("idle")}catch(xe){return K=xe,this.Events.trigger("error",K)}}_run(R,F,L){var $,K,X;return F.doRun(),$=this._clearGlobalState.bind(this,R),X=this._run.bind(this,R,F),K=this._free.bind(this,R,F),this._scheduled[R]={timeout:setTimeout(()=>F.doExecute(this._limiter,$,X,K),L),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire($,X,K)},L+F.options.expiration):void 0,job:F}}_drainOne(R){return this._registerLock.schedule(()=>{var F,L,$,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:F}=$=X.first(),R!=null&&K.weight>R?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:$e})=>{var Mt;return this.Events.trigger("debug",`Drained ${K.id}`,{success:xe,args:F,options:K}),xe?(X.shift(),Mt=this.empty(),Mt&&this.Events.trigger("empty"),$e===0&&this.Events.trigger("depleted",Mt),this._run(L,$,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(R,F=0){return this._drainOne(R).then(L=>{var $;return L!=null?($=R!=null?R-L:R,this._drainAll($,F+L)):this.Promise.resolve(F)}).catch(L=>this.Events.trigger("error",L))}_dropAllQueued(R){return this._queues.shiftAll(function(F){return F.doDrop({message:R})})}stop(R={}){var F,L;return R=_t.load(R,this.stopDefaults),L=$=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===$},new this.Promise((X,xe)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},F=R.dropWaitingJobs?(this._run=function($,K){return K.doDrop({message:R.dropErrorMessage})},this._drainOne=()=>this.Promise.resolve(null),this._registerLock.schedule(()=>this._submitLock.schedule(()=>{var $,K,X;K=this._scheduled;for($ in K)X=K[$],this.jobStatus(X.job.options.id)==="RUNNING"&&(clearTimeout(X.timeout),clearTimeout(X.expiration),X.job.doDrop({message:R.dropErrorMessage}));return this._dropAllQueued(R.dropErrorMessage),L(0)}))):this.schedule({priority:Ze-1,weight:0},()=>L(1)),this._receive=function($){return $._reject(new J.prototype.BottleneckError(R.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new J.prototype.BottleneckError("stop() has already been called")),F}async _addToQueue(R){var F,L,$,K,X,xe,je;({args:F,options:K}=R);try{({reachedHWM:X,blocked:L,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch($e){return $=$e,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:F,options:K,error:$}),R.doDrop({error:$}),!1}return L?(R.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?R:void 0,xe?.doDrop(),xe==null||je===J.prototype.strategy.OVERFLOW)?(xe==null&&R.doDrop(),X):(R.doQueue(X,L),this._queues.push(R),await this._drainAll(),X)}_receive(R){return this._states.jobStatus(R.options.id)!=null?(R._reject(new J.prototype.BottleneckError(`A job with the same id already exists (id=${R.options.id})`)),!1):(R.doReceive(),this._submitLock.schedule(this._addToQueue,R))}submit(...R){var F,L,$,K,X,xe,je;return typeof R[0]=="function"?(X=R,[L,...R]=X,[F]=Gr.call(R,-1),K=_t.load({},this.jobDefaults)):(xe=R,[K,L,...R]=xe,[F]=Gr.call(R,-1),K=_t.load(K,this.jobDefaults)),je=(...$e)=>new this.Promise(function(Mt,rn){return L(...$e,function(...kr){return(kr[0]!=null?rn:Mt)(kr)})}),$=new Gt(je,R,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),$.promise.then(function($e){return typeof F=="function"?F(...$e):void 0}).catch(function($e){return Array.isArray($e)?typeof F=="function"?F(...$e):void 0:typeof F=="function"?F($e):void 0}),this._receive($)}schedule(...R){var F,L,$;return typeof R[0]=="function"?([$,...R]=R,L={}):[L,$,...R]=R,F=new Gt($,R,L,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(F),F.promise}wrap(R){var F,L;return F=this.schedule.bind(this),L=function(...$){return F(R.bind(this),...$)},L.withOptions=function($,...K){return F($,R,...K)},L}async updateSettings(R={}){return await this._store.__updateSettings__(_t.overwrite(R,this.storeDefaults)),_t.overwrite(R,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(R=0){return this._store.__incrementReservoir__(R)}}return J.default=J,J.Events=ce,J.version=J.prototype.version=en.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 Pe=tn,Le=Pe;return Le})});var Ab=og(Oa=>{"use strict";Object.defineProperty(Oa,"__esModule",{value:!0});Oa.format=gC;Oa.parse=mC;var uC=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,Eb=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,pC=/[\\"]/g,fC=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,vb=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function gC(e){let{type:t,parameters:r}=e;if(!t||!fC.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!Eb.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${kC(r[o])}`}return n}function mC(e,t){let r=e.length,n=Wc(e,0,r),o=n;n=Gc(e,n,r);let s=Hc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new vb:yC(e,n,r);return{type:i,parameters:a}}var Sb=32,Tb=9,Pb=59,hC=61,xb=34,bC=92;function yC(e,t,r){let n=new vb;e:for(;t<r;){t=Wc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Pb)continue e;if(s===hC){let i=Hc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Wc(e,t+1,r),t<r&&e.charCodeAt(t)===xb){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===xb){t=Gc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===bC&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Gc(e,t,r),n[a]===void 0){let d=Hc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Gc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Pb;)t++;return t}function Wc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Sb&&n!==Tb)break;t++}return t}function Hc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Sb&&n!==Tb)break;r--}return r}function kC(e){if(Eb.test(e))return e;if(uC.test(e))return`"${e.replace(pC,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as GB}from"node:child_process";import{homedir as ji}from"node:os";import{join as ld}from"node:path";var wo=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 wo(e,t)}function Ae(e,t){return new In(e,t)}function _o(e){return e instanceof In?e:e instanceof wo?new In(e.line,e.reason):new In(0,String(e&&e.message?e.message:e))}var sg=["type","kind","event"],Mn="|",ig=new Set(["order","discriminator","rows","common"]);var Ve=",";function Yi(e){let t=e.split(`
|
|
7
|
-
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function
|
|
8
|
-
`;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw
|
|
9
|
-
`),e.push(" order: ",St(r.order.encoded
|
|
10
|
-
`),e.push(" discriminator: ",St(r.discriminator
|
|
6
|
+
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};HP=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,kc=/^redskilled-(.+)\.bundle\.min\.mjs$/,UP=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var zc=kg((Kc,Vc)=>{(function(e,t){typeof Kc=="object"&&typeof Vc<"u"?Vc.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Kc,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,O,R={}){var F,j,B;for(F in O)B=O[F],R[F]=(j=J[F])!=null?j:B;return R},n=function(J,O,R={}){var F,j;for(F in J)j=J[F],O[F]!==void 0&&(R[F]=j);return R},o={load:r,overwrite:n},s;s=class{constructor(O,R){this.incr=O,this.decr=R,this._first=null,this._last=null,this.length=0}push(O){var R;this.length++,typeof this.incr=="function"&&this.incr(),R={value:O,prev:this._last,next:null},this._last!=null?(this._last.next=R,this._last=R):this._first=this._last=R}shift(){var O;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),O=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,O}first(){if(this._first!=null)return this._first.value}getArray(){var O,R,F;for(O=this._first,F=[];O!=null;)F.push((R=O,O=O.next,R.value));return F}forEachShift(O){var R;for(R=this.shift();R!=null;)O(R),R=this.shift()}debug(){var O,R,F,j,B;for(O=this._first,B=[];O!=null;)B.push((R=O,O=O.next,{value:R.value,prev:(F=R.prev)!=null?F.value:void 0,next:(j=R.next)!=null?j.value:void 0}));return B}};var i=s,a;a=class{constructor(O){if(this.instance=O,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(R,F)=>this._addListener(R,"many",F),this.instance.once=(R,F)=>this._addListener(R,"once",F),this.instance.removeAllListeners=(R=null)=>R!=null?delete this._events[R]:this._events={}}_addListener(O,R,F){var j;return(j=this._events)[O]==null&&(j[O]=[]),this._events[O].push({cb:F,status:R}),this.instance}listenerCount(O){return this._events[O]!=null?this._events[O].length:0}async trigger(O,...R){var F,j;try{return O!=="debug"&&this.trigger("debug",`Event triggered: ${O}`,R),this._events[O]==null?void 0:(this._events[O]=this._events[O].filter(function(B){return B.status!=="none"}),j=this._events[O].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(...R):void 0,typeof X?.then=="function"?await X:X}catch(xe){return K=xe,this.trigger("error",K),null}}}),(await Promise.all(j)).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(O){var R;this.Events=new c(this),this._length=0,this._lists=function(){var F,j,B;for(B=[],R=F=1,j=O;1<=j?F<=j:F>=j;R=1<=j?++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(O){return this._lists[O.options.priority].push(O)}queued(O){return O!=null?this._lists[O].length:this._length}shiftAll(O){return this._lists.forEach(function(R){return R.forEachShift(O)})}getFirst(O=this._lists){var R,F,j;for(R=0,F=O.length;R<F;R++)if(j=O[R],j.length>0)return j;return[]}shiftLastFrom(O){return this.getFirst(this._lists.slice(O).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,b,m,w,T,L;T=10,m=5,L=o,b=f,w=class{constructor(O,R,F,j,B,K,X,xe){this.task=O,this.args=R,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=xe,this.options=L.load(F,j),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===j.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,$e)=>{this._resolve=je,this._reject=$e}),this.retryCount=0}_sanitizePriority(O){var R;return R=~~O!==O?m:O,R<0?0:R>T-1?T-1:R}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:O,message:R="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(O??new b(R)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(O){var R;if(R=this._states.jobStatus(this.options.id),!(R===O||O==="DONE"&&R===null))throw new b(`Invalid job status ${R}, expected ${O}. 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(O,R){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:O,blocked:R})}doRun(){return this.retryCount===0?(this._assertStatus("QUEUED"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),this.Events.trigger("scheduled",{args:this.args,options:this.options})}async doExecute(O,R,F,j){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(O!=null?O.schedule(this.options,this.task,...this.args):this.task(...this.args)),R())return this.doDone(K),await j(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(xe){return B=xe,this._onFailure(B,K,R,F,j)}}doExpire(O,R,F){var j,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},j=new b(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(j,B,O,R,F)}async _onFailure(O,R,F,j,B){var K,X;if(F())return K=await this.Events.trigger("failed",O,R),K!=null?(X=~~K,this.Events.trigger("retry",`Retrying ${this.options.id} after ${X} ms`,R),this.retryCount++,j(X)):(this.doDone(R),await B(this.options,R),this._assertStatus("DONE"),this._reject(O))}doDone(O){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",O)}};var C=w,M,N,H;H=o,M=f,N=class{constructor(O,R,F){this.instance=O,this.storeOptions=R,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 O;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(O=this.heartbeat=setInterval(()=>{var R,F,j,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:R,reservoirIncreaseMaximum:j,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,F=j!=null?Math.min(R,j-K):R,F>0))return this.storeOptions.reservoir+=F,this.instance._drainAll(this.computeCapacity())},this.heartbeatInterval)).unref=="function"?O.unref():void 0:clearInterval(this.heartbeat)}async __publish__(O){return await this.yieldLoop(),this.instance.Events.trigger("message",O.toString())}async __disconnect__(O){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(O=0){return new this.Promise(function(R,F){return setTimeout(R,O)})}computePenalty(){var O;return(O=this.storeOptions.penalty)!=null?O:15*this.storeOptions.minTime||5e3}async __updateSettings__(O){return await this.yieldLoop(),H.overwrite(O,O,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__(O){return await this.yieldLoop(),this._nextRequest+this.timeout<O}computeCapacity(){var O,R;return{maxConcurrent:O,reservoir:R}=this.storeOptions,O!=null&&R!=null?Math.min(O-this._running,R):O!=null?O-this._running:R??null}conditionsCheck(O){var R;return R=this.computeCapacity(),R==null||O<=R}async __incrementReservoir__(O){var R;return await this.yieldLoop(),R=this.storeOptions.reservoir+=O,this.instance._drainAll(this.computeCapacity()),R}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(O){return this._unblockTime>=O}check(O,R){return this.conditionsCheck(O)&&this._nextRequest-R<=0}async __check__(O){var R;return await this.yieldLoop(),R=Date.now(),this.check(O,R)}async __register__(O,R,F){var j,B;return await this.yieldLoop(),j=Date.now(),this.conditionsCheck(R)?(this._running+=R,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=R),B=Math.max(this._nextRequest-j,0),this._nextRequest=j+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(O,R){var F,j,B;if(await this.yieldLoop(),this.storeOptions.maxConcurrent!=null&&R>this.storeOptions.maxConcurrent)throw new M(`Impossible to add a job having a weight of ${R} to a limiter having a maxConcurrent setting of ${this.storeOptions.maxConcurrent}`);return j=Date.now(),B=this.storeOptions.highWater!=null&&O===this.storeOptions.highWater&&!this.check(R,j),F=this.strategyIsBlock()&&(B||this.isBlocked(j)),F&&(this._unblockTime=j+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:F,strategy:this.storeOptions.strategy}}async __free__(O,R){return await this.yieldLoop(),this._running-=R,this._done+=R,this.instance._drainAll(this.computeCapacity()),{running:this._running}}};var G=N,I,W;I=f,W=class{constructor(O){this.status=O,this._jobs={},this.counts=this.status.map(function(){return 0})}next(O){var R,F;if(R=this._jobs[O],F=R+1,R!=null&&F<this.status.length)return this.counts[R]--,this.counts[F]++,this._jobs[O]++;if(R!=null)return this.counts[R]--,delete this._jobs[O]}start(O){var R;return R=0,this._jobs[O]=R,this.counts[R]++}remove(O){var R;return R=this._jobs[O],R!=null&&(this.counts[R]--,delete this._jobs[O]),R!=null}jobStatus(O){var R;return(R=this.status[this._jobs[O]])!=null?R:null}statusJobs(O){var R,F,j,B,K;if(O!=null){if(F=this.status.indexOf(O),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);j=this._jobs,B=[];for(R in j)K=j[R],K===F&&B.push(R);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((O,R,F)=>(O[this.status[F]]=R,O),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(O,R){this.schedule=this.schedule.bind(this),this.name=O,this.Promise=R,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var O,R,F,j,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:O,resolve:B,reject:j}=this._queue.shift(),R=await async function(){try{return K=await X(...O),function(){return B(K)}}catch(xe){return F=xe,function(){return j(F)}}}(),this._running--,this._tryToRun(),R()}schedule(O,...R){var F,j,B;return B=j=null,F=new this.Promise(function(K,X){return B=K,j=X}),this._queue.push({task:O,args:R,resolve:B,reject:j}),this._tryToRun(),F}};var se=ae,Z="2.19.5",pe={version:Z},Oe=Object.freeze({version:Z,default:pe}),ve=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),ke=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),Y=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),de,we,De,Se,Re,Pe;Pe=o,de=l,Se=ve,De=ke,Re=Y,we=function(){class J{constructor(R={}){this.deleteKey=this.deleteKey.bind(this),this.limiterOptions=R,Pe.load(this.limiterOptions,this.defaults,this),this.Events=new de(this),this.instances={},this.Bottleneck=Te,this._startAutoCleanup(),this.sharedConnection=this.connection!=null,this.connection==null&&(this.limiterOptions.datastore==="redis"?this.connection=new Se(Object.assign({},this.limiterOptions,{Events:this.Events})):this.limiterOptions.datastore==="ioredis"&&(this.connection=new De(Object.assign({},this.limiterOptions,{Events:this.Events}))))}key(R=""){var F;return(F=this.instances[R])!=null?F:(()=>{var j;return j=this.instances[R]=new this.Bottleneck(Object.assign(this.limiterOptions,{id:`${this.id}-${R}`,timeout:this.timeout,connection:this.connection})),this.Events.trigger("created",j,R),j})()}async deleteKey(R=""){var F,j;return j=this.instances[R],this.connection&&(F=await this.connection.__runCommand__(["del",...Re.allKeys(`${this.id}-${R}`)])),j!=null&&(delete this.instances[R],await j.disconnect()),j!=null||F>0}limiters(){var R,F,j,B;F=this.instances,j=[];for(R in F)B=F[R],j.push({key:R,limiter:B});return j}keys(){return Object.keys(this.instances)}async clusterKeys(){var R,F,j,B,K,X,xe,je,$e;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],R=null,$e=`b_${this.id}-`.length,F=9;R!==0;)for([je,j]=await this.connection.__runCommand__(["scan",R??0,"match",`b_${this.id}-*_settings`,"count",1e4]),R=~~je,B=0,xe=j.length;B<xe;B++)K=j[B],X.push(K.slice($e,-F));return X}_startAutoCleanup(){var R;return clearInterval(this.interval),typeof(R=this.interval=setInterval(async()=>{var F,j,B,K,X,xe;X=Date.now(),B=this.instances,K=[];for(j in B){xe=B[j];try{await xe._store.__groupCheck__(X)?K.push(this.deleteKey(j)):K.push(void 0)}catch(je){F=je,K.push(xe.Events.trigger("error",F))}}return K},this.timeout/2)).unref=="function"?R.unref():void 0}updateSettings(R={}){if(Pe.overwrite(R,this.defaults,this),Pe.overwrite(R,R,this.limiterOptions),R.timeout!=null)return this._startAutoCleanup()}disconnect(R=!0){var F;if(!this.sharedConnection)return(F=this.connection)!=null?F.disconnect(R):void 0}}return J.prototype.defaults={timeout:1e3*60*5,connection:null,Promise,id:"group-key"},J}.call(e);var me=we,ie,_e,Ie;Ie=o,_e=l,ie=function(){class J{constructor(R={}){this.options=R,Ie.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((R,F)=>this._resolve=R)}_flush(){return clearTimeout(this._timeout),this._lastFlush=Date.now(),this._resolve(),this.Events.trigger("batch",this._arr),this._arr=[],this._resetPromise()}add(R){var F;return this._arr.push(R),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 et=ie,Ht=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),nn=t(Oe),on,ko,ce,Ut,ct,tt,Rt,ut,ft,wt,_t,Wr=[].splice;tt=10,ko=5,_t=o,Rt=p,Ut=C,ct=G,ut=Ht,ce=l,ft=q,wt=se,on=function(){class J{constructor(R={},...F){var j,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(R,F),_t.load(R,this.instanceDefaults,this),this._queues=new Rt(tt),this._scheduled={},this._states=new ft(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ce(this),this._submitLock=new wt("submit",this.Promise),this._registerLock=new wt("register",this.Promise),B=_t.load(R,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return j=_t.load(R,this.redisStoreDefaults,{}),new ut(this,B,j);if(this.datastore==="local")return j=_t.load(R,this.localStoreDefaults,{}),new ct(this,B,j);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(R,F){if(!(R!=null&&typeof R=="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(R){return this._store.__publish__(R)}disconnect(R=!0){return this._store.__disconnect__(R)}chain(R){return this._limiter=R,this}queued(R){return this._queues.queued(R)}clusterQueued(){return this._store.__queued__()}empty(){return this.queued()===0&&this._submitLock.isEmpty()}running(){return this._store.__running__()}done(){return this._store.__done__()}jobStatus(R){return this._states.jobStatus(R)}jobs(R){return this._states.statusJobs(R)}counts(){return this._states.statusCounts()}_randomIndex(){return Math.random().toString(36).slice(2)}check(R=1){return this._store.__check__(R)}_clearGlobalState(R){return this._scheduled[R]!=null?(clearTimeout(this._scheduled[R].expiration),delete this._scheduled[R],!0):!1}async _free(R,F,j,B){var K,X;try{if({running:X}=await this._store.__free__(R,j.weight),this.Events.trigger("debug",`Freed ${j.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(xe){return K=xe,this.Events.trigger("error",K)}}_run(R,F,j){var B,K,X;return F.doRun(),B=this._clearGlobalState.bind(this,R),X=this._run.bind(this,R,F),K=this._free.bind(this,R,F),this._scheduled[R]={timeout:setTimeout(()=>F.doExecute(this._limiter,B,X,K),j),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire(B,X,K)},j+F.options.expiration):void 0,job:F}}_drainOne(R){return this._registerLock.schedule(()=>{var F,j,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:F}=B=X.first(),R!=null&&K.weight>R?this.Promise.resolve(null):(this.Events.trigger("debug",`Draining ${K.id}`,{args:F,options:K}),j=this._randomIndex(),this._store.__register__(j,K.weight,K.expiration).then(({success:xe,wait:je,reservoir:$e})=>{var jt;return this.Events.trigger("debug",`Drained ${K.id}`,{success:xe,args:F,options:K}),xe?(X.shift(),jt=this.empty(),jt&&this.Events.trigger("empty"),$e===0&&this.Events.trigger("depleted",jt),this._run(j,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(R,F=0){return this._drainOne(R).then(j=>{var B;return j!=null?(B=R!=null?R-j:R,this._drainAll(B,F+j)):this.Promise.resolve(F)}).catch(j=>this.Events.trigger("error",j))}_dropAllQueued(R){return this._queues.shiftAll(function(F){return F.doDrop({message:R})})}stop(R={}){var F,j;return R=_t.load(R,this.stopDefaults),j=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=R.dropWaitingJobs?(this._run=function(B,K){return K.doDrop({message:R.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:R.dropErrorMessage}));return this._dropAllQueued(R.dropErrorMessage),j(0)}))):this.schedule({priority:tt-1,weight:0},()=>j(1)),this._receive=function(B){return B._reject(new J.prototype.BottleneckError(R.enqueueErrorMessage))},this.stop=()=>this.Promise.reject(new J.prototype.BottleneckError("stop() has already been called")),F}async _addToQueue(R){var F,j,B,K,X,xe,je;({args:F,options:K}=R);try{({reachedHWM:X,blocked:j,strategy:je}=await this._store.__submit__(this.queued(),K.weight))}catch($e){return B=$e,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:F,options:K,error:B}),R.doDrop({error:B}),!1}return j?(R.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?R:void 0,xe?.doDrop(),xe==null||je===J.prototype.strategy.OVERFLOW)?(xe==null&&R.doDrop(),X):(R.doQueue(X,j),this._queues.push(R),await this._drainAll(),X)}_receive(R){return this._states.jobStatus(R.options.id)!=null?(R._reject(new J.prototype.BottleneckError(`A job with the same id already exists (id=${R.options.id})`)),!1):(R.doReceive(),this._submitLock.schedule(this._addToQueue,R))}submit(...R){var F,j,B,K,X,xe,je;return typeof R[0]=="function"?(X=R,[j,...R]=X,[F]=Wr.call(R,-1),K=_t.load({},this.jobDefaults)):(xe=R,[K,j,...R]=xe,[F]=Wr.call(R,-1),K=_t.load(K,this.jobDefaults)),je=(...$e)=>new this.Promise(function(jt,sn){return j(...$e,function(...wr){return(wr[0]!=null?sn:jt)(wr)})}),B=new Ut(je,R,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function($e){return typeof F=="function"?F(...$e):void 0}).catch(function($e){return Array.isArray($e)?typeof F=="function"?F(...$e):void 0:typeof F=="function"?F($e):void 0}),this._receive(B)}schedule(...R){var F,j,B;return typeof R[0]=="function"?([B,...R]=R,j={}):[j,B,...R]=R,F=new Ut(B,R,j,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),this._receive(F),F.promise}wrap(R){var F,j;return F=this.schedule.bind(this),j=function(...B){return F(R.bind(this),...B)},j.withOptions=function(B,...K){return F(B,R,...K)},j}async updateSettings(R={}){return await this._store.__updateSettings__(_t.overwrite(R,this.storeDefaults)),_t.overwrite(R,this.instanceDefaults,this),this}currentReservoir(){return this._store.__currentReservoir__()}incrementReservoir(R=0){return this._store.__incrementReservoir__(R)}}return J.default=J,J.Events=ce,J.version=J.prototype.version=nn.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=me,J.RedisConnection=J.prototype.RedisConnection=ve,J.IORedisConnection=J.prototype.IORedisConnection=ke,J.Batcher=J.prototype.Batcher=et,J.prototype.jobDefaults={priority:ko,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 Te=on,Le=Te;return Le})});var ab=kg(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.format=wO;Ba.parse=_O;var bO=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,rb=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,kO=/[\\"]/g,RO=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,nb=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function wO(e){let{type:t,parameters:r}=e;if(!t||!RO.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!rb.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${SO(r[o])}`}return n}function _O(e,t){let r=e.length,n=eu(e,0,r),o=n;n=Zc(e,n,r);let s=tu(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new nb:vO(e,n,r);return{type:i,parameters:a}}var ob=32,sb=9,ib=59,xO=61,tb=34,EO=92;function vO(e,t,r){let n=new nb;e:for(;t<r;){t=eu(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===ib)continue e;if(s===xO){let i=tu(e,o,t),a=e.slice(o,i).toLowerCase();if(t=eu(e,t+1,r),t<r&&e.charCodeAt(t)===tb){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===tb){t=Zc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===EO&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Zc(e,t,r),n[a]===void 0){let d=tu(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Zc(e,t,r){for(;t<r&&e.charCodeAt(t)!==ib;)t++;return t}function eu(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==ob&&n!==sb)break;t++}return t}function tu(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==ob&&n!==sb)break;r--}return r}function SO(e){if(rb.test(e))return e;if(bO.test(e))return`"${e.replace(kO,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as y2}from"node:child_process";import{homedir as Ui}from"node:os";import{join as kd}from"node:path";var So=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},jn=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 So(e,t)}function Ae(e,t){return new jn(e,t)}function To(e){return e instanceof jn?e:e instanceof So?new jn(e.line,e.reason):new jn(0,String(e&&e.message?e.message:e))}var Rg=["type","kind","event"],$n="|",wg=new Set(["order","discriminator","rows","common"]);var Ve=",";function ra(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 Kt(e,t){if(e==="")return"";if(e.startsWith('"'))return Eg(e,t);if(e.includes('"'))throw Er(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:Tv(e)?Number(e):e}function sr(e,t){let r=e.trim();if(r.startsWith('"'))return[Eg(r,t),!0];if(r.includes('"')||/\s/.test(r))throw V(t,"expected non-empty field name");return[r,!1]}var _g=/["\\\u0000-\u0008\u000a-\u001f]/g;function Eg(e,t){if(e.charCodeAt(0)!==34)throw Er(t);let r="",n=1;for(;n<e.length;){_g.lastIndex=n;let o=_g.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 vg(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 ir(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=vg(e,i+1,r);else break}return n.push(e.slice(o).trim()),n}function vt(e,t,r){let n=0;for(;n<e.length;){let o=e.indexOf('"',n),s=e.indexOf(t,n);if(s!==-1&&(o===-1||s<o))return s;if(o===-1)return-1;n=vg(e,o+1,r)}return-1}function Tv(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Pv(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function Av(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 St(e,t){if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="number")return Av(e);if(typeof e=="string")return Ov(e,t);throw V(0,"not a primitive")}function Cv(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function gt(e){return Cv(e)?e:na(e)}function Ov(e,t){return Pd(e,t)?na(e):e}function Pd(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||Pv(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var xg=/["\\\u0000-\u001f]/g;function na(e){let t='"',r=0;xg.lastIndex=0;let n;for(;(n=xg.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 ar(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Sg(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 Tg(e,t){let r=[],n=!1;return ra(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 Ds(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 Cg(e){if(!st(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=Dv(n,1);if(o===void 0)return e;ar(t,r,o)}return t}function Dv(e,t){if(!st(e)||!Fv(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw yt(t);let s=Iv(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(st))throw Og(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!wg.has(u)){if(!Array.isArray(p)||!p.every(st))throw yt(t);l.set(u,p)}if(l.size===0)throw yt(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw Ad(t);let f=d.get(u)??0,b=g[f];if(b===void 0)throw Ad(t);return d.set(u,f+1),Mv(n,u,a[p],b,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw Ad(t);return c}function Fv(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function Iv(e,t,r){if(!e.startsWith("cycle("))throw yt(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw yt(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw yt(r);let a=s.split(",").map(c=>Bv(c,r));if(a.some(c=>c===""))throw yt(r);let l=$v(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw yt(r);if(d!==t)throw Og(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function Mv(e,t,r,n,o){let s={};ar(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw yt(o);ar(s,i,a)}for(let[i,a]of Object.entries(Lv(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw yt(o);ar(s,i,a)}return s}function Lv(e,t){let r={};for(let[n,o]of Object.entries(e))jv(r,n.split("."),o,t);return oa(r,t)}function jv(e,t,r,n){if(t.some(s=>s===""))throw yt(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],!st(o))throw yt(n)}}function oa(e,t){return Array.isArray(e)?e.map(r=>oa(r,t)):st(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw yt(t);return oa(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,oa(n,t)])):e}function $v(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw yt(t);let r=Number(e);if(!Number.isSafeInteger(r))throw yt(t);return r}function Bv(e,t){try{return decodeURIComponent(e)}catch{throw yt(t)}}function Pg(e){return encodeURIComponent(e)}function yt(e){return V(e,"invalid cyclic array wire")}function Og(e){return V(e,"cyclic array length mismatch")}function Ad(e){return V(e,"cyclic array group length mismatch")}function Dg(e){if(!st(e))return;let t=Object.entries(e);if(t.length===0)return;let r=[];for(let[o,s]of t){let i=Nv(s);if(i===void 0)return;r.push([o,i])}let n=[];for(let[o,s]of r)Uv(n,o,s);return n.join("")}function Nv(e){if(!Array.isArray(e)||e.length===0||!e.every(st))return;let t=Gv(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=Wv(r);if(n===void 0)return;let o=Hv(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)&&!Cd(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=Kv(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 Gv(e){return Rg.find(t=>e.every(r=>typeof r[t]=="string"))}function Wv(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(Pg).join(","),s=`cycle(${r.map(Pg).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function Hv(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(!qv(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>vr(i[s])))break;r.push(s)}return r}function Uv(e,t,r){e.push(gt(t),`:
|
|
9
|
+
`),e.push(" order: ",St(r.order.encoded,$n),`
|
|
10
|
+
`),e.push(" discriminator: ",St(r.discriminator,$n),`
|
|
11
11
|
`),e.push(" rows: ",String(r.rows.length),`
|
|
12
|
-
`),r.common.length>0&&
|
|
13
|
-
`);for(let o of n)e.push(" ",r.map(s=>St(o[s]
|
|
14
|
-
`)}function lv(e){return e!==""&&Rd(e)}function kd(e,t,r,n=new Set){if(!Rd(t))return!1;if(xr(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)=>kd(s,`${t}.${i}`,r,n));return n.delete(e),o}if(rt(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&kd(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function dv(e){let t=Object.keys(e[0]??{});if(e.every(r=>cv(Object.keys(r),t)))return t.every(Rd)?t:void 0}function cv(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Rd(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function xo(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function Zi(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=vt(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=or(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=pv(p.slice(1,-1),u),g=_d(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 yg(e){let t=vt(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=or(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=uv(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 uv(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]=or(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(!kg(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(Rg(n[l].path,n[d].path)||Ss(n[l].path,n[d].path)||Ss(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 pv(e,t){if(t!==Ve&&e.includes(Ve)&&(e.includes("[")||e.includes("{")))return wd(e,Ve,t);try{return wd(e,t,t)}catch(r){if(t!==Ve&&r.reason!=="duplicate key")return wd(e,Ve,t);throw r}}function wd(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]=or(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 m=fv(y);if(m!==void 0){if(m.delimiter!==r)throw V(0,"invalid array header");g.fixedLength=m.len,g.fixedDelimiter=m.delimiter}else if(kg(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=_d(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Rg(a[l].path,a[d].path)||Ss(a[l].path,a[d].path)||Ss(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function fv(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 _d(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?_d(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function ea(e,t,r){return e.listDelimiter===void 0?Ut(t,r):sr(t,e.listDelimiter,r).map(n=>Ut(n,r))}function kg(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Rg(e,t){return e.length===t.length&&Ss(e,t)}function Ss(e,t){return t.every((r,n)=>e[n]===r)}function ta(e,t){return V(t,e.reason??String(e.message))}function At(e,t){let r=ug(t),n=pg(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("[")){vs(o.content,o.number,r);let d;try{d=Zi(o.content,vt(o.content,":",o.number))}catch(c){if(r.strict)throw ta(c,o.number);d=void 0}if(d!==void 0)return hv(d,n,r)}if(s&&vt(o.content,":",o.number)===-1)return Ut(o.content.trim(),o.number);let i={index:0},a=Ed(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?mg(a):a}function Ed(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}=gv(e,t,r,n);Tg(o,i,a,l,n,s.number)}return o}function gv(e,t,r,n){let o=e[t.index],s=o.content,i=vt(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=vt(a,"[",o.number),c=vt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){vs(a,o.number,n);let f;try{f=yg(a)}catch(m){if(n.strict)throw ta(m,o.number);t.index+=1;let w=xd(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:w}}if(l.trim()!=="")throw V(o.number,"expected keyed map rows");let y=mv(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:y}}if(d!==-1){vs(a,o.number,n);let f;try{f=Zi(a,i)}catch(m){if(n.strict)throw ta(m,o.number);t.index+=1;let w=xd(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:w}}if(f.key===""&&!f.keyQuoted)throw V(o.number,"expected non-empty field name");let y=vd(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=or(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=xd(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function xd(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return Ut(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?Ed(e,t,r+1,s):{}}function mv(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=vt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=or(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=sr(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,ea(p,c[g],i.number),o,i.number)}),Tg(s,l,d,u,o,i.number),r.index+=1}return s}function hv(e,t,r){let n=t[0],o=vt(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=vd(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 vd(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 bv(e,e.fields,r,n,o+1,s)}if(a!==""){let l=sr(a,e.delimiter,i).map(d=>Ut(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return Ev(e,r,n,o+1,s)}function bv(e,t,r,n,o,s){if(e.fieldTree!==void 0&&_v(e.fieldTree))return yv(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=sr(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,ea(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 yv(e,t,r,n,o){return wg(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function wg(e,t,r,n,o,s,i,a){let l=[],d=xg(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=sr(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:ra(t),childTableFields:d},f=_g(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(wv(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 _g(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=kv(d,u,t,r,n,o,s,i,a);vo(l,[d.key],p,a,r)}),l}function kv(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=>Ut(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=ra(e.children),u=r[s.cellIndex],p=vg(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],y=f!==void 0&&f.depth===i,m=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(m===void 0?p!==void 0&&(y||r.length!==s.flatWidth&&g<c+xv(t)):m){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,wg(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return _g(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,ea(e,d,n)}function xg(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=Eg(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 Eg(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=sr(p.content,n,p.number),f=Rv(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 Rv(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=vg(r[l]);if(p===void 0)return;l+=1;let g=xg(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Eg(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=ra(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function wv(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function vg(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function _v(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function ra(e){return e.reduce((t,r)=>t+Sg(r),0)}function Sg(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?ra(e.children):1}function xv(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Sg(r),0)}function Eo(e,t,r){let n=vt(e,":",r);if(n===-1)return!0;let o=vt(e,t,r);return o===-1?!1:o<n}function Ev(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(vv(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 vv(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=vt(s,":",o.number);vs(s,o.number,n);let a;try{a=Zi(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return vd(a,l,e,t,r,n)}}if(vt(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return Ed(i,{index:0},r+1,n)}return t.index+=1,Ut(s,o.number)}function Tg(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(Sv)){vo(e,i,n,o,s);return}}vo(e,[t],n,o,s)}function vo(e,t,r,n,o){Er(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");ir(e,s,r);return}if(i&&!rt(e[s])){if(n.strict)throw V(o,"path expansion conflict");ir(e,s,{})}else i||ir(e,s,{});vo(e[s],t.slice(1),r,n,o)}function Sv(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function nt(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=bg(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?Ad(s,void 0,e,0,!1,o):rt(e)?Pg(s,e,0,o):s.push(St(e,n)),s.join("")}function So(e,t){e.push(" ".repeat(t*2))}function Pg(e,t,r,n){Er(r,0,n);for(let[o,s]of Object.entries(t))So(e,r),Td(e,o,s,r,n)}function Td(e,t,r,n,o){if(Er(n,0,o),Array.isArray(r)){Ad(e,t,r,n,!1,o);return}if(rt(r)){let s=o.keyedMapCollapse?Pv(r,o,n+1):void 0;if(s!==void 0){e.push(ft(t),"{",Cd(o.delimiter),s.fields.map(i=>Fd(i,o.delimiter)).join(o.delimiter),`}:
|
|
15
|
-
`);for(let[i,a]of Object.entries(r)){
|
|
16
|
-
`),e.push(...l)}return}e.push(
|
|
17
|
-
`),
|
|
18
|
-
`)}function
|
|
12
|
+
`),r.common.length>0&&Ag(e,"common",r.common,r.commonRows);for(let n of r.groups)Ag(e,n.label,n.fields,n.rows)}function Ag(e,t,r,n){e.push(" ",gt(t),"[",String(n.length),$n,"]{",r.map(gt).join($n),`}:
|
|
13
|
+
`);for(let o of n)e.push(" ",r.map(s=>St(o[s],$n)).join($n),`
|
|
14
|
+
`)}function qv(e){return e!==""&&Od(e)}function Cd(e,t,r,n=new Set){if(!Od(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)=>Cd(s,`${t}.${i}`,r,n));return n.delete(e),o}if(st(e)){if(n.has(e))return!1;n.add(e);let o=Object.entries(e).every(([s,i])=>!s.includes(".")&&Cd(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function Kv(e){let t=Object.keys(e[0]??{});if(e.every(r=>Vv(Object.keys(r),t)))return t.every(Od)?t:void 0}function Vv(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function Od(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function Po(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function sa(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=vt(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=sr(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=Jv(p.slice(1,-1),u),g=Fd(f)}catch(b){throw V(0,b.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 Fg(e){let t=vt(e,"{",0);if(t===-1||!e.endsWith("}"))throw V(0,"invalid keyed map header");let r,n;try{[r,n]=sr(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=zv(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 zv(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]=sr(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 b=e.slice(f,o);if(!Ig(b,r))throw V(0,"invalid array header");o+=1,n.push({path:[...l,p],listDelimiter:b})}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(Mg(n[l].path,n[d].path)||Fs(n[l].path,n[d].path)||Fs(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 Jv(e,t){if(t!==Ve&&e.includes(Ve)&&(e.includes("[")||e.includes("{")))return Dd(e,Ve,t);try{return Dd(e,t,t)}catch(r){if(t!==Ve&&r.reason!=="duplicate key")return Dd(e,Ve,t);throw r}}function Dd(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]=sr(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 b=e.slice(f,n);n+=1;let m=Yv(b);if(m!==void 0){if(m.delimiter!==r)throw V(0,"invalid array header");g.fixedLength=m.len,g.fixedDelimiter=m.delimiter}else if(Ig(b,r))g.listDelimiter=b;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=Fd(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(Mg(a[l].path,a[d].path)||Fs(a[l].path,a[d].path)||Fs(a[d].path,a[l].path))throw V(0,"duplicate key");return i}function Yv(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 Fd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?Fd(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function ia(e,t,r){return e.listDelimiter===void 0?Kt(t,r):ir(t,e.listDelimiter,r).map(n=>Kt(n,r))}function Ig(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function Mg(e,t){return e.length===t.length&&Fs(e,t)}function Fs(e,t){return t.every((r,n)=>e[n]===r)}function aa(e,t){return V(t,e.reason??String(e.message))}function Ct(e,t){let r=Sg(t),n=Tg(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("[")){Ds(o.content,o.number,r);let d;try{d=sa(o.content,vt(o.content,":",o.number))}catch(c){if(r.strict)throw aa(c,o.number);d=void 0}if(d!==void 0)return Zv(d,n,r)}if(s&&vt(o.content,":",o.number)===-1)return Kt(o.content.trim(),o.number);let i={index:0},a=Md(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?Cg(a):a}function Md(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}=Qv(e,t,r,n);Wg(o,i,a,l,n,s.number)}return o}function Qv(e,t,r,n){let o=e[t.index],s=o.content,i=vt(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=vt(a,"[",o.number),c=vt(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){Ds(a,o.number,n);let f;try{f=Fg(a)}catch(m){if(n.strict)throw aa(m,o.number);t.index+=1;let w=Id(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:w}}if(l.trim()!=="")throw V(o.number,"expected keyed map rows");let b=Xv(f,e,t,r+1,n);return{key:f.key,quoted:f.keyQuoted,value:b}}if(d!==-1){Ds(a,o.number,n);let f;try{f=sa(a,i)}catch(m){if(n.strict)throw aa(m,o.number);t.index+=1;let w=Id(e,t,r,l,o.number,n);return{key:a.trim(),quoted:!1,value:w}}if(f.key===""&&!f.keyQuoted)throw V(o.number,"expected non-empty field name");let b=Ld(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:b}}let[u,p]=sr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=Id(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function Id(e,t,r,n,o,s){let i=n.trim();if(i==="[]")return[];if(i!=="")return Kt(i,o);let a=e[t.index];return a!==void 0&&a.depth>r?Md(e,t,r+1,s):{}}function Xv(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=vt(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=sr(i.content.slice(0,a),i.number);if(l===""&&!d)throw V(i.number,"expected non-empty field name");let c=ir(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)=>{Co(u,p.path,ia(p,c[g],i.number),o,i.number)}),Wg(s,l,d,u,o,i.number),r.index+=1}return s}function Zv(e,t,r){let n=t[0],o=vt(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=Ld(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 Ld(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 eS(e,e.fields,r,n,o+1,s)}if(a!==""){let l=ir(a,e.delimiter,i).map(d=>Kt(d,i));if(l.length!==e.len)throw V(i,"array length mismatch");return l}return aS(e,r,n,o+1,s)}function eS(e,t,r,n,o,s){if(e.fieldTree!==void 0&&sS(e.fieldTree))return tS(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw Po(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(!Ao(l.content,e.delimiter,l.number))break;let d=ir(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)=>{Co(c,u.path,ia(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw Po(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&Ao(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function tS(e,t,r,n,o){return Lg(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function Lg(e,t,r,n,o,s,i,a){let l=[],d=$g(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw Po(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(!Ao(u.content,r,u.number))break;let p=ir(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:la(t),childTableFields:d},f=jg(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(oS(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw Po(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&Ao(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function jg(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=rS(d,u,t,r,n,o,s,i,a);Co(l,[d.key],p,a,r)}),l}function rS(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=>Kt(u,n));return s.cellIndex+=e.fixedLength,c}if(e.children!==void 0){let c=la(e.children),u=r[s.cellIndex],p=Ng(u),g=r.length-s.cellIndex-1,f=o[s.nextIndex],b=f!==void 0&&f.depth===i,m=s.childTableFields===void 0?void 0:s.childTableFields.has(e);if(m===void 0?p!==void 0&&(b||r.length!==s.flatWidth&&g<c+iS(t)):m){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,Lg(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return jg(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,ia(e,d,n)}function $g(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=Bg(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 Bg(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||!Ao(p.content,n,p.number))return;let g=ir(p.content,n,p.number),f=nS(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&&Ao(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function nS(e,t,r,n,o,s,i,a){let l=0,d=s,c=0;for(let u of e){if(u.fixedLength!==void 0)l+=u.fixedLength;else if(u.children!==void 0)if(t.has(u)){let p=Ng(r[l]);if(p===void 0)return;l+=1;let g=$g(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Bg(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=la(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function oS(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Ng(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function sS(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function la(e){return e.reduce((t,r)=>t+Gg(r),0)}function Gg(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?la(e.children):1}function iS(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Gg(r),0)}function Ao(e,t,r){let n=vt(e,":",r);if(n===-1)return!0;let o=vt(e,t,r);return o===-1?!1:o<n}function aS(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 Po(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(lS(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 lS(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=vt(s,":",o.number);Ds(s,o.number,n);let a;try{a=sa(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return Ld(a,l,e,t,r,n)}}if(vt(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return Md(i,{index:0},r+1,n)}return t.index+=1,Kt(s,o.number)}function Wg(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(dS)){Co(e,i,n,o,s);return}}Co(e,[t],n,o,s)}function Co(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");ar(e,s,r);return}if(i&&!st(e[s])){if(n.strict)throw V(o,"path expansion conflict");ar(e,s,{})}else i||ar(e,s,{});Co(e[s],t.slice(1),r,n,o)}function dS(e){return/^[A-Za-z_][A-Za-z0-9_]*$/.test(e)}function Ye(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=Dg(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?Nd(s,void 0,e,0,!1,o):st(e)?Hg(s,e,0,o):s.push(St(e,n)),s.join("")}function Oo(e,t){e.push(" ".repeat(t*2))}function Hg(e,t,r,n){Sr(r,0,n);for(let[o,s]of Object.entries(t))Oo(e,r),$d(e,o,s,r,n)}function $d(e,t,r,n,o){if(Sr(n,0,o),Array.isArray(r)){Nd(e,t,r,n,!1,o);return}if(st(r)){let s=o.keyedMapCollapse?uS(r,o,n+1):void 0;if(s!==void 0){e.push(gt(t),"{",Gd(o.delimiter),s.fields.map(i=>Ud(i,o.delimiter)).join(o.delimiter),`}:
|
|
15
|
+
`);for(let[i,a]of Object.entries(r)){Oo(e,n+1);let l=[];e.push(gt(i),": ",s.paths.map(d=>qd(Hd(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
|
|
16
|
+
`),e.push(...l)}return}e.push(gt(t),`:
|
|
17
|
+
`),Hg(e,r,n+1,o);return}e.push(gt(t),": ",St(r,o.delimiter),`
|
|
18
|
+
`)}function Nd(e,t,r,n,o,s){if(Sr(n,0,s),r.length===0){t!==void 0?e.push(gt(t),`: []
|
|
19
19
|
`):o?e.push(`[0]:
|
|
20
20
|
`):e.push(`[]
|
|
21
|
-
`);return}if(r.every(
|
|
22
|
-
`);return}let i=o?void 0:
|
|
23
|
-
`);for(let a of r){
|
|
24
|
-
`),e.push(...l)}return}
|
|
25
|
-
`);for(let a of r)
|
|
26
|
-
`);return}e.push("- ")
|
|
27
|
-
`)}function
|
|
28
|
-
`),e.push(...i)}}function
|
|
29
|
-
`}function
|
|
30
|
-
`}function
|
|
31
|
-
`,f=()=>
|
|
32
|
-
`;return T+=C,a+=1,l+=1,d+=C.length,T},declareLane(m,w){if(u)throw Ae(0,"TOONL encoder is closed");let T=
|
|
33
|
-
`},end(){return u?"":(u=!0,g())}}}function
|
|
21
|
+
`);return}if(r.every(vr)){jd(e,t,r.length,void 0,s.delimiter),e.push(" "),e.push(r.map(a=>St(a,s.delimiter)).join(s.delimiter)),e.push(`
|
|
22
|
+
`);return}let i=o?void 0:Ug(r,s,n+1);if(i!==void 0){jd(e,t,r.length,i.fields,s.delimiter),e.push(`
|
|
23
|
+
`);for(let a of r){Oo(e,n+1);let l=[];e.push(i.paths.map(d=>qd(Hd(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
|
|
24
|
+
`),e.push(...l)}return}jd(e,t,r.length,void 0,s.delimiter),e.push(`
|
|
25
|
+
`);for(let a of r)Oo(e,n+1),cS(e,a,n+1,s)}function cS(e,t,r,n){if(Sr(r,0,n),Array.isArray(t)){e.push("- "),Nd(e,void 0,t,r,!0,n);return}if(st(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
|
|
26
|
+
`);return}e.push("- "),$d(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))Oo(e,r+1),$d(e,s,i,r+1,n);return}e.push("- ",St(t,n.delimiter),`
|
|
27
|
+
`)}function jd(e,t,r,n,o){t!==void 0&&e.push(gt(t)),e.push("[",String(r),Gd(o),"]"),n!==void 0&&e.push("{",n.map(s=>Ud(s,o)).join(o),"}"),e.push(":")}function Gd(e){return e===Ve?"":e}function Ug(e,t,r){let n=pS(e,t);if(n!==void 0)return n;let o=Bd(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:Wd(o)}}function uS(e,t,r){let n=Object.values(e);if(!(n.length<2))return Ug(n,t,r)}function Bd(e,t,r){Sr(r,0,t);let n=e[0]?.value;if(!st(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!st(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=qg(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=Bd(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=Bd(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function pS(e,t){if(!t.objectArrayColumns)return;let r=qg(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function qg(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 Wd(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}]:Wd(r.children,n)})}function Hd(e,t){let r=e;for(let n of t)r=r[n];return r}function Ud(e,t){return e.listDelimiter!==void 0?`${gt(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${gt(e.key)}[${e.fixedLength}${Gd(t)}]`:e.children===void 0?gt(e.key):`${gt(e.key)}{${e.children.map(r=>Ud(r,t)).join(t)}}`}function qd(e,t,r,n,o,s){return t.childFields!==void 0?(fS(o,e,t.childFields,n,s),String(e.length)):t.fixedLength!==void 0?e.map(i=>St(i,r)).join(r):t.listDelimiter===void 0?St(e,r):e.map(i=>gS(i,r,t.listDelimiter)).join(t.listDelimiter)}function fS(e,t,r,n,o){for(let s of t){Oo(e,o);let i=[];e.push(Wd(r).map(a=>qd(Hd(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
|
|
28
|
+
`),e.push(...i)}}function gS(e,t,r){return typeof e!="string"?St(e,t):Pd(e,t)||e.includes(r)?na(e):e}var Zg=[Ve,"|"," "];var em=8,tm=/^[A-Za-z0-9_-]+$/,jG=new TextEncoder,$G=new TextDecoder;function bS(e,t){if(!(e.startsWith("[=")&&e.endsWith("]")))return null;let r=e.slice(2,-1);if(!/^[0-9]+$/.test(r))throw Ae(t,"invalid trailer count");return Number.parseInt(r,10)}function rm(e,t){if(!tm.test(e))throw Ae(t,"invalid tag")}function kS(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!tm.test(n)){if(/^[A-Za-z0-9_-]/.test(n)&&/^[^,[\]|{}:\t ]+$/.test(n))throw Ae(t,"invalid tag");return null}return{tag:n,cellsText:e.slice(r+1)}}function RS(e,t){if(!e.startsWith("["))return null;let r=e.slice(1),n=r.indexOf("]");if(n===-1)throw Ae(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(!Zg.includes(i)&&i!=="")throw Ae(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 Ae(t,"invalid tag");if(d=l.slice(1,p),rm(d,t),i!=="")throw Ae(t,"invalid header delimiter");l=l.slice(p+1)}if(!l.startsWith("{")||!l.endsWith("}:"))throw Ae(t,"invalid header");let c=l.slice(1,-2),u;try{u=ir(c,a,t).map(p=>sr(p,t)[0])}catch(p){throw To(p)}if(u.length===0||u.some(p=>p===""))throw Ae(t,"invalid header fields");return{delimiter:a,fields:u,fieldText:c,continuation:s,tag:d}}function wS(e,t,r){if(e===null||e.delimiter===void 0)throw Ae(r,"continuation header before header");if(e.delimiter!==t.delimiter||e.fieldText!==t.fieldText)throw Ae(r,"continuation header mismatch")}function Kg(e,t,r,n){let o;try{o=ir(e,t,n)}catch(s){throw To(s)}if(o.length!==r)throw Ae(n,"row arity mismatch");for(let s of o)try{Kt(s,n)}catch(i){throw To(i)}return o}function _S(e,t,r){let n={};return e.forEach((o,s)=>{try{ar(n,o,Kt(t[s],r))}catch(i){throw To(i)}}),n}function xS(e,t,r){if(e.startsWith("- "))throw Ae(t,"reserved line prefix");let n=bS(e,t);if(n!==null){if(r===null||r.delimiter===void 0)throw Ae(t,"trailer without header");if(r.rowCount!==n)throw Ae(t,"trailer count mismatch");return{kind:"trailer"}}let o=RS(e,t);if(o!==null)return o.continuation?(wS(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=kS(e,t);if(s!==null){let i=r?.taggedLanes?.get(s.tag);if(i===void 0)throw Ae(t,"unknown tag");return{kind:"tagged-row",tag:s.tag,cells:Kg(s.cellsText,i.delimiter,i.fields.length,t)}}if(r===null||r.delimiter===void 0)throw Ae(t,"row before header");return{kind:"row",cells:Kg(e,r.delimiter,r.fields.length,t)}}function ES(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let b=s.at(-1);if(b!==void 0&&b.lane===g.lane&&b.delimiter===g.delimiter&&b.fieldText===g.fieldText){b.rows.push(f);return}s.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function c(){i!==null&&o.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function u(g,f,b){let m=n.get(g);if(m===void 0){if(n.size>=em)throw Ae(b,"too many tagged lanes");m={segments:[],current:null},n.set(g,m),r.push(g)}else m.current!==null&&m.segments.push(m.current);m.current={lane:g,delimiter:f.delimiter,fields:f.fields,fieldText:f.fieldText,rows:[]},m.delimiter=f.delimiter,m.fields=f.fields,m.fieldText=f.fieldText}if(ra(e).forEach((g,f)=>{let b=f+1;if(g==="")return;let m=i===null?{taggedLanes:n}:{delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,rowCount:i.rows.length,taggedLanes:n},w=xS(g,b,m);if(w.kind==="trailer"){c(),i=null;return}if(w.kind!=="continuation"){if(w.kind==="tag-header"){l=!0,u(w.header.tag,w.header,b);return}if(w.kind==="header"){c(),a||(r.push(null),a=!0),i={lane:null,delimiter:w.header.delimiter,fields:w.header.fields,fieldText:w.header.fieldText,rows:[]};return}if(w.kind==="tagged-row"){l=!0;let T=n.get(w.tag).current;T.rows.push(w.cells),d(T,w.cells);return}if(i===null)throw Ae(b,"row before header");i.rows.push(w.cells),d(i,w.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 Ot(e){return ES(e).flatMap(t=>t.rows.map(r=>_S(t.fields,r,0)))}function vS(e){if(!Zg.includes(e))throw Ae(0,"invalid header delimiter")}function Vg(e,t,r=!1){return`[${`${r?"~":""}${e===Ve?"":e}`}]{${t}}:
|
|
29
|
+
`}function zg(e,t){return`[]<${e}>{${t}}:
|
|
30
|
+
`}function Kd(e,t){return t.map(gt).join(e)}function SS(e){if(!Array.isArray(e)||e.length===0)throw Ae(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=sr(String(t),0)}catch(n){throw To(n)}if(r==="")throw Ae(0,"TOONL header requires fields");return r})}function Jg(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Yg(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Ae(0,"TOONL continuation cadence must be positive")}function TS(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function Qg(e){if(e===null||typeof e!="object"||Array.isArray(e))throw Ae(0,"TOONL output requires object rows");let t=Object.keys(e);if(t.length===0)throw Ae(0,"TOONL output requires object rows");if(t.some(r=>!vr(e[r])))throw Ae(0,"TOONL rows must be flat objects");return t}function PS(e){return JSON.stringify([...e].sort())}function Xg(e,t){let r=PS(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function it({delimiter:e=Ve,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){vS(e),Yg(r),Yg(n);let o=null,s="",i=new Map,a=0,l=0,d=0,c=new Map,u=!1,p={continuationEveryRows:r,continuationEveryBytes:n},g=()=>o===null||!t?"":`[=${a}]
|
|
31
|
+
`,f=()=>TS(p,l,d)?(l=0,d=0,Vg(e,s,!0)):"",b=m=>{rm(m,0);let w=c.get(m);if(w===void 0){if(c.size>=em)throw Ae(0,"too many tagged lanes");w={fields:null,fieldsByShape:new Map},c.set(m,w)}return w};return{push(m){if(u)throw Ae(0,"TOONL encoder is closed");let w=Xg(Qg(m),i),T="";(o===null||o.length!==w.length||o.some((M,N)=>M!==w[N]))&&(T+=g(),o=w,s=Kd(e,o),a=0,l=0,d=0,T+=Vg(e,s));let L=o.map(M=>St(m[M],e));T+=f();let C=`${L.join(e)}
|
|
32
|
+
`;return T+=C,a+=1,l+=1,d+=C.length,T},declareLane(m,w){if(u)throw Ae(0,"TOONL encoder is closed");let T=SS(w),L=Kd(Ve,T),C=b(m);return Jg(C.fields,T)?"":(C.fields=T,zg(m,L))},pushTagged(m,w){if(u)throw Ae(0,"TOONL encoder is closed");let T=b(m),L=Xg(Qg(w),T.fieldsByShape),C=Kd(Ve,L),M=L.map(H=>St(w[H],Ve)),N="";return Jg(T.fields,L)||(T.fields=L,N+=zg(m,C)),`${N}${m}:${M.join(Ve)}
|
|
33
|
+
`},end(){return u?"":(u=!0,g())}}}function da(e){let t={app:e,version:AS(Do("__RED_BUILD_VERSION__",()=>"3.15.0")??"0.0.0-dev"),gitSha:Do("__RED_BUILD_GIT_SHA__",()=>"0b9b48598365f6dffd996fa47ad06a3f8fc38edd")??"unknown",buildTime:Do("__RED_BUILD_TIME__",()=>"2026-08-11T14:46:42-03:00")??"unknown",bundleAsset:Do("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=Do("__REDDB_SDK_VERSION__",()=>""),n=Do("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function AS(e){return e.startsWith("v")?e.slice(1):e}function nm(e){return`${e.app} ${e.version} ${e.gitSha}`}function Do(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var om={"=":"data",":=":{to:"data",typed:!0},":":"meta"},CS=/^[a-z][a-z0-9+.-]*:\/\//i;function OS(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 DS(e=om){return Object.entries(e).map(([t,r])=>OS(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function FS(e){return/^-\d+(\.\d+)?$/.test(e)}function Is(e){return!(!e||e.startsWith("-")&&!FS(e))}function ca(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 sm(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=>sm(r.trim())):e}function Bn(e,t){switch(t){case"boolean":return IS(e);case"number":return MS(e);case"array":return e.split(",").map(r=>ca(r.trim()));case"string":default:return e}}function IS(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function MS(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 cn(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function LS(e,t={}){return e.map(r=>{let n=t[r.type];return n?n(r.value):r.value}).join("")}function Me(e,t){return{type:e,value:t}}function jS(e){let t=[],r=BS(e);if(t.push(Me("section-header","Usage:"),Me("text"," "),Me("usage-text",r),Me("newline",`
|
|
34
34
|
`),Me("newline",`
|
|
35
35
|
`)),e.positional&&e.positional.length>0){t.push(Me("section-header","Arguments:"),Me("newline",`
|
|
36
36
|
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Me("indent"," "),Me("positional-name",`<${o}>`)),n.required||t.push(Me("positional-optional"," (optional)")),t.push(Me("newline",`
|
|
37
37
|
`),Me("indent"," "),Me("option-description",n.description),Me("newline",`
|
|
38
38
|
`))}t.push(Me("newline",`
|
|
39
39
|
`))}if(e.options&&Object.keys(e.options).length>0){t.push(Me("section-header","Options:"),Me("newline",`
|
|
40
|
-
`));let n=
|
|
41
|
-
`))}return r}function
|
|
42
|
-
`),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function
|
|
43
|
-
`)
|
|
44
|
-
`),
|
|
40
|
+
`));let n=NS(e.options);t.push(...n)}return t}function $S(e,t){let r=jS(e);return LS(r,t)}function BS(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 NS(e,t=!1){let r=[],n=[],o=t?"global-option-flag":"option-flag",s=t?"global-option-type":"option-type",i=t?"global-option-default":"option-default",a=t?"global-option-description":"option-description";for(let[d,c]of Object.entries(e)){if(c.hidden)continue;let u=[],p=b=>{u.includes(b)||u.push(b)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let b of c.aliases??[])b.length===1?p(`-${b}`):p(`--${b}`);let g=u.join(", "),f=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:g,type:f,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(d=>d.flags.length+(d.type?d.type.length+1:0)),20);for(let d of n){let c=d.flags.length+(d.type?d.type.length+1:0),u=" ".repeat(l-c+2);r.push(Me("indent"," ")),r.push(Me(o,d.flags)),d.type&&(r.push(Me("text"," ")),r.push(Me(s,d.type))),r.push(Me("text",u)),r.push(Me(a,d.desc)),d.default!==void 0&&(r.push(Me("text"," ")),r.push(Me(i,`(default: ${d.default})`))),r.push(Me("newline",`
|
|
41
|
+
`))}return r}function im(e){let t=VS(e.options??{},e.autoShort??!1),r=DS(e.separators??om);return{schema:e,parse(n){return GS(n,e,t,r)},help(){return $S(e,e.formatter)}}}function GS(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?Bn(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Bn(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=qS(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!XS(c)){l=KS(c,l,e,o,r,t);continue}let u=WS(c,n);if(u){let{key:p,value:g,config:f}=u,b=o,m=b[f.to]??(b[f.to]={});m[p]=f.typed?sm(g):cn(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let b=e[l];f.push(p.type?Bn(b,p.type):b),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Bn(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 JS(o,t,r),YS(o,t,a),QS(o,t,r),o}function WS(e,t){if(CS.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(HS(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(US(o,s,r))return{key:o,value:s,config:r}}}return null}function HS(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function US(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 qS(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 ua(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return Is(l)?ua(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 KS(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=Vd(l,o);return c?ua(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=ca(cn(d))),t+1)}if(i.length===1){let a=Vd(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return Is(l)?ua(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(Is(l))return n.options[i]=ca(cn(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=Vd(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 ua(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Bn(cn(t),i.type):cn(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Bn(cn(t),i.type):cn(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]=ca(cn(t)));return r}function VS(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=zS(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 zS(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 Vd(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function JS(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?Bn(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 YS(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 QS(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 XS(e){return/^-\d+(\.\d+)?$/.test(e)}var zd=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 ZS(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 eT(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&&Is(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 qr(e,t,r={}){let o=im({options:ZS(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=eT(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 zd(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 Jd=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 am(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 Jd(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as DT,closeSync as FT,mkdirSync as IT,openSync as MT,readFileSync as LT,readSync as jT,statSync as $T}from"node:fs";import{dirname as Pm,join as BT}from"node:path";var lm="RED_WORKER_SCOPE",dm="RED_WORKER_MEMORY_CEILING",cm="RED_WORKER_SCOPE_DEGRADATION",tT="RED_WORKER_ID",rT="RED_WORKER_BORN_AT",Qd={scope:null,memory_ceiling:null,scope_degradation:null};function Xd(e){return{scope:Yd(e[lm]),memory_ceiling:Yd(e[dm]),scope_degradation:Yd(e[cm])}}function um(e,t){let r={};return t!=null&&(r[tT]=t.worker_id,r[rT]=t.born_at),e.scope!=null&&e.scope!==""&&(r[lm]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(r[dm]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(r[cm]=e.scope_degradation),r}function Yd(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as sT,readdirSync as iT,readFileSync as mm,rmSync as aT,writeFileSync as lT}from"node:fs";import{basename as dT,join as Io}from"node:path";import{isAbsolute as y5,join as pa,resolve as b5}from"node:path";function nT(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var pm="deaths",fm="deaths.toonl";function fa(e){return pa(nT(e),pm)}function Fo(e){return pa(fa(e),fm)}var Ms="live",gm="attributions.toonl";function ga(e){return pa(fa(e),Ms)}function Zd(e){return pa(fa(e),gm)}var tc=Io("sys","kernel","random","boot_id"),hm=1;function rc(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:hm,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:ym(Io(r,tc)),cgroup:cT(r,n),last_phase:e.last_phase}}function ym(e){try{let t=mm(e,"utf8").trim();return t===""?null:t}catch{return null}}function cT(e,t){let r=ym(Io(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 nc(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function oc(e,t){let r=Io(e,nc(t));try{return sT(e,{recursive:!0,mode:448}),lT(r,it({trailer:!1}).push(pT(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function Nn(e,t){try{aT(Io(e,nc(t)),{force:!0})}catch{}}function sc(e,t){let r;try{r=iT(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Io(e,o);try{let a=Ot(mm(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(uT(a))}catch(i){t?.(dT(s),i instanceof Error?i.message:String(i))}}return n}function uT(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:ec(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:ec(e.pid),ppid:ec(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 ec(e){return typeof e=="number"?e:Number(e)}function pT(e){return{...e}}import{execFile as fT}from"node:child_process";import{renameSync as gT,rmSync as mT,statSync as T5,writeFileSync as hT}from"node:fs";import{readdir as yT,readFile as bT,rename as kT,rm as km,stat as RT,writeFile as wT}from"node:fs/promises";import{join as _T}from"node:path";import{promisify as xT}from"node:util";var ET=xT(fT),Kr=.5,vT=5e3,Gn=1024*1024,bm=14*24*60*60*1e3,lr={"process-deaths":{maxBytes:4*Gn,maxAgeMs:bm,targetRatio:Kr},"github-spend":{maxBytes:8*Gn,targetRatio:Kr},"castle-singleton-events":{maxBytes:2*Gn,targetRatio:Kr},"rsp-telemetry-spool":{maxBytes:8*Gn,targetRatio:Kr},"rsp-telemetry-corrections":{maxBytes:Gn,targetRatio:Kr},"death-attributions":{maxBytes:Gn,maxAgeMs:bm,targetRatio:Kr},"worker-log":{maxLines:5e4,targetRatio:Kr},"worker-liveness":{maxBytes:Gn,targetRatio:Kr},"castle-history":{maxLines:1e4,targetRatio:Kr}};function Rm(e){let t=e.maxBytes;if(t!==void 0&&(!Number.isSafeInteger(t)||t<0))throw new Error("lane retention maxBytes must be a non-negative safe integer");return t}function wm(e){return e.code==="ENOENT"}async function _m(e,t,r,n=RT){let o=Rm(r);if(o===void 0)return!1;let s=0;try{s=(await n(e)).size}catch(i){if(!wm(i))throw i}return s+t>o}function xm(e,t,r){let n=Rm(r);return n!==void 0&&e+t>n}async function ST(e,t,r){try{return await ET("tq",["trim","--keep-last",String(t),"--in-place",e],{timeout:r,windowsHide:!0}),!0}catch{return!1}}function TT(e){if(!Number.isSafeInteger(e)||e<0)throw new Error("lane retention keepLast must be a non-negative safe integer")}function PT(e){if(e.length===0)return"";let t=it({trailer:!1});return e.map(r=>t.push(r)).join("")}async function AT(e,t){let r=`${e}.retaining-${process.pid}`;try{await wT(r,t,{encoding:"utf8",mode:384}),await kT(r,e)}finally{await km(r,{force:!0})}}function Em(e,t){let r=`${e}.retaining-${process.pid}`;try{hT(r,t,{encoding:"utf8",mode:384}),gT(r,e)}finally{mT(r,{force:!0})}}async function vm(e,t,r={}){TT(t);let n=r.timeoutMs??vT;if(await(r.runTq??ST)(e,t,n))return"tq";let s=await bT(e,"utf8"),i=s.endsWith(`
|
|
43
|
+
`)?s:s.slice(0,s.lastIndexOf(`
|
|
44
|
+
`)+1),a=i===""?[]:Ot(i),l=t===0?[]:a.slice(-t);return await AT(e,PT(l)),"js"}function CT(e){try{return process.kill(e,0),!0}catch(t){return t.code!=="ESRCH"}}var OT=/\.(?:rotate|retaining)-(\d+)(?:-|$)/;async function Sm(e,t={}){let r=[],n=[],o=t.isPidAlive??CT,s=async i=>{let a;try{a=await yT(i,{withFileTypes:!0})}catch(l){if(wm(l))return;throw l}for(let l of a){let d=_T(i,l.name);if(l.isDirectory()){await s(d);continue}if(!l.isFile())continue;let c=OT.exec(l.name);if(c===null)continue;let u=Number(c[1]);if(await o(u)){n.push(d);continue}await km(d,{force:!0}),r.push(d)}};return await s(e),r.sort(),n.sort(),{removed:r,preserved:n}}var NT=1,GT=lr["process-deaths"].maxAgeMs,ac=lr["process-deaths"].maxBytes,Am=lr["process-deaths"].targetRatio,WT=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function HT(e){return typeof e=="string"&&WT.has(e)}var UT="startup";function qT(e,t){return{...e.scope??Qd,version:NT,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 KT(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 ma={mkdir(e){IT(e,{recursive:!0,mode:448})},inspect(e){let t;try{t=$T(e).size}catch(n){if(n.code==="ENOENT")return{size:0,endsClean:!0};throw n}if(t===0)return{size:t,endsClean:!0};let r;try{r=MT(e,"r");let n=Buffer.allocUnsafe(1);return jT(r,n,0,1,t-1),{size:t,endsClean:n[0]===10}}catch{return{size:t,endsClean:!0}}finally{r!==void 0&&FT(r)}},append(e,t){DT(e,t,{encoding:"utf8",mode:384})},replace(e,t){Em(e,t)},read(e){return LT(e,"utf8")}};function Cm(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function VT(e,t,r=ma){let n=it({trailer:!1}).push(Cm(t)),o=Buffer.byteLength(n),s=r.inspect(e),i=s.endsClean?0:1,a=Date.parse(t.ts),l=Number.isFinite(a)?a:Date.now(),d=!1;if(xm(s.size,i+o,lr["process-deaths"])){let c=Math.max(0,Math.floor(ac*Am)-o);Dm(e,l,r,c),d=!0}return r.mkdir(Pm(e)),!d&&!s.endsClean&&s.size>0&&r.append(e,`
|
|
45
|
+
`),r.append(e,n),t}function Om(e,t=Date.now(),r=ma){return Dm(e,t,r)}function Dm(e,t,r,n){let o,s;try{o=r.read(e),s=lc(o)}catch(u){if(u.code==="ENOENT")return[];throw u}let i=t-GT,a=s.filter(u=>{let p=Date.parse(u.ts);return!Number.isFinite(p)||p>=i}),l=Buffer.byteLength(o)>ac,d=n??(l?Math.floor(ac*Am):void 0),c=d===void 0?a:zT(a,d);return n===void 0&&!l&&c.length===s.length||r.replace(e,Fm(c)),c}function zT(e,t){let r=new Set,n=[];e.forEach((a,l)=>{Number.isFinite(Date.parse(a.ts))?n.push(l):r.add(l)});let o=0,s=n.length;for(;o<s;){let a=Math.floor((o+s)/2),l=new Set([...r,...n.slice(a)]),d=e.filter((c,u)=>l.has(u));Buffer.byteLength(Fm(d))<=t?s=a:o=a+1}let i=new Set([...r,...n.slice(o)]);return e.filter((a,l)=>i.has(l))}function Fm(e){if(e.length===0)return"";let t=it({trailer:!1});return e.map(r=>t.push(Cm(r))).join("")}function lc(e){let t=e.endsWith(`
|
|
45
46
|
`)?e:e.slice(0,e.lastIndexOf(`
|
|
46
|
-
`)+1);return t===""?[]:
|
|
47
|
-
`).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:
|
|
48
|
-
`)?
|
|
49
|
-
`;
|
|
50
|
-
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=
|
|
47
|
+
`)+1);return t===""?[]:Ot(t).map(JT)}function JT(e){let t=e.exit_path;if(!HT(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:Vt(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:Vt(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:Vt(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:Vt(e.uptime_s),rss_kb:Vt(e.rss_kb),max_rss_kb:Vt(e.max_rss_kb),user_cpu_us:Vt(e.user_cpu_us),system_cpu_us:Vt(e.system_cpu_us),minor_page_faults:Vt(e.minor_page_faults),major_page_faults:Vt(e.major_page_faults),voluntary_ctx_switches:Vt(e.voluntary_ctx_switches),involuntary_ctx_switches:Vt(e.involuntary_ctx_switches)}}function Vt(e){return typeof e=="number"?e:Number(e)}function Im(e,t=ma){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return lc(r)}var YT=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],ic=null;function Mm(e){let t=e.host??process,r=e.io??ma,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??Xd(process.env),i=e.phase??UT,a=null,l=e.presenceDir===void 0?BT(Pm(e.lanePath),Ms):e.presenceDir,d=null,c=()=>{l!==null&&(d=rc({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),oc(l,d))},u=m=>{if(!a){try{a=VT(e.lanePath,qT({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...m},KT(t)),r)}catch{}l!==null&&d!==null&&Nn(l,d)}},p={signal(m){u({exit_path:"signal",signal:m})},exit(m){u({exit_path:"exit",exit_code:m})},uncaughtException(m){u({exit_path:"uncaught-exception",detail:Tm(m)})},unhandledRejection(m){u({exit_path:"unhandled-rejection",detail:Tm(m)})}},f=[...(e.signals??YT).map(m=>{let w=()=>{if(p.signal(m),!(t.listenerCount?.(m)!==1||!t.kill)){t.off(m,w);try{t.kill(o,m)}catch{}}};return[m,w]}),["uncaughtException",(...m)=>p.uncaughtException(m[0])],["unhandledRejection",(...m)=>p.unhandledRejection(m[0])],["exit",(...m)=>p.exit(typeof m[0]=="number"?m[0]:null)]];for(let[m,w]of f)t.on(m,w);let b={lanePath:e.lanePath,phase(m){i=m,a||c()},currentPhase:()=>i,written:()=>a,uninstall(){for(let[m,w]of f)t.off(m,w);l!==null&&d!==null&&Nn(l,d),ic===b&&(ic=null)},handlers:p};return e.setActive!==!1&&(ic=b),c(),b}function Tm(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as QT,readdirSync as XT,readFileSync as ha,statSync as ZT,writeFileSync as eP}from"node:fs";import{join as Wm}from"node:path";var tP=1,rP=lr["death-attributions"].maxAgeMs,Lm=lr["death-attributions"].maxBytes,nP=lr["death-attributions"].targetRatio,oP=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],sP=512*1024;function iP(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??oP,n=[],o=Wm(t,tc),s=null;try{let l=ha(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:dc(l),detail:null})}let i=new Set;try{for(let l of XT(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:dc(l),detail:null})}let a=[];for(let l of r)try{let c=aP(l,e.tailBytes??sP).split(`
|
|
48
|
+
`).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:dc(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function dc(e){return e.code==="ENOENT"?"absent":"unreadable"}function aP(e,t){let r=ZT(e).size,n=ha(e,"utf8");return r<=t?n:n.slice(n.length-t)}var lP=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,dP=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,cP=/Killed (\/\S*) due to memory pressure/,uP=/\bopid=(\d+)\b/,jm=/\bsig=(\d+)\b/,pP=/\buid=(\d+)\b/,fP=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,gP={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function mP(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:tP,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=>$m(u,e.pid,lP)||$m(u,e.pid,dP));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=cP.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(uP.exec(u)?.[1])===e.pid&&jm.test(u));if(d!==void 0){let u=Number(jm.exec(d)?.[1]),p=pP.exec(d)?.[1];return i("user-signal",o?"medium":"high",gP[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=>fP.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 $m(e,t,r){return Number(r.exec(e)?.[1])===t}var Hm=" | ";function Bm(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(Hm)}function Nm(e){return e===""?[]:e.split(Hm)}function hP(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:Bm(e.evidence),checked:Bm(e.checked)}}function cc(e){let t=it({trailer:!1});return e.map(r=>t.push(hP(r))).join("")}function yP(e){let t=e.endsWith(`
|
|
49
|
+
`)?e:e.slice(0,e.lastIndexOf(`
|
|
50
|
+
`)+1);return t===""?[]:Ot(t).map(r=>{let n=r.kind;if(n!=="launcher"&&n!=="worker"&&n!=="daemon")throw new Error(`attribution has unknown kind ${String(n)}`);return{version:Gm(r.version),ts:String(r.ts),kind:n,id:String(r.id),pid:Gm(r.pid),last_seen:String(r.last_seen),last_phase:String(r.last_phase),sender_class:String(r.sender_class),confidence:String(r.confidence),signal:r.signal==null?null:String(r.signal),host_boot_changed:r.host_boot_changed===!0||r.host_boot_changed==="true",evidence:Nm(String(r.evidence??"")),checked:Nm(String(r.checked??""))}})}function Um(e){let t=ga(e.stateRoot),r=Zd(e.stateRoot),o=(e.now??(()=>new Date().toISOString()))(),s=e.evidence??iP({procRoot:e.procRoot,journalPaths:e.journalPaths}),i=[],a=sc(t,g=>i.push(g)),l=Im(Fo(e.stateRoot)),d=[],c=[],u=[];for(let g of a){if(s.live_pids.has(g.pid)){c.push(g);continue}if(l.find(b=>b.pid===g.pid&&b.id===g.id)!==void 0){u.push(g),Nn(t,g);continue}d.push(mP(g,s,l,o)),Nn(t,g)}let p=Date.parse(o);return Number.isFinite(p)&&Om(Fo(e.stateRoot),p),d.length>0&&bP(r,d,Number.isFinite(p)?p:Date.now()),{attributions:d,alive:c,self_recorded:u,skipped:i,laneText:()=>{try{return ha(r,"utf8")}catch{return""}}}}function qm(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 bP(e,t,r){try{QT(Wm(e,".."),{recursive:!0,mode:448});let n=RP(e),o=[...yP(n),...t],s=kP(o,r);eP(e,cc(s),{encoding:"utf8",mode:384})}catch{}}function kP(e,t){let r=t-rP,n=e.filter(c=>{let u=Date.parse(c.ts);return!Number.isFinite(u)||u>=r});if(Buffer.byteLength(cc(n))<=Lm)return n;let o=Math.floor(Lm*nP),s=new Set,i=[];n.forEach((c,u)=>{Number.isFinite(Date.parse(c.ts))?i.push(u):s.add(u)});let a=0,l=i.length;for(;a<l;){let c=Math.floor((a+l)/2),u=new Set([...s,...i.slice(c)]),p=n.filter((g,f)=>u.has(f));Buffer.byteLength(cc(p))<=o?l=c:a=c+1}let d=new Set([...s,...i.slice(a)]);return n.filter((c,u)=>d.has(u))}function RP(e){try{return ha(e,"utf8")}catch{return""}}function Gm(e){return typeof e=="number"?e:Number(e)}import{join as wP}from"node:path";var _P=[".red","redskilled"],Vr=448;function Dt(e){return wP(e,..._P)}import{randomUUID as OR}from"node:crypto";import{spawn as qM}from"node:child_process";import{mkdir as KM}from"node:fs/promises";import{dirname as VM}from"node:path";import{createHash as vP}from"node:crypto";import{constants as mc}from"node:fs";import{mkdir as eh,open as SP,readFile as TP,rm as th,stat as PP}from"node:fs/promises";import{createConnection as AP}from"node:net";import{tmpdir as CP}from"node:os";import{dirname as rh,join as Ls}from"node:path";var xP="toon";function zm(e){return e.trimStart().startsWith("{")?"json":"toon"}function pc(e){let t=0;for(;e[t]===`
|
|
51
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=zm(r);if(n==="json"){let s=r.indexOf(`
|
|
51
52
|
`);return s<0?null:{frame:r.slice(0,s),dialect:n,rest:r.slice(s+1)}}let o=r.indexOf(`
|
|
52
53
|
|
|
53
|
-
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function
|
|
54
|
+
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function fc(e){let t=zm(e)==="json"?uc:Km,r=t===uc?Km:uc;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function uc(e){return JSON.parse(e)}function Km(e){return Ct(e)}function gc(e,t){if(t==="toon"){let r=EP(e);if(r!==null)return r.endsWith(`
|
|
54
55
|
`)?`${r}
|
|
55
56
|
`:`${r}
|
|
56
57
|
|
|
57
58
|
`}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(Tm))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 OT(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 _T(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 FT="/tmp";function pa(e){let t=e.env??process.env,r=kT("sha256").update(e.key).digest("hex").slice(0,20),n=l=>As(l,e.socketFileName).length<vT,o=t.XDG_RUNTIME_DIR;if(o){let l=As(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=As(`red-skills-${s}`,r),a=As(ET(),i);return n(a)||process.platform==="win32"?a:As(FT,i)}qr();import{homedir as rP}from"node:os";import{join as mc}from"node:path";import{spawnSync as nP}from"node:child_process";import{createHash as oP}from"node:crypto";import{existsSync as sP,readdirSync as iP}from"node:fs";import{mkdir as $m,readFile as aP,rename as lP,writeFile as dP}from"node:fs/promises";import{dirname as cP}from"node:path";var Bn="@reddb-io/red-skills",UT="https://registry.npmjs.org",qT="canary",$n=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},KT=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function cc(e){return typeof e=="string"&&KT.test(e.trim())}function Im(e){return`${e}-.bundle.min.mjs`}var VT=".unversioned";function zT(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!cc(t))throw new $n("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Im(e)}, a name no resolver prefers and one whose mere existence satisfies the cache-first test forever (#3153)`);return`${e}-${t.trim()}.bundle.min.mjs`}function ha(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return Os(n,zT(t,r,o))}function JT(e){return e==="dev"?["rsp","redskilled"]:[]}function YT(e){return`${e}.bundle.min.mjs`}function QT(e){return Os("dist",YT(e))}function XT(e,t="stable"){return`${Bn}@${t==="canary"?qT:e}`}function uc(e=Bn){return`${UT}/${e.replace("/","%2F")}`}async function pc(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=ha({plugin:r,version:n,cacheDir:o,channel:s}),a=JT(r),l=a.map(p=>ha({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await eP(e,l))return i;let d=XT(n,s),c=Os(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw jm(p,d)}for(let p of[r,...a]){let g=QT(p),f=Os(u,g);if(!await e.exists(f))throw new $n("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:ha({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await ZT(e,o,[r,...a]),i}async function ZT(e,t,r){if(e.rename)for(let n of r){let o=Os(t,Im(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${VT}`)}catch{}}}async function eP(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function Mm(e,t,r=Bn){let n;try{n=await e.fetchText(uc(r))}catch(s){throw jm(s,r)}let o=fc(n);return{sameMajor:tP(o,t),newest:gc(o)}}function fc(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 tP(e,t){let r=dc(t);if(r===null)return null;let n=null;for(let o of e)dc(o)===r&&(n===null||Lm(o,n)>0)&&(n=o);return n}function gc(e){let t=null;for(let r of e){let n=String(r).trim();dc(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||Lm(n,t)>0)&&(t=n)}return t}function dc(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function Lm(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 jm(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new $n("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new $n("package-missing",`npm could not resolve ${t}: ${r}`,e):new $n("network",`failed to resolve ${t}: ${r}`,e)}function Os(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}qr();var Bm={async materialize(e,t){await $m(t,{recursive:!0});let r=nP("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 mc(t,"node_modules",...Bn.split("/"))},async readFile(e){return new Uint8Array(await aP(e))},async writeFile(e,t){await $m(cP(e),{recursive:!0}),await dP(e,t)},async exists(e){return sP(e)},sha256(e){return oP("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 lP(e,t)}},uP="redskilled";function pP(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||mc(e.HOME||rP(),".cache");return mc(t,"red-skills","bundles")}var fP=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function gP(e,t){if(cc(e.version))return e.version.trim();let r=e.listCacheDir??bP,n=mP(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??Bm).fetchText(uc());return gc(fc(s))}catch{return null}}function mP(e,t){let r=null;for(let n of e){let o=fP.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||hP(s,r)>0)&&(r=s)}return r}function hP(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 bP(e){try{return iP(e)}catch{return[]}}async function yP(e={},t={},r={}){let n=un(e,t);if(Tr(n))return n;let o=r.env??t.env??process.env,s=pP(o),i=await gP(r,s);if(i===null)return n;try{await pc(r.bundleIO??Bm,{plugin:uP,version:i,cacheDir:s})}catch{return n}return un(e,t)}async function Nm(e={},t={},r={}){let n=await yP(e,t,r);if(Tr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(qr(),Fm));throw new o(n)}var Co=3e5,Gm=1e4,Wm=6e4,Hm=15e3,hc=3e4,Um=hc*2,qm=6e4,Fs=16;function Km(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 bc(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var Vm="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as Bk}from"node:crypto";import{mkdir as iI,rm as aI}from"node:fs/promises";import{dirname as lI}from"node:path";import{randomUUID as zm}from"node:crypto";import{rm as kP}from"node:fs/promises";import{connect as RP,createServer as wP}from"node:net";var Vt=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 yc(e,t=250){return await new Promise(r=>{let n=RP(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 Jm(e,t){for(let r=0;r<2;r++){let n=wP();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 yc(e)!=="unowned")throw new Vt(e);if(await t?.())throw new Vt(e);await kP(e,{force:!0})}}throw new Vt(e)}async function zt(e,t=250){try{return(await ua({socketPath:e,timeoutMs:t},{id:zm(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Ym(e,t){Sm(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??zm(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function oh(e){return{generated_at:e.now,hour:Xm("hour",36e5,e),day:Xm("day",864e5,e),history_48h:_P(e)}}function _P(e){let t=pn(e.now),r=t==null?null:Math.floor(t/36e5)*36e5,n=r==null?null:r-47*36e5,o=Array.from({length:48},(d,c)=>n==null?null:n+c*36e5),s=xP(e.observations,o,t),i=o.map((d,c)=>({hour:d==null?e.now:new Date(d).toISOString(),value:s[c]??null,absent_reason:s[c]==null?"no token samples span this hour":null})),a=e.outcomes.map(d=>pn(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:Qm(i),tickets_per_hour:Qm(l)}}function xP(e,t,r){if(r==null||t.some(i=>i==null))return t.map(()=>null);let n=new Map;for(let i of e){let a=pn(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],y=Math.min(f+36e5,r),m=Math.max(0,Math.min(c.at,y)-Math.max(d.at,f));m!==0&&(a[g].tokens+=p*(m/u),a[g].duration+=m)}}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 Qm(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Nn(e,t,r){let n=pn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=pn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function Xm(e,t,r){let n=pn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:pn(u.observed_at)})).filter(u=>u.at!=null&&th(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>pn(u.ts)).filter(u=>u!=null&&th(u,o,n)),l=Zm(i,u=>u.tokens,"tokens",s),d=Zm(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:EP(a.length,t,s),runner_share:eh("runner",i,u=>u.runner,s),model_share:eh("model",i,u=>u.model,s),unavailable:c}}function Zm(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 EP(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 eh(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 th(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function pn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function sh(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||vP(t.history_48h))}function vP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&rh(t.tokens_per_hour)&&rh(t.tickets_per_hour)}function rh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function 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"&&kc(t.tokens_per_min)&&kc(t.tools_per_min)&&kc(t.issues_per_hour)&&Array.isArray(t.unavailable)}function kc(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 ih(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 ah(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 ch,totalmem as TP}from"node:os";function Is(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 lh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Is(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:SP(e.length,n,a,l)}}function SP(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 dh(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 uh="REDSKILLED_MEMORY_CEILING",wc="REDSKILLED_WORKER_CEILING",mh="REDSKILLED_VALIDATION_CEILING",ph="REDSKILLED_INTERACTIVE_RESERVATION",Ms=1,fh=.7,PP=2*1024**3,AP=2;function hh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Do(t)}function ya(e){let t=0,r=[];for(let n of e){let o=hh(n.budget);o===null?r.push(n.worker_id):o!==void 0&&(t+=o)}return{worker_count:e.length,memory_bytes:t,unaccounted_workers:r.sort()}}function bh(e){let{ceiling:t}=e,r=ya(e.workers),n=hh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??Ms),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 yh(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=ya(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 (${wc} 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 ka(e=process.env,t=TP(),r={}){let n=Rc(r.flags?.memoryCeiling,e[uh],r.config?.memoryCeiling),o=Rc(r.flags?.workerCeiling,e[wc],r.config?.workerCeiling),s=Rc(r.flags?.validationCeiling,e[mh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[ph]??"").trim(),d=kh(a),c=l===""?Ms:OP(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!CP(a)&&(ba(`redskilled: ${_c(o)} ${wc}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=DP(i,t);if(p!==void 0)return gh({memory_bytes:p,worker_count:d,interactive_reservation:c??Ms,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??ch());ba(`redskilled: ${_c(n)} ${uh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${fh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&ba(`redskilled: ${ph}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Ms} Worker(s) instead.`),gh({memory_bytes:Math.floor(t*fh),worker_count:d,interactive_reservation:c??Ms,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??ch())}function gh(e,t,r){if(t!==void 0){let i=kh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};ba(`redskilled: ${_c(t)} ${mh}=${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)/AP)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/PP)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Rc(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 _c(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function CP(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var ba=e=>process.stderr.write(`${e}
|
|
61
|
-
`);function
|
|
62
|
-
`);return t.pop(),t.length===0?[]:
|
|
59
|
+
`}function EP(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=Ye(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function Jm(e,t){return!Vm(e)||!Vm(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function Vm(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Ym=new Set;function Qm(e){return Ym.has(e)?"json":xP}function Xm(e){Ym.add(e)}var OP=108;async function ya(e,t,r="resident server"){let n=e.wire,o=n??Qm(e.socketPath),s=await Zm(e,t,r,o);return n||o==="json"||!Jm(t,s)?s:(Xm(e.socketPath),await Zm(e,t,r,"json"))}async function Zm(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=AP(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(gc(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=pc(d);g&&(d=g.rest,u(()=>{try{s(fc(g.frame))}catch(f){i(f)}}),a.end())}),a.on("error",p=>u(()=>i(p))),a.on("close",()=>{l||u(()=>i(new Error(`${r} closed without response`)))})})}function nh(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=pc(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(gc(a,s.dialect))}catch{}};(async()=>{let a;try{a=fc(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function DP(e){await eh(rh(e),{recursive:!0,mode:448});try{return await SP(e,mc.O_CREAT|mc.O_EXCL|mc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var FP=6e4,oh="resident-spawn-lock v1",IP=3;async function sh(e,t={}){let r=t.maxAgeMs??FP,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Qe;await eh(rh(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await DP(e);if(l)return await l.writeFile(`${oh} pid=${o} taken=${new Date(n()).toISOString()}
|
|
60
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await LP(e),c=await $P(e,d,n());if(a>=IP||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=MP(d,c,r,s);if(u==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let p={lockPath:e,reason:u,holder:d,ageMs:c};await th(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function ih(e){await e.handle.close().catch(()=>{}),await th(e.lockPath,{force:!0})}function MP(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function ah(e){let t=e.ageMs==null?"of unknown age":`taken ${Math.round(e.ageMs/1e3)}s ago`,r=e.holder==null?"an owner it does not name":`pid ${e.holder.pid} (at ${e.holder.takenAt})`;return`no spawn was attempted: the spawn lock ${JSON.stringify(e.lockPath)} is held by ${r}, ${t}. If that process is gone, remove the file to clear it`}async function LP(e){try{return jP(await TP(e,"utf8"))}catch{return null}}function jP(e){let t=e.split(`
|
|
61
|
+
`,1)[0]?.trim()??"";if(!t.startsWith(oh))return null;let r=Number(/\bpid=(\d+)\b/.exec(t)?.[1]??""),n=/\btaken=(\S+)/.exec(t)?.[1]??"";return!Number.isInteger(r)||r<=0||!Number.isFinite(Date.parse(n))?null:{pid:r,takenAt:n}}async function $P(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 PP(e)).mtimeMs)}catch{return null}}function Qe(e){if(!Number.isInteger(e)||e<=0)return!1;try{return process.kill(e,0),!0}catch(t){return t.code==="EPERM"}}var BP="/tmp";function ba(e){let t=e.env??process.env,r=vP("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Ls(l,e.socketFileName).length<OP,o=t.XDG_RUNTIME_DIR;if(o){let l=Ls(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Ls(`red-skills-${s}`,r),a=Ls(CP(),i);return n(a)||process.platform==="win32"?a:Ls(BP,i)}zr();import{homedir as lA}from"node:os";import{join as Tc}from"node:path";import{spawnSync as dA}from"node:child_process";import{createHash as cA}from"node:crypto";import{existsSync as uA,readdirSync as pA}from"node:fs";import{mkdir as mh,readFile as fA,rename as gA,writeFile as mA}from"node:fs/promises";import{dirname as hA}from"node:path";var Hn="@reddb-io/red-skills",YP="https://registry.npmjs.org",QP="canary",Wn=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},XP=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function _c(e){return typeof e=="string"&&XP.test(e.trim())}function uh(e){return`${e}-.bundle.min.mjs`}var ZP=".unversioned";function eA(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!_c(t))throw new Wn("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${uh(e)}, a name no resolver prefers and one whose mere existence satisfies the cache-first test forever (#3153)`);return`${e}-${t.trim()}.bundle.min.mjs`}function _a(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return Bs(n,eA(t,r,o))}function tA(e){return e==="dev"?["rsp","redskilled"]:[]}function rA(e){return`${e}.bundle.min.mjs`}function nA(e){return Bs("dist",rA(e))}function oA(e,t="stable"){return`${Hn}@${t==="canary"?QP:e}`}function xc(e=Hn){return`${YP}/${e.replace("/","%2F")}`}async function Ec(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=_a({plugin:r,version:n,cacheDir:o,channel:s}),a=tA(r),l=a.map(p=>_a({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await iA(e,l))return i;let d=oA(n,s),c=Bs(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw gh(p,d)}for(let p of[r,...a]){let g=nA(p),f=Bs(u,g);if(!await e.exists(f))throw new Wn("bundle-missing",`npm package ${d} has no ${g}`);let b=p===r?i:_a({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(b,await e.readFile(f))}return await sA(e,o,[r,...a]),i}async function sA(e,t,r){if(e.rename)for(let n of r){let o=Bs(t,uh(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${ZP}`)}catch{}}}async function iA(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function ph(e,t,r=Hn){let n;try{n=await e.fetchText(xc(r))}catch(s){throw gh(s,r)}let o=vc(n);return{sameMajor:aA(o,t),newest:Sc(o)}}function vc(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 aA(e,t){let r=wc(t);if(r===null)return null;let n=null;for(let o of e)wc(o)===r&&(n===null||fh(o,n)>0)&&(n=o);return n}function Sc(e){let t=null;for(let r of e){let n=String(r).trim();wc(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||fh(n,t)>0)&&(t=n)}return t}function wc(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function fh(e,t){let r=/^(\d+)\.(\d+)\.(\d+)/.exec(e.trim()),n=/^(\d+)\.(\d+)\.(\d+)/.exec(t.trim());return!r||!n?0:Number(r[1])-Number(n[1])||Number(r[2])-Number(n[2])||Number(r[3])-Number(n[3])}function gh(e,t){let r=e instanceof Error?e.message:String(e);return/ENOENT|command not found|spawn npm/i.test(r)?new Wn("npm-unavailable",`npm is unavailable while resolving ${t}: ${r}`,e):/\b404\b|E404|not found|no matching version|notarget/i.test(r)?new Wn("package-missing",`npm could not resolve ${t}: ${r}`,e):new Wn("network",`failed to resolve ${t}: ${r}`,e)}function Bs(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}zr();var hh={async materialize(e,t){await mh(t,{recursive:!0});let r=dA("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 Tc(t,"node_modules",...Hn.split("/"))},async readFile(e){return new Uint8Array(await fA(e))},async writeFile(e,t){await mh(hA(e),{recursive:!0}),await mA(e,t)},async exists(e){return uA(e)},sha256(e){return cA("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 gA(e,t)}},yA="redskilled";function bA(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Tc(e.HOME||lA(),".cache");return Tc(t,"red-skills","bundles")}var kA=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function RA(e,t){if(_c(e.version))return e.version.trim();let r=e.listCacheDir??xA,n=wA(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??hh).fetchText(xc());return Sc(vc(s))}catch{return null}}function wA(e,t){let r=null;for(let n of e){let o=kA.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||_A(s,r)>0)&&(r=s)}return r}function _A(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 xA(e){try{return pA(e)}catch{return[]}}async function EA(e={},t={},r={}){let n=pn(e,t);if(Pr(n))return n;let o=r.env??t.env??process.env,s=bA(o),i=await RA(r,s);if(i===null)return n;try{await Ec(r.bundleIO??hh,{plugin:yA,version:i,cacheDir:s})}catch{return n}return pn(e,t)}async function yh(e={},t={},r={}){let n=await EA(e,t,r);if(Pr(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(zr(),ch));throw new o(n)}var Mo=3e5,bh=1e4,kh=6e4,Rh=15e3,Pc=3e4,wh=Pc*2,_h=6e4,Ns=16;function xh(e,t={}){if(e.event!=="worker-death"&&e.event!=="worker-budget-kill"||e.event==="worker-death"&&e.exit_code===0)return null;let r=e.event==="worker-budget-kill",n=!r&&t.refusal!=null,o=!r&&!n&&e.signal!=null,s=t.refusal??e.detail??`redskilled observed exit code=${e.exit_code??"null"} signal=${e.signal??"null"}`,i=t.startedAt==null?null:Date.parse(t.startedAt),a=Date.parse(e.ts),l=i!=null&&Number.isFinite(i)&&Number.isFinite(a)?Math.max(0,a-i)/1e3:void 0;return{version:1,ts:e.ts,kind:"worker",id:e.worker_id,pid:e.pid,last_seen:e.ts,last_phase:n?"boot-refused":"unreported",sender_class:r?"teardown":n?"boot-refused":o?"user-signal":"unknown",confidence:r||n||o?"high":"none",signal:e.signal,host_boot_changed:!1,evidence:r||n||o?[s]:[],checked:n?["Worker log tail"]:[`redskilled host event: ${s}`],project_label:e.project_label,...l===void 0?{}:{uptime_s:l},detail:t.refusal??e.detail,observed_exit:e.exit_code!=null||e.signal!=null}}function Ac(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var Eh="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as xR}from"node:crypto";import{mkdir as LM,rm as jM}from"node:fs/promises";import{dirname as $M}from"node:path";import{randomUUID as vh}from"node:crypto";import{rm as vA}from"node:fs/promises";import{connect as SA,createServer as TA}from"node:net";var Jt=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 Cc(e,t=250){return await new Promise(r=>{let n=SA(e),o=!1,s=a=>{o||(o=!0,clearTimeout(i),n.destroy(),r(a))},i=setTimeout(()=>s("unknown"),t);i.unref?.(),n.once("connect",()=>s("owned")),n.once("error",a=>{s(a.code==="ECONNREFUSED"||a.code==="ENOENT"?"unowned":"unknown")})})}async function Sh(e,t){for(let r=0;r<2;r++){let n=TA();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 Cc(e)!=="unowned")throw new Jt(e);if(await t?.())throw new Jt(e);await vA(e,{force:!0})}}throw new Jt(e)}async function Yt(e,t=250){try{return(await ya({socketPath:e,timeoutMs:t},{id:vh(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Th(e,t){nh(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??vh(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function Mh(e){return{generated_at:e.now,hour:Ah("hour",36e5,e),day:Ah("day",864e5,e),history_48h:PA(e)}}function PA(e){let t=fn(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=AA(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=>fn(d.ts)).filter(d=>d!=null&&n!=null&&t!=null&&d>=n&&d<=t),l=o.map(d=>{let c=d==null||a.length===0?null:a.filter(u=>u>=d&&u<d+36e5).length;return{hour:d==null?e.now:new Date(d).toISOString(),value:c,absent_reason:c==null?"no Worker outcome history is available for the last 48 hours":null}});return{hours:48,from:n==null?e.now:new Date(n).toISOString(),to:e.now,tokens_per_hour:Ph(i),tickets_per_hour:Ph(l)}}function AA(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=fn(i.observed_at);if(a==null||i.tokens==null||!Number.isFinite(i.tokens))continue;let l=n.get(i.worker_id)??[];l.push({at:a,count:i.tokens}),n.set(i.worker_id,l)}let o=t.map(()=>0),s=t.map(()=>!1);for(let i of n.values()){i.sort((l,d)=>l.at-d.at);let a=t.map(()=>({tokens:0,duration:0}));for(let l=1;l<i.length;l+=1){let d=i[l-1],c=i[l];if(d==null||c==null||c.at<=d.at||c.count<d.count)continue;let u=c.at-d.at,p=c.count-d.count;for(let g=0;g<t.length;g+=1){let f=t[g],b=Math.min(f+36e5,r),m=Math.max(0,Math.min(c.at,b)-Math.max(d.at,f));m!==0&&(a[g].tokens+=p*(m/u),a[g].duration+=m)}}for(let l=0;l<a.length;l+=1){let d=a[l];d.duration<=0||(o[l]+=d.tokens/(d.duration/36e5),s[l]=!0)}}return o.map((i,a)=>s[a]?i:null)}function Ph(e){let t=e.at(-1),r=e.at(-2),n=t?.value??null,o=e.filter(i=>i.value!=null).length,s=null;return n!=null&&r?.value!=null&&(s=n===r.value?"flat":n>r.value?"up":"down"),{buckets:e,current:{value:n,absent_reason:t?.absent_reason??"the current hourly bucket is unavailable",samples:o},trend:s,trend_absent_reason:s==null?"the current and previous hourly buckets are not both measured":null}}function Un(e,t,r){let n=fn(r.now),o=r.retentionMs??1764e5,s=r.limit??8192,i=e.filter(a=>{let l=fn(t(a));return l==null?!1:n==null||n-l<=o});return i.length<=s?i:i.slice(i.length-s)}function Ah(e,t,r){let n=fn(r.now),o=n==null?null:n-t,s=e==="hour"?"1h":"24h",i=r.observations.map(u=>({observation:u,at:fn(u.observed_at)})).filter(u=>u.at!=null&&Dh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>fn(u.ts)).filter(u=>u!=null&&Dh(u,o,n)),l=Ch(i,u=>u.tokens,"tokens",s),d=Ch(i,u=>u.tools,"tools",s),c=[];return i.length===0?c.push("worker-vitals"):(l.samples===0&&c.push("worker-vitals.tokens"),d.samples===0&&c.push("worker-vitals.tools")),a.length===0&&c.push("worker-outcomes"),{window:e,window_ms:t,from:o==null?r.now:new Date(o).toISOString(),to:r.now,tokens_per_min:l,tools_per_min:d,issues_per_hour:CA(a.length,t,s),runner_share:Oh("runner",i,u=>u.runner,s),model_share:Oh("model",i,u=>u.model,s),unavailable:c}}function Ch(e,t,r,n){let o=new Map,s=0;for(let d of e){let c=t(d.observation);if(c==null||!Number.isFinite(c))continue;s+=1;let u=o.get(d.observation.worker_id)??[];u.push({at:d.at,count:c}),o.set(d.observation.worker_id,u)}if(s===0)return{value:null,absent_reason:`no Worker published a ${r} count in the last ${n}`,samples:0};let i=0,a=null,l=null;for(let d of o.values()){if(d.length<2)continue;for(let p=1;p<d.length;p++){let g=d[p-1],f=d[p];g==null||f==null||(i+=Math.max(0,f.count-g.count))}let c=d[0],u=d[d.length-1];c!=null&&(a=a==null?c.at:Math.min(a,c.at)),u!=null&&(l=l==null?u.at:Math.max(l,u.at))}return a==null||l==null||l<=a?{value:null,absent_reason:`the last ${n} holds one sample of ${r} per Worker, and one instant spans no rate`,samples:s}:{value:i/((l-a)/6e4),absent_reason:null,samples:s}}function CA(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 Oh(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 Dh(e,t,r){return t==null||r==null?!0:e>=t&&e<=r}function fn(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function Lh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&Ih(t.hour)&&Ih(t.day)&&(t.history_48h===void 0||OA(t.history_48h))}function OA(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&Fh(t.tokens_per_hour)&&Fh(t.tickets_per_hour)}function Fh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return Array.isArray(t.buckets)&&t.buckets.length===48&&t.buckets.every(r=>{if(r===null||typeof r!="object"||Array.isArray(r))return!1;let n=r;return typeof n.hour=="string"&&(n.value===null||typeof n.value=="number")&&(n.absent_reason===null||typeof n.absent_reason=="string")})}function Ih(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.window=="string"&&typeof t.window_ms=="number"&&Oc(t.tokens_per_min)&&Oc(t.tools_per_min)&&Oc(t.issues_per_hour)&&Array.isArray(t.unavailable)}function Oc(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return(t.value===null||typeof t.value=="number")&&(t.absent_reason===null||typeof t.absent_reason=="string")&&Number.isInteger(t.samples)}function jh(e,t,r,n){let o={worker_id:r.worker_id,observed_at:t.published_at,tokens:t.display.tokens,tools:t.display.tools,runner:t.display.runner,model:t.display.model};return{observations:Un([...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 $h(e,t){return Un(e.filter(r=>r.kind==="worker-metrics").map(r=>({worker_id:r.worker_id,observed_at:r.ts,tokens:r.tokens??null,tools:r.tools??null,runner:r.runner??null,model:r.model??null})),r=>r.observed_at,{now:t})}import{availableParallelism as Gh,totalmem as FA}from"node:os";function Lo(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 Bh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Lo(d),u=!1;for(let[p,g]of[[c.memory_high,f=>r+=f],[c.memory_max,f=>n+=f]]){if(p==null)continue;let f=jo(p);f==null?u=!0:g(f)}c.cpu_weight!=null&&(o+=c.cpu_weight),u&&s.push(d.worker_id),d.isolated||i.push(d.worker_id)}let a=t.hostCeilingBytes??null,l=a==null?0:Math.max(0,n-a);return{version:1,worker_count:e.length,memory_high_bytes:r,memory_max_bytes:n,cpu_weight_total:o,unaccounted_workers:s.sort(),unisolated_workers:i.sort(),memory_ceiling_bytes:a,over_committed_bytes:l,over_commitment_reason:l===0?null:DA(e.length,n,a,l)}}function DA(e,t,r,n){return`this host's ${e} Worker(s) carry ${t} bytes of applied MemoryMax against a host ceiling of ${r} bytes \u2014 ${n} bytes over. A per-Worker MemoryMax is a wall rather than a reservation, so the host stays safe only while the Workers do not all peak together; the ceiling is not enforced host-wide.`}function jo(e){let t=/^\s*(\d+(?:\.\d+)?)\s*([KMGT]?)(?:B)?\s*$/i.exec(e);if(!t)return null;let r={"":1,k:1024,m:1024**2,g:1024**3,t:1024**4}[t[2].toLowerCase()];return Math.round(Number(t[1])*r)}function Nh(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.version===1&&Number.isInteger(t.worker_count)&&typeof t.memory_high_bytes=="number"&&typeof t.memory_max_bytes=="number"&&typeof t.cpu_weight_total=="number"&&Array.isArray(t.unaccounted_workers)&&Array.isArray(t.unisolated_workers)}var Wh="REDSKILLED_MEMORY_CEILING",Fc="REDSKILLED_WORKER_CEILING",Kh="REDSKILLED_VALIDATION_CEILING",Hh="REDSKILLED_INTERACTIVE_RESERVATION",Gs=1,Uh=.7,IA=2*1024**3,MA=2;function Vh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return jo(t)}function Ea(e){let t=0,r=[];for(let n of e){let o=Vh(n.budget);o===null?r.push(n.worker_id):o!==void 0&&(t+=o)}return{worker_count:e.length,memory_bytes:t,unaccounted_workers:r.sort()}}function zh(e){let{ceiling:t}=e,r=Ea(e.workers),n=Vh(e.budget),o=n===void 0?null:n,s=r.memory_bytes+(n??0),i=r.worker_count+1,a=Math.max(0,t.interactive_reservation??Gs),l=e.projectLabel!=null&&e.projectLabel!==""?` for project ${JSON.stringify(e.projectLabel)}`:"",d=`the host is already holding ${r.memory_bytes} bytes across ${r.worker_count} Worker(s)`,c=(g,f)=>({version:1,admitted:!1,verdict:g,reason:f,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}),u=t.worker_count==null?0:i-t.worker_count;if(u>0){if(e.reservation!=="interactive")return c("refused-over-worker-ceiling",`redskilled refused this Worker${l}: it would be Worker ${i} past a host ceiling of ${t.worker_count} Worker(s); ${a} extra slot(s) are reserved for interactive dispatches, and ${d}`);if(u>a)return c("refused-over-interactive-reservation",`redskilled refused this interactive Worker${l}: reserved slot ${u}/${a} is outside the bounded interactive reservation above the host ceiling of ${t.worker_count} Worker(s), and ${d}`)}if(t.memory_bytes!=null&&n===null)return c("refused-unaccountable-budget",`redskilled refused this Worker${l}: its declared memory budget cannot be reduced to bytes, so it cannot be proven to fit under the host ceiling of ${t.memory_bytes} bytes, and ${d}`);if(t.memory_bytes!=null&&s>t.memory_bytes)return c("refused-over-memory-ceiling",`redskilled refused this Worker${l}: it would take the host to ${s} bytes of declared Worker memory, past the host ceiling of ${t.memory_bytes} bytes, and ${d}`);let p=e.reservation==="interactive"&&u>0;return{version:1,admitted:!0,verdict:p?"admitted-interactive-reservation":"admitted",reason:p?`redskilled admitted this interactive Worker${l} into reserved interactive slot ${u}/${a} above the host ceiling of ${t.worker_count} Worker(s): ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`:`redskilled admitted this Worker${l}: ${s} bytes of declared Worker memory against a host ceiling of ${t.memory_bytes??"unbounded"} bytes, and ${d}`,ceiling:t,consumption:r,requested_memory_bytes:o,projected_worker_count:i,projected_memory_bytes:s}}function Jh(e){let t=e.budget?.memory_max??e.budget?.memory_high;if(t!=null)return{memory_max:t,reason:`the client declared this Worker's memory ceiling (${t}), so the host derived none`};if(e.ceiling.memory_bytes==null)return{memory_max:null,reason:"this host admits Workers against no memory ceiling, so there is no accounting to derive a per-Worker ceiling from; the daemon's RSS sampling floor is the only remaining ceiling"};let r=Ea(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 (${Fc} 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 va(e=process.env,t=FA(),r={}){let n=Dc(r.flags?.memoryCeiling,e[Wh],r.config?.memoryCeiling),o=Dc(r.flags?.workerCeiling,e[Fc],r.config?.workerCeiling),s=Dc(r.flags?.validationCeiling,e[Kh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[Hh]??"").trim(),d=Yh(a),c=l===""?Gs:$A(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!LA(a)&&(xa(`redskilled: ${Ic(o)} ${Fc}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=jA(i,t);if(p!==void 0)return qh({memory_bytes:p,worker_count:d,interactive_reservation:c??Gs,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??Gh());xa(`redskilled: ${Ic(n)} ${Wh}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${Uh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&xa(`redskilled: ${Hh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Gs} Worker(s) instead.`),qh({memory_bytes:Math.floor(t*Uh),worker_count:d,interactive_reservation:c??Gs,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??Gh())}function qh(e,t,r){if(t!==void 0){let i=Yh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};xa(`redskilled: ${Ic(t)} ${Kh}=${JSON.stringify(t.value)} is not a positive integer; deriving the validation ceiling from host CPU, memory, and Worker capacity instead.`)}let n=Math.max(1,Math.floor(Math.max(1,r)/MA)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/IA)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function Dc(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 Ic(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function LA(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var xa=e=>process.stderr.write(`${e}
|
|
62
|
+
`);function jA(e,t){let r=e.toLowerCase();if(["infinity","none","off","unbounded"].includes(r))return null;let n=/^(\d+(?:\.\d+)?)\s*%$/.exec(e);return n?Math.floor(t*(Number(n[1])/100)):jo(e)??void 0}function Yh(e){if(e===""||["infinity","none","off","unbounded"].includes(e.toLowerCase()))return null;let t=Number(e);return Number.isSafeInteger(t)&&t>0?t:null}function $A(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as BA,mkdir as NA,open as GA,readFile as WA,rename as HA,rm as UA,stat as ey,truncate as Qh,writeFile as qA}from"node:fs/promises";import{dirname as KA}from"node:path";var VA=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],$o=["worker-birth","worker-death","worker-budget-kill"],zA=["demand-refusal","daemon-stop"],ty="redskilled.log.toonl",JA=4*1024*1024,YA=.5;function Sa(e){let t=e.worker.budget??{},r="kind"in e?e.kind:e.event;return{version:1,ts:e.ts,kind:r,event:r,worker_id:e.worker.worker_id,project_label:e.worker.project_label,pid:e.worker.pid,...e.worker.pgid==null?{}:{pgid:e.worker.pgid},...e.worker.proc_start_time==null?{}:{proc_start_time:e.worker.proc_start_time},workspace_path:e.worker.workspace_path,fork_sha:e.worker.fork_sha??null,log_path:e.worker.log_path??null,isolated:e.worker.isolated,unit:e.worker.unit??null,memory_high:t.memory_high??null,memory_max:t.memory_max??null,cpu_weight:t.cpu_weight??null,admission_verdict:"admissionVerdict"in e?e.admissionVerdict??null:null,phase:"phase"in e?e.phase??null:null,step:"step"in e?e.step??null:null,tokens:"tokens"in e?e.tokens??null:null,tools:"tools"in e?e.tools??null:null,runner:"runner"in e?e.runner??null:null,model:"model"in e?e.model??null:null,base_head_sha:"baseHeadSha"in e?e.baseHeadSha??null:null,base_commits_ahead:"baseCommitsAhead"in e?e.baseCommitsAhead??null:null,heal_kind:"healKind"in e?e.healKind??null:null,detail:e.detail??null,exit_code:e.exitCode??null,signal:e.signal??null,reason:"reason"in e?e.reason??null:null}}var QA="daemon:";function XA(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${QA}${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 ZA(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 ry(e,t={}){let r=t.maxBytes??JA,n=it({trailer:!1}),o=Promise.resolve();async function s(i){let a=o.then(async()=>{await NA(KA(e),{recursive:!0,mode:448}),await rC(e);let l=n.push(oy(i));await eC(e,l,r)?await BA(e,l,{encoding:"utf8",mode:384}):(await tC(e,r,i),n=it({trailer:!1}))});return o=a.catch(()=>{}),await a,i}return{path:e,record:i=>s(Sa(i)),recordWorker:i=>s(Sa(i)),recordDemandRefusal:i=>s(ZA(i)),recordDaemonStop:i=>s(XA(i)),read:()=>ny(e),flush:async()=>{await o}}}async function eC(e,t,r){let n=0;try{n=(await ey(e)).size}catch(o){if(o.code!=="ENOENT")throw o}return n+Buffer.byteLength(t)<=r}async function tC(e,t,r){let n=[...await ny(e),r],o=new Set([n.length-1]),s=Math.floor(t*YA),i;try{i=Xh(n,s,o)}catch(l){if(!(l instanceof Error)||!l.message.startsWith("redskilled event-lane baseline exceeds"))throw l;i=Xh(n,t,o)}let a=`${e}.rotate-${process.pid}`;try{await qA(a,Mc(i),{encoding:"utf8",mode:384}),await HA(a,e)}finally{await UA(a,{force:!0})}}function Xh(e,t,r=new Set){let n=new Set(Ta(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=Zh(e,o,s.slice(d));Buffer.byteLength(Mc(c))<=t?a=d:i=d+1}let l=Zh(e,o,s.slice(i));if(Buffer.byteLength(Mc(l))>t)throw new Error(`redskilled event-lane baseline exceeds its ${t}-byte ceiling`);return l}function Zh(e,t,r){let n=new Set([...t,...r]);return e.filter((o,s)=>n.has(s))}function Mc(e){if(e.length===0)return"";let t=it({trailer:!1});return e.map(r=>t.push(oy(r))).join("")}async function rC(e){let t;try{t=(await ey(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await GA(e,"r");try{let o=Buffer.alloc(1);if(await n.read(o,0,1,t-1),o[0]===10)return;for(let s=t;s>0;s-=r){let i=Math.min(r,s),a=Buffer.alloc(i);await n.read(a,0,i,s-i);let l=a.lastIndexOf(10);if(l>=0){await Qh(e,s-i+l+1);return}}await Qh(e,0)}finally{await n.close()}}async function ny(e){let t;try{t=await WA(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return nC(t)}function nC(e){let t=e.split(`
|
|
63
|
+
`);return t.pop(),t.length===0?[]:Ot(`${t.join(`
|
|
63
64
|
`)}
|
|
64
|
-
`).filter(ZP).map(eA)}function Ec(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,XP(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function XP(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,...e.pgid==null?{}:{pgid:e.pgid},...e.proc_start_time==null?{}:{proc_start_time:e.proc_start_time},started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function Th(e){return{...e}}function ZP(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...GP,...WP].includes(t)}function eA(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:ot(e.project_label)??"",pid:Number(e.pid??0),...e.pgid==null||e.pgid===""?{}:{pgid:Number(e.pgid)},...ot(e.proc_start_time)==null?{}:{proc_start_time:ot(e.proc_start_time)},workspace_path:ot(e.workspace_path)??"",fork_sha:ot(e.fork_sha),log_path:ot(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:ot(e.unit),memory_high:ot(e.memory_high),memory_max:ot(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:ot(e.admission_verdict),phase:ot(e.phase),step:ot(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:ot(e.runner),model:ot(e.model),base_head_sha:ot(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:ot(e.heal_kind),detail:ot(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:ot(e.signal),reason:ot(e.reason)}}function ot(e){return e==null||e===""?null:String(e)}function Ph(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 m=0;m<y;m+=1)(s[m]??(s[m]=[])).push({project_label:i.project_label,index:a+m,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function Ah(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Ch(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 Ls={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Dh(e,t,r){if(t>=6e4)return Ls;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 Oh(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function vc(){return Ls}function tA(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 Fh(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>tA(r,n,t)).filter(r=>r!=null)}function Mh(e){let t=e.workers.map(rA),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:oA({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function Lh(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 rA(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 nA(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 oA(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${nA(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${Ih(e.held,"Worker")} across ${Ih(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 Ih(e,t){return`${e} ${t}${e===1?"":"s"}`}function Sc(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 sA,mkdir as iA,readFile as aA,rm as lA,writeFile as dA}from"node:fs/promises";import{dirname as jh,join as Gh}from"node:path";import{tmpdir as $h}from"node:os";var cA="redskilled.machine.claim.toon",Pc="REDSKILLED_MACHINE_DIR",uA=8,Kr=class extends Error{constructor(r,n,o){super(fA(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},Bh;function wa(){return Bh??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},Bh}function pA(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[Pc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||$h():$h();return Gh(o,`redskilled-${e.machineIdHash}`)}function Fo(e){return Gh(pA(e),cA)}function js(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){let l;try{l=await aA(e,"utf8")}catch(c){if(c.code==="ENOENT"||Tc(c))return;throw c}let d=mA(l);return hA(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 lA(e,{force:!0}),!0}catch(l){if(Tc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await iA(jh(e),{recursive:!0,mode:1023})!=null&&await sA(jh(e),1023).catch(()=>{});let c=!1;for(let u=0;u<uA;u+=1){let p=i(l,n());try{return await dA(e,gA(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Tc(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(Nh(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||!Nh(d,l,t.socketPath)?!1:await a()}}}function Wh(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 Hh(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 fA(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 Tc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function Nh(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function gA(e){return`${nt(e,{keyedMapCollapse:!0})}
|
|
65
|
-
`}function mA(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return At(t)}catch{return null}}}function hA(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 bA=["worker_id","slot","workspace_path","log_path"],_a=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${bA.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},Uh=/\{\{([a-z_]+)\}\}/g;function yA(e,t){let r=(i,a)=>i.replace(Uh,(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 _a(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 qh(e,t){if(!(e==null||e.trim()===""))return e.replace(Uh,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new _a(n,"the log path")}})}function xa(e,t,r){let n=yA(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 Ea(e,t){if(!Array.isArray(e)||e.length===0)throw new Error(`redskilled needs an argv to register project ${JSON.stringify(t)}: a registration with nothing to run is a project the host could never start a Worker for`);return e.map((r,n)=>{if(typeof r!="string"||r==="")throw new Error(`redskilled needs every word of an argv to be a non-empty string, and word ${n} of project ${JSON.stringify(t)} is not`);return r})}function va(e,t){if(e!=null){if(typeof e!="string"||e.trim()==="")throw new Error(`redskilled needs a declared log path to be a non-empty string to register project ${JSON.stringify(t)}, not ${JSON.stringify(e)}: a project that declares an empty path states a Worker whose output no surface can ever show, which reads as a Worker with nothing to say`);return e}}function Sa(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 kA=3e5,RA=.5,Ac=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 Kh(e,t){if(t.held!=null)throw new Ac(t.held);let r=$s(e.project_label,"a project label"),n=$s(e.selector,"a selector"),o=SA(e.queue_poll,r),s=Ea(e.argv,r),i=Sa(e.env,r),a=va(e.log_path,r),l=xA(e.hooks,r),d=$s(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:$s(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:$s(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??kA;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(wA(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function wA(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 Vh(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:Ea(t.launch.argv,e.project_label),env:Sa(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:va(t.launch.log_path,e.project_label),{log_path:i,...a}=e;return{...a,...s==null?{}:{log_path:s},...o,renew_within_ms:n,renewed_at:new Date(r).toISOString(),renew_by:new Date(r+n).toISOString(),renewals:e.renewals+1,session_renewals:(e.session_renewals??e.renewals)+1}}function Cc(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 _A(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Ta(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*RA;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 zh(e,t){let r=[],n=[];for(let o of e)(_A(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Bs(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||Jh(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||vA(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||Yh(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||EA(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 xA(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:Ea(s.argv,t),env:Sa(s.env,t),...s.log_path==null?{}:{log_path:va(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function EA(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||Yh(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 vA(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 SA(e,t){if(e!==void 0){if(!Jh(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function Jh(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 Yh(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function $s(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var TA={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 Qh(e){return`worker-${e}`}function Xh(e){let t=TA[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 Zh(e){return e==="single-object"?"rest":"graphql"}function eb(e,t){return e==="stable-poll"?"rest":Zh(t)}function Jt(e){return{none:e}}function st(e,t,r,n,o,s,i){let a=typeof o=="string"?{fallback:o}:{fallback:null,noFallbackBecause:o.none};return{key:e,kind:"read",cardinality:t,volatility:r,surface:i??eb(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Dt(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 tb=[st("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),st("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),st("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),st("run view","single-object","stable-poll","rest",Jt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),st("release view","single-object","stable-poll","rest",Jt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),st("pr diff","single-object","one-shot","rest",Jt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),st("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),st("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),st("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),st("release list","multi-node","stable-poll","rest",Jt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),st("run list","multi-node","stable-poll","rest",Jt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),st("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),st("issue list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),st("pr list (search)","multi-node","stable-poll","search",Jt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),st("search issues","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search prs","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("search repos","multi-repository","one-shot","search",Jt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),st("api graphql","multi-node","one-shot","graphql",Jt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),st("api rest","single-object","one-shot","rest",Jt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Dt("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Dt("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Dt("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Dt("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Dt("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Dt("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Dt("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Dt("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Dt("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Dt("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Dt("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Dt("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Dt("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Dt("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],PA=new Map(tb.map(e=>[e.key,e]));function rb(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 Dc(e){let t=rb(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var Pa=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=Dc(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 nb(e){return PA.get(Dc(e))??null}function ob(e){let t=nb(e);if(!t)throw new Pa(e);return t}function Oc(e){return ob(e).surface}import{appendFile as AA,mkdir as CA,readFile as DA}from"node:fs/promises";import{dirname as OA}from"node:path";function Aa(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=FA(n.operation,n.cost,n.observedAt??t(),n.actor),s=bt().push(MA(o));return r=r.then(async()=>{await CA(OA(e.path),{recursive:!0}),await AA(e.path,s,"utf8")}),r},async report(n){await r;let o=Fc(n.from,"report window start"),s=Fc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await IA(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 FA(e,t,r,n){if(Fc(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 IA(e){let t;try{t=await DA(e,"utf8")}catch(s){if($A(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
66
|
-
`);for(let s=0;s<o.length;s+=1){let i=o[s];if(i.trim()==="")continue;let a=o[s+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let l;try{l=
|
|
65
|
+
`).filter(sC).map(iC)}function Ta(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,oC(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function oC(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,...e.pgid==null?{}:{pgid:e.pgid},...e.proc_start_time==null?{}:{proc_start_time:e.proc_start_time},started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function oy(e){return{...e}}function sC(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...VA,...zA].includes(t)}function iC(e){let t=e.kind??e.event;return{version:1,ts:String(e.ts),kind:t,event:t,worker_id:String(e.worker_id),project_label:at(e.project_label)??"",pid:Number(e.pid??0),...e.pgid==null||e.pgid===""?{}:{pgid:Number(e.pgid)},...at(e.proc_start_time)==null?{}:{proc_start_time:at(e.proc_start_time)},workspace_path:at(e.workspace_path)??"",fork_sha:at(e.fork_sha),log_path:at(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:at(e.unit),memory_high:at(e.memory_high),memory_max:at(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:at(e.admission_verdict),phase:at(e.phase),step:at(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:at(e.runner),model:at(e.model),base_head_sha:at(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:at(e.heal_kind),detail:at(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:at(e.signal),reason:at(e.reason)}}function at(e){return e==null||e===""?null:String(e)}function sy(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,b=f?1:g;o.push({...c,outcome:f?"half-open-probe":"asking",wanted:b,detail:f?`project ${JSON.stringify(i.project_label)} finished its birth-breaker cooldown, so exactly one probe Worker is admitted before the remaining ${Math.max(0,g-1)} birth(s)`:`project ${JSON.stringify(i.project_label)} holds ${a} Worker(s) against a target of ${i.target} and a queue of ${d}, so it asks for ${g} more`});for(let m=0;m<b;m+=1)(s[m]??(s[m]=[])).push({project_label:i.project_label,index:a+m,argv:i.argv,workspace_path:i.workspace_path})}return{intents:o,births:s.flat()}}function iy(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function ay(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 Ws={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function ly(e,t,r){if(t>=6e4)return Ws;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 dy(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function Lc(){return Ws}function aC(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 cy(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>aC(r,n,t)).filter(r=>r!=null)}function uy(e){let t=e.workers.map(lC),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:cC({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length,uncontained:t.filter(o=>o.survives&&!o.contained).length})}}function py(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 lC(e){return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,unit:e.unit??null,isolated:e.isolated,contained:e.isolated,survives:!0}}function dC(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 cC(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${dC(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${jc(e.held,"Worker")} across ${jc(e.projects,"project")}, and ${e.surviving} of them survive it \u2014 ${jc(e.uncontained,"uncontained survivor")} ${e.uncontained===1?"runs":"run"} as detached process groups outside an init-system unit`}function jc(e,t){return`${e} ${t}${e===1?"":"s"}`}function $c(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e,r=t.holding;return t.version===1&&typeof t.running=="boolean"&&typeof t.stopped=="boolean"&&typeof t.reason=="string"&&typeof t.socket_path=="string"&&typeof t.detail=="string"&&(t.daemon_version===null||typeof t.daemon_version=="string")&&(t.pid===null||typeof t.pid=="number")&&r!=null&&Array.isArray(r.workers)&&r.workers.every(n=>n!=null&&typeof n=="object"&&!Array.isArray(n)&&typeof n.contained=="boolean")&&Array.isArray(r.projects)&&Array.isArray(t.surviving)}import{chmod as uC,mkdir as pC,readFile as fC,rm as gC,writeFile as mC}from"node:fs/promises";import{dirname as fy,join as yy}from"node:path";import{tmpdir as gy}from"node:os";var hC="redskilled.machine.claim.toon",Nc="REDSKILLED_MACHINE_DIR",yC=8,Jr=class extends Error{constructor(r,n,o){super(kC(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},my;function Pa(){return my??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},my}function bC(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[Nc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||gy():gy();return yy(o,`redskilled-${e.machineIdHash}`)}function qn(e){return yy(bC(e),hC)}function Hs(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){let l;try{l=await fC(e,"utf8")}catch(c){if(c.code==="ENOENT"||Bc(c))return;throw c}let d=wC(l);return _C(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 gC(e,{force:!0}),!0}catch(l){if(Bc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await pC(fy(e),{recursive:!0,mode:1023})!=null&&await uC(fy(e),1023).catch(()=>{});let c=!1;for(let u=0;u<yC;u+=1){let p=i(l,n());try{return await mC(e,RC(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Bc(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(hy(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||!hy(d,l,t.socketPath)?!1:await a()}}}function by(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 ky(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 kC(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 Bc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function hy(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function RC(e){return`${Ye(e,{keyedMapCollapse:!0})}
|
|
66
|
+
`}function wC(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function _C(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 xC=["worker_id","slot","workspace_path","log_path"],Aa=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${xC.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},Ry=/\{\{([a-z_]+)\}\}/g;function EC(e,t){let r=(i,a)=>i.replace(Ry,(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 Aa(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 wy(e,t){if(!(e==null||e.trim()===""))return e.replace(Ry,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new Aa(n,"the log path")}})}function Ca(e,t,r){let n=EC(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 Oa(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 Da(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 Fa(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 vC=3e5,SC=.5,Gc=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 _y(e,t){if(t.held!=null)throw new Gc(t.held);let r=Us(e.project_label,"a project label"),n=Us(e.selector,"a selector"),o=DC(e.queue_poll,r),s=Oa(e.argv,r),i=Fa(e.env,r),a=Da(e.log_path,r),l=AC(e.hooks,r),d=Us(e.workspace_path,`a workspace path for project ${JSON.stringify(r)}`),c=e.trunk==null?void 0:{remote:Us(e.trunk.remote,`a trunk remote for project ${JSON.stringify(r)}`),branch:Us(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??vC;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 Kn=class extends Error{constructor(r,n={kind:"never"}){super(TC(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function TC(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 xy(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:Oa(t.launch.argv,e.project_label),env:Fa(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Da(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 Wc(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 PC(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Ia(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*SC;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 Ey(e,t){let r=[],n=[];for(let o of e)(PC(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function qs(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||vy(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||OC(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||Sy(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||CC(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 AC(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(!$o.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${$o.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:Oa(s.argv,t),env:Fa(s.env,t),...s.log_path==null?{}:{log_path:Da(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function CC(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!$o.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||Sy(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 OC(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 DC(e,t){if(e!==void 0){if(!vy(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function vy(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")&&(t.counter_labels===void 0||typeof t.counter_labels=="object"&&t.counter_labels!==null&&typeof t.counter_labels.ready=="string"&&t.counter_labels.ready!==""&&typeof t.counter_labels.human=="string"&&t.counter_labels.human!=="")}function Sy(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.values(e).every(t=>typeof t=="string")}function Us(e,t){if(typeof e!="string"||e==="")throw new Error(`redskilled needs ${t} to register a project, not ${JSON.stringify(e)}`);return e}var FC={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 Ty(e){return`worker-${e}`}function Py(e){let t=FC[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 Ay(e){return e==="single-object"?"rest":"graphql"}function Cy(e,t){return e==="stable-poll"?"rest":Ay(t)}function Qt(e){return{none:e}}function lt(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??Cy(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ft(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var Oy=[lt("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),lt("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),lt("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),lt("run view","single-object","stable-poll","rest",Qt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),lt("release view","single-object","stable-poll","rest",Qt("release lookup has no GraphQL client method"),"one release by tag, repeatedly checked while usually absent or unchanged"),lt("pr diff","single-object","one-shot","rest",Qt("the complete diff is exposed as a REST media type"),"one pull request's diff, read once for review"),lt("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),lt("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),lt("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),lt("release list","multi-node","stable-poll","rest",Qt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),lt("run list","multi-node","stable-poll","rest",Qt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),lt("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),lt("issue list (search)","multi-node","stable-poll","search",Qt("search is ineligible for diverted traffic"),"queue discovery polls usually-unchanged search results through the 30/min search connection"),lt("pr list (search)","multi-node","stable-poll","search",Qt("search is ineligible for diverted traffic"),"PR discovery polls usually-unchanged search results through the 30/min search connection"),lt("search issues","multi-repository","one-shot","search",Qt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),lt("search prs","multi-repository","one-shot","search",Qt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),lt("search repos","multi-repository","one-shot","search",Qt("search is ineligible for diverted traffic"),"a one-shot cross-repository read through the REST search endpoint, metered 30/min","rest"),lt("api graphql","multi-node","one-shot","graphql",Qt("the caller explicitly chose GraphQL"),"the caller supplies one explicit GraphQL query rather than a routed poll"),lt("api rest","single-object","one-shot","rest",Qt("the caller explicitly chose REST"),"the caller supplies one explicit REST path rather than a routed poll"),Ft("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ft("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ft("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ft("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ft("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ft("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ft("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ft("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ft("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ft("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ft("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ft("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ft("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ft("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],IC=new Map(Oy.map(e=>[e.key,e]));function Dy(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 Hc(e){let t=Dy(e);if(t.length===0)return"";if(t[0]==="api")return t[1]==="graphql"?"api graphql":"api rest";let r=t.length===1?t[0]:`${t[0]} ${t[1]}`;return t[1]==="list"&&e.includes("--search")?`${r} (search)`:r}var Ma=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=Hc(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 Fy(e){return IC.get(Hc(e))??null}function Iy(e){let t=Fy(e);if(!t)throw new Ma(e);return t}function Uc(e){return Iy(e).surface}import{appendFile as MC,mkdir as LC,readFile as My}from"node:fs/promises";import{dirname as jC}from"node:path";function La(e){let t=e.now??(()=>new Date().toISOString()),r=lr["github-spend"],n={...r,...e.maxBytes===void 0?{}:{maxBytes:e.maxBytes}},o=Promise.resolve();return{record(s){let i=GC(s.operation,s.cost,s.observedAt??t(),s.actor),a=it().push(HC(i));return o=o.then(async()=>{await LC(jC(e.path),{recursive:!0});let l=Buffer.byteLength(a);if(await _m(e.path,l,n)){let d=n.maxBytes;if(l>d)throw new Error(`GitHub spend observation exceeds its ${d}-byte lane ceiling`);let c=await $C(e.path),u=Math.max(Math.floor(d*r.targetRatio),l);await vm(e.path,BC(c,l,u))}await MC(e.path,a,"utf8")}),o},async report(s){await o;let i=qc(s.from,"report window start"),a=qc(s.to,"report window end");if(a<=i)throw new Error("GitHub attribution report window end must be after its start");let l=await WC(e.path),d=new Map;for(let u of l.observations){let p=Date.parse(u.observed_at);if(p<i||p>=a||s.pool!==void 0&&u.pool!==s.pool)continue;let g=`${u.pool}\0${u.operation_key}\0${u.actor??""}`,f=d.get(g);d.set(g,{operation_key:u.operation_key,pool:u.pool,...u.actor===void 0?{}:{actor:u.actor},count:(f?.count??0)+1,cost:(f?.cost??0)+u.cost})}let c=[...d.values()].sort((u,p)=>p.cost-u.cost||p.count-u.count||u.operation_key.localeCompare(p.operation_key)||u.pool.localeCompare(p.pool)||(u.actor??"").localeCompare(p.actor??""));return{version:1,origin:"process-attribution",window:{from:s.from,to:s.to},pool:s.pool??null,total_count:c.reduce((u,p)=>u+p.count,0),total_cost:c.reduce((u,p)=>u+p.cost,0),operations:c,unreadable_records:l.unreadable}}}}async function $C(e){try{let t=await My(e,"utf8");return t.trim()===""?[]:Ot(t)}catch(t){if(Ly(t)&&t.code==="ENOENT")return[];throw t}}function BC(e,t,r){let n=0,o=e.length;for(;n<o;){let s=Math.ceil((n+o)/2),i=NC(e.slice(-s));Buffer.byteLength(i)+t<=r?n=s:o=s-1}return n}function NC(e){return e.map(t=>it({trailer:!1}).push(t)).join("")}function GC(e,t,r,n){if(qc(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 WC(e){let t;try{t=await My(e,"utf8")}catch(s){if(Ly(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
67
|
+
`);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=Ot(`${i}
|
|
67
68
|
${a}
|
|
68
|
-
`)[0]}catch{n+=1,s+=1;continue}if(!
|
|
69
|
+
`)[0]}catch{n+=1,s+=1;continue}if(!UC(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function HC(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 UC(e){return qC(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 qc(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 qC(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ly(e){return e instanceof Error&&"code"in e}var $y=Td(zc(),1);var Yr=class extends Error{name;status;request;response;constructor(t,r,n){super(t,{cause:n.cause}),this.name="HttpError",this.status=Number.parseInt(r),Number.isNaN(this.status)&&(this.status=0);"response"in n&&(this.response=n.response);let o=Object.assign({},n.request);n.request.headers.authorization&&(o.headers=Object.assign({},n.request.headers,{authorization:n.request.headers.authorization.replace(/(?<! ) .*$/," [REDACTED]")})),o.url=o.url.replace(/\bclient_secret=\w+/g,"client_secret=[REDACTED]").replace(/\baccess_token=\w+/g,"access_token=[REDACTED]"),this.request=o}};var KC="0.0.0-development";function VC(e){return e.request!==void 0}async function jy(e,t,r,n){if(!VC(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 zC(e,t,r,n){let o=new $y.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(JC.bind(null,e,t,r),n)}async function JC(e,t,r,n){let o=await r(n);if(o.data&&o.data.errors&&o.data.errors.length>0&&/Something went wrong while executing your query/.test(o.data.errors[0].message)){let s=new Yr(o.data.errors[0].message,500,{request:n,response:o});return jy(e,t,s,n)}return o}function Jc(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",jy.bind(null,r,n)),e.hook.wrap("request",zC.bind(null,r,n))),n}Jc.VERSION=KC;var Ny=Td(zc(),1),YC="0.0.0-development",Yc=()=>Promise.resolve();function QC(e,t,r){return e.retryLimiter.schedule(XC,e,t,r)}async function XC(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=ZC(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,Yc),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,Yc),i&&await e.search.key(e.id).schedule(d,Yc);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 ZC(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 eO=["/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 tO(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var By=tO(eO),Gy=By.test.bind(By),dr={},rO=function(e,t){dr.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),dr.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),dr.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),dr.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),dr.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function ja(e,t){let{enabled:r=!0,Bottleneck:n=Ny.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:Gy,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
70
|
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
70
71
|
See https://octokit.github.io/rest.js/#throttling
|
|
71
72
|
|
|
@@ -75,36 +76,37 @@ ${a}
|
|
|
75
76
|
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
76
77
|
}
|
|
77
78
|
})
|
|
78
|
-
`);let d=!1,c=()=>{if(d)return;d=!0,
|
|
79
|
-
`+n.repeat(u));let m=f.val[f.index],w=i(f.val,String(f.index),m);if(
|
|
80
|
-
`+n.repeat(u)+
|
|
81
|
-
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},
|
|
79
|
+
`);let d=!1,c=()=>{if(d)return;d=!0,dr.global==null&&rO(n,a),l.global=l.global??dr.global,l.auth=l.auth??dr.auth,l.search=l.search??dr.search,l.write=l.write??dr.write,l.notifications=l.notifications??dr.notifications,l.retryLimiter=l.retryLimiter??new n;let u={},p=new n.Events(u);u.on("secondary-limit",l.onSecondaryRateLimit),u.on("rate-limit",l.onRateLimit),u.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),l.retryLimiter.on("failed",async function(g,f){let[b,m,w]=f.args,{pathname:T}=new URL(w.url,"http://github.test");if(!(T.startsWith("/graphql")&&g.status!==401||g.status===403||g.status===429))return;let C=~~m.retryCount;m.retryCount=C,w.request.retryCount=C;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"])||b.fallbackSecondaryRateRetryAfter;return{wantRetry:await p.trigger("secondary-limit",H,w,e,C),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,w,e,C),retryAfter:G}}return{}}();if(M)return m.retryCount++,N*b.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),QC(l,u,p))),{}}ja.VERSION=YC;ja.triggersNotification=Gy;function gn(){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 $a(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)=>$a.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 Wy(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 Hy(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 Uy=Function.bind,qy=Uy.bind(Uy);function Ky(e,t,r){let n=qy(Hy,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]=qy(Wy,null).apply(null,s)})}function nO(){let e=Symbol("Singular"),t={registry:{}},r=$a.bind(null,t,e);return Ky(r,t,e),r}function oO(){let e={registry:{}},t=$a.bind(null,e);return Ky(t,e),t}var Vy={Singular:nO,Collection:oO};var sO="0.0.0-development",iO=`octokit-endpoint.js/${sO} ${gn()}`,aO={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":iO},mediaType:{format:""}};function lO(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function dO(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 Yy(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{dO(t[n])?n in e?r[n]=Yy(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function zy(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Xc(e,t,r){if(typeof t=="string"){let[o,s]=t.split(" ");r=Object.assign(s?{method:o,url:s}:{url:o},r)}else r=Object.assign({},t);r.headers=lO(r.headers),zy(r),zy(r.headers);let n=Yy(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 cO(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 uO=/\{[^{}}]+\}/g;function pO(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function fO(e){let t=e.match(uO);return t?t.map(pO).reduce((r,n)=>r.concat(n),[]):[]}function Jy(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function Qy(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 No(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ks(e,t,r){return t=e==="+"||e==="#"?Qy(t):No(t),r?No(r)+"="+t:t}function Bo(e){return e!=null}function Qc(e){return e===";"||e==="&"||e==="?"}function gO(e,t,r,n){var o=e[r],s=[];if(Bo(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(Ks(t,o,Qc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Bo).forEach(function(i){s.push(Ks(t,i,Qc(t)?r:""))}):Object.keys(o).forEach(function(i){Bo(o[i])&&s.push(Ks(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Bo).forEach(function(a){i.push(Ks(t,a))}):Object.keys(o).forEach(function(a){Bo(o[a])&&(i.push(No(a)),i.push(Ks(t,o[a].toString())))}),Qc(t)?s.push(No(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Bo(o)&&s.push(No(r)):o===""&&(t==="&"||t==="?")?s.push(No(r)+"="):o===""&&s.push("");return s}function mO(e){return{expand:hO.bind(null,e)}}function hO(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(gO(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 Qy(s)}),e==="/"?e:e.replace(/\/$/,"")}function Xy(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=Jy(e,["method","baseUrl","url","headers","request","mediaType"]),i=fO(r);r=mO(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=Jy(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=cO(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 yO(e,t,r){return Xy(Xc(e,t,r))}function Zy(e,t){let r=Xc(e,t),n=yO.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:Zy.bind(null,r),merge:Xc.bind(null,r),parse:Xy})}var eb=Zy(null,aO);var bb=Td(ab(),1);var TO=/^-?\d+$/,Ga=/^-?\d+n+$/,mn=JSON.stringify,ru=JSON.parse,pb=/^-?\d+n$/,lb=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,db=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,nu=e=>e===void 0||typeof e=="function"||typeof e=="symbol",ou=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",PO=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let o=typeof t=="function",s=Array.isArray(t)?new Set(t.map(String)):null,i=(f,b,m)=>(m!==null&&typeof m=="object"&&typeof m.toJSON=="function"&&(m=m.toJSON(b)),typeof m=="string"&&Ga.test(m)?m+"n":typeof m=="bigint"?"rawJSON"in JSON?JSON.rawJSON(m.toString()):m.toString()+"n":(o&&(m=t.call(f,b,m)),m!==null&&typeof m=="object"&&(m instanceof Number||m instanceof String||m instanceof Boolean)&&(m=m.valueOf()),m)),a=i({"":e},"",e);if(nu(a))return;let l=a===null||typeof a!="object",d=ou(a);if(l||d)return mn(a);let c=[],u=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(c.push(f.isArray?"[":"{"),u++);let b=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
|
|
80
|
+
`+n.repeat(u));let m=f.val[f.index],w=i(f.val,String(f.index),m);if(nu(w))c.push("null"),f.first=!1,f.index++;else{let T=w!==null&&typeof w=="object",L=ou(w);if(T&&!L){if(g.has(w))throw new TypeError("Converting circular structure to JSON");g.add(w),p.push({parent:f.val,key:String(f.index),val:w,isArray:Array.isArray(w),keys:Array.isArray(w)?null:Object.keys(w),index:0,first:!0}),f.first=!1,f.index++}else c.push(mn(w)),f.first=!1,f.index++}}else b=!0;else{for(;f.index<f.keys.length;){let w=f.keys[f.index++];if(s&&!s.has(w))continue;let L=f.val[w],C=i(f.val,w,L);if(nu(C))continue;f.first||c.push(","),n?c.push(`
|
|
81
|
+
`+n.repeat(u)+mn(w)+": "):c.push(mn(w)+":");let M=C!==null&&typeof C=="object",N=ou(C);if(M&&!N){if(g.has(C))throw new TypeError("Converting circular structure to JSON");g.add(C),p.push({parent:f.val,key:w,val:C,isArray:Array.isArray(C),keys:Array.isArray(C)?null:Object.keys(C),index:0,first:!0}),f.first=!1;break}else c.push(mn(C)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(b=!0)}b&&(u--,!f.first&&n&&c.push(`
|
|
82
|
+
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},fb=(e,t,r)=>{try{return"rawJSON"in JSON?mn(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?mn(e,(a,l)=>typeof l=="string"&&Ga.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(lb,"$1$2$3").replace(db,"$1$2$3"):mn(e,t,r)}catch(n){if(n instanceof RangeError){let o=PO(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(lb,"$1$2$3").replace(db,"$1$2$3")}throw n}},Na=new Map,AO=()=>{let e=JSON.parse.toString();if(Na.has(e))return Na.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return Na.set(e,t),t}catch{return Na.set(e,!1),!1}},CO=(e,t,r,n)=>typeof t=="string"&&pb.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&Ga.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,OO=(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&&TO.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),gb=Number.MAX_SAFE_INTEGER.toString(),cb=gb.length,DO=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,FO=/^"-?\d+n+"$/,IO=(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"&&(pb.test(a)?a=BigInt(a.slice(0,-1)):Ga.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[""]},ub=e=>e.replace(DO,(t,r,n,o)=>{let s=t[0]==='"';if(s&&FO.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<cb||r.length===cb&&r<=gb);return s||a||l?t:'"'+t+'n"'}),mb=(e,t)=>{if(!e)return ru(e,t);try{if(AO())return OO(e,t);let r=ub(e);return ru(r,(n,o,s)=>CO(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=ub(e),o=ru(n);return IO(o,t)}throw r}};var MO="10.0.13",LO={headers:{"user-agent":`octokit-request.js/${MO} ${gn()}`}};function jO(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var hb=()=>"";async function yb(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=jO(e.body)||Array.isArray(e.body)?fb(e.body):e.body,s=Object.fromEntries(Object.entries(e.headers).map(([u,p])=>[u,String(p)])),i;try{i=await t(e.url,{method:e.method,body:o,redirect:e.request?.redirect,headers:s,signal:e.request?.signal,...e.body&&{duplex:"half"}})}catch(u){let p="Unknown Error";if(u instanceof Error){if(u.name==="AbortError")throw u.status=500,u;p=u.message,u.name==="TypeError"&&"cause"in u&&(u.cause instanceof Error?p=u.cause.message:typeof u.cause=="string"&&(p=u.cause))}let g=new Yr(p,500,{request:e});throw g.cause=u,g}let a=i.status,l=i.url,d={};for(let[u,p]of i.headers)d[u]=p;let c={url:l,status:a,headers:d,data:""};if("deprecation"in d){let u=d.link&&d.link.match(/<([^<>]+)>; rel="deprecation"/),p=u&&u.pop();r.warn(`[@octokit/request] "${e.method} ${e.url}" is deprecated. It is scheduled to be removed on ${d.sunset}${p?`. See ${p}`:""}`)}if(a===204||a===205)return c;if(e.method==="HEAD"){if(a<400)return c;throw new Yr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await su(i),new Yr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await su(i),new Yr(BO(c.data),a,{response:c,request:e});return c.data=n?await su(i):i.body,c}async function su(e){let t=e.headers.get("content-type");if(!t)return e.text().catch(hb);let r=(0,bb.parse)(t);if($O(r)){let n="";try{return n=await e.text(),mb(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch(hb):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function $O(e){return e.type==="application/json"||e.type==="application/scim+json"}function BO(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 iu(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 yb(r.parse(i));let a=(l,d)=>yb(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:iu.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:iu.bind(null,r)})}var Vs=iu(eb,LO);var NO="0.0.0-development";function GO(e){return`Request failed due to following response errors:
|
|
82
83
|
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
83
|
-
`)}var MC=class extends Error{constructor(e,t,r){super(IC(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},LC=["method","baseUrl","url","headers","request","query","mediaType","operationName"],jC=["query","method","url"],Gb=/\/api\/v3\/?$/;function $C(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(jC.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)=>LC.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 Gb.test(s)&&(o.url=s.replace(Gb,"/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 MC(o,a,i.data)}return i.data.data})}function Jc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>$C(r,o,s),{defaults:Jc.bind(null,r),endpoint:r.endpoint})}var sW=Jc(Gs,{headers:{"user-agent":`octokit-graphql.js/${FC} ${fn()}`},method:"POST",url:"/graphql"});function Wb(e){return Jc(e,{method:"POST",url:"/graphql"})}var Yc="(?:[a-zA-Z0-9_-]+)",Hb="\\.",Ub=new RegExp(`^${Yc}${Hb}${Yc}${Hb}${Yc}$`),BC=Ub.test.bind(Ub);async function NC(e){let t=BC(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 GC(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function WC(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=GC(e),t(o)}var qb=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(NC.bind(null,t),{hook:WC.bind(null,t)})};var Qc="7.0.7";var Kb=()=>{},HC=console.warn.bind(console),UC=console.error.bind(console);function qC(e={}){return typeof e.debug!="function"&&(e.debug=Kb),typeof e.info!="function"&&(e.info=Kb),typeof e.warn!="function"&&(e.warn=HC),typeof e.error!="function"&&(e.error=UC),e}var Vb=`octokit-core.js/${Qc} ${fn()}`,Ma=class{static VERSION=Qc;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 mb.Collection,n={baseUrl:Gs.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} ${Vb}`:Vb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Gs.defaults(n),this.graphql=Wb(this.request).defaults(n),this.log=qC(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=qb(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 zb="6.0.0";function Xc(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})})}Xc.VERSION=zb;var KC="0.0.0-development";function VC(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 Zc(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=VC(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 Jb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Yb(e,[],Zc(e,t,r)[Symbol.asyncIterator](),n)}function Yb(e,t,r,n){return r.next().then(o=>{if(o.done)return t;let s=!1;function i(){s=!0}return t=t.concat(n?n(o.value,i):o.value.data),s?t:Yb(e,t,r,n)})}var _W=Object.assign(Jb,{iterator:Zc});function eu(e){return{paginate:Object.assign(Jb.bind(null,e),{iterator:Zc.bind(null,e)})}}eu.VERSION=KC;var tu="17.0.0";var zC={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"]}},Qb=zC;var Wn=new Map;for(let[e,t]of Object.entries(Qb))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 JC={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]=YC(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function ru(e){let t={};for(let r of Wn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},JC);return t}function YC(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 QC(e){return{rest:ru(e)}}QC.VERSION=tu;function nu(e){let t=ru(e);return{...t,rest:t}}nu.VERSION=tu;var Xb="22.0.1";var Zb=Ma.plugin(Xc,nu,eu).defaults({userAgent:`octokit-rest.js/${Xb}`});function XC(e){return`r${e}`}function ey(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=XC(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
|
+
`)}var WO=class extends Error{constructor(e,t,r){super(GO(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},HO=["method","baseUrl","url","headers","request","query","mediaType","operationName"],UO=["query","method","url"],kb=/\/api\/v3\/?$/;function qO(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(UO.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)=>HO.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 kb.test(s)&&(o.url=s.replace(kb,"/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 WO(o,a,i.data)}return i.data.data})}function au(e,t){let r=e.defaults(t);return Object.assign((o,s)=>qO(r,o,s),{defaults:au.bind(null,r),endpoint:r.endpoint})}var zH=au(Vs,{headers:{"user-agent":`octokit-graphql.js/${NO} ${gn()}`},method:"POST",url:"/graphql"});function Rb(e){return au(e,{method:"POST",url:"/graphql"})}var lu="(?:[a-zA-Z0-9_-]+)",wb="\\.",_b=new RegExp(`^${lu}${wb}${lu}${wb}${lu}$`),KO=_b.test.bind(_b);async function VO(e){let t=KO(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 zO(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function JO(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=zO(e),t(o)}var xb=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(VO.bind(null,t),{hook:JO.bind(null,t)})};var du="7.0.7";var Eb=()=>{},YO=console.warn.bind(console),QO=console.error.bind(console);function XO(e={}){return typeof e.debug!="function"&&(e.debug=Eb),typeof e.info!="function"&&(e.info=Eb),typeof e.warn!="function"&&(e.warn=YO),typeof e.error!="function"&&(e.error=QO),e}var vb=`octokit-core.js/${du} ${gn()}`,Wa=class{static VERSION=du;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 Vy.Collection,n={baseUrl:Vs.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} ${vb}`:vb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Vs.defaults(n),this.graphql=Rb(this.request).defaults(n),this.log=XO(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=xb(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 Sb="6.0.0";function cu(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})})}cu.VERSION=Sb;var ZO="0.0.0-development";function eD(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 uu(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=eD(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 Tb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Pb(e,[],uu(e,t,r)[Symbol.asyncIterator](),n)}function Pb(e,t,r,n){return r.next().then(o=>{if(o.done)return t;let s=!1;function i(){s=!0}return t=t.concat(n?n(o.value,i):o.value.data),s?t:Pb(e,t,r,n)})}var uU=Object.assign(Tb,{iterator:uu});function pu(e){return{paginate:Object.assign(Tb.bind(null,e),{iterator:uu.bind(null,e)})}}pu.VERSION=ZO;var fu="17.0.0";var tD={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"]}},Ab=tD;var Vn=new Map;for(let[e,t]of Object.entries(Ab))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);Vn.has(e)||Vn.set(e,new Map),Vn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var rD={has({scope:e},t){return Vn.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[...Vn.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=Vn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=nD(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function gu(e){let t={};for(let r of Vn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},rD);return t}function nD(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 oD(e){return{rest:gu(e)}}oD.VERSION=fu;function mu(e){let t=gu(e);return{...t,rest:t}}mu.VERSION=fu;var Cb="22.0.1";var Ob=Wa.plugin(cu,mu,pu).defaults({userAgent:`octokit-rest.js/${Cb}`});function sD(e){return`r${e}`}function Db(e){if(e.length===0)throw new Error("an aliased single-object query needs at least one read");let t=e[0].kind;if(e.some(s=>s.kind!==t))throw new Error("an aliased single-object query may contain only one object kind");let r={},n=t==="pr"?"pullRequest":"issue";return{query:["query CoalescedSingleObjectReads {",...e.map((s,i)=>{if(!Number.isSafeInteger(s.number)||s.number<=0)throw new Error(`an aliased single-object read needs a positive number, got ${s.number}`);let a=s.selection.trim();if(a==="")throw new Error("an aliased single-object read needs a field selection");let l=sD(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
85
|
`)})," rateLimit { cost }","}"].join(`
|
|
85
|
-
`),aliases:r}}function ty(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 ZC=Zb.plugin(jc,Ca);function ry(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function ny(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 ou(e){let t=e.etags??ry(),r=new ZC({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=mn(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,m=La(y,"etag");return m!==void 0&&t.set(c.cacheKey,{etag:m,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(Ws(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=oy(f),m={...u.headers,...y},w=La(m,"etag")??u.etag;return t.set(c.cacheKey,{etag:w,data:u.data,headers:m}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:m,quotaFree:!0}}throw Ws(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=ey(c.map(({input:m})=>m)),p=await r.graphql(u.query),g=ty(u,p),f=tD(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:rD(c.map(({input:m})=>m.actor))}),g.forEach((m,w)=>{let T=c[w];m.value===null?T.reject(new Error(`GitHub returned no ${m.read.kind} #${m.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(m.value,"graphql"):m.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=Ws(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=ny(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 m=await n({...c,cacheKey:`${c.cacheKey}:page:${y}`,parameters:{...c.parameters??{},per_page:100,page:y}});if(g+=1,f=f&&m.quotaFree,!Array.isArray(m.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${y}`);if(u.push(...m.data),p=m.headers,!eD(m.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 Ws(g)===401?new Lo({cause:g}):g}}}}function eD(e){let t=La(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Hs(e){let t=Ws(e),r=oy(e);return t===429||t===403&&La(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Ws(e){if(mn(e))return typeof e.status=="number"?e.status:void 0}function oy(e){return!mn(e)||!mn(e.response)||!mn(e.response.headers)?{}:e.response.headers}function La(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function mn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function tD(e){let t=mn(e)?e:{},r=mn(t.data)?t.data:t,o=(mn(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 rD(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 iy="rate_limit",ay={rest:"core",graphql:"graphql",search:"search"},zr=["rest","graphql","search"];function Na(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:[...zr],detail:t??"no balance has been asked for yet, so none is known"}}var iu=15e3,jo=.15,$a=[{at_or_below_fraction:0,every_ms:iu,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 UW=60*6e4,su=2;function ly(e,t){let r=sy(e),n=sy(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of zr){let l=ay[a],d=n[l],c=sD(a,l,d);o[a]=c,c==null&&s.push(a)}let i=zr.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 ${zr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function au(e){try{let t=await e.transport();return ly(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Na(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function lu(e){let t=null;for(let r of zr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function Ga(e,t){let r=lu(e);if(r==null)return Ba(jo).every_ms;let n=Ba(r.fraction);if(r.remaining>0)return n.every_ms;let o=cy(t.now,r.reset_at);return o==null?n.every_ms:Math.max(iu,Math.min(n.every_ms,o))}function du(e,t=jo){return Math.ceil(e.limit*t)}function dy(e,t,r=jo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<du(n,r)?"reserved":"open"}function cu(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:Ba(t).every_ms*su,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Ba(t).every_ms,pools:[],unreported_pools:[...zr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=Ga(r,{now:e.now}),o=e.stalenessMs??n*su,s=cy(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=zr.map(c=>r.pools[c]).filter(c=>c!=null),l=oD(r,t),d=lu(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`:nD(l,d,r,t)}}function uu(e){if(!fu(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 nD(e,t,r,n){if(t==null)return r.detail;let o=du(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 oD(e,t){let r="unknown";for(let n of zr){if(e.pools[n]==null)continue;let o=dy(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Ba(e){for(let t of $a)if(e<=t.at_or_below_fraction)return t;return $a[$a.length-1]}function sD(e,t,r){if(!fu(r))return null;let n=ja(r.limit),o=ja(r.remaining),s=ja(r.used),i=ja(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 pu(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${iy}`,{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 cy(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 ja(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function sy(e){return fu(e)?e:{}}function fu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as iD}from"node:child_process";import{existsSync as aD,readFileSync as Wa,readdirSync as lD}from"node:fs";import{dirname as dD,join as Hn}from"node:path";function Us(e){let t=Is(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 uy(e){let t=[],r=[];for(let n of e.workers){let o=Us(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Is(n).memory_max??Is(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(cD(n,o,s))}}return{terminations:t,unenforceable:r}}function cD(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 uD=4096;function py(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=fD(e,r,t);for(let[u,p]of a){let g=hD(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=kD(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 m=f.pop();if(y.has(m))continue;y.add(m);let w=d.get(m);if(w){p+=w.rssBytes,g+=w.cpuSeconds;for(let T of c.get(m)??[])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 pD="/sys/fs/cgroup";function fD(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??pD,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=gD(s,r);for(let l of i)for(let d of a){let c=Hn(d,l.unit);if(aD(Hn(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function gD(e,t){let r=t.selfCgroupPath??mD(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Hn(e,s));let a=dD(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 mD(){try{for(let e of Wa("/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 CD(e,t,r){let n=$o(t),o=$o(n.data),s=Array.isArray(n.errors)?n.errors.map($o):[],i=$D(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=>hy(f.path,l)||hy(f.path,d));if(Ha(p)){let f=by(p.open_pull_requests),y=by(p.open_issues),m=BD(o[d]);if(f!=null&&y!=null&&m!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:y,recently_closed:m,ready_queue:null,human_queue:null},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||_y(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: ${qs(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 DD(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 ky(e){if(e.projects.length===0)return DD(e.now);if(mu(e.projects,e.hostTokenRef),e.transport.conditionalList)return await FD(e);let t=yy(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return CD(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 OD={key:"redskilled repository activity poll",budget:"rest"};async function FD(e){wy(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=yy(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=[],p={ready_queue:null,human_queue:null};try{for(let[g,f,y]of c){let m=await o({cacheKey:`activity:${d}:${g}:${JSON.stringify(y)}`,route:f,parameters:y,operation:OD});i+=m.requestCount;let w=g==="open-prs"?m.data:m.data.filter(T=>!Ha(T.pull_request));g==="open-issues"&&l.queue_labels!=null&&(p=MD(w,l.queue_labels)),u.push(g==="recently-closed"?w.filter(T=>qs(T.closed_at)>=n.closed_since).length:w.length),a=gy(a,jD(m.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],...p},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(g){let f=Hs(g);a=gy(a,{remaining:null,reset_at:null,exhausted:f,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:f?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${g instanceof Error?g.message:String(g)}`})}}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.endpoint==null?void 0:ID(e.endpoint),r=ou({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 ID(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 MD(e,t){let r=(n,o)=>Array.isArray(n.labels)&&n.labels.some(s=>LD(s)===o);return{ready_queue:e.filter(n=>r(n,t.ready)).length,human_queue:e.filter(n=>r(n,t.human)).length}}function LD(e){return typeof e=="string"?e:Ha(e)?qs(e.name):""}function jD(e){let t=my(e,"x-ratelimit-remaining"),r=my(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function gy(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 my(e,t){let r=e[t];if(typeof r!="string"&&typeof r!="number")return null;let n=Number(r);return Number.isSafeInteger(n)&&n>=0?n:null}function wy(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>fy)throw new Error(`redskilled activity fetch spans at most ${fy} repositories in one query`);let t=new Set;for(let r of e){if(r.project_label===""||r.owner===""||r.name==="")throw new Error("redskilled activity fetch needs a project label and an owner/name for every registered project");if(t.has(r.project_label))throw new Error(`redskilled holds one repository per project, and ${JSON.stringify(r.project_label)} is registered twice`);if(r.queue_labels!=null&&(r.queue_labels.ready===""||r.queue_labels.human===""))throw new Error(`project ${JSON.stringify(r.project_label)} declares an empty queue label: a label that names nothing would be counted as an empty queue, so state both label names or state neither`);t.add(r.project_label)}}function $D(e,t){let r=$o(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(_y),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 _y(e){if(e==null)return!1;let t=qs(e.type),r=qs(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function hy(e,t){return Array.isArray(e)&&e.includes(t)}function by(e){let t=$o(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function BD(e){let t=$o(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function $o(e){return Ha(e)?e:{}}function Ha(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function qs(e){return typeof e=="string"?e:""}var hu=2,bu=hu*Bo;function Ey(e){let t=e.stalenessMs??bu,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 vy(e){if(!xy(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)&&xy(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function xy(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var yu=["open_pull_requests","open_issues","ready_queue","human_queue"],Sy="this daemon polls no repository, so there are no remote counters to date";function Ty(e){let t=e.stalenessMs??bu,r=e.activity;if(r==null||r.projects.length===0)return{version:1,threshold_ms:t,projects:[],reason:Sy};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=r.projects.map(a=>ND(a,{fetchedAt:r.fetched_at,ageMs:s,threshold:t}));return{version:1,threshold_ms:t,projects:i,reason:s==null?"these counters carry no readable instant, so none of them can be presented as current":`every counter here was produced by the poll of ${r.fetched_at}, ${s}ms ago`}}function ND(e,t){let r={};for(let n of yu)r[n]=WD(n,GD(e,n),e,t);return{project_label:e.project_label,repository:e.repository,outcome:e.outcome,counters:r}}function GD(e,t){let r=e.counts;if(r==null)return null;switch(t){case"open_pull_requests":return r.open_pull_requests;case"open_issues":return r.open_issues;case"ready_queue":return r.ready_queue;case"human_queue":return r.human_queue}}function WD(e,t,r,n){let o={name:e,value:null,fetched_at:null,age_ms:null,threshold_ms:n.threshold,stale:!1};if(t==null)return{...o,reason:r.outcome==="counted"?`this poll produced no ${e}, so it is absent rather than zero`:r.detail};if(n.ageMs==null)return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:null,threshold_ms:n.threshold,stale:!0,reason:`this ${e} carries no readable instant, so it cannot be presented as current`};let s=n.ageMs>n.threshold;return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:n.ageMs,threshold_ms:n.threshold,stale:s,reason:s?`this ${e} is ${n.ageMs}ms old, past the ${n.threshold}ms window`:`counted ${n.ageMs}ms ago, within the ${n.threshold}ms window`}}function ku(e){if(!Ua(e))return!1;let t=e;return t.version===1&&typeof t.threshold_ms=="number"&&typeof t.reason=="string"&&Array.isArray(t.projects)&&t.projects.every(HD)}function HD(e){if(!Ua(e))return!1;let t=e;if(typeof t.project_label!="string"||typeof t.repository!="string"||typeof t.outcome!="string"||!Ua(t.counters))return!1;let r=t.counters;return yu.every(n=>UD(r[n]))}function UD(e){if(!Ua(e))return!1;let t=e;return typeof t.name=="string"&&(t.value===null||typeof t.value=="number")&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.reason=="string"}function Ua(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ay(e,t){let r=[...e].sort((i,a)=>(Ks(a.ts)??0)-(Ks(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(Py),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=qD(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:Py(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function Py(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 qD(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===""||Ks(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=Ks(s.ts),a=Math.min(...o.map(d=>Ks(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 Ru(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 Ks(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var Cy=["logs","vitals","display"];function wu(e,t){if(t===void 0)return e;let r=Cy.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:KD,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:VD},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var KD={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},VD={last_line:null,published_at:null,source:null};var zD=3e4;function Oy(e){let t=e.stalenessMs??zD,r=_u(e.now),n=e.sampledAt==null?null:_u(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=>YD(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=ya(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:eO({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:ZD(a),known_projects:XD(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:cu({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:Ey({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),remote_counters:Ty({activity:e.repositoryActivity??null,now:e.now,...e.activityStalenessMs===void 0?{}:{stalenessMs:e.activityStalenessMs}}),...e.deaths===void 0?{}:{deaths:Ay(e.deaths,e.recentDeathLimit??4)},engine:JD(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function JD(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 YD(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Us(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=_u(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:QD(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function QD(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 XD(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 ZD(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 eO(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 _u(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}function qa(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(tO))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(rO))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||vy(t.repository_activity))&&(t.remote_counters===void 0||ku(t.remote_counters))&&(t.github_balance===void 0||uu(t.github_balance))&&(t.deaths===void 0||Ru(t.deaths))&&(t.engine===void 0||nO(t.engine))&&(t.metrics===void 0||sh(t.metrics))}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.at=="string"&&(t.registered_at===void 0||typeof t.registered_at=="string")&&typeof t.reason=="string"}function rO(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 nO(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 Fy={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 Iy(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 Ka={$schema:"https://tr.designtokens.org/format/2025.10/schema.json",$description:"RedDB design tokens \u2014 the canonical, machine-readable source of truth. DTCG 2025.10 (Design Tokens Format Module, first stable version). Hand-authored; tokens.css and tailwind-preset.js are build outputs of generators/build-tokens.mjs \u2014 never hand-edit them. Locked brand values: red #ff2056, ink #07080a, paper #f4f5f7 (from the marks, issues #13/#16); type Space Grotesk + JetBrains Mono (ADR 0001).",color:{$type:"color",$description:"Primitive palette (raw scale) and semantic roles (aliases). Feedback colours (success/warning/danger) are intentionally not published yet; issue #10 locked --ok #4ade80, --warn #fbbf24, and --danger #ff5470, with the rule that the accent never signals error.",red:{$description:"The brand accent. red.500 is the locked mark colour #ff2056; the other stops are derived by mixing toward white/black for hover, active, and on-light emphasis.","400":{$value:{colorSpace:"srgb",components:[1,.3882,.5373],hex:"#ff6389"}},"500":{$value:{colorSpace:"srgb",components:[1,.1255,.3373],hex:"#ff2056"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900"],failsOn:["color.neutral.800"]},asFill:{textPasses:["color.neutral.950"],textFails:["color.neutral.0"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.8196,.102,.2745],hex:"#d11a46"}},"700":{$value:{colorSpace:"srgb",components:[.6784,.0863,.2275],hex:"#ad163a"}}},neutral:{$description:"Cool-gray ramp on the ink\u2194paper axis. neutral.50 is the locked paper #f4f5f7; neutral.950 is the locked ink #07080a; intermediate stops are hand-tuned on the same hue.","0":{$value:{colorSpace:"srgb",components:[1,1,1],hex:"#ffffff"}},"50":{$value:{colorSpace:"srgb",components:[.9569,.9608,.9686],hex:"#f4f5f7"}},"100":{$value:{colorSpace:"srgb",components:[.9059,.9137,.9333],hex:"#e7e9ee"}},"200":{$value:{colorSpace:"srgb",components:[.8275,.8392,.8706],hex:"#d3d6de"}},"300":{$value:{colorSpace:"srgb",components:[.702,.7216,.7686],hex:"#b3b8c4"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"400":{$value:{colorSpace:"srgb",components:[.5451,.5686,.6314],hex:"#8b91a1"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"500":{$value:{colorSpace:"srgb",components:[.4,.4275,.4941],hex:"#666d7e"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:[],failsOn:["color.neutral.950","color.neutral.900","color.neutral.800"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.2902,.3176,.3843],hex:"#4a5162"}},"700":{$value:{colorSpace:"srgb",components:[.2,.2235,.2863],hex:"#333949"}},"800":{$value:{colorSpace:"srgb",components:[.1176,.1333,.1765],hex:"#1e222d"}},"900":{$value:{colorSpace:"srgb",components:[.0706,.0784,.1059],hex:"#12141b"}},"950":{$value:{colorSpace:"srgb",components:[.0275,.0314,.0392],hex:"#07080a"}}},brand:{$description:"Semantic brand roles. on-primary is the black R the mark sets on the red field.",primary:{$value:"{color.red.500}"},hover:{$value:"{color.red.600}"},active:{$value:"{color.red.700}"},"on-primary":{$value:"{color.neutral.950}"}},ink:{$value:"{color.neutral.950}",$description:"The near-black foreground; the brand is dark-first."},paper:{$value:"{color.neutral.50}",$description:"The off-white ground."},surface:{muted:{$value:"{color.neutral.100}"}},border:{subtle:{$value:"{color.neutral.200}"},strong:{$value:"{color.neutral.300}"}}},fontFamily:{$type:"fontFamily",$description:"Space Grotesk for display and body, JetBrains Mono for code (ADR 0001). Space Grotesk has no italic and no weight 300; <em> maps to weight 500 and italic exists only in the mono.",sans:{$value:["Space Grotesk","system-ui","-apple-system","Segoe UI","sans-serif"]},mono:{$value:["JetBrains Mono","ui-monospace","SFMono-Regular","Menlo","monospace"]}},fontWeight:{$type:"fontWeight",$description:"Weight 300 is excluded (dark-first: thin strokes lose weight to halation).",regular:{$value:400},medium:{$value:500},bold:{$value:700}},fontSize:{$type:"dimension",$description:"Modular scale, ~1.2 (minor third) from a 1rem base.",xs:{$value:{value:.75,unit:"rem"}},sm:{$value:{value:.875,unit:"rem"}},base:{$value:{value:1,unit:"rem"}},lg:{$value:{value:1.125,unit:"rem"}},xl:{$value:{value:1.25,unit:"rem"}},"2xl":{$value:{value:1.5,unit:"rem"}},"3xl":{$value:{value:1.875,unit:"rem"}},"4xl":{$value:{value:2.25,unit:"rem"}},"5xl":{$value:{value:3,unit:"rem"}},"6xl":{$value:{value:3.75,unit:"rem"}}},lineHeight:{$type:"number",$description:"Unitless multipliers.",tight:{$value:1.1},snug:{$value:1.25},normal:{$value:1.5},relaxed:{$value:1.65}},letterSpacing:{$type:"dimension",tight:{$value:{value:-.02,unit:"em"}},normal:{$value:{value:0,unit:"em"}},wide:{$value:{value:.04,unit:"em"}}},spacing:{$type:"dimension",$description:"4px base grid; 1 unit = 0.25rem.","0":{$value:{value:0,unit:"rem"}},px:{$value:{value:1,unit:"px"}},"0.5":{$value:{value:.125,unit:"rem"}},"1":{$value:{value:.25,unit:"rem"}},"2":{$value:{value:.5,unit:"rem"}},"3":{$value:{value:.75,unit:"rem"}},"4":{$value:{value:1,unit:"rem"}},"5":{$value:{value:1.25,unit:"rem"}},"6":{$value:{value:1.5,unit:"rem"}},"8":{$value:{value:2,unit:"rem"}},"10":{$value:{value:2.5,unit:"rem"}},"12":{$value:{value:3,unit:"rem"}},"16":{$value:{value:4,unit:"rem"}},"20":{$value:{value:5,unit:"rem"}},"24":{$value:{value:6,unit:"rem"}}},radius:{$type:"dimension",$description:"The symbol's clipped corner is a hard geometric cut, so brand chrome favours restrained radii.",none:{$value:{value:0,unit:"rem"}},sm:{$value:{value:.125,unit:"rem"}},md:{$value:{value:.375,unit:"rem"}},lg:{$value:{value:.5,unit:"rem"}},xl:{$value:{value:.75,unit:"rem"}},"2xl":{$value:{value:1,unit:"rem"}},full:{$value:{value:9999,unit:"px"}}},duration:{$type:"duration",instant:{$value:{value:75,unit:"ms"}},fast:{$value:{value:150,unit:"ms"}},normal:{$value:{value:250,unit:"ms"}},slow:{$value:{value:400,unit:"ms"}}},easing:{$type:"cubicBezier",$description:"Standard for most transitions; entrance decelerates, exit accelerates, emphasized for hero motion.",standard:{$value:[.4,0,.2,1]},entrance:{$value:[0,0,.2,1]},exit:{$value:[.4,0,1,1]},emphasized:{$value:[.2,0,0,1]}},shadow:{$type:"shadow",$description:"Elevation cast in ink at low alpha; tuned for a dark-first surface.",sm:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.12,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:1,unit:"px"},blur:{value:2,unit:"px"},spread:{value:0,unit:"px"}}},md:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.16,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:2,unit:"px"},blur:{value:8,unit:"px"},spread:{value:0,unit:"px"}}},lg:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.2,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:8,unit:"px"},blur:{value:24,unit:"px"},spread:{value:0,unit:"px"}}},xl:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.24,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:16,unit:"px"},blur:{value:48,unit:"px"},spread:{value:0,unit:"px"}}}}};var No=class extends Error{name="BrandTokenError";constructor(t,r,n){super(n),this.code=t,this.tokenName=r}};function Vs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}if(!Vs(Ka)||!Vs(Ka.color))throw new No("TOKEN_MALFORMED","color","The vendored DTCG document has no color token group.");var sO=Ka;function iO(e){let t=sO;for(let r of e.split(".")){if(!Vs(t)||!(r in t))return;t=t[r]}return t}function xu(e,t){return new No("TOKEN_MALFORMED",e,`Brand color token "${e}" is malformed: ${t}`)}function My(e,t,r){if(r.has(e))throw new No("TOKEN_ALIAS_CYCLE",t,`Brand color token "${t}" contains an alias cycle at "${e}".`);let n=iO(e);if(n===void 0)throw new No("TOKEN_NOT_FOUND",t,`Brand color token "${t}" was not found (resolved path "${e}").`);if(!Vs(n)||!("$value"in n))throw xu(t,`"${e}" is not a token with a $value`);let o=n.$value;if(typeof o=="string"){let s=/^\{([^{}]+)\}$/.exec(o);if(s?.[1]===void 0)throw xu(t,`"${e}" has an invalid alias`);return My(s[1],t,new Set([...r,e]))}if(!Vs(o)||typeof o.hex!="string"||!/^#[0-9a-fA-F]{6}$/.test(o.hex))throw xu(t,`"${e}" has no six-digit hex color value`);return{name:e.startsWith("color.")?e.slice(6):e,hex:o.hex.toLowerCase()}}function aO(e){let t=e.startsWith("color.")?e:`color.${e}`;return My(t,e,new Set)}function lO(e){return aO(e).hex}function Ly(e,t){let r=lO(e),n=Number.parseInt(r.slice(1,3),16),o=Number.parseInt(r.slice(3,5),16),s=Number.parseInt(r.slice(5,7),16);return`\x1B[${t};2;${n};${o};${s}m`}function Pr(e){return Ly(e,38)}function Eu(e){return Ly(e,48)}var jy=Eu("brand.primary"),$y=Pr("brand.on-primary"),Va=Eu("neutral.900"),za=Pr("paper"),Ja=Pr("paper"),Ya="\x1B[39m",Yt=Pr("neutral.400"),QH=Pr("neutral.500"),By=Pr("neutral.300"),Ny=Pr("neutral.0"),Gy=Pr("neutral.700"),Wy=Pr("red.500"),Jr="\x1B[49m",Ar="\x1B[0m",vu="\x1B[1m",Su="\x1B[22m";var dO=/\x1b\[[0-9;]*m/g,cO=/(\x1b\[[0-9;]*m)/,uO=/^\x1b\[[0-9;]*m$/;function Un(e){return e.replace(dO,"")}function pO(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(cO))if(i!==""){if(uO.test(i)){s+=i,o=!pO(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 zs(e,t){return e+" ".repeat(Math.max(0,t-Qt(e)))}function Tu(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 Js(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 hn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return Js(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 Cr(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 Go(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var Hy=[{name:"open_pull_requests",key:"prs"},{name:"open_issues",key:"iss"},{name:"ready_queue",key:"rdy"},{name:"human_queue",key:"hmn"}];function Ys(e,t){let r=Qa(e,t),n=Uy(e,t),o=[];for(let{name:s,key:i}of Hy){if(i==="iss"){let l=n?.counts?.recently_closed;l!=null&&o.push(`cpr=${l}`)}let a=gO(i,r?.counters[s],fO(n,s));a!=null&&o.push(a)}return o}function Pu(e,t){let r=Qa(e,t),n=Uy(e,t);return{open_pull_requests:r?.counters.open_pull_requests.value??n?.counts?.open_pull_requests??null,recently_closed:n?.counts?.recently_closed??null,open_issues:r?.counters.open_issues.value??n?.counts?.open_issues??null,ready_queue:r?.counters.ready_queue.value??null,human_queue:r?.counters.human_queue.value??null,stale:n?.stale===!0}}function Au(e,t){return Qa(e,t)!=null}function Qa(e,t){return t==null?null:(e.remote_counters?.projects??[]).find(r=>r.project_label===t)??null}function Uy(e,t){return t==null?null:(e.repository_activity?.projects??[]).find(r=>r.project_label===t)??null}function fO(e,t){let r=e?.counts;return r==null?null:t==="open_pull_requests"?r.open_pull_requests:t==="open_issues"?r.open_issues:null}function gO(e,t,r){return t==null?r==null?null:`${e}=${r}`:t.value==null?null:`${e}=${t.value}${t.stale?`(${mO(t.age_ms)})`:""}`}function mO(e){return Cr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}var Qs="!unregistered",Cu="!lapsed",Xs="\u21E1",Dr="\u2020",Wo="\u25D0",Ho="\u25EF",Du="\u21B3",Ou="redskilled unreachable \u2014 Worker state unknown";function Uo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function Xa(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function Zs(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function Fu(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 Za(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 Iu(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(Za(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(Za(n.cells.iss,"iss=")),runner:Or(Za(n.cells.run,"run=")),phase:Or(n.cells.phase),progress:Or(n.cells.bar),elapsed:Or(n.cells.elapsed),eta:Za(Or(n.cells.eta),"eta="),activity:Or(n.cells.hb,t[o]?.log.last_line)}))}}var bn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],jt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},hO=" ",qy="\u2588",bO="\u25B6",yO="\u2717",kO="\u2591",RO=new Set(["gate","push-pr","merge","cascade"]),wO=new Set(["requeue"]),_O="repair";function ei(e){return e.display?.origin===_O}function qo(e,t=jt){let r=Zs(e,t.project),n=Uo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(y=>tl(y,t,e.generated_at)),i=MO(s),a=o.map((y,m)=>({worker_id:y.worker_id,project_label:y.project_label,mine:t.project!=null&&y.project_label===t.project,cells:s[m],line:Qe(LO(s[m],i),t.maxWidth)})),l=Iu(a,o,t.maxWidth),d=EO(e,t,n,r),c=n.length-o.length,u=[d.line,...CO(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(...PO(e,t)),u.push(...TO(e,t));let p=Math.max(1,Math.floor(t.maxHeight??jt.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:bn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function tl(e,t,r){let n=e.display??Fy,o=ei(e),s=[n.runner,n.model==null?null:Tu(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&RO.has(n.phase),a=o||i||n.origin!=null&&wO.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:Vy(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:Cr(Iy(e,r)),eta:n.eta==null?"":`eta=${Cr(n.eta*1e3)}`,hb:xO(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":IO(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${Js(n.tokens)}`,ctx:n.context==null?"":`ctx=${Js(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 xO(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} ${Cr(Math.max(0,n-r))}`}function Vy(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 qy.repeat(Math.floor(t));let o=e.failed?yO:bO;return`${qy.repeat(n)}${o}${kO.repeat(Math.floor(t)-n-1)}`}function EO(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s=Pu(e,t.project),i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=FO(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=[vO(l??"host",c,d!=null&&d.current===!1?Xs:"")];(n==="unregistered"||n==="name-only")&&g.push(Qs),n==="lapsed"&&g.push(Cu);let f=p?.history_48h==null?null:AO(p.history_48h);f!=null&&g.push(qn(f));let y=e.workers.filter(ei).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${qn(`workers=${M} coding +`)} ${Va}${za}${y} repairing${Jr}${Yt}`)}else g.push(qn(`wrk=${r.length}/${e.host.worker_count}`));let m=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(qn(`${m} reserve=${i.interactive_reservation} interactive`)),g.push(qn(OO(i))),a!=null&&g.push(`${Va}${za}${a}${Jr}${Yt}`);for(let M of Ys(e,t.project))g.push(qn(M));s.stale&&!Au(e,t.project)&&g.push("!counts stale");let w=p==null?null:zy(p.hour),T=w==null?null:qn(w);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=Go(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${SO(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 B=`${g.join(" \xB7 ")}${Ar}`,C=w!=null&&Qt(B)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${Ar}`:B;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(C,t.maxWidth)}}function vO(e,t,r){return`${jy}${$y}\xBB ${vu}${e}${Su} v${t}${r}${Jr}${Yt}`}function qn(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Ja}${n}${Ya}${o}${Yt}`)}function SO(e){return Cr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function zy(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${hn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${hn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${hn(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 TO(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?Ho:Wo,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 PO(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 AO(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${hn(t)} ${Mu(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${hn(r)} ${Mu(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function CO(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)]:[Ky("tokens",r.history_48h.tokens_per_hour,t),Ky("Tickets",r.history_48h.tickets_per_hour,t)]}var el=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function Ky(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=${hn(o)}/h ${Mu(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 ${DO(t)} \xB7 ${a}${l}`,r.maxWidth)}function DO(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?el[0]:el[Math.min(el.length-1,Math.floor(Math.max(0,n.value)/r*(el.length-1)))]).join("")}function Mu(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function OO(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 FO(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 IO(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 MO(e){let t=Object.fromEntries(bn.map(r=>[r,0]));for(let r of e)for(let n of bn)t[n]=Math.max(t[n],Qt(r[n]));return t}function LO(e,t){let r=bn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>rl(o,zs(e[o],s===r.length-1?Qt(e[o]):t[o])));return`${Jr}${Yt}${n.join(hO)}${Ar}`}function rl(e,t){if(e==="wid")return`${vu}${t}${Su}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${Va}${za}${t.trimEnd()}${Jr}${Yt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${By}${n}`).replace("\u25B6",`${Ny}\u25B6`).replace("\u2717",`${Wy}\u2717`).replace(/░+/g,n=>`${Gy}${n}`)+Yt;let r=t.indexOf("=");return r>0?`${Ja}${t.slice(0,r+1)}${Ya}${t.slice(r+1)}${Yt}`:t}function ju(e){return Object.freeze({none:!0,reason:e})}function nl(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function Lu(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=>Lu(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=Lu(o,t);return Object.freeze(r)}finally{t.delete(e)}}function jO(e){let t=Lu(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Ko(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=jO(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 yn(e,t=Ge){let r=Zs(e,t.project),n=Uo(e,t),o=Xa(e,t),s=HO(e,t.project,r),i=BO(e,t,n,r,s.prose),a=Fu({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:zO(i,$O(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"?qO(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?KO(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 Gu(e){let t=e.options??Ge,r=Qe(Ou,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 $O(e,t){return e==="projects"?t.map(VO):[]}function BO(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${$u(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(Nu(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${$u(r,r.length)}`),s.push(Nu(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${$u(r,r.length)}`),s.push(Nu(e,t)),s.push(Qs)):s.push(o),t.mode!=="global"&&s.push(...Ys(e,t.project)),s.push(Jy(e));let a=NO(e);a!=null&&s.push(a);let l=GO(e);l!=null&&s.push(l),e.staleness.stale&&s.push(Yy(e));let d=s.join(" ");return!i||Qt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,Jy(e),e.staleness.stale?Yy(e):null].filter(c=>c!=null).join(" ")}function $u(e,t){let r=e.filter(ei).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function Jy(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${Xs}`}function NO(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Ho} quota spent`:t.posture==="reserved"?`${Wo} quota band`:null}function GO(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=Go(o.latest_refusal);return`${Dr}${r} boot-refused \xD7${o.count} in ${WO(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Dr}${r} ${n.sender_class}`}function WO(e){return Cr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function HO(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return Ko({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:ju("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 Ko({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${Bu(n.at)}`}`,repair:nl()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${Bu(n.registered_at)})`;return Ko({state:`project unknown \u2014 ${t} lapsed at ${Bu(n.at)}${o}`,repair:nl()})}return Ko({state:`project unknown \u2014 ${t} lapsed`,repair:nl()})}return r==="unresolved"?Ko({state:"project unknown \u2014 this directory resolved to no project",repair:ju("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function Bu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function Nu(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 Yy(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function UO(e,t,r,n){let o=r.map(s=>rl(s,zs(e[s],t[s])));return Qe(`${Jr}${Yt}${o.join(" ")}${Ar}`,n)}function qO(e,t,r){let n=e.map(a=>tl(a,t,r)),o=bn.filter(a=>n.some(l=>Qt(l[a])>0)),s=[...o],i=Qy(n,s);for(;s.length>1&&Xy(i,s)>t.maxWidth;)s.pop(),i=Qy(n,s);return{lines:n.map(a=>UO(a,i,s,t.maxWidth)),degraded:s.length<o.length||Xy(i,s)>t.maxWidth}}function Qy(e,t){let r=Object.fromEntries(bn.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 KO(e,t){let r=Go(e.log.last_line);return r==null?null:Qe(` ${Du} ${Zy(e,t.mode)}: ${r}`,t.maxWidth)}function Zy(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function VO(e){return`${e.project_label} ${e.worker_count}w ${lr(e.observed_rss_bytes)}`}function zO(e,t,r){return[e,...t].join(r)}var ol=1;async function Vo(e,t){return await ua(e,t,"redskilled daemon")}function t0(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:ol,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:XO(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:lh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:ZO(e)}}function XO(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:Ta(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 ZO(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 r0(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||o1(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&dh(t.budget_accounting)&&(t.scope===void 0||Hh(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Bs))&&(t.demand===void 0||Ch(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(t1))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(r1))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(n1))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(e1))&&(t.upgrade===void 0||s1(t.upgrade))}function e1(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 t1(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 r1(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 n1(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 o1(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 s1(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||i1(t.major_hold))}function i1(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 a1}from"node:crypto";import{mkdir as l1,readFile as d1,rename as c1,writeFile as u1}from"node:fs/promises";import{dirname as p1}from"node:path";function n0(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await d1(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=f1(s);return g1(i)?i.registrations:[]}async function o(s){await l1(p1(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${a1()}.tmp`,a={version:1,registrations:[...s]};await u1(i,`${nt(a,{keyedMapCollapse:!0})}
|
|
90
|
-
|
|
91
|
-
`)
|
|
92
|
-
`)
|
|
93
|
-
|
|
94
|
-
`)
|
|
95
|
-
`)
|
|
96
|
-
`)}function
|
|
97
|
-
`)
|
|
98
|
-
`),
|
|
99
|
-
`)
|
|
86
|
+
`),aliases:r}}function Fb(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 iD=Ob.plugin(Jc,ja);function Ib(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function Mb(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 Go=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 hu(e){let t=e.etags??Ib(),r=new iD({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async c=>{let u=t.get(c.cacheKey),p={...c.parameters??{}},g=hn(p.headers)?p.headers:{};p.headers={...g,...u?{"if-none-match":u.etag}:{}};try{let f=await r.request(c.route,p),b=f.headers,m=Ha(b,"etag");return m!==void 0&&t.set(c.cacheKey,{etag:m,data:f.data,headers:b}),await e.attribution?.record({operation:c.operation,cost:1,actor:c.actor}),{data:f.data,headers:b,quotaFree:!1}}catch(f){if(zs(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 b=Lb(f),m={...u.headers,...b},w=Ha(m,"etag")??u.etag;return t.set(c.cacheKey,{etag:w,data:u.data,headers:m}),await e.attribution?.record({operation:c.operation,cost:0,actor:c.actor}),{data:u.data,headers:m,quotaFree:!0}}throw zs(f)===401?new Go({cause:f}):f}},o=new Map,s=!1,i=async c=>{let u=c.input,p=u.kind==="pr";try{let g=await n({cacheKey:u.cacheKey,route:p?"GET /repos/{owner}/{repo}/pulls/{pull_number}":"GET /repos/{owner}/{repo}/issues/{issue_number}",parameters:{owner:u.owner,repo:u.repo,...p?{pull_number:u.number}:{issue_number:u.number}},operation:u.operation,actor:u.actor});c.resolve({data:u.project?u.project(g.data,"rest"):g.data,surface:"rest",quotaFree:g.quotaFree})}catch(g){c.reject(g)}},a=async c=>{try{let u=Db(c.map(({input:m})=>m)),p=await r.graphql(u.query),g=Fb(u,p),f=lD(p),b=c[0].input;await e.attribution?.record({operation:{key:b.operation.key,budget:"graphql"},cost:f,actor:dD(c.map(({input:m})=>m.actor))}),g.forEach((m,w)=>{let T=c[w];m.value===null?T.reject(new Error(`GitHub returned no ${m.read.kind} #${m.read.number} from the coalesced query`)):T.resolve({data:T.input.project?T.input.project(m.value,"graphql"):m.value,surface:"graphql",quotaFree:!1})})}catch(u){let p=zs(u)===401?new Go({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=Mb(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,b=1;for(;;){let m=await n({...c,cacheKey:`${c.cacheKey}:page:${b}`,parameters:{...c.parameters??{},per_page:100,page:b}});if(g+=1,f=f&&m.quotaFree,!Array.isArray(m.data))throw new Error(`GitHub returned a non-list body for ${JSON.stringify(c.cacheKey)} page ${b}`);if(u.push(...m.data),p=m.headers,!aD(m.headers))break;b+=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 zs(g)===401?new Go({cause:g}):g}}}}function aD(e){let t=Ha(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Js(e){let t=zs(e),r=Lb(e);return t===429||t===403&&Ha(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function zs(e){if(hn(e))return typeof e.status=="number"?e.status:void 0}function Lb(e){return!hn(e)||!hn(e.response)||!hn(e.response.headers)?{}:e.response.headers}function Ha(e,t){let r=e[t]??e[t.toLowerCase()];return typeof r=="string"?r:typeof r=="number"?String(r):void 0}function hn(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lD(e){let t=hn(e)?e:{},r=hn(t.data)?t.data:t,o=(hn(r.rateLimit)?r.rateLimit:{}).cost;if(!Number.isSafeInteger(o)||o<0)throw new Error("GitHub aliased query did not return a non-negative integer rateLimit.cost");return o}function dD(e){let t=[...new Set(e.filter(r=>r!==void 0))].sort();if(t.length!==0)return t.length===1?t[0]:`coalesced:${t.join("+")}`}var $b="rate_limit",Bb={rest:"core",graphql:"graphql",search:"search"},Qr=["rest","graphql","search"];function Va(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Qr],detail:t??"no balance has been asked for yet, so none is known"}}var bu=15e3,Wo=.15,qa=[{at_or_below_fraction:0,every_ms:bu,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Wo,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 FU=60*6e4,yu=2;function Nb(e,t){let r=jb(e),n=jb(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Qr){let l=Bb[a],d=n[l],c=pD(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Qr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${Qr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function ku(e){try{let t=await e.transport();return Nb(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Va(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function Ru(e){let t=null;for(let r of Qr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function za(e,t){let r=Ru(e);if(r==null)return Ka(Wo).every_ms;let n=Ka(r.fraction);if(r.remaining>0)return n.every_ms;let o=Wb(t.now,r.reset_at);return o==null?n.every_ms:Math.max(bu,Math.min(n.every_ms,o))}function wu(e,t=Wo){return Math.ceil(e.limit*t)}function Gb(e,t,r=Wo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<wu(n,r)?"reserved":"open"}function _u(e){let t=e.reservedFraction??Wo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Ka(t).every_ms*yu,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Ka(t).every_ms,pools:[],unreported_pools:[...Qr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=za(r,{now:e.now}),o=e.stalenessMs??n*yu,s=Wb(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Qr.map(c=>r.pools[c]).filter(c=>c!=null),l=uD(r,t),d=Ru(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`:cD(l,d,r,t)}}function xu(e){if(!vu(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 cD(e,t,r,n){if(t==null)return r.detail;let o=wu(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 uD(e,t){let r="unknown";for(let n of Qr){if(e.pools[n]==null)continue;let o=Gb(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Ka(e){for(let t of qa)if(e<=t.at_or_below_fraction)return t;return qa[qa.length-1]}function pD(e,t,r){if(!vu(r))return null;let n=Ua(r.limit),o=Ua(r.remaining),s=Ua(r.used),i=Ua(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}/${$b}`,{method:"GET",headers:{authorization:`bearer ${e.token}`,accept:"application/vnd.github+json"}});if(!n.ok)throw new Error(`the balance ask was refused with HTTP ${n.status}`);return await n.json()}}function Wb(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 Ua(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function jb(e){return vu(e)?e:{}}function vu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as fD}from"node:child_process";import{existsSync as gD,readFileSync as Ja,readdirSync as mD}from"node:fs";import{dirname as hD,join as zn}from"node:path";function Ys(e){let t=Lo(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=jo(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function yD(e){let t=[],r=[];for(let n of e.workers){let o=Ys(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Lo(n).memory_max??Lo(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(kD(n,o,s))}}return{terminations:t,unenforceable:r}}function bD(e){let t=[];for(let r of e.workers){if(r.isolated)continue;let n=Lo(r).max_processes;if(n==null||!Number.isSafeInteger(n)||n<=0)continue;let o=e.processes[r.worker_id];if(typeof o!="number"||!Number.isSafeInteger(o)||o<0||o<=n)continue;let s=`Worker ${JSON.stringify(r.worker_id)} of project ${JSON.stringify(r.project_label)}`;t.push({version:1,worker_id:r.worker_id,project_label:r.project_label,outcome:"terminated-over-process-budget",classification:"budget-exceeded",stall:!1,budget_name:"TasksMax",budget_declared:n,observed_processes:o,workspace_path:r.workspace_path,reason:`redskilled terminated ${s}: its process tree contained ${o} processes, exceeding its TasksMax budget of ${n}. This is a budget termination, not a stall, and the work in ${JSON.stringify(r.workspace_path)} is handed forward.`})}return{terminations:t,unenforceable:[]}}function Hb(e){let t=yD(e),r=bD(e);return{terminations:[...t.terminations,...r.terminations],unenforceable:[...t.unenforceable,...r.unenforceable]}}function kD(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 RD=4096;function Ub(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},processes:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a={},l=_D(e,r,t);for(let[p,g]of l){let f=vD(g);f!=null&&(o[p]=f.memoryBytes,f.cpuSeconds!=null&&(s[p]=f.cpuSeconds),a[p]="cgroup")}let d=e.filter(p=>a[p.worker_id]==null);if(d.length===0)return{rss:o,cpu_seconds:s,processes:i,sources:a};let c=PD(r,t);if(c.size===0)return{rss:o,cpu_seconds:s,processes:i,sources:a};let u=new Map;for(let p of c.values()){let g=u.get(p.ppid);g?g.push(p.pid):u.set(p.ppid,[p.pid])}for(let p of d){if(!c.has(p.pid))continue;let g=0,f=0,b=0,m=[p.pid],w=new Set;for(;m.length>0;){let T=m.pop();if(w.has(T))continue;w.add(T);let L=c.get(T);if(L){b+=1,g+=L.rssBytes,f+=L.cpuSeconds;for(let C of u.get(T)??[])m.push(C)}}o[p.worker_id]=g,s[p.worker_id]=f,i[p.worker_id]=b,a[p.worker_id]="process-tree"}return{rss:o,cpu_seconds:s,processes:i,sources:a}}var wD="/sys/fs/cgroup";function _D(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??wD,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=xD(s,r);for(let l of i)for(let d of a){let c=zn(d,l.unit);if(gD(zn(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function xD(e,t){let r=t.selfCgroupPath??ED(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(zn(e,s));let a=hD(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(zn(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function ED(){try{for(let e of Ja("/proc/self/cgroup","utf8").split(`
|
|
87
|
+
`))if(e.startsWith("0::"))return e.slice(3).trim()}catch{}return null}function vD(e){let t;try{t=Ja(zn(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:SD(e)}}function SD(e){let t;try{t=Ja(zn(e,"cpu.stat"),"utf8")}catch{return null}return TD(t)}function TD(e){for(let t of e.split(`
|
|
88
|
+
`)){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 PD(e,t){return t.procRoot!=null||e==="linux"?ID(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?DD(AD(t.psTable)):new Map}function AD(e){try{return(e??CD)()}catch{return""}}function CD(){return fD("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var OD=1024;function DD(e){let t=new Map;for(let r of e.split(`
|
|
89
|
+
`)){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=FD(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*OD,cpuSeconds:a})}return t}function FD(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 ID(e){let t=new Map,r;try{r=mD(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=Ja(zn(e,n,"stat"),"utf8")}catch{continue}let s=Ya(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*RD,cpuSeconds:s.cpuTicks/MD})}return t}var MD=100;function Ya(e){let t=e.lastIndexOf(")");if(t<0)return null;let r=Number(e.slice(0,e.indexOf(" "))),n=e.slice(t+1).trim().split(/\s+/),o=Number(n[1]),s=Number(n[2]),i=Number(n[3]),a=Number(n[11]),l=Number(n[12]),d=n[19],c=Number(n[21]);return![r,o,s,i].every(Number.isSafeInteger)||!Number.isFinite(c)||!Number.isFinite(a)||!Number.isFinite(l)||d==null||!/^\d+$/.test(d)||!Number.isSafeInteger(Number(d))?null:{pid:r,ppid:o,pgid:s,sid:i,starttime:d,rssPages:Math.max(0,c),cpuTicks:Math.max(0,a)+Math.max(0,l)}}var LD=["api","graphql"],c4=Uc(LD);var qb=100,Uo=2e4,jD=7*24*60*60*1e3,Su=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 Tu(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new Su(r.project_label,r.token_ref,t)}function Yb(e,t={now:new Date(0).toISOString()}){Zb(e);let r=t.closedWindowMs??jD,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(`
|
|
90
|
+
`),aliases:s,closed_since:o}}function $D(e,t,r){let n=Ho(t),o=Ho(n.data),s=Array.isArray(n.errors)?n.errors.map(Ho):[],i=KD(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=>zb(f.path,l)||zb(f.path,d));if(Qa(p)){let f=Jb(p.open_pull_requests),b=Jb(p.open_issues),m=VD(o[d]);if(f!=null&&b!=null&&m!=null)return{project_label:c.project_label,repository:u,outcome:"counted",counts:{open_pull_requests:f,open_issues:b,recently_closed:m,ready_queue:null,human_queue:null},detail:`counted ${u} for project ${JSON.stringify(c.project_label)}`}}return i.exhausted||e0(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: ${Qs(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 BD(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 Qb(e){if(e.projects.length===0)return BD(e.now);if(Tu(e.projects,e.hostTokenRef),e.transport.conditionalList)return await GD(e);let t=Yb(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return $D(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 ND={key:"redskilled repository activity poll",budget:"rest"};async function GD(e){Zb(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=Yb(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=[],p={ready_queue:null,human_queue:null};try{for(let[g,f,b]of c){let m=await o({cacheKey:`activity:${d}:${g}:${JSON.stringify(b)}`,route:f,parameters:b,operation:ND});i+=m.requestCount;let w=g==="open-prs"?m.data:m.data.filter(T=>!Qa(T.pull_request));g==="open-issues"&&l.queue_labels!=null&&(p=HD(w,l.queue_labels)),u.push(g==="recently-closed"?w.filter(T=>Qs(T.closed_at)>=n.closed_since).length:w.length),a=Kb(a,qD(m.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],...p},detail:`counted ${d} for project ${JSON.stringify(l.project_label)}`})}catch(g){let f=Js(g);a=Kb(a,{remaining:null,reset_at:null,exhausted:f,point_cost:null}),s.push({project_label:l.project_label,repository:d,outcome:f?"rate-limited":"unreachable",counts:null,detail:`the activity fetch failed before ${d} answered: ${g instanceof Error?g.message:String(g)}`})}}return{version:1,fetched_at:e.now,request_count:i,project_count:s.length,rate_limit:a,projects:s}}function Xb(e){let t=e.endpoint==null?void 0:WD(e.endpoint),r=hu({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 WD(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 HD(e,t){let r=(n,o)=>Array.isArray(n.labels)&&n.labels.some(s=>UD(s)===o);return{ready_queue:e.filter(n=>r(n,t.ready)).length,human_queue:e.filter(n=>r(n,t.human)).length}}function UD(e){return typeof e=="string"?e:Qa(e)?Qs(e.name):""}function qD(e){let t=Vb(e,"x-ratelimit-remaining"),r=Vb(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function Kb(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 Vb(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 Zb(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`);if(r.queue_labels!=null&&(r.queue_labels.ready===""||r.queue_labels.human===""))throw new Error(`project ${JSON.stringify(r.project_label)} declares an empty queue label: a label that names nothing would be counted as an empty queue, so state both label names or state neither`);t.add(r.project_label)}}function KD(e,t){let r=Ho(e),n=typeof r.remaining=="number"&&Number.isFinite(r.remaining)?r.remaining:null,o=typeof r.resetAt=="string"?r.resetAt:null,s=t.some(e0),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 e0(e){if(e==null)return!1;let t=Qs(e.type),r=Qs(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function zb(e,t){return Array.isArray(e)&&e.includes(t)}function Jb(e){let t=Ho(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function VD(e){let t=Ho(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function Ho(e){return Qa(e)?e:{}}function Qa(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Qs(e){return typeof e=="string"?e:""}var Pu=2,Au=Pu*Uo;function r0(e){let t=e.stalenessMs??Au,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 n0(e){if(!t0(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)&&t0(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function t0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var Cu=["open_pull_requests","open_issues","ready_queue","human_queue"],o0="this daemon polls no repository, so there are no remote counters to date";function s0(e){let t=e.stalenessMs??Au,r=e.activity;if(r==null||r.projects.length===0)return{version:1,threshold_ms:t,projects:[],reason:o0};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=r.projects.map(a=>zD(a,{fetchedAt:r.fetched_at,ageMs:s,threshold:t}));return{version:1,threshold_ms:t,projects:i,reason:s==null?"these counters carry no readable instant, so none of them can be presented as current":`every counter here was produced by the poll of ${r.fetched_at}, ${s}ms ago`}}function zD(e,t){let r={};for(let n of Cu)r[n]=YD(n,JD(e,n),e,t);return{project_label:e.project_label,repository:e.repository,outcome:e.outcome,counters:r}}function JD(e,t){let r=e.counts;if(r==null)return null;switch(t){case"open_pull_requests":return r.open_pull_requests;case"open_issues":return r.open_issues;case"ready_queue":return r.ready_queue;case"human_queue":return r.human_queue}}function YD(e,t,r,n){let o={name:e,value:null,fetched_at:null,age_ms:null,threshold_ms:n.threshold,stale:!1};if(t==null)return{...o,reason:r.outcome==="counted"?`this poll produced no ${e}, so it is absent rather than zero`:r.detail};if(n.ageMs==null)return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:null,threshold_ms:n.threshold,stale:!0,reason:`this ${e} carries no readable instant, so it cannot be presented as current`};let s=n.ageMs>n.threshold;return{name:e,value:t,fetched_at:n.fetchedAt,age_ms:n.ageMs,threshold_ms:n.threshold,stale:s,reason:s?`this ${e} is ${n.ageMs}ms old, past the ${n.threshold}ms window`:`counted ${n.ageMs}ms ago, within the ${n.threshold}ms window`}}function Ou(e){if(!Xa(e))return!1;let t=e;return t.version===1&&typeof t.threshold_ms=="number"&&typeof t.reason=="string"&&Array.isArray(t.projects)&&t.projects.every(QD)}function QD(e){if(!Xa(e))return!1;let t=e;if(typeof t.project_label!="string"||typeof t.repository!="string"||typeof t.outcome!="string"||!Xa(t.counters))return!1;let r=t.counters;return Cu.every(n=>XD(r[n]))}function XD(e){if(!Xa(e))return!1;let t=e;return typeof t.name=="string"&&(t.value===null||typeof t.value=="number")&&(t.fetched_at===null||typeof t.fetched_at=="string")&&(t.age_ms===null||typeof t.age_ms=="number")&&typeof t.threshold_ms=="number"&&typeof t.stale=="boolean"&&typeof t.reason=="string"}function Xa(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function a0(e,t){let r=[...e].sort((i,a)=>(Xs(a.ts)??0)-(Xs(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(i0),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=ZD(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:i0(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function i0(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 ZD(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===""||Xs(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=Xs(s.ts),a=Math.min(...o.map(d=>Xs(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 Du(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 Xs(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var l0=["logs","vitals","display"];function Fu(e,t){if(t===void 0)return e;let r=l0.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:e1,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:t1},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var e1={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},t1={last_line:null,published_at:null,source:null};var r1=3e4;function c0(e){let t=e.stalenessMs??r1,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=>o1(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=Ea(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:l1({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:a1(a),known_projects:i1(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:_u({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:r0({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),remote_counters:s0({activity:e.repositoryActivity??null,now:e.now,...e.activityStalenessMs===void 0?{}:{stalenessMs:e.activityStalenessMs}}),...e.deaths===void 0?{}:{deaths:a0(e.deaths,e.recentDeathLimit??4)},engine:n1(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function n1(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 o1(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=Ys(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:s1(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function s1(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 i1(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 a1(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 l1(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 Za(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(d1))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(c1))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||n0(t.repository_activity))&&(t.remote_counters===void 0||Ou(t.remote_counters))&&(t.github_balance===void 0||xu(t.github_balance))&&(t.deaths===void 0||Du(t.deaths))&&(t.engine===void 0||u1(t.engine))&&(t.metrics===void 0||Lh(t.metrics))}function d1(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 c1(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 u1(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 u0={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 p0(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var el={$schema:"https://tr.designtokens.org/format/2025.10/schema.json",$description:"RedDB design tokens \u2014 the canonical, machine-readable source of truth. DTCG 2025.10 (Design Tokens Format Module, first stable version). Hand-authored; tokens.css and tailwind-preset.js are build outputs of generators/build-tokens.mjs \u2014 never hand-edit them. Locked brand values: red #ff2056, ink #07080a, paper #f4f5f7 (from the marks, issues #13/#16); type Space Grotesk + JetBrains Mono (ADR 0001).",color:{$type:"color",$description:"Primitive palette (raw scale) and semantic roles (aliases). Feedback colours (success/warning/danger) are intentionally not published yet; issue #10 locked --ok #4ade80, --warn #fbbf24, and --danger #ff5470, with the rule that the accent never signals error.",red:{$description:"The brand accent. red.500 is the locked mark colour #ff2056; the other stops are derived by mixing toward white/black for hover, active, and on-light emphasis.","400":{$value:{colorSpace:"srgb",components:[1,.3882,.5373],hex:"#ff6389"}},"500":{$value:{colorSpace:"srgb",components:[1,.1255,.3373],hex:"#ff2056"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900"],failsOn:["color.neutral.800"]},asFill:{textPasses:["color.neutral.950"],textFails:["color.neutral.0"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.8196,.102,.2745],hex:"#d11a46"}},"700":{$value:{colorSpace:"srgb",components:[.6784,.0863,.2275],hex:"#ad163a"}}},neutral:{$description:"Cool-gray ramp on the ink\u2194paper axis. neutral.50 is the locked paper #f4f5f7; neutral.950 is the locked ink #07080a; intermediate stops are hand-tuned on the same hue.","0":{$value:{colorSpace:"srgb",components:[1,1,1],hex:"#ffffff"}},"50":{$value:{colorSpace:"srgb",components:[.9569,.9608,.9686],hex:"#f4f5f7"}},"100":{$value:{colorSpace:"srgb",components:[.9059,.9137,.9333],hex:"#e7e9ee"}},"200":{$value:{colorSpace:"srgb",components:[.8275,.8392,.8706],hex:"#d3d6de"}},"300":{$value:{colorSpace:"srgb",components:[.702,.7216,.7686],hex:"#b3b8c4"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"400":{$value:{colorSpace:"srgb",components:[.5451,.5686,.6314],hex:"#8b91a1"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:["color.neutral.950","color.neutral.900","color.neutral.800"],failsOn:[]}}}}},"500":{$value:{colorSpace:"srgb",components:[.4,.4275,.4941],hex:"#666d7e"},$extensions:{reddb:{contrastGuardrail:{normalText:{passesOn:[],failsOn:["color.neutral.950","color.neutral.900","color.neutral.800"]}}}}},"600":{$value:{colorSpace:"srgb",components:[.2902,.3176,.3843],hex:"#4a5162"}},"700":{$value:{colorSpace:"srgb",components:[.2,.2235,.2863],hex:"#333949"}},"800":{$value:{colorSpace:"srgb",components:[.1176,.1333,.1765],hex:"#1e222d"}},"900":{$value:{colorSpace:"srgb",components:[.0706,.0784,.1059],hex:"#12141b"}},"950":{$value:{colorSpace:"srgb",components:[.0275,.0314,.0392],hex:"#07080a"}}},brand:{$description:"Semantic brand roles. on-primary is the black R the mark sets on the red field.",primary:{$value:"{color.red.500}"},hover:{$value:"{color.red.600}"},active:{$value:"{color.red.700}"},"on-primary":{$value:"{color.neutral.950}"}},ink:{$value:"{color.neutral.950}",$description:"The near-black foreground; the brand is dark-first."},paper:{$value:"{color.neutral.50}",$description:"The off-white ground."},surface:{muted:{$value:"{color.neutral.100}"}},border:{subtle:{$value:"{color.neutral.200}"},strong:{$value:"{color.neutral.300}"}}},fontFamily:{$type:"fontFamily",$description:"Space Grotesk for display and body, JetBrains Mono for code (ADR 0001). Space Grotesk has no italic and no weight 300; <em> maps to weight 500 and italic exists only in the mono.",sans:{$value:["Space Grotesk","system-ui","-apple-system","Segoe UI","sans-serif"]},mono:{$value:["JetBrains Mono","ui-monospace","SFMono-Regular","Menlo","monospace"]}},fontWeight:{$type:"fontWeight",$description:"Weight 300 is excluded (dark-first: thin strokes lose weight to halation).",regular:{$value:400},medium:{$value:500},bold:{$value:700}},fontSize:{$type:"dimension",$description:"Modular scale, ~1.2 (minor third) from a 1rem base.",xs:{$value:{value:.75,unit:"rem"}},sm:{$value:{value:.875,unit:"rem"}},base:{$value:{value:1,unit:"rem"}},lg:{$value:{value:1.125,unit:"rem"}},xl:{$value:{value:1.25,unit:"rem"}},"2xl":{$value:{value:1.5,unit:"rem"}},"3xl":{$value:{value:1.875,unit:"rem"}},"4xl":{$value:{value:2.25,unit:"rem"}},"5xl":{$value:{value:3,unit:"rem"}},"6xl":{$value:{value:3.75,unit:"rem"}}},lineHeight:{$type:"number",$description:"Unitless multipliers.",tight:{$value:1.1},snug:{$value:1.25},normal:{$value:1.5},relaxed:{$value:1.65}},letterSpacing:{$type:"dimension",tight:{$value:{value:-.02,unit:"em"}},normal:{$value:{value:0,unit:"em"}},wide:{$value:{value:.04,unit:"em"}}},spacing:{$type:"dimension",$description:"4px base grid; 1 unit = 0.25rem.","0":{$value:{value:0,unit:"rem"}},px:{$value:{value:1,unit:"px"}},"0.5":{$value:{value:.125,unit:"rem"}},"1":{$value:{value:.25,unit:"rem"}},"2":{$value:{value:.5,unit:"rem"}},"3":{$value:{value:.75,unit:"rem"}},"4":{$value:{value:1,unit:"rem"}},"5":{$value:{value:1.25,unit:"rem"}},"6":{$value:{value:1.5,unit:"rem"}},"8":{$value:{value:2,unit:"rem"}},"10":{$value:{value:2.5,unit:"rem"}},"12":{$value:{value:3,unit:"rem"}},"16":{$value:{value:4,unit:"rem"}},"20":{$value:{value:5,unit:"rem"}},"24":{$value:{value:6,unit:"rem"}}},radius:{$type:"dimension",$description:"The symbol's clipped corner is a hard geometric cut, so brand chrome favours restrained radii.",none:{$value:{value:0,unit:"rem"}},sm:{$value:{value:.125,unit:"rem"}},md:{$value:{value:.375,unit:"rem"}},lg:{$value:{value:.5,unit:"rem"}},xl:{$value:{value:.75,unit:"rem"}},"2xl":{$value:{value:1,unit:"rem"}},full:{$value:{value:9999,unit:"px"}}},duration:{$type:"duration",instant:{$value:{value:75,unit:"ms"}},fast:{$value:{value:150,unit:"ms"}},normal:{$value:{value:250,unit:"ms"}},slow:{$value:{value:400,unit:"ms"}}},easing:{$type:"cubicBezier",$description:"Standard for most transitions; entrance decelerates, exit accelerates, emphasized for hero motion.",standard:{$value:[.4,0,.2,1]},entrance:{$value:[0,0,.2,1]},exit:{$value:[.4,0,1,1]},emphasized:{$value:[.2,0,0,1]}},shadow:{$type:"shadow",$description:"Elevation cast in ink at low alpha; tuned for a dark-first surface.",sm:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.12,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:1,unit:"px"},blur:{value:2,unit:"px"},spread:{value:0,unit:"px"}}},md:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.16,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:2,unit:"px"},blur:{value:8,unit:"px"},spread:{value:0,unit:"px"}}},lg:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.2,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:8,unit:"px"},blur:{value:24,unit:"px"},spread:{value:0,unit:"px"}}},xl:{$value:{color:{colorSpace:"srgb",components:[.0275,.0314,.0392],alpha:.24,hex:"#07080a"},offsetX:{value:0,unit:"px"},offsetY:{value:16,unit:"px"},blur:{value:48,unit:"px"},spread:{value:0,unit:"px"}}}}};var qo=class extends Error{name="BrandTokenError";constructor(t,r,n){super(n),this.code=t,this.tokenName=r}};function Zs(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}if(!Zs(el)||!Zs(el.color))throw new qo("TOKEN_MALFORMED","color","The vendored DTCG document has no color token group.");var f1=el;function g1(e){let t=f1;for(let r of e.split(".")){if(!Zs(t)||!(r in t))return;t=t[r]}return t}function Mu(e,t){return new qo("TOKEN_MALFORMED",e,`Brand color token "${e}" is malformed: ${t}`)}function f0(e,t,r){if(r.has(e))throw new qo("TOKEN_ALIAS_CYCLE",t,`Brand color token "${t}" contains an alias cycle at "${e}".`);let n=g1(e);if(n===void 0)throw new qo("TOKEN_NOT_FOUND",t,`Brand color token "${t}" was not found (resolved path "${e}").`);if(!Zs(n)||!("$value"in n))throw Mu(t,`"${e}" is not a token with a $value`);let o=n.$value;if(typeof o=="string"){let s=/^\{([^{}]+)\}$/.exec(o);if(s?.[1]===void 0)throw Mu(t,`"${e}" has an invalid alias`);return f0(s[1],t,new Set([...r,e]))}if(!Zs(o)||typeof o.hex!="string"||!/^#[0-9a-fA-F]{6}$/.test(o.hex))throw Mu(t,`"${e}" has no six-digit hex color value`);return{name:e.startsWith("color.")?e.slice(6):e,hex:o.hex.toLowerCase()}}function m1(e){let t=e.startsWith("color.")?e:`color.${e}`;return f0(t,e,new Set)}function h1(e){return m1(e).hex}function g0(e,t){let r=h1(e),n=Number.parseInt(r.slice(1,3),16),o=Number.parseInt(r.slice(3,5),16),s=Number.parseInt(r.slice(5,7),16);return`\x1B[${t};2;${n};${o};${s}m`}function Ar(e){return g0(e,38)}function Lu(e){return g0(e,48)}var m0=Lu("brand.primary"),h0=Ar("brand.on-primary"),tl=Lu("neutral.900"),rl=Ar("paper"),nl=Ar("paper"),ol="\x1B[39m",Xt=Ar("neutral.400"),N4=Ar("neutral.500"),y0=Ar("neutral.300"),b0=Ar("neutral.0"),k0=Ar("neutral.700"),R0=Ar("red.500"),Xr="\x1B[49m",Cr="\x1B[0m",ju="\x1B[1m",$u="\x1B[22m";var y1=/\x1b\[[0-9;]*m/g,b1=/(\x1b\[[0-9;]*m)/,k1=/^\x1b\[[0-9;]*m$/;function Jn(e){return e.replace(y1,"")}function R1(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Zt(e){return[...Jn(e)].length}function Xe(e,t){if(t<=0)return"";if(Zt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(b1))if(i!==""){if(k1.test(i)){s+=i,o=!R1(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?Cr:""}`;s+=a,n+=1}}return`${s}\u2026${o?Cr:""}`}function ei(e,t){return e+" ".repeat(Math.max(0,t-Zt(e)))}function Bu(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 cr(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 ti(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function yn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return ti(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 Or(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 Ko(e){if(e==null)return null;let t=e.replace(/[\u0000-\u001f\u007f]+/g," ").replace(/\s+/g," ").trim();return t===""?null:t}var w0=[{name:"open_pull_requests",key:"prs"},{name:"open_issues",key:"iss"},{name:"ready_queue",key:"rdy"},{name:"human_queue",key:"hmn"}];function ri(e,t){let r=sl(e,t),n=_0(e,t),o=[];for(let{name:s,key:i}of w0){if(i==="iss"){let l=n?.counts?.recently_closed;l!=null&&o.push(`cpr=${l}`)}let a=_1(i,r?.counters[s],w1(n,s));a!=null&&o.push(a)}return o}function Nu(e,t){let r=sl(e,t),n=_0(e,t);return{open_pull_requests:r?.counters.open_pull_requests.value??n?.counts?.open_pull_requests??null,recently_closed:n?.counts?.recently_closed??null,open_issues:r?.counters.open_issues.value??n?.counts?.open_issues??null,ready_queue:r?.counters.ready_queue.value??null,human_queue:r?.counters.human_queue.value??null,stale:n?.stale===!0}}function Gu(e,t){return sl(e,t)!=null}function sl(e,t){return t==null?null:(e.remote_counters?.projects??[]).find(r=>r.project_label===t)??null}function _0(e,t){return t==null?null:(e.repository_activity?.projects??[]).find(r=>r.project_label===t)??null}function w1(e,t){let r=e?.counts;return r==null?null:t==="open_pull_requests"?r.open_pull_requests:t==="open_issues"?r.open_issues:null}function _1(e,t,r){return t==null?r==null?null:`${e}=${r}`:t.value==null?null:`${e}=${t.value}${t.stale?`(${x1(t.age_ms)})`:""}`}function x1(e){return Or(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}var ni="!unregistered",Wu="!lapsed",oi="\u21E1",Dr="\u2020",Vo="\u25D0",zo="\u25EF",Hu="\u21B3",Uu="redskilled unreachable \u2014 Worker state unknown";function Jo(e,t){return t.mode==="global"?e.workers:t.project==null?[]:e.workers.filter(r=>r.project_label===t.project)}function il(e,t){return t.mode==="global"?e.projects:e.projects.filter(r=>r.project_label===t.project)}function si(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 qu(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 al(e,t){return e.startsWith(t)?e.slice(t.length):e}function Fr(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function Ku(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:Fr(al(n.cells.iss,"iss="),n.cells.phase),state:Fr(n.cells.bar,n.cells.elapsed,n.cells.eta),activity:Fr(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:Fr(al(n.cells.iss,"iss=")),runner:Fr(al(n.cells.run,"run=")),phase:Fr(n.cells.phase),progress:Fr(n.cells.bar),elapsed:Fr(n.cells.elapsed),eta:al(Fr(n.cells.eta),"eta="),activity:Fr(n.cells.hb,t[o]?.log.last_line)}))}}var bn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],Bt={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},E1=" ",x0="\u2588",v1="\u25B6",S1="\u2717",T1="\u2591",P1=new Set(["gate","push-pr","merge","cascade"]),A1=new Set(["requeue"]),C1="repair";function ii(e){return e.display?.origin===C1}function Yo(e,t=Bt){let r=si(e,t.project),n=Jo(e,t),o=n.slice(0,Math.max(0,Math.floor(t.maxRows))),s=o.map(b=>dl(b,t,e.generated_at)),i=H1(s),a=o.map((b,m)=>({worker_id:b.worker_id,project_label:b.project_label,mine:t.project!=null&&b.project_label===t.project,cells:s[m],line:Xe(U1(s[m],i),t.maxWidth)})),l=Ku(a,o,t.maxWidth),d=D1(e,t,n,r),c=n.length-o.length,u=[d.line,...$1(e,t),...a.map(b=>b.line)];c>0&&u.push(Xe(`\u2026 ${c} more Worker(s) \u2014 the row budget is short, not the host`,t.maxWidth)),u.push(...L1(e,t)),u.push(...M1(e,t));let p=Math.max(1,Math.floor(t.maxHeight??Bt.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Xe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:bn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function dl(e,t,r){let n=e.display??u0,o=ii(e),s=[n.runner,n.model==null?null:Bu(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&P1.has(n.phase),a=o||i||n.origin!=null&&A1.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:v0(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:Or(p0(e,r)),eta:n.eta==null?"":`eta=${Or(n.eta*1e3)}`,hb:O1(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":W1(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${ti(n.tokens)}`,ctx:n.context==null?"":`ctx=${ti(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 O1(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} ${Or(Math.max(0,n-r))}`}function v0(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 x0.repeat(Math.floor(t));let o=e.failed?S1:v1;return`${x0.repeat(n)}${o}${T1.repeat(Math.floor(t)-n-1)}`}function D1(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s=Nu(e,t.project),i={memory_used_fraction:e.host.ceiling_used_fraction,memory_used_bytes:e.host.consumption.memory_bytes,memory_ceiling_bytes:e.host.ceiling.memory_bytes,worker_count:e.host.worker_count,worker_ceiling:e.host.ceiling.worker_count,interactive_reservation:e.host.ceiling.interactive_reservation??0},a=G1(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=[F1(l??"host",c,d!=null&&d.current===!1?oi:"")];(n==="unregistered"||n==="name-only")&&g.push(ni),n==="lapsed"&&g.push(Wu);let f=p?.history_48h==null?null:j1(p.history_48h);f!=null&&g.push(Yn(f));let b=e.workers.filter(ii).length;if(b>0){let M=Math.max(0,e.host.worker_count-b);g.push(`${Yn(`workers=${M} coding +`)} ${tl}${rl}${b} repairing${Xr}${Xt}`)}else g.push(Yn(`wrk=${r.length}/${e.host.worker_count}`));let m=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Yn(`${m} reserve=${i.interactive_reservation} interactive`)),g.push(Yn(N1(i))),a!=null&&g.push(`${tl}${rl}${a}${Xr}${Xt}`);for(let M of ri(e,t.project))g.push(Yn(M));s.stale&&!Gu(e,t.project)&&g.push("!counts stale");let w=p==null?null:S0(p.hour),T=w==null?null:Yn(w);if(T!=null&&g.push(T),u!=null&&u.count>0&&u.latest!=null){let M=u.boot_loop,N=Ko(M?.latest_refusal);g.push(M==null?`${Dr}${u.count} ${u.latest.sender_class}`:`${Dr}${u.count} boot-refused \xD7${M.count} in ${I1(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 L=`${g.join(" \xB7 ")}${Cr}`,C=w!=null&&Zt(L)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${Cr}`:L;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Xe(C,t.maxWidth)}}function F1(e,t,r){return`${m0}${h0}\xBB ${ju}${e}${$u} v${t}${r}${Xr}${Xt}`}function Yn(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${nl}${n}${ol}${o}${Xt}`)}function I1(e){return Or(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function S0(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${yn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${yn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${yn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function M1(e,t){let r=e.github_balance;if(r==null)return[];if(r.posture!=="spent"&&r.posture!=="reserved")return[];let n=r.posture==="spent"?zo:Vo,o=r.age_ms==null?"":` (${Math.round(r.age_ms/1e3)}s ago)`;return[Xe(`${n} github budget ${r.posture}${o} \u2014 ${r.reason}`,t.maxWidth)]}function L1(e,t){let r=e.deaths;if(r==null||r.count<=0)return[];if(!t.showDeathDetails){let s=r.latest,i=s==null?`${r.count} posed death(s)`:`${r.count} posed death(s) \xB7 latest ${s.sender_class}/${s.confidence} ${s.last_phase}`;return[Xe(`${Dr} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Xe(`${Dr} ${s.kind} ${s.id} pid=${s.pid} ${s.sender_class}/${s.confidence} phase=${s.last_phase}`+(s.signal==null?"":` signal=${s.signal}`)+(s.evidence==null?"":` \u2014 ${s.evidence}`),t.maxWidth)),o=r.count-r.recent.length;return o>0&&n.push(Xe(`\u2026 ${o} more posed death(s) \u2014 the lane holds them all`,t.maxWidth)),n}function j1(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${yn(t)} ${Vu(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${yn(r)} ${Vu(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function $1(e,t){let r=e.metrics;return r==null?[Xe("48h throughput unavailable \u2014 daemon payload carries no live metrics",t.maxWidth)]:r.history_48h==null?[Xe("48h throughput unavailable \u2014 daemon payload predates hourly history",t.maxWidth)]:[E0("tokens",r.history_48h.tokens_per_hour,t),E0("Tickets",r.history_48h.tickets_per_hour,t)]}var ll=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function E0(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${yn(o)}/h ${Vu(t.trend)}`.trim();if(r.maxWidth<72)return Xe(`${n} 48h unavailable at width ${r.maxWidth} \u2014 48 hourly points need 72 columns`,r.maxWidth);let l=s.length===0?"":` \xB7 ${s.length} missing (${i??"unmeasured"})`;return Xe(`${n} 48h ${B1(t)} \xB7 ${a}${l}`,r.maxWidth)}function B1(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?ll[0]:ll[Math.min(ll.length-1,Math.floor(Math.max(0,n.value)/r*(ll.length-1)))]).join("")}function Vu(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function N1(e){if(e.memory_ceiling_bytes==null||e.memory_ceiling_bytes<=0)return`mem=${cr(e.memory_used_bytes)}`;let t=e.memory_used_fraction==null?"":` ${Math.round(e.memory_used_fraction*100)}%`;return`mem=${cr(e.memory_used_bytes)}/${cr(e.memory_ceiling_bytes)}${t}`}function G1(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 W1(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 H1(e){let t=Object.fromEntries(bn.map(r=>[r,0]));for(let r of e)for(let n of bn)t[n]=Math.max(t[n],Zt(r[n]));return t}function U1(e,t){let r=bn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>cl(o,ei(e[o],s===r.length-1?Zt(e[o]):t[o])));return`${Xr}${Xt}${n.join(E1)}${Cr}`}function cl(e,t){if(e==="wid")return`${ju}${t}${$u}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${tl}${rl}${t.trimEnd()}${Xr}${Xt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${y0}${n}`).replace("\u25B6",`${b0}\u25B6`).replace("\u2717",`${R0}\u2717`).replace(/░+/g,n=>`${k0}${n}`)+Xt;let r=t.indexOf("=");return r>0?`${nl}${t.slice(0,r+1)}${ol}${t.slice(r+1)}${Xt}`:t}function Ju(e){return Object.freeze({none:!0,reason:e})}function ul(){return{tool:"project_start",args:{runner:"claude",target:1},why:"register this project with the host so its queue can drain"}}function zu(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=>zu(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=zu(o,t);return Object.freeze(r)}finally{t.delete(e)}}function q1(e){let t=zu(e.args,new Set);return Object.freeze({tool:e.tool,args:t,why:e.why})}function Qo(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=q1(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 kn(e,t=Ge){let r=si(e,t.project),n=Jo(e,t),o=il(e,t),s=Q1(e,t.project,r),i=V1(e,t,n,r,s.prose),a=qu({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:rF(i,K1(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Zt(f)<=t.maxWidth)break}let d=Xe(l.line,t.maxWidth),c=l.detail==="workers"?Z1(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let b=t.verbose?eF(g,t):null;return b==null?[c.lines[f]]:[c.lines[f],b]}):[],p=n.length>0?"workers":"host";return{version:1,line:d,lines:[d,...u],verbose:t.verbose,mode:t.mode,project:t.project,project_match:r,...s.repair===void 0?{}:{repair:s.repair},...s.repair_reason===void 0?{}:{repair_reason:s.repair_reason},detail:l.detail,degraded:l.detail!==p||d!==l.line||c.degraded,stale:e.staleness.stale,generated_at:e.generated_at}}function Zu(e){let t=e.options??Ge,r=Xe(Uu,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 K1(e,t){return e==="projects"?t.map(tF):[]}function V1(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${Yu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(Xu(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${Yu(r,r.length)}`),s.push(Xu(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${Yu(r,r.length)}`),s.push(Xu(e,t)),s.push(ni)):s.push(o),t.mode!=="global"&&s.push(...ri(e,t.project)),s.push(T0(e));let a=z1(e);a!=null&&s.push(a);let l=J1(e);l!=null&&s.push(l),e.staleness.stale&&s.push(P0(e));let d=s.join(" ");return!i||Zt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,T0(e),e.staleness.stale?P0(e):null].filter(c=>c!=null).join(" ")}function Yu(e,t){let r=e.filter(ii).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function T0(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${oi}`}function z1(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${zo} quota spent`:t.posture==="reserved"?`${Vo} quota band`:null}function J1(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=Ko(o.latest_refusal);return`${Dr}${r} boot-refused \xD7${o.count} in ${Y1(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Dr}${r} ${n.sender_class}`}function Y1(e){return Or(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function Q1(e,t,r){if(r==="unregistered")return{prose:""};if(r==="orphaned")return Qo({state:`project unknown \u2014 ${t} is registered on a daemon this socket does not reach`,repair:Ju("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 Qo({state:`project unknown \u2014 ${t} was stopped${n==null?"":` at ${Qu(n.at)}`}`,repair:ul()})}if(r==="lapsed"){let n=e.lapsed_projects?.find(o=>o.project_label===t);if(n!=null){let o=n.registered_at==null?"":` (registered ${Qu(n.registered_at)})`;return Qo({state:`project unknown \u2014 ${t} lapsed at ${Qu(n.at)}${o}`,repair:ul()})}return Qo({state:`project unknown \u2014 ${t} lapsed`,repair:ul()})}return r==="unresolved"?Qo({state:"project unknown \u2014 this directory resolved to no project",repair:Ju("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function Qu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function Xu(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?`${cr(r)}/${cr(n)}`:cr(r)}function P0(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function X1(e,t,r,n){let o=r.map(s=>cl(s,ei(e[s],t[s])));return Xe(`${Xr}${Xt}${o.join(" ")}${Cr}`,n)}function Z1(e,t,r){let n=e.map(a=>dl(a,t,r)),o=bn.filter(a=>n.some(l=>Zt(l[a])>0)),s=[...o],i=A0(n,s);for(;s.length>1&&C0(i,s)>t.maxWidth;)s.pop(),i=A0(n,s);return{lines:n.map(a=>X1(a,i,s,t.maxWidth)),degraded:s.length<o.length||C0(i,s)>t.maxWidth}}function A0(e,t){let r=Object.fromEntries(bn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Zt(n[o]));return r}function C0(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function eF(e,t){let r=Ko(e.log.last_line);return r==null?null:Xe(` ${Hu} ${O0(e,t.mode)}: ${r}`,t.maxWidth)}function O0(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function tF(e){return`${e.project_label} ${e.worker_count}w ${cr(e.observed_rss_bytes)}`}function rF(e,t,r){return[e,...t].join(r)}var pl=1;async function Xo(e,t){return await ya(e,t,"redskilled daemon")}function Rn(e){return Number.isInteger(e)&&e>=0}function F0(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;if(t.version!==1||t.mode!=="report"&&t.mode!=="reap"||t.census===null||typeof t.census!="object"||Array.isArray(t.census)||t.actions===null||typeof t.actions!="object"||Array.isArray(t.actions))return!1;let r=t.census,n=t.actions;return r.version===1&&Rn(r.active_worker_units)&&Rn(r.daemon_held_workers)&&Rn(r.stamped_orphans)&&Rn(r.unstamped_suspects)&&Rn(r.dump_files)&&Rn(n.adopted)&&Rn(n.reaped)&&Rn(n.suspects)}function I0(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:pl,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:iF(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:Bh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:aF(e)}}function iF(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:Ia(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 aF(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 M0(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||pF(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&Nh(t.budget_accounting)&&(t.scope===void 0||ky(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(qs))&&(t.demand===void 0||ay(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(dF))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(cF))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(uF))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(lF))&&(t.upgrade===void 0||fF(t.upgrade))}function lF(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 dF(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 cF(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 uF(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 pF(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 fF(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||gF(t.major_hold))}function gF(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{readdir as jF,readFile as kl,readlink as $F}from"node:fs/promises";import{join as ai,normalize as BF,sep as NF}from"node:path";var mF=e=>new Promise(t=>setTimeout(t,e));function hF(e){try{return process.kill(e,0),!0}catch{return!1}}function yF(e){try{return process.kill(-e,0),!0}catch(t){return t.code==="EPERM"?!0:hF(e)}}function bF(e,t){try{process.kill(-e,t)}catch{try{process.kill(e,t)}catch{}}}function kF(e,t){try{process.kill(-e,t)}catch{}}var RF={isAlive:yF,signal:bF,signalGroup:kF,sleep:mF};async function fl(e,t={}){let r=t.io??RF,n=t.pollMs??100,o=t.graceTries??20,s=t.killTries??10;r.signal(e,"SIGTERM");for(let i=0;i<o;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}r.signal(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}if(!r.isAlive(e))return!0;r.signalGroup?.(e,"SIGKILL");for(let i=0;i<s;i+=1){if(!r.isAlive(e))return!0;await r.sleep(n)}return!r.isAlive(e)}import{spawnSync as yl}from"node:child_process";import{existsSync as sp}from"node:fs";import{delimiter as AF,join as q0}from"node:path";import{join as L0}from"node:path";import{existsSync as wF}from"node:fs";import{createRequire as _F}from"node:module";var j0="redskilled-job-object.node",Qn=100;function Zo(e){return{available:!1,reason:e}}function xF(e,t,r){return[L0(r,"prebuilds",`${e}-${t}`,j0),L0(r,"native","build","Release",j0)]}function $0(e={}){let t=e.platform??process.platform,r=e.arch??process.arch;if(t!=="win32")return Zo(`Job Object placement is the Windows backend (platform=${t}), so there is no native reach to load here`);let n=e.packageRoot??vF(),o=e.exists??wF,s=xF(t,r,n),i=s.find(d=>o(d));if(i==null)return Zo(`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??_F(import.meta.url),l;try{l=a(i)}catch(d){return Zo(`the Job Object addon at ${i} could not be loaded: ${d instanceof Error?d.message:String(d)}`)}return EF(l)?{available:!0,binding:l}:Zo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function EF(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function vF(){return new URL("..",import.meta.url).pathname}function B0(e){let t=e??{},r=[],n=SF(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<Qn?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 ${Qn}, 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 SF(e){return Ys({budget:e})}var gl=5,N0=19;function ep(e){return{available:!1,reason:e}}var TF="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 W0(e,t){let r=e??{},n=[],o;if(!t.canRenice)n.push("nice is not on this host, so no priority control was applied and the Worker competes with interactive work");else if(r.cpu_weight==null)o=gl;else if(r.cpu_weight<Qn){let a=Math.round(N0*(Qn-r.cpu_weight)/Qn);o=Math.min(N0,Math.max(gl,a))}else o=gl,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${Qn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${gl}`);let s=G0(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=G0(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:TF,...n.length>0?{note:n.join("; ")}:{}}}function tp(e){let{limits:t}=e,r=["ulimit -c 0"];return t?.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t?.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t?.nice!=null&&e.nice!=null?`exec ${PF(e.nice)} -n ${t.nice} "$@"`:'exec "$@"'),["-c",r.join(`
|
|
91
|
+
`),"--",e.command,...e.args]}function H0(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 rp(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 G0(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function PF(e){return`'${e.replace(/'/g,"'\\''")}'`}var K0="REDSKILLED_PLACEMENT",hl="red-worker",np="/bin/sh";function V0(e=process.env,t=process.platform){let r=ep(`POSIX shell placement is unavailable on platform=${t}`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:$0({platform:t}),posix:r};let n=Zo(`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:U0(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&sp(q0(o,"systemd","private"));return{platform:t,systemdRun:Q0("systemd-run",e),userSession:s,jobObjects:n,posix:U0(e)}}function U0(e){return sp(np)?{available:!0,shell:np,nice:Q0("nice",e)}:ep(`no POSIX shell was found at ${np}, so there is nothing to apply rlimits or priority in`)}function z0(e=process.env){let t=(e[K0]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function CF(e,t,r=hl){return J0(e,t,r).replace(/\.service$/,"")}function J0(e,t,r=hl){return`${op(r,"red-worker",24)}-${op(e,"project",32)}-${op(t,"worker",32)}.service`}function Y0(e){let t=[...e.args??[]],r={...e.budget??{},...e.budget?.memory_max==null&&e.memoryCeiling?.memory_max!=null?{memory_max:e.memoryCeiling.memory_max}:{}},n=r.memory_max??r.memory_high??null,o=r.memory_high!=null||r.memory_max!=null||r.cpu_weight!=null,s=e.target??{isolation:"transient-unit"},i=u=>{let p=e.probes.posix,g=e.probes.platform==="linux"&&p.available,f=e.probes.platform==="linux"&&!p.available?`${u}; core dumps are not capped because ${p.reason}`:u;return{isolated:!1,backend:"none",command:g?p.shell:e.command,args:g?tp({nice:null,command:e.command,args:t}):t,cwd:e.workspacePath,warning:f,budget:r,...n!=null?{memoryCeiling:n}:{},environment:ml(e,{scope:null,memory_ceiling:n,scope_degradation:f}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}}};if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${K0}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return DF(e,t,r,n,o,i);if(e.probes.platform==="darwin")return OF(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=J0(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`,"--property=LimitCORE=0"];e.pipeOutput===!0&&l.push("--pipe"),r.memory_high!=null&&l.push(`--property=MemoryHigh=${r.memory_high}`),r.memory_max!=null&&l.push(`--property=MemoryMax=${r.memory_max}`),r.cpu_weight!=null&&l.push(`--property=CPUWeight=${r.cpu_weight}`),r.max_processes!=null&&l.push(`--property=TasksMax=${r.max_processes}`);let d=ml(e,{scope:a,memory_ceiling:n,scope_degradation:null});for(let[u,p]of Object.entries({...e.env??{},...d}))l.push(`--setenv=${u}=${p}`);let c=rp(e.budget==null?void 0:{...e.budget,max_processes:void 0});return{isolated:!0,backend:"transient-unit",unit:a,command:e.probes.systemdRun,args:[...l,"--",e.command,...t],budget:r,...n!=null?{memoryCeiling:n}:{},environment:d,...c!=null?{budgetWarning:c}:{}}}function OF(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=W0(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=H0(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:tp({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:ml(e,{scope:null,memory_ceiling:n,scope_degradation:l}),...a?{budgetWarning:"the declared memory budget is enforced by the daemon's RSS sampling floor rather than by the kernel: "+i.memory_ceiling_reason}:{}}}function DF(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=B0(r),l=CF(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:ml(e,{scope:l,memory_ceiling:n,scope_degradation:null}),...FF(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,rp(e.budget))}}function ml(e,t){return um(t,e.bornAt==null?void 0:{worker_id:e.workerId,born_at:e.bornAt})}function FF(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function Q0(e,t){for(let r of(t.PATH??"").split(AF)){if(!r)continue;let n=q0(r,e);if(sp(n))return n}return null}function op(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}async function ip(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}async function X0(e){let t=e.workers.filter(n=>{if(e.reattached_worker_ids.has(n.worker_id))return!0;let o=Date.parse(n.started_at);return!Number.isFinite(o)||e.now_ms-o>=e.grace_ms});if(t.length===0)return[];let{dead:r}=await ip(t,e.probe);for(let n of r)await e.on_dead(n);return r}var Z0=3e4;function ek(e){return e.unit!=null&&e.unit!==""?IF(e.unit):Qe(e.pid)}function IF(e){let t=yl("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var MF="REDSKILLED_UNIT_DISCOVERY",bl="(unowned)";function tk(e){let t=yl("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 LF(e=process.env){let t=(e[MF]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function rk(e,t,r=process.env){return LF(r)&&e===t}function nk(e=hl){let t=yl("systemctl",["--user","list-units","--type=service","--state=active","--plain","--no-legend","--no-pager",`${e}-*.service`],{encoding:"utf8"});return t.error!=null||t.status!==0?[]:(t.stdout??"").split(`
|
|
92
|
+
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function ok(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:bl,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 sk(e){return e.project_label.trim()!==""?e:{...e,project_label:bl,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 ik(e){if(e.unit!=null&&e.unit!==""){let t=yl("systemctl",["--user","stop",e.unit],{stdio:"ignore"});return t.error==null&&t.status===0}return fl(e.pgid??e.pid)}var GF=10*6e4,WF=30*6e4,HF=100;async function UF(e,t){return await t.read_starttime(e.pid)!==e.starttime?{reaped:!1,reason:"leader-starttime-changed"}:(await t.after_verified?.(),await t.kill_group(e.pgid)===!0?{reaped:!0,reason:"orphan-reaped"}:{reaped:!1,reason:"group-survived"})}var qF=5*6e4;function KF(e=process.env){let t=(e.REDSKILLED_ORPHAN_REAPER??"").trim().toLowerCase();return t==="off"?"off":t==="report"?"report":"reap"}async function VF(e,t="/proc"){try{return Ya(await kl(ai(t,String(e),"stat"),"utf8"))?.starttime??null}catch{return null}}async function zF(e={}){let t=e.proc_root??"/proc";try{let r=Number((await kl(ai(t,"uptime"),"utf8")).trim().split(/\s+/)[0]);if(!Number.isFinite(r)||r<0)return[];let n=await jF(t),o=[];for(let s of n){if(!/^\d+$/.test(s))continue;let i;try{i=Ya(await kl(ai(t,s,"stat"),"utf8"))}catch{continue}if(i==null||i.ppid!==1)continue;let a=new Map,l;try{a=JF(await kl(ai(t,s,"environ"),"utf8"))}catch{}try{l=await $F(ai(t,s,"cwd"))}catch{}let d=ak(a.get("RED_WORKER_ID")),c=ak(a.get("RED_WORKER_BORN_AT"));o.push({pid:i.pid,ppid:i.ppid,pgid:i.pgid,sid:i.sid,starttime:i.starttime,age_ms:Math.max(0,(r-Number(i.starttime)/HF)*1e3),...d==null?{}:{worker_id:d},...c==null?{}:{born_at:c},...l==null?{}:{cwd:l},under_workers_lane:l!=null&&YF(l)})}return o}catch{return[]}}function JF(e){let t=new Map;for(let r of e.split("\0")){let n=r.indexOf("=");n<=0||t.set(r.slice(0,n),r.slice(n+1))}return t}function ak(e){let t=e?.trim();return t==null||t===""?void 0:t}function YF(e){let t=BF(e).split(NF).filter(Boolean);for(let r=0;r<t.length-2;r+=1)if(!(t[r]!==".red"||t[r+1]!=="tmp"))return["workers","go-workers","scout-workers"].includes(t[r+2]??"");return!1}function QF(e){let t=XF(e);return{census:{version:1,active_worker_units:new Set(e.active_worker_units).size,daemon_held_workers:new Set(e.held_worker_ids).size,stamped_orphans:t.filter(r=>r.kind==="reap").length,unstamped_suspects:t.filter(r=>r.kind==="suspect").length,dump_files:new Set(e.dump_files).size},candidates:t}}function XF(e){let t=[];for(let r of e.processes){if(!Number.isFinite(r.age_ms)||r.age_ms<0)continue;let n=r.worker_id?.trim();if(n==null||n===""){r.ppid===1&&r.under_workers_lane&&r.age_ms>=WF&&t.push({kind:"suspect",process:r,detail:`unstamped process ${r.pid} was reparented under a workers lane and is at least 30 minutes old; it will never be signalled`});continue}if(!(r.pid!==r.pgid||e.held_worker_ids.has(n))){if(e.live_birth_ids.has(n)){t.push({kind:"adopt",process:r,detail:`stamped Worker ${n} has a live birth but no daemon holder`});continue}r.age_ms<GF||t.push({kind:"reap",process:r,detail:`stamped Worker ${n} has no live birth and is at least 10 minutes old`})}}return t}var lk={adopted:0,reaped:0,suspects:0};function ck(e){let t=e.interval_ms??qF,r=e.mode??KF(),n=e.census??zF,o=e.read_starttime??VF,s=e.kill_group??fl,i=e.report??(f=>process.stderr.write(`redskilled: ${f}
|
|
93
|
+
`)),a,l=!1;async function d(){let f;try{f=await n()}catch{f=[]}let b=[],m=!0;if(f.length>0)try{b=await e.live_births()}catch{m=!1,i("orphan census withheld: the event lane could not prove which stamped Workers still have live births")}let w=new Map(b.map(C=>[C.worker_id,C])),[T,L]=await Promise.all([Promise.resolve(e.active_worker_units?.()??[]).catch(()=>[]),Promise.resolve(e.dump_files?.()??[]).catch(()=>[])]);return{selected:QF({processes:f,active_worker_units:T,held_worker_ids:new Set(e.held_worker_ids()),live_birth_ids:new Set(w.keys()),dump_files:L}),liveBirths:w,safeToAct:m}}async function c(){return e.authorized?(await d()).selected.census:{version:1,active_worker_units:0,daemon_held_workers:0,stamped_orphans:0,unstamped_suspects:0,dump_files:0}}async function u(){if(!e.authorized||r==="off"||l)return{...lk};l=!0;try{let{selected:f,liveBirths:b,safeToAct:m}=await d();if(!m)return{...lk};let w=f.candidates,T={adopted:0,reaped:0,suspects:0};for(let L of w){if(r==="report"){L.kind==="suspect"&&(T.suspects+=1),i(`${L.detail}; report mode withheld adoption and signalling`);continue}if(L.kind==="suspect"){T.suspects+=1,i(L.detail);continue}if(L.kind==="adopt"){await e.adopt(dk(L.process,e.clock,b.get(L.process.worker_id)),!1,L.detail),T.adopted+=1,i(L.detail);continue}let C=dk(L.process,e.clock),M=!1,N=await UF(L.process,{read_starttime:o,after_verified:async()=>{M=!0,await e.adopt(C,!0,`adopted stamped orphan before group teardown: ${L.detail}`),T.adopted+=1},kill_group:s});if(!N.reaped||!M){i(`${L.detail}; ${N.reason}`);continue}await e.record_reaped(C,`orphan-reaped: ${L.detail}`),T.reaped+=1}return T}finally{l=!1}}async function p(f){let b=await c();return{version:1,mode:f?"report":"reap",census:b,actions:f?{adopted:0,reaped:0,suspects:b.unstamped_suspects}:await u()}}function g(){a!=null||t<=0||r==="off"||!e.authorized||(a=setInterval(()=>void u().catch(()=>{}),t),a.unref())}return{sweep:u,census:c,reap:p,arm:g,stop:()=>{a!=null&&clearInterval(a),a=void 0}}}function dk(e,t,r){let n=Date.parse(t()),o=Number.isFinite(n)?new Date(Math.max(0,n-e.age_ms)).toISOString():t(),{unit:s,...i}=r??{};return{...i,worker_id:e.worker_id,project_label:r?.project_label??bl,pid:e.pid,pgid:e.pgid,proc_start_time:e.starttime,started_at:r?.started_at??e.born_at??o,workspace_path:e.cwd??r?.workspace_path??"",isolated:!1,warnings:[...r?.warnings??[],r==null?"adopted by the orphan reaper from the host process table: no daemon holder or live birth remained, so the owning project and budget are unknown":"adopted by the orphan reaper from a live event-lane birth whose daemon holder was missing; the process-table identity now anchors it"]}}import{randomUUID as ZF}from"node:crypto";import{mkdir as eI,readFile as tI,rename as rI,writeFile as nI}from"node:fs/promises";import{dirname as oI}from"node:path";function uk(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await tI(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=sI(s);return iI(i)?i.registrations:[]}async function o(s){await eI(oI(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${ZF()}.tmp`,a={version:1,registrations:[...s]};await nI(i,`${Ye(a,{keyedMapCollapse:!0})}
|
|
94
|
+
`,{encoding:"utf8",mode:384}),await rI(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 sI(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function iI(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(qs)}import{randomInt as cI}from"node:crypto";import{spawn as uI}from"node:child_process";import{appendFileSync as pI,mkdirSync as fI,readFileSync as gI}from"node:fs";import{dirname as mI}from"node:path";import{delimiter as pk,dirname as aI}from"node:path";function lI(e,t=pk){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function dI(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=aI(t);return r===""||r==="."?null:r}function fk(e,t=process.execPath,r=pk){let n=lI(e,r),o=dI(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}var es=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},er=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},ap="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",gk=4,hI=ap.length**gk;function li(e,t=cI){let r=new Set(e);for(let n=0;n<hI;n+=1){let o="h";for(let s=0;s<gk;s+=1)o+=ap[t(ap.length)];if(!r.has(o))return o}throw new es("redskilled exhausted the host Worker id space")}function yI(e){if(e==null||e.trim()==="")return{ready:!1};let t=mI(e);try{return fI(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})`}: ${lp(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function bI(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{pI(t,it().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
|
|
95
|
+
`);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 kI(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 es(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new es("redskilled worker spec args must be an array")}function RI(e){if(e==null)throw new er("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new er(e.reason,e)}function mk(e){let{spec:t,admission:r}=e;RI(r),kI(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||li(e.liveWorkerIds??[]),i=o(),a=e.probes??V0(n),l=wy(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),d=e.openLog===!1?{ready:!1}:yI(l),c=d.ready,u={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:fk(t.env?.PATH??n.PATH,e.execPath??process.execPath)},p=Y0({workerId:s,bornAt:i,projectLabel:t.project_label,workspacePath:t.workspace_path,command:t.command,args:t.args,budget:t.budget,...e.memoryCeiling!=null?{memoryCeiling:e.memoryCeiling}:{},target:t.placement,env:u,enabled:e.enabled??z0(n),probes:a,pipeOutput:c}),f=(e.spawnFn??uI)(p.command,p.args,{...p.cwd!=null?{cwd:p.cwd}:{},detached:!0,stdio:c?["ignore","pipe","pipe"]:"ignore",env:p.backend==="transient-unit"?{...n}:{...n,...u,...p.environment}});if(c&&l!=null&&bI(f,l),f.pid==null)throw f.once("error",()=>{}),new es(`redskilled could not spawn ${JSON.stringify(p.command)} for worker ${s}`);let b=wI(f.pid),m=p.job!=null?_I(p,a,f.pid):null;f.once("error",()=>{}),f.once("exit",(C,M)=>{try{m?.job?.close()}catch{}e.onExit?.(s,C,M)}),f.unref();let w=p.job!=null?m?.job!=null:p.isolated,T=[p.warning,m?.warning,p.budgetWarning,d.warning].filter(C=>C!=null);return{worker:{worker_id:s,project_label:t.project_label,pid:f.pid,pgid:f.pid,...b==null?{}:{proc_start_time:b},started_at:i,workspace_path:t.workspace_path,...c&&l!=null?{log_path:l}:{},isolated:w,...p.unit!=null?{unit:p.unit}:{},...t.budget!=null?{budget:t.budget}:{},...Object.keys(p.budget).length>0?{applied_budget:p.budget}:{},...p.memoryCeiling!=null?{memory_ceiling:p.memoryCeiling,memory_ceiling_reason:e.memoryCeiling?.reason??"this Worker's ceiling is the budget its client declared"}:{},warnings:T},admission:r,...e.forkSha==null||e.forkSha===""?{}:{fork_sha:e.forkSha},warnings:T,plan:p,child:f,...m?.job!=null?{job:m.job}:{}}}function wI(e){try{let t=gI(`/proc/${e}/stat`,"utf8"),r=t.lastIndexOf(")");if(r<0)return null;let n=t.slice(r+1).trim().split(/\s+/)[19];return n!=null&&/^\d+$/.test(n)?n:null}catch{return null}}function _I(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: ${lp(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)}: ${lp(i)}. ${o}`}}return{job:s}}function lp(e){return e instanceof Error?e.message:String(e)}async function xI(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 hk(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=Ca(i,{worker_id:li(e.liveWorkerIds()),slot:0,workspace_path:s.workspace_path},{project_label:s.project_label}),l=e.admit(a);if(!l.admitted)throw new er(l.reason,l);let d=e.start(a,l);if(t.add(d.worker_id),i.mode==="sync"){let c=i.deadline_ms,u=xI({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&&$o.includes(o)&&n(o,s),i&&(o==="worker-death"||o==="worker-budget-kill")&&t.delete(s.worker_id)},async waitForSettled(){for(;r.size>0;)await Promise.all(r)}}}var EI=24e4;var Y6=20*6e4;function bk(e,t){if(!Number.isFinite(t))return 0;let r=0;for(let n of e)Ia(n,t)==="renewing"&&(r+=1);return r}function kk(e){let t=yk(e.attendedMs,Uo),r=yk(e.unattendedMs,EI);return e.attended?t:Math.max(t,r)}function Rk(e){return e.pendingWindowMs==null||!Number.isFinite(e.pendingWindowMs)||!Number.isFinite(e.cadenceMs)?!1:e.cadenceMs<e.pendingWindowMs}function yk(e,t){return e!=null&&Number.isFinite(e)&&e>0?e:t}function wk(e){let t,r=null;function n(){return kk({attended:bk(e.registrations(),Date.parse(e.clock()))>0,attendedMs:e.attendedMs})}function o(s){e.stopping()||(r=s,t=setTimeout(()=>{t=void 0,r=null,e.poll().catch(()=>{}).finally(()=>{e.stopping()||o(n())})},s),t.unref())}return{arm(){e.stopping()||t!=null||!e.armed||e.attendedMs<=0||(e.poll().catch(()=>{}),o(n()))},cadenceMs:n,nudge(){if(e.stopping()||t==null)return;let s=n();Rk({pendingWindowMs:r,cadenceMs:s})&&(clearTimeout(t),t=void 0,o(s))},stop(){t!=null&&clearTimeout(t),t=void 0,r=null}}}async function _k(e){let t=e.explicit?.projects??vI(e.registrations);if(t.length===0)return null;let r=e.explicit?.transport??e.resolveHostTransport();return r==null?null:await Qb({projects:t,hostTokenRef:e.explicit?.hostTokenRef??"host",transport:r,...e.explicit?.closedWindowMs==null?{}:{closedWindowMs:e.explicit.closedWindowMs},now:e.now})}function vI(e){return[...e].flatMap(t=>{let r=t.queue_poll;return r==null?[]:[{project_label:t.project_label,owner:r.owner,name:r.repo,...r.counter_labels==null?{}:{queue_labels:r.counter_labels}}]}).sort((t,r)=>t.project_label.localeCompare(r.project_label))}var ui=50,cp=15e3,n8=2*cp;function SI(e,t=ui){if(up(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 Ek(e,t={}){let r=t.batchSize??ui;if(up(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(`
|
|
96
|
+
`),aliases:n}}function vk(e,t){let r=ci(t),n=ci(r.data),o=Array.isArray(r.errors)?r.errors.map(ci):[],s=OI(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=FI(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=>DI(u.path,a));return s.exhausted||Pk(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: ${dp(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function TI(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:ui,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function Sk(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:ui,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 Tk(e){if(e.projects.length===0)return TI(e.now);if(e.transport.conditionalList)return await AI(e);let t=e.batchSize??ui,r=SI(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=Ek(s,{batchSize:t});try{let a=await e.transport(i.query),l=vk(i,a);n.push(...l.projects),o=di(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=di(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 PI={key:"redskilled queue poll",budget:"rest"};async function AI(e){up(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=Ek([s],{batchSize:1}),d=vk(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=di(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:PI});o+=i.requestCount;let a=i.data.filter(l=>!Ak(l.pull_request)).length;n=di(n,CI(i.headers)),r.push({project_label:s.project_label,outcome:"counted",depth:a,detail:`project ${JSON.stringify(s.project_label)} has ${a} item(s) matching its selector`})}catch(i){let a=Js(i);n=di(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 up(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 di(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 CI(e){let t=xk(e,"x-ratelimit-remaining"),r=xk(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function xk(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 OI(e,t){let r=ci(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(Pk)||n===0}}function Pk(e){return e==null?!1:dp(e.type)==="RATE_LIMITED"||/rate limit/i.test(dp(e.message))}function DI(e,t){return Array.isArray(e)&&e.includes(t)}function FI(e){let t=ci(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function ci(e){return Ak(e)?e:{}}function Ak(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function dp(e){return typeof e=="string"?e:""}function Ck(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(II,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=MI?Math.max(t,3e4):o<=LI?Math.max(t,2e4):t}var II=1e5,MI=250,LI=1e3;var jI={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},$I=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],BI=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function Ok(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...jI};for(let n of $I){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of BI){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{execFile as NI}from"node:child_process";var GI="refs/heads/red-trunk";function pp(e){return`${e.workspace_path}\0${e.trunk.remote}\0${e.trunk.branch}`}function Dk(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 Rl(e,t){return new Promise((r,n)=>{NI("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function Fk(e){await Rl(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await Rl(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 Rl(e.workspace_path,["update-ref",GI,t]),t}async function Ik(e){let t=await Rl(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 WI,stat as HI}from"node:fs/promises";var UI=16*1024;async function Mk(e,t=UI){let r;try{r=(await HI(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await WI(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 qI(o)}function qI(e){let t=e.split(`
|
|
97
|
+
`);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 gM}from"node:child_process";import{existsSync as mM,readdirSync as hM}from"node:fs";import{delimiter as yM,dirname as rR,isAbsolute as bM,join as xl,resolve as kM}from"node:path";var KI="<version>";function wn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():KI;return[`npx -y -p ${Hn}@${n}`,e,...t].join(" ")}import{existsSync as VI,mkdirSync as zI,readFileSync as JI,renameSync as YI,statSync as QI,writeFileSync as XI}from"node:fs";import{homedir as jk}from"node:os";import{basename as Lk,join as $k,resolve as wl}from"node:path";function Nt(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 fp(e,t){let r=Nt(e),n=Nt(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var m8=4*60*60*1e3;function gp(e=jk()){return $k(Dt(e),"bundles")}function ZI(e){return`redskilled-${e}.bundle.min.mjs`}var eM=/^redskilled-(.+)\.bundle\.min\.mjs$/;function Xn(e,t={}){let r=e.entry;if(r==null||!/^redskilled(-.+)?\.bundle\.min\.mjs$/.test(Lk(r)))return e;let n=eM.exec(Lk(r))?.[1],o=t.version??n;if(o==null||Nt(o)===null||/[-+]/.test(o))return e;let s="homeDir"in t?t.homeDir:jk();if(s==null)return e;let i=t.exists??VI,a=gp(s),l=$k(a,ZI(o));if(wl(r)===wl(l))return e;try{if(!QI(Dt(s)).isDirectory())return e;if(!i(l)){zI(a,{recursive:!0,mode:448});let d=`${l}.${process.pid}.tmp`;XI(d,JI(r),{mode:493}),YI(d,l)}}catch{return e}return{...e,entry:l,args:e.args.map(d=>wl(d)===wl(r)?l:d)}}function pi(e){return e.HOME?.trim()||void 0}zr();zr();import{spawnSync as tM}from"node:child_process";import{randomUUID as Bk}from"node:crypto";import{mkdir as rM,rm as nM,writeFile as oM}from"node:fs/promises";import{existsSync as sM,mkdirSync as iM,readFileSync as aM,renameSync as Nk,writeFileSync as Gk}from"node:fs";import{homedir as lM}from"node:os";import{dirname as Wk,isAbsolute as Hk,join as fi}from"node:path";var tr="redskilled.service",mp="REDSKILLED_SUPERVISED",dM="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function cM(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||fi(e.HOME?.trim()||lM(),".config");return fi(t,"systemd","user")}function ts(e=process.env){return fi(cM(e),tr)}function Uk(e,t={}){let r=t.env??process.env,n=Xn(wa(t.override??{},t.entryLookup??{}),{homeDir:pi(r)}),o=[...n.args,...un(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:tr,unitPath:ts(r),command:n.command,args:o,text:uM(n.command,o,e)}}function uM(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${dM}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple","LimitCORE=0",`ExecStart=${[e,...t].map(hp).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${mp}=1"`,`Environment="REDSKILLED_SESSION=${Jk(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
|
|
98
|
+
`)}function qk(e=process.env){return fi(`${ts(e)}.d`,"10-current-entry.conf")}function Kk(e){return fi(`${e}.d`,"10-current-entry.conf")}function Vk(e,t,r={}){if(!Hk(e.command))throw new Error(`redskilled refused to write the relative command "${e.command}" into the supervisor drop-in: systemd resolves ExecStart with the manager's PATH, so a relative command dies with 203/EXEC on hosts whose node comes from a version manager (#3554)`);let n=qk(r.env??process.env),o=`${n}.${process.pid}.${Bk()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...un(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(hp).join(" ")}`,""].join(`
|
|
99
|
+
`);iM(Wk(n),{recursive:!0,mode:448}),Gk(o,i,{encoding:"utf8",mode:384}),Nk(o,n);let a=(r.run??gi)(["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 zk(e={}){let t=qk(e.env??process.env),r;try{r=(e.readFile??(u=>aM(u,"utf8")))(t)}catch{return{path:t,status:"absent"}}let n=pM(r),o=n?.[0];if(n==null||o==null)return{path:t,status:"unparsed"};if(Hk(o))return{path:t,status:"absolute",command:o};if(e.socketPath==null||!n.includes(e.socketPath))return{path:t,status:"foreign",command:o};let s=e.execPath??process.execPath,i=e.argv??process.argv.slice(1),a=i.length===0?void 0:Xn({command:s,args:i,entry:i[0]},{homeDir:pi(e.env??process.env),...e.version==null?{}:{version:e.version}}),d=["[Service]","ExecStart=",`ExecStart=${[s,...a?.args??i].map(hp).join(" ")}`,""].join(`
|
|
100
|
+
`),c=`${t}.${process.pid}.${Bk()}.tmp`;return Gk(c,d,{encoding:"utf8",mode:384}),Nk(c,t),(e.run??gi)(["systemctl","--user","daemon-reload"]),{path:t,status:"healed",command:o}}function pM(e){let t;for(let r of e.split(`
|
|
101
|
+
`)){let n=r.trim().startsWith("ExecStart=")?r.trim().slice(10).trim():void 0;n&&(t=n.split(/\s+/).map(o=>o.startsWith('"')&&o.endsWith('"')&&o.length>1?o.slice(1,-1).replace(/\\\\/g,"\\").replace(/\\"/g,'"'):o))}return t}function hp(e){return/[\s"'\\$%]/.test(e)?`"${Jk(e)}"`:e}function Jk(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function Yk(e,t={}){let r=t.writeFile??fM,n=t.removeFile??Zk,o=t.run??gi,s=[];return await r(e.unitPath,e.text),await n(Kk(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(_l("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(_l("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function Qk(e={}){let t=e.removeFile??Zk,r=e.run??gi,n=ts(e.env??process.env),o=[_l("disable",r,["systemctl","--user","disable","--now",tr])];return await t(n),await t(Kk(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(_l("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function Xk(e={}){let t=e.exists??sM,r=e.run??gi,n=ts(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",tr]).status===0,i=o&&r(["systemctl","--user","is-active",tr]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${tr} is installed and enabled but inactive`,fix:`systemctl --user restart ${tr}`}]:[];return{unitName:tr,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function _l(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 fM(e,t){await rM(Wk(e),{recursive:!0}),await oM(e,t,{encoding:"utf8",mode:420})}async function Zk(e){await nM(e,{force:!0})}function gi(e){let t=tM(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 eR=75,nR=9e5,tR="redskilled-replacement-entry-unresolved",RM="REDSKILLED_NO_REGISTRY_PROBE",oR="REDSKILLED_BORN_BY_REPLACEMENT";function sR(e=process.env){return e[oR]==="1"}function iR(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function aR(e){let t=e.running.trim();if(mi(t))return null;let r=e.newest?.trim()??"",n=Nt(r),o=Nt(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:wM(n.major,e.supervised)}}function wM(e,t){let r=`install the ${e}.x bundle (update this machine's plugin pin), then `;return t?`${r}re-point the unit and restart it: ${wn("red-skills-redskilled",["unit","install"])} && systemctl --user restart redskilled.service`:`${r}stop this daemon \u2014 the next client start resolves the newly installed bundle`}function lR(e){let t=e.running.trim();if(mi(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||Nt(r)===null?{act:"hold",reason:"published-unknown"}:fp(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function mi(e){let t=e.trim();return Nt(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function vl(e=process.env){return e[mp]==="1"}var El=class extends Error{code=tR;searched;constructor(t,r){super(`${tR}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled or resolves no absolute npx
|
|
100
102
|
searched:
|
|
101
103
|
${r.map(n=>` ${n}`).join(`
|
|
102
|
-
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function
|
|
103
|
-
`}function rI(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return At(t)}catch{return null}}}function nI(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 Nk(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??x0,i=e.refreshTrunk??J0,a=e.countBaseMovement??Y0,l=e.ceiling??ka();e.repositoryActivity!=null&&mu(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??Lk(),c=e.leaseStore??jk(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??wa(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??js(t.machineClaimPath,p,{clock:o});await iI(lI(t.socketPath),{recursive:!0,mode:448});let[f,y]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),m=Date.parse(o()),w=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(m)&&Number.isFinite(w)&&m-w>=Um&&await yc(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 B=await g.claim(u);if(!B.claimed)throw B.claim?.socket_path===t.socketPath?new Vt(t.socketPath):new Kr(g.claimPath,B.reason,B.claim);let C=await c.acquire(d);if(!C.acquired)throw await g.release(u).catch(()=>{}),new Vt(t.socketPath,C.lease);let M;try{M=await Jm(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??vh(t.eventLanePath),G=e.registrationIntentStore??n0(t.registrationIntentPath),I=e.liveness??S0,W=e.livenessGraceMs??v0,q=e.stopWorker??F0,oe=e.unitInventory??(()=>A0(t.machineClaimPath,Fo({machineIdHash:t.machineIdHash}))?C0():[]),ae=e.unitMainPid??P0,se=e.treeSampler??py,Z=e.readLogTail??Q0,pe=e.sampleMs??Hm,De=e.leaseRenewMs??hc,Ee=e.registrationSustainMs??qm,ke=e.publishedVersion??(b=>Tk(b)),Y=e.replaceCheckMs??kk,de=e.publishedProbeTimeoutMs??Gm,we=e.localPublishedEvidence??(b=>Pk(b,e.replacementIO?.env??process.env)),Oe=e.bornByReplacement??wk(),ve=e.replaceBootCheckMs??Wm,Re=e.supervised??gl(),Te=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??Bo,_e=e.githubBalance,Ie=e.queueDiscovery,at=Ie?.transport??fe?.transport,Nt=Ie?.unconfiguredReason??Vm,en=Ie?.intervalMs??Qu,tn=e.demandMs??15e3,go=e.demandBackoffMs??3e4,ce=new Map,Gt=new Map,ct=new Set,Ze=new Map,Rt=new Map,lt=[],ut=[],wt=e.deaths===void 0?void 0:[...e.deaths],_t=await G.read().catch(()=>[]),Gr=Date.parse(N),Pe=new Map,Le=new Map;for(let b of _t){let P=Date.parse(b.renew_by);!Number.isFinite(Gr)||!Number.isFinite(P)||P>=Gr?Pe.set(b.project_label,b):Gr-P<=b.renew_within_ms&&Le.set(b.project_label,b)}let J=E0({registration:b=>Pe.get(b),liveWorkerIds:()=>ce.keys(),admit:yo,start:(b,P)=>ws(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(()=>{})}),D=Promise.resolve();function R(b){let P=D.then(async()=>{await J.waitForSettled();let j=await b();return await J.waitForSettled(),j});return D=P.then(()=>{},()=>{}),P}let F=new Set,L={},$=null,K=null,X=null,xe=!1,je=0,$e=null,Mt="none",rn=null,kr=null,nn=null,Rr=null,xt=null,re=null,he=[],Be=[],Wt=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),Lt=null,et={},mo=!1,on,Pn,An,Ne,Cn,Dn,On,nr,Wr,Se=!1,sn=!1,wr=null,an=$0({poll:()=>$f(),registrations:()=>Pe.values(),clock:o,attendedMs:ie,armed:fe!=null&&fe.projects.length>0,stopping:()=>Se}),Mf,dd=new Promise(b=>{Mf=b});function ho(b){Lf(b);let P=Date.parse(b),j=zh(Pe.values(),P);for(let U of j.lapsed){Pe.delete(U.project_label);let z=xt?.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),cE(U,P)}return j.lapsed.length>0&&bo(),j.lapsed}function bo(){let b=new Map(Le);for(let[P,j]of Pe)b.set(P,j);G.replace([...b.values()]).catch(()=>{})}function cE(b,P){let j=Number.isFinite(P)?new Date(P).toISOString():b.renew_by;he.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`}),he.length>Fs&&he.splice(0,he.length-Fs)}function Lf(b){if(Pe.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=xt==null?Number.NaN:Date.parse(xt.fetched_at),z=new Map((xt?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...Pe.values()]){let Je=Number.isFinite(U)&&P-U<=le.renew_within_ms?z.get(le.project_label):void 0,ko=Cc(le,{now:b,...Je==null?{}:{queue:{outcome:Je.outcome,depth:Je.depth}},liveWorkers:j[le.project_label]??0});ko.registration!==le&&(Pe.set(le.project_label,ko.registration),ne=!0)}ne&&bo()}function jf(b){if(Le.size===0)return;let P=Date.parse(b);if(!Number.isFinite(P))return;let j=new Map((xt?.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),tt=Cc(ne,{now:b,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ce.values()].filter(Je=>Je.project_label===z).length});tt.verdict==="open-work"||tt.verdict==="live-worker"?(Pe.set(z,tt.registration),Le.delete(z),U=!0):tt.verdict==="drained"&&(Le.delete(z),U=!0)}U&&bo()}function Bi(){let b=o();return ho(b),t0({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:Wh(g.claimPath,p,u),workers:[...ce.values()],registrations:[...Pe.values()],demand:re,lapses:he,stops:Be,orphanedRegistrations:[...Wt.values()],birthLatches:Fh(et,Date.parse(b)),queue:xt,published:{version:K,checkedAt:X,newer:xe,replacement:Mt,newest:rn,majorHold:kr,checks:je,holdReason:$e}})}function Ni(){return Oy({hostState:Bi(),ceiling:l,rss:L,sampledAt:$,logLines:Object.fromEntries(Ze),displays:Object.fromEntries(Rt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:nn,activityStalenessMs:hu*an.cadenceMs(),githubBalance:Rr,...wt===void 0?{}:{deaths:wt},metrics:oh({observations:lt,outcomes:ut,now:o()})})}function uE(b,P){let j=ih(lt,b,P,o());lt=j.observations,H.recordWorker(j.record).catch(()=>{})}function pE(b){ut=Nn([...ut,b],P=>P.ts,{now:o()})}async function $f(){return fe==null||fe.projects.length===0?null:(nn=await ky({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),nn)}async function Bf(){return _e==null?null:(Rr=await au({transport:_e.transport,now:o()}),Rr)}function fE(){if(Se||nr!=null||_e==null)return;let b=()=>{nr=void 0,Bf().catch(()=>{}).then(()=>{if(Se)return;let P=_e.intervalMsOverride??Ga(Rr??gE(),{now:o()});nr=setTimeout(b,P),nr.unref()})};b()}function gE(){return Na(o())}function mE(){if(!(at!=null||Ie?.armTransport==null))try{let b=Ie.armTransport();if(b.transport!=null){at=b.transport;return}b.unconfiguredReason!=null&&(Nt=b.unconfiguredReason)}catch(b){Nt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function Nf(){let b=o();ho(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,...Pe]).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(mE(),at==null)return xt=W0(U,b,Nt),xt;xt=await H0({projects:U,transport:at,now:b,...Ie?.batchSize==null?{}:{batchSize:Ie.batchSize}});let z=o();return jf(z),Lf(z),xt}async function Gf(){let b=o();if(mo)return re??Ah(b);mo=!0;try{await ud().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 xt?.projects??[])j[be.project_label]=be.depth;let U=Date.parse(b),z=Number.isFinite(U)?U:0;for(let[be,Et]of Object.entries(et)){if(Et.probeWorkerId==null)continue;let Vi=ce.get(Et.probeWorkerId);Vi!=null&&z-Date.parse(Vi.started_at)>=6e4&&(et[be]=vc())}let ne=Ph({projects:[...Pe.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:Lt,birthHealth:et}),le=[],tt=new Map,Je=null;for(let be of ne.births){let Et,Vi=ti(ce.keys()),Ro=Pe.get(be.project_label),zi=xa({argv:be.argv,...Ro?.env==null?{}:{env:Ro.env},...Ro?.log_path==null?{}:{log_path:Ro.log_path}},{worker_id:Vi,slot:be.index,workspace_path:be.workspace_path},{project_label:be.project_label});try{if(Ro?.trunk==null)Et=await R(()=>ws(zi));else{let Hr={workspace_path:be.workspace_path,trunk:Ro.trunk},_s=yo(zi);if(!_s.admitted)throw new Xt(_s.reason,_s);let ng=Zu(Hr),Ji=tt.get(ng);Ji==null&&(Ji=cd(Hr),tt.set(ng,Ji)),Et=await R(()=>zf(zi,Hr,Ji,_s))}}catch(Hr){Je=Hr instanceof Error?Hr.message:String(Hr),Hr instanceof Xt&&Hr.admission?.verdict==="refused-unreachable-trunk-remote"||(Lt=(Number.isFinite(U)?U:Date.now())+go);break}le.push({project_label:be.project_label,worker_id:Et.worker.worker_id,pid:Et.worker.pid,...Et.fork_sha==null?{}:{fork_sha:Et.fork_sha},warnings:zi.log_path==null?[...Et.warnings,`project ${JSON.stringify(be.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(Et.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:Et.warnings});let gd=et[be.project_label];gd?.haltUntilMs!=null&&z>=gd.haltUntilMs&&(et[be.project_label]=Oh(gd,Et.worker.worker_id))}Je==null&&ne.births.length>0&&(Lt=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 Et=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:Et}).catch(()=>{})}return re={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Je,retry_after:Lt==null?null:new Date(Lt).toISOString(),projects:ne.intents},re}finally{mo=!1}}function hE(b){return yn(Ni(),{...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 bE(b){return qo(Ni(),{mode:b?.mode??jt.mode,project:b?.project??jt.project,maxWidth:b?.max_width??jt.maxWidth,maxRows:b?.max_rows??jt.maxRows,maxHeight:b?.max_height??jt.maxHeight,showDeathDetails:b?.show_death_details??jt.showDeathDetails})}function Fn(b,P,j){return Xh({op:b,sessionProject:P??null,targetProject:j})}async function yE(b){let P=ce.get(b.worker_id),j=Fn(Qh(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 xE(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 Gi(b){ce.delete(b),ct.delete(b),Ze.delete(b),Rt.delete(b)}function Wf(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:V0(b.display);if(z!=null){let ne=Rt.get(b.worker_id)?.display,le={display:z,published_at:U};Rt.set(b.worker_id,le),uE(le,P),(z.phase!==ne?.phase||z.step!==ne?.step)&&Ht("worker-activity",P,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&Ht("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 kE(b,P,j){let U=`exit code=${P??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await wE(b)){_E(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:bc(await Z(b.log_path).catch(()=>null));Gi(b.worker_id),Ht("worker-death",b,z==null?U:`session-error: ${z}`,{exitCode:P,signal:j,refusal:z}),pt()}function RE(b,P){if(!Number.isFinite(P)||P<0){et[b]=Ls;return}let j=et[b]??Ls,U=Dh(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()}
|
|
104
|
-
`)}function Hf(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]=vc(),{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 wE(b){try{return await I(b)===!0}catch{return!1}}function _E(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 Uf(b,P){let j=Fn("project-register",P,b.project_label);if(!j.permitted)throw new Error(j.reason);let U=o();ho(U);let z=Kh(b,{now:U,held:Pe.get(b.project_label)});return Pe.set(z.project_label,z),bo(),an.nudge(),Vf(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 qf(b,P={}){let j=Fn("project-renew",P.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let U=o();ho(U);let z=Pe.get(b);if(z==null){if(Wt.has(b))throw new Gn(b,{kind:"orphaned"});let le=[...Be].reverse().find(Je=>Je.project_label===b);if(le!=null)throw new Gn(b,{kind:"stopped",at:le.at});let tt=[...he].reverse().find(Je=>Je.project_label===b);throw tt!=null?new Gn(b,{kind:"lapsed",at:tt.at,...tt.registered_at==null?{}:{registered_at:tt.registered_at}}):new Gn(b)}let ne=Vh(z,{now:U,...P.renewWithinMs==null?{}:{renew_within_ms:P.renewWithinMs},...P.launch==null?{}:{launch:P.launch}});return Pe.set(ne.project_label,ne),bo(),an.nudge(),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 Kf(b,P){let j=Fn("project-deregister",P,b);if(!j.permitted)throw new Error(j.reason);let U=Pe.get(b)??Le.get(b),z=Pe.delete(b),ne=Le.delete(b),le=z||ne;if(U!=null){let tt=`redskilled released the registration for project ${JSON.stringify(b)}`;Vf(b),Be.push({project_label:b,registered_at:U.registered_at,at:o(),detail:tt}),Be.length>Fs&&Be.splice(0,Be.length-Fs)}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 Vf(b){Le.delete(b);for(let P=he.length-1;P>=0;P-=1)he[P].project_label===b&&he.splice(P,1);for(let P=Be.length-1;P>=0;P-=1)Be[P].project_label===b&&Be.splice(P,1);Wt.delete(b)}async function xE(b,P){try{await q(b)}catch{}return Gi(b.worker_id),Ht("worker-death",b,P),pt(),!0}function yo(b){return bh({ceiling:l,workers:[...ce.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function cd(b){let P=Zu(b),j=Gt.get(P);if(j!=null)return j;let U=i(b).finally(()=>{Gt.get(P)===U&&Gt.delete(P)});return Gt.set(P,U),U}async function zf(b,P,j,U){let z=U??yo(b);if(!z.admitted)throw new Xt(z.reason,z);let ne;try{ne=await(j??cd(P))}catch(tt){let Je=z0(z,P,tt);throw new Xt(Je.reason,Je)}let le=yo(b);if(!le.admitted)throw new Xt(le.reason,le);return ws(b,{admission:le,forkSha:ne})}function ws(b,P={}){let j=yh({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:(tt,Je,ko)=>{let be=ce.get(tt);if(be==null){pt();return}kE(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),Ht("worker-birth",ne,null,{admissionVerdict:P.admission?.verdict??U.admission.verdict}),pt(),le}function Ht(b,P,j,U={}){if(Se)return;let z=o(),ne={kind:b,worker:P,ts:z,detail:j,...U};(b==="worker-death"||b==="worker-budget-kill")&&(pE({worker_id:P.worker_id,ts:z,outcome:b}),Jf(Ra(ne),{startedAt:P.started_at,...U.refusal==null?{}:{refusal:U.refusal}}),RE(P.project_label,Date.parse(z)-Date.parse(P.started_at))),H.recordWorker(ne).catch(()=>{}),J.onEvent(b,P)}function Jf(b,P={}){let j=Km(b,P);if(j==null)return;let U=[j,...(wt??[]).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));wt=Nn(U,z=>z.ts,{now:o()})}async function ud(){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 Ju(P,I);for(let U of j)Gi(U.worker_id),Ht("worker-death",U,"the host no longer confirms this Worker");return j.length>0&&pt(),j}async function Yf(b,P){let j=ce.get(b);if(!j)return!1;try{await q(j)}catch{}return Gi(b),Ht("worker-budget-kill",j,P),pt(),!0}async function Qf(){let b=[...ce.values()];if(b.length===0)return[];let P;try{P=await se(b)}catch{return[]}let j=P.rss;L=j,$=o(),EE(P.cpu_seconds,$);let{terminations:U}=uy({workers:b,rss:j}),z=[];for(let ne of U)await Yf(ne.worker_id,ne.reason)&&z.push(ne);return z}function EE(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 vE(){try{return de<=0?await ke(r):await new Promise(b=>{let P=setTimeout(()=>b(pd()),de);P.unref(),ke(r).then(j=>{clearTimeout(P),b(j)},()=>{clearTimeout(P),b(pd())})})}catch{return pd()}}function pd(){try{return we(r)}catch{return null}}async function Xf(){if(li(r))return je+=1,X=o(),$e="local-build",{act:"hold",reason:"local-build"};let b=_k(await vE()),P=b.version;K=P,rn=b.newest??null,X=o(),kr=xk({running:r,newest:rn,supervised:Re});let j=Ek({running:r,published:P,supervised:Re});return xe=j.act==="replace",je+=1,$e=j.act==="hold"?j.reason:null,Mt!=="in-progress"&&(Mt=j.act==="replace"?"pending":"none"),j}async function Wi(){let b=await Xf();if(b.act!=="replace"||Mt==="in-progress")return b;let P=vk(b,Te,t,n);return Mt="in-progress",await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Ui({reason:"replaced"}),Sk(P,t,{...n==null?{}:{idleMs:n},io:Te}),b}function SE(){Se||Dn!=null||Y<=0||(!Oe&&ve>0&&(On=setTimeout(()=>{Wi().catch(()=>{})},ve),On.unref()),Dn=setInterval(()=>{Wi().catch(()=>{})},Y),Dn.unref())}async function Zf(){return await c.renew(d).catch(()=>null)}function TE(){Se||An!=null||De<=0||(An=setInterval(()=>{Zf()},De),An.unref())}function PE(){Se||Ne!=null||Ee<=0||(Ne=setInterval(()=>{ho(o())},Ee),Ne.unref())}function AE(){Se||Pn!=null||pe<=0||(Pn=setInterval(()=>{Qf().catch(()=>{})},pe),Pn.unref())}function CE(){if(Se||Wr!=null||en<=0)return;let b=P=>{Wr=setTimeout(()=>{Wr=void 0,eg().then(()=>Nf()).catch(()=>{}).finally(()=>{if(Se)return;let j=Date.parse(o());b(K0(xt,en,Number.isFinite(j)?j:Date.now()))})},P),Wr.unref()};b(en)}async function eg(){await Promise.allSettled([...Pe.values()].filter(b=>b.trunk!=null).map(async b=>{let P=await cd({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)&&Ht("worker-drift",le,null,{baseHeadSha:P,baseCommitsAhead:z})}))}))}function DE(){Se||Cn!=null||tn<=0||(Cn=setInterval(()=>{Gf().catch(()=>{})},tn),Cn.unref())}function pt(){Se||(on&&clearTimeout(on),on=setTimeout(()=>{ud().catch(()=>{}).then(()=>tg())},n),on.unref())}function tg(){return ce.size>0?(pt(),"held-by-workers"):(ho(o()),Pe.size>0?(pt(),"held-by-registrations"):(OE(),"exited"))}async function OE(){if(!li(r)){if((await Wi().catch(()=>null))?.act==="replace"||sn||Se)return;if(ce.size>0||Pe.size>0){pt();return}}await Ui({reason:"idle"})}function Hi(b){return Mh({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ce.values()],projects:[...Pe.keys()]})}function rg(b){if(wr!=null)return wr;let P=b.reason??"requested",j=b.note?.trim();return wr=H.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:P,detail:j==null||j===""?Hi(P).detail:`${Hi(P).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),wr}async function Ui(b={}){if(sn)return await dd;sn=!0,await rg(b),Se=!0,on&&clearTimeout(on),Pn&&clearInterval(Pn),An&&clearInterval(An),Ne&&clearInterval(Ne),Dn&&clearInterval(Dn),On&&clearTimeout(On),an.stop(),nr&&clearTimeout(nr),Wr&&clearTimeout(Wr),Cn&&clearInterval(Cn),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 aI(t.socketPath,{force:!0}),Mf(),await dd}let qi=await H.read().catch(()=>[]),Ki=new Map;for(let b of qi){if(b.event==="worker-birth"){Ki.set(b.worker_id,b.ts);continue}let P=bc(b.detail);Jf(b,{...Ki.get(b.worker_id)==null?{}:{startedAt:Ki.get(b.worker_id)},...P==null?{}:{refusal:P}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Ki.delete(b.worker_id)}ut=Nn(qi.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=ah(qi,o());let FE=Ec(qi),fd=await Ju(FE,I);for(let b of fd.alive){let P=O0(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 fd.dead)Ht("worker-death",b,"the Worker ended while no daemon was watching");let IE=D0({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ce.values()],mainPid:ae,now:N});for(let b of IE)ce.set(b.worker_id,b),ct.add(b.worker_id),Ht("worker-birth",b,"adopted from an active unit with no birth on this lane");jf(o());for(let b of fd.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(),Ym(b,async(P,j)=>{pt();let U=await ME(P);j(U),P.op==="shutdown"&&setImmediate(()=>void Ui({reason:"requested"}).catch(()=>{}))})});async function ME(b){try{if(b.op==="ping")return{id:b.id,ok:!0,value:{pong:!0,protocol_version:ol,daemon_version:r,pid:d.pid}};if(b.op==="host-state")return{id:b.id,ok:!0,value:Bi()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:wu(Ni(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:hE(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:bE(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:Wf(b.heartbeat)};if(b.op==="project-register"){let j=Uf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=qf(b.project_label,{...b.session_project==null?{}:{sessionProject:b.session_project},...b.renew_within_ms==null?{}:{renewWithinMs:b.renew_within_ms},...b.launch==null?{}:{launch:b.launch}});return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-deregister"){let j=Kf(b.project_label,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-reset")return{id:b.id,ok:!0,value:Hf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await yE(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 R(()=>b.spec.trunk==null?ws(b.spec):zf(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=Hi("requested");return await rg({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let P=b;return{id:P.id??Bk(),ok:!1,error:`unsupported redskilled op: ${P.op??"unknown"}`}}catch(P){return{id:b.id??Bk(),ok:!1,error:P instanceof Error?P.message:String(P)}}}return pt(),AE(),TE(),PE(),SE(),an.arm(),fE(),CE(),DE(),{socketPath:t.socketPath,lease:C.lease,startedAt:N,closed:dd,startWorker:ws,admit:yo,ceiling:()=>l,killWorkerOverBudget:Yf,sampleMemoryBudgets:Qf,renewLease:Zf,pollRepositoryActivity:$f,pollGithubBalance:Bf,githubBalance:()=>Rr,pollQueueDiscovery:Nf,queueDiscovery:()=>xt,driveDemand:Gf,demand:()=>re,sweepWorkerLiveness:ud,publishWorkerHeartbeat:Wf,reattached:()=>[...ct].map(b=>ce.get(b)).filter(b=>b!=null),flushEvents:async()=>{await D,await J.waitForSettled(),await H.flush()},trackWorker(b){ce.set(b.worker_id,b),Ht("worker-birth",b,null),pt()},releaseWorker(b){let P=ce.get(b),j=ce.delete(b);return ct.delete(b),Ze.delete(b),Rt.delete(b),P&&Ht("worker-death",P,"released by the daemon"),pt(),j},workerCount:()=>ce.size,registerProject:Uf,renewProject:qf,resetProjectBirthBreaker:Hf,deregisterProject:Kf,registrations:()=>Bi().registrations??[],hostState:Bi,refreshRegisteredTrunks:eg,statuslinePayload:Ni,evaluateIdle:tg,observePublishedVersion:Xf,checkForReplacement:Wi,stopReport:Hi,stop:Ui}}function ap(e){let t=e.socketPath,r=dI(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 ${Gk(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 lp(e){return`${e.reason} ${e.repair}`}function dI(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:cI(t.acquired_at,e.now??new Date().toISOString())}}function cI(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 Gk(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 uI}from"node:child_process";import{existsSync as pI}from"node:fs";import{basename as Wk,dirname as fI,join as Hk}from"node:path";async function Xo(e){let r=await js(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==wa().uid||!Ye(r.pid))return{paths:e,joined:!1};let n=fI(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:Hk(n,Wk(e.lockPath)),leasePath:Hk(n,Wk(e.leasePath))}}}async function Uk(e){let r=await js(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 Kr(e.machineClaimPath,"held",r)}async function qk(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[Pc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Fo({env:n,machineIdHash:e.machineIdHash}))||!(o??pI(Yo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=uI("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 gI(e,t,r),!0}async function gI(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await Xo(e);if(await zt(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))}}qr();var cp=1e4,Rn=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"?`. ${lp(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},dp=class extends Rn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},di=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function hl(e,t={}){let r=t.answers??await zt(e.socketPath),n=await Qo(e.leasePath).catch(()=>{});return ap({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Ye(n.pid)})}async function up(e,t={}){let r=await Xo(e);try{let n=await yI(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Kr||n instanceof Rn)throw n;let o=await hl(r.paths).catch(()=>{});throw new Rn(r.paths.socketPath,n,o)}}async function yI(e,t){if(await hI(bI(e.socketPath),{recursive:!0,mode:448}),await zt(e.socketPath))return"already-running";await Uk(e);let r=await RI(e,t);if(r!=null)return r;if(await qk(e,t,cp))return"joined";let n=await Pm(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??kI});if(!n.acquired)return await Kk(e,t,void 0,n),"joined";try{if(await zt(e.socketPath))return"already-running";let o=await _I(e,t);return await Kk(e,t,o),"spawned"}finally{await Am(n)}}function kI(e){process.stderr.write(`redskilled: reaped the spawn lock ${JSON.stringify(e.lockPath)} (${e.reason}, ${Math.round(e.ageMs/1e3)}s old, holder ${e.holder==null?"unnamed":`pid ${e.holder.pid}`}) and went on to spawn
|
|
105
|
-
`)}async function
|
|
106
|
-
`)}import{chmod as
|
|
107
|
-
`)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return
|
|
104
|
+
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function _M(e,t={}){let r=t.env??process.env,n=t.exists??mM,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=pi(r),d=[];l!=null&&d.push([xl(gp(l),i),"stable-home"]),d.push([xl(Ra(r),i),"bundle-cache"]),s&&d.push([xl(rR(kM(s)),i),"caller-sibling-bundle"]);for(let[u,p]of d)if(a.push(u),n(u))return{...Xn({command:o,args:[u],entry:u},{version:e,homeDir:l,exists:n}),version:e,source:p,searched:a};if(r.RED_SKILLS_NO_PINNED_DISPATCH==="1")throw new El(e,a);let c=xM(r,n,o,a);if(c==null)throw new El(e,a);return{command:c,args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function xM(e,t,r,n){let o=e.RED_SKILLS_NPX?.trim();if(o&&bM(o))return o;let s=process.platform==="win32"?[o||"npx.cmd","npx.cmd","npx.exe","npx"]:[o||"npx"],i=[rR(r),...(e.PATH??"").split(yM).filter(a=>a.length>0)];for(let a of new Set(s))for(let l of i){let d=xl(l,a);if(n.push(d),t(d))return d}return null}function dR(e,t={},r,n){let s=(t.resolveEntry??(i=>_M(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>Vk(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 cR(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??vM)(eR),{...e,exitCode:eR};let o=[...e.entry.args,...un(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??EM(n.env))(e.entry,o),e}function EM(e){return(t,r)=>{let n=gM(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[oR]:"1"}});n.on("error",()=>{}),n.unref()}}function vM(e){process.exitCode=e,process.exit(e)}async function uR(e,t=process.env,r=SM){let n=fR(t),o=gR(e,t);if(t[RM]==="1")return{version:o,newest:n};let s=Nt(e)===null?"0.0.0":e;try{let i=await ph({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function pR(e,t=process.env,r){let n=r??yp;return{version:gR(e,t,n),newest:fR(t,n)}}function fR(e=process.env,t=yp){return hR(mR(e,t))}function gR(e,t=process.env,r=yp){let n=Nt(e.trim())?.major;return n===void 0?null:hR(mR(t,r).filter(o=>Nt(o)?.major===n))}function mR(e,t){let r=[];for(let n of t(Ra(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||Nt(o)===null||r.push(o)}return r}function hR(e){let t=null;for(let r of e)(t===null||fp(r,t)>0)&&(t=r);return t}function yp(e){try{return hM(e)}catch{return[]}}async function SM(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 TM,readFile as PM,rename as AM,rm as bp,writeFile as yR}from"node:fs/promises";import{randomUUID as CM}from"node:crypto";import{dirname as OM}from"node:path";var Sl=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function rs(e){let t;try{t=await PM(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=DM(t);return FM(r)?r:void 0}var bR;function RR(){return bR??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},bR}function wR(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Qe;async function s(){return await rs(e)}async function i(l){let d=`${e}.${l.pid}.${CM()}.tmp`;await yR(d,kR(l),{encoding:"utf8",mode:384}),await AM(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 TM(OM(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await yR(e,kR(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 bp(e,{force:!0}),d=!0;continue}if(kp(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await bp(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!kp(d,l))throw new Sl(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!kp(d,l))throw new Sl(e);return await bp(e,{force:!0}),!0}}}function kp(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function kR(e){return`${Ye(e,{keyedMapCollapse:!0})}
|
|
105
|
+
`}function DM(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function FM(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 ER(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Mo,o=e.clock??(()=>new Date().toISOString()),s=e.launch??mk,i=e.refreshTrunk??Fk,a=e.countBaseMovement??Ik,l=e.ceiling??va();e.repositoryActivity!=null&&Tu(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??RR(),c=e.leaseStore??wR(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??Pa(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Hs(t.machineClaimPath,p,{clock:o});await LM($M(t.socketPath),{recursive:!0,mode:448});let[f,b]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]),m=Date.parse(o()),w=f==null?Number.NaN:Date.parse(f.renewed_at);f!=null&&b!=null&&f.pid===b.pid&&f.start_time===b.start_time&&f.socket_path===t.socketPath&&b.socket_path===t.socketPath&&Number.isFinite(m)&&Number.isFinite(w)&&m-w>=wh&&await Cc(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:b.pid,startTime:b.start_time,uid:b.uid}).catch(()=>!1);let L=await g.claim(u);if(!L.claimed)throw L.claim?.socket_path===t.socketPath?new Jt(t.socketPath):new Jr(g.claimPath,L.reason,L.claim);let C=await c.acquire(d);if(!C.acquired)throw await g.release(u).catch(()=>{}),new Jt(t.socketPath,C.lease);let M;try{M=await Sh(t.socketPath,async()=>{let[h,P]=await Promise.all([c.read().catch(()=>{}),g.read().catch(()=>{})]);return h!=null&&h.pid!==d.pid&&Qe(h.pid)?!0:P!=null&&P.socket_path===t.socketPath&&P.pid!==u.pid&&Qe(P.pid)})}catch(h){throw await c.release(d).catch(()=>{}),await g.release(u).catch(()=>{}),h}let N=o(),H=e.eventLane??ry(t.eventLanePath),G=e.registrationIntentStore??uk(t.registrationIntentPath),I=e.liveness??ek,W=e.livenessGraceMs??Z0,q=e.stopWorker??ik,oe=e.unitInventory??(()=>rk(t.machineClaimPath,qn({machineIdHash:t.machineIdHash}))?nk():[]),ae=e.unitMainPid??tk,se=e.treeSampler??Ub,Z=e.readLogTail??Mk,pe=e.sampleMs??Rh,Oe=e.leaseRenewMs??Pc,ve=e.registrationSustainMs??_h,ke=e.publishedVersion??(h=>uR(h)),Y=e.replaceCheckMs??nR,de=e.publishedProbeTimeoutMs??bh,we=e.localPublishedEvidence??(h=>pR(h,e.replacementIO?.env??process.env)),De=e.bornByReplacement??sR(),Se=e.replaceBootCheckMs??kh,Re=e.supervised??vl(),Pe=e.replacementIO??{},me=e.repositoryActivity,ie=me?.intervalMs??Uo,_e=e.githubBalance,Ie=e.queueDiscovery,et=Ie?.transport??me?.transport,Ht=Ie?.unconfiguredReason??Eh,nn=Ie?.intervalMs??cp,on=e.demandMs??15e3,ko=e.demandBackoffMs??3e4,ce=new Map,Ut=new Map,ct=new Set,tt=new Map,Rt=new Map,ut=[],ft=[],wt=e.deaths===void 0?void 0:[...e.deaths],_t=await G.read().catch(()=>[]),Wr=Date.parse(N),Te=new Map,Le=new Map;for(let h of _t){let P=Date.parse(h.renew_by);!Number.isFinite(Wr)||!Number.isFinite(P)||P>=Wr?Te.set(h.project_label,h):Wr-P<=h.renew_within_ms&&Le.set(h.project_label,h)}let J=hk({registration:h=>Te.get(h),liveWorkerIds:()=>ce.keys(),admit:xo,start:(h,P)=>Ts(h,{admission:P,hook:!0}).worker,refuse:(h,P)=>void H.recordDemandRefusal({ts:o(),projectLabel:h,detail:P}).catch(()=>{}),recordExpiry:(h,P)=>void H.recordDemandRefusal({ts:o(),projectLabel:h,detail:P}).catch(()=>{})}),O=Promise.resolve();function R(h){let P=O.then(async()=>{await J.waitForSettled();let $=await h();return await J.waitForSettled(),$});return O=P.then(()=>{},()=>{}),P}let F=new Set,j={},B=null,K=null,X=null,xe=!1,je=0,$e=null,jt="none",sn=null,wr=null,Cn=null,_r=null,xt=null,re=null,he=[],Be=[],qt=new Map((e.orphanedRegistrations??[]).map(h=>[h.project_label,h])),$t=null,rt={},Ro=!1,an,On,Dn,Ne,Fn,In,Mn,or,Hr,Ee=!1,ln=!1,xr=null,dn=wk({poll:()=>Xf(),registrations:()=>Te.values(),clock:o,attendedMs:ie,armed:Ie!=null||me!=null&&me.projects.length>0,stopping:()=>Ee}),Jf,Rd=new Promise(h=>{Jf=h});function wo(h){Yf(h);let P=Date.parse(h),$=Ey(Te.values(),P);for(let U of $.lapsed){Te.delete(U.project_label);let z=xt?.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),zE(U,P)}return $.lapsed.length>0&&_o(),$.lapsed}function _o(){let h=new Map(Le);for(let[P,$]of Te)h.set(P,$);G.replace([...h.values()]).catch(()=>{})}function zE(h,P){let $=Number.isFinite(P)?new Date(P).toISOString():h.renew_by;he.push({project_label:h.project_label,registered_at:h.registered_at,at:$,renew_by:h.renew_by,renewals:h.renewals,sustains:h.sustains??0,detail:`redskilled dropped the registration for project ${JSON.stringify(h.project_label)}: it stood until ${h.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`}),he.length>Ns&&he.splice(0,he.length-Ns)}function Yf(h){if(Te.size===0)return;let P=Date.parse(h);if(!Number.isFinite(P))return;let $={};for(let le of ce.values())$[le.project_label]=($[le.project_label]??0)+1;let U=xt==null?Number.NaN:Date.parse(xt.fetched_at),z=new Map((xt?.projects??[]).map(le=>[le.project_label,le])),ne=!1;for(let le of[...Te.values()]){let Je=Number.isFinite(U)&&P-U<=le.renew_within_ms?z.get(le.project_label):void 0,Eo=Wc(le,{now:h,...Je==null?{}:{queue:{outcome:Je.outcome,depth:Je.depth}},liveWorkers:$[le.project_label]??0});Eo.registration!==le&&(Te.set(le.project_label,Eo.registration),ne=!0)}ne&&_o()}function Qf(h){if(Le.size===0)return;let P=Date.parse(h);if(!Number.isFinite(P))return;let $=new Map((xt?.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=$.get(z),ot=Wc(ne,{now:h,...le==null?{}:{queue:{outcome:le.outcome,depth:le.depth}},liveWorkers:[...ce.values()].filter(Je=>Je.project_label===z).length});ot.verdict==="open-work"||ot.verdict==="live-worker"?(Te.set(z,ot.registration),Le.delete(z),U=!0):ot.verdict==="drained"&&(Le.delete(z),U=!0)}U&&_o()}function Ki(){let h=o();return wo(h),I0({now:h,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:by(g.claimPath,p,u),workers:[...ce.values()],registrations:[...Te.values()],demand:re,lapses:he,stops:Be,orphanedRegistrations:[...qt.values()],birthLatches:cy(rt,Date.parse(h)),queue:xt,published:{version:K,checkedAt:X,newer:xe,replacement:jt,newest:sn,majorHold:wr,checks:je,holdReason:$e}})}function Vi(){return c0({hostState:Ki(),ceiling:l,rss:j,sampledAt:B,logLines:Object.fromEntries(tt),displays:Object.fromEntries(Rt),now:o(),reattachedWorkerIds:[...ct],repositoryActivity:Cn,activityStalenessMs:Pu*dn.cadenceMs(),githubBalance:_r,...wt===void 0?{}:{deaths:wt},metrics:Mh({observations:ut,outcomes:ft,now:o()})})}function JE(h,P){let $=jh(ut,h,P,o());ut=$.observations,H.recordWorker($.record).catch(()=>{})}function YE(h){ft=Un([...ft,h],P=>P.ts,{now:o()})}async function Xf(){return Cn=await _k({...me==null?{}:{explicit:me},registrations:Te.values(),resolveHostTransport:()=>(eg(),et),now:o()})}async function Zf(){return _e==null?null:(_r=await ku({transport:_e.transport,now:o()}),_r)}function QE(){if(Ee||or!=null||_e==null)return;let h=()=>{or=void 0,Zf().catch(()=>{}).then(()=>{if(Ee)return;let P=_e.intervalMsOverride??za(_r??XE(),{now:o()});or=setTimeout(h,P),or.unref()})};h()}function XE(){return Va(o())}function eg(){if(!(et!=null||Ie?.armTransport==null))try{let h=Ie.armTransport();if(h.transport!=null){et=h.transport;return}h.unconfiguredReason!=null&&(Ht=h.unconfiguredReason)}catch(h){Ht=`this host could not resolve a tracker credential: ${h instanceof Error?h.message:String(h)}`}}async function tg(){let h=o();wo(h);let P=Date.parse(h);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,...Te]).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(eg(),et==null)return xt=Sk(U,h,Ht),xt;xt=await Tk({projects:U,transport:et,now:h,...Ie?.batchSize==null?{}:{batchSize:Ie.batchSize}});let z=o();return Qf(z),Yf(z),xt}async function rg(){let h=o();if(Ro)return re??iy(h);Ro=!0;try{await _d().catch(()=>{});let P={};for(let ye of ce.values())P[ye.project_label]=(P[ye.project_label]??0)+1;let $={};for(let ye of xt?.projects??[])$[ye.project_label]=ye.depth;let U=Date.parse(h),z=Number.isFinite(U)?U:0;for(let[ye,Et]of Object.entries(rt)){if(Et.probeWorkerId==null)continue;let Zi=ce.get(Et.probeWorkerId);Zi!=null&&z-Date.parse(Zi.started_at)>=6e4&&(rt[ye]=Lc())}let ne=sy({projects:[...Te.values()].map(ye=>({project_label:ye.project_label,selector:ye.selector,argv:ye.argv,workspace_path:ye.workspace_path,target:ye.target})),queue:$,live:P,nowMs:z,backoffUntilMs:$t,birthHealth:rt}),le=[],ot=new Map,Je=null;for(let ye of ne.births){let Et,Zi=li(ce.keys()),vo=Te.get(ye.project_label),ea=Ca({argv:ye.argv,...vo?.env==null?{}:{env:vo.env},...vo?.log_path==null?{}:{log_path:vo.log_path}},{worker_id:Zi,slot:ye.index,workspace_path:ye.workspace_path},{project_label:ye.project_label});try{if(vo?.trunk==null)Et=await R(()=>Ts(ea));else{let Ur={workspace_path:ye.workspace_path,trunk:vo.trunk},As=xo(ea);if(!As.admitted)throw new er(As.reason,As);let bg=pp(Ur),ta=ot.get(bg);ta==null&&(ta=wd(Ur),ot.set(bg,ta)),Et=await R(()=>dg(ea,Ur,ta,As))}}catch(Ur){Je=Ur instanceof Error?Ur.message:String(Ur),Ur instanceof er&&Ur.admission?.verdict==="refused-unreachable-trunk-remote"||($t=(Number.isFinite(U)?U:Date.now())+ko);break}le.push({project_label:ye.project_label,worker_id:Et.worker.worker_id,pid:Et.worker.pid,...Et.fork_sha==null?{}:{fork_sha:Et.fork_sha},warnings:ea.log_path==null?[...Et.warnings,`project ${JSON.stringify(ye.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(Et.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:Et.warnings});let vd=rt[ye.project_label];vd?.haltUntilMs!=null&&z>=vd.haltUntilMs&&(rt[ye.project_label]=dy(vd,Et.worker.worker_id))}Je==null&&ne.births.length>0&&($t=null);let Eo=new Set(le.map(ye=>ye.project_label));for(let ye of ne.intents){if(ye.queue_depth==null||ye.queue_depth<=0||ye.live>=ye.target||Eo.has(ye.project_label))continue;let Et=Je!=null&&(ye.outcome==="asking"||ye.outcome==="half-open-probe")?`project ${JSON.stringify(ye.project_label)} was birth-eligible but the host refused it: ${Je}`:ye.detail;await H.recordDemandRefusal({ts:h,projectLabel:ye.project_label,detail:Et}).catch(()=>{})}return re={version:1,at:h,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Je,retry_after:$t==null?null:new Date($t).toISOString(),projects:ne.intents},re}finally{Ro=!1}}function ZE(h){return kn(Vi(),{...Ge,mode:h?.mode??Ge.mode,project:h?.project??Ge.project,maxWorkers:h?.max_workers??Ge.maxWorkers,maxProjects:h?.max_projects??Ge.maxProjects,maxWidth:h?.max_width??Ge.maxWidth,verbose:h?.verbose??Ge.verbose})}function ev(h){return Yo(Vi(),{mode:h?.mode??Bt.mode,project:h?.project??Bt.project,maxWidth:h?.max_width??Bt.maxWidth,maxRows:h?.max_rows??Bt.maxRows,maxHeight:h?.max_height??Bt.maxHeight,showDeathDetails:h?.show_death_details??Bt.showDeathDetails})}function Ln(h,P,$){return Py({op:h,sessionProject:P??null,targetProject:$})}async function tv(h){let P=ce.get(h.worker_id),$=Ln(Ty(h.command),h.session_project,P?.project_label??null);if(!$.permitted)throw new Error($.reason);if(h.command!=="stop")throw new Error(`redskilled does not implement ${h.command}: it owns birth, death and limits, and ${h.command} is a work decision the project's own bundle makes on top of them`);let U=P!=null&&await iv(P,h.detail??"stopped by its own project");return{version:1,command:h.command,worker_id:h.worker_id,applied:U,reach:$,detail:U?`redskilled stopped Worker ${JSON.stringify(h.worker_id)} of project ${JSON.stringify(P.project_label)}`:`redskilled holds no live Worker ${JSON.stringify(h.worker_id)} to stop`}}function Ss(h){ce.delete(h),ct.delete(h),tt.delete(h),Rt.delete(h)}function ng(h){let P=ce.get(h.worker_id),$=Ln("worker-heartbeat",h.session_project,P?.project_label??null);if(!$.permitted)throw new Error($.reason);if(typeof h.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:h.worker_id,accepted:!1,reach:$,published_at:null,detail:`redskilled holds no live Worker ${JSON.stringify(h.worker_id)} to publish a line for`};let U=o();tt.set(h.worker_id,{line:h.last_log_line,published_at:U,source:"heartbeat"});let z=h.display===void 0?null:Ok(h.display);if(z!=null){let ne=Rt.get(h.worker_id)?.display,le={display:z,published_at:U};Rt.set(h.worker_id,le),JE(le,P),(z.phase!==ne?.phase||z.step!==ne?.step)&&At("worker-activity",P,null,{phase:z.phase,step:z.step})}return h.mechanical_heal?.heal_kind==="mechanical-regeneration"&&At("worker-heal",P,`${h.mechanical_heal.cause}; cycle ${h.mechanical_heal.cycle}/${h.mechanical_heal.cap}; free=${h.mechanical_heal.free}`,{healKind:h.mechanical_heal.heal_kind}),{version:1,worker_id:h.worker_id,accepted:!0,reach:$,published_at:U,detail:`redskilled stored a line for Worker ${JSON.stringify(h.worker_id)} without reading it`}}async function rv(h,P,$){let U=`exit code=${P??"null"} signal=${$??"null"}`;if(h.unit!=null&&h.unit!==""&&await ov(h)){sv(h,`its launch client ended (${U}) while unit ${JSON.stringify(h.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=h.log_path==null?null:Ac(await Z(h.log_path).catch(()=>null));Ss(h.worker_id),At("worker-death",h,z==null?U:`session-error: ${z}`,{exitCode:P,signal:$,refusal:z}),nt()}function nv(h,P){if(!Number.isFinite(P)||P<0){rt[h]=Ws;return}let $=rt[h]??Ws,U=ly($,P,Date.parse(o()));rt[h]=U,U.haltUntilMs!=null&&$.haltUntilMs==null&&process.stderr.write(`redskilled: project ${JSON.stringify(h)} lost ${U.shortLifeStreak} Workers in a row inside ${6e4}ms of birth; not asking for another until ${new Date(U.haltUntilMs).toISOString()}
|
|
106
|
+
`)}function og(h,P){let $=Ln("project-reset",P,h);if(!$.permitted)throw new Error($.reason);let U=rt[h]?.haltUntilMs!=null||rt[h]?.probeWorkerId!=null;return rt[h]=Lc(),{version:1,project_label:h,latch:"project-birth-breaker",reset:U,reach:$,detail:U?`redskilled cleared project ${JSON.stringify(h)}'s birth breaker; the next demand tick may birth normally`:`redskilled found no open birth breaker for project ${JSON.stringify(h)}; nothing changed`}}async function ov(h){try{return await I(h)===!0}catch{return!1}}function sv(h,P){let $=h.unit==null?null:ae(h.unit);ce.set(h.worker_id,{...h,...$!=null&&$>0?{pid:$}:{},warnings:[...h.warnings,P]}),ct.add(h.worker_id),nt()}function sg(h,P){let $=Ln("project-register",P,h.project_label);if(!$.permitted)throw new Error($.reason);let U=o();wo(U);let z=_y(h,{now:U,held:Te.get(h.project_label)});return Te.set(z.project_label,z),_o(),dn.nudge(),lg(z.project_label),nt(),{version:1,registration:z,reach:$,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 ig(h,P={}){let $=Ln("project-renew",P.sessionProject,h);if(!$.permitted)throw new Error($.reason);let U=o();wo(U);let z=Te.get(h);if(z==null){if(qt.has(h))throw new Kn(h,{kind:"orphaned"});let le=[...Be].reverse().find(Je=>Je.project_label===h);if(le!=null)throw new Kn(h,{kind:"stopped",at:le.at});let ot=[...he].reverse().find(Je=>Je.project_label===h);throw ot!=null?new Kn(h,{kind:"lapsed",at:ot.at,...ot.registered_at==null?{}:{registered_at:ot.registered_at}}):new Kn(h)}let ne=xy(z,{now:U,...P.renewWithinMs==null?{}:{renew_within_ms:P.renewWithinMs},...P.launch==null?{}:{launch:P.launch}});return Te.set(ne.project_label,ne),_o(),dn.nudge(),nt(),{version:1,registration:ne,reach:$,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 ag(h,P){let $=Ln("project-deregister",P,h);if(!$.permitted)throw new Error($.reason);let U=Te.get(h)??Le.get(h),z=Te.delete(h),ne=Le.delete(h),le=z||ne;if(U!=null){let ot=`redskilled released the registration for project ${JSON.stringify(h)}`;lg(h),Be.push({project_label:h,registered_at:U.registered_at,at:o(),detail:ot}),Be.length>Ns&&Be.splice(0,Be.length-Ns)}return le&&_o(),{version:1,project_label:h,released:le,reach:$,detail:le?`redskilled released the registration for project ${JSON.stringify(h)}`:`redskilled held no registration for project ${JSON.stringify(h)}, so there was nothing to release`}}function lg(h){Le.delete(h);for(let P=he.length-1;P>=0;P-=1)he[P].project_label===h&&he.splice(P,1);for(let P=Be.length-1;P>=0;P-=1)Be[P].project_label===h&&Be.splice(P,1);qt.delete(h)}async function iv(h,P){let $=!1;try{$=await q(h)===!0}catch{}Ss(h.worker_id);let U=h.pgid??h.pid;return At("worker-death",h,$?P:`${P}; unconfirmed-stop: the host did not confirm process group ${U} stopped, so process group ${U} may still be alive`),nt(),!0}function xo(h){return zh({ceiling:l,workers:[...ce.values()],budget:h.budget,projectLabel:h.project_label,...h.reservation==null?{}:{reservation:h.reservation}})}function wd(h){let P=pp(h),$=Ut.get(P);if($!=null)return $;let U=i(h).finally(()=>{Ut.get(P)===U&&Ut.delete(P)});return Ut.set(P,U),U}async function dg(h,P,$,U){let z=U??xo(h);if(!z.admitted)throw new er(z.reason,z);let ne;try{ne=await($??wd(P))}catch(ot){let Je=Dk(z,P,ot);throw new er(Je.reason,Je)}let le=xo(h);if(!le.admitted)throw new er(le.reason,le);return Ts(h,{admission:le,forkSha:ne})}function Ts(h,P={}){let $=Jh({ceiling:l,workers:[...ce.values()],budget:h.budget}),U=s({spec:h,admission:P.admission??xo(h),...P.forkSha==null?{}:{forkSha:P.forkSha},memoryCeiling:$,liveWorkerIds:ce.keys(),clock:o,onExit:(ot,Je,Eo)=>{let ye=ce.get(ot);if(ye==null){nt();return}rv(ye,Je,Eo).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),At("worker-birth",ne,null,{admissionVerdict:P.admission?.verdict??U.admission.verdict}),nt(),le}function At(h,P,$,U={}){if(Ee)return;let z=o(),ne={kind:h,worker:P,ts:z,detail:$,...U};(h==="worker-death"||h==="worker-budget-kill")&&(YE({worker_id:P.worker_id,ts:z,outcome:h}),cg(Sa(ne),{startedAt:P.started_at,...U.refusal==null?{}:{refusal:U.refusal}}),nv(P.project_label,Date.parse(z)-Date.parse(P.started_at))),H.recordWorker(ne).catch(()=>{}),J.onEvent(h,P)}function cg(h,P={}){let $=xh(h,P);if($==null)return;let U=[$,...(wt??[]).filter(z=>z.kind!==$.kind||z.id!==$.id||z.ts!==$.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));wt=Un(U,z=>z.ts,{now:o()})}async function _d(){let h=await X0({workers:[...ce.values()],reattached_worker_ids:ct,now_ms:Date.parse(o()),grace_ms:W,probe:I,on_dead:P=>{Ss(P.worker_id),At("worker-death",P,"the host no longer confirms this Worker")}});return h.length>0&&nt(),h}let Ps=ck({authorized:e.orphanCensus!=null||t.machineClaimPath===qn({machineIdHash:t.machineIdHash}),interval_ms:e.orphanReaperMs,mode:e.orphanReaperMode,census:e.orphanCensus,active_worker_units:oe,dump_files:e.orphanDumpFiles,read_starttime:e.orphanStarttime,kill_group:e.orphanKillGroup,report:e.orphanReport,clock:o,held_worker_ids:()=>ce.keys(),live_births:async()=>Ta(await H.read()),adopt:async(h,P,$)=>{ce.set(h.worker_id,h),ct.add(h.worker_id),P&&(At("worker-birth",h,$),await H.flush()),nt()},record_reaped:async(h,P)=>{Ss(h.worker_id),At("worker-death",h,P),await H.flush(),nt()}});async function ug(h,P){let $=ce.get(h);if(!$)return!1;try{await q($)}catch{}return Ss(h),At("worker-budget-kill",$,P),nt(),!0}async function pg(){let h=[...ce.values()];if(h.length===0)return[];let P;try{P=await se(h)}catch{return[]}let $=P.rss;j=$,B=o(),av(P.cpu_seconds,B);let{terminations:U}=Hb({workers:h,rss:$,processes:P.processes??{}}),z=[];for(let ne of U)await ug(ne.worker_id,ne.reason)&&z.push(ne);return z}function av(h,P){for(let[$,U]of Object.entries(h)){if(typeof U!="number"||!Number.isFinite(U))continue;let z=ce.get($);z&&ce.set($,{...z,cpu:{cpu_seconds:U,sampled_at:P}})}}async function lv(){try{return de<=0?await ke(r):await new Promise(h=>{let P=setTimeout(()=>h(xd()),de);P.unref(),ke(r).then($=>{clearTimeout(P),h($)},()=>{clearTimeout(P),h(xd())})})}catch{return xd()}}function xd(){try{return we(r)}catch{return null}}async function fg(){if(mi(r))return je+=1,X=o(),$e="local-build",{act:"hold",reason:"local-build"};let h=iR(await lv()),P=h.version;K=P,sn=h.newest??null,X=o(),wr=aR({running:r,newest:sn,supervised:Re});let $=lR({running:r,published:P,supervised:Re});return xe=$.act==="replace",je+=1,$e=$.act==="hold"?$.reason:null,jt!=="in-progress"&&(jt=$.act==="replace"?"pending":"none"),$}async function zi(){let h=await fg();if(h.act!=="replace"||jt==="in-progress")return h;let P=dR(h,Pe,t,n);return jt="in-progress",await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Yi({reason:"replaced"}),cR(P,t,{...n==null?{}:{idleMs:n},io:Pe}),h}function dv(){Ee||In!=null||Y<=0||(!De&&Se>0&&(Mn=setTimeout(()=>{zi().catch(()=>{})},Se),Mn.unref()),In=setInterval(()=>{zi().catch(()=>{})},Y),In.unref())}async function gg(){return await c.renew(d).catch(()=>null)}function cv(){Ee||Dn!=null||Oe<=0||(Dn=setInterval(()=>{gg()},Oe),Dn.unref())}function uv(){Ee||Ne!=null||ve<=0||(Ne=setInterval(()=>{wo(o())},ve),Ne.unref())}function pv(){Ee||On!=null||pe<=0||(On=setInterval(()=>{pg().catch(()=>{})},pe),On.unref())}function fv(){if(Ee||Hr!=null||nn<=0)return;let h=P=>{Hr=setTimeout(()=>{Hr=void 0,mg().then(()=>tg()).catch(()=>{}).finally(()=>{if(Ee)return;let $=Date.parse(o());h(Ck(xt,nn,Number.isFinite($)?$:Date.now()))})},P),Hr.unref()};h(nn)}async function mg(){await Promise.allSettled([...Te.values()].filter(h=>h.trunk!=null).map(async h=>{let P=await wd({workspace_path:h.workspace_path,trunk:h.trunk}),$=[...ce.values()].filter(U=>U.project_label===h.project_label&&U.fork_sha!=null&&U.fork_sha!=="");await Promise.allSettled($.map(async U=>{let z=await a({workspace_path:h.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)&&At("worker-drift",le,null,{baseHeadSha:P,baseCommitsAhead:z})}))}))}function gv(){Ee||Fn!=null||on<=0||(Fn=setInterval(()=>{rg().catch(()=>{})},on),Fn.unref())}function nt(){Ee||(an&&clearTimeout(an),an=setTimeout(()=>{_d().catch(()=>{}).then(()=>hg())},n),an.unref())}function hg(){return ce.size>0?(nt(),"held-by-workers"):(wo(o()),Te.size>0?(nt(),"held-by-registrations"):(mv(),"exited"))}async function mv(){if(!mi(r)){if((await zi().catch(()=>null))?.act==="replace"||ln||Ee)return;if(ce.size>0||Te.size>0){nt();return}}await Yi({reason:"idle"})}function Ji(h){return uy({reason:h,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ce.values()],projects:[...Te.keys()]})}function yg(h){if(xr!=null)return xr;let P=h.reason??"requested",$=h.note?.trim();return xr=H.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:P,detail:$==null||$===""?Ji(P).detail:`${Ji(P).detail} \u2014 ${$}`,...h.signal==null?{}:{signal:h.signal}}).catch(()=>{}),xr}async function Yi(h={}){if(ln)return await Rd;ln=!0,await yg(h),Ee=!0,an&&clearTimeout(an),On&&clearInterval(On),Dn&&clearInterval(Dn),Ne&&clearInterval(Ne),Ps.stop(),In&&clearInterval(In),Mn&&clearTimeout(Mn),dn.stop(),or&&clearTimeout(or),Hr&&clearTimeout(Hr),Fn&&clearInterval(Fn),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 jM(t.socketPath,{force:!0}),Jf(),await Rd}let Qi=await H.read().catch(()=>[]),Xi=new Map;for(let h of Qi){if(h.event==="worker-birth"){Xi.set(h.worker_id,h.ts);continue}let P=Ac(h.detail);cg(h,{...Xi.get(h.worker_id)==null?{}:{startedAt:Xi.get(h.worker_id)},...P==null?{}:{refusal:P}}),(h.event==="worker-death"||h.event==="worker-budget-kill")&&Xi.delete(h.worker_id)}ft=Un(Qi.filter(h=>h.event==="worker-death"||h.event==="worker-budget-kill").map(h=>({worker_id:h.worker_id,ts:h.ts,outcome:h.event})),h=>h.ts,{now:o()}),ut=$h(Qi,o());let hv=Ta(Qi),Ed=await ip(hv,I);for(let h of Ed.alive){let P=sk(h),$=P.unit==null||Qe(P.pid)?null:ae(P.unit);ce.set(P.worker_id,$!=null&&$>0?{...P,pid:$}:P),ct.add(P.worker_id)}for(let h of Ed.dead)At("worker-death",h,"the Worker ended while no daemon was watching");let yv=ok({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ce.values()],mainPid:ae,now:N});for(let h of yv)ce.set(h.worker_id,h),ct.add(h.worker_id),At("worker-birth",h,"adopted from an active unit with no birth on this lane");Qf(o());for(let h of Ed.alive){if(h.log_path==null||tt.has(h.worker_id))continue;let P=await Z(h.log_path).catch(()=>null);P==null||P.trim()===""||tt.set(h.worker_id,{line:P,published_at:o(),source:"rehydrated"})}M.on("connection",h=>{F.add(h),h.once("close",()=>F.delete(h)),nt(),Th(h,async(P,$)=>{nt();let U=await bv(P);$(U),P.op==="shutdown"&&setImmediate(()=>void Yi({reason:"requested"}).catch(()=>{}))})});async function bv(h){try{if(h.op==="ping")return{id:h.id,ok:!0,value:{pong:!0,protocol_version:pl,daemon_version:r,pid:d.pid}};if(h.op==="host-state")return{id:h.id,ok:!0,value:Ki()};if(h.op==="reap")return{id:h.id,ok:!0,value:await Ps.reap(h.report===!0)};if(h.op==="statusline-payload")return{id:h.id,ok:!0,value:Fu(Vi(),h.extras)};if(h.op==="statusline-string")return{id:h.id,ok:!0,value:ZE(h.render)};if(h.op==="statusline-dashboard")return{id:h.id,ok:!0,value:ev(h.dashboard)};if(h.op==="worker-heartbeat")return{id:h.id,ok:!0,value:ng(h.heartbeat)};if(h.op==="project-register"){let $=sg(h.registration,h.session_project);return await G.flush(),{id:h.id,ok:!0,value:$}}if(h.op==="project-renew"){let $=ig(h.project_label,{...h.session_project==null?{}:{sessionProject:h.session_project},...h.renew_within_ms==null?{}:{renewWithinMs:h.renew_within_ms},...h.launch==null?{}:{launch:h.launch}});return await G.flush(),{id:h.id,ok:!0,value:$}}if(h.op==="project-deregister"){let $=ag(h.project_label,h.session_project);return await G.flush(),{id:h.id,ok:!0,value:$}}if(h.op==="project-reset")return{id:h.id,ok:!0,value:og(h.project_label,h.session_project)};if(h.op==="worker-command")return{id:h.id,ok:!0,value:await tv(h.command)};if(h.op==="worker-start"){let $=Ln("worker-start",h.session_project,h.spec.project_label);if(!$.permitted)return{id:h.id,ok:!1,error:$.reason};let U=await R(()=>h.spec.trunk==null?Ts(h.spec):dg(h.spec,{workspace_path:h.spec.workspace_path,trunk:h.spec.trunk}));return await H.flush().catch(()=>{}),{id:h.id,ok:!0,value:{worker:U.worker,admission:U.admission,fork_sha:U.fork_sha,warnings:U.warnings}}}if(h.op==="shutdown"){let $=Ji("requested");return await yg({reason:"requested",...h.detail==null?{}:{note:h.detail}}),{id:h.id,ok:!0,value:$}}let P=h;return{id:P.id??xR(),ok:!1,error:`unsupported redskilled op: ${P.op??"unknown"}`}}catch(P){return{id:h.id??xR(),ok:!1,error:P instanceof Error?P.message:String(P)}}}return nt(),pv(),cv(),uv(),Ps.arm(),dv(),dn.arm(),QE(),fv(),gv(),{socketPath:t.socketPath,lease:C.lease,startedAt:N,closed:Rd,startWorker:Ts,admit:xo,ceiling:()=>l,killWorkerOverBudget:ug,sampleMemoryBudgets:pg,renewLease:gg,pollRepositoryActivity:Xf,pollGithubBalance:Zf,githubBalance:()=>_r,pollQueueDiscovery:tg,queueDiscovery:()=>xt,driveDemand:rg,demand:()=>re,sweepWorkerLiveness:_d,sweepOrphanProcesses:()=>Ee?Promise.resolve({adopted:0,reaped:0,suspects:0}):Ps.sweep(),censusOrphanProcesses:()=>Ps.census(),publishWorkerHeartbeat:ng,reattached:()=>[...ct].map(h=>ce.get(h)).filter(h=>h!=null),flushEvents:async()=>{await O,await J.waitForSettled(),await H.flush()},trackWorker(h){ce.set(h.worker_id,h),At("worker-birth",h,null),nt()},releaseWorker(h){let P=ce.get(h),$=ce.delete(h);return ct.delete(h),tt.delete(h),Rt.delete(h),P&&At("worker-death",P,"released by the daemon"),nt(),$},workerCount:()=>ce.size,registerProject:sg,renewProject:ig,resetProjectBirthBreaker:og,deregisterProject:ag,registrations:()=>Ki().registrations??[],hostState:Ki,refreshRegisteredTrunks:mg,statuslinePayload:Vi,evaluateIdle:hg,observePublishedVersion:fg,checkForReplacement:zi,stopReport:Ji,stop:Yi}}function Rp(e){let t=e.socketPath,r=BM(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 ${vR(r.uptime_ms)})`}, but it did not answer a ping \u2014 this is a daemon that could not be REACHED, not one that is missing.`,repair:`Do not provision: a daemon is already running. Inspect it (\`ps -p ${r.pid}\`), or stop it with \`${wn("red-skills-redskilled",["stop"])}\` and let the next client start a fresh one.`}:{version:1,kind:"absent",socket_path:t,holder:null,reason:`nothing answered on ${JSON.stringify(t)} and no live process holds its lease`,repair:`Install and start one with \`${wn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function wp(e){return`${e.reason} ${e.repair}`}function BM(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:NM(t.acquired_at,e.now??new Date().toISOString())}}function NM(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 vR(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 GM}from"node:child_process";import{existsSync as WM}from"node:fs";import{basename as SR,dirname as HM,join as TR}from"node:path";async function ns(e){let r=await Hs(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==Pa().uid||!Qe(r.pid))return{paths:e,joined:!1};let n=HM(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:TR(n,SR(e.lockPath)),leasePath:TR(n,SR(e.leasePath))}}}async function PR(e){let r=await Hs(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Qe(r.pid)))throw new Jr(e.machineClaimPath,"held",r)}async function AR(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[Nc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==qn({env:n,machineIdHash:e.machineIdHash}))||!(o??WM(ts(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=GM("systemctl",["--user","start",tr],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${tr}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await UM(e,t,r),!0}async function UM(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await ns(e);if(await Yt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${tr} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}zr();var xp=1e4,_n=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"?`. ${wp(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},_p=class extends _n{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},hi=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function Tl(e,t={}){let r=t.answers??await Yt(e.socketPath),n=await rs(e.leasePath).catch(()=>{});return Rp({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Qe(n.pid)})}async function Ep(e,t={}){let r=await ns(e);try{let n=await zM(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Jr||n instanceof _n)throw n;let o=await Tl(r.paths).catch(()=>{});throw new _n(r.paths.socketPath,n,o)}}async function zM(e,t){if(await KM(VM(e.socketPath),{recursive:!0,mode:448}),await Yt(e.socketPath))return"already-running";await PR(e);let r=await YM(e,t);if(r!=null)return r;if(await AR(e,t,xp))return"joined";let n=await sh(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??JM});if(!n.acquired)return await CR(e,t,void 0,n),"joined";try{if(await Yt(e.socketPath))return"already-running";let o=await XM(e,t);return await CR(e,t,o),"spawned"}finally{await ih(n)}}function JM(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
|
|
107
|
+
`)}async function YM(e,t){let r=await Tl(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??xp,o=Date.now()+n;for(;;){if(await Yt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await Tl(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new _p(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 vp(e,t,r={}){await Ep(e,r);let n=(await ns(e)).paths,o;try{o=await Xo({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:OR()})}catch(s){throw new _n(n.socketPath,s,await Tl(n).catch(()=>{}))}if(!o.ok)throw new hi(o.error);return o.value}async function DR(e,t={},r={}){let n=(await ns(e)).paths;if(!await Yt(n.socketPath))return py(n.socketPath);let o;try{o=await Xo({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:OR(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new _n(n.socketPath,a)}if(!o.ok)throw new hi(o.error);if(!$c(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await QM(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 QM(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await Yt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await rs(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Qe(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function FR(e,t={}){let r=await vp(e,{op:"host-state"},t);if(!M0(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function IR(e,t={},r={}){let n=await vp(e,{op:"reap",report:t.report===!0},r);if(!F0(n))throw new Error("redskilled daemon returned a malformed reap report");return n}async function MR(e,t={},r){let n=await vp(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!Za(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function LR(e,t=Ge,r={}){let n=await MR(e,r,{vitals:!0,logs:t.verbose,display:!0});return kn(n,t)}async function jR(e,t={},r={}){let n=await MR(e,r,{vitals:!0,logs:!0,display:!0});return Yo(n,{...Bt,...t})}async function CR(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??xp);for(;;){if(await Yt(e.socketPath))return;if(r?.failure)throw new Error(`redskilled daemon failed to start from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source}): ${r.failure.message}`);if(Date.now()>=o){if(n!=null)throw new Error(`no redskilled daemon answered on ${JSON.stringify(e.socketPath)} within the ready window, and ${ah(n)}`);let s=r?` from ${JSON.stringify(r.entry.entry??r.entry.command)} (resolved as ${r.entry.source})${r.exit?`, which ${r.exit}`:""}`:"";throw new Error(`redskilled daemon did not start on ${JSON.stringify(e.socketPath)}${s}`)}await new Promise(s=>setTimeout(s,25))}}async function XM(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await yh({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...un(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=qM(n.command,s,{detached:!0,stdio:"ignore",env:{...t.env??process.env,REDSKILLED_DAEMON:"1"}});return i.on("error",a=>{o.failure=a}),i.on("exit",(a,l)=>{o.exit=l?`died on ${l}`:`exited with code ${a??-1}`}),i.unref(),o}zr();import{readFile as ZM}from"node:fs/promises";import{homedir as eL,totalmem as tL}from"node:os";import{join as rL}from"node:path";var nL="REDSKILLED_IDLE_MS",oL=".red/config.yaml";async function BR(e=eL()){let t=rL(e,oL),r;try{r=await ZM(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(Sp(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${$R(n)}`),{})}try{let n=iL(r);return{...Pl(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...Pl(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...Pl(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...Pl(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return Sp(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${$R(n)}`),{}}}function NR(e={}){let t=e.env??process.env,r=e.config??{},n=va(t,e.totalMemoryBytes??tL(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=sL(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[nL],r.idleMs);if(o==null)return{ceiling:n,idleMs:Mo,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(Sp(`redskilled: ${dL(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Mo}ms instead.`),{ceiling:n,idleMs:Mo,idleMsSource:"derived-default"})}function sL(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 Pl(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function iL(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=aL(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(".")]=lL(c.trim())}return t}function aL(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 lL(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function dL(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function $R(e){return e instanceof Error?e.message:String(e)}function Sp(e){process.stderr.write(`${e}
|
|
108
|
+
`)}import{chmod as zR,mkdir as YR,readFile as QR,stat as EL,writeFile as XR}from"node:fs/promises";import{homedir as Ap}from"node:os";import{dirname as ZR,join as Al}from"node:path";import{join as gL}from"node:path";import{existsSync as cL,readFileSync as Hq}from"node:fs";import{dirname as uL,join as pL}from"node:path";function GR(e,t){let r=e;for(let n=0;n<16;n++){let o=pL(r,t);if(cL(o))return o;let s=uL(r);if(s===r)break;r=s}return null}function fL(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function os(e,t){let r=[];for(let n of e.split(`
|
|
109
|
+
`)){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 fL(d)}}var WR=["local","tmp","host"],mL="local",yi="plugins.dev.workspace.target";var Tp=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function UR(e){let t=os(e,yi),r=bL(t??"").trim();return r===""?void 0:r}function qR(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:mL};let r=WR.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 Tp(`${yi}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${WR.join(", ")}) or an absolute parent directory for Workers.`)}function KR(e,t){return e.kind==="preset"?e.preset==="host":yL(hL(e.parentDir,t),Dt(t))}function hL(e,t){return e==="~"?HR(t):e.startsWith("~/")?gL(t,e.slice(2)):HR(e)}function yL(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function HR(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function bL(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}zr();import{createHash as kL}from"node:crypto";import{hostname as RL}from"node:os";import{join as bi}from"node:path";var ss="redskilled.sock",wL="REDSKILLED_SESSION";function _L(e={}){let t=e.env??process.env,r=t[wL]?.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 xL(e={}){return VR(e.host??RL())}function Gt(e={}){let t=_L(e),r=e.runtimeDir??ba({key:`redskilled:${t}`,socketFileName:ss,env:e.env,uid:e.uid}),n=xL(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:VR(t),machineIdHash:n,runtimeDir:r,socketPath:bi(r,ss),lockPath:bi(r,"redskilled.spawn.lock"),leasePath:bi(r,"redskilled.lease.toon"),eventLanePath:bi(Dt(o),ty),registrationIntentPath:bi(Dt(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??qn({env:e.env,machineIdHash:n,platform:e.platform})}}function VR(e){return kL("sha256").update(e).digest("hex").slice(0,12)}var Pp=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${wn("red-skills-redskilled",["provision"])}\` directly`,vL=`# Host-scoped redskilled policy. This file is never read from a repository.
|
|
108
110
|
plugins:
|
|
109
111
|
dev:
|
|
110
112
|
redskilled:
|
|
@@ -112,15 +114,15 @@ plugins:
|
|
|
112
114
|
# memory_ceiling: 8G
|
|
113
115
|
# validation_ceiling: 2
|
|
114
116
|
# idle_ms: 300000
|
|
115
|
-
`;async function
|
|
116
|
-
`)}async function
|
|
117
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
118
|
-
`||e[r]===" ")&&(t+=e[r]),r++}return t}function
|
|
117
|
+
`;async function ew(e=Ap()){let t=Dt(e),r=Al(ZR(t),"config.yaml"),n=await Op(t),o=!1,s=!1;n===void 0?(await YR(t,{recursive:!0,mode:Vr}),await zR(t,Vr),o=!0):n!==Vr&&(await zR(t,Vr),s=!0);let i=!1;try{await XR(r,vL,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:Vr,configPath:r,configCreated:i}}var tw={needed:!1,declaredBy:`no ${yi} in view`};async function Cp(e={}){let t=e.homeDir??Ap(),r=e.declaredTarget?.trim();if(r)return JR(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return tw;let o=Al(n,".red","config.yaml"),s=await QR(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=UR(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:JR(i,t,o)}function JR(e,t,r){let n=`${yi}: ${e} (${r})`;try{return{needed:KR(qR(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function rw(e){let t=[SL(e),TL(e),PL(e),AL(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 SL(e){let t=e.homeNeed??tw;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:Pp}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??Vr;return r!==Vr?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${Vr.toString(8)}`,fix:`${Pp} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function TL(e){return Pr(e.entry)?{check:"daemon-entry",verdict:"ok",evidence:`${e.entry.entry??e.entry.command} (resolved as ${e.entry.source})`,fix:""}:{check:"daemon-entry",verdict:"missing",evidence:`no published redskilled bundle; probed ${e.entry.searched.join(", ")||"nothing"}`,fix:`install or warm the RedSkills bundle for this host, then re-run \`${wn("red-skills-redskilled",["provision"])}\``}}function PL(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:`${Pp} \u2014 it starts the daemon and waits for the socket`}}function AL(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 nw(e={}){let t=e.env??process.env,r=e.homeDir??Ap(),n=e.paths??Gt({env:t}),o=Dt(r),[s,i,a]=await Promise.all([Op(o),Yt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):Cp({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:pn(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await OL(DL(e,t,r),t)}}var CL="redskilled.service";function ow(e){return Al(e,"systemd","user",CL)}function sw(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple","LimitCORE=0",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
|
|
118
|
+
`)}async function iw(e){let t=ow(e.configHome);return await Op(t)!==void 0?{path:t,status:"already-present"}:(await YR(ZR(t),{recursive:!0}),await XR(t,e.unit,"utf8"),{path:t,status:"installed"})}async function OL(e,t){if(process.platform!=="linux")return"unsupported";try{return await QR(ow(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function DL(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??Al(r,".config")}async function Op(e){try{return(await EL(e)).mode&511}catch{return}}import{readdir as lw,rm as FL,stat as IL}from"node:fs/promises";import{dirname as ML,join as Dp}from"node:path";var LL=5*6e4,jL="redskilled.";function $L(e={}){let t=e.env??process.env,r=i=>ML(ba({key:"redskilled:reclaim-probe",socketFileName:ss,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 dw(e={}){let t=e.roots??$L(e),r=e.graceMs??LL,n=e.now??Date.now,o=e.isPidAlive??Qe,s=e.answers??WL,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await lw(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await BL(Dp(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 BL(e,t){let r;try{r=(await lw(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:cw(i),removed:[]}}let n=r.filter(i=>i.startsWith(jL));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await NL(Dp(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 aw(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(ss)&&await t.answers(Dp(e,ss)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await GL(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 aw(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function aw(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await FL(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:cw(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function NL(e){try{return await rs(e)}catch{return}}async function GL(e,t){try{return Math.max(0,t()-(await IL(e)).mtimeMs)}catch{return}}async function WL(e){try{return(await Xo({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function cw(e){return e instanceof Error?e.message:String(e)}var Cl,Ol=new Map,HL=256;function gw(){if(Cl!==void 0)return Cl;let e=Intl.Segmenter;return Cl=e?new e(void 0,{granularity:"grapheme"}):null,Cl}function Fp(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 uw(e){let t=Ol.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return Ol.size>=HL&&Ol.clear(),Ol.set(e,r),r}function pw(e){return e>=127462&&e<=127487}function fw(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function UL(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function qL(e,t,r){if(uw(t)||UL(t)||fw(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(Fp(n)||uw(n)||fw(n)||pw(t)&&pw(n)||t===13&&n===10)}function KL(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&&!Fp(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function mw(e){let t=gw();if(!t)return KL(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 Ip(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(qL(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=gw();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&&!Fp(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var is="\x1B",VL="\x07",EK=`${is}\\`;function zL(e){return e>=64&&e<=126}function JL(e,t){for(let r=t;r<e.length;r++){if(e[r]===VL)return r+1;if(e[r]===is&&e[r+1]==="\\")return r+2}return e.length}function Zn(e,t){if(e[t]!==is)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:is,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!zL(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=JL(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 hw(e){return e<=31||e>=127&&e<=159}function as(e){let t="",r=0;for(;r<e.length;){if(e[r]===is){let o=Zn(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!hw(n)||e[r]===`
|
|
119
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function Mp(e){let t="",r=0;for(;r<e.length;){if(e[r]===is){let o=Zn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!hw(n)||e[r]===`
|
|
120
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function yw(e){return Mp(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var kw="\x1B",bw=/^[\x20-\x7e]*$/,Dl=new Map,YL=256;function QL(e){return Mp(e)}function be(e){if(bw.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return Rw(t);let r=QL(e);if(bw.test(r))return r.length;let n=0;for(let{segment:o}of mw(r))n+=XL(o);return n}function eo(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=Ip(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function XL(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?Rw(t[0]):t.every(o=>o<=31||o>=127&&o<=159||ww(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(_w)?2:1}function Rw(e){let t=Dl.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||ww(e)?r=0:r=_w(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,Dl.size>=YL&&Dl.clear(),Dl.set(e,r),r}function ww(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 _w(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||ZL(e)}function ZL(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 to(e,t,r){if(t<=0)return e.split(`
|
|
119
121
|
`);let n=[];for(let o of e.split(`
|
|
120
|
-
`)){if(r==="truncate"||r==="truncate-end"){n.push(Yr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Yr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Yr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...EM(o,t))}return n}function EM(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=vM(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function vM(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===MR){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 Yr(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"?SM(e,t,l,d,i):n==="middle"?PM(e,t,l,d,i):TM(e,t,l,d,i)}function SM(e,t,r,n,o){let s=t-n,i=ns(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 TM(e,t,r,n,o){let s=t-n,i=ns(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 PM(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=ns(e,0,i),d=ns(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 ns(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]===MR){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=Rp(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 pi(e,t){let r=e;for(let n=0;n<t.length;n++)r=dt(r,t.charCodeAt(n));return r}function _p(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 pi(dt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return pi(dt(e,105),t.toString());case"string":return pi(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=_p(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=pi(dt(n,107),i),n=dt(n,58),n=_p(n,a,r),n=dt(n,59)))}return dt(n,125)}default:return pi(dt(e,63),String(t))}}function Ot(e,t={}){return _p(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as AM}from"node:async_hooks";var Fr=Symbol("tuiuiu.runtime-resource-dispose"),BR=new AM,_l=new Set,CM=1,os={id:0,resources:new Map};function NR(){let e={id:CM++,resources:new Map};return _l.add(e),e}function DM(e){_l.delete(e)}function GR(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 OM(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)GR(r)}function ss(e){DM(e),OM(e)}function qe(e,t){return BR.run(e,t)}function Qr(e,t){return(...r)=>qe(e,()=>t(...r))}function xp(){return BR.getStore()??null}function We(e){if(e)return e;let t=xp();return t||(_l.size===1?_l.values().next().value??os:os)}function Ir(){return os}function Fe(e,t,r){let n=We(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function Ft(e,t){return os.resources.has(e)||os.resources.set(e,t()),os.resources.get(e)}function xl(e,t){let r=We(t),n=r.resources.get(e);r.resources.delete(e),GR(n)}var Ce;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Ce||(Ce={}));function Ep(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function FM(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 vp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Ep();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Ce.NONE,subtreeFlags:Ce.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=Ep()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Ce.LAYOUT&&FM(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Ce.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Ce.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Ce.NONE,r.subtreeFlags=Ce.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Ce.LAYOUT|Ce.CHILDREN|Ce.FORCE_FULL),r.subtreeFlags&=~(Ce.LAYOUT|Ce.CHILDREN|Ce.FORCE_FULL)}markChildrenDirty(t,r=Ce.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Ce.NONE||r.subtreeFlags!==Ce.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Ce.NONE&&r.subtreeFlags===Ce.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return Ot({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=Ep()}},IM=Symbol("tuiuiu.dirty-registry");function Mr(e){return Fe(IM,()=>new vp,e)}function WR(e){Mr().beginFrame(e)}function HR(e,t){Mr().registerNode(e,t)}function wn(e,t=Ce.CONTENT){Mr().markDirty(e,t)}function UR(e){Mr().markLayoutClean(e)}function fi(e){Mr().noteReuse(e)}function Qn(e){Mr().noteFresh(e)}function El(e){return Mr().canReuseSubtree(e)}function qR(){return Mr().getDiagnostics()}function gi(){Mr().clearGlobalDirty()}function is(e){Mr().markClean(e.node);for(let r of e.children)is(r)}var KR=new WeakMap;function yt(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function vl(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var Tt=e=>e==="auto"?0:yt(e,"margin"),MM=new Set(["layoutRef","__scrollQuery"]),LM=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"]),jM=new Set(["children","wrap"]);function $M(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function as(e){let t=e.props??{},r=e.type==="text"?jM:LM,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ot(n,{ignoreKeys:MM})}function BM(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 NM(e,t){if(!El(e)){Qn("layout");return}let r=KR.get(e);if(!r){Qn("layout");return}if(r.ctxKey!==t){wn(e,Ce.LAYOUT),Qn("layout");return}let n=as(e);if(r.propsKey!==n||!BM(e,r.childRefs)){wn(e,r.propsKey!==n?Ce.LAYOUT:Ce.CHILDREN),Qn("layout");return}return fi("layout"),r.layout}function mi(e,t,r,n){KR.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),UR(e)}function gt(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 VR(e,t,r){if(t<=e.height)return gt(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return gt(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=>gt(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>gt(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)=>gt(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)=>gt(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function It(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function zR(e,t=0,r=0){let n=t+e.x,o=r+e.y;It(e.node,{...e,x:n,y:o});let s=e.node.props,i=yt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=yt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)zR(u,d,c)}function JR(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)),WR(e);let n=Lr(e,{x:0,y:0,width:t,height:r},null);return zR(n),n}function GM(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 WM(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 HM(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){HR(e,r);let n=$M(t),o=NM(e,n);if(o)return It(e,o),o;let s;if(e.type==="text")return s=GM(e,t),mi(e,n,as(e),s),s;if(e.type==="spacer")return s=WM(e,t),mi(e,n,as(e),s),s;if(e.type==="newline")return s=HM(e,t),mi(e,n,as(e),s),s;let i=e.props;if(i.display==="none")return s={x:t.x,y:t.y,width:0,height:0,node:e,children:[]},It(e,s),mi(e,n,as(e),s),s;let a=yt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=yt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=yt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=yt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Tt(i.marginTop??i.marginY??i.margin),p=Tt(i.marginBottom??i.marginY??i.margin),g=Tt(i.marginLeft??i.marginX??i.margin),f=Tt(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,m=hi(i.width,t.width),w=hi(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",B=i.height!==void 0&&i.height!=="auto",C=Math.max(0,(T?m:t.width)-d-c-y*2),M=Math.max(0,(B?w: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=yt(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(...YR(fe,C,N,q,i,B,e)):H.push(...qM(fe,C,N,q,i,e))}let se=0,Z=0;if(I)for(let fe of H){let ie=fe.node.props,_e=Tt(ie.marginRight??ie.marginX??ie.margin),Ie=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.x+fe.width+_e),Z=Math.max(Z,fe.y+fe.height+Ie)}else for(let fe of H){let ie=fe.node.props,_e=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+_e)}let De=vl(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,ke=T?m:De?t.width:Ee,Y=B?w:Z+a+l+y*2,de=yt(i.minWidth,"minWidth"),we=yt(i.minHeight,"minHeight");if(ke=Math.max(ke,de),Y=Math.max(Y,we),i.maxWidth!==void 0&&(ke=Math.min(ke,yt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(Y=Math.min(Y,yt(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],Ie=_e.node.props;Ie.height===void 0&&(H[ie]=VR(_e,Math.max(_e.height,fe),Ie),It(_e.node,H[ie]))}}let Oe=t.x+g,ve=t.y+u,Re=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Te=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:C,height:N},e),Ie=Oe+d+y,at=ve+a+y;ie.left!==void 0?Ie=Oe+d+y+ie.left:ie.right!==void 0&&(Ie=Oe+Re-c-y-_e.width-ie.right),ie.top!==void 0?at=ve+a+y+ie.top:ie.bottom!==void 0&&(at=ve+Te-l-y-_e.height-ie.bottom);let Nt=gt(_e,{x:Ie,y:at});It(fe,Nt),H.push(Nt)}return s={x:Oe,y:ve,width:Re,height:Te,node:e,children:H},It(e,s),mi(e,n,as(e),s),s}function YR(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return UM(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=vl(W,"flexGrow");let q=yt(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:hi(I.flexBasis,t),ae=I.flexShrink===void 0?1:vl(I.flexShrink,"flexShrink"),se=Tt(I.marginLeft??I.marginX??I.margin),Z=Tt(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 De=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?hi(I.width,t)+se+Z:t,Ee=Lr(G,{x:0,y:0,width:De,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:De})}}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 De=Math.max(0,Math.floor(Z.basis-Z.minWidth)),Ee=Math.max(0,De-G[pe]);return{index:pe,capacity:Ee,maxReduction:De,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,De=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:De,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,m=o.justifyContent??"flex-start",w=d+(c>0?g:0),T=t-w,B=0,C=0;c===0&&u.length>0&&(m==="space-between"&&u.length>1?B=T/(u.length-1):m==="space-around"?(C=T/(u.length*2),y=C):m==="space-evenly"?(B=T/(u.length+1),y=B):m==="flex-end"?y=T:m==="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?gt(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,m==="space-between"&&G<u.length-1?y+=B:m==="space-around"?y+=C*2:m==="space-evenly"?y+=B: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=VR(W,se,I),W=gt(W,{y:ae}),It(W.node,W),a.push(W)}return a}function UM(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let C of e){let M=C.props,N=Tt(M.marginLeft??M.marginX??M.margin),H=Tt(M.marginRight??M.marginX??M.margin),G=Lr(C,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:hi(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(C),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=yt(o.rowGap??o.gap,"rowGap"),p=l.map(C=>{let M=YR(C,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((C,M)=>C+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",m=0,w=0;y==="flex-end"?m=f:y==="center"?m=Math.floor(f/2):y==="space-between"&&p.length>1?w=f/(p.length-1):y==="space-around"&&p.length>0?(w=f/p.length,m=Math.floor(w/2)):y==="stretch"&&p.length>0&&(w=f/p.length);let T=[],B=m;for(let C of p){for(let M of C.layouts){let N=gt(M,{y:M.y+Math.floor(B)});It(N.node,N),T.push(N)}B+=C.height+u+w}return T}function qM(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,y=[];for(let m of e){let w=m.props,T=Tt(w.marginTop??w.marginY??w.margin),B=Tt(w.marginBottom??w.marginY??w.margin),C=w.flexGrow;C===void 0?C=w.height==="fill"||m.type==="spacer"?1:0:C=vl(C,"flexGrow");let M=yt(w.minHeight,"minHeight"),N=w.maxHeight===void 0?void 0:yt(w.maxHeight,"maxHeight");if(C>0)f+=C,g+=T+B,y.push({node:m,flex:C,minHeight:M,maxHeight:N,marginTop:T,marginBottom:B});else{let H=Lr(m,{x:0,y:0,width:t,height:r},s);g+=H.height+T+B,y.push({node:m,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:B,layout:H})}}if(g+=n*Math.max(0,e.length-1),f>0){let w=Math.max(0,r-g)/f,T=0;for(let B=0;B<y.length;B++){let C=y[B],N=C.node.props.alignSelf,H=N!=="auto"&&N?N:o.alignItems??"flex-start",G=C.layout;if(C.flex>0){let q=Math.floor(w*C.flex);q=Math.max(C.minHeight,q),C.maxHeight!==void 0&&(q=Math.min(C.maxHeight,q)),G=Lr(C.node,{x:0,y:T,width:t,height:q},s),G=gt(G,{height:q})}G||(G=Lr(C.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=gt(G,{x:I,y:T,width:W}),It(G.node,G),i.push(G),T+=C.marginTop+G.height+C.marginBottom,B<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,m=Tt(y.marginTop??y.marginY??y.margin),w=Tt(y.marginBottom??y.marginY??y.margin),T=Lr(f,{x:0,y:l,width:t,height:r-l},s),B=y.alignSelf,C=B!=="auto"&&B?B:o.alignItems??"flex-start",M=T.x,N=T.width;C==="center"?M=Math.floor((t-T.width)/2):C==="flex-end"?M=t-T.width:C==="stretch"&&(N=t);let H=gt(T,{x:M,width:N});It(H.node,H),i.push(H),l+=m+T.height+w,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]=gt(i[y],{y:i[y].y+Math.floor(f*y)}),It(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]=gt(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),It(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]=gt(i[y],{y:i[y].y+Math.floor(f*(y+1))}),It(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=gt(i[f],{y:i[f].y+g}),It(i[f].node,i[f])}return i}function hi(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 QR={background:0,normal:1,modal:2,critical:3};var XR=new Set;function ew(e,t){process.env.NODE_ENV==="production"||XR.has(e)||(XR.add(e),console.warn(`[tuiuiu] ${t}`))}var KM=Symbol("tuiuiu.hook-runtime-state"),Sp=new WeakMap;function VM(){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 Fe(KM,VM,e)}function Tp(e){return Sp.get(e)??null}function tw(e="hooks"){let t=ze();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function rw(){let e=ze();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&ew("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++){sw(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(bi(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function nw(){return ze().isRendering}function ow(){return ze().renderPhaseMode}function dr(e){let t=ze();t.isRendering||ew("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 cr(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 sw(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 Sl(e){let t=We(e),r=ze(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))sw(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 Xr(e){return ze(e).appContext}function Pp(e,t){let r=We(t),n=ze(r),o=n.appContext;n.appContext=e,o&&o!==e&&Sp.delete(o),e&&Sp.set(e,r)}function Tl(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=ze(),s=o.handlerIdCounter++,i={handler:e,priorityValue:QR[r],stopPropagation:n,id:s};return o.inputHandlers.push(i),o.inputHandlers.length>100&&console.warn(`[tuiuiu] High number of input handlers (${o.inputHandlers.length}). This may indicate a memory leak from handlers not being properly removed.`),s}function bi(e){let t=ze(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function iw(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 aw(e){let t=ze(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Ap(e,t){ze(t).focusManager=e}function lw(e){let t=ze(),r=JM(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function dw(e){let t=ze(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var zM=300,ZR=2;function JM(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<zM&&Math.abs(t.x-n.x)<=ZR&&Math.abs(t.y-n.y)<=ZR?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function cw(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 uw(e){let t=ze(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var yi=[],Al=!1,Cp=!1,Pl=0,ki=null,Ri=null;function pw(){if(!Cp){Cp=!0;for(let e=yi.length-1;e>=0;e--)try{yi[e]()}catch{}Cp=!1}}function Zr(e){return yi.push(e),()=>{let t=yi.indexOf(e);t!==-1&&yi.splice(t,1)}}function fw(){Pl++,Al||(Al=!0,ki=()=>{pw()},Ri=()=>{pw()},process.on("exit",ki),process.on("uncaughtExceptionMonitor",Ri));let e=!1;return()=>{e||(e=!0,Pl=Math.max(0,Pl-1),Pl===0&&YM())}}function YM(){Al&&(ki&&process.off("exit",ki),Ri&&process.off("uncaughtExceptionMonitor",Ri),ki=null,Ri=null,Al=!1)}var gw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,mw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,hw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,bw=/^\x1b\[(\d+);(\d+);(\d+)M/;function ur(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function Cl(e,t,r,n){if(!Number.isSafeInteger(e)||!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||e<0||t<1||r<1)return null;let o=e&3,s=(e&32)!==0,i=(e&64)!==0,a,l;return i?(a=e&1?"scroll-down":"scroll-up",l="click"):(o===0?a="left":o===1?a="middle":o===2?a="right":a="none",s&&o===3?l="move":n||o===3?l="release":s?l="drag":l="click"),{x:t-1,y:r-1,button:a,action:l,modifiers:{shift:(e&4)!==0,alt:(e&8)!==0,ctrl:(e&16)!==0}}}function yw(e){let t=gw.exec(e);if(t){let s=ur(t[1]),i=ur(t[2]),a=ur(t[3]),l=ur(t[4]),d=ur(t[5]);if(s===null||i===null||a===null||l===null||d===null||i<0||a<0)return null;let c=Cl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=mw.exec(e);if(r){let s=ur(r[1]),i=ur(r[2]),a=ur(r[3]);if(s===null||i===null||a===null)return null;let l=Cl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=hw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=Cl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=bw.exec(e);if(o){let s=ur(o[1]),i=ur(o[2]),a=ur(o[3]);if(s===null||i===null||a===null)return null;let l=Cl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function kw(e){return gw.test(e)||mw.test(e)||hw.test(e)||bw.test(e)}var QM="\x1B[?1000h\x1B[?1002h\x1B[?1006h",Rw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",XM=Symbol("tuiuiu.mouse-runtime-state");function wi(e){return Fe(XM,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function Dp(e){return Xr(e)?.stdout??process.stdout}function Op(e){return"isTTY"in e&&!!e.isTTY}function _i(e){return yw(e)}function Fp(e){return kw(e)}function ls(e){let t=We(e),r=wi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,ZM(t);let n=Dp(t);r.outputStream=n,Op(n)&&n.write(QM)}}function Zn(e){let t=We(e),r=wi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Dp(t);Op(n)&&n.write(Rw),r.outputStream=null}}function Dl(e){let t=We(e),r=wi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Dp(t);Op(n)&&n.write(Rw),r.outputStream=null}}function ZM(e){let t=wi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=Zr(Qr(e,()=>Dl(e))))}function ww(e){let t=wi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as rL}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},eL={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 tL(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 _w(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 Ol(e=process.env){let t=tL(e),r=eL[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 Pw=Symbol("tuiuiu.graphics-runtime-state");function Aw(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Ft(Pw,()=>Aw(Ir())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function jp(){let e=We();return Fe(Pw,()=>Aw(e),e)}var xw={width:10,height:20};function Fl(e){return{width:Math.max(1,Math.round(e?.width??xw.width)),height:Math.max(1,Math.round(e?.height??xw.height))}}function nL(){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 Cw(){return nL()?"halfblock":"braille"}function ds(e){return e==="none"?Cw():e}function Dw(e){let t=ds(e);return t==="halfblock"||t==="braille"}function Ow(e){let t=ds(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function Ew(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 Fw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&aL(e)?e:null}function Iw(){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 Mw(){return Ol(process.env).knownCaps.preferredGraphics||null}function Lw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function oL(){let e=Fw();if(e)return e;let t=Iw();if(t)return t;let r=Mw();return r||Lw()}function sL(e){return Fw()===e||Iw()===e?"env":Mw()===e?"profile":Lw()===e?"env":"fallback"}function cs(){let e=jp();if(e.manualOverride)return Ew(e.manualOverride,"manual",Fl(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=iL();return Ew(t,sL(t),Fl())}function iL(){let e=jp();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=oL()??Cw()),e.detectedProtocol)}function aL(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function jw(){let e=jp();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:Fl(void 0)};let r=e.negotiatedCapabilities.cellSize;if(t.width!==r.width||t.height!==r.height)for(let n of[...e.cellSizeChangeListeners])n(r)}}function lL(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 $w(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function Ei(e){return $w(e)?e:Ml(e)}function vw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function Ml(e,t={}){let r=Fl(t.cellSize??cs().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:lL(e)}}function vi(e,t={}){let r=$w(e)?e:Ml(e,{cellSize:t.cellSize}),n=t.fit??"contain",o=t.width?Math.max(1,Math.round(t.width)):void 0,s=t.height?Math.max(1,Math.round(t.height)):void 0,i=o??r.desiredColumns,a=s??r.desiredRows,l=r.desiredColumns,d=r.desiredRows,c=r.width,u=r.height,p={x:0,y:0,width:r.width,height:r.height};if(o!==void 0&&s===void 0)l=o,d=vw(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=vw(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 us={transmit(e,t={}){let r=Ei(e),n=vi(r,t),o=t.width??n.renderColumns,s=t.height??n.renderRows,i=Number.isInteger(t.imageId)&&t.imageId&&t.imageId>0?`,i=${t.imageId}`:"",a=gL(r),l=Bw(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\\"}},dL={display(e,t={}){let{pixels:r}=Ei(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Bw(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`}},cL={encode(e,t={}){let r=Ei(e),n=vi(r,t),o=t.width!==void 0||t.height!==void 0?Nw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=mL(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),m=Math.round(g/255*100);d+=`#${c};2;${f};${y};${m}`}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 m=0;m<6;m++){let w=c+m;if(w>=i)continue;let T=(w*s+f)*4,B=a[T],C=a[T+1],M=a[T+2];hL([B,C,M],l)===u&&(y|=1<<m,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function Sw(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 Ip(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 Tw={render(e,t={}){let r=Ei(e),n=vi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Nw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=Sw(i,u,l),g=Sw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=Ip(p,g)):p.a>0?(f="\u2580",y=Ip(p)):g.a>0&&(f="\u2584",y=Ip(g)),y!==c&&(c&&(d+="\x1B[0m"),y&&(d+=y),c=y),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
121
|
-
`)}},
|
|
122
|
+
`)){if(r==="truncate"||r==="truncate-end"){n.push(Zr(o,t,{position:"end",truncationCharacter:"\u2026"}));continue}if(r==="truncate-start"){n.push(Zr(o,t,{position:"start",truncationCharacter:"\u2026"}));continue}if(r==="truncate-middle"){n.push(Zr(o,t,{position:"middle",truncationCharacter:"\u2026"}));continue}n.push(...ej(o,t))}return n}function ej(e,t){if(be(e)<=t)return[e];let r=[],n="";for(let o of e.split(" ")){let s=n?`${n} ${o}`:o;if(be(s)<=t){n=s;continue}if(n&&(r.push(n),n=""),be(o)<=t){n=o;continue}let i=tj(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function tj(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===kw){let l=Zn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=eo(e,s);if(!i)break;let a=be(i.symbol);o>0&&o+a>t&&(r.push(n),n="",o=0),n+=i.symbol,o+=a,s=i.nextIndex}return(n||r.length===0)&&r.push(n),r}function Zr(e,t,r={}){let{position:n="end",truncationCharacter:o="...",space:s=!1,preferTruncationOnSpace:i=!1}=r;if(be(e)<=t)return e;if(t<be(o))return o.slice(0,t);let l=s?n==="middle"?` ${o} `:n==="start"?`${o} `:` ${o}`:o,d=be(l);return n==="start"?rj(e,t,l,d,i):n==="middle"?oj(e,t,l,d,i):nj(e,t,l,d,i)}function rj(e,t,r,n,o){let s=t-n,i=ls(e,be(e)-s);if(o){let a=i.indexOf(" ");if(a!==-1&&a<4)return r+i.slice(a+1)}return r+i}function nj(e,t,r,n,o){let s=t-n,i=ls(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 oj(e,t,r,n,o){let s=t-n,i=Math.ceil(s/2),a=Math.floor(s/2),l=ls(e,0,i),d=ls(e,be(e)-a);if(o){let c=l.lastIndexOf(" ");c!==-1&&l.length-c<4&&(l=l.slice(0,c));let u=d.indexOf(" ");u!==-1&&u<4&&(d=d.slice(u+1))}return l+r+d}function ls(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]===kw){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=Ip(e,l);if(!c){l++;continue}let u=be(c.segment),p=i>=n,g=o===void 0||i+u<=o;p&&g&&(s===""&&a&&(s+=a),s+=c.segment,d=!0),i+=u,l=c.end}return a&&d&&(s+="\x1B[0m"),s}function pt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function ki(e,t){let r=e;for(let n=0;n<t.length;n++)r=pt(r,t.charCodeAt(n));return r}function Lp(e,t,r){if(t===void 0)return pt(e,117);if(t===null)return pt(e,110);switch(typeof t){case"boolean":return pt(pt(e,98),t?49:48);case"number":return ki(pt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return ki(pt(e,105),t.toString());case"string":return ki(pt(e,115),t);case"function":return r.ignoreFunctions===!1?pt(e,102):e;case"object":{if(Array.isArray(t)){let i=pt(e,91);for(let a of t)i=Lp(i,a,r),i=pt(i,124);return pt(i,93)}let n=pt(e,123),o=t,s=Object.keys(o).sort();for(let i of s){if(r.ignoreKeys?.has(i))continue;let a=o[i];a!==void 0&&(typeof a=="function"&&r.ignoreFunctions!==!1||(n=ki(pt(n,107),i),n=pt(n,58),n=Lp(n,a,r),n=pt(n,59)))}return pt(n,125)}default:return ki(pt(e,63),String(t))}}function It(e,t={}){return Lp(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as sj}from"node:async_hooks";var Ir=Symbol("tuiuiu.runtime-resource-dispose"),xw=new sj,Fl=new Set,ij=1,ds={id:0,resources:new Map};function Ew(){let e={id:ij++,resources:new Map};return Fl.add(e),e}function aj(e){Fl.delete(e)}function vw(e){if(e!==null&&typeof e=="object"&&Ir in e)try{e[Ir]()}catch(t){console.error("[tuiuiu] Error while disposing a runtime resource:",t)}}function lj(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)vw(r)}function cs(e){aj(e),lj(e)}function qe(e,t){return xw.run(e,t)}function en(e,t){return(...r)=>qe(e,()=>t(...r))}function jp(){return xw.getStore()??null}function We(e){if(e)return e;let t=jp();return t||(Fl.size===1?Fl.values().next().value??ds:ds)}function Mr(){return ds}function Fe(e,t,r){let n=We(r);return n.resources.has(e)||n.resources.set(e,t()),n.resources.get(e)}function Mt(e,t){return ds.resources.has(e)||ds.resources.set(e,t()),ds.resources.get(e)}function Il(e,t){let r=We(t),n=r.resources.get(e);r.resources.delete(e),vw(n)}var Ce;(function(e){e[e.NONE=0]="NONE",e[e.CONTENT=1]="CONTENT",e[e.LAYOUT=2]="LAYOUT",e[e.STYLE=4]="STYLE",e[e.CHILDREN=8]="CHILDREN",e[e.FORCE_FULL=16]="FORCE_FULL"})(Ce||(Ce={}));function $p(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function dj(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 Bp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=$p();getState(t){let r=this.states.get(t);return r||(r={dirty:!0,childrenDirty:!1,version:0,flags:Ce.NONE,subtreeFlags:Ce.NONE},this.states.set(t,r)),r}beginFrame(t){this.rootNode=t,this.forceFullFrame=!1,this.diagnostics=$p()}registerNode(t,r){this.parents.set(t,r),this.getState(t)}bubbleDirtyFlags(t,r){let n=this.parents.get(t)??null,o=r,s=!1;for(;n;){s=!0;let i=this.getState(n);if(i.childrenDirty=!0,i.subtreeFlags|=o,o&Ce.LAYOUT&&dj(n)){this.diagnostics.absorbedLayoutDirtyCount++;break}n=this.parents.get(n)??null}!s&&this.rootNode&&t!==this.rootNode&&(this.diagnostics.invalidationEscalationCount++,this.forceFullFrame=!0)}markDirty(t,r=Ce.CONTENT){let n=this.getState(t);n.dirty=!0,n.flags|=r,n.version++,this.isDirty=!0,this.globalVersion++,r&Ce.FORCE_FULL&&(this.forceFullFrame=!0,this.diagnostics.forceFullCount++),this.bubbleDirtyFlags(t,r)}markClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags=Ce.NONE,r.subtreeFlags=Ce.NONE}markLayoutClean(t){let r=this.getState(t);r.dirty=!1,r.childrenDirty=!1,r.flags&=~(Ce.LAYOUT|Ce.CHILDREN|Ce.FORCE_FULL),r.subtreeFlags&=~(Ce.LAYOUT|Ce.CHILDREN|Ce.FORCE_FULL)}markChildrenDirty(t,r=Ce.CHILDREN){let n=this.getState(t);n.childrenDirty=!0,n.subtreeFlags|=r,this.isDirty=!0}isDirtyNode(t){let r=this.states.get(t);return r?r.dirty:!0}needsRender(t){let r=this.states.get(t);return r?r.dirty||r.childrenDirty||r.flags!==Ce.NONE||r.subtreeFlags!==Ce.NONE:!0}canReuseSubtree(t){if(this.forceFullFrame)return!1;let r=this.states.get(t);return r?!r.dirty&&!r.childrenDirty&&r.flags===Ce.NONE&&r.subtreeFlags===Ce.NONE:!0}hasChanges(){return this.isDirty||this.forceFullFrame}clearGlobalDirty(){this.isDirty=!1,this.forceFullFrame=!1}getGlobalVersion(){return this.globalVersion}getDiagnostics(){return{...this.diagnostics}}noteReuse(t){if(t==="layout"){this.diagnostics.layoutReuseCount++;return}this.diagnostics.drawReuseCount++}noteFresh(t){if(t==="layout"){this.diagnostics.layoutFreshCount++;return}this.diagnostics.drawFreshCount++}getCachedRender(t,r){let o=`${this.hashNode(t)}:${r}`,s=this.renderCache.get(o);if(s)return s.lastAccess=Date.now(),s}setCachedRender(t,r,n,o){let s=this.hashNode(t),i=`${s}:${r}`;this.renderCache.size>=this.maxCacheSize&&this.evictOldest(),this.renderCache.set(i,{output:n,width:r,height:o,hash:s,lastAccess:Date.now()})}hashNode(t){return It({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=$p()}},cj=Symbol("tuiuiu.dirty-registry");function Lr(e){return Fe(cj,()=>new Bp,e)}function Sw(e){Lr().beginFrame(e)}function Tw(e,t){Lr().registerNode(e,t)}function xn(e,t=Ce.CONTENT){Lr().markDirty(e,t)}function Pw(e){Lr().markLayoutClean(e)}function Ri(e){Lr().noteReuse(e)}function ro(e){Lr().noteFresh(e)}function Ml(e){return Lr().canReuseSubtree(e)}function Aw(){return Lr().getDiagnostics()}function wi(){Lr().clearGlobalDirty()}function us(e){Lr().markClean(e.node);for(let r of e.children)us(r)}var Cw=new WeakMap;function bt(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 Ll(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var Tt=e=>e==="auto"?0:bt(e,"margin"),uj=new Set(["layoutRef","__scrollQuery"]),pj=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"]),fj=new Set(["children","wrap"]);function gj(e){return`${e.x}:${e.y}:${e.width}:${e.height}`}function ps(e){let t=e.props??{},r=e.type==="text"?fj:pj,n={};for(let o of r)o in t&&(n[o]=t[o]);return It(n,{ignoreKeys:uj})}function mj(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 hj(e,t){if(!Ml(e)){ro("layout");return}let r=Cw.get(e);if(!r){ro("layout");return}if(r.ctxKey!==t){xn(e,Ce.LAYOUT),ro("layout");return}let n=ps(e);if(r.propsKey!==n||!mj(e,r.childRefs)){xn(e,r.propsKey!==n?Ce.LAYOUT:Ce.CHILDREN),ro("layout");return}return Ri("layout"),r.layout}function _i(e,t,r,n){Cw.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),Pw(e)}function mt(e,t){let r=t.x??e.x,n=t.y??e.y,o=t.width??e.width,s=t.height??e.height;return r===e.x&&n===e.y&&o===e.width&&s===e.height?e:{x:r,y:n,width:o,height:s,node:e.node,children:e.children}}function Ow(e,t,r){if(t<=e.height)return mt(e,{height:t});let n=r.flexDirection??"column";if(e.children.length===0||n!=="column"&&n!=="column-reverse")return mt(e,{height:t});let o=t-e.height,s=r.justifyContent??"flex-start",i=e.children;if(s==="center"||s==="flex-end"){let a=s==="center"?Math.floor(o/2):o;i=i.map(l=>mt(l,{y:l.y+a}))}else if(s==="space-between"&&i.length>1)i=i.map((a,l)=>mt(a,{y:a.y+Math.floor(o*l/(i.length-1))}));else if(s==="space-around"){let a=o/(i.length*2);i=i.map((l,d)=>mt(l,{y:l.y+Math.floor(a*(2*d+1))}))}else if(s==="space-evenly"){let a=o/(i.length+1);i=i.map((l,d)=>mt(l,{y:l.y+Math.floor(a*(d+1))}))}return{...e,height:t,children:i}}function Lt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function Dw(e,t=0,r=0){let n=t+e.x,o=r+e.y;Lt(e.node,{...e,x:n,y:o});let s=e.node.props,i=bt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=bt(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)Dw(u,d,c)}function Fw(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)),Sw(e);let n=jr(e,{x:0,y:0,width:t,height:r},null);return Dw(n),n}function yj(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=to(String(e.props.children??""),t.width,e.props.wrap),o=Math.max(0,...n.map(s=>be(s)));return{x:t.x,y:t.y,width:Math.min(o,t.width),height:Math.min(n.length,t.height),node:e,children:[]}}function bj(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 kj(e,t){let r=e.props.count??1,n=Number.isSafeInteger(r)&&r>=0?r:0;return{x:t.x,y:t.y,width:0,height:Math.min(n,t.height),node:e,children:[]}}function jr(e,t,r){Tw(e,r);let n=gj(t),o=hj(e,n);if(o)return Lt(e,o),o;let s;if(e.type==="text")return s=yj(e,t),_i(e,n,ps(e),s),s;if(e.type==="spacer")return s=bj(e,t),_i(e,n,ps(e),s),s;if(e.type==="newline")return s=kj(e,t),_i(e,n,ps(e),s),s;let i=e.props;if(i.display==="none")return s={x:t.x,y:t.y,width:0,height:0,node:e,children:[]},Lt(e,s),_i(e,n,ps(e),s),s;let a=bt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=bt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=bt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=bt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Tt(i.marginTop??i.marginY??i.margin),p=Tt(i.marginBottom??i.marginY??i.margin),g=Tt(i.marginLeft??i.marginX??i.margin),f=Tt(i.marginRight??i.marginX??i.margin),b=i.borderStyle&&i.borderStyle!=="none"?1:0,m=xi(i.width,t.width),w=xi(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",L=i.height!==void 0&&i.height!=="auto",C=Math.max(0,(T?m:t.width)-d-c-b*2),M=Math.max(0,(L?w:t.height)-a-l-b*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=bt(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 me=W?[...ae].reverse():ae;I?H.push(...Iw(me,C,N,q,i,L,e)):H.push(...wj(me,C,N,q,i,e))}let se=0,Z=0;if(I)for(let me of H){let ie=me.node.props,_e=Tt(ie.marginRight??ie.marginX??ie.margin),Ie=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,me.x+me.width+_e),Z=Math.max(Z,me.y+me.height+Ie)}else for(let me of H){let ie=me.node.props,_e=Tt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,me.width),Z=Math.max(Z,me.y+me.height+_e)}let Oe=Ll(i.flexGrow,"flexGrow")>0||i.width==="fill",ve=se+d+c+b*2,ke=T?m:Oe?t.width:ve,Y=L?w:Z+a+l+b*2,de=bt(i.minWidth,"minWidth"),we=bt(i.minHeight,"minHeight");if(ke=Math.max(ke,de),Y=Math.max(Y,we),i.maxWidth!==void 0&&(ke=Math.min(ke,bt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(Y=Math.min(Y,bt(i.maxHeight,"maxHeight"))),I&&i.alignItems==="stretch"){let me=Math.max(0,Y-a-l-b*2);for(let ie=0;ie<H.length;ie++){let _e=H[ie],Ie=_e.node.props;Ie.height===void 0&&(H[ie]=Ow(_e,Math.max(_e.height,me),Ie),Lt(_e.node,H[ie]))}}let De=t.x+g,Se=t.y+u,Re=Math.max(0,Math.min(ke,Math.max(0,t.width-g-f))),Pe=Math.max(0,Math.min(Y,Math.max(0,t.height-u-p)));for(let me of oe){let ie=me.props,_e=jr(me,{x:0,y:0,width:C,height:N},e),Ie=De+d+b,et=Se+a+b;ie.left!==void 0?Ie=De+d+b+ie.left:ie.right!==void 0&&(Ie=De+Re-c-b-_e.width-ie.right),ie.top!==void 0?et=Se+a+b+ie.top:ie.bottom!==void 0&&(et=Se+Pe-l-b-_e.height-ie.bottom);let Ht=mt(_e,{x:Ie,y:et});Lt(me,Ht),H.push(Ht)}return s={x:De,y:Se,width:Re,height:Pe,node:e,children:H},Lt(e,s),_i(e,n,ps(e),s),s}function Iw(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return Rj(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=Ll(W,"flexGrow");let q=bt(I.minWidth,"minWidth"),oe=I.flexBasis==="content"?jr(G,{x:0,y:0,width:t,height:r},i).width:I.flexBasis===void 0||I.flexBasis==="auto"?q:xi(I.flexBasis,t),ae=I.flexShrink===void 0?1:Ll(I.flexShrink,"flexShrink"),se=Tt(I.marginLeft??I.marginX??I.margin),Z=Tt(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 Oe=I.width!==void 0&&I.width!=="auto"&&I.width!=="fill"?xi(I.width,t)+se+Z:t,ve=jr(G,{x:0,y:0,width:Oe,height:r},i);d+=ve.width+se+Z,u.push({node:G,flex:0,minWidth:q,basis:ve.width,shrink:ae,marginLeft:se,marginRight:Z,layout:ve,measuredCtxWidth:Oe})}}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 Oe=Math.max(0,Math.floor(Z.basis-Z.minWidth)),ve=Math.max(0,Oe-G[pe]);return{index:pe,capacity:ve,maxReduction:Oe,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,Oe=Math.min(Z.capacity,Math.floor(pe));return{...Z,exact:pe,whole:Oe,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,b=0,m=o.justifyContent??"flex-start",w=d+(c>0?g:0),T=t-w,L=0,C=0;c===0&&u.length>0&&(m==="space-between"&&u.length>1?L=T/(u.length-1):m==="space-around"?(C=T/(u.length*2),b=C):m==="space-evenly"?(L=T/(u.length+1),b=L):m==="flex-end"?b=T:m==="center"&&(b=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?mt(I.layout,{x:I.layout.x+b}):jr(I.node,{x:b,y:0,width:q,height:r},i),ae=I.node.props;M=Math.max(M,oe.height),N.push({layout:oe,style:ae}),b+=I.marginLeft+oe.width+I.marginRight,m==="space-between"&&G<u.length-1?b+=L:m==="space-around"?b+=C*2:m==="space-evenly"?b+=L:b+=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=mt(W,{y:ae}),Lt(W.node,W),a.push(W)}return a}function Rj(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let C of e){let M=C.props,N=Tt(M.marginLeft??M.marginX??M.margin),H=Tt(M.marginRight??M.marginX??M.margin),G=jr(C,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:xi(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(C),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=bt(o.rowGap??o.gap,"rowGap"),p=l.map(C=>{let M=Iw(C,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((C,M)=>C+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,b=o.alignContent??"flex-start",m=0,w=0;b==="flex-end"?m=f:b==="center"?m=Math.floor(f/2):b==="space-between"&&p.length>1?w=f/(p.length-1):b==="space-around"&&p.length>0?(w=f/p.length,m=Math.floor(w/2)):b==="stretch"&&p.length>0&&(w=f/p.length);let T=[],L=m;for(let C of p){for(let M of C.layouts){let N=mt(M,{y:M.y+Math.floor(L)});Lt(N.node,N),T.push(N)}L+=C.height+u+w}return T}function wj(e,t,r,n,o,s){let i=[];if(o.height!==void 0&&o.height!=="auto"){let g=0,f=0,b=[];for(let m of e){let w=m.props,T=Tt(w.marginTop??w.marginY??w.margin),L=Tt(w.marginBottom??w.marginY??w.margin),C=w.flexGrow;C===void 0?C=w.height==="fill"||m.type==="spacer"?1:0:C=Ll(C,"flexGrow");let M=bt(w.minHeight,"minHeight"),N=w.maxHeight===void 0?void 0:bt(w.maxHeight,"maxHeight");if(C>0)f+=C,g+=T+L,b.push({node:m,flex:C,minHeight:M,maxHeight:N,marginTop:T,marginBottom:L});else{let H=jr(m,{x:0,y:0,width:t,height:r},s);g+=H.height+T+L,b.push({node:m,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:L,layout:H})}}if(g+=n*Math.max(0,e.length-1),f>0){let w=Math.max(0,r-g)/f,T=0;for(let L=0;L<b.length;L++){let C=b[L],N=C.node.props.alignSelf,H=N!=="auto"&&N?N:o.alignItems??"flex-start",G=C.layout;if(C.flex>0){let q=Math.floor(w*C.flex);q=Math.max(C.minHeight,q),C.maxHeight!==void 0&&(q=Math.min(C.maxHeight,q)),G=jr(C.node,{x:0,y:T,width:t,height:q},s),G=mt(G,{height:q})}G||(G=jr(C.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=mt(G,{x:I,y:T,width:W}),Lt(G.node,G),i.push(G),T+=C.marginTop+G.height+C.marginBottom,L<b.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],b=f.props,m=Tt(b.marginTop??b.marginY??b.margin),w=Tt(b.marginBottom??b.marginY??b.margin),T=jr(f,{x:0,y:l,width:t,height:r-l},s),L=b.alignSelf,C=L!=="auto"&&L?L:o.alignItems??"flex-start",M=T.x,N=T.width;C==="center"?M=Math.floor((t-T.width)/2):C==="flex-end"?M=t-T.width:C==="stretch"&&(N=t);let H=mt(T,{x:M,width:N});Lt(H.node,H),i.push(H),l+=m+T.height+w,g<e.length-1&&(l+=n)}let d=l,c=o.height!==void 0?r:d,u=Math.max(0,c-d),p=o.justifyContent??"flex-start";if(u>0&&i.length>0){let g=0;if(p==="flex-end")g=u;else if(p==="center")g=Math.floor(u/2);else if(p==="space-between"&&i.length>1){let f=u/(i.length-1);for(let b=0;b<i.length;b++)i[b]=mt(i[b],{y:i[b].y+Math.floor(f*b)}),Lt(i[b].node,i[b]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let b=0;b<i.length;b++)i[b]=mt(i[b],{y:i[b].y+Math.floor(f*(2*b+1))}),Lt(i[b].node,i[b]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let b=0;b<i.length;b++)i[b]=mt(i[b],{y:i[b].y+Math.floor(f*(b+1))}),Lt(i[b].node,i[b]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=mt(i[f],{y:i[f].y+g}),Lt(i[f].node,i[f])}return i}function xi(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 Mw={background:0,normal:1,modal:2,critical:3};var Lw=new Set;function $w(e,t){process.env.NODE_ENV==="production"||Lw.has(e)||(Lw.add(e),console.warn(`[tuiuiu] ${t}`))}var _j=Symbol("tuiuiu.hook-runtime-state"),Np=new WeakMap;function xj(){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 Fe(_j,xj,e)}function Gp(e){return Np.get(e)??null}function Bw(e="hooks"){let t=ze();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function Nw(){let e=ze();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&$w("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++){Hw(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(Ei(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 Ww(){return ze().renderPhaseMode}function ur(e){let t=ze();t.isRendering||$w("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 $r(e){return ze().hookState.state[e]}function rr(){return ze().hookIndex-1}function no(e,t=rr()){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 Hw(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 jl(e){let t=We(e),r=ze(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))Hw(n,r)});for(let n of r.hookState.effects)n&&n.dispose();r.hookState={state:[],effects:[]},r.hookIndex=0,r.lastMaxHookIndex=0,r.isRendering=!1}function tn(e){return ze(e).appContext}function Wp(e,t){let r=We(t),n=ze(r),o=n.appContext;n.appContext=e,o&&o!==e&&Np.delete(o),e&&Np.set(e,r)}function $l(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=ze(),s=o.handlerIdCounter++,i={handler:e,priorityValue:Mw[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 Ei(e){let t=ze(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function Uw(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 qw(e){let t=ze(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Hp(e,t){ze(t).focusManager=e}function Kw(e){let t=ze(),r=vj(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function Vw(e){let t=ze(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var Ej=300,jw=2;function vj(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<Ej&&Math.abs(t.x-n.x)<=jw&&Math.abs(t.y-n.y)<=jw?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function zw(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 Jw(e){let t=ze(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var vi=[],Nl=!1,Up=!1,Bl=0,Si=null,Ti=null;function Yw(){if(!Up){Up=!0;for(let e=vi.length-1;e>=0;e--)try{vi[e]()}catch{}Up=!1}}function rn(e){return vi.push(e),()=>{let t=vi.indexOf(e);t!==-1&&vi.splice(t,1)}}function Qw(){Bl++,Nl||(Nl=!0,Si=()=>{Yw()},Ti=()=>{Yw()},process.on("exit",Si),process.on("uncaughtExceptionMonitor",Ti));let e=!1;return()=>{e||(e=!0,Bl=Math.max(0,Bl-1),Bl===0&&Sj())}}function Sj(){Nl&&(Si&&process.off("exit",Si),Ti&&process.off("uncaughtExceptionMonitor",Ti),Si=null,Ti=null,Nl=!1)}var Xw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,Zw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,e_=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,t_=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function Gl(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 r_(e){let t=Xw.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=Gl(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=Zw.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=Gl(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=e_.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=Gl(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=t_.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=Gl(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function n_(e){return Xw.test(e)||Zw.test(e)||e_.test(e)||t_.test(e)}var Tj="\x1B[?1000h\x1B[?1002h\x1B[?1006h",o_="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",Pj=Symbol("tuiuiu.mouse-runtime-state");function Pi(e){return Fe(Pj,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function qp(e){return tn(e)?.stdout??process.stdout}function Kp(e){return"isTTY"in e&&!!e.isTTY}function Ai(e){return r_(e)}function Vp(e){return n_(e)}function fs(e){let t=We(e),r=Pi(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,Aj(t);let n=qp(t);r.outputStream=n,Kp(n)&&n.write(Tj)}}function oo(e){let t=We(e),r=Pi(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??qp(t);Kp(n)&&n.write(o_),r.outputStream=null}}function Wl(e){let t=We(e),r=Pi(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??qp(t);Kp(n)&&n.write(o_),r.outputStream=null}}function Aj(e){let t=Pi(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=rn(en(e,()=>Wl(e))))}function s_(e){let t=Pi(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as Dj}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},Cj={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 Oj(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 i_(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 Hl(e=process.env){let t=Oj(e),r=Cj[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 p_=Symbol("tuiuiu.graphics-runtime-state");function f_(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:Mt(p_,()=>f_(Mr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function Qp(){let e=We();return Fe(p_,()=>f_(e),e)}var a_={width:10,height:20};function Ul(e){return{width:Math.max(1,Math.round(e?.width??a_.width)),height:Math.max(1,Math.round(e?.height??a_.height))}}function Fj(){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 g_(){return Fj()?"halfblock":"braille"}function gs(e){return e==="none"?g_():e}function m_(e){let t=gs(e);return t==="halfblock"||t==="braille"}function h_(e){let t=gs(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function l_(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 y_(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&jj(e)?e:null}function b_(){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 k_(){return Hl(process.env).knownCaps.preferredGraphics||null}function R_(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function Ij(){let e=y_();if(e)return e;let t=b_();if(t)return t;let r=k_();return r||R_()}function Mj(e){return y_()===e||b_()===e?"env":k_()===e?"profile":R_()===e?"env":"fallback"}function ms(){let e=Qp();if(e.manualOverride)return l_(e.manualOverride,"manual",Ul(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=Lj();return l_(t,Mj(t),Ul())}function Lj(){let e=Qp();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=Ij()??g_()),e.detectedProtocol)}function jj(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function w_(){let e=Qp();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:Ul(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 $j(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 __(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function Oi(e){return __(e)?e:Kl(e)}function d_(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function Kl(e,t={}){let r=Ul(t.cellSize??ms().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:$j(e)}}function Di(e,t={}){let r=__(e)?e:Kl(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=d_(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=d_(r.desiredColumns,r.desiredRows,d),i=l,a=d,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};else if(o!==void 0&&s!==void 0)switch(i=o,a=s,n){case"fill":l=i,d=a,c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break;case"cover":{let g=Math.max(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows)),f=Math.max(1,Math.round(r.desiredColumns*g)),b=Math.max(1,Math.round(r.desiredRows*g));l=i,d=a,c=f*r.cellSize.width,u=b*r.cellSize.height,p={x:Math.max(0,Math.floor((c-i*r.cellSize.width)/2)),y:Math.max(0,Math.floor((u-a*r.cellSize.height)/2)),width:i*r.cellSize.width,height:a*r.cellSize.height};break}case"crop":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"none":l=Math.min(r.desiredColumns,i),d=Math.min(r.desiredRows,a),c=r.width,u=r.height,p={x:0,y:0,width:Math.min(r.width,l*r.cellSize.width),height:Math.min(r.height,d*r.cellSize.height)};break;case"contain":default:{let g=Math.min(i/Math.max(1,r.desiredColumns),a/Math.max(1,r.desiredRows));l=Math.max(1,Math.round(r.desiredColumns*g)),d=Math.max(1,Math.round(r.desiredRows*g)),c=l*r.cellSize.width,u=d*r.cellSize.height,p={x:0,y:0,width:c,height:u};break}}else c=r.desiredColumns*r.cellSize.width,u=r.desiredRows*r.cellSize.height,p={x:0,y:0,width:c,height:u};return{fit:n,cellSize:r.cellSize,targetColumns:i,targetRows:a,renderColumns:l,renderRows:d,resizedPixelWidth:c,resizedPixelHeight:u,visiblePixels:p}}var hs={transmit(e,t={}){let r=Oi(e),n=Di(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=Uj(r),l=x_(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\\"}},Bj={display(e,t={}){let{pixels:r}=Oi(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=x_(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`}},Nj={encode(e,t={}){let r=Oi(e),n=Di(r,t),o=t.width!==void 0||t.height!==void 0?E_({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=qj(a,256),d="\x1BPq";for(let c=0;c<l.length;c++){let[u,p,g]=l[c],f=Math.round(u/255*100),b=Math.round(p/255*100),m=Math.round(g/255*100);d+=`#${c};2;${f};${b};${m}`}for(let c=0;c<i;c+=6){for(let u=0;u<l.length;u++){let p=!1,g=`#${u}`;for(let f=0;f<s;f++){let b=0;for(let m=0;m<6;m++){let w=c+m;if(w>=i)continue;let T=(w*s+f)*4,L=a[T],C=a[T+1],M=a[T+2];Kj([L,C,M],l)===u&&(b|=1<<m,p=!0)}g+=String.fromCharCode(63+b)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function c_(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 zp(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 u_={render(e,t={}){let r=Oi(e),n=Di(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=E_(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=c_(i,u,l),g=c_(i,u,l+1),f=" ",b;p.a>0&&g.a>0?(f="\u2580",b=zp(p,g)):p.a>0?(f="\u2580",b=zp(p)):g.a>0&&(f="\u2584",b=zp(g)),b!==c&&(c&&(d+="\x1B[0m"),b&&(d+=b),c=b),d+=f}c&&(d+="\x1B[0m"),a.push(d)}return a.join(`
|
|
123
|
+
`)}},Ci=10240,Gj={render(e,t={}){let{width:r,height:n,pixels:o}=Oi(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&&Vj(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,b=[[0,0,0],[0,1,1],[0,2,2],[1,0,3],[1,1,4],[1,2,5],[0,3,6],[1,3,7]];for(let[m,w,T]of b){let L=g*2+m,C=u*4+w;if(L<r&&C<n){let M=C*r+L;d[M]<s&&(f|=1<<T)}}p+=String.fromCharCode(Ci+f)}c.push(p)}return c.join(`
|
|
122
124
|
`)},invert(e){let t="";for(let r of e){if(r===`
|
|
123
|
-
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=
|
|
125
|
+
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=Ci&&n<Ci+256){let o=Ci+(255-(n-Ci));t+=String.fromCharCode(o)}else t+=r}return t}};function Vl(e,t,r={}){switch(gs(e)){case"kitty":return hs.transmit(t,r);case"iterm2":return Bj.display(t,r);case"sixel":return Nj.encode(t,r);case"halfblock":return u_.render(t,r);case"braille":return Gj.render(t,r);default:return u_.render(t,r)}}function zl(e){switch(gs(e)){case"kitty":return hs.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var Jp=null;function Wj(){if(Jp)return Jp;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 Jp=e,e}function Hj(e){let t=Wj(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function ql(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 Yp(e,t){let r=new Uint8Array(8+t.length+4);ql(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 ql(r,Hj(n),8+t.length),r}function Uj(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);ql(s,t,0),ql(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=Yp("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let b=f*a,m=f*(1+a);l[m]=1;for(let w=0;w<a;w++){let T=n[b+w],L=w>=4?n[b+w-4]:0;l[m+1+w]=T-L&255}}let d=Dj(Buffer.from(l)),c=Yp("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=Yp("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 x_(e){return Buffer.from(e).toString("base64")}function qj(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 Kj(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 Vj(e,t,r){for(let n=0;n<r;n++)for(let o=0;o<t;o++){let s=n*t+o,i=e[s],a=i<128?0:255;e[s]=a;let l=i-a;o+1<t&&(e[s+1]+=l*7/16),n+1<r&&(o>0&&(e[s+t-1]+=l*3/16),e[s+t]+=l*5/16,o+1<t&&(e[s+t+1]+=l*1/16))}}function E_(e,t,r){let{width:n,height:o,pixels:s}=e,i=new Uint8Array(t*r*4);for(let a=0;a<r;a++)for(let l=0;l<t;l++){let d=Math.floor(l/t*n),u=(Math.floor(a/r*o)*n+d)*4,p=(a*t+l)*4;i[p]=s[u],i[p+1]=s[u+1],i[p+2]=s[u+2],i[p+3]=s[u+3]}return{pixels:i,width:t,height:r}}function Zp(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 Jl(e,t,r=0,n=0,o=null,s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=r+a,g=n+l,f=s?Math.max(p,s.x):p,b=s?Math.max(g,s.y):g,m=s?Math.min(p+d,s.x+s.width):p+d,w=s?Math.min(g+c,s.y+s.height):g+c;m>f&&w>b&&t(i,f,b,m-f,w-b,o);let T=i.props,L=T.paddingTop??T.paddingY??T.padding??0,C=T.paddingLeft??T.paddingX??T.padding??0,M=T.borderStyle&&T.borderStyle!=="none"?1:0,N=p+C+M,H=typeof T.__scrollOffsetY=="number"&&Number.isFinite(T.__scrollOffsetY)?Math.max(0,Math.floor(T.__scrollOffsetY)):0,G=g+L+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?zj(s,q):s;for(let ae of u)Jl(ae,t,N,G,i,oe)}function zj(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 v_(e){let t=[],r=0;return Jl(e,(n,o,s,i,a)=>{Zp(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),Zp(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){Jl(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=ms().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=ms().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,fs(),this.inputHandler=r=>{let n=Ai(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,oo(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},Jj=Symbol("tuiuiu.hit-test-registry");function ys(e){return Fe(Jj,()=>new Xp,e)}function ef(e,t=0){let r=ys();if(r.clear(),t===0){r.registerFromLayout(e);return}Jl(e,(n,o,s,i,a,l)=>{Zp(n)&&r.register(n,o,s+t,i,a,l)})}import nr from"node:path";import{fileURLToPath as A_}from"node:url";var Yj=[{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() {
|
|
124
126
|
const [count, setCount] = createSignal(0);
|
|
125
127
|
useHotkeys('up', () => setCount(c => c + 1));
|
|
126
128
|
return Text({}, \`Count: \${count()}\`);
|
|
@@ -190,51 +192,51 @@ useEffect(() => {
|
|
|
190
192
|
return Box({},
|
|
191
193
|
ComputedText(() => \`Score: \${score()}\`),
|
|
192
194
|
);
|
|
193
|
-
})`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function
|
|
194
|
-
`).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=Uw(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function PL(e,t){!Vw()||Hw.has(e)||(Hw.add(e),console.warn(`[tuiuiu] ${t}`))}function Si(e){Bl++;try{return e()}finally{Bl=Math.max(0,Bl-1)}}function zw(e,t){if(!Vw()||Bl>0||!nw()||ow()!=="component")return;let r=TL(e,[t])[0];if(!r||vL(r.filePath))return;let n=SL(r);PL(`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(). ${Ww("signals-inside-component-render")}`)}var _n=null,Pi=new Set,Ti=!1,Wp=class{_value;_subs=null;constructor(t){this._value=t}get value(){return _n&&_n._trackDep(this),this._value}set value(t){Object.is(this._value,t)||(this._value=t,this._notify())}update(t){this.value=t(this._value)}peek(){return this._value}_addSub(t){if(this._subs===null)this._subs=t;else if(this._subs instanceof xn){if(this._subs===t)return;this._subs=new Set([this._subs,t])}else this._subs.add(t)}_notify(){if(this._subs===null)return;if(this._subs instanceof xn){let r=this._subs;Ti?Pi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ti?Pi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof xn){this._subs===t&&(this._subs=null);return}this._subs.delete(t),this._subs.size===1?this._subs=this._subs.values().next().value:this._subs.size===0&&(this._subs=null)}}},Gp=null;var Hp=!1,Nl=new Set;function AL(e){Nl.add(e),Hp||(Hp=!0,queueMicrotask(CL))}function CL(){Hp=!1;let e=[...Nl];Nl.clear(),Jw(e,t=>t.run())}function Jw(e,t){let r=[];for(let n of e)try{t(n)}catch(o){r.push(o)}if(r.length===1)throw r[0];if(r.length>1)throw new AggregateError(r,"Multiple reactive effects failed")}var xn=class{fn;options;dependencies=new Set;_nextDeps=null;_cleanups=[];_returnCleanup;running=!1;disposed=!1;scheduled=!1;constructor(t,r={}){this.fn=t,this.options=r,this.run()}_trackDep(t){this._nextDeps&&this._nextDeps.add(t)}notify(){if(this.disposed)return;let t=this.options.scheduler;if(t){if(this.scheduled)return;this.scheduled=!0;try{t(()=>{this.run()})}catch(r){throw this.scheduled=!1,r}return}this.options.autoBatch?AL(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=Gp;Gp=this._cleanups;let r=_n;_n=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{_n=r,Gp=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,Nl.delete(this),Pi.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 pr(e){zw(new Error().stack,import.meta.url);let t=new Wp(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function Yw(e,t={}){let r=new xn(e,t);return()=>r.dispose()}function Bt(e){let t=Ti;Ti=!0;try{e()}finally{if(Ti=t,!t){let r=[...Pi];Pi.clear(),Jw(r,n=>n.notify())}}}function fs(e){let t=_n;_n=null;try{return e()}finally{_n=t}}var DL=Symbol("tuiuiu.terminal-focus-state");function OL(){let[e,t]=pr(!0);return{read:e,write:t,listeners:new Set}}function Up(e){return Fe(DL,OL,e)}function fr(e){return Up(e).read()}function qp(e,t){let r=Up(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Gl(e,t){let r=Up(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function Kp(e){qp(!0,e)}var eo={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},Xw=Symbol("tuiuiu.motion-runtime-state");function Zw(e){let t=e.id===0?null:Ft(Xw,()=>Zw(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](){t_(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function zp(){let e=We();return Fe(Xw,()=>Zw(e),e)}function Wl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function Vp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function FL(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 e_(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function IL(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Gl(Qr(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}Hl(e)})))}function Jp(e,t=fr(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 Qw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:fr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function ML(e,t){let r=fr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=Jp(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 t_(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function r_(e){if(e.schedulerTimer||!e_(e))return;IL(e);let t=ML(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(Qr(e.scope,()=>LL(e)),t))}function LL(e){if(e.schedulerTimer=null,!e_(e))return;let t=Date.now(),r=fr(e.scope),n=Jp(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=Qw(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(Qw(e,t,n,Math.max(s.intervalMs,i))))}r_(e)}function Hl(e){t_(e),r_(e)}function n_(e){let t=zp(),r=Wl(e.targetFps??t.config.targetFps,eo.targetFps),n=Wl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Wl(e.unfocusedFps??t.config.unfocusedFps,eo.unfocusedFps),frameBudgetMs:Vp(e.frameBudgetMs??t.config.frameBudgetMs,eo.frameBudgetMs),recoveryFrames:Wl(e.recoveryFrames??t.config.recoveryFrames,eo.recoveryFrames),elevatedFrameBudgetFactor:Vp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,eo.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:Vp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,eo.criticalFrameBudgetFactor)},Hl(t)}function Ul(){let e=zp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:fr(e.scope),targetFrameMs:Jp(e),recommendedPresentationIntervalMs:FL(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function jL(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function $L(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 o_(e){let t=zp();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"),Hl(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?jL(t):$L(t),Hl(t),t.qualityTier}function En(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function s_(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function i_(e){return e?Ot({key:e.key,transforms:e.transforms}):null}function Ai(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 BL(e,t){let r=Ai(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function NL(e,t){let r=En(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Ai(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function GL(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 WL(e,t,r){let n=En(t.scale);if(n<=0)return null;if(n>=1)return e;let o=Math.max(0,Math.round(r.width*n)),s=Math.max(0,Math.round(r.height*n));if(o===0||s===0)return null;let i={x:r.x+Math.floor((r.width-o)/2),y:r.y+Math.floor((r.height-s)/2),width:o,height:s},a=Ai(e);return a.clip=GL(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function HL(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 UL(e,t,r){if(e.type!=="text")return e;let n=En(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*En(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!HL(e,r,o,s))return e;let i=Ai(e);return i.style={...i.style,bold:!0,inverse:!0},i}function qL(e,t,r){let n=En(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Ai(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 B=o.x,C=o.x+Math.max(1,o.maxWidth),M=Math.max(B,g),N=Math.min(C,f);if(N<=M)return null;let H=Math.max(0,M-B),G=Math.max(H,N-B);return o.text=ns(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,m=o.x+Math.max(1,o.width),w=Math.max(y,g),T=Math.min(m,f);return T<=w?null:(o.x=w,o.width=Math.max(0,T-w),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function KL(e,t,r){let n=Ul().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&En(s.opacity)<=0||s.kind==="scale"&&En(s.scale)<=0||s.kind==="reveal"&&En(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=BL(o,s);break;case"fade":o=NL(o,s);break;case"scale":o=WL(o,s,r);break;case"shimmer":o=UL(o,s,r);break;case"reveal":o=qL(o,s,r);break}}return o}function a_(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=KL(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var VL=1,zL=Symbol("tuiuiu.frame-runtime-state");function Qp(e){return Fe(zL,()=>({committedFrameSnapshot:null}),e)}var JL=new Set(["__terminalImage","__compositor"]),YL=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),QL=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Yp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},ql=new WeakMap,Sn=new Map,c_=4096;function vn(){return typeof performance<"u"?performance.now():Date.now()}function XL(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 ZL(e){return{eagerHitTargets:e?.eagerHitTargets??Yp.eagerHitTargets,eagerQueries:e?.eagerQueries??Yp.eagerQueries,eagerWarnings:e?.eagerWarnings??Yp.eagerWarnings}}function ej(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 m=f.paddingTop??f.paddingY??f.padding??0,w=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,B=p+w+T,C=g+m+T;for(let M of u)r(M,B,C)};return r(e),t}function tj(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 rj(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&&tj(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 m=f.paddingTop??f.paddingY??f.padding??0,w=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,B=p+w+T,C=g+m+T;for(let M of u)r(M,B,C)};return r(e),t}function nj(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 gs(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function l_(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 oj(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 sj(e,t,r,n,o){return{getElement:s=>{let i=l_(e,s);return i.status==="missing"?gs(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"&&gs(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=l_(e,s);return!i.found||!i.bounds?(i.status==="missing"?gs(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"&&gs(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=oj(t,s);return i.status==="missing"?gs(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"&&gs(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 ij(e,t,r,n=[],o){let s=n.length>0?Ot(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function aj(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 lj(e,t){let r=e.type==="text"?QL:YL,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Ot({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:JL})}function dj(e,t,r,n,o,s){return Ot([t,r,i_(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function cj(e,t,r){if(!El(e.node))return;let n=ql.get(e);if(!n)return;if(n.cacheKey!==t){wn(e.node,Ce.LAYOUT);return}let o=r();if(n.fingerprint!==o){wn(e.node,Ce.CONTENT|Ce.STYLE);return}if(n.childRefs.length!==e.node.children.length){wn(e.node,Ce.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){wn(e.node,Ce.CHILDREN);return}return n}function d_(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return ql.set(e,i),i}function uj(e){return e.map((t,r)=>({...t,order:r}))}function u_(e,t){return t?`${e}|motion:${Ul().qualityTier}`:e}function pj(){let e=Math.max(1,Math.ceil(c_*.1)),t=Sn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Sn.delete(n.value)}}function fj(e){return Sn.get(e)}function gj(e,t,r){let n=Sn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Sn.has(e)&&Sn.size>=c_&&pj(),Sn.set(e,o),o}function mj(e,t,r){let n=Sn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function hj(e,t){for(let r of t)e.push(r)}function bj(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function yj(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function p_(e){let t=e.props;return s_(t?.__compositor)?t.__compositor:null}function f_(e,t=new Map){let r=p_(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)f_(n,t);return t}function kj(e,t,r,n,o,s){if(!yj(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,m=cs(),w=bj(y.source)?y.source:Ml(y.source,{cellSize:m.cellSize}),T=y.options?.protocol??m.protocol,B=ds(T),C=vi(w,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,C.renderColumns)),N=Math.max(0,Math.min(f,C.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:w,fit:C.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:B,cellRender:Dw(B),protocolState:y.protocolState}}function Rj(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 g_(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=p_(i),m=y?[...o,y.key]:[...o],w=y!==null,T=kj(e,p,g,d,c,f),B=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",C=ij(t,r,n,m,s)+B,M,N=()=>(M===void 0&&(M=lj(i,T)),M),H=cj(e,C,N);if(H)return fi("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,De=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,Ee=g+ae+Z-De,ke=W??n,Y=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",we={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},Oe=Y||de?aj(s,we):s;for(let ie of u){let _e=g_(ie,pe,Ee,ke,m,Oe);q.push(_e),w||=_e.hasCompositor,oe.push(_e.subtreeSignature)}let ve=dj(e,C,G,y,m,oe),Re=fj(ve);if(Re){fi("draw");let ie=d_(e,C,G,Re.commands,Re.hasCompositor,ve),_e=u_(ve,Re.hasCompositor);return Re.materialized&&Re.materializedSignature===_e&&(ie.materialized=Re.materialized,ie.materializedSignature=_e),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:ve}}let Te=[];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;Te.push({type:"box",id:I,nodeType:i.type,compositorKeys:m.length>0?[...m]: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)),Ie=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
|
|
195
|
+
})`,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 Qj(e){let t=Yj.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function Xj(e){return`docs/resources/common-mistakes.md#${Qj(e).anchor}`}function S_(e){return`See ${Xj(e)} or tuiuiu://guide/common-mistakes.`}var T_=new Set,C_=nr.normalize(A_(import.meta.url)),Zj=nr.dirname(nr.dirname(C_)),e$=nr.dirname(Zj),Yl=0;function O_(){return process.env.NODE_ENV!=="production"}function P_(e){return e.startsWith("file://")?nr.normalize(A_(e)):nr.normalize(e)}function t$(e){let t=nr.normalize(e);return t.startsWith(e$)?t.includes(`${nr.sep}src${nr.sep}`)||t.includes(`${nr.sep}dist${nr.sep}`):!1}function r$(e){let t=nr.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function n$(e,t=[]){if(!e)return[];let r=new Set([C_,...t.map(P_)]),n=e.split(`
|
|
196
|
+
`).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=P_(a[1]);r.has(l)||o.push({filePath:l,line:Number.parseInt(a[2],10),column:Number.parseInt(a[3],10)})}return o}function o$(e,t){!O_()||T_.has(e)||(T_.add(e),console.warn(`[tuiuiu] ${t}`))}function Fi(e){Yl++;try{return e()}finally{Yl=Math.max(0,Yl-1)}}function D_(e,t){if(!O_()||Yl>0||!Gw()||Ww()!=="component")return;let r=n$(e,[t])[0];if(!r||t$(r.filePath))return;let n=r$(r);o$(`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(). ${S_("signals-inside-component-render")}`)}var En=null,Mi=new Set,Ii=!1,rf=class{_value;_subs=null;constructor(t){this._value=t}get value(){return En&&En._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 vn){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 vn){let r=this._subs;Ii?Mi.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ii?Mi.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof vn){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)}}},tf=null;var nf=!1,Ql=new Set;function s$(e){Ql.add(e),nf||(nf=!0,queueMicrotask(i$))}function i$(){nf=!1;let e=[...Ql];Ql.clear(),F_(e,t=>t.run())}function F_(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 vn=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?s$(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=tf;tf=this._cleanups;let r=En;En=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{En=r,tf=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,Ql.delete(this),Mi.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){D_(new Error().stack,import.meta.url);let t=new rf(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function I_(e,t={}){let r=new vn(e,t);return()=>r.dispose()}function Wt(e){let t=Ii;Ii=!0;try{e()}finally{if(Ii=t,!t){let r=[...Mi];Mi.clear(),F_(r,n=>n.notify())}}}function bs(e){let t=En;En=null;try{return e()}finally{En=t}}var a$=Symbol("tuiuiu.terminal-focus-state");function l$(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function of(e){return Fe(a$,l$,e)}function mr(e){return of(e).read()}function sf(e,t){let r=of(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Xl(e,t){let r=of(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function af(e){sf(!0,e)}var so={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},L_=Symbol("tuiuiu.motion-runtime-state");function j_(e){let t=e.id===0?null:Mt(L_,()=>j_(Mr())),r={config:{...t?.config??so},qualityTier:"full",presentationPressure:"normal",onBudgetStreak:0,pressureOnBudgetStreak:0,schedulerTimer:null,cleanupFocusSubscription:null,nextFrameRequestId:1,nextIntervalId:1,lastPresentationAt:0,frameCallbacks:new Map,intervalSubscriptions:new Map,prefersReducedMotion:t?.prefersReducedMotion??!1,scope:e,[Ir](){B_(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function df(){let e=We();return Fe(L_,()=>j_(e),e)}function Zl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function lf(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function d$(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 $_(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function c$(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Xl(en(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}ed(e)})))}function cf(e,t=mr(e.scope)){if(!t)return 1e3/e.config.unfocusedFps;switch(e.qualityTier){case"reduced":return 1e3/e.config.reducedFps;case"skip":return 0;case"full":default:return 1e3/e.config.targetFps}}function M_(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:mr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function u$(e,t){let r=mr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=cf(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 B_(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function N_(e){if(e.schedulerTimer||!$_(e))return;c$(e);let t=u$(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(en(e.scope,()=>p$(e)),t))}function p$(e){if(e.schedulerTimer=null,!$_(e))return;let t=Date.now(),r=mr(e.scope),n=cf(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=M_(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(M_(e,t,n,Math.max(s.intervalMs,i))))}N_(e)}function ed(e){B_(e),N_(e)}function G_(e){let t=df(),r=Zl(e.targetFps??t.config.targetFps,so.targetFps),n=Zl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Zl(e.unfocusedFps??t.config.unfocusedFps,so.unfocusedFps),frameBudgetMs:lf(e.frameBudgetMs??t.config.frameBudgetMs,so.frameBudgetMs),recoveryFrames:Zl(e.recoveryFrames??t.config.recoveryFrames,so.recoveryFrames),elevatedFrameBudgetFactor:lf(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,so.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:lf(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,so.criticalFrameBudgetFactor)},ed(t)}function td(){let e=df();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:mr(e.scope),targetFrameMs:cf(e),recommendedPresentationIntervalMs:d$(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function f$(e){if(e.pressureOnBudgetStreak=0,e.presentationPressure==="normal"){e.presentationPressure="elevated";return}e.presentationPressure==="elevated"&&(e.presentationPressure="critical")}function g$(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 W_(e){let t=df();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"),ed(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?f$(t):g$(t),ed(t),t.qualityTier}function Sn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function H_(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function U_(e){return e?It({key:e.key,transforms:e.transforms}):null}function Li(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 m$(e,t){let r=Li(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function h$(e,t){let r=Sn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Li(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function y$(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 b$(e,t,r){let n=Sn(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=Li(e);return a.clip=y$(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function k$(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 R$(e,t,r){if(e.type!=="text")return e;let n=Sn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*Sn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!k$(e,r,o,s))return e;let i=Li(e);return i.style={...i.style,bold:!0,inverse:!0},i}function w$(e,t,r){let n=Sn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Li(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 L=o.x,C=o.x+Math.max(1,o.maxWidth),M=Math.max(L,g),N=Math.min(C,f);if(N<=M)return null;let H=Math.max(0,M-L),G=Math.max(H,N-L);return o.text=ls(o.text,H,G),o.x=M,o.maxWidth=Math.max(0,N-M),o.maxWidth>0&&o.text.length>0?o:null}let b=o.x,m=o.x+Math.max(1,o.width),w=Math.max(b,g),T=Math.min(m,f);return T<=w?null:(o.x=w,o.width=Math.max(0,T-w),o.width>0?o:null)}let s=Math.max(0,Math.round(r.height*n));if(s<=0)return null;let i=t.direction==="up"?r.y:r.y+r.height-s,a=i+s;if(o.type==="text")return o.y>=i&&o.y<a?o:null;let l=o.y,d=o.y+Math.max(1,o.height),c=Math.max(l,i),u=Math.min(d,a);return u<=c?null:(o.y=c,o.height=Math.max(0,u-c),o.height>0?o:null)}function _$(e,t,r){let n=td().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&Sn(s.opacity)<=0||s.kind==="scale"&&Sn(s.scale)<=0||s.kind==="reveal"&&Sn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=m$(o,s);break;case"fade":o=h$(o,s);break;case"scale":o=b$(o,s,r);break;case"shimmer":o=R$(o,s,r);break;case"reveal":o=w$(o,s,r);break}}return o}function q_(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=_$(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var x$=1,E$=Symbol("tuiuiu.frame-runtime-state");function pf(e){return Fe(E$,()=>({committedFrameSnapshot:null}),e)}var v$=new Set(["__terminalImage","__compositor"]),S$=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),T$=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),uf={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},rd=new WeakMap,Pn=new Map,z_=4096;function Tn(){return typeof performance<"u"?performance.now():Date.now()}function P$(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 A$(e){return{eagerHitTargets:e?.eagerHitTargets??uf.eagerHitTargets,eagerQueries:e?.eagerQueries??uf.eagerQueries,eagerWarnings:e?.eagerWarnings??uf.eagerWarnings}}function C$(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,b=typeof f.id=="string"?f.id:void 0;if(b&&b.length>0){let M=t.get(b)??[];M.push({id:b,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c}}),t.set(b,M)}let m=f.paddingTop??f.paddingY??f.padding??0,w=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,L=p+w+T,C=g+m+T;for(let M of u)r(M,L,C)};return r(e),t}function O$(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 D$(e){let t=new Map,r=(n,o=0,s=0)=>{let{node:i,x:a,y:l,width:d,height:c,children:u}=n,p=o+a,g=s+l,f=i.props,b=typeof f.id=="string"?f.id:void 0;if(b&&b.length>0&&O$(f.__scrollQuery)){let M=t.get(b)??[];M.push({id:b,nodeType:i.type,bounds:{x:p,y:g,width:d,height:c},metadata:f.__scrollQuery}),t.set(b,M)}let m=f.paddingTop??f.paddingY??f.padding??0,w=f.paddingLeft??f.paddingX??f.padding??0,T=f.borderStyle&&f.borderStyle!=="none"?1:0,L=p+w+T,C=g+m+T;for(let M of u)r(M,L,C)};return r(e),t}function F$(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 ks(e,t,r){e.some(o=>o.code===r.code&&o.id===r.id)||(e.push(r),t.structural.warningCount=e.length)}function K_(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 I$(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 M$(e,t,r,n,o){return{getElement:s=>{let i=K_(e,s);return i.status==="missing"?ks(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"&&ks(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=K_(e,s);return!i.found||!i.bounds?(i.status==="missing"?ks(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"&&ks(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=I$(t,s);return i.status==="missing"?ks(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"&&ks(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 L$(e,t,r,n=[],o){let s=n.length>0?It(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function j$(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 $$(e,t){let r=e.type==="text"?T$:S$,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return It({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:v$})}function B$(e,t,r,n,o,s){return It([t,r,U_(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function N$(e,t,r){if(!Ml(e.node))return;let n=rd.get(e);if(!n)return;if(n.cacheKey!==t){xn(e.node,Ce.LAYOUT);return}let o=r();if(n.fingerprint!==o){xn(e.node,Ce.CONTENT|Ce.STYLE);return}if(n.childRefs.length!==e.node.children.length){xn(e.node,Ce.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){xn(e.node,Ce.CHILDREN);return}return n}function V_(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return rd.set(e,i),i}function G$(e){return e.map((t,r)=>({...t,order:r}))}function J_(e,t){return t?`${e}|motion:${td().qualityTier}`:e}function W$(){let e=Math.max(1,Math.ceil(z_*.1)),t=Pn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Pn.delete(n.value)}}function H$(e){return Pn.get(e)}function U$(e,t,r){let n=Pn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Pn.has(e)&&Pn.size>=z_&&W$(),Pn.set(e,o),o}function q$(e,t,r){let n=Pn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function K$(e,t){for(let r of t)e.push(r)}function V$(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function z$(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function Y_(e){let t=e.props;return H_(t?.__compositor)?t.__compositor:null}function Q_(e,t=new Map){let r=Y_(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)Q_(n,t);return t}function J$(e,t,r,n,o,s){if(!z$(s.__terminalImage))return null;let i=s.paddingTop??s.paddingY??s.padding??0,a=s.paddingBottom??s.paddingY??s.padding??0,l=s.paddingLeft??s.paddingX??s.padding??0,d=s.paddingRight??s.paddingX??s.padding??0,c=s.borderStyle&&s.borderStyle!=="none"?1:0,u=t+l+c,p=r+i+c,g=Math.max(0,n-l-d-c*2),f=Math.max(0,o-i-a-c*2);if(g<=0||f<=0)return null;let b=s.__terminalImage,m=ms(),w=V$(b.source)?b.source:Kl(b.source,{cellSize:m.cellSize}),T=b.options?.protocol??m.protocol,L=gs(T),C=Di(w,{...b.options,width:b.options?.width??g,height:b.options?.height??f}),M=Math.max(0,Math.min(g,C.renderColumns)),N=Math.max(0,Math.min(f,C.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:b.protocolState?.instanceKey,kittyImageId:b.protocolState?.kittyImageId,source:w,fit:C.fit,threshold:b.options?.threshold,dither:b.options?.dither,preserveAspectRatio:b.options?.preserveAspectRatio,protocol:L,cellRender:m_(L),protocolState:b.protocolState}}function Y$(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 X_(e,t=0,r=0,n,o=[],s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=t+a,g=r+l,f=i.props,b=Y_(i),m=b?[...o,b.key]:[...o],w=b!==null,T=J$(e,p,g,d,c,f),L=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",C=L$(t,r,n,m,s)+L,M,N=()=>(M===void 0&&(M=$$(i,T)),M),H=N$(e,C,N);if(H)return Ri("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,Oe=typeof f.__scrollOffsetY=="number"&&Number.isFinite(f.__scrollOffsetY)?Math.max(0,Math.floor(f.__scrollOffsetY)):0,ve=g+ae+Z-Oe,ke=W??n,Y=f.overflow==="hidden"||f.overflowX==="hidden",de=f.overflow==="hidden"||f.overflowY==="hidden",we={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?j$(s,we):s;for(let ie of u){let _e=X_(ie,pe,ve,ke,m,De);q.push(_e),w||=_e.hasCompositor,oe.push(_e.subtreeSignature)}let Se=B$(e,C,G,b,m,oe),Re=H$(Se);if(Re){Ri("draw");let ie=V_(e,C,G,Re.commands,Re.hasCompositor,Se),_e=J_(Se,Re.hasCompositor);return Re.materialized&&Re.materializedSignature===_e&&(ie.materialized=Re.materialized,ie.materializedSignature=_e),{commands:ie.commands,hasCompositor:ie.hasCompositor,subtreeSignature:Se}}let Pe=[];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;Pe.push({type:"box",id:I,nodeType:i.type,compositorKeys:m.length>0?[...m]: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,be(ie)),Ie=f.__splitDivider?[f.__splitDivider.top,...Array.from({length:Math.max(0,Math.floor(c))},()=>ie),f.__splitDivider.bottom].join(`
|
|
195
197
|
`):f.__divider==="horizontal"?ie.repeat(Math.ceil(d/_e)):f.__divider==="vertical"?Array.from({length:Math.max(0,Math.floor(c))},()=>ie).join(`
|
|
196
|
-
`):ie;Te.push({type:"text",id:I,nodeType:i.type,compositorKeys:m.length>0?[...m]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Ie,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&&Te.push({...T,compositorKeys:m.length>0?[...m]:void 0,clip:s});for(let ie of q)hj(Te,ie.commands);Qn("draw");let fe=d_(e,C,G,Te,w,ve);return gj(ve,fe.commands,w),{commands:fe.commands,hasCompositor:w,subtreeSignature:ve}}function wj(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 _j(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=wj(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function xj(e){let t=g_(e),r=ql.get(e),n=u_(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=uj(t.commands),s=t.hasCompositor?a_(o,f_(e)):o,i=_j(s),a=ql.get(e);return a&&(a.materialized=i,a.materializedSignature=n),mj(t.subtreeSignature,i,n),i}function m_(e,t,r={}){let n=ZL(r),o=XL(t),s=Date.now(),i=vn(),a=vn(),l=JR(e,o.width,o.height),d=vn()-a,c=vn(),u=xj(l),p=Rj(u),g=vn()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},y=qR();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 m,w,T,B=[],C=!1,M=()=>(m||(m=ej(l)),m),N=()=>(w||(w=rj(l)),w),H=()=>{if(!T){let ae=vn();T=Gw(l),f.phases.hitTargetRegistrationMs=vn()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(C||(B.push(...nj(M())),C=!0,f.structural.warningCount=B.length),B);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&H();let I=sj(M,N,o,B,f),W=Date.now(),q=vn()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:VL++,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 h_(e,t){Qp(t).committedFrameSnapshot=e}function b_(e){return Qp(e).committedFrameSnapshot}function y_(e){Qp(e).committedFrameSnapshot=null}function it(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Pt(e,t,r){e.metrics.structural[t]=r}function k_(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 w_=Symbol("tuiuiu.progressive-runtime-state");function R_(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function Ej(e){if(e.id===0)return R_();let t=Ft(w_,R_);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function Xp(){let e=We();return Fe(w_,()=>Ej(e),e)}function __(){return Xp().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function x_(){return Xp().capabilityOverrides}function Zp(){return Xp().progressiveVersion}function vj(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=Ol(t),a=_w(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",m=l.strikethrough||y,w=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,B=T.columns||80,C=T.rows||24,M=__(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:m,hyperlinks:w,terminalName:c,isCI:d,columns:B,rows:C,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=x_();return H&&Object.assign(N,H),N}var E_=Symbol("tuiuiu.capability-runtime-state");function v_(e){let t=e.id===0?"auto":fs(Ft(E_,()=>v_(Ir())).renderModeSignal),[r,n]=pr(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 Ci(e){let t=We(e);return Fe(E_,()=>v_(t),t)}function S_(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function Sj(e){return vj({env:e.source.env,stdout:e.source.stdout??process.stdout})}function Kl(e){return e.cachedCapabilities=Sj(e),e.cachedProgressiveVersion=Zp(),e.cachedCapabilities}function T_(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{Kl(e);let r=S_(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function P_(e){let t=Ci(),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,T_(t)}function $r(){let e=Ci(),t=Zp();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&Kl(e),e.cachedCapabilities??Kl(e)}function A_(){return Kl(Ci())}function C_(){return S_(Ci())}function D_(e){let t=Ci();return t.resizeHandlers.add(e),T_(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var O_={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},Tj={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},Pj=512,to=new Map,F_=4e6;function Br(){return{char:" ",attrs:{}}}function tf(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 Aj(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&&tf(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function I_(e,t){return e.char===t.char&&tf(e.fg,t.fg)&&tf(e.bg,t.bg)&&Aj(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Vl(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>F_)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${F_} 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(Br());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]=Br(),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]=Br(),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]=Br(),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]=Br(),this.addDamage(t-1,r,1,1))}return}let o=ye(n.char);if(!(o<=1)){this.cells[r][t]=Br(),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]=Br(),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===`
|
|
197
|
-
`)continue;if(a>=this.width)break;let c=
|
|
198
|
-
`)}function nf(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=j_(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+(Mj(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function Jl(e,t){let r=t??$r().multiplexer;if(!r)return e;switch(r.type){case"tmux":return`\x1BPtmux;${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"screen":return`\x1BP${e.replace(/\x1b/g,"\x1B\x1B")}\x1B\\`;case"zellij":return e}}var Lj="\x1B[?2026h",jj="\x1B[?2026l";function $_(e){let t=e??$r();return t.synchronizedOutput?Jl(Lj,t.multiplexer):""}function B_(e){let t=e??$r();return t.synchronizedOutput?Jl(jj,t.multiplexer):""}var of={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 G_="\x1B[?25h",$j="\x1B[?25l",Yl=!1,N_=!1,Bj=null,sf=null;function af(e){return"isTTY"in e&&!!e.isTTY}function Nj(){let e=sf??process.stdout;af(e)&&Yl&&(e.write(G_),Yl=!1)}function Gj(){N_||(N_=!0,Bj=Zr(Nj))}function ms(e=process.stdout){af(e)&&(sf=e,Yl=!1,e.write(G_))}function hs(e=process.stdout){af(e)&&(sf=e,Gj(),Yl=!0,e.write($j))}var Wj="#ffffff",Hj="#000000",Uj="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},qj={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},Kj={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},h={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},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"},Vj={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"},zj={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},Jj={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},me={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},Yj={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},Qj={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"},Xj={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"},Zj={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},e$={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},t$={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},r$={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},n$={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},o$={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},W_={white:Wj,black:Hj,transparent:Uj,slate:k,gray:qj,zinc:Kj,neutral:h,stone:Ue,red:ue,orange:Vj,amber:ge,yellow:zj,lime:Jj,green:me,emerald:Yj,teal:Qj,cyan:Xe,sky:Xj,blue:te,indigo:Zj,violet:e$,purple:t$,fuchsia:r$,pink:n$,rose:o$};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:me[50],100:me[100],200:me[200],300:me[300],400:me[400],500:me[500],600:me[600],700:me[700],800:me[800],900:me[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]}},lf={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:me[50],100:me[100],200:me[200],300:me[300],400:me[400],500:me[500],600:me[600],700:me[700],800:me[800],900:me[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]}},H_={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:me[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"}},U_={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"}},q_={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"}},K_={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"}},V_={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}},z_={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"}},J_={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}},Y_={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:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},success:{50:me[50],100:me[100],200:me[200],300:me[300],400:me[400],500:me[500],600:me[600],700:me[700],800:me[800],900:me[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:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]}},Q_={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:h[950],surface:h[900],raised:h[800],elevated:h[700],popover:h[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:h[100],muted:h[300],disabled:h[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:me[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:h[900],fg:h[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:h[500],subtle:h[700],strong:h[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:h[800],fg:"#ffffff",hoverBg:h[700],activeBg:h[900],border:h[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:h[950],headerBg:h[900],footerBg:h[900],border:h[500]},menu:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],activeBg:te[800],selectedBg:te[900],disabledFg:h[500]}},tabs:{bg:h[950],border:h[500],tab:{fg:h[300],activeFg:"#ffffff",activeBg:h[800],hoverFg:h[100],indicator:te[400]}},dropdown:{bg:h[950],border:h[500],item:{fg:"#ffffff",hoverBg:h[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:h[400],border:h[500],focusBorder:te[400],invalidBorder:ue[400]},checkbox:{bg:"#000000",border:h[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:h[400],checkedBorder:te[400]},tooltip:{bg:h[800],fg:"#ffffff"},modal:{bg:h[950],border:h[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:h[700],fg:"#ffffff"},success:{bg:me[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:h[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:h[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:h[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},success:{bg:me[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:me[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:h[950],fg:h[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Xe[500],fg:"#000000"},success:{bg:me[500],fg:"#000000"},warning:{bg:ge[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:h[300],border:h[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:h[300],border:te[400]},secondary:{bg:"#000000",titleFg:h[100],subtitleFg:h[400],border:h[700]}},appshell:{bg:"#000000",dividerFg:h[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:h[950],headerFg:"#ffffff",contentBg:"#000000",border:h[500],iconFg:h[300]},primary:{headerBg:h[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:h[900],headerFg:"#ffffff",contentBg:h[950],border:h[500],iconFg:h[300]}},commandPalette:{bg:h[950],border:h[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:h[400],itemFg:"#ffffff",itemHoverBg:h[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:h[400]},splitPanel:{bg:"#000000",dividerBg:h[500],dividerHoverBg:h[400],dividerActiveBg:te[400],border:h[500],titleFg:h[300]},toast:{success:{bg:co.success[900],fg:co.success[100],border:me[400],iconFg:me[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:h[950],titleBarFg:"#ffffff",border:h[500],buttonFg:h[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:me[500],titleBarFg:"#000000",border:me[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 s$={primary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},secondary:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},success:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},warning:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},danger:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]},neutral:{50:h[50],100:h[100],200:h[200],300:h[300],400:h[400],500:h[500],600:h[600],700:h[700],800:h[800],900:h[900]}},X_={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:s$,background:{lowest:h[950],base:h[900],subtle:h[800],surface:h[700],raised:h[600],elevated:h[500],popover:h[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:h[50],secondary:h[200],muted:h[400],disabled:h[500],inverse:{base:h[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:h[300],warning:h[400],critical:h[200],info:h[300],highlight:h[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:h[400],ring:{color:h[400],width:2}},disabled:{opacity:.4,bg:h[800],fg:h[500]},selected:{bg:h[700],fg:h[50]}},borders:{default:h[600],subtle:h[700],strong:h[400],accent:h[400],danger:h[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:h[300],fg:h[900],hoverBg:h[200],activeBg:h[400],border:"transparent"},secondary:{bg:h[700],fg:h[50],hoverBg:h[600],activeBg:h[800],border:"transparent"},outline:{bg:"transparent",fg:h[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:h[400]},ghost:{bg:"transparent",fg:h[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:h[800],headerBg:h[700],footerBg:h[700],border:h[600]},menu:{bg:h[800],border:h[600],item:{fg:h[50],hoverBg:h[700],activeBg:h[600],selectedBg:h[700],disabledFg:h[500]}},tabs:{bg:h[800],border:h[600],tab:{fg:h[400],activeFg:h[50],activeBg:h[700],hoverFg:h[200],indicator:h[300]}},dropdown:{bg:h[800],border:h[600],item:{fg:h[50],hoverBg:h[700],selectedBg:h[600]}},input:{bg:h[800],fg:h[50],placeholder:h[500],border:h[600],focusBorder:h[400],invalidBorder:h[300]},checkbox:{bg:h[800],border:h[500],checkColor:h[900],checkedBg:h[300]},radio:{bg:h[800],dotColor:h[300],border:h[500],checkedBorder:h[300]},tooltip:{bg:h[700],fg:h[50]},modal:{bg:h[800],border:h[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:h[700],fg:h[50]},success:{bg:h[400],fg:h[900]},warning:{bg:h[500],fg:h[900]},danger:{bg:h[300],fg:h[900]}},list:{item:{bg:"transparent",hoverBg:h[800],selectedBg:h[700],fg:h[50]}},header:{default:{bg:h[800],fg:h[50],titleFg:h[50],subtitleFg:h[400],border:h[600]},primary:{bg:h[300],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[400]},secondary:{bg:h[700],fg:h[50],titleFg:h[50],subtitleFg:h[400],border:h[600]},success:{bg:h[400],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[500]},warning:{bg:h[500],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[600]},danger:{bg:h[300],fg:h[900],titleFg:h[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:h[400]}},statusbar:{default:{bg:h[800],fg:h[400]},primary:{bg:h[300],fg:h[900]},info:{bg:h[400],fg:h[900]},success:{bg:h[400],fg:h[900]},warning:{bg:h[500],fg:h[900]},danger:{bg:h[300],fg:h[900]}},page:{default:{bg:h[900],titleFg:h[50],subtitleFg:h[400],border:h[600]},primary:{bg:h[900],titleFg:h[200],subtitleFg:h[400],border:h[500]},secondary:{bg:h[900],titleFg:h[300],subtitleFg:h[500],border:h[700]}},appshell:{bg:h[950],dividerFg:h[600],sidebarBg:h[900],asideBg:h[900]},collapsible:{default:{headerBg:h[800],headerFg:h[50],contentBg:h[900],border:h[600],iconFg:h[400]},primary:{headerBg:h[700],headerFg:h[200],contentBg:h[900],border:h[500],iconFg:h[300]},secondary:{headerBg:h[700],headerFg:h[50],contentBg:h[800],border:h[600],iconFg:h[400]}},commandPalette:{bg:h[800],border:h[600],inputBg:h[900],inputFg:h[50],inputPlaceholder:h[500],itemFg:h[50],itemHoverBg:h[700],itemSelectedBg:h[600],itemSelectedFg:h[50],highlightFg:h[200],categoryFg:h[500]},splitPanel:{bg:h[900],dividerBg:h[600],dividerHoverBg:h[500],dividerActiveBg:h[300],border:h[600],titleFg:h[400]},toast:{success:{bg:h[800],fg:h[100],border:h[400],iconFg:h[300]},error:{bg:h[800],fg:h[100],border:h[300],iconFg:h[200]},warning:{bg:h[800],fg:h[100],border:h[500],iconFg:h[400]},info:{bg:h[800],fg:h[100],border:h[400],iconFg:h[300]}},window:{default:{bg:h[900],fg:h[50],titleBarBg:h[800],titleBarFg:h[50],border:h[600],buttonFg:h[400],closeFg:h[300]},primary:{bg:h[900],fg:h[50],titleBarBg:h[300],titleBarFg:h[900],border:h[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},success:{bg:h[900],fg:h[50],titleBarBg:h[400],titleBarFg:h[900],border:h[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},warning:{bg:h[900],fg:h[50],titleBarBg:h[500],titleBarFg:h[900],border:h[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]},danger:{bg:h[900],fg:h[50],titleBarBg:h[300],titleBarFg:h[900],border:h[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:h[900]}}},borderRadius:"none"};var ex=Symbol("tuiuiu.theme-runtime-state");function Z_(){let[e,t]=pr(lf);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function i$(e){if(e.id===0)return Z_();let t=Ft(ex,Z_),[r,n]=pr(fs(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function tx(){let e=We();return Fe(ex,()=>i$(e),e)}function rx(){return fs(tx().currentTheme)}var a$={dark:lf,light:H_,monokai:U_,dracula:q_,nord:K_,solarizedDark:V_,gruvbox:z_,tokyoNight:J_,catppuccin:Y_,highContrastDark:Q_,monochrome:X_},EK=Object.keys(a$);function l$(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function kt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&l$(e)>.4?"black":"white"}function d$(e,t=500){let r=W_[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var c$={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>kt(e.palette.primary[500]),"primary-foreground":e=>kt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>kt(e.palette.secondary[500]),"secondary-foreground":e=>kt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>kt(e.accents.positive),"success-foreground":e=>kt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>kt(e.accents.warning),"warning-foreground":e=>kt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>kt(e.accents.critical),"danger-foreground":e=>kt(e.accents.critical),errorForeground:e=>kt(e.accents.critical),destructiveForeground:e=>kt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>kt(e.accents.info),"info-foreground":e=>kt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>kt(e.palette.primary[400]),"accent-foreground":e=>kt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function nx(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=fs(tx().currentTheme),r=c$[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return d$(o,i)}return e}var u$={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},ox=Symbol("tuiuiu.perf-inspector-runtime-state");function p$(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function sx(e){let t=e.id===0?null:Ft(ox,()=>sx(Ir())),r=p$(t?.config??u$);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function ix(){let e=We();return Fe(ox,()=>sx(e),e)}function f$(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function g$(e,t){let r=b$().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 m$(e,t){e.ring.length!==e.config.maxFrames&&g$(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 h$(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 ax(e,t={}){let r=ix(),n=f$(e),o=Math.max(0,n-r.config.budget.frameMs),s=h$(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;o_({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(m$(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function b$(){let e=ix(),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 y$={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function uo(e,t){return m_(e,t,y$)}function df(e){h_(e)}function Tn(e,t){k_(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),ax(e,{renderer:t.renderer})}var k$=.4,R$=64;function po(){return typeof performance<"u"?performance.now():Date.now()}var lx=new WeakMap;function w$(){let e=rx(),t=lx.get(e);return t||(t=new Map,lx.set(e,t)),t}function _$(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&&x$(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 x$(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 ux(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 px(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 E$(e,t,r){let n=e.map(s=>px(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(!(ux(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 v$(e,t,r){let n=new Map;for(let i of e){let a=px(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 fx(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 Di(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,y=0;function m(I){H(t.columns||80,t.rows||24);let W=uo(I,{width:s,height:i});w(W)}function w(I){H(I.info.viewport.width,I.info.viewport.height),G(I),is(I.layout),gi(),c=I.root,u=I}function T(){l=!0,c?m(c):u&&G(u)}function B(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Di(s,i),l=!0}function C(){!r&&d&&(ms(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&&(hs(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=M$(u,I),De=$r(),Ee=$_(De),ke=B_(De),Y=we=>{let Oe=po();t.write(we),q+=po()-Oe,oe+=typeof we=="string"?Buffer.byteLength(we):we.byteLength};if(!l&&n&&u){let{renderRects:we,diffRects:Oe}=T$(u.drawCommands,I.drawCommands,s,i);if(Pt(I,"dirtyRectCount",we.length),Pt(I,"diffRectCount",Oe.length),we.length===0){pe&&Y(pe),y=0,Pt(I,"patchCount",0),Pt(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(I,{renderer:"delta"});return}let ve=P$(we);if(!(we.length>R$||ve>Z*k$)){Ee&&Y(Ee),A$(se,we),D$(I.drawCommands,we,se,I.reservedRegions);let Te=ae.diffRects(se,Oe);if(ae.applyPatches(Te),se.clearDamage(),y=Te.length,Pt(I,"patchCount",Te.length),o&&console.error(`[delta-render] dirty-rects: ${we.length}, patches: ${Te.length}, cells: ${Z}`),pe&&Y(pe),Te.length>0){let fe=nf(Te,s,!0);Y(fe),g++}ke&&Y(ke),Pt(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(I,{renderer:"delta"});return}}Ee&&Y(Ee),se.clear(),hx(I.drawCommands,se,I.reservedRegions);let de=a.swap();if(y=de.length,Pt(I,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let we=zl(a.getFrontBuffer());pe&&Y(pe),Y("\x1B[H"),Y(we),f++,l=!1,ke&&Y(ke),Pt(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(I,{renderer:"delta"});return}if(pe&&Y(pe),de.length>0){let we=nf(de,s,!0);Y(we),g++}l=!1,ke&&Y(ke),Pt(I,"outputByteCount",oe),it(I,"outputWriteMs",q),it(I,"deltaRenderMs",Math.max(0,po()-W-q)),Tn(I,{renderer:"delta"})}return{render:m,renderFrame:w,fullRedraw:T,clear:B,cleanup:C,stats:M,resize:N}}function S$(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 cf(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:S$(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 T$(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&&_$(a,l)||(a&&o.push(cf(a)),l&&o.push(cf(l)))}return{renderRects:E$(o,r,n),diffRects:v$(o,r,n)}}function P$(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function A$(e,t){let r=Br();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function gx(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function mr(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,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)||gx(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function C$(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)&&!gx(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function mx(e,t,r){switch(e.type){case"box":O$(e,t,r);break;case"text":wx(e,t,r);break;case"terminal-image":F$(e,t);break}}function D$(e,t,r,n){for(let o of e){let s=cf(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(ux(s,i)){mx(o,r,n);break}}}}function hx(e,t,r){for(let n of e)mx(n,t,r)}function bx(e,t=new Nr(e.info.viewport.width,e.info.viewport.height)){return hx(e.drawCommands,t,e.reservedRegions),t}function O$(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:m}=e,w=a?fo(a):void 0,T=c?fo(c):void 0,B=f?fo(f):T;if(w||l!==" "){let C=d&&d!=="none"?1:0,M=n+C,N=o+C,H=Math.max(0,s-C*2),G=Math.max(0,i-C*2);for(let I=0;I<G;I++)C$(t,r,M,N+I,H,l,void 0,w,{},m)}if(d&&d!=="none"){let C=of[d]??of.single,M={},N=u?.top!==!1,H=u?.bottom!==!1,G=u?.left!==!1,I=u?.right!==!1;if(N){let W=G?C.topLeft:C.top;mr(t,r,n,o,W,T,void 0,M,m);for(let q=1;q<s-1;q++)mr(t,r,n+q,o,C.top,T,void 0,M,m);if(s>1){let q=I?C.topRight:C.top;mr(t,r,n+s-1,o,q,T,void 0,M,m)}if(p&&s>4){let q=s-4,ae=` ${Yr(FR(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)),De=0,Ee=pe;for(;De<ae.length&&Ee<n+s-1;){let ke=Jn(ae,De);if(!ke)break;De=ke.nextIndex;let Y=ye(ke.symbol);Y<=0||Ee+Y>n+s-1||(mr(t,r,Ee,o,ke.symbol,B,void 0,y?{...M,bold:!0}:M,m),Ee+=Y)}}}for(let W=1;W<i-1;W++)G&&mr(t,r,n,o+W,C.left,T,void 0,M,m),I&&s>1&&mr(t,r,n+s-1,o+W,C.right,T,void 0,M,m);if(H&&i>1){let W=G?C.bottomLeft:C.bottom;mr(t,r,n,o+i-1,W,T,void 0,M,m);for(let q=1;q<s-1;q++)mr(t,r,n+q,o+i-1,C.bottom,T,void 0,M,m);if(s>1){let q=I?C.bottomRight:C.bottom;mr(t,r,n+s-1,o+i-1,q,T,void 0,M,m)}}}}function F$(e,t){e.cellRender&&wx({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:Rx(e),style:{},clip:e.clip},t,[])}function yx(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 kx(e){let t=yx(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 Oi(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${kx(e)}:${e.x}:${e.y}`)}function bs(e){return[Oi(e),e.x,e.y,kx(e)].join(":")}function Rx(e){let t=yx(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:Ll(e.protocol,e.source,t)}function dx(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 I$(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Oi(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Oi(s));if(!i||bs(s)!==bs(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=us.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${jl("kitty")}\x1B8`}}return o}function M$(e,t){let r=dx(e),n=dx(t),o=r.map(bs).join("|"),s=n.map(bs).join("|");if(e&&o===s)return"";let i=I$(r,n),a=new Map(r.map(l=>[Oi(l),l]));for(let l of n){let d=a.get(Oi(l));d&&bs(d)===bs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=Rx(l),i+="\x1B8")}return i}function ys(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 L$(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=ys(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(ys);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function j$(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=ys(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[ys(e[t+2]),ys(e[t+3]),ys(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 cx={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function $$(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(":"),m=Number(y[0]||0);if(y.length>1){if(m===4){let w=Number(y[1]||0);w in cx&&(a.underline=cx[w])}else if(m===38||m===48||m===58){let w=L$(y);w&&(m===38?s=w:m===48?i=w:a.underlineColor=w)}continue}if(m===0)s=t,i=r,a={...n};else if(m===1)a.bold=!0;else if(m===2)a.dim=!0;else if(m===3)a.italic=!0;else if(m===4)a.underline=!0;else if(m===5)a.blink=!0;else if(m===7)a.inverse=!0;else if(m===8)a.hidden=!0;else if(m===9)a.strikethrough=!0;else if(m===21)a.underline="double";else if(m===22)a.bold=!1,a.dim=!1;else if(m===23)a.italic=!1;else if(m===24)a.underline=!1;else if(m===25)a.blink=!1;else if(m===27)a.inverse=!1;else if(m===28)a.hidden=!1;else if(m===29)a.strikethrough=!1;else if(m>=30&&m<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][m-30];else if(m===39)s=t;else if(m>=40&&m<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][m-40];else if(m===49)i=r;else if(m===59)a.underlineColor=n.underlineColor;else if(m>=90&&m<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][m-90];else if(m>=100&&m<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][m-100];else if(m===38||m===48||m===58){let{color:w,consumed:T}=j$(p,g);w&&(m===38?s=w:m===48?i=w:a.underlineColor=w),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function wx(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=$$(f.join(`
|
|
199
|
-
`),c,u,p),m=0,w=0;for(let T of
|
|
200
|
-
`){w++,m=0,
|
|
198
|
+
`):ie;Pe.push({type:"text",id:I,nodeType:i.type,compositorKeys:m.length>0?[...m]:void 0,x:p,y:f.__splitDivider?g-1:g,maxWidth:d,text:Ie,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&&Pe.push({...T,compositorKeys:m.length>0?[...m]:void 0,clip:s});for(let ie of q)K$(Pe,ie.commands);ro("draw");let me=V_(e,C,G,Pe,w,Se);return U$(Se,me.commands,w),{commands:me.commands,hasCompositor:w,subtreeSignature:Se}}function Q$(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 X$(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=Q$(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function Z$(e){let t=X_(e),r=rd.get(e),n=J_(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=G$(t.commands),s=t.hasCompositor?q_(o,Q_(e)):o,i=X$(s),a=rd.get(e);return a&&(a.materialized=i,a.materializedSignature=n),q$(t.subtreeSignature,i,n),i}function Z_(e,t,r={}){let n=A$(r),o=P$(t),s=Date.now(),i=Tn(),a=Tn(),l=Fw(e,o.width,o.height),d=Tn()-a,c=Tn(),u=Z$(l),p=Y$(u),g=Tn()-c,f={frameStartAt:s,frameEndAt:Date.now(),totalFrameMs:0,phases:{layoutMs:d,drawCommandMs:g},structural:{drawCommandCount:u.length,hitTargetCount:0,warningCount:0,reservedRegionCount:p.length,patchCount:0,dirtyRectCount:0,diffRectCount:0,outputByteCount:0,layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0}},b=Aw();f.structural.layoutReuseCount=b.layoutReuseCount,f.structural.layoutFreshCount=b.layoutFreshCount,f.structural.drawReuseCount=b.drawReuseCount,f.structural.drawFreshCount=b.drawFreshCount,f.structural.invalidationEscalationCount=b.invalidationEscalationCount,f.structural.absorbedLayoutDirtyCount=b.absorbedLayoutDirtyCount;let m,w,T,L=[],C=!1,M=()=>(m||(m=C$(l)),m),N=()=>(w||(w=D$(l)),w),H=()=>{if(!T){let ae=Tn();T=v_(l),f.phases.hitTargetRegistrationMs=Tn()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(C||(L.push(...F$(M())),C=!0,f.structural.warningCount=L.length),L);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&H();let I=M$(M,N,o,L,f),W=Date.now(),q=Tn()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:x$++,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 ex(e,t){pf(t).committedFrameSnapshot=e}function tx(e){return pf(e).committedFrameSnapshot}function rx(e){pf(e).committedFrameSnapshot=null}function dt(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function Pt(e,t,r){e.metrics.structural[t]=r}function nx(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 sx=Symbol("tuiuiu.progressive-runtime-state");function ox(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function eB(e){if(e.id===0)return ox();let t=Mt(sx,ox);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function ff(){let e=We();return Fe(sx,()=>eB(e),e)}function ix(){return ff().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function ax(){return ff().capabilityOverrides}function gf(){return ff().progressiveVersion}function tB(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=Hl(t),a=i_(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",b=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",m=l.strikethrough||b,w=l.hyperlinks||o==="iTerm.app"||r.includes("kitty")||!!t.WT_SESSION||o==="vscode"&&parseInt(s,10)>=1,T=e.stdout??process.stdout,L=T.columns||80,C=T.rows||24,M=ix(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:b,strikethrough:m,hyperlinks:w,terminalName:c,isCI:d,columns:L,rows:C,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=ax();return H&&Object.assign(N,H),N}var lx=Symbol("tuiuiu.capability-runtime-state");function dx(e){let t=e.id===0?"auto":bs(Mt(lx,()=>dx(Mr())).renderModeSignal),[r,n]=gr(t),o={renderModeSignal:r,setRenderModeSignal:n,cachedCapabilities:null,cachedProgressiveVersion:-1,source:{},resizeHandlers:new Set,resizeListener:null,scope:e,[Ir](){let s=o.source.stdout??process.stdout;o.resizeListener&&s.off("resize",o.resizeListener),o.resizeListener=null,o.resizeHandlers.clear()}};return o}function ji(e){let t=We(e);return Fe(lx,()=>dx(t),t)}function cx(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function rB(e){return tB({env:e.source.env,stdout:e.source.stdout??process.stdout})}function nd(e){return e.cachedCapabilities=rB(e),e.cachedProgressiveVersion=gf(),e.cachedCapabilities}function ux(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{nd(e);let r=cx(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function px(e){let t=ji(),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,ux(t)}function Br(){let e=ji(),t=gf();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&nd(e),e.cachedCapabilities??nd(e)}function fx(){return nd(ji())}function gx(){return cx(ji())}function mx(e){let t=ji();return t.resizeHandlers.add(e),ux(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var hx={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},nB={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},oB=512,io=new Map,yx=4e6;function Nr(){return{char:" ",attrs:{}}}function hf(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 sB(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&&hf(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function bx(e,t){return e.char===t.char&&hf(e.fg,t.fg)&&hf(e.bg,t.bg)&&sB(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function od(e){return{char:e.char,fg:e.fg,bg:e.bg,attrs:{...e.attrs},isWide:e.isWide}}var Gr=class{cells;damageRects=[];rowSignatures;width;height;constructor(t,r){if(!Number.isSafeInteger(t)||!Number.isSafeInteger(r)||t<0||r<0||t*r>yx)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${yx} cells`);this.width=t,this.height=r,this.cells=[],this.rowSignatures=new Array(r).fill(null);for(let n=0;n<r;n++){let o=[];for(let s=0;s<t;s++)o.push(Nr());this.cells.push(o)}}get(t,r){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height)return this.cells[r][t]}set(t,r,n){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){if(n.isWide){let s=t>0?this.cells[r][t-1]:void 0;if(!s||s.isWide||be(s.char)<=1){this.clearWideFootprint(t,r),this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}}let o=n.isWide?1:Math.max(1,be(n.char));if(n.isWide||this.clearWideFootprint(t,r),!n.isWide&&o>1&&t+o>this.width){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);return}if(this.cells[r][t]=n,this.invalidateRow(r),!n.isWide&&o>1&&t+o<=this.width)for(let s=1;s<o;s++)this.clearWideFootprint(t+s,r),this.cells[r][t+s]={char:"",fg:n.fg,bg:n.bg,attrs:n.attrs,isWide:!0};this.addDamage(t,r,Math.min(o,this.width-t),1)}}clearWideFootprint(t,r){if(!Number.isInteger(t)||!Number.isInteger(r)||t<0||t>=this.width||r<0||r>=this.height)return;let n=this.cells[r][t];if(n.isWide){if(this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1),t>0){let s=this.cells[r][t-1];!s.isWide&&be(s.char)>1&&(this.cells[r][t-1]=Nr(),this.addDamage(t-1,r,1,1))}return}let o=be(n.char);if(!(o<=1)){this.cells[r][t]=Nr(),this.invalidateRow(r),this.addDamage(t,r,1,1);for(let s=1;s<o&&t+s<this.width;s++)this.cells[r][t+s]?.isWide&&(this.cells[r][t+s]=Nr(),this.addDamage(t+s,r,1,1))}}writeChar(t,r,n,o,s,i={}){if(Number.isInteger(t)&&Number.isInteger(r)&&t>=0&&t<this.width&&r>=0&&r<this.height){let a=be(n);if(a<=0||t+a>this.width)return;for(let l=0;l<a;l++)this.clearWideFootprint(t+l,r);this.cells[r][t]={char:n,fg:o,bg:s,attrs:i},this.invalidateRow(r),this.addDamage(t,r,a,1),a===2&&t+1<this.width&&(this.cells[r][t+1]={char:"",fg:o,bg:s,attrs:i,isWide:!0})}}writeString(t,r,n,o,s,i={}){if(!Number.isInteger(t)||!Number.isInteger(r))return 0;let a=t,l=0;for(;l<n.length;){let d=eo(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
199
|
+
`)continue;if(a>=this.width)break;let c=be(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(be(o)!==1){let c=be(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(be(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=Nr();this.rowSignatures[t]=null}this.addDamage(0,0,this.width,this.height)}copyFrom(t,r=0,n=0,o=0,s=0,i,a){let l=i??t.width,d=a??t.height;for(let c=0;c<d;c++)for(let u=0;u<l;u++){let p=t.get(r+u,n+c);p&&this.set(o+u,s+c,od(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];bx(a,l)||r.push({x:i,y:s,cell:od(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=iB(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];bx(d,c)||n.push({x:l,y:i.y,cell:od(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,od(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}${Rx(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function iB(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||aB(o)?kx(s,i,o):lB(s,i,o)}function aB(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 kx(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 lB(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 $i=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}getBackBuffer(){return this.back}getFrontBuffer(){return this.front}swap(){let t=this.front.diff(this.back),r=this.front;return this.front=this.back,this.back=r,this.back.clearDamage(),t}swapDirty(t){let r=this.front.diffRects(this.back,t),n=this.front;return this.front=this.back,this.back=n,this.back.clearDamage(),r}resize(t,r){this.width=t,this.height=r,this.front=new Gr(t,r),this.back=new Gr(t,r)}};function yf(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(hx[e]!==void 0){let n=t?40:30,o=hx[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 dB(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(nB[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=cB(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 cB(e){let t=yf(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 mf(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function Rx(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),mf(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",mf(e),mf(t)].join("|")}function wx(e,t,r){let n=Rx(e,t,r),o=io.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...dB(r));let i=yf(e,!1),a=yf(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(io.has(n))io.delete(n);else if(io.size>=oB){let d=io.keys().next();d.done||io.delete(d.value)}return io.set(n,l),l===""?null:l}function uB(e){return e.length===1&&e.charCodeAt(0)<=127?1:be(e)}function sd(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=wx(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(`
|
|
200
|
+
`)}function bf(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=wx(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+(uB(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function id(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 pB="\x1B[?2026h",fB="\x1B[?2026l";function _x(e){let t=e??Br();return t.synchronizedOutput?id(pB,t.multiplexer):""}function xx(e){let t=e??Br();return t.synchronizedOutput?id(fB,t.multiplexer):""}var kf={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 vx="\x1B[?25h",gB="\x1B[?25l",ad=!1,Ex=!1,mB=null,Rf=null;function wf(e){return"isTTY"in e&&!!e.isTTY}function hB(){let e=Rf??process.stdout;wf(e)&&ad&&(e.write(vx),ad=!1)}function yB(){Ex||(Ex=!0,mB=rn(hB))}function Rs(e=process.stdout){wf(e)&&(Rf=e,ad=!1,e.write(vx))}function ws(e=process.stdout){wf(e)&&(Rf=e,yB(),ad=!0,e.write(gB))}var bB="#ffffff",kB="#000000",RB="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},wB={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},_B={50:"#fafafa",100:"#f4f4f5",200:"#e4e4e7",300:"#d4d4d8",400:"#a1a1aa",500:"#71717a",600:"#52525b",700:"#3f3f46",800:"#27272a",900:"#18181b",950:"#09090b"},y={50:"#fafafa",100:"#f5f5f5",200:"#e5e5e5",300:"#d4d4d4",400:"#a3a3a3",500:"#737373",600:"#525252",700:"#404040",800:"#262626",900:"#171717",950:"#0a0a0a"},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"},xB={50:"#fff7ed",100:"#ffedd5",200:"#fed7aa",300:"#fdba74",400:"#fb923c",500:"#f97316",600:"#ea580c",700:"#c2410c",800:"#9a3412",900:"#7c2d12",950:"#431407"},fe={50:"#fffbeb",100:"#fef3c7",200:"#fde68a",300:"#fcd34d",400:"#fbbf24",500:"#f59e0b",600:"#d97706",700:"#b45309",800:"#92400e",900:"#78350f",950:"#451a03"},EB={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},vB={50:"#f7fee7",100:"#ecfccb",200:"#d9f99d",300:"#bef264",400:"#a3e635",500:"#84cc16",600:"#65a30d",700:"#4d7c0f",800:"#3f6212",900:"#365314",950:"#1a2e05"},ge={50:"#f0fdf4",100:"#dcfce7",200:"#bbf7d0",300:"#86efac",400:"#4ade80",500:"#22c55e",600:"#16a34a",700:"#15803d",800:"#166534",900:"#14532d",950:"#052e16"},SB={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},TB={50:"#f0fdfa",100:"#ccfbf1",200:"#99f6e4",300:"#5eead4",400:"#2dd4bf",500:"#14b8a6",600:"#0d9488",700:"#0f766e",800:"#115e59",900:"#134e4a",950:"#042f2e"},Ze={50:"#ecfeff",100:"#cffafe",200:"#a5f3fc",300:"#67e8f9",400:"#22d3ee",500:"#06b6d4",600:"#0891b2",700:"#0e7490",800:"#155e75",900:"#164e63",950:"#083344"},PB={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"},AB={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},CB={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},OB={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},DB={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},FB={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},IB={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},Sx={white:bB,black:kB,transparent:RB,slate:k,gray:wB,zinc:_B,neutral:y,stone:Ue,red:ue,orange:xB,amber:fe,yellow:EB,lime:vB,green:ge,emerald:SB,teal:TB,cyan:Ze,sky:PB,blue:te,indigo:AB,violet:CB,purple:OB,fuchsia:DB,pink:FB,rose:IB};var ee={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:k[50],100:k[100],200:k[200],300:k[300],400:k[400],500:k[500],600:k[600],700:k[700],800:k[800],900:k[900]},success:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50: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]}},_f={name:"dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Default dark theme with blue primary and slate neutrals"},palette:ee,background:{lowest:k[950],base:k[900],subtle:k[800],surface:k[700],raised:k[600],elevated:k[500],popover:k[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:k[50],secondary:k[200],muted:k[400],disabled:k[500],inverse:{base:"#ffffff",soft:"rgba(255, 255, 255, 0.6)",subtle:"rgba(255, 255, 255, 0.35)"}},accents:{positive:ee.success[500],warning:ee.warning[500],critical:ee.danger[500],info:Ze[500],highlight:ee.primary[500]},states:{hover:{bg:"rgba(255, 255, 255, 0.05)",fg:null},active:{bg:"rgba(255, 255, 255, 0.1)"},focus:{border:ee.primary[400],ring:{color:ee.primary[500],width:2}},disabled:{opacity:.4,bg:k[800],fg:k[500]},selected:{bg:ee.primary[700],fg:"#ffffff"}},borders:{default:k[700],subtle:k[800],strong:k[500],accent:ee.primary[500],danger:ee.danger[500]},opacity:{disabled:.4,muted:.7,overlay:.5,ghost:.2},components:{button:{primary:{bg:ee.primary[500],fg:"#ffffff",hoverBg:ee.primary[400],activeBg:ee.primary[600],border:"transparent"},secondary:{bg:k[700],fg:k[50],hoverBg:k[600],activeBg:k[800],border:"transparent"},outline:{bg:"transparent",fg:ee.primary[400],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:ee.primary[500]},ghost:{bg:"transparent",fg:k[50],hoverBg:"rgba(255, 255, 255, 0.05)",activeBg:"rgba(255, 255, 255, 0.1)",border:"transparent"}},panel:{bg:k[800],headerBg:k[700],footerBg:k[700],border:k[700]},menu:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],activeBg:ee.primary[700],selectedBg:ee.primary[600],disabledFg:k[500]}},tabs:{bg:k[800],border:k[700],tab:{fg:k[400],activeFg:k[50],activeBg:k[700],hoverFg:k[200],indicator:ee.primary[500]}},dropdown:{bg:k[800],border:k[700],item:{fg:k[50],hoverBg:k[700],selectedBg:ee.primary[700]}},input:{bg:k[800],fg:k[50],placeholder:k[500],border:k[700],focusBorder:ee.primary[500],invalidBorder:ee.danger[500]},checkbox:{bg:k[800],border:k[600],checkColor:"#ffffff",checkedBg:ee.primary[500]},radio:{bg:k[800],dotColor:ee.primary[500],border:k[600],checkedBorder:ee.primary[500]},tooltip:{bg:k[700],fg:k[50]},modal:{bg:k[800],border:k[700],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:k[700],fg:k[50]},success:{bg:ee.success[500],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:k[800],selectedBg:ee.primary[700],fg:k[50]}},header:{default:{bg:k[800],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:ee.primary[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.primary[700]},secondary:{bg:k[700],fg:k[50],titleFg:k[50],subtitleFg:k[400],border:k[600]},success:{bg:ee.success[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.success[700]},warning:{bg:ee.warning[500],fg:k[900],titleFg:k[900],subtitleFg:"rgba(0, 0, 0, 0.7)",border:ee.warning[600]},danger:{bg:ee.danger[600],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ee.danger[700]}},statusbar:{default:{bg:k[800],fg:k[400]},primary:{bg:ee.primary[600],fg:"#ffffff"},info:{bg:Ze[600],fg:"#ffffff"},success:{bg:ee.success[600],fg:"#ffffff"},warning:{bg:ee.warning[500],fg:k[900]},danger:{bg:ee.danger[600],fg:"#ffffff"}},page:{default:{bg:k[900],titleFg:k[50],subtitleFg:k[400],border:k[700]},primary:{bg:k[900],titleFg:ee.primary[400],subtitleFg:k[400],border:ee.primary[700]},secondary:{bg:k[900],titleFg:k[200],subtitleFg:k[500],border:k[700]}},appshell:{bg:k[950],dividerFg:k[700],sidebarBg:k[900],asideBg:k[900]},collapsible:{default:{headerBg:k[800],headerFg:k[50],contentBg:k[900],border:k[700],iconFg:k[400]},primary:{headerBg:ee.primary[700],headerFg:"#ffffff",contentBg:k[900],border:ee.primary[600],iconFg:"rgba(255, 255, 255, 0.8)"},secondary:{headerBg:k[700],headerFg:k[50],contentBg:k[800],border:k[600],iconFg:k[400]}},commandPalette:{bg:k[800],border:k[700],inputBg:k[900],inputFg:k[50],inputPlaceholder:k[500],itemFg:k[50],itemHoverBg:k[700],itemSelectedBg:ee.primary[700],itemSelectedFg:"#ffffff",highlightFg:ee.primary[400],categoryFg:k[500]},splitPanel:{bg:k[900],dividerBg:k[700],dividerHoverBg:k[600],dividerActiveBg:ee.primary[500],border:k[700],titleFg:k[400]},toast:{success:{bg:ee.success[900],fg:ee.success[100],border:ee.success[600],iconFg:ee.success[400]},error:{bg:ee.danger[900],fg:ee.danger[100],border:ee.danger[600],iconFg:ee.danger[400]},warning:{bg:ee.warning[900],fg:ee.warning[100],border:ee.warning[500],iconFg:ee.warning[400]},info:{bg:Ze[900],fg:Ze[100],border:Ze[600],iconFg:Ze[400]}},window:{default:{bg:k[900],fg:k[100],titleBarBg:k[800],titleBarFg:k[100],border:k[700],buttonFg:k[400],closeFg:ee.danger[500]},primary:{bg:k[900],fg:k[100],titleBarBg:ee.primary[600],titleBarFg:"#ffffff",border:ee.primary[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},success:{bg:k[900],fg:k[100],titleBarBg:ee.success[600],titleBarFg:"#ffffff",border:ee.success[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"},warning:{bg:k[900],fg:k[100],titleBarBg:ee.warning[500],titleBarFg:k[900],border:ee.warning[600],buttonFg:k[700],closeFg:k[900]},danger:{bg:k[900],fg:k[100],titleBarBg:ee.danger[600],titleBarFg:"#ffffff",border:ee.danger[700],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}}};var 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:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50: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]}},Tx={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:ge[600],warning:fe[600],critical:ue[600],info:Ze[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:Ze[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:Ze[50],fg:Ze[900],border:Ze[200],iconFg:Ze[600]}},window:{default:{bg:"#ffffff",fg:k[900],titleBarBg:k[100],titleBarFg:k[900],border:k[200],buttonFg:k[600],closeFg: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 D={background:"#272822",backgroundDark:"#1E1F1C",backgroundLight:"#3E3D32",foreground:"#F8F8F2",comment:"#75715E",green:"#A6E22E",yellow:"#E6DB74",pink:"#F92672",cyan:"#66D9EF",orange:"#FD971F",purple:"#AE81FF"},ao={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"}},Px={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:ao,background:{lowest:D.backgroundDark,base:D.background,subtle:D.backgroundLight,surface:"#49483E",raised:"#5B5A4F",elevated:"#6D6C5F",popover:D.backgroundLight,overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:D.foreground,secondary:"#E8E8E2",muted:D.comment,disabled:"#5B5A4F",inverse:{base:D.background,soft:"rgba(39, 40, 34, 0.8)",subtle:"rgba(39, 40, 34, 0.6)"}},accents:{positive:D.green,warning:D.yellow,critical:D.pink,info:D.cyan,highlight:D.green},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:D.green,ring:{color:D.green,width:2}},disabled:{opacity:.4,bg:D.backgroundLight,fg:"#5B5A4F"},selected:{bg:"#49483E",fg:D.foreground}},borders:{default:"#49483E",subtle:D.backgroundLight,strong:D.comment,accent:D.green,danger:D.pink},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:D.green,fg:D.background,hoverBg:"#B8F040",activeBg:"#8BC922",border:"transparent"},secondary:{bg:"#49483E",fg:D.foreground,hoverBg:"#5B5A4F",activeBg:D.backgroundLight,border:"transparent"},outline:{bg:"transparent",fg:D.green,hoverBg:"rgba(166, 226, 46, 0.1)",activeBg:"rgba(166, 226, 46, 0.2)",border:D.green},ghost:{bg:"transparent",fg:D.foreground,hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:D.backgroundLight,headerBg:"#49483E",footerBg:"#49483E",border:"#49483E"},menu:{bg:D.backgroundLight,border:"#49483E",item:{fg:D.foreground,hoverBg:"#49483E",activeBg:"#5B5A4F",selectedBg:"#49483E",disabledFg:"#5B5A4F"}},tabs:{bg:D.backgroundLight,border:"#49483E",tab:{fg:D.comment,activeFg:D.foreground,activeBg:D.background,hoverFg:"#E8E8E2",indicator:D.green}},dropdown:{bg:D.backgroundLight,border:"#49483E",item:{fg:D.foreground,hoverBg:"#49483E",selectedBg:"#5B5A4F"}},input:{bg:D.backgroundLight,fg:D.foreground,placeholder:D.comment,border:"#49483E",focusBorder:D.green,invalidBorder:D.pink},checkbox:{bg:D.backgroundLight,border:"#5B5A4F",checkColor:D.background,checkedBg:D.green},radio:{bg:D.backgroundLight,dotColor:D.green,border:"#5B5A4F",checkedBorder:D.green},tooltip:{bg:"#49483E",fg:D.foreground},modal:{bg:D.backgroundLight,border:"#49483E",overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:"#49483E",fg:D.foreground},success:{bg:D.green,fg:D.background},warning:{bg:D.yellow,fg:D.background},danger:{bg:D.pink,fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:D.backgroundLight,selectedBg:"#49483E",fg:D.foreground}},header:{default:{bg:D.backgroundLight,fg:D.foreground,titleFg:D.foreground,subtitleFg:D.comment,border:"#49483E"},primary:{bg:D.green,fg:D.background,titleFg:D.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},secondary:{bg:"#49483E",fg:D.foreground,titleFg:D.foreground,subtitleFg:D.comment,border:"#5B5A4F"},success:{bg:D.green,fg:D.background,titleFg:D.background,subtitleFg:"rgba(39, 40, 34, 0.8)",border:"#84CC16"},warning:{bg:D.yellow,fg:D.background,titleFg:D.background,subtitleFg:"rgba(39, 40, 34, 0.7)",border:D.orange},danger:{bg:D.pink,fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:"#E11D48"}},statusbar:{default:{bg:D.backgroundLight,fg:D.comment},primary:{bg:D.green,fg:D.background},info:{bg:D.cyan,fg:D.background},success:{bg:D.green,fg:D.background},warning:{bg:D.yellow,fg:D.background},danger:{bg:D.pink,fg:"#ffffff"}},page:{default:{bg:D.background,titleFg:D.foreground,subtitleFg:D.comment,border:"#49483E"},primary:{bg:D.background,titleFg:D.green,subtitleFg:D.comment,border:D.green},secondary:{bg:D.background,titleFg:"#E8E8E2",subtitleFg:D.comment,border:"#49483E"}},appshell:{bg:D.backgroundDark,dividerFg:"#49483E",sidebarBg:D.background,asideBg:D.background},collapsible:{default:{headerBg:D.backgroundLight,headerFg:D.foreground,contentBg:D.background,border:"#49483E",iconFg:D.comment},primary:{headerBg:"#49483E",headerFg:D.green,contentBg:D.background,border:D.green,iconFg:D.green},secondary:{headerBg:"#49483E",headerFg:D.foreground,contentBg:D.backgroundLight,border:"#5B5A4F",iconFg:D.comment}},commandPalette:{bg:D.backgroundLight,border:"#49483E",inputBg:D.background,inputFg:D.foreground,inputPlaceholder:D.comment,itemFg:D.foreground,itemHoverBg:"#49483E",itemSelectedBg:"#5B5A4F",itemSelectedFg:D.foreground,highlightFg:D.green,categoryFg:D.comment},splitPanel:{bg:D.background,dividerBg:"#49483E",dividerHoverBg:"#5B5A4F",dividerActiveBg:D.green,border:"#49483E",titleFg:D.comment},toast:{success:{bg:ao.success[900],fg:ao.success[100],border:D.green,iconFg:D.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:D.pink,iconFg:D.pink},warning:{bg:ao.warning[900],fg:ao.warning[100],border:D.yellow,iconFg:D.yellow},info:{bg:"#0E4A5C",fg:"#CFFAFE",border:D.cyan,iconFg:D.cyan}},window:{default:{bg:D.background,fg:D.foreground,titleBarBg:D.backgroundLight,titleBarFg:D.foreground,border:"#49483E",buttonFg:D.comment,closeFg:D.pink},primary:{bg:D.background,fg:D.foreground,titleBarBg:D.green,titleBarFg:D.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:D.background},success:{bg:D.background,fg:D.foreground,titleBarBg:D.green,titleBarFg:D.background,border:"#84CC16",buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:D.background},warning:{bg:D.background,fg:D.foreground,titleBarBg:D.yellow,titleBarFg:D.background,border:D.orange,buttonFg:"rgba(39, 40, 34, 0.8)",closeFg:D.background},danger:{bg:D.background,fg:D.foreground,titleBarBg:D.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"},lo={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"}},Ax={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:lo,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:lo.success[900],fg:lo.success[100],border:A.green,iconFg:A.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:A.red,iconFg:A.red},warning:{bg:lo.warning[900],fg:lo.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"},co={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"}},Cx={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:co,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:co.success[900],fg:co.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:co.danger[900],fg:co.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:co.warning[900],fg:co.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"},uo={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"}},Ox={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:uo,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:uo.success[900],fg:uo.success[100],border:S.green,iconFg:S.green},error:{bg:uo.danger[900],fg:uo.danger[100],border:S.red,iconFg:S.red},warning:{bg:uo.warning[900],fg:uo.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"},po={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}},Dx={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:po,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:po.success[900],fg:po.success[100],border:_.green,iconFg:_.green},error:{bg:po.danger[900],fg:po.danger[100],border:_.red,iconFg:_.red},warning:{bg:po.warning[900],fg:po.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"},fo={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"}},Fx={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:fo,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:fo.success[900],fg:fo.success[100],border:v.green,iconFg:v.green},error:{bg:fo.danger[900],fg:fo.danger[100],border:v.red,iconFg:v.red},warning:{bg:fo.warning[900],fg:fo.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"},go={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}},Ix={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:go,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:go.success[900],fg:go.success[100],border:x.green,iconFg:x.green},error:{bg:go.danger[900],fg:go.danger[100],border:x.red,iconFg:x.red},warning:{bg:go.warning[900],fg:go.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 mo={primary:{50:te[50],100:te[100],200:te[200],300:te[300],400:te[400],500:te[500],600:te[600],700:te[700],800:te[800],900:te[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:ge[50],100:ge[100],200:ge[200],300:ge[300],400:ge[400],500:ge[500],600:ge[600],700:ge[700],800:ge[800],900:ge[900]},warning:{50:fe[50],100:fe[100],200:fe[200],300:fe[300],400:fe[400],500:fe[500],600:fe[600],700:fe[700],800:fe[800],900:fe[900]},danger:{50: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:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},Mx={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:mo,background:{lowest:"#000000",base:"#000000",subtle:y[950],surface:y[900],raised:y[800],elevated:y[700],popover:y[950],overlay:"rgba(0, 0, 0, 0.8)"},foreground:{primary:"#ffffff",secondary:y[100],muted:y[300],disabled:y[500],inverse:{base:"#000000",soft:"rgba(0, 0, 0, 0.8)",subtle:"rgba(0, 0, 0, 0.6)"}},accents:{positive:ge[400],warning:fe[400],critical:ue[400],info:Ze[400],highlight:te[400]},states:{hover:{bg:"rgba(255, 255, 255, 0.15)",fg:null},active:{bg:"rgba(255, 255, 255, 0.25)"},focus:{border:te[400],ring:{color:te[400],width:3}},disabled:{opacity:.5,bg:y[900],fg:y[500]},selected:{bg:te[800],fg:"#ffffff"}},borders:{default:y[500],subtle:y[700],strong:y[300],accent:te[400],danger: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:y[800],fg:"#ffffff",hoverBg:y[700],activeBg:y[900],border:y[500]},outline:{bg:"transparent",fg:te[400],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:te[400]},ghost:{bg:"transparent",fg:"#ffffff",hoverBg:"rgba(255, 255, 255, 0.15)",activeBg:"rgba(255, 255, 255, 0.25)",border:"transparent"}},panel:{bg:y[950],headerBg:y[900],footerBg:y[900],border:y[500]},menu:{bg:y[950],border:y[500],item:{fg:"#ffffff",hoverBg:y[800],activeBg:te[800],selectedBg:te[900],disabledFg:y[500]}},tabs:{bg:y[950],border:y[500],tab:{fg:y[300],activeFg:"#ffffff",activeBg:y[800],hoverFg:y[100],indicator:te[400]}},dropdown:{bg:y[950],border:y[500],item:{fg:"#ffffff",hoverBg:y[800],selectedBg:te[800]}},input:{bg:"#000000",fg:"#ffffff",placeholder:y[400],border:y[500],focusBorder:te[400],invalidBorder:ue[400]},checkbox:{bg:"#000000",border:y[400],checkColor:"#000000",checkedBg:te[400]},radio:{bg:"#000000",dotColor:te[400],border:y[400],checkedBorder:te[400]},tooltip:{bg:y[800],fg:"#ffffff"},modal:{bg:y[950],border:y[500],overlay:"rgba(0, 0, 0, 0.8)"},badge:{default:{bg:y[700],fg:"#ffffff"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},list:{item:{bg:"transparent",hoverBg:y[900],selectedBg:te[800],fg:"#ffffff"}},header:{default:{bg:y[950],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},primary:{bg:te[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:te[300]},secondary:{bg:y[800],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},success:{bg:ge[500],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:ge[300]},warning:{bg:fe[400],fg:"#000000",titleFg:"#000000",subtitleFg:"rgba(0, 0, 0, 0.7)",border:fe[600]},danger:{bg:ue[500],fg:"#ffffff",titleFg:"#ffffff",subtitleFg:"rgba(255, 255, 255, 0.8)",border:ue[300]}},statusbar:{default:{bg:y[950],fg:y[300]},primary:{bg:te[500],fg:"#ffffff"},info:{bg:Ze[500],fg:"#000000"},success:{bg:ge[500],fg:"#000000"},warning:{bg:fe[400],fg:"#000000"},danger:{bg:ue[500],fg:"#ffffff"}},page:{default:{bg:"#000000",titleFg:"#ffffff",subtitleFg:y[300],border:y[500]},primary:{bg:"#000000",titleFg:te[400],subtitleFg:y[300],border:te[400]},secondary:{bg:"#000000",titleFg:y[100],subtitleFg:y[400],border:y[700]}},appshell:{bg:"#000000",dividerFg:y[500],sidebarBg:"#000000",asideBg:"#000000"},collapsible:{default:{headerBg:y[950],headerFg:"#ffffff",contentBg:"#000000",border:y[500],iconFg:y[300]},primary:{headerBg:y[900],headerFg:te[400],contentBg:"#000000",border:te[400],iconFg:te[400]},secondary:{headerBg:y[900],headerFg:"#ffffff",contentBg:y[950],border:y[500],iconFg:y[300]}},commandPalette:{bg:y[950],border:y[500],inputBg:"#000000",inputFg:"#ffffff",inputPlaceholder:y[400],itemFg:"#ffffff",itemHoverBg:y[800],itemSelectedBg:te[800],itemSelectedFg:"#ffffff",highlightFg:te[400],categoryFg:y[400]},splitPanel:{bg:"#000000",dividerBg:y[500],dividerHoverBg:y[400],dividerActiveBg:te[400],border:y[500],titleFg:y[300]},toast:{success:{bg:mo.success[900],fg:mo.success[100],border:ge[400],iconFg:ge[400]},error:{bg:mo.danger[900],fg:mo.danger[100],border:ue[400],iconFg:ue[400]},warning:{bg:mo.warning[900],fg:mo.warning[100],border:fe[400],iconFg:fe[400]},info:{bg:"#0C4A6E",fg:"#E0F2FE",border:Ze[400],iconFg:Ze[400]}},window:{default:{bg:"#000000",fg:"#ffffff",titleBarBg:y[950],titleBarFg:"#ffffff",border:y[500],buttonFg:y[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:ge[500],titleBarFg:"#000000",border:ge[300],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},warning:{bg:"#000000",fg:"#ffffff",titleBarBg:fe[400],titleBarFg:"#000000",border:fe[600],buttonFg:"rgba(0, 0, 0, 0.8)",closeFg:"#000000"},danger:{bg:"#000000",fg:"#ffffff",titleBarBg:ue[500],titleBarFg:"#ffffff",border:ue[300],buttonFg:"rgba(255, 255, 255, 0.8)",closeFg:"#ffffff"}}},borderRadius:"sm"};var MB={primary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},secondary:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},success:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},warning:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},danger:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]},neutral:{50:y[50],100:y[100],200:y[200],300:y[300],400:y[400],500:y[500],600:y[600],700:y[700],800:y[800],900:y[900]}},Lx={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:MB,background:{lowest:y[950],base:y[900],subtle:y[800],surface:y[700],raised:y[600],elevated:y[500],popover:y[800],overlay:"rgba(0, 0, 0, 0.7)"},foreground:{primary:y[50],secondary:y[200],muted:y[400],disabled:y[500],inverse:{base:y[900],soft:"rgba(23, 23, 23, 0.8)",subtle:"rgba(23, 23, 23, 0.6)"}},accents:{positive:y[300],warning:y[400],critical:y[200],info:y[300],highlight:y[300]},states:{hover:{bg:"rgba(255, 255, 255, 0.1)",fg:null},active:{bg:"rgba(255, 255, 255, 0.2)"},focus:{border:y[400],ring:{color:y[400],width:2}},disabled:{opacity:.4,bg:y[800],fg:y[500]},selected:{bg:y[700],fg:y[50]}},borders:{default:y[600],subtle:y[700],strong:y[400],accent:y[400],danger:y[400]},opacity:{disabled:.4,muted:.7,overlay:.7,ghost:.2},components:{button:{primary:{bg:y[300],fg:y[900],hoverBg:y[200],activeBg:y[400],border:"transparent"},secondary:{bg:y[700],fg:y[50],hoverBg:y[600],activeBg:y[800],border:"transparent"},outline:{bg:"transparent",fg:y[300],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:y[400]},ghost:{bg:"transparent",fg:y[50],hoverBg:"rgba(255, 255, 255, 0.1)",activeBg:"rgba(255, 255, 255, 0.2)",border:"transparent"}},panel:{bg:y[800],headerBg:y[700],footerBg:y[700],border:y[600]},menu:{bg:y[800],border:y[600],item:{fg:y[50],hoverBg:y[700],activeBg:y[600],selectedBg:y[700],disabledFg:y[500]}},tabs:{bg:y[800],border:y[600],tab:{fg:y[400],activeFg:y[50],activeBg:y[700],hoverFg:y[200],indicator:y[300]}},dropdown:{bg:y[800],border:y[600],item:{fg:y[50],hoverBg:y[700],selectedBg:y[600]}},input:{bg:y[800],fg:y[50],placeholder:y[500],border:y[600],focusBorder:y[400],invalidBorder:y[300]},checkbox:{bg:y[800],border:y[500],checkColor:y[900],checkedBg:y[300]},radio:{bg:y[800],dotColor:y[300],border:y[500],checkedBorder:y[300]},tooltip:{bg:y[700],fg:y[50]},modal:{bg:y[800],border:y[600],overlay:"rgba(0, 0, 0, 0.7)"},badge:{default:{bg:y[700],fg:y[50]},success:{bg:y[400],fg:y[900]},warning:{bg:y[500],fg:y[900]},danger:{bg:y[300],fg:y[900]}},list:{item:{bg:"transparent",hoverBg:y[800],selectedBg:y[700],fg:y[50]}},header:{default:{bg:y[800],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},primary:{bg:y[300],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[400]},secondary:{bg:y[700],fg:y[50],titleFg:y[50],subtitleFg:y[400],border:y[600]},success:{bg:y[400],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[500]},warning:{bg:y[500],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[600]},danger:{bg:y[300],fg:y[900],titleFg:y[900],subtitleFg:"rgba(23, 23, 23, 0.7)",border:y[400]}},statusbar:{default:{bg:y[800],fg:y[400]},primary:{bg:y[300],fg:y[900]},info:{bg:y[400],fg:y[900]},success:{bg:y[400],fg:y[900]},warning:{bg:y[500],fg:y[900]},danger:{bg:y[300],fg:y[900]}},page:{default:{bg:y[900],titleFg:y[50],subtitleFg:y[400],border:y[600]},primary:{bg:y[900],titleFg:y[200],subtitleFg:y[400],border:y[500]},secondary:{bg:y[900],titleFg:y[300],subtitleFg:y[500],border:y[700]}},appshell:{bg:y[950],dividerFg:y[600],sidebarBg:y[900],asideBg:y[900]},collapsible:{default:{headerBg:y[800],headerFg:y[50],contentBg:y[900],border:y[600],iconFg:y[400]},primary:{headerBg:y[700],headerFg:y[200],contentBg:y[900],border:y[500],iconFg:y[300]},secondary:{headerBg:y[700],headerFg:y[50],contentBg:y[800],border:y[600],iconFg:y[400]}},commandPalette:{bg:y[800],border:y[600],inputBg:y[900],inputFg:y[50],inputPlaceholder:y[500],itemFg:y[50],itemHoverBg:y[700],itemSelectedBg:y[600],itemSelectedFg:y[50],highlightFg:y[200],categoryFg:y[500]},splitPanel:{bg:y[900],dividerBg:y[600],dividerHoverBg:y[500],dividerActiveBg:y[300],border:y[600],titleFg:y[400]},toast:{success:{bg:y[800],fg:y[100],border:y[400],iconFg:y[300]},error:{bg:y[800],fg:y[100],border:y[300],iconFg:y[200]},warning:{bg:y[800],fg:y[100],border:y[500],iconFg:y[400]},info:{bg:y[800],fg:y[100],border:y[400],iconFg:y[300]}},window:{default:{bg:y[900],fg:y[50],titleBarBg:y[800],titleBarFg:y[50],border:y[600],buttonFg:y[400],closeFg:y[300]},primary:{bg:y[900],fg:y[50],titleBarBg:y[300],titleBarFg:y[900],border:y[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},success:{bg:y[900],fg:y[50],titleBarBg:y[400],titleBarFg:y[900],border:y[500],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},warning:{bg:y[900],fg:y[50],titleBarBg:y[500],titleBarFg:y[900],border:y[600],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]},danger:{bg:y[900],fg:y[50],titleBarBg:y[300],titleBarFg:y[900],border:y[400],buttonFg:"rgba(23, 23, 23, 0.8)",closeFg:y[900]}}},borderRadius:"none"};var $x=Symbol("tuiuiu.theme-runtime-state");function jx(){let[e,t]=gr(_f);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function LB(e){if(e.id===0)return jx();let t=Mt($x,jx),[r,n]=gr(bs(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function Bx(){let e=We();return Fe($x,()=>LB(e),e)}function Nx(){return bs(Bx().currentTheme)}var jB={dark:_f,light:Tx,monokai:Px,dracula:Ax,nord:Cx,solarizedDark:Ox,gruvbox:Dx,tokyoNight:Fx,catppuccin:Ix,highContrastDark:Mx,monochrome:Lx},vV=Object.keys(jB);function $B(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function kt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&$B(e)>.4?"black":"white"}function BB(e,t=500){let r=Sx[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var NB={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>kt(e.palette.primary[500]),"primary-foreground":e=>kt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>kt(e.palette.secondary[500]),"secondary-foreground":e=>kt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>kt(e.accents.positive),"success-foreground":e=>kt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>kt(e.accents.warning),"warning-foreground":e=>kt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>kt(e.accents.critical),"danger-foreground":e=>kt(e.accents.critical),errorForeground:e=>kt(e.accents.critical),destructiveForeground:e=>kt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>kt(e.accents.info),"info-foreground":e=>kt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>kt(e.palette.primary[400]),"accent-foreground":e=>kt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function Gx(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=bs(Bx().currentTheme),r=NB[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return BB(o,i)}return e}var GB={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},Wx=Symbol("tuiuiu.perf-inspector-runtime-state");function WB(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function Hx(e){let t=e.id===0?null:Mt(Wx,()=>Hx(Mr())),r=WB(t?.config??GB);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function Ux(){let e=We();return Fe(Wx,()=>Hx(e),e)}function HB(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function UB(e,t){let r=VB().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 qB(e,t){e.ring.length!==e.config.maxFrames&&UB(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 KB(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 qx(e,t={}){let r=Ux(),n=HB(e),o=Math.max(0,n-r.config.budget.frameMs),s=KB(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;W_({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(qB(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function VB(){let e=Ux(),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 zB={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function ho(e,t){return Z_(e,t,zB)}function xf(e){ex(e)}function An(e,t){nx(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),qx(e,{renderer:t.renderer})}var JB=.4,YB=64;function yo(){return typeof performance<"u"?performance.now():Date.now()}var Kx=new WeakMap;function QB(){let e=Nx(),t=Kx.get(e);return t||(t=new Map,Kx.set(e,t)),t}function XB(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&&ZB(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 ZB(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 Jx(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 Yx(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 eN(e,t,r){let n=e.map(s=>Yx(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(!(Jx(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 tN(e,t,r){let n=new Map;for(let i of e){let a=Yx(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 Qx(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 $i(s,i),l=!0,d=!1,c=null,u=null,p=0,g=0,f=0,b=0;function m(I){H(t.columns||80,t.rows||24);let W=ho(I,{width:s,height:i});w(W)}function w(I){H(I.info.viewport.width,I.info.viewport.height),G(I),us(I.layout),wi(),c=I.root,u=I}function T(){l=!0,c?m(c):u&&G(u)}function L(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new $i(s,i),l=!0}function C(){!r&&d&&(Rs(t),d=!1)}function M(){let I=s*i;return{totalRenders:p,deltaRenders:g,fullRenders:f,lastPatchCount:b,totalCells:I,updatePercentage:I>0?b/I*100:0}}function N(I,W){s=I,i=W,a.resize(s,i),l=!0}function H(I,W){!r&&!d&&(ws(t),d=!0),(I!==s||W!==i)&&N(I,W)}function G(I){let W=yo(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=uN(u,I),Oe=Br(),ve=_x(Oe),ke=xx(Oe),Y=we=>{let De=yo();t.write(we),q+=yo()-De,oe+=typeof we=="string"?Buffer.byteLength(we):we.byteLength};if(!l&&n&&u){let{renderRects:we,diffRects:De}=nN(u.drawCommands,I.drawCommands,s,i);if(Pt(I,"dirtyRectCount",we.length),Pt(I,"diffRectCount",De.length),we.length===0){pe&&Y(pe),b=0,Pt(I,"patchCount",0),Pt(I,"outputByteCount",oe),dt(I,"outputWriteMs",q),dt(I,"deltaRenderMs",Math.max(0,yo()-W-q)),An(I,{renderer:"delta"});return}let Se=oN(we);if(!(we.length>YB||Se>Z*JB)){ve&&Y(ve),sN(se,we),aN(I.drawCommands,we,se,I.reservedRegions);let Pe=ae.diffRects(se,De);if(ae.applyPatches(Pe),se.clearDamage(),b=Pe.length,Pt(I,"patchCount",Pe.length),o&&console.error(`[delta-render] dirty-rects: ${we.length}, patches: ${Pe.length}, cells: ${Z}`),pe&&Y(pe),Pe.length>0){let me=bf(Pe,s,!0);Y(me),g++}ke&&Y(ke),Pt(I,"outputByteCount",oe),dt(I,"outputWriteMs",q),dt(I,"deltaRenderMs",Math.max(0,yo()-W-q)),An(I,{renderer:"delta"});return}}ve&&Y(ve),se.clear(),eE(I.drawCommands,se,I.reservedRegions);let de=a.swap();if(b=de.length,Pt(I,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let we=sd(a.getFrontBuffer());pe&&Y(pe),Y("\x1B[H"),Y(we),f++,l=!1,ke&&Y(ke),Pt(I,"outputByteCount",oe),dt(I,"outputWriteMs",q),dt(I,"deltaRenderMs",Math.max(0,yo()-W-q)),An(I,{renderer:"delta"});return}if(pe&&Y(pe),de.length>0){let we=bf(de,s,!0);Y(we),g++}l=!1,ke&&Y(ke),Pt(I,"outputByteCount",oe),dt(I,"outputWriteMs",q),dt(I,"deltaRenderMs",Math.max(0,yo()-W-q)),An(I,{renderer:"delta"})}return{render:m,renderFrame:w,fullRedraw:T,clear:L,cleanup:C,stats:M,resize:N}}function rN(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=to(e.text,e.maxWidth,e.style.wrap);for(let o=0;o<n.length;o++){let s=Math.min(e.maxWidth,be(n[o]));s>0&&(t=Math.max(t,s),r=o)}return{x:e.x,y:e.y,width:t,height:r>=0?r+1:0}}function Ef(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:rN(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 nN(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&&XB(a,l)||(a&&o.push(Ef(a)),l&&o.push(Ef(l)))}return{renderRects:eN(o,r,n),diffRects:tN(o,r,n)}}function oN(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function sN(e,t){let r=Nr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function Xx(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function yr(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,be(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||Xx(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function iN(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)&&!Xx(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function Zx(e,t,r){switch(e.type){case"box":lN(e,t,r);break;case"text":sE(e,t,r);break;case"terminal-image":dN(e,t);break}}function aN(e,t,r,n){for(let o of e){let s=Ef(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(Jx(s,i)){Zx(o,r,n);break}}}}function eE(e,t,r){for(let n of e)Zx(n,t,r)}function tE(e,t=new Gr(e.info.viewport.width,e.info.viewport.height)){return eE(e.drawCommands,t,e.reservedRegions),t}function lN(e,t,r){let{x:n,y:o,width:s,height:i,backgroundColor:a,fillChar:l=" ",borderStyle:d,borderColor:c,borderSides:u,borderText:p,borderTextAlign:g,borderTextColor:f,borderTextBold:b,clip:m}=e,w=a?bo(a):void 0,T=c?bo(c):void 0,L=f?bo(f):T;if(w||l!==" "){let C=d&&d!=="none"?1:0,M=n+C,N=o+C,H=Math.max(0,s-C*2),G=Math.max(0,i-C*2);for(let I=0;I<G;I++)iN(t,r,M,N+I,H,l,void 0,w,{},m)}if(d&&d!=="none"){let C=kf[d]??kf.single,M={},N=u?.top!==!1,H=u?.bottom!==!1,G=u?.left!==!1,I=u?.right!==!1;if(N){let W=G?C.topLeft:C.top;yr(t,r,n,o,W,T,void 0,M,m);for(let q=1;q<s-1;q++)yr(t,r,n+q,o,C.top,T,void 0,M,m);if(s>1){let q=I?C.topRight:C.top;yr(t,r,n+s-1,o,q,T,void 0,M,m)}if(p&&s>4){let q=s-4,ae=` ${Zr(yw(p),q,{truncationCharacter:""})} `,se=be(ae),Z=g??"center",pe=Z==="left"?n+1:Z==="right"?n+Math.max(1,s-1-se):n+Math.max(1,Math.floor((s-se)/2)),Oe=0,ve=pe;for(;Oe<ae.length&&ve<n+s-1;){let ke=eo(ae,Oe);if(!ke)break;Oe=ke.nextIndex;let Y=be(ke.symbol);Y<=0||ve+Y>n+s-1||(yr(t,r,ve,o,ke.symbol,L,void 0,b?{...M,bold:!0}:M,m),ve+=Y)}}}for(let W=1;W<i-1;W++)G&&yr(t,r,n,o+W,C.left,T,void 0,M,m),I&&s>1&&yr(t,r,n+s-1,o+W,C.right,T,void 0,M,m);if(H&&i>1){let W=G?C.bottomLeft:C.bottom;yr(t,r,n,o+i-1,W,T,void 0,M,m);for(let q=1;q<s-1;q++)yr(t,r,n+q,o+i-1,C.bottom,T,void 0,M,m);if(s>1){let q=I?C.bottomRight:C.bottom;yr(t,r,n+s-1,o+i-1,q,T,void 0,M,m)}}}}function dN(e,t){e.cellRender&&sE({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:oE(e),style:{},clip:e.clip},t,[])}function rE(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 nE(e){let t=rE(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 Bi(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${nE(e)}:${e.x}:${e.y}`)}function _s(e){return[Bi(e),e.x,e.y,nE(e)].join(":")}function oE(e){let t=rE(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:Vl(e.protocol,e.source,t)}function Vx(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 cN(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Bi(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Bi(s));if(!i||_s(s)!==_s(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+="\x1B7\x1B[H",o+=hs.delete(s.kittyImageId),o+="\x1B8";continue}return`\x1B7\x1B[H${zl("kitty")}\x1B8`}}return o}function uN(e,t){let r=Vx(e),n=Vx(t),o=r.map(_s).join("|"),s=n.map(_s).join("|");if(e&&o===s)return"";let i=cN(r,n),a=new Map(r.map(l=>[Bi(l),l]));for(let l of n){let d=a.get(Bi(l));d&&_s(d)===_s(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=oE(l),i+="\x1B8")}return i}function xs(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 pN(e){let t=Number(e[1]),r=e.slice(2).filter(n=>n!=="");if(t===5){let n=xs(r.at(-1));return n===null?null:{ansi256:n}}if(t===2){let n=r.slice(-3).map(xs);return n.length!==3||n.some(o=>o===null)?null:{r:n[0],g:n[1],b:n[2]}}return null}function fN(e,t){let r=Number(e[t+1]);if(r===5)return{color:(()=>{let n=xs(e[t+2]);return n===null?null:{ansi256:n}})(),consumed:2};if(r===2){let n=[xs(e[t+2]),xs(e[t+3]),xs(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 zx={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function gN(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 b=p[g].split(":"),m=Number(b[0]||0);if(b.length>1){if(m===4){let w=Number(b[1]||0);w in zx&&(a.underline=zx[w])}else if(m===38||m===48||m===58){let w=pN(b);w&&(m===38?s=w:m===48?i=w:a.underlineColor=w)}continue}if(m===0)s=t,i=r,a={...n};else if(m===1)a.bold=!0;else if(m===2)a.dim=!0;else if(m===3)a.italic=!0;else if(m===4)a.underline=!0;else if(m===5)a.blink=!0;else if(m===7)a.inverse=!0;else if(m===8)a.hidden=!0;else if(m===9)a.strikethrough=!0;else if(m===21)a.underline="double";else if(m===22)a.bold=!1,a.dim=!1;else if(m===23)a.italic=!1;else if(m===24)a.underline=!1;else if(m===25)a.blink=!1;else if(m===27)a.inverse=!1;else if(m===28)a.hidden=!1;else if(m===29)a.strikethrough=!1;else if(m>=30&&m<=37)s=["black","red","green","yellow","blue","magenta","cyan","white"][m-30];else if(m===39)s=t;else if(m>=40&&m<=47)i=["black","red","green","yellow","blue","magenta","cyan","white"][m-40];else if(m===49)i=r;else if(m===59)a.underlineColor=n.underlineColor;else if(m>=90&&m<=97)s=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][m-90];else if(m>=100&&m<=107)i=["blackBright","redBright","greenBright","yellowBright","blueBright","magentaBright","cyanBright","whiteBright"][m-100];else if(m===38||m===48||m===58){let{color:w,consumed:T}=fN(p,g);w&&(m===38?s=w:m===48?i=w:a.underlineColor=w),g+=T}}}d=c.end;continue}l+=e[d],d++}return l&&o.push({text:l,fg:s,bg:i,attrs:{...a}}),o}function sE(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?bo(a.color):void 0,u=d?void 0:a.backgroundColor?bo(a.backgroundColor):l?bo(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?bo(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=to(i,s,a.wrap);if(g){let b=gN(f.join(`
|
|
201
|
+
`),c,u,p),m=0,w=0;for(let T of b){let L=0;for(;L<T.text.length;){let C=eo(T.text,L);if(!C)break;let M=C.symbol;if(M===`
|
|
202
|
+
`){w++,m=0,L=C.nextIndex;continue}let N=be(M);N>0&&(yr(t,r,n+m,o+w,M,T.fg,T.bg,T.attrs,e.clip),m+=N),L=C.nextIndex}}}else for(let b=0;b<f.length;b++){let m=0,w=0;for(;w<f[b].length;){let T=eo(f[b],w);if(!T)break;let L=T.symbol;if(m>=s)break;let C=be(L);C>0&&(yr(t,r,n+m,o+b,L,c,u,p,e.clip),m+=C),w=T.nextIndex}}}function bo(e){let t=QB(),r=t.get(e);if(r)return r;let n=Gx(e);return t.set(e,n),n}var qV=Symbol("tuiuiu.delta-renderer-state");function iE(){return typeof performance<"u"?performance.now():Date.now()}function lE(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=lE(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function mN(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 Sf(e,t={}){let r=iE(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=lE(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Gr(e.info.viewport.width,u);tE(e,p);let g=sd(p,n),f=bN(e,o);return dt(e,"ansiRenderMs",iE()-r),f+g}function dE(e,t,r){let n=mN(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=ho(e,{width:n.width,height:s});return Sf(i,{fullHeight:n.fullHeight})}function cE(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 uE(e){let t=cE(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 Ni(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${uE(e)}:${e.x}:${e.y}`)}function Es(e){return[Ni(e),e.x,e.y,uE(e)].join(":")}function hN(e){let t=cE(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:Vl(e.protocol,e.source,t)}function aE(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function vf(e,t){if(!h_(t))return e;let r=Br();return r.multiplexer?id(e,r.multiplexer):e}function yN(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Ni(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Ni(s));if(!i||Es(s)!==Es(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=vf(`\x1B7\x1B[H${hs.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return vf(`\x1B7\x1B[H${zl("kitty")}\x1B8`,"kitty")}}return o}function bN(e,t){let r=aE(e);if(r.length===0&&!t)return"";let n=aE(t),o=n.map(Es).join("|"),s=r.map(Es).join("|");if(t&&o===s)return"";let i=yN(n,r),a=new Map(n.map(l=>[Ni(l),l]));for(let l of r){let d=a.get(Ni(l));if(d&&Es(d)===Es(l))continue;let c=hN(l);i+=vf(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function ld(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=Fi(()=>gr(e)),o=rr();return pr(o,n),n}return t}function pE(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=Fi(e);return pr(rr(),n),n}return t}function Gi(e){let{value:t,isNew:r}=ur(null);if(r||t===null){let n=rr(),o={effect:null,fn:e,dispose:null};pr(n,o);let s=new vn(()=>{let a=$r(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,no(i,n),i}else return t.fn=e,t.dispose}var uz=Symbol("tuiuiu.keyboard-protocol-runtime-state");function fE(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,b)=>{if(f===void 0)return b??null;if(!/^\d+$/u.test(f))return null;let m=Number(f);return Number.isSafeInteger(m)?m:null},n=f=>f>=0&&f<=1114111&&!(f>=55296&&f<=57343),o=r(t[1],0),s=r(t[2]),i=r(t[3]),a=r(t[4],1),l=r(t[5],1),d=t[6];if(o===null||a===null||a<1||l===null||s!==null&&!n(s)||i!==null&&!n(i))return null;let c=a-1,u={shift:!!(c&1),alt:!!(c&2),ctrl:!!(c&4),super:!!(c&8),hyper:!!(c&16),meta:!!(c&32),capsLock:!!(c&64),numLock:!!(c&128)},p="press";l===2?p="repeat":l===3&&(p="release");let g="";if(d){let f=d.split(":").map(b=>r(b));if(f.length===0||f.some(b=>b===null||!n(b)))return null;g=f.map(b=>String.fromCodePoint(b)).join("")}else o>=32&&o<127&&(g=String.fromCharCode(o));return{keyCode:o,baseKey:i??void 0,shiftedKey:s??void 0,text:g,eventType:p,modifiers:u}}var Tf="\x1B[200~",vs="\x1B[201~",kN="\x1B[I",RN="\x1B[O";function gE(){return"\x1B[?2004h"}function mE(){return"\x1B[?2004l"}function hE(){return"\x1B[?1004h"}function yE(){return"\x1B[?1004l"}function bE(e){return e===kN?{focused:!0}:e===RN?{focused:!1}:null}function kE(){return"\x1B[?1049h"}function Pf(){return"\x1B[?1049l"}var wN={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"},_N=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),xN=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),EN=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,vN=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,SN=/^\x1b\[27;(\d+);(\d+)~/;function TN(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 wE(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function RE(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!wE(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function PN(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 Af(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===`
|
|
201
203
|
`)return r.return=!0,{input:n,key:r,length:1};if(t==="\x1B\r"||t===`\x1B
|
|
202
|
-
`)return r.return=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B\r")return r.return=!0,r.meta=!0,r.ctrl=!0,{input:n,key:r,length:2};if(t===" ")return r.tab=!0,{input:n,key:r,length:1};if(t==="\x7F"||t==="\b")return r.backspace=!0,{input:n,key:r,length:1};if(t==="\x1B\x7F"||t==="\x1B\b")return r.backspace=!0,r.meta=!0,{input:n,key:r,length:2};if(t==="\x1B")return r.escape=!0,{input:n,key:r,length:1};if(t==="\x1B\x1B")return r.escape=!0,r.meta=!0,{input:n,key:r,length:2};if(t===" ")return n=" ",{input:n,key:r,length:1};if(t==="\x1B ")return r.meta=!0,n=" ",{input:n,key:r,length:2};if(t.length>=1&&t.charCodeAt(0)<=26)return r.ctrl=!0,n=String.fromCharCode(t.charCodeAt(0)+97-1),{input:n,key:r,length:1};let o=J$.exec(t);if(o){let d=Ax(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=Lx(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=Y$.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(Q$(r,d)&&jx(c))return n=Lx(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=z$.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=q$[c];return p&&X$(r,p),K$.has(c)&&(r.shift=!0),V$.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 hf(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=dr(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();cr(d,l),r&&(l.handlerId=Tl(a,{priority:n,stopPropagation:o})),Xn(()=>{l.handlerId!==null&&(bi(l.handlerId),l.handlerId=null),l.registered=!1},d)}else{let a=s.registered;s.handler=e,s.registered=r;let l=s.priority!==n,d=s.stopPropagation!==o;r&&!a?(s.priority=n,s.stopPropagation=o,s.handlerId=Tl(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(bi(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&bi(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=Tl(s.wrapper,{priority:n,stopPropagation:o}))}}function $x(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap($x):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function hr(e,...t){return{type:"box",props:{...e},children:$x(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 Z$=0,Bx=Symbol("tuiuiu.focus-zone-manager"),bf=class e{zones=new Map;stack=[];activeZoneId=null;rootZoneId=null;maxStackDepth=10;listeners=new Set;constructor(){this.createZone({id:"__root__"}),this.rootZoneId="__root__",this.activeZoneId="__root__"}static getInstance(){return Fe(Bx,()=>new e)}static reset(){xl(Bx)}[Fr](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${Z$++}`,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 Nx(){return bf.getInstance()}var Mi=class{zoneManager=Nx();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 eB}from"node:string_decoder";function Gx(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function tB(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function rB(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 nB(e){let t=rB(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function oB(e){let t=Math.min(e.length,Rs.length-1);for(let r=t;r>0;r--)if(e.endsWith(Rs.slice(0,r)))return r;return 0}var yf=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new eB("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,Gx(this.maxPasteBytes,"maxPasteBytes"),Gx(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),tB(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}=nB(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&&Rs.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(Rs);if(o===-1){let s=oB(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+Rs.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(ff);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+ff.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 Wx(e={}){return new yf(e)}function Hx(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(Ox()),a&&o&&u(Cx()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let y,m=w=>{try{w()}catch(T){y??=T}};if(c=0,m(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),m(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&m(()=>u(Fx())),a&&o&&m(()=>u(Dx())),y)throw y}}}function ed(){let e=Xr();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Xl=new WeakSet,Zl=new WeakSet;function kf(e,t,r={}){let n=xp();if(n&&Xr(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(Xl.has(e)||Zl.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=NR();Xl.add(e),Zl.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,m=!1,w=o,T,B=qe(u,()=>(P_({stdout:t}),!!(e.isTTY&&p&&$r().focusEvents))),C=Hx({stdin:e,stdout:t,focusEvents:B,bracketedPaste:!0}),M=C.setRawMode,N=C.isRawModeEnabled;try{C.start()}catch(Y){Xl.delete(e),Zl.delete(t);try{C.dispose()}finally{ss(u)}throw Y}Kp(u);let H=qe(u,()=>new Mi);Ap(H,u);let G=Wx({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 we=Ix(de.slice(0,3));if(we){Bt(()=>{qp(we.focused)}),de=de.slice(3);continue}if(Fp(de)){let fe=_i(de);if(fe){Bt(()=>{ps().handleMouseEvent(fe.event),lw(fe.event)}),de=de.slice(fe.length);continue}}let{input:Oe,key:ve,length:Re}=mf(de),Te=Re>0?Re:1;if(de=de.slice(Te),s&&ve.ctrl&&Oe==="c"){ke();return}if(w){if(ve.tab&&!ve.shift){Bt(()=>{H.focusNext()});continue}if(ve.tab&&ve.shift){Bt(()=>{H.focusPrevious()});continue}if(ve.escape&&H.getActiveId()!==void 0){Bt(()=>{H.blur()});continue}}Bt(()=>{iw(Oe,ve)})}},se=Y=>{for(let de of Y){if(m)return;de.type==="paste"?Bt(()=>{cw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{m||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!m&&(se(G.flushPendingInput()),Z())},De=Qr(u,Y=>{m||(se(G.push(Y)),Z())});e.on("data",De);let Ee=()=>{if(m)return;m=!0;let Y=de=>{try{de()}catch(we){console.error("[tuiuiu] Error while disposing app state:",we)}};try{Y(()=>e.off("data",De)),W&&(clearTimeout(W),W=null),q(),Y(()=>G.dispose()),Y(()=>C.dispose()),Y(()=>Sl(u)),Y(()=>Kp(u)),Y(()=>aw(u)),Y(()=>uw(u)),Y(()=>dw(u)),Y(()=>Dl(u)),Y(()=>ww(u)),Y(()=>Ap(null,u)),Y(()=>{Xr(u)===T&&Pp(null,u)})}finally{Xl.delete(e),Zl.delete(t),g.clear(),ss(u)}},ke=Y=>{if(f)return;f=!0,y=Y;let de=[...g];g.clear(),Ee();for(let we of de)try{we(Y)}catch(Oe){console.error("[tuiuiu] Error in app exit callback:",Oe)}Y&&console.error(Y),i&&process.exit(Y?1:0)};return T={exit:ke,dispose:Ee,stdin:e,stdout:t,writeLine:Y=>{let de=rs(String(Y)).replace(/\r\n?/g,`
|
|
204
|
+
`)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=vN.exec(t);if(o){let d=fE(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=RE(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=SN.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(TN(r,d)&&wE(c))return n=RE(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=EN.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=wN[c];return p&&PN(r,p),_N.has(c)&&(r.shift=!0),xN.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 Cf(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 $r(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=rr();pr(d,l),r&&(l.handlerId=$l(a,{priority:n,stopPropagation:o})),no(()=>{l.handlerId!==null&&(Ei(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=$l(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(Ei(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&Ei(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=$l(s.wrapper,{priority:n,stopPropagation:o}))}}function _E(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(_E):typeof e=="string"||typeof e=="number"?[ht({children:String(e)})]:[e]}function br(e,...t){return{type:"box",props:{...e},children:_E(t.length>0?t:e.children)}}function ht(e,...t){let r=t.filter(o=>o!=null),n=r.length>0?r.join(""):Array.isArray(e.children)?e.children.filter(o=>o!=null).join(""):String(e.children??"");return{type:"text",props:{...e,children:n},children:[]}}var AN=0,xE=Symbol("tuiuiu.focus-zone-manager"),Of=class e{zones=new Map;stack=[];activeZoneId=null;rootZoneId=null;maxStackDepth=10;listeners=new Set;constructor(){this.createZone({id:"__root__"}),this.rootZoneId="__root__",this.activeZoneId="__root__"}static getInstance(){return Fe(xE,()=>new e)}static reset(){Il(xE)}[Ir](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${AN++}`,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 EE(){return Of.getInstance()}var Wi=class{zoneManager=EE();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 CN}from"node:string_decoder";function vE(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function ON(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function DN(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 FN(e){let t=DN(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function IN(e){let t=Math.min(e.length,vs.length-1);for(let r=t;r>0;r--)if(e.endsWith(vs.slice(0,r)))return r;return 0}var Df=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new CN("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,vE(this.maxPasteBytes,"maxPasteBytes"),vE(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),ON(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}=FN(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&&vs.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(vs);if(o===-1){let s=IN(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+vs.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(Tf);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+Tf.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 SE(e={}){return new Df(e)}function TE(e){let{stdin:t,stdout:r,focusEvents:n=!1,bracketedPaste:o=!0}=e,s=!!t.isRaw,i=typeof t.isPaused=="function"&&t.isPaused(),a=!!r.isTTY,l=!1,d=!1,c=0,u=b=>{typeof r.write=="function"&&r.write(b)},p=b=>{if(!(d||!t.isTTY||!t.setRawMode)){if(b){c++,c===1&&!s&&t.setRawMode(!0);return}c!==0&&(c--,c===0&&t.setRawMode(s))}};return{stdin:t,stdout:r,get rawModeEnabledCount(){return c},get disposed(){return d},start:()=>{if(d)throw new Error("[tuiuiu] Cannot restart a disposed TerminalSession");l||(l=!0,p(!0),t.resume(),a&&n&&u(hE()),a&&o&&u(gE()))},setRawMode:p,isRawModeEnabled:()=>c>0,dispose:()=>{if(d||(d=!0,!l))return;let b,m=w=>{try{w()}catch(T){b??=T}};if(c=0,m(()=>{t.isTTY&&t.setRawMode&&t.setRawMode(s)}),m(()=>{i&&typeof t.pause=="function"&&t.pause()}),a&&n&&m(()=>u(yE())),a&&o&&m(()=>u(mE())),b)throw b}}}function ud(){let e=tn();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var dd=new WeakSet,cd=new WeakSet;function Ff(e,t,r={}){let n=jp();if(n&&tn(n))throw new Error("[tuiuiu] Cannot initialize a nested app inside an active render runtime.");let{autoTabNavigation:o=!0,exitOnCtrlC:s=!0,exitProcess:i=!1,maxPasteBytes:a=1024*1024,maxPendingEscapeBytes:l=4096,escapeSequenceTimeoutMs:d=25,pasteTimeoutMs:c=3e4}=r;if(!Number.isSafeInteger(a)||a<1)throw new Error("[tuiuiu] maxPasteBytes must be a positive safe integer");if(!Number.isSafeInteger(l)||l<1)throw new Error("[tuiuiu] maxPendingEscapeBytes must be a positive safe integer");if(!Number.isFinite(d)||d<0)throw new Error("[tuiuiu] escapeSequenceTimeoutMs must be a non-negative number");if(!Number.isFinite(c)||c<0)throw new Error("[tuiuiu] pasteTimeoutMs must be a non-negative number");if(dd.has(e)||cd.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=Ew();dd.add(e),cd.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,b,m=!1,w=o,T,L=qe(u,()=>(px({stdout:t}),!!(e.isTTY&&p&&Br().focusEvents))),C=TE({stdin:e,stdout:t,focusEvents:L,bracketedPaste:!0}),M=C.setRawMode,N=C.isRawModeEnabled;try{C.start()}catch(Y){dd.delete(e),cd.delete(t);try{C.dispose()}finally{cs(u)}throw Y}af(u);let H=qe(u,()=>new Wi);Hp(H,u);let G=SE({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 we=bE(de.slice(0,3));if(we){Wt(()=>{sf(we.focused)}),de=de.slice(3);continue}if(Vp(de)){let me=Ai(de);if(me){Wt(()=>{ys().handleMouseEvent(me.event),Kw(me.event)}),de=de.slice(me.length);continue}}let{input:De,key:Se,length:Re}=Af(de),Pe=Re>0?Re:1;if(de=de.slice(Pe),s&&Se.ctrl&&De==="c"){ke();return}if(w){if(Se.tab&&!Se.shift){Wt(()=>{H.focusNext()});continue}if(Se.tab&&Se.shift){Wt(()=>{H.focusPrevious()});continue}if(Se.escape&&H.getActiveId()!==void 0){Wt(()=>{H.blur()});continue}}Wt(()=>{Uw(De,Se)})}},se=Y=>{for(let de of Y){if(m)return;de.type==="paste"?Wt(()=>{zw(de.text,de.bracketed)}):ae(de.input)}},Z=()=>{m||(W&&(clearTimeout(W),W=null),G.status.pendingEscapeBytes>0&&(W=setTimeout(pe,Math.max(0,d))),G.status.pasteActive?oe():q())},pe=()=>{W=null,!m&&(se(G.flushPendingInput()),Z())},Oe=en(u,Y=>{m||(se(G.push(Y)),Z())});e.on("data",Oe);let ve=()=>{if(m)return;m=!0;let Y=de=>{try{de()}catch(we){console.error("[tuiuiu] Error while disposing app state:",we)}};try{Y(()=>e.off("data",Oe)),W&&(clearTimeout(W),W=null),q(),Y(()=>G.dispose()),Y(()=>C.dispose()),Y(()=>jl(u)),Y(()=>af(u)),Y(()=>qw(u)),Y(()=>Jw(u)),Y(()=>Vw(u)),Y(()=>Wl(u)),Y(()=>s_(u)),Y(()=>Hp(null,u)),Y(()=>{tn(u)===T&&Wp(null,u)})}finally{dd.delete(e),cd.delete(t),g.clear(),cs(u)}},ke=Y=>{if(f)return;f=!0,b=Y;let de=[...g];g.clear(),ve();for(let we of de)try{we(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:ve,stdin:e,stdout:t,writeLine:Y=>{let de=as(String(Y)).replace(/\r\n?/g,`
|
|
203
205
|
`);t.write(`${de.replace(/\n+$/u,"")}
|
|
204
|
-
`)},onExit:Y=>{if(f){try{Y(
|
|
206
|
+
`)},onExit:Y=>{if(f){try{Y(b)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(Y),()=>{g.delete(Y)}},autoTabNavigation:w,setAutoTabNavigation:Y=>{w=Y},setRawMode:M,get rawModeEnabledCount(){return C.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>mr(u),enqueueExternalUpdate:Y=>{Wt(()=>{Y()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},Wp(T,u),T}function If(e){let t=tn();t&&(t.clearScreen=e)}function pd(e){let t=tn();t&&(t.writeLine=e??(r=>{let n=as(String(r)).replace(/\r\n?/g,`
|
|
205
207
|
`);t.stdout.write(`${n.replace(/\n+$/u,"")}
|
|
206
|
-
`)}))}function
|
|
208
|
+
`)}))}function fd(e){let t=tn();if(t){if(!e){t.enqueueExternalUpdate=r=>{Wt(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function Mf(){let[e,t]=pE(()=>gr(gx()));return Gi(()=>mx(n=>{t(n)})),e()}function Lf(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=ur(null);if(i||s===null){let a=rr(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=$r(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=$r(a);c&&c.callback()},d.delay))},stop:()=>{let d=$r(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>$r(a)?.running??!1};return pr(a,l),no(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[",jf=`${kr}H`,Hi=`${kr}J`,gd=`${kr}K`,PE=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},AE=e=>e>0?`${kr}${e}A`:"",MN=`${kr}1E`,LN=`${kr}2K`;function jN(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${kr}${n+1}H`:jf,d=c=>{!r&&!a&&(ws(e),a=!0);let u=c+`
|
|
207
209
|
`;if(u===o)return;let p=c.split(`
|
|
208
|
-
`),g=p.map(T=>
|
|
209
|
-
`+
|
|
210
|
+
`),g=p.map(T=>be(T)),f=p.length,b=[];for(let T=0;T<p.length;T++){let L=p[T],C=g[T],M=i[T]??0;C<M?b.push(L+gd):b.push(L)}let m=s-f,w="";if(m>0)for(let T=0;T<m;T++)w+=`
|
|
211
|
+
`+gd;o=u,s=f,i=g,e.write(l+b.join(`
|
|
210
212
|
`)+w+`
|
|
211
|
-
`+
|
|
213
|
+
`+Hi)};return d.clear=()=>{e.write(l+Hi),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(Rs(e),a=!1)},d.sync=c=>{let u=c.split(`
|
|
212
214
|
`);o=c+`
|
|
213
|
-
`,s=u.length,i=u.map(p=>
|
|
215
|
+
`,s=u.length,i=u.map(p=>be(p))},d}function $N(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${kr}${n+1}H`:jf,l=d=>{!r&&!i&&(ws(e),i=!0);let c=d+`
|
|
214
216
|
`;if(c===s)return;let u=o.length,p=c.split(`
|
|
215
217
|
`),g=p.length,f=g-1;if(c===`
|
|
216
|
-
`||s.length===0){e.write(a+
|
|
217
|
-
`)}e.write(
|
|
218
|
+
`||s.length===0){e.write(a+PE(u)+c),s=c,o=p;return}let b=[];g<u?b.push(PE(u-g+1),AE(f)):b.push(AE(u-1));for(let m=0;m<f;m++){if(p[m]===o[m]){b.push(MN);continue}b.push(LN+p[m]+`
|
|
219
|
+
`)}e.write(b.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Hi),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(Rs(e),i=!1)},l.sync=d=>{let c=d+`
|
|
218
220
|
`;s=c,o=c.split(`
|
|
219
|
-
`)},l}function
|
|
220
|
-
`),p=u.length,g=c;if(g=u.map(
|
|
221
|
-
`),s>p){let
|
|
222
|
-
`+
|
|
223
|
-
`).length},l}function
|
|
224
|
-
`),
|
|
225
|
-
`).length,
|
|
226
|
-
`).replace(/\n+$/u,"");
|
|
227
|
-
`))}
|
|
228
|
-
`):de(
|
|
229
|
-
`),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(Ze&&(clearTimeout(Ze),Ze=null),Rt=null,ct=!1,en(),W?X(()=>{nn()}):nn())}),writeLine:je}}var bB={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 yr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function Pf(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function yB(e,t,r,n=1,o){let s=[],i=yr(n,1),a=o===void 0?void 0:yr(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=Pf(d);d.width!==void 0?c=yr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):yr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,yr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,yr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:Pf(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,m,w)=>y+(Pf(e[w])>0?0:m),0),p=l.reduce((y,m)=>y+s[m.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let y=l.reduce((m,w)=>m+w.flex,0);for(let m of l){let w=Math.floor(m.flex/y*f);s[m.index]=s[m.index]+w,m.col.maxWidth!==void 0&&(s[m.index]=Math.min(s[m.index],yr(m.col.maxWidth,s[m.index])))}}}if(r!==void 0){let d=yr(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((m,w)=>{let T=yr(e[w].minWidth,3);return Math.max(0,m-T)}),y=f.reduce((m,w)=>m+w,0);if(y>0)for(let m=0;m<s.length;m++){let w=Math.floor(f[m]/y*g);s[m]=Math.max(yr(e[m].minWidth,3),s[m]-w)}}}return s}function Xx(e,t,r){let n=Yr(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 kB(e,t){return Yr(e,t,{truncationCharacter:"\u2026"})}function RB(){try{return process.stdout.columns||80}catch{return 80}}function Af(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:yr(d,1),m=bB[n],w=n!=="none",T=p??RB(),B=yB(t,r,u,y,T),C=[],M=(N,H,G,I)=>{if(!w)return hr({});let W=[N];for(let q=0;q<B.length;q++)W.push(I.repeat(B[q]+y*2)),q<B.length-1&&W.push(H);return W.push(G),hr({flexDirection:"row"},mt({color:o},W.join("")))};if(w&&C.push(M(m.topLeft,m.topMid,m.topRight,m.horizontal)),s){let N=[];w&&N.push(mt({color:o},m.vertical));for(let H=0;H<t.length;H++){let G=t[H],I=" ".repeat(y),W=G.headerAlign??G.align??"left",q=Xx(G.header,B[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)),w&&N.push(mt({color:o},m.vertical))}C.push(hr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),w&&C.push(M(m.leftMid,m.midMid,m.rightMid,m.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,B[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Yr(pe,B[ae],{truncationCharacter:""}):kB(pe,B[ae])]}),W=Math.max(1,...I.map(oe=>oe.length)),q=[];for(let oe=0;oe<W;oe++){let ae=[];w&&ae.push(mt({color:o},m.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(y),De=Xx(I[se]?.[oe]??"",B[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},De),mt({color:o},pe)),w&&ae.push(mt({color:o},m.vertical))}q.push(hr({flexDirection:"row"},...ae))}C.push(hr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&w&&C.push(M(m.leftMid,m.midMid,m.rightMid,m.horizontal))}return w&&C.push(M(m.bottomLeft,m.bottomMid,m.bottomRight,m.horizontal)),hr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...C)}function od(e,t){return mt({wrap:"truncate-end"},t?Un(e):e)}function wB(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>od(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=>od(c,r)),Af({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=>od(c,r))]}function _B(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=>od(a,s)):wB(e.frame.dashboard,t,s);return hr({flexDirection:"column",width:t,height:r,overflow:"hidden"},hr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function Zx(e){let t=!1;function r(){let o=ed(),s=wf(),[i,a]=Ql({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Ql(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 Ii(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),_f(c,e.refreshMs??1e3),hf((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))}),_B({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Tf(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as OB}from"node:child_process";import{readFileSync as FB}from"node:fs";import{dirname as sE,join as IB}from"node:path";import{createHash as xB}from"node:crypto";var EB="project.name";function tE(e){let t=Zo(e,EB)?.trim();return t===void 0||t===""?void 0:t}var vB=8,rE="project";function nE(e){let t=CB(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:SB(e.remoteUrl)??{name:TB(e.checkoutPath,t),source:"basename"},o=AB(t??Cf(e.checkoutPath));return{name:n.name,slug:`${PB(n.name)}-${o}`,hash:o,source:n.source}}function oE(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 SB(e){let t=oE(e);return t===void 0?void 0:{name:t,source:"remote"}}function TB(e,t){let r=t===void 0?"":eE(DB(t));if(r!=="")return r;let n=eE(Cf(e));return n===""?rE:n}function PB(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?rE:r}function AB(e){return xB("sha256").update(e).digest("hex").slice(0,vB)}function CB(e){let t=Cf(e??"");return t===""?void 0:t}function Cf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function eE(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function DB(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var MB=2e3;function iE(e){return LB(e).name}function LB(e){let t=Of(e),r=Df(e,["rev-parse","--absolute-git-dir"])??Df(e,["rev-parse","--git-common-dir"]),n=Df(e,["remote","get-url","origin"]);return nE({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function Of(e){let t=nR(e,IB(".red","config.yaml"));if(t==null)return{};let r;try{r=FB(t,"utf8")}catch{return{}}let n=tE(r),o=sE(sE(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function Df(e,t){try{let r=OB("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:MB}).trim();return r===""?void 0:r}catch{return}}function sd(e){let t=Of(e);return t.configText==null?{label:null}:{configText:t.configText,label:iE(e)}}var jB="plugins.dev.statusline",$B="dev.statusline";function BB(e){let t=[],r=a=>{for(let l of[jB,$B]){let d=`${l}.${a}`,c=Zo(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 NB={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 id(e){let{values:t,positionals:r}=dn(e,NB),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 ad(e={}){let t=e.configText==null?{config:{},warnings:[]}:BB(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 Ff(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=id(e),s=sd(t.cwd??process.cwd()),i=ad({...s.configText==null?{}:{configText:s.configText},project:s.label,flags:o.flags});for(let g of[...i.warnings,...o.warnings])n(`redskilled dashboard: ignoring ${g.key}=${g.value} \u2014 ${g.reason}
|
|
230
|
-
`);let a=t.paths??
|
|
221
|
+
`)},l}function BN(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${kr}${n+1}H`:jf,l=d=>{!r&&!i&&(ws(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
|
|
222
|
+
`),p=u.length,g=c;if(g=u.map(b=>b+gd).join(`
|
|
223
|
+
`),s>p){let b=s-p;for(let m=0;m<b;m++)g+=`
|
|
224
|
+
`+gd}e.write(a+g+Hi),o=c,s=p};return l.clear=()=>{e.write(a+Hi),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(Rs(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
|
|
225
|
+
`).length},l}function $f(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?BN(e,t):r?$N(e,t):jN(e,t)}function CE(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 OE=Symbol("tuiuiu.overlay-runtime-state");function NN(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function DE(e){let t=e.id===0?null:Mt(OE,()=>DE(Mr())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Ir](){NN(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function GN(){let e=We();return Fe(OE,()=>DE(e),e)}function Bf(e,t){let r=GN();r.terminalSize={width:e,height:t}}function FE(e){return"__reactive"in e}function WN(e){let t=e.__reactive(),r=It(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function IE(e){let t=0,r=n=>{FE(n)&&WN(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function ME(e){let t=new Set,r=n=>{FE(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function HN(e){return!!e.props.__static}function UN(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${It(e.children??[])}`}function qN(e){let t=[];function r(o){if(HN(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 Nf={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},KN={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function Gf(e,t={}){let r=t.screenMode?KN[t.screenMode]:void 0,{stdout:n=process.stdout,stdin:o=process.stdin,debug:s=!1,exitOnCtrlC:i=!0,exitProcess:a=!1,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u,maxFps:p=30,showCursor:g=!1,autoTabNavigation:f=!0,useDeltaRenderer:b=!0,fixedStep:m}=t,w=t.clearOnStart??r?.clearOnStart??!0,T=t.fullHeight??r?.fullHeight??!1,L=t.alternateScreen??r?.alternateScreen??!0;if(!Number.isFinite(p)||p<0)throw new Error("[tuiuiu] maxFps must be a finite non-negative number");if(m){if(!Number.isFinite(m.updateFps)||m.updateFps<=0)throw new Error("[tuiuiu] fixedStep.updateFps must be a finite positive number");if(m.maxCatchUpUpdates!==void 0&&(!Number.isSafeInteger(m.maxCatchUpUpdates)||m.maxCatchUpUpdates<1))throw new Error("[tuiuiu] fixedStep.maxCatchUpUpdates must be a positive safe integer")}let C=Ff(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=Gp(C);if(!M)throw C.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,H=()=>{},G=[];try{H=Qw(),G.push(rn(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),G.push(rn(()=>{n.write("\x1B[?1004l")})),G.push(rn(()=>{n.write("\x1B[?2004l")})),L&&(n.write(kE()),G.push(rn(()=>{n.write(Pf())})))}catch(re){for(let he of G.splice(0))try{he()}catch{}try{H()}catch{}throw C.dispose(),cs(N),re}let I=typeof e=="function"?e:()=>e,W=!1,q=0,oe=0,ae=0,se,Z,pe=()=>{W=!1,xe()},Oe=()=>{q++,q===1&&(oe=0,ae=0)},ve=()=>q===0?{bytes:0,writeMs:0}:(q--,q===0?{bytes:oe,writeMs:ae}:{bytes:0,writeMs:0}),ke=re=>{let he=q>0?performance.now():0,Be=n.write(re);return q>0&&(ae+=performance.now()-he,oe+=typeof re=="string"?Buffer.byteLength(re):re.byteLength),!Be&&!W&&!Re&&(W=!0,n.once("drain",pe)),Be},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=$f(Y,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),we=0,De=null,Se="",Re=!1,Pe=[],me,ie,_e,Ie=new Set,et=0,Ht=()=>{we=et,de=$f(Y,{showCursor:g,incremental:!1,fullScreen:T,topOffset:we}),Se=""},nn=()=>{de.clear(),ke(Nf.clearTerminal),Se="",Ie.clear(),et=0,Pe=[],Ht()},on=re=>{de.clear(),ke(`${re}
|
|
226
|
+
`),et+=re.split(`
|
|
227
|
+
`).length,Ht()};qe(N,()=>If(nn)),me=new Promise((re,he)=>{ie=re,_e=he});let ko=C.dispose;C.dispose=()=>{if(Re){ko();return}_r(),ie()};let ce=p>0?Math.ceil(1e3/p):0;qe(N,()=>{G_({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:ce>0?ce:16.67}),Bf(n.columns||80,n.rows||24)});let Ut=0,ct=!1,tt=null,Rt=null,ut=null,ft=0,wt=0,_t=0,Wr=0,Te=null,Le=[],J=!1,O=null;b&&(O=Qx({stdout:Y,showCursor:g,useDelta:!0})),w&&!s&&ke(Nf.clearTerminal);let R=ce>0?ce:16,j=CE(()=>{Le.length!==0&&Wt(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let he of re)he()}})},R);qe(N,()=>fd({enqueue(re){Re||(Le.push(re),j.schedule())},flush(){Re||j.flush()},isPending(){return Le.length>0||j.isPending()}}));let B=()=>{let re=performance.now();Z=Date.now(),Bw("component");try{De=I(),IE(De)}finally{Nw(),se=performance.now()-re}},K=()=>qe(N,()=>{B(),Cn()});function X(re){Re||(Rt=re,!W&&xe())}function xe(){if(ct||Re||W||!Rt)return;let he=Date.now()-Ut,Be=Ut===0||he>=ce?0:ce-he,qt=()=>{let $t=Rt;if(Rt=null,ct=!1,tt=null,!Re)try{$t?.()}catch(rt){C.exit(rt instanceof Error?rt:new Error(String(rt)))}};if(ct=!0,Be===0){queueMicrotask(qt);return}tt=setTimeout(qt,Be)}let je=re=>qe(N,()=>{if(Re)return;let he=as(String(re)).replace(/\r\n?/g,`
|
|
228
|
+
`).replace(/\n+$/u,"");Pe.push(he),X(Cn)});qe(N,()=>pd(je));function $e(){if(!m||Re||(m.pauseWhenUnfocused??!0)&&!mr())return;let he=1e3/Math.max(1,m.updateFps),Be=Math.max(0,Math.ceil(he-ft));ut=setTimeout(jt,Be)}function jt(){if(!(!m||Re))try{if((m.pauseWhenUnfocused??!0)&&!mr()){ut=null,ft=0,wt=Date.now();return}let he=1e3/m.updateFps,Be=m.maxCatchUpUpdates??5,qt=Date.now();ft+=qt-wt,wt=qt;let $t=0;for(;ft>=he&&$t<Be;)ft-=he,_t++,Wr+=he,Wt(()=>{m.onUpdate({deltaTimeMs:he,step:_t,elapsedMs:Wr})}),$t++;ft>=he&&(ft%=he),$e()}catch(re){ut=null,C.exit(re instanceof Error?re:new Error(String(re)))}}let sn=en(N,()=>{Re||(fx(),Bf(n.columns||80,n.rows||24),w_(),X(K))});n.on("resize",sn);let wr=()=>{};C.onExit(re=>qe(N,()=>{_r(),wr(),re?_e(re):ie()}));function Cn(){if(Re||!De)return;Ut=Date.now();let re=Z??Date.now(),he=n.columns||80,Be=n.rows||24,qt=qN(De),$t=()=>{O&&(O.cleanup(),O=null,ke(Nf.clearTerminal),Ie.clear(),et=0,Ht())};if(Pe.length>0){$t();let Ee=Pe;Pe=[],on(Ee.join(`
|
|
229
|
+
`))}qt.staticNodes.length>0&&$t();let rt=Math.max(1,Be-et);if(O&&!s){let Ee=ho(De,{width:he,height:rt});Ee.metrics.runtimeStartAt=re,se!==void 0&&dt(Ee,"vnodeEvalMs",se);let ln=performance.now();xf(Ee),ef(Ee.layout,et);let xr=ys();xr.hasClickableElements()&&!J?(fs(),J=!0):!xr.hasClickableElements()&&J&&(oo(),J=!1),dt(Ee,"frameCommitMs",performance.now()-ln),Pt(Ee,"reservedRegionCount",Ee.reservedRegions.length),O.renderFrame(Ee),se=void 0,Z=void 0;return}let{staticNodes:Ro,interactiveNode:an}=qt,On=performance.now();Oe();for(let Ee=0;Ee<Ro.length;Ee++){let ln=Ro[Ee],xr=UN(ln,Ee);if(!Ie.has(xr)){let dn=dE(ln,he);dn.trim()&&(on(dn),Ie.add(xr))}}let Dn=tx(),Ne=ho(an,{width:he,height:rt});Ne.metrics.runtimeStartAt=re,se!==void 0&&dt(Ne,"vnodeEvalMs",se);let Fn=performance.now()-On;dt(Ne,"staticRenderMs",Fn);let In=performance.now();xf(Ne),ef(Ne.layout,et);let Mn=ys();Mn.hasClickableElements()&&!J?(fs(),J=!0):!Mn.hasClickableElements()&&J&&(oo(),J=!1),dt(Ne,"frameCommitMs",performance.now()-In),Pt(Ne,"reservedRegionCount",Ne.reservedRegions.length);let or=Sf(Ne,{fullHeight:T,previousFrame:Dn});if(or===Se&&!s){let Ee=ve();dt(Ne,"outputWriteMs",Ee.writeMs),Pt(Ne,"outputByteCount",Ee.bytes),An(Ne,{renderer:"ansi",runtimeStartAt:re}),us(Ne.layout),wi(),se=void 0,Z=void 0;return}s?ke(or+`
|
|
230
|
+
`):de(or);let Hr=ve();dt(Ne,"outputWriteMs",Hr.writeMs),Pt(Ne,"outputByteCount",Hr.bytes),An(Ne,{renderer:"ansi",runtimeStartAt:re}),us(Ne.layout),wi(),Se=or,se=void 0,Z=void 0}function _r(){return qe(N,xt)}function xt(){if(Re)return;Re=!0;let re=he=>{try{he()}catch(Be){console.error("[tuiuiu] Error while cleaning up the render loop:",Be)}};tt&&(clearTimeout(tt),tt=null),ut&&(clearTimeout(ut),ut=null),Te?.(),Te=null,W=!1,re(()=>n.off("drain",pe)),Rt=null,ct=!1,j.cancel(),Le=[],fd(null),pd(null),J&&(re(()=>oo()),J=!1),re(()=>n.off("resize",sn)),re(O?()=>O?.cleanup():()=>de.done()),L&&re(()=>{n.write(Pf())}),W=!1,re(()=>n.off("drain",pe)),re(()=>jl(N)),De&&re(()=>ME(De)),re(()=>C.dispose());for(let he of G.splice(0))re(he);re(H),re(()=>rx()),re(()=>cs(N))}try{wr=qe(N,()=>I_(()=>{K()},{scheduler:X})),qe(N,()=>{m&&(wt=Date.now(),(m.pauseWhenUnfocused??!0)&&(Te=Xl(re=>{if(!(Re||!m)){if(!re){ut&&(clearTimeout(ut),ut=null),ft=0,wt=Date.now();return}ft=0,wt=Date.now(),ut||$e()}})),$e())})}catch(re){try{wr()}catch(he){console.error("[tuiuiu] Error while rolling back the render effect:",he)}throw _r(),re}return{rerender:re=>qe(N,()=>{I=()=>re,X(K)}),unmount:()=>qe(N,()=>{_r(),wr(),s||ke(`
|
|
231
|
+
`),ie()}),waitUntilExit:()=>me,clear:()=>qe(N,()=>{s||(tt&&(clearTimeout(tt),tt=null),Rt=null,ct=!1,nn(),W?X(()=>{Cn()}):Cn())}),writeLine:je}}var VN={single:{topLeft:"\u250C",topRight:"\u2510",bottomLeft:"\u2514",bottomRight:"\u2518",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},double:{topLeft:"\u2554",topRight:"\u2557",bottomLeft:"\u255A",bottomRight:"\u255D",horizontal:"\u2550",vertical:"\u2551",topMid:"\u2566",bottomMid:"\u2569",leftMid:"\u2560",rightMid:"\u2563",midMid:"\u256C"},round:{topLeft:"\u256D",topRight:"\u256E",bottomLeft:"\u2570",bottomRight:"\u256F",horizontal:"\u2500",vertical:"\u2502",topMid:"\u252C",bottomMid:"\u2534",leftMid:"\u251C",rightMid:"\u2524",midMid:"\u253C"},bold:{topLeft:"\u250F",topRight:"\u2513",bottomLeft:"\u2517",bottomRight:"\u251B",horizontal:"\u2501",vertical:"\u2503",topMid:"\u2533",bottomMid:"\u253B",leftMid:"\u2523",rightMid:"\u252B",midMid:"\u254B"},ascii:{topLeft:"+",topRight:"+",bottomLeft:"+",bottomRight:"+",horizontal:"-",vertical:"|",topMid:"+",bottomMid:"+",leftMid:"+",rightMid:"+",midMid:"+"},none:{topLeft:"",topRight:"",bottomLeft:"",bottomRight:"",horizontal:"",vertical:"",topMid:"",bottomMid:"",leftMid:"",rightMid:"",midMid:""}};function Rr(e,t){return Number.isFinite(e)?Math.max(0,Math.trunc(e)):t}function Wf(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function zN(e,t,r,n=1,o){let s=[],i=Rr(n,1),a=o===void 0?void 0:Rr(o,0);for(let d of e){let c=be(d.header);for(let p of t){let g=p[d.key];d.format&&(g=d.format(g,p));let f=String(g??"");c=Math.max(c,be(f))}let u=Wf(d);d.width!==void 0?c=Rr(d.width,c):u>0?c=d.minWidth===void 0?Math.max(c,3):Rr(d.minWidth,Math.max(c,3)):(d.minWidth!==void 0&&(c=Math.max(c,Rr(d.minWidth,0))),d.maxWidth!==void 0&&(c=Math.min(c,Rr(d.maxWidth,c)))),s.push(c)}let l=e.map((d,c)=>({index:c,flex:Wf(d),col:d})).filter(d=>d.flex>0);if(l.length>0&&a!==void 0){let d=e.length*i*2,c=e.length+1,u=s.reduce((b,m,w)=>b+(Wf(e[w])>0?0:m),0),p=l.reduce((b,m)=>b+s[m.index],0),g=u+p+d+c,f=Math.max(0,a-g);if(f>0){let b=l.reduce((m,w)=>m+w.flex,0);for(let m of l){let w=Math.floor(m.flex/b*f);s[m.index]=s[m.index]+w,m.col.maxWidth!==void 0&&(s[m.index]=Math.min(s[m.index],Rr(m.col.maxWidth,s[m.index])))}}}if(r!==void 0){let d=Rr(r,0),c=e.length*i*2,u=e.length+1,p=s.reduce((g,f)=>g+f,0)+c+u;if(p>d){let g=p-d,f=s.map((m,w)=>{let T=Rr(e[w].minWidth,3);return Math.max(0,m-T)}),b=f.reduce((m,w)=>m+w,0);if(b>0)for(let m=0;m<s.length;m++){let w=Math.floor(f[m]/b*g);s[m]=Math.max(Rr(e[m].minWidth,3),s[m]-w)}}}return s}function LE(e,t,r){let n=Zr(e.replace(/\r?\n/g," "),t,{truncationCharacter:""}),o=be(n);if(o>=t)return n;let s=t-o;switch(r){case"right":return" ".repeat(s)+n;case"center":let i=Math.floor(s/2),a=s-i;return" ".repeat(i)+n+" ".repeat(a);default:return n+" ".repeat(s)}}function JN(e,t){return Zr(e,t,{truncationCharacter:"\u2026"})}function YN(){try{return process.stdout.columns||80}catch{return 80}}function Hf(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,b=g?0:Rr(d,1),m=VN[n],w=n!=="none",T=p??YN(),L=zN(t,r,u,b,T),C=[],M=(N,H,G,I)=>{if(!w)return br({});let W=[N];for(let q=0;q<L.length;q++)W.push(I.repeat(L[q]+b*2)),q<L.length-1&&W.push(H);return W.push(G),br({flexDirection:"row"},ht({color:o},W.join("")))};if(w&&C.push(M(m.topLeft,m.topMid,m.topRight,m.horizontal)),s){let N=[];w&&N.push(ht({color:o},m.vertical));for(let H=0;H<t.length;H++){let G=t[H],I=" ".repeat(b),W=G.headerAlign??G.align??"left",q=LE(G.header,L[H],W);N.push(ht({color:o},I),ht({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":H+1},q),ht({color:o},I)),w&&N.push(ht({color:o},m.vertical))}C.push(br({flexDirection:"row",role:"row","aria-rowindex":1},...N)),w&&C.push(M(m.leftMid,m.midMid,m.rightMid,m.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 to(Z,L[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Zr(pe,L[ae],{truncationCharacter:""}):JN(pe,L[ae])]}),W=Math.max(1,...I.map(oe=>oe.length)),q=[];for(let oe=0;oe<W;oe++){let ae=[];w&&ae.push(ht({color:o},m.vertical));for(let se=0;se<t.length;se++){let Z=t[se],pe=" ".repeat(b),Oe=LE(I[se]?.[oe]??"",L[se],Z.align??"left"),ve=Z.color??(G?l:void 0);ae.push(ht({color:o},pe),ht({color:ve,dim:G,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},Oe),ht({color:o},pe)),w&&ae.push(ht({color:o},m.vertical))}q.push(br({flexDirection:"row"},...ae))}C.push(br({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&w&&C.push(M(m.leftMid,m.midMid,m.rightMid,m.horizontal))}return w&&C.push(M(m.bottomLeft,m.bottomMid,m.bottomRight,m.horizontal)),br({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...C)}function md(e,t){return ht({wrap:"truncate-end"},t?Jn(e):e)}function QN(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>md(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?Jn(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>md(c,r)),Hf({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=>md(c,r))]}function XN(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=>md(a,s)):QN(e.frame.dashboard,t,s);return br({flexDirection:"column",width:t,height:r,overflow:"hidden"},br({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),ht({dim:!s,wrap:"truncate-end"},o))}async function jE(e){let t=!1;function r(){let o=ud(),s=Mf(),[i,a]=ld({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=ld(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 Gi(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Lf(c,e.refreshMs??1e3),Cf((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))}),XN({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Gf(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as l2}from"node:child_process";import{readFileSync as d2}from"node:fs";import{dirname as HE,join as c2}from"node:path";import{createHash as ZN}from"node:crypto";var e2="project.name";function BE(e){let t=os(e,e2)?.trim();return t===void 0||t===""?void 0:t}var t2=8,NE="project";function GE(e){let t=i2(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:r2(e.remoteUrl)??{name:n2(e.checkoutPath,t),source:"basename"},o=s2(t??Uf(e.checkoutPath));return{name:n.name,slug:`${o2(n.name)}-${o}`,hash:o,source:n.source}}function WE(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 r2(e){let t=WE(e);return t===void 0?void 0:{name:t,source:"remote"}}function n2(e,t){let r=t===void 0?"":$E(a2(t));if(r!=="")return r;let n=$E(Uf(e));return n===""?NE:n}function o2(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?NE:r}function s2(e){return ZN("sha256").update(e).digest("hex").slice(0,t2)}function i2(e){let t=Uf(e??"");return t===""?void 0:t}function Uf(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function $E(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function a2(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var u2=2e3;function UE(e){return p2(e).name}function p2(e){let t=Kf(e),r=qf(e,["rev-parse","--absolute-git-dir"])??qf(e,["rev-parse","--git-common-dir"]),n=qf(e,["remote","get-url","origin"]);return GE({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function Kf(e){let t=GR(e,c2(".red","config.yaml"));if(t==null)return{};let r;try{r=d2(t,"utf8")}catch{return{}}let n=BE(r),o=HE(HE(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function qf(e,t){try{let r=l2("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:u2}).trim();return r===""?void 0:r}catch{return}}function hd(e){let t=Kf(e);return t.configText==null?{label:null}:{configText:t.configText,label:UE(e)}}var f2="plugins.dev.statusline",g2="dev.statusline";function m2(e){let t=[],r=a=>{for(let l of[f2,g2]){let d=`${l}.${a}`,c=os(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 h2={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 yd(e){let{values:t,positionals:r}=qr(e,h2),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 bd(e={}){let t=e.configText==null?{config:{},warnings:[]}:m2(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 Vf(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=yd(e),s=hd(t.cwd??process.cwd()),i=bd({...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}
|
|
232
|
+
`);let a=t.paths??Gt(),l=t.readDashboard??jR,d=t.terminal===void 0?process.stdout.isTTY===!0:t.terminal===!0,c=(t.env??process.env).NO_COLOR!==void 0,u={...i.options.project==null?{}:{project:i.options.project},mode:i.options.mode,showDeathDetails:i.options.verbose},p=async(g,f=!0)=>{try{let b=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:b,lines:c?b.lines.map(Jn):b.lines}}catch(b){let m=b instanceof Error?b.message:String(b);return f&&n(`redskilled dashboard: ${m}
|
|
231
233
|
`),{lines:[`redskilled unreachable \u2014 ${m}`]}}};if(!d){let g=await p({...u,...i.options.maxWidth==null?{}:{maxWidth:i.options.maxWidth}});return r(`${g.lines.join(`
|
|
232
234
|
`)}
|
|
233
|
-
`),0}return await(t.runTui??
|
|
234
|
-
`);let a;try{a=await
|
|
235
|
-
`),a=
|
|
235
|
+
`),0}return await(t.runTui??jE)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:b})=>{let m=Math.max(1,Math.min(i.options.maxWidth??g,g)),w=Math.max(1,f);return await p({...u,maxWidth:m,maxHeight:w,maxRows:Math.max(0,w-8),showDeathDetails:b},!1)}}),0}async function zf(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),o=yd(e),s=hd(t.cwd??process.cwd()),i=bd({...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}
|
|
236
|
+
`);let a;try{a=await LR(t.paths??Gt(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
|
|
237
|
+
`),a=Zu({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
|
|
236
238
|
`)}
|
|
237
|
-
`),0}var
|
|
239
|
+
`),0}var b2=`Usage: redskilled <command> [options]
|
|
238
240
|
|
|
239
241
|
Commands:
|
|
240
242
|
host-state (default) print the host's state as JSON
|
|
@@ -245,10 +247,11 @@ Commands:
|
|
|
245
247
|
unit install | uninstall | status \u2014 the optional supervisor
|
|
246
248
|
provision make this machine ready; --check is the read-only half
|
|
247
249
|
reclaim clear runtime dirs left by dead sessions
|
|
250
|
+
reap --report census Worker processes and crash dumps without acting
|
|
248
251
|
|
|
249
252
|
Run \`redskilled <command> --help\` for a command's own usage.
|
|
250
253
|
\`--version\` (\`-v\`) prints the build stamp; both answer offline.
|
|
251
|
-
`,
|
|
254
|
+
`,k2={serve:`Usage: redskilled serve [options]
|
|
252
255
|
|
|
253
256
|
Runs the daemon in this process. Every path is a flag and none is derived
|
|
254
257
|
(ADR 0130 rule 3); what is absent falls back to the session derivation.
|
|
@@ -335,19 +338,27 @@ Reports every session runtime dir it looked at and why it kept or removed it.
|
|
|
335
338
|
|
|
336
339
|
--dry-run the same report with nothing removed
|
|
337
340
|
--grace-ms <n> how long a dir must be idle before it is reclaimed
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
`),
|
|
346
|
-
|
|
347
|
-
`),0
|
|
348
|
-
`)
|
|
349
|
-
`),
|
|
350
|
-
`),
|
|
341
|
+
`,reap:`Usage: redskilled reap [--report]
|
|
342
|
+
|
|
343
|
+
Runs the daemon's orphan-process census immediately. The default applies the
|
|
344
|
+
same stamped-orphan reaper the daemon runs periodically; --report is the
|
|
345
|
+
detection-only incident view and performs no adoption, signalling, or deletion.
|
|
346
|
+
|
|
347
|
+
--report return counts only; signal and delete nothing
|
|
348
|
+
`};function R2(e){return e==="--help"||e==="-h"||e==="help"}var w2={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)}},KE="REDSKILLED_HOST_TOKEN";function qi(){try{let t=y2("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function VE(e=process.env,t=qi){let r=(e[KE]??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 _2(e,t=process.env,r=qi,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...qE(e,t,r,n),armTransport:()=>qE(e,t,r,n)}}function x2(e,t=process.env,r=qi){let n=VE(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:Eu({token:n.token,...o?{origin:o}:{}})}}function qE(e,t=process.env,r=qi,n){let o=VE(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${KE}, 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:Xb({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function E2(e){if(e[0]==="--version"||e[0]==="-v"){let o=da("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
|
|
349
|
+
`:`${nm(o)}
|
|
350
|
+
`),0}if(R2(e[0]))return process.stdout.write(b2),0;let{command:t,args:r}=am(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{},reap:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(k2[t]),0;if(t==="serve"){let{values:o}=qr(r,w2),s=await BR(Ui()),i=NR({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=kd(Dt(Ui()),"state"),l=La({path:kd(a,"github","spend.toonl")}),d=_2(o,process.env,qi,l),c=x2(o);await Sm(a).catch(()=>{});let u=Um({stateRoot:a});process.stderr.write(`${qm(u)}
|
|
351
|
+
`);let p=Mm({lanePath:Fo(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g=$2(o),f;try{f=await ER({paths:g,idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??da("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}})}catch(b){if(!(b instanceof Jt))throw b;return p.uninstall(),0}if(vl())try{zk({socketPath:g.socketPath,version:o["daemon-version"]??da("redskilled").version})}catch{}for(let b of["SIGTERM","SIGINT"])process.once(b,()=>void f.stop({reason:"signal",signal:b}).catch(()=>{}));return await f.closed,p.phase("closed"),0}if(t==="stop")return await A2(r);if(t==="statusline")return await zf(r);if(t==="dashboard")return await Vf(r);if(t==="github-spend")return await S2(r);if(t==="unit")return await C2(r);if(t==="provision")return await D2(r);if(t==="reclaim")return await L2(r);if(t==="reap")return await M2(r);let n=await FR(Gt());return process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
352
|
+
`),0}var v2={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function S2(e,t={}){let{values:r}=qr(e,v2,{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:T2(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??La({path:kd(Dt(t.homeDir??Ui()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${Ye({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})}
|
|
353
|
+
`),0}function T2(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 P2={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function A2(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=qr(e,P2),o=await DR(t.paths??Gt(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${Ye({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,contained:s.contained,survives:s.survives})),detail:o.detail})}
|
|
354
|
+
`),o.running&&!o.stopped?1:0}async function C2(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??Gt(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(Xk(t.unitIO??{}),null,2)}
|
|
355
|
+
`),0;if(o==="install"){let s=await Yk(Uk(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
|
|
356
|
+
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await Qk(t.unitIO??{}),null,2)}
|
|
357
|
+
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}var O2={"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 D2(e,t={}){let r=t.write??(g=>process.stdout.write(g)),{values:n}=qr(e,O2),o=t.paths??Gt(),s=t.homeDir??Ui(),i=await Cp({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await ew(s),l;if(!n.check&&!n["no-start"])try{await Ep(o,t.client??{})}catch(g){l=g instanceof Error?g.message:String(g)}let d=await nw({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=Pr(d.entry)?Xn(d.entry,{homeDir:s}):void 0,u=n["install-unit"]&&c!=null?await iw({configHome:t.configHome??j2(),unit:sw({command:[c.command,...c.args].join(" "),socketPath:o.socketPath})}):void 0,p=rw(d);return r(`${Ye({verdict:p.verdict,home:{path:a?.path??d.homePath,created:a?.created??!1,tightened:a?.tightened??!1,needed:i.needed,needed_by:i.declaredBy},socket:d.socketPath,...l==null?{}:{start_error:l},...u==null?{}:{unit:{path:u.path,status:u.status}},checks:p.rows.map(g=>({check:g.check,verdict:g.verdict,evidence:g.evidence})),fixes:p.findings.map(g=>({check:g.check,fix:g.fix}))})}
|
|
358
|
+
`),p.verdict==="ok"?0:1}var F2={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}},I2={report:{kind:"boolean"}};async function M2(e,t={}){let{values:r}=qr(e,I2),n=await IR(t.paths??Gt(),{report:r.report===!0});return(t.write??(o=>process.stdout.write(o)))(`${Ye({version:n.version,mode:n.mode,census:{...n.census},actions:{...n.actions}})}
|
|
359
|
+
`),0}async function L2(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=qr(e,F2),o=await dw({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${Ye({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]}))})}
|
|
360
|
+
`),o.entries.some(s=>s.verdict==="failed")?1:0}function j2(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:kd(Ui(),".config")}function $2(e){let t=Gt();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 B2=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(B2){let e=process.argv.slice(2);E2(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
|
|
361
|
+
`),process.exitCode=1})}export{KE as REDSKILLED_HOST_TOKEN_ENV,b2 as REDSKILLED_USAGE,qE as armRedskilledQueueTransport,VE as resolveRedskilledHostToken,x2 as resolveServeGithubBalance,_2 as resolveServeQueueDiscovery,Vf as runDashboard,S2 as runGithubSpend,D2 as runProvision,M2 as runReap,L2 as runReclaim,E2 as runRedskilledCli,zf as runStatusline,A2 as runStop,C2 as runUnit};
|
|
351
362
|
/*! Bundled license information:
|
|
352
363
|
|
|
353
364
|
content-type/dist/index.js:
|