@reddb-io/red-skills 3.13.0 → 3.14.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/dist/brain.bundle.min.mjs +1 -1
- package/dist/castle-mcp.bundle.min.mjs +344 -344
- package/dist/code-nav.bundle.min.mjs +1 -1
- package/dist/dev.bundle.min.mjs +598 -598
- package/dist/memory.bundle.min.mjs +1 -1
- package/dist/redskilled.bundle.min.mjs +123 -123
- package/dist/rsp.bundle.min.mjs +1 -1
- package/package.json +1 -1
|
@@ -1,71 +1,71 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { createRequire as __cr } from 'node:module'; const require = __cr(import.meta.url);
|
|
3
|
-
var
|
|
3
|
+
var LE=Object.create;var md=Object.defineProperty;var jE=Object.getOwnPropertyDescriptor;var $E=Object.getOwnPropertyNames;var BE=Object.getPrototypeOf,NE=Object.prototype.hasOwnProperty;var GE=(e,t)=>()=>(e&&(t=e(e=0)),t);var og=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),WE=(e,t)=>{for(var r in t)md(e,r,{get:t[r],enumerable:!0})},HE=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of $E(t))!NE.call(e,o)&&o!==r&&md(e,o,{get:()=>t[o],enumerable:!(n=jE(t,o))||n.enumerable});return e};var hd=(e,t,r)=>(r=e!=null?LE(BE(e)):{},HE(t||!e||!e.__esModule?md(r,"default",{value:e,enumerable:!0}):r,e));var Fm={};WE(Fm,{REDSKILLED_BIN_ENV:()=>ic,REDSKILLED_BUNDLE_ASSET:()=>Sr,REDSKILLED_ENTRY_UNRESOLVED:()=>Cs,RedskilledDaemonEntryError:()=>Ds,isRedskilledEntryPath:()=>lc,isResolvedRedskilledEntry:()=>Tr,redskilledBundleCacheRoot:()=>ga,redskilledServeArgv:()=>cn,requireRedskilledEntry:()=>ma,resolveRedskilledEntry:()=>un});import{existsSync as IT,readdirSync as MT}from"node:fs";import{homedir as LT}from"node:os";import{basename as sc,dirname as oc,join as Kt,resolve as fa}from"node:path";function Tr(e){return"command"in e}function cn(e,t={}){let r=["serve","--socket",e.socketPath,"--lease",e.leasePath,"--events",e.eventLanePath,"--session-key-hash",e.sessionKeyHash,"--machine-id-hash",e.machineIdHash,"--machine-claim",e.machineClaimPath];return t.idleMs!=null&&r.push("--idle-ms",String(t.idleMs)),t.daemonVersion!=null&&r.push("--daemon-version",t.daemonVersion),r}function ga(e=process.env){return Om(e)}function un(e={},t={}){if(e.serverCommand)return{command:e.serverCommand,args:e.serverArgs??[],source:"server-command"};let r=t.env??process.env,n=t.exists??IT,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[ic];if(l)return{command:l,args:[],source:"env-redskilled-bin",entry:l};if(i&&lc(i))return a(fa(i),"caller-entry");let d=[];for(let[c,u]of NT(i,t.rootDir,r,t.listDir??HT))if(d.push(c),n(c))return a(c,u);return{diagnostic:Cs,searched:d,...i?{callerEntry:fa(i)}:{}}}function ma(e={},t={}){let r=un(e,t);if(Tr(r))return r;throw new Ds(r)}function lc(e){let t=sc(e);return t===Sr||ac.test(t)||t==="red-skills-redskilled"||t==="red-skills-redskilled.mjs"?!0:t!=="cli.js"&&t!=="cli.mjs"&&t!=="cli.ts"?!1:BT(fa(e))}function BT(e){let t=oc(e);for(let r=0;r<4;r++){if(sc(t)==="redskilled")return!0;let n=oc(t);if(n===t)return!1;t=n}return!1}function*NT(e,t,r,n){if(e){let s=oc(fa(e));yield[Kt(s,Sr),"caller-sibling-bundle"];let i=jT.exec(sc(e));i&&(yield[Kt(s,`redskilled-${i[2]}.bundle.min.mjs`),"caller-sibling-bundle"]),yield[Kt(s,"..","dist",Sr),"caller-sibling-bundle"]}for(let s of $T){let i=r[s];i&&(yield[Kt(i,"dist",Sr),"plugin-root-bundle"],yield[Kt(i,"..","..","dist",Sr),"plugin-root-bundle"])}t&&(yield[Kt(t,"dist",Sr),"repo-bundle"],yield[Kt(t,"apps","redskilled","dist","cli.js"),"workspace-entry"],yield[Kt(t,"node_modules","@reddb-io","redskilled","dist","cli.js"),"node-modules-entry"]);let o=Om(r);yield[Kt(o,Sr),"bundle-cache"];for(let s of GT(o,n))yield[Kt(o,s),"bundle-cache"]}function Om(e){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||Kt(e.HOME||LT(),".cache");return Kt(t,"red-skills","bundles")}function GT(e,t){return t(e).filter(r=>ac.test(r)).sort((r,n)=>WT(Dm(n),Dm(r)))}function Dm(e){return ac.exec(e)?.[1]??""}function WT(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 HT(e){try{return MT(e)}catch{return[]}}var Sr,Cs,ic,Ds,jT,ac,$T,qr=GE(()=>{"use strict";Sr="redskilled.bundle.min.mjs",Cs="redskilled-daemon-entry-unresolved",ic="REDSKILLED_BIN";Ds=class extends Error{code=Cs;searched;callerEntry;constructor(t){super(`${Cs}: no published ${Sr} 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)}};PT=/^([a-z0-9-]+)-(.+)\.bundle\.min\.mjs$/,ic=/^redskilled-(.+)\.bundle\.min\.mjs$/,AT=["RED_SKILLS_DEV_PLUGIN_ROOT","CLAUDE_PLUGIN_ROOT","CODEX_PLUGIN_ROOT","OPENCODE_PLUGIN_ROOT"]});var Mc=ig((Fc,Ic)=>{(function(e,t){typeof Fc=="object"&&typeof Ic<"u"?Ic.exports=t():typeof define=="function"&&define.amd?define(t):e.Bottleneck=t()})(Fc,function(){"use strict";var e=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function t(J){return J&&J.default||J}var r=function(J,C,R={}){var F,L,B;for(F in C)B=C[F],R[F]=(L=J[F])!=null?L:B;return R},n=function(J,C,R={}){var F,L;for(F in J)L=J[F],C[F]!==void 0&&(R[F]=L);return R},o={load:r,overwrite:n},s;s=class{constructor(C,R){this.incr=C,this.decr=R,this._first=null,this._last=null,this.length=0}push(C){var R;this.length++,typeof this.incr=="function"&&this.incr(),R={value:C,prev:this._last,next:null},this._last!=null?(this._last.next=R,this._last=R):this._first=this._last=R}shift(){var C;if(this._first!=null)return this.length--,typeof this.decr=="function"&&this.decr(),C=this._first.value,(this._first=this._first.next)!=null?this._first.prev=null:this._last=null,C}first(){if(this._first!=null)return this._first.value}getArray(){var C,R,F;for(C=this._first,F=[];C!=null;)F.push((R=C,C=C.next,R.value));return F}forEachShift(C){var R;for(R=this.shift();R!=null;)C(R),R=this.shift()}debug(){var C,R,F,L,B;for(C=this._first,B=[];C!=null;)B.push((R=C,C=C.next,{value:R.value,prev:(F=R.prev)!=null?F.value:void 0,next:(L=R.next)!=null?L.value:void 0}));return B}};var i=s,a;a=class{constructor(C){if(this.instance=C,this._events={},this.instance.on!=null||this.instance.once!=null||this.instance.removeAllListeners!=null)throw new Error("An Emitter already exists for this object");this.instance.on=(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(C,R,F){var L;return(L=this._events)[C]==null&&(L[C]=[]),this._events[C].push({cb:F,status:R}),this.instance}listenerCount(C){return this._events[C]!=null?this._events[C].length:0}async trigger(C,...R){var F,L;try{return C!=="debug"&&this.trigger("debug",`Event triggered: ${C}`,R),this._events[C]==null?void 0:(this._events[C]=this._events[C].filter(function(B){return B.status!=="none"}),L=this._events[C].map(async B=>{var K,X;if(B.status!=="none"){B.status==="once"&&(B.status="none");try{return X=typeof B.cb=="function"?B.cb(...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(B){return B!=null}))}catch(B){return F=B,this.trigger("error",F),null}}};var l=a,d,c,u;d=i,c=l,u=class{constructor(C){var R;this.Events=new c(this),this._length=0,this._lists=function(){var F,L,B;for(B=[],R=F=1,L=C;1<=L?F<=L:F>=L;R=1<=L?++F:--F)B.push(new d(()=>this.incr(),()=>this.decr()));return B}.call(this)}incr(){if(this._length++===0)return this.Events.trigger("leftzero")}decr(){if(--this._length===0)return this.Events.trigger("zero")}push(C){return this._lists[C.options.priority].push(C)}queued(C){return C!=null?this._lists[C].length:this._length}shiftAll(C){return this._lists.forEach(function(R){return R.forEachShift(C)})}getFirst(C=this._lists){var R,F,L;for(R=0,F=C.length;R<F;R++)if(L=C[R],L.length>0)return L;return[]}shiftLastFrom(C){return this.getFirst(this._lists.slice(C).reverse()).shift()}};var p=u,g;g=class extends Error{};var f=g,y,m,w,T,$;T=10,m=5,$=o,y=f,w=class{constructor(C,R,F,L,B,K,X,xe){this.task=C,this.args=R,this.rejectOnDrop=B,this.Events=K,this._states=X,this.Promise=xe,this.options=$.load(F,L),this.options.priority=this._sanitizePriority(this.options.priority),this.options.id===L.id&&(this.options.id=`${this.options.id}-${this._randomIndex()}`),this.promise=new this.Promise((je,Be)=>{this._resolve=je,this._reject=Be}),this.retryCount=0}_sanitizePriority(C){var R;return R=~~C!==C?m:C,R<0?0:R>T-1?T-1:R}_randomIndex(){return Math.random().toString(36).slice(2)}doDrop({error:C,message:R="This job has been dropped by Bottleneck"}={}){return this._states.remove(this.options.id)?(this.rejectOnDrop&&this._reject(C??new y(R)),this.Events.trigger("dropped",{args:this.args,options:this.options,task:this.task,promise:this.promise}),!0):!1}_assertStatus(C){var R;if(R=this._states.jobStatus(this.options.id),!(R===C||C==="DONE"&&R===null))throw new y(`Invalid job status ${R}, expected ${C}. Please open an issue at https://github.com/SGrondin/bottleneck/issues`)}doReceive(){return this._states.start(this.options.id),this.Events.trigger("received",{args:this.args,options:this.options})}doQueue(C,R){return this._assertStatus("RECEIVED"),this._states.next(this.options.id),this.Events.trigger("queued",{args:this.args,options:this.options,reachedHWM:C,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(C,R,F,L){var B,K,X;this.retryCount===0?(this._assertStatus("RUNNING"),this._states.next(this.options.id)):this._assertStatus("EXECUTING"),K={args:this.args,options:this.options,retryCount:this.retryCount},this.Events.trigger("executing",K);try{if(X=await(C!=null?C.schedule(this.options,this.task,...this.args):this.task(...this.args)),R())return this.doDone(K),await L(this.options,K),this._assertStatus("DONE"),this._resolve(X)}catch(xe){return B=xe,this._onFailure(B,K,R,F,L)}}doExpire(C,R,F){var L,B;return this._states.jobStatus(this.options.id==="RUNNING")&&this._states.next(this.options.id),this._assertStatus("EXECUTING"),B={args:this.args,options:this.options,retryCount:this.retryCount},L=new y(`This job timed out after ${this.options.expiration} ms.`),this._onFailure(L,B,C,R,F)}async _onFailure(C,R,F,L,B){var K,X;if(F())return K=await this.Events.trigger("failed",C,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 B(this.options,R),this._assertStatus("DONE"),this._reject(C))}doDone(C){return this._assertStatus("EXECUTING"),this._states.next(this.options.id),this.Events.trigger("done",C)}};var D=w,M,N,H;H=o,M=f,N=class{constructor(C,R,F){this.instance=C,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 C;return this.heartbeat==null&&(this.storeOptions.reservoirRefreshInterval!=null&&this.storeOptions.reservoirRefreshAmount!=null||this.storeOptions.reservoirIncreaseInterval!=null&&this.storeOptions.reservoirIncreaseAmount!=null)?typeof(C=this.heartbeat=setInterval(()=>{var R,F,L,B,K;if(B=Date.now(),this.storeOptions.reservoirRefreshInterval!=null&&B>=this._lastReservoirRefresh+this.storeOptions.reservoirRefreshInterval&&(this._lastReservoirRefresh=B,this.storeOptions.reservoir=this.storeOptions.reservoirRefreshAmount,this.instance._drainAll(this.computeCapacity())),this.storeOptions.reservoirIncreaseInterval!=null&&B>=this._lastReservoirIncrease+this.storeOptions.reservoirIncreaseInterval&&({reservoirIncreaseAmount:R,reservoirIncreaseMaximum:L,reservoir:K}=this.storeOptions,this._lastReservoirIncrease=B,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"?C.unref():void 0:clearInterval(this.heartbeat)}async __publish__(C){return await this.yieldLoop(),this.instance.Events.trigger("message",C.toString())}async __disconnect__(C){return await this.yieldLoop(),clearInterval(this.heartbeat),this.Promise.resolve()}yieldLoop(C=0){return new this.Promise(function(R,F){return setTimeout(R,C)})}computePenalty(){var C;return(C=this.storeOptions.penalty)!=null?C:15*this.storeOptions.minTime||5e3}async __updateSettings__(C){return await this.yieldLoop(),H.overwrite(C,C,this.storeOptions),this._startHeartbeat(),this.instance._drainAll(this.computeCapacity()),!0}async __running__(){return await this.yieldLoop(),this._running}async __queued__(){return await this.yieldLoop(),this.instance.queued()}async __done__(){return await this.yieldLoop(),this._done}async __groupCheck__(C){return await this.yieldLoop(),this._nextRequest+this.timeout<C}computeCapacity(){var C,R;return{maxConcurrent:C,reservoir:R}=this.storeOptions,C!=null&&R!=null?Math.min(C-this._running,R):C!=null?C-this._running:R??null}conditionsCheck(C){var R;return R=this.computeCapacity(),R==null||C<=R}async __incrementReservoir__(C){var R;return await this.yieldLoop(),R=this.storeOptions.reservoir+=C,this.instance._drainAll(this.computeCapacity()),R}async __currentReservoir__(){return await this.yieldLoop(),this.storeOptions.reservoir}isBlocked(C){return this._unblockTime>=C}check(C,R){return this.conditionsCheck(C)&&this._nextRequest-R<=0}async __check__(C){var R;return await this.yieldLoop(),R=Date.now(),this.check(C,R)}async __register__(C,R,F){var L,B;return await this.yieldLoop(),L=Date.now(),this.conditionsCheck(R)?(this._running+=R,this.storeOptions.reservoir!=null&&(this.storeOptions.reservoir-=R),B=Math.max(this._nextRequest-L,0),this._nextRequest=L+B+this.storeOptions.minTime,{success:!0,wait:B,reservoir:this.storeOptions.reservoir}):{success:!1}}strategyIsBlock(){return this.storeOptions.strategy===3}async __submit__(C,R){var F,L,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 L=Date.now(),B=this.storeOptions.highWater!=null&&C===this.storeOptions.highWater&&!this.check(R,L),F=this.strategyIsBlock()&&(B||this.isBlocked(L)),F&&(this._unblockTime=L+this.computePenalty(),this._nextRequest=this._unblockTime+this.storeOptions.minTime,this.instance._dropAllQueued()),{reachedHWM:B,blocked:F,strategy:this.storeOptions.strategy}}async __free__(C,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(C){this.status=C,this._jobs={},this.counts=this.status.map(function(){return 0})}next(C){var R,F;if(R=this._jobs[C],F=R+1,R!=null&&F<this.status.length)return this.counts[R]--,this.counts[F]++,this._jobs[C]++;if(R!=null)return this.counts[R]--,delete this._jobs[C]}start(C){var R;return R=0,this._jobs[C]=R,this.counts[R]++}remove(C){var R;return R=this._jobs[C],R!=null&&(this.counts[R]--,delete this._jobs[C]),R!=null}jobStatus(C){var R;return(R=this.status[this._jobs[C]])!=null?R:null}statusJobs(C){var R,F,L,B,K;if(C!=null){if(F=this.status.indexOf(C),F<0)throw new I(`status must be one of ${this.status.join(", ")}`);L=this._jobs,B=[];for(R in L)K=L[R],K===F&&B.push(R);return B}else return Object.keys(this._jobs)}statusCounts(){return this.counts.reduce((C,R,F)=>(C[this.status[F]]=R,C),{})}};var q=W,oe,ae;oe=i,ae=class{constructor(C,R){this.schedule=this.schedule.bind(this),this.name=C,this.Promise=R,this._running=0,this._queue=new oe}isEmpty(){return this._queue.length===0}async _tryToRun(){var C,R,F,L,B,K,X;if(this._running<1&&this._queue.length>0)return this._running++,{task:X,args:C,resolve:B,reject:L}=this._queue.shift(),R=await async function(){try{return K=await X(...C),function(){return B(K)}}catch(xe){return F=xe,function(){return L(F)}}}(),this._running--,this._tryToRun(),R()}schedule(C,...R){var F,L,B;return B=L=null,F=new this.Promise(function(K,X){return B=K,L=X}),this._queue.push({task:C,args:R,resolve:B,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,B;F=this.instances,L=[];for(R in F)B=F[R],L.push({key:R,limiter:B});return L}keys(){return Object.keys(this.instances)}async clusterKeys(){var R,F,L,B,K,X,xe,je,Be;if(this.connection==null)return this.Promise.resolve(this.keys());for(X=[],R=null,Be=`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,B=0,xe=L.length;B<xe;B++)K=L[B],X.push(K.slice(Be,-F));return X}_startAutoCleanup(){var R;return clearInterval(this.interval),typeof(R=this.interval=setInterval(async()=>{var F,L,B,K,X,xe;X=Date.now(),B=this.instances,K=[];for(L in B){xe=B[L];try{await xe._store.__groupCheck__(X)?K.push(this.deleteKey(L)):K.push(void 0)}catch(je){F=je,K.push(xe.Events.trigger("error",F))}}return K},this.timeout/2)).unref=="function"?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 it=ie,Wt=()=>console.log("You must import the full version of Bottleneck in order to use this feature."),en=t(De),tn,mo,ce,Ht,dt,Ze,wt,at,ct,_t,xt,Wr=[].splice;Ze=10,mo=5,xt=o,wt=p,Ht=D,dt=G,at=Wt,ce=l,ct=q,_t=se,tn=function(){class J{constructor(R={},...F){var L,B;this._addToQueue=this._addToQueue.bind(this),this._validateOptions(R,F),xt.load(R,this.instanceDefaults,this),this._queues=new wt(Ze),this._scheduled={},this._states=new ct(["RECEIVED","QUEUED","RUNNING","EXECUTING"].concat(this.trackDoneStatus?["DONE"]:[])),this._limiter=null,this.Events=new ce(this),this._submitLock=new _t("submit",this.Promise),this._registerLock=new _t("register",this.Promise),B=xt.load(R,this.storeDefaults,{}),this._store=function(){if(this.datastore==="redis"||this.datastore==="ioredis"||this.connection!=null)return L=xt.load(R,this.redisStoreDefaults,{}),new at(this,B,L);if(this.datastore==="local")return L=xt.load(R,this.localStoreDefaults,{}),new dt(this,B,L);throw new J.prototype.BottleneckError(`Invalid datastore type: ${this.datastore}`)}.call(this),this._queues.on("leftzero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.ref=="function"?K.ref():void 0}),this._queues.on("zero",()=>{var K;return(K=this._store.heartbeat)!=null&&typeof K.unref=="function"?K.unref():void 0})}_validateOptions(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,B){var K,X;try{if({running:X}=await this._store.__free__(R,L.weight),this.Events.trigger("debug",`Freed ${L.id}`,B),X===0&&this.empty())return this.Events.trigger("idle")}catch(xe){return K=xe,this.Events.trigger("error",K)}}_run(R,F,L){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),L),expiration:F.options.expiration!=null?setTimeout(function(){return F.doExpire(B,X,K)},L+F.options.expiration):void 0,job:F}}_drainOne(R){return this._registerLock.schedule(()=>{var F,L,B,K,X;return this.queued()===0?this.Promise.resolve(null):(X=this._queues.getFirst(),{options:K,args:F}=B=X.first(),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:Be})=>{var Lt;return this.Events.trigger("debug",`Drained ${K.id}`,{success:xe,args:F,options:K}),xe?(X.shift(),Lt=this.empty(),Lt&&this.Events.trigger("empty"),Be===0&&this.Events.trigger("depleted",Lt),this._run(L,B,je),this.Promise.resolve(K.weight)):this.Promise.resolve(null)})))})}_drainAll(R,F=0){return this._drainOne(R).then(L=>{var B;return L!=null?(B=R!=null?R-L:R,this._drainAll(B,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=xt.load(R,this.stopDefaults),L=B=>{var K;return K=()=>{var X;return X=this._states.counts,X[0]+X[1]+X[2]+X[3]===B},new this.Promise((X,xe)=>K()?X():this.on("done",()=>{if(K())return this.removeAllListeners("done"),X()}))},F=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),L(0)}))):this.schedule({priority:Ze-1,weight:0},()=>L(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,L,B,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(Be){return B=Be,this.Events.trigger("debug",`Could not queue ${K.id}`,{args:F,options:K,error:B}),R.doDrop({error:B}),!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,B,K,X,xe,je;return typeof R[0]=="function"?(X=R,[L,...R]=X,[F]=Wr.call(R,-1),K=xt.load({},this.jobDefaults)):(xe=R,[K,L,...R]=xe,[F]=Wr.call(R,-1),K=xt.load(K,this.jobDefaults)),je=(...Be)=>new this.Promise(function(Lt,rn){return L(...Be,function(...wr){return(wr[0]!=null?rn:Lt)(wr)})}),B=new Ht(je,R,K,this.jobDefaults,this.rejectOnDrop,this.Events,this._states,this.Promise),B.promise.then(function(Be){return typeof F=="function"?F(...Be):void 0}).catch(function(Be){return Array.isArray(Be)?typeof F=="function"?F(...Be):void 0:typeof F=="function"?F(Be):void 0}),this._receive(B)}schedule(...R){var F,L,B;return typeof R[0]=="function"?([B,...R]=R,L={}):[L,B,...R]=R,F=new Ht(B,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(...B){return F(R.bind(this),...B)},L.withOptions=function(B,...K){return F(B,R,...K)},L}async updateSettings(R={}){return await this._store.__updateSettings__(xt.overwrite(R,this.storeDefaults)),xt.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=it,J.prototype.jobDefaults={priority:mo,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 Cb=ig(Ma=>{"use strict";Object.defineProperty(Ma,"__esModule",{value:!0});Ma.format=sC;Ma.parse=iC;var rC=/^[\u0009\u0020-\u007e\u0080-\u00ff]*$/,vb=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,nC=/[\\"]/g,oC=/^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/,Sb=(()=>{let e=function(){};return e.prototype=Object.create(null),e})();function sC(e){let{type:t,parameters:r}=e;if(!t||!oC.test(t))throw new TypeError(`Invalid type: ${t}`);let n=t;if(r)for(let o of Object.keys(r)){if(!vb.test(o))throw new TypeError(`Invalid parameter name: ${o}`);n+=`; ${o}=${cC(r[o])}`}return n}function iC(e,t){let r=e.length,n=Gc(e,0,r),o=n;n=Nc(e,n,r);let s=Wc(e,o,n),i=e.slice(o,s).toLowerCase(),a=t?.parameters===!1?new Sb:dC(e,n,r);return{type:i,parameters:a}}var Tb=32,Pb=9,Ab=59,aC=61,Eb=34,lC=92;function dC(e,t,r){let n=new Sb;e:for(;t<r;){t=Gc(e,t+1,r);let o=t;for(;t<r;){let s=e.charCodeAt(t);if(s===Ab)continue e;if(s===aC){let i=Wc(e,o,t),a=e.slice(o,i).toLowerCase();if(t=Gc(e,t+1,r),t<r&&e.charCodeAt(t)===Eb){t++;let d="";for(;t<r;){let c=e.charCodeAt(t++);if(c===Eb){t=Nc(e,t,r),n[a]===void 0&&(n[a]=d);break}if(c===lC&&t<r){d+=e[t++];continue}d+=String.fromCharCode(c)}continue e}let l=t;if(t=Nc(e,t,r),n[a]===void 0){let d=Wc(e,l,t);n[a]=e.slice(l,d)}continue e}t++}}return n}function Nc(e,t,r){for(;t<r&&e.charCodeAt(t)!==Ab;)t++;return t}function Gc(e,t,r){for(;t<r;){let n=e.charCodeAt(t);if(n!==Tb&&n!==Pb)break;t++}return t}function Wc(e,t,r){for(;r>t;){let n=e.charCodeAt(r-1);if(n!==Tb&&n!==Pb)break;r--}return r}function cC(e){if(vb.test(e))return e;if(rC.test(e))return`"${e.replace(nC,"\\$&")}"`;throw new TypeError(`Invalid parameter value: ${e}`)}});import{execFileSync as v$}from"node:child_process";import{homedir as Ni}from"node:os";import{join as ad}from"node:path";var _o=class extends Error{constructor(t,r){super(t===0?r:`line ${t}: ${r}`),this.name="ToonError",this.line=t,this.reason=r}},Mn=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 _o(e,t)}function Ae(e,t){return new Mn(e,t)}function xo(e){return e instanceof Mn?e:e instanceof _o?new Mn(e.line,e.reason):new Mn(0,String(e&&e.message?e.message:e))}var ag=["type","kind","event"],Ln="|",lg=new Set(["order","discriminator","rows","common"]);var Ve=",";function Zi(e){let t=e.split(`
|
|
7
|
-
`);return t.length>0&&t[t.length-1]===""&&t.pop(),t.map(r=>r.endsWith("\r")?r.slice(0,-1):r)}function
|
|
8
|
-
`;break;case"r":r+="\r";break;case"t":r+=" ";break;case"u":{let i=e.slice(n,n+4);if(!/^[0-9a-fA-F]{4}$/.test(i))throw
|
|
9
|
-
`),e.push(" order: ",
|
|
10
|
-
`),e.push(" discriminator: ",
|
|
6
|
+
`)}`),this.name="RedskilledDaemonEntryError",this.searched=t.searched,t.callerEntry!=null&&(this.callerEntry=t.callerEntry)}};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 _r(e){return V(e,"invalid quoted string")}function Ut(e,t){if(e==="")return"";if(e.startsWith('"'))return dg(e,t);if(e.includes('"'))throw _r(t);return e==="true"?!0:e==="false"?!1:e==="null"?null:UE(e)?Number(e):e}function or(e,t){let r=e.trim();if(r.startsWith('"'))return[dg(r,t),!0];if(r.includes('"')||/\s/.test(r))throw V(t,"expected non-empty field name");return[r,!1]}var ag=/["\\\u0000-\u0008\u000a-\u001f]/g;function dg(e,t){if(e.charCodeAt(0)!==34)throw _r(t);let r="",n=1;for(;n<e.length;){ag.lastIndex=n;let o=ag.exec(e);if(o===null)break;if(o[0]==='"'){if(e.slice(o.index+1).trim()==="")return r+e.slice(n,o.index);throw _r(t)}if(o[0]!=="\\")throw _r(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 _r(t);let a=Number.parseInt(i,16);if(a>=55296&&a<=57343)throw _r(t);r+=String.fromCharCode(a),n+=4;break}default:throw _r(t)}}throw _r(t)}function cg(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 _r(r);t=o+2;continue}if(n===-1)throw _r(r);return n+1}}function sr(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=cg(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=cg(e,o+1,r)}return-1}function UE(e){return/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function qE(e){return/^-?[0-9]+(?:\.[0-9]+)?(?:[eE][+-]?[0-9]+)?$/.test(e)}function KE(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 xr(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 KE(e);if(typeof e=="string")return zE(e,t);throw V(0,"not a primitive")}function VE(e){return/^[A-Za-z_][A-Za-z0-9_.]*$/.test(e)}function ft(e){return VE(e)?e:Qi(e)}function zE(e,t){return bd(e,t)?Qi(e):e}function bd(e,t){return e===""||e.trim()!==e||e==="true"||e==="false"||e==="null"||qE(e)||/[:"\\[\]{}]/.test(e)||/[\u0000-\u001f]/.test(e)||e.includes(t)||e.startsWith("-")}var lg=/["\\\u0000-\u001f]/g;function Qi(e){let t='"',r=0;lg.lastIndex=0;let n;for(;(n=lg.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 ir(e,t,r){Object.defineProperty(e,t,{value:r,writable:!0,enumerable:!0,configurable:!0})}function rt(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ug(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 pg(e,t){let r=[],n=!1;return Yi(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);Er(l,i,t),r.push({number:i,depth:l,content:o.slice(a),blankBefore:n}),n=!1}),r}function Er(e,t,r){if(r.maxDepth!==0&&e>r.maxDepth)throw V(t,`maximum nesting depth exceeded (maxDepth ${r.maxDepth})`)}function vs(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,Er(n,t,r)):i==="}"&&(n=Math.max(0,n-1)))}}function mg(e){if(!rt(e)||Object.keys(e).length===0)return e;let t={};for(let[r,n]of Object.entries(e)){let o=JE(n,1);if(o===void 0)return e;ir(t,r,o)}return t}function JE(e,t){if(!rt(e)||!YE(e))return;let{order:r,discriminator:n,rows:o}=e;if(typeof r!="string"||typeof n!="string"||!Number.isSafeInteger(o)||o<0)throw ht(t);let s=QE(r,o,t),i=e.common,a=i===void 0?Array.from({length:o},()=>({})):i;if(!Array.isArray(a)||a.length!==o||!a.every(rt))throw hg(t);let l=new Map;for(let[u,p]of Object.entries(e))if(!ig.has(u)){if(!Array.isArray(p)||!p.every(rt))throw ht(t);l.set(u,p)}if(l.size===0)throw ht(t);let d=new Map,c=s.map((u,p)=>{let g=l.get(u);if(g===void 0)throw yd(t);let f=d.get(u)??0,y=g[f];if(y===void 0)throw yd(t);return d.set(u,f+1),XE(n,u,a[p],y,t)});for(let[u,p]of l)if((d.get(u)??0)!==p.length)throw yd(t);return c}function YE(e){return Object.prototype.hasOwnProperty.call(e,"order")||Object.prototype.hasOwnProperty.call(e,"discriminator")||Object.prototype.hasOwnProperty.call(e,"rows")}function QE(e,t,r){if(!e.startsWith("cycle("))throw ht(r);let n=e.slice(6),o=n.indexOf(")*");if(o===-1)throw ht(r);let s=n.slice(0,o),i=n.slice(o+2);if(s===""||i.includes("+tail("))throw ht(r);let a=s.split(",").map(c=>rv(c,r));if(a.some(c=>c===""))throw ht(r);let l=tv(i,r),d=a.length*l;if(!Number.isSafeInteger(d))throw ht(r);if(d!==t)throw hg(r);return Array.from({length:d},(c,u)=>a[u%a.length])}function XE(e,t,r,n,o){let s={};ir(s,e,t);for(let[i,a]of Object.entries(r??{})){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw ht(o);ir(s,i,a)}for(let[i,a]of Object.entries(ZE(n,o))){if(i===e||Object.prototype.hasOwnProperty.call(s,i))throw ht(o);ir(s,i,a)}return s}function ZE(e,t){let r={};for(let[n,o]of Object.entries(e))ev(r,n.split("."),o,t);return Xi(r,t)}function ev(e,t,r,n){if(t.some(s=>s===""))throw ht(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],!rt(o))throw ht(n)}}function Xi(e,t){return Array.isArray(e)?e.map(r=>Xi(r,t)):rt(e)?Number.isSafeInteger(e.length)&&e.length>=0?Array.from({length:e.length},(r,n)=>{if(!Object.prototype.hasOwnProperty.call(e,String(n)))throw ht(t);return Xi(e[String(n)],t)}):Object.fromEntries(Object.entries(e).map(([r,n])=>[r,Xi(n,t)])):e}function tv(e,t){if(e===""||e.length>1&&e.startsWith("0")||!/^[0-9]+$/.test(e))throw ht(t);let r=Number(e);if(!Number.isSafeInteger(r))throw ht(t);return r}function rv(e,t){try{return decodeURIComponent(e)}catch{throw ht(t)}}function fg(e){return encodeURIComponent(e)}function ht(e){return V(e,"invalid cyclic array wire")}function hg(e){return V(e,"cyclic array length mismatch")}function yd(e){return V(e,"cyclic array group length mismatch")}function bg(e){if(!rt(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)av(n,o,s);return n.join("")}function nv(e){if(!Array.isArray(e)||e.length===0||!e.every(rt))return;let t=ov(e);if(t===void 0)return;let r=e.map(a=>a[t]),n=sv(r);if(n===void 0)return;let o=iv(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)&&!kd(u,c,d))return;s.get(l).push(d)}let i=[];for(let a of n.cycle){let l=s.get(a),d=dv(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 ov(e){return sg.find(t=>e.every(r=>typeof r[t]=="string"))}function sv(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(fg).join(","),s=`cycle(${r.map(fg).join(",")})*${n}`;if(s.length<=o.length*.4)return{cycle:r,encoded:s,repeats:n}}}function iv(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(!lv(s)||!e.every(i=>Object.prototype.hasOwnProperty.call(i,s))||!e.every(i=>xr(i[s])))break;r.push(s)}return r}function av(e,t,r){e.push(ft(t),`:
|
|
9
|
+
`),e.push(" order: ",St(r.order.encoded,Mn),`
|
|
10
|
+
`),e.push(" discriminator: ",St(r.discriminator,Mn),`
|
|
11
11
|
`),e.push(" rows: ",String(r.rows.length),`
|
|
12
|
-
`),r.common.length>0&&
|
|
13
|
-
`);for(let o of n)e.push(" ",r.map(s=>
|
|
14
|
-
`)}function tv(e){return e!==""&&kd(e)}function yd(e,t,r,n=new Set){if(!kd(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)=>yd(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(".")&&yd(i,`${t}.${s}`,r,n));return n.delete(e),o}return!1}function rv(e){let t=Object.keys(e[0]??{});if(e.every(r=>nv(Object.keys(r),t)))return t.every(kd)?t:void 0}function nv(e,t){return e.length===t.length&&e.every((r,n)=>r===t[n])}function kd(e){return e.split(".").every(t=>/^[A-Za-z_][A-Za-z0-9_]*$|^(?:0|[1-9][0-9]*)$/.test(t))}function Eo(e,t){let r=e[t]??e[e.length-1];return V(r===void 0?1:r.number,"array length mismatch")}function ra(e,t){if(t===-1)throw V(0,"array header missing colon");let r=e.slice(0,t),n=St(r,"[",0);if(n===-1)throw V(0,"invalid array header");let o,s;try{[o,s]=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=sv(p.slice(1,-1),u),g=wd(f)}catch(y){throw V(0,y.reason==="duplicate key"?"duplicate key":"invalid array header")}else throw V(0,"invalid array header");return{key:o,keyQuoted:s,len:c,delimiter:u,fields:g,fieldTree:f}}function Rg(e){let t=St(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=ov(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 ov(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 y=e.slice(f,o);if(!wg(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(_g(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 sv(e,t){if(t!==Ve&&e.includes(Ve)&&(e.includes("[")||e.includes("{")))return Rd(e,Ve,t);try{return Rd(e,t,t)}catch(r){if(t!==Ve&&r.reason!=="duplicate key")return Rd(e,Ve,t);throw r}}function Rd(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 y=e.slice(f,n);n+=1;let m=iv(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(wg(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=wd(i);for(let l=0;l<a.length;l+=1)for(let d=l+1;d<a.length;d+=1)if(_g(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 iv(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 wd(e,t=[]){return e.flatMap(r=>{let n=[...t,r.key];return r.children!==void 0?wd(r.children,n):[{path:n,listDelimiter:r.listDelimiter}]})}function na(e,t,r){return e.listDelimiter===void 0?Kt(t,r):ir(t,e.listDelimiter,r).map(n=>Kt(n,r))}function wg(e,t){return e.length===1&&e!==t&&!/[ \t\r\n"[\]{}:]/.test(e)}function _g(e,t){return e.length===t.length&&Ss(e,t)}function Ss(e,t){return t.every((r,n)=>e[n]===r)}function oa(e,t){return V(t,e.reason??String(e.message))}function Ct(e,t){let r=fg(t),n=gg(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=ra(o.content,St(o.content,":",o.number))}catch(c){if(r.strict)throw oa(c,o.number);d=void 0}if(d!==void 0)return dv(d,n,r)}if(s&&St(o.content,":",o.number)===-1)return Kt(o.content.trim(),o.number);let i={index:0},a=xd(n,i,0,r),l=n[i.index];if(l!==void 0)throw V(l.number,"expected end of document");return r.cyclicDiscriminatedArrays?bg(a):a}function xd(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}=av(e,t,r,n);Ag(o,i,a,l,n,s.number)}return o}function av(e,t,r,n){let o=e[t.index],s=o.content,i=St(s,":",o.number);if(i===-1)throw V(o.number,"expected `key: value`");let a=s.slice(0,i),l=s.slice(i+1),d=St(a,"[",o.number),c=St(a,"{",o.number);if(c!==-1&&(d===-1||c<d)){vs(a,o.number,n);let f;try{f=Rg(a)}catch(m){if(n.strict)throw oa(m,o.number);t.index+=1;let w=_d(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=lv(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=ra(a,i)}catch(m){if(n.strict)throw oa(m,o.number);t.index+=1;let w=_d(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=Ed(f,l,e,t,r,n);return{key:f.key,quoted:f.keyQuoted,value:y}}let[u,p]=sr(a,o.number);if(u===""&&!p)throw V(o.number,"expected non-empty field name");t.index+=1;let g=_d(e,t,r,l,o.number,n);return{key:u,quoted:p,value:g}}function _d(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?xd(e,t,r+1,s):{}}function lv(e,t,r,n,o){let s={};for(r.index+=1;r.index<t.length;){let i=t[r.index];if(i.depth<n)break;if(i.depth>n)throw V(i.number,"invalid indentation");if(i.blankBefore&&o.strict)throw V(i.number,"blank line inside keyed map");let a=St(i.content,":",i.number);if(a===-1)throw V(i.number,"expected `key: value`");let[l,d]=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)=>{So(u,p.path,na(p,c[g],i.number),o,i.number)}),Ag(s,l,d,u,o,i.number),r.index+=1}return s}function dv(e,t,r){let n=t[0],o=St(n.content,":",n.number);if(o===-1)throw V(n.number,"expected `key: value`");let s=n.content.slice(o+1),i={index:0},a=Ed(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 Ed(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 cv(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 bv(e,r,n,o+1,s)}function cv(e,t,r,n,o,s){if(e.fieldTree!==void 0&&mv(e.fieldTree))return uv(e,r,n,o,s);let i=[];for(;i.length<e.len;){let l=r[n.index];if(l===void 0)throw Eo(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(!vo(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)=>{So(c,u.path,na(u,d[p],l.number),s,l.number)}),i.push(c),n.index+=1}if(i.length!==e.len)throw Eo(r,n.index);let a=r[n.index];if(a!==void 0&&a.depth>=o&&vo(a.content,e.delimiter,a.number))throw V(a.number,"array length mismatch");return i}function uv(e,t,r,n,o){return xg(e.len,e.fieldTree,e.delimiter,t,r,n,o,!0)}function xg(e,t,r,n,o,s,i,a){let l=[],d=vg(e,t,r,n,o.index,s,i);for(;l.length<e;){let u=n[o.index];if(u===void 0)throw Eo(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(!vo(u.content,r,u.number))break;let p=ir(u.content,r,u.number),g={cellIndex:0,nextIndex:o.index+1,flatWidth:sa(t),childTableFields:d},f=Eg(t,p,u.number,n,g,s+1,r,i);if(g.cellIndex!==p.length)throw V(u.number,"array row length mismatch");l.push(gv(t,f,a)),o.index=g.nextIndex}if(l.length!==e)throw Eo(n,o.index);let c=n[o.index];if(c!==void 0&&c.depth>=s&&vo(c.content,r,c.number))throw V(c.number,"array length mismatch");return l}function Eg(e,t,r,n,o,s,i,a){let l={};return e.forEach((d,c)=>{let u=e.slice(c+1),p=pv(d,u,t,r,n,o,s,i,a);So(l,[d.key],p,a,r)}),l}function pv(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=sa(e.children),u=r[s.cellIndex],p=Tg(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+hv(t)):m){if(p===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,xg(p,e.children,a,o,{get index(){return s.nextIndex},set index(T){s.nextIndex=T}},i,l,!1)}return Eg(e.children,r,n,o,s,i,a,l)}let d=r[s.cellIndex];if(d===void 0)throw V(n,"array row length mismatch");return s.cellIndex+=1,na(e,d,n)}function vg(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=Sg(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 Sg(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||!vo(p.content,n,p.number))return;let g=ir(p.content,n,p.number),f=fv(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&&vo(c.content,n,c.number))return}catch{return}return{nextIndex:l,consumedChildRows:d}}function fv(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=Tg(r[l]);if(p===void 0)return;l+=1;let g=vg(p,u.children,n,o,d,i,a);if(g===void 0)return;let f=Sg(p,u.children,g,n,o,d,i,a);if(f===void 0)return;d=f.nextIndex,c+=p+f.consumedChildRows}else l+=sa(u.children);else l+=1;if(l>r.length)return}if(l===r.length)return{nextIndex:d,consumedChildRows:c}}function gv(e,t,r){return r&&e.length===1&&e[0].fixedLength!==void 0?t[e[0].key]:t}function Tg(e){if(!(e===void 0||!/^(0|[1-9][0-9]*)$/.test(e)))return Number.parseInt(e,10)}function mv(e){return e.some(t=>t.fixedLength!==void 0||t.children!==void 0)}function sa(e){return e.reduce((t,r)=>t+Pg(r),0)}function Pg(e){return e.fixedLength!==void 0?e.fixedLength:e.children!==void 0?sa(e.children):1}function hv(e){return e.reduce((t,r)=>r.children!==void 0?t+1:t+Pg(r),0)}function vo(e,t,r){let n=St(e,":",r);if(n===-1)return!0;let o=St(e,t,r);return o===-1?!1:o<n}function bv(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 Eo(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(yv(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 yv(e,t,r,n){let o=e[t.index];if(!o.content.startsWith("-"))throw V(o.number,"expected array item");let s=o.content.slice(1).replace(/^\s+/,"");if(s==="")return t.index+=1,{};if(s.startsWith("[")){let i=St(s,":",o.number);vs(s,o.number,n);let a;try{a=ra(s,i)}catch{a=void 0}if(a!==void 0){let l=s.slice(i+1);return Ed(a,l,e,t,r,n)}}if(St(s,":",o.number)!==-1){let i=[{number:o.number,depth:r+1,content:s,blankBefore:!1}];for(t.index+=1;t.index<e.length;){let a=e[t.index];if(a.depth<=r)break;i.push(a),t.index+=1}return xd(i,{index:0},r+1,n)}return t.index+=1,Kt(s,o.number)}function Ag(e,t,r,n,o,s){if(o.expandPaths&&!r&&t.includes(".")){let i=t.split(".");if(i.every(kv)){So(e,i,n,o,s);return}}So(e,[t],n,o,s)}function So(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&&!rt(e[s])){if(n.strict)throw V(o,"path expansion conflict");ar(e,s,{})}else i||ar(e,s,{});So(e[s],t.slice(1),r,n,o)}function kv(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=kg(e);if(i!==void 0)return i}let s=[];return Array.isArray(e)?Pd(s,void 0,e,0,!1,o):rt(e)?Cg(s,e,0,o):s.push(Tt(e,n)),s.join("")}function To(e,t){e.push(" ".repeat(t*2))}function Cg(e,t,r,n){Sr(r,0,n);for(let[o,s]of Object.entries(t))To(e,r),Sd(e,o,s,r,n)}function Sd(e,t,r,n,o){if(Sr(n,0,o),Array.isArray(r)){Pd(e,t,r,n,!1,o);return}if(rt(r)){let s=o.keyedMapCollapse?wv(r,o,n+1):void 0;if(s!==void 0){e.push(pt(t),"{",Ad(o.delimiter),s.fields.map(i=>Od(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&&gg(e,"common",r.common,r.commonRows);for(let n of r.groups)gg(e,n.label,n.fields,n.rows)}function gg(e,t,r,n){e.push(" ",ft(t),"[",String(n.length),Mn,"]{",r.map(ft).join(Mn),`}:
|
|
13
|
+
`);for(let o of n)e.push(" ",r.map(s=>St(o[s],Mn)).join(Mn),`
|
|
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)){So(e,n+1);let l=[];e.push(ft(i),": ",s.paths.map(d=>Id(Od(a,d.path),d,o.delimiter,o,l,n+2)).join(o.delimiter),`
|
|
16
|
+
`),e.push(...l)}return}e.push(ft(t),`:
|
|
17
|
+
`),Pg(e,r,n+1,o);return}e.push(ft(t),": ",St(r,o.delimiter),`
|
|
18
|
+
`)}function Ad(e,t,r,n,o,s){if(Er(n,0,s),r.length===0){t!==void 0?e.push(ft(t),`: []
|
|
19
19
|
`):o?e.push(`[0]:
|
|
20
20
|
`):e.push(`[]
|
|
21
|
-
`);return}if(r.every(
|
|
22
|
-
`);return}let i=o?void 0:
|
|
23
|
-
`);for(let a of r){
|
|
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+=
|
|
33
|
-
`},end(){return u?"":(u=!0,g())}}}function
|
|
21
|
+
`);return}if(r.every(xr)){Sd(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:Ag(r,s,n+1);if(i!==void 0){Sd(e,t,r.length,i.fields,s.delimiter),e.push(`
|
|
23
|
+
`);for(let a of r){So(e,n+1);let l=[];e.push(i.paths.map(d=>Id(Od(a,d.path),d,s.delimiter,s,l,n+2)).join(s.delimiter)),e.push(`
|
|
24
|
+
`),e.push(...l)}return}Sd(e,t,r.length,void 0,s.delimiter),e.push(`
|
|
25
|
+
`);for(let a of r)So(e,n+1),Tv(e,a,n+1,s)}function Tv(e,t,r,n){if(Er(r,0,n),Array.isArray(t)){e.push("- "),Ad(e,void 0,t,r,!0,n);return}if(rt(t)){let o=Object.entries(t);if(o.length===0){e.push(`-
|
|
26
|
+
`);return}e.push("- "),Td(e,o[0][0],o[0][1],r+1,n);for(let[s,i]of o.slice(1))So(e,r+1),Td(e,s,i,r+1,n);return}e.push("- ",St(t,n.delimiter),`
|
|
27
|
+
`)}function Sd(e,t,r,n,o){t!==void 0&&e.push(ft(t)),e.push("[",String(r),Cd(o),"]"),n!==void 0&&e.push("{",n.map(s=>Fd(s,o)).join(o),"}"),e.push(":")}function Cd(e){return e===Ve?"":e}function Ag(e,t,r){let n=Av(e,t);if(n!==void 0)return n;let o=Pd(e.map(s=>({value:s})),t,r);return o===void 0?void 0:{fields:o,paths:Dd(o)}}function Pv(e,t,r){let n=Object.values(e);if(!(n.length<2))return Ag(n,t,r)}function Pd(e,t,r){Er(r,0,t);let n=e[0]?.value;if(!rt(n))return;let o=Object.keys(n).map(s=>({key:s}));if(o.length!==0){for(let{value:s}of e)if(!rt(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})=>xr(l)))continue;if(t.primitiveArrayColumns&&i.every(({value:l})=>Array.isArray(l)&&l.every(xr))){s.listDelimiter=";";continue}if(t.objectArrayColumns&&i.every(({value:l})=>Array.isArray(l))){let l=Cg(i.map(({value:c})=>c));if(l!==void 0){s.fixedLength=l.fixedLength,s.fixedDelimiter=t.delimiter;continue}let d=Pd(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=Pd(i,t,r+1);if(a===void 0)return;s.children=a}return o}}function Av(e,t){if(!t.objectArrayColumns)return;let r=Cg(e);return r===void 0?void 0:{fields:[{key:"values",fixedLength:r.fixedLength,fixedDelimiter:t.delimiter}],paths:[{path:[],fixedLength:r.fixedLength}]}}function Cg(e){let t=e[0]?.length;if(!(!Number.isInteger(t)||t===0)&&e.every(r=>Array.isArray(r)&&r.length===t&&r.every(xr)))return{fixedLength:t}}function Dd(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}]:Dd(r.children,n)})}function Od(e,t){let r=e;for(let n of t)r=r[n];return r}function Fd(e,t){return e.listDelimiter!==void 0?`${ft(e.key)}[${e.listDelimiter}]`:e.fixedLength!==void 0?`${ft(e.key)}[${e.fixedLength}${Cd(t)}]`:e.children===void 0?ft(e.key):`${ft(e.key)}{${e.children.map(r=>Fd(r,t)).join(t)}}`}function Id(e,t,r,n,o,s){return t.childFields!==void 0?(Cv(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=>Dv(i,r,t.listDelimiter)).join(t.listDelimiter)}function Cv(e,t,r,n,o){for(let s of t){So(e,o);let i=[];e.push(Dd(r).map(a=>Id(Od(s,a.path),a,n.delimiter,n,i,o+1)).join(n.delimiter)),e.push(`
|
|
28
|
+
`),e.push(...i)}}function Dv(e,t,r){return typeof e!="string"?St(e,t):bd(e,t)||e.includes(r)?Qi(e):e}var $g=[Ve,"|"," "];var Bg=8,Ng=/^[A-Za-z0-9_-]+$/,s2=new TextEncoder,i2=new TextDecoder;function Mv(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 Gg(e,t){if(!Ng.test(e))throw Ae(t,"invalid tag")}function Lv(e,t){let r=e.indexOf(":");if(r<=0)return null;let n=e.slice(0,r);if(!Ng.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 jv(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(!$g.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),Gg(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=sr(c,a,t).map(p=>or(p,t)[0])}catch(p){throw _o(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 $v(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 Dg(e,t,r,n){let o;try{o=sr(e,t,n)}catch(s){throw _o(s)}if(o.length!==r)throw Ae(n,"row arity mismatch");for(let s of o)try{Ut(s,n)}catch(i){throw _o(i)}return o}function Bv(e,t,r){let n={};return e.forEach((o,s)=>{try{ir(n,o,Ut(t[s],r))}catch(i){throw _o(i)}}),n}function Nv(e,t,r){if(e.startsWith("- "))throw Ae(t,"reserved line prefix");let n=Mv(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=jv(e,t);if(o!==null)return o.continuation?($v(r,o,t),{kind:"continuation"}):o.tag!==null?{kind:"tag-header",header:o}:{kind:"header",header:o};let s=Lv(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:Dg(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:Dg(e,r.delimiter,r.fields.length,t)}}function Gv(e,t={}){let r=[],n=new Map,o=[],s=[],i=null,a=!1,l=!1;function d(g,f){let y=s.at(-1);if(y!==void 0&&y.lane===g.lane&&y.delimiter===g.delimiter&&y.fieldText===g.fieldText){y.rows.push(f);return}s.push({lane:g.lane,delimiter:g.delimiter,fields:g.fields,fieldText:g.fieldText,rows:[f]})}function c(){i!==null&&o.push({delimiter:i.delimiter,fields:i.fields,fieldText:i.fieldText,lane:i.lane,rows:i.rows})}function u(g,f,y){let m=n.get(g);if(m===void 0){if(n.size>=Bg)throw Ae(y,"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(Yi(e).forEach((g,f)=>{let y=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=Nv(g,y,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,y);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(y,"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 vr(e){return Gv(e).flatMap(t=>t.rows.map(r=>Bv(t.fields,r,0)))}function Wv(e){if(!$g.includes(e))throw Ae(0,"invalid header delimiter")}function Og(e,t,r=!1){return`[${`${r?"~":""}${e===Ve?"":e}`}]{${t}}:
|
|
29
|
+
`}function Fg(e,t){return`[]<${e}>{${t}}:
|
|
30
|
+
`}function Md(e,t){return t.map(ft).join(e)}function Hv(e){if(!Array.isArray(e)||e.length===0)throw Ae(0,"TOONL header requires fields");return e.map(t=>{let r;try{[r]=or(String(t),0)}catch(n){throw _o(n)}if(r==="")throw Ae(0,"TOONL header requires fields");return r})}function Ig(e,t){return e!==null&&e.length===t.length&&e.every((r,n)=>r===t[n])}function Mg(e){if(e!==void 0&&(!Number.isInteger(e)||e<=0))throw Ae(0,"TOONL continuation cadence must be positive")}function Uv(e,t,r){return e.continuationEveryRows!==void 0&&t>=e.continuationEveryRows||e.continuationEveryBytes!==void 0&&r>=e.continuationEveryBytes}function Lg(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=>!xr(e[r])))throw Ae(0,"TOONL rows must be flat objects");return t}function qv(e){return JSON.stringify([...e].sort())}function jg(e,t){let r=qv(e),n=t.get(r);return n!==void 0?n:(t.set(r,e),e)}function bt({delimiter:e=Ve,trailer:t=!0,continuationEveryRows:r,continuationEveryBytes:n}={}){Wv(e),Mg(r),Mg(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=()=>Uv(p,l,d)?(l=0,d=0,Og(e,s,!0)):"",y=m=>{Gg(m,0);let w=c.get(m);if(w===void 0){if(c.size>=Bg)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=jg(Lg(m),i),T="";(o===null||o.length!==w.length||o.some((M,N)=>M!==w[N]))&&(T+=g(),o=w,s=Md(e,o),a=0,l=0,d=0,T+=Og(e,s));let B=o.map(M=>St(m[M],e));T+=f();let C=`${B.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=Hv(w),B=Md(Ve,T),C=y(m);return Ig(C.fields,T)?"":(C.fields=T,Fg(m,B))},pushTagged(m,w){if(u)throw Ae(0,"TOONL encoder is closed");let T=y(m),B=jg(Lg(w),T.fieldsByShape),C=Md(Ve,B),M=B.map(H=>St(w[H],Ve)),N="";return Ig(T.fields,B)||(T.fields=B,N+=Fg(m,C)),`${N}${m}:${M.join(Ve)}
|
|
33
|
+
`},end(){return u?"":(u=!0,g())}}}function na(e){let t={app:e,version:Kv(To("__RED_BUILD_VERSION__",()=>"3.14.0")??"0.0.0-dev"),gitSha:To("__RED_BUILD_GIT_SHA__",()=>"82a1d2afb4a6c7588b36242c5b589576ac9863c4")??"unknown",buildTime:To("__RED_BUILD_TIME__",()=>"2026-08-11T10:17:46-03:00")??"unknown",bundleAsset:To("__RED_BUNDLE_ASSET__",()=>"redskilled.bundle.min.mjs")??"unknown"},r=To("__REDDB_SDK_VERSION__",()=>""),n=To("__REDDB_BINARY_TAG__",()=>"");return r&&(t.reddbSdkVersion=r),n&&(t.reddbBinaryTag=n),t}function Kv(e){return e.startsWith("v")?e.slice(1):e}function Wg(e){return`${e.app} ${e.version} ${e.gitSha}`}function To(e,t){try{let r=t();return typeof r=="string"&&r.length>0?r:void 0}catch{return process.env[e.replace(/^__|__$/g,"")]}}var Hg={"=":"data",":=":{to:"data",typed:!0},":":"meta"},Vv=/^[a-z][a-z0-9+.-]*:\/\//i;function zv(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 Jv(e=Hg){return Object.entries(e).map(([t,r])=>zv(t,r)).sort((t,r)=>r.separator.length-t.separator.length)}function Yv(e){return/^-\d+(\.\d+)?$/.test(e)}function Ts(e){return!(!e||e.startsWith("-")&&!Yv(e))}function oa(e){if(e==="true")return!0;if(e==="false")return!1;if(e==="null")return null;let t=Number(e);return!Number.isNaN(t)&&Number.isFinite(t)&&e.trim()!==""?t:e}function Ug(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=>Ug(r.trim())):e}function Ln(e,t){switch(t){case"boolean":return Qv(e);case"number":return Xv(e);case"array":return e.split(",").map(r=>oa(r.trim()));case"string":default:return e}}function Qv(e){let t=e.toLowerCase().trim();return t==="true"||t==="yes"||t==="1"||t==="on"}function Xv(e){if(e.trim()==="")throw new TypeError(`Cannot convert "${e}" to number`);let t=Number(e);if(Number.isNaN(t))throw new TypeError(`Cannot convert "${e}" to number`);return t}function ln(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function Zv(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 eS(e){let t=[],r=rS(e);if(t.push(Me("section-header","Usage:"),Me("text"," "),Me("usage-text",r),Me("newline",`
|
|
34
34
|
`),Me("newline",`
|
|
35
35
|
`)),e.positional&&e.positional.length>0){t.push(Me("section-header","Arguments:"),Me("newline",`
|
|
36
36
|
`));for(let n of e.positional)if(n.description){let o=n.variadic?`${n.name}...`:n.name;t.push(Me("indent"," "),Me("positional-name",`<${o}>`)),n.required||t.push(Me("positional-optional"," (optional)")),t.push(Me("newline",`
|
|
37
37
|
`),Me("indent"," "),Me("option-description",n.description),Me("newline",`
|
|
38
38
|
`))}t.push(Me("newline",`
|
|
39
39
|
`))}if(e.options&&Object.keys(e.options).length>0){t.push(Me("section-header","Options:"),Me("newline",`
|
|
40
|
-
`));let n=
|
|
41
|
-
`))}return r}function
|
|
42
|
-
`),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function
|
|
43
|
-
`)}catch{return!0}},append(e,t){
|
|
44
|
-
`),r.append(e,o),t}function
|
|
40
|
+
`));let n=nS(e.options);t.push(...n)}return t}function tS(e,t){let r=eS(e);return Zv(r,t)}function rS(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=y=>{u.includes(y)||u.push(y)};c.short&&p(`-${c.short}`),p(`--${d}`);for(let y of c.aliases??[])y.length===1?p(`-${y}`):p(`--${y}`);let g=u.join(", "),f=c.type&&c.type!=="boolean"?`<${c.type}>`:void 0;n.push({flags:g,type:f,desc:c.description??"",default:c.default!==void 0?String(c.default):void 0})}let l=Math.max(...n.map(d=>d.flags.length+(d.type?d.type.length+1:0)),20);for(let d of n){let c=d.flags.length+(d.type?d.type.length+1:0),u=" ".repeat(l-c+2);r.push(Me("indent"," ")),r.push(Me(o,d.flags)),d.type&&(r.push(Me("text"," ")),r.push(Me(s,d.type))),r.push(Me("text",u)),r.push(Me(a,d.desc)),d.default!==void 0&&(r.push(Me("text"," ")),r.push(Me(i,`(default: ${d.default})`))),r.push(Me("newline",`
|
|
41
|
+
`))}return r}function qg(e){let t=cS(e.options??{},e.autoShort??!1),r=Jv(e.separators??Hg);return{schema:e,parse(n){return oS(n,e,t,r)},help(){return tS(e,e.formatter)}}}function oS(e,t,r,n){let o={positional:{},options:{},errors:[],rest:[]},s=new Set(n.map(c=>c.to));for(let c of s)o[c]={};let i=0,a=t.positional??[],l=0,d=!1;for(;l<e.length;){let c=e[l];if(t.stopEarly&&i>0){o.rest=e.slice(l);break}if(c==="--"&&!d){d=!0,l++;continue}if(d){if(i<a.length){let p=a[i];if(p.variadic){let g=[];for(;l<e.length;){let f=e[l];g.push(p.type?Ln(f,p.type):f),l++}o.positional[p.name]=g,i++}else{let g=p.type?Ln(c,p.type):c;o.positional[p.name]=g,i++,l++}}else t.allowUnknown!==!1&&(o.rest=o.rest??[],o.rest.push(c)),l++;continue}if(c.startsWith("--")){l=lS(c,l,e,o,r,t);continue}if(c.startsWith("-")&&c.length>1&&!mS(c)){l=dS(c,l,e,o,r,t);continue}let u=sS(c,n);if(u){let{key:p,value:g,config:f}=u,y=o,m=y[f.to]??(y[f.to]={});m[p]=f.typed?Ug(g):ln(g),l++;continue}if(i<a.length){let p=a[i];if(p.variadic){let f=[];for(;l<e.length&&!e[l].startsWith("-");){let y=e[l];f.push(p.type?Ln(y,p.type):y),l++}o.positional[p.name]=f,i++;continue}let g=p.type?Ln(c,p.type):c;o.positional[p.name]=g,i++}else t.allowUnknown!==!1?o.rest.push(c):o.errors.push(`Unexpected positional argument: ${c}`);l++}return pS(o,t,r),fS(o,t,a),gS(o,t,r),o}function sS(e,t){if(Vv.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(iS(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(aS(o,s,r))return{key:o,value:s,config:r}}}return null}function iS(e){return e?/^[a-zA-Z_][a-zA-Z0-9_-]*$/.test(e):!1}function aS(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 lS(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 sa(d,c,t+1,n,o,s)}let a=o.get(i);if(a){if(a.type!=="boolean"){let l=r[t+1];return Ts(l)?sa(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 dS(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=Ld(l,o);return c?sa(c.name,d,t+1,n,o,s):(s.strict?n.errors.push(`Unknown option: -${l}`):s.allowUnknown!==!1&&(n.options[l]=oa(ln(d))),t+1)}if(i.length===1){let a=Ld(i,o);if(a){if(a.type!=="boolean"){let l=r[t+1];return Ts(l)?sa(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(Ts(l))return n.options[i]=oa(ln(l)),t+2;n.options[i]=!0}return t+1}for(let a of i){let l=Ld(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 sa(e,t,r,n,o,s){let i=o.get(e);if(i){if(i.choices){let l=i.type?Ln(ln(t),i.type):ln(t);if(!i.choices.includes(l))return n.errors.push(`Invalid value for '${e}': '${t}'. Allowed: ${i.choices.join(", ")}`),r}let a=i.type?Ln(ln(t),i.type):ln(t);if(i.type==="array"){let l=n.options[e];Array.isArray(l)?l.push(...a):n.options[e]=a}else n.options[e]=a}else s.strict?n.errors.push(`Unknown option: --${e}`):s.allowUnknown!==!1&&(n.options[e]=oa(ln(t)));return r}function cS(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=uS(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 uS(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 Ld(e,t){for(let r of t.values())if(r.short===e||r.aliases.includes(e))return r}function pS(e,t,r){for(let n of r.values())if(e.options[n.name]===void 0)if(n.env&&process.env[n.env]!==void 0){let o=process.env[n.env];e.options[n.name]=n.type?Ln(o,n.type):o}else n.default!==void 0&&(e.options[n.name]=n.default);for(let n of t.positional??[])e.positional[n.name]===void 0&&n.default!==void 0&&(e.positional[n.name]=n.default)}function fS(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 gS(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 mS(e){return/^-\d+(\.\d+)?$/.test(e)}var jd=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 hS(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 bS(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&&Ts(e[o+1])&&(l=e[o+1],o+=1),l===void 0)continue;let d=n.get(a)??[];d.push(l),n.set(a,d)}return n}function dn(e,t,r={}){let o=qg({options:hS(t),separators:{},allowUnknown:!0}).parse([...e]),s={},i=bS(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 jd(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 $d=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 Kg(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 $d(r,Object.keys(t.commands))}let o=t.keepArgvOnDefault??!0;return{command:t.default,args:o?[...e]:n}}import{appendFileSync as CS,mkdirSync as DS,readFileSync as nm,renameSync as OS,rmSync as FS,statSync as IS,writeFileSync as MS}from"node:fs";import{dirname as sm,join as LS}from"node:path";var Vg="RED_WORKER_SCOPE",zg="RED_WORKER_MEMORY_CEILING",Jg="RED_WORKER_SCOPE_DEGRADATION",yS="RED_WORKER_ID",kS="RED_WORKER_BORN_AT",Nd={scope:null,memory_ceiling:null,scope_degradation:null};function Gd(e){return{scope:Bd(e[Vg]),memory_ceiling:Bd(e[zg]),scope_degradation:Bd(e[Jg])}}function Yg(e,t){let r={};return t!=null&&(r[yS]=t.worker_id,r[kS]=t.born_at),e.scope!=null&&e.scope!==""&&(r[Vg]=e.scope),e.memory_ceiling!=null&&e.memory_ceiling!==""&&(r[zg]=e.memory_ceiling),e.scope_degradation!=null&&e.scope_degradation!==""&&(r[Jg]=e.scope_degradation),r}function Bd(e){let t=(e??"").trim();return t===""?null:t}import{mkdirSync as _S,readdirSync as xS,readFileSync as em,rmSync as ES,writeFileSync as vS}from"node:fs";import{basename as SS,join as Ao}from"node:path";import{isAbsolute as B2,join as ia,resolve as N2}from"node:path";function RS(e){if(!e)throw new Error("root is required");return e.replace(/\/$/,"")}var Qg="deaths",Xg="deaths.toonl";function aa(e){return ia(RS(e),Qg)}function Po(e){return ia(aa(e),Xg)}var Ps="live",Zg="attributions.toonl";function la(e){return ia(aa(e),Ps)}function Wd(e){return ia(aa(e),Zg)}var Ud=Ao("sys","kernel","random","boot_id"),tm=1;function qd(e,t={}){let r=t.procRoot??"/proc",n=e.pid??process.pid;return{version:tm,ts:(t.now??(()=>new Date().toISOString()))(),kind:e.kind,id:e.id,pid:n,ppid:e.ppid??process.ppid,boot_id:rm(Ao(r,Ud)),cgroup:TS(r,n),last_phase:e.last_phase}}function rm(e){try{let t=em(e,"utf8").trim();return t===""?null:t}catch{return null}}function TS(e,t){let r=rm(Ao(e,String(t),"cgroup"));if(r===null)return null;let n=r.split(`
|
|
42
|
+
`),o=n.find(i=>i.startsWith("0::"));if(o)return o.slice(3)||null;let s=n[0]?.split(":").slice(2).join(":");return s===void 0||s===""?null:s}function Kd(e){let t=e.id.replace(/[^A-Za-z0-9._-]/g,"_");return`${e.kind}-${t}-${e.pid}.toon`}function Vd(e,t){let r=Ao(e,Kd(t));try{return _S(e,{recursive:!0,mode:448}),vS(r,bt({trailer:!1}).push(AS(t)),{encoding:"utf8",mode:384}),r}catch{return null}}function jn(e,t){try{ES(Ao(e,Kd(t)),{force:!0})}catch{}}function zd(e,t){let r;try{r=xS(e)}catch{return[]}let n=[];for(let o of r.sort()){if(!o.endsWith(".toon"))continue;let s=Ao(e,o);try{let a=vr(em(s,"utf8"))[0];if(a===void 0)throw new Error("anchor holds no record");n.push(PS(a))}catch(i){t?.(SS(s),i instanceof Error?i.message:String(i))}}return n}function PS(e){let t=e.kind;if(t!=="launcher"&&t!=="worker"&&t!=="daemon")throw new Error(`presence anchor has unknown kind ${String(t)}`);return{version:Hd(e.version),ts:String(e.ts),kind:t,id:String(e.id),pid:Hd(e.pid),ppid:Hd(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 Hd(e){return typeof e=="number"?e:Number(e)}function AS(e){return{...e}}var jS=1,$S=14*24*60*60*1e3,BS=new Set(["exit","signal","uncaught-exception","unhandled-rejection"]);function NS(e){return typeof e=="string"&&BS.has(e)}var GS="startup";function WS(e,t){return{...e.scope??Nd,version:jS,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 HS(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 da={mkdir(e){DS(e,{recursive:!0,mode:448})},endsClean(e){let t;try{t=IS(e).size}catch{return!0}if(t===0)return!0;try{return nm(e,"utf8").endsWith(`
|
|
43
|
+
`)}catch{return!0}},append(e,t){CS(e,t,{encoding:"utf8",mode:384})},replace(e,t){let r=`${e}.retaining-${process.pid}`;try{MS(r,t,{encoding:"utf8",mode:384}),OS(r,e)}catch(n){throw FS(r,{force:!0}),n}},read(e){return nm(e,"utf8")}};function im(e){let t={};for(let[r,n]of Object.entries(e))t[r]=n;return t}function US(e,t,r=da){let n=Date.parse(t.ts);Number.isFinite(n)&&Yd(e,n,r);let o=bt({trailer:!1}).push(im(t));return r.mkdir(sm(e)),r.endsClean(e)||r.append(e,`
|
|
44
|
+
`),r.append(e,o),t}function Yd(e,t=Date.now(),r=da){let n;try{n=Qd(r.read(e))}catch(a){if(a.code==="ENOENT")return[];throw a}let o=t-$S,s=n.filter(a=>{let l=Date.parse(a.ts);return!Number.isFinite(l)||l>=o});if(s.length===n.length)return s;let i=bt({trailer:!1});return r.replace(e,s.map(a=>i.push(im(a))).join("")),s}function Qd(e){let t=e.endsWith(`
|
|
45
45
|
`)?e:e.slice(0,e.lastIndexOf(`
|
|
46
|
-
`)+1);return t===""?[]:
|
|
47
|
-
`).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:
|
|
46
|
+
`)+1);return t===""?[]:vr(t).map(qS)}function qS(e){let t=e.exit_path;if(!NS(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:qt(e.version),ts:String(e.ts),kind:r,id:String(e.id),pid:qt(e.pid),exit_path:t,signal:e.signal==null?null:String(e.signal),exit_code:e.exit_code==null?null:qt(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:qt(e.uptime_s),rss_kb:qt(e.rss_kb),max_rss_kb:qt(e.max_rss_kb),user_cpu_us:qt(e.user_cpu_us),system_cpu_us:qt(e.system_cpu_us),minor_page_faults:qt(e.minor_page_faults),major_page_faults:qt(e.major_page_faults),voluntary_ctx_switches:qt(e.voluntary_ctx_switches),involuntary_ctx_switches:qt(e.involuntary_ctx_switches)}}function qt(e){return typeof e=="number"?e:Number(e)}function am(e,t=da){let r;try{r=t.read(e)}catch(n){if(n.code==="ENOENT")return[];throw n}return Qd(r)}var KS=["SIGTERM","SIGINT","SIGHUP","SIGQUIT"],Jd=null;function lm(e){let t=e.host??process,r=e.io??da,n=e.clock??(()=>new Date().toISOString()),o=t.pid,s=e.scope??Gd(process.env),i=e.phase??GS,a=null,l=e.presenceDir===void 0?LS(sm(e.lanePath),Ps):e.presenceDir,d=null,c=()=>{l!==null&&(d=qd({kind:e.kind,id:e.id,last_phase:i,pid:o},{procRoot:e.procRoot}),Vd(l,d))},u=m=>{if(!a){try{a=US(e.lanePath,WS({ts:n(),kind:e.kind,id:e.id,pid:o,last_phase:i,scope:s,...m},HS(t)),r)}catch{}l!==null&&d!==null&&jn(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:om(m)})},unhandledRejection(m){u({exit_path:"unhandled-rejection",detail:om(m)})}},f=[...(e.signals??KS).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 y={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&&jn(l,d),Jd===y&&(Jd=null)},handlers:p};return e.setActive!==!1&&(Jd=y),c(),y}function om(e){if(e instanceof Error)return`${e.name}: ${e.message}`;try{return String(e)}catch{return"(undescribable)"}}import{mkdirSync as VS,readdirSync as zS,readFileSync as ca,statSync as JS,writeFileSync as YS}from"node:fs";import{join as pm}from"node:path";var QS=1,XS=["/var/log/kern.log","/var/log/syslog","/var/log/messages"],ZS=512*1024;function eT(e={}){let t=e.procRoot??"/proc",r=e.journalPaths??XS,n=[],o=pm(t,Ud),s=null;try{let l=ca(o,"utf8").trim();s=l===""?null:l,n.push({source:o,result:s?"read":"empty",detail:s})}catch(l){n.push({source:o,result:Xd(l),detail:null})}let i=new Set;try{for(let l of zS(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:Xd(l),detail:null})}let a=[];for(let l of r)try{let c=tT(l,e.tailBytes??ZS).split(`
|
|
47
|
+
`).filter(u=>u.trim()!=="");a.push(...c),n.push({source:l,result:c.length===0?"empty":"read",detail:`${c.length} lines`})}catch(d){n.push({source:l,result:Xd(d),detail:null})}return{boot_id:s,live_pids:i,journal:a,probes:n}}function Xd(e){return e.code==="ENOENT"?"absent":"unreadable"}function tT(e,t){let r=JS(e).size,n=ca(e,"utf8");return r<=t?n:n.slice(n.length-t)}var rT=/(?:Out of memory|Memory cgroup out of memory)[^\n]*?Killed process (\d+)/,nT=/oom[-_]kill:[^\n]*?\bpid=(\d+)/,oT=/Killed (\/\S*) due to memory pressure/,sT=/\bopid=(\d+)\b/,dm=/\bsig=(\d+)\b/,iT=/\buid=(\d+)\b/,aT=/systemd-shutdown|Powering off|System is powering down|Reboot: |Unmounting file systems/,lT={2:"SIGINT",9:"SIGKILL",15:"SIGTERM"};function dT(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:QS,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=>cm(u,e.pid,rT)||cm(u,e.pid,nT));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=oT.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(sT.exec(u)?.[1])===e.pid&&dm.test(u));if(d!==void 0){let u=Number(dm.exec(d)?.[1]),p=iT.exec(d)?.[1];return i("user-signal",o?"medium":"high",lT[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=>aT.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 cm(e,t,r){return Number(r.exec(e)?.[1])===t}var cT=" | ";function um(e){return e.map(t=>t.replace(/[|\n\r]+/g," ").trim()).join(cT)}function uT(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:um(e.evidence),checked:um(e.checked)}}function pT(e){let t=bt({trailer:!1});return e.map(r=>t.push(uT(r))).join("")}function fm(e){let t=la(e.stateRoot),r=Wd(e.stateRoot),o=(e.now??(()=>new Date().toISOString()))(),s=e.evidence??eT({procRoot:e.procRoot,journalPaths:e.journalPaths}),i=[],a=zd(t,g=>i.push(g)),l=am(Po(e.stateRoot)),d=[],c=[],u=[];for(let g of a){if(s.live_pids.has(g.pid)){c.push(g);continue}if(l.find(y=>y.pid===g.pid&&y.id===g.id)!==void 0){u.push(g),jn(t,g);continue}d.push(dT(g,s,l,o)),jn(t,g)}let p=Date.parse(o);return Number.isFinite(p)&&Yd(Po(e.stateRoot),p),d.length>0&&fT(r,d),{attributions:d,alive:c,self_recorded:u,skipped:i,laneText:()=>{try{return ca(r,"utf8")}catch{return""}}}}function gm(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 fT(e,t){try{VS(pm(e,".."),{recursive:!0,mode:448});let r=gT(e),n=r===""||r.endsWith(`
|
|
48
48
|
`)?"":`
|
|
49
|
-
`;
|
|
50
|
-
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=
|
|
49
|
+
`;YS(e,`${r}${n}${pT(t)}`,{encoding:"utf8",mode:384})}catch{}}function gT(e){try{return ca(e,"utf8")}catch{return""}}import{join as mT}from"node:path";var hT=[".red","redskilled"],Ur=448;function Ct(e){return mT(e,...hT)}import{randomUUID as Vk}from"node:crypto";import{spawn as mI}from"node:child_process";import{mkdir as hI}from"node:fs/promises";import{dirname as bI}from"node:path";import{createHash as kT}from"node:crypto";import{constants as nc}from"node:fs";import{mkdir as xm,open as RT,readFile as wT,rm as Em,stat as _T}from"node:fs/promises";import{createConnection as xT}from"node:net";import{tmpdir as ET}from"node:os";import{dirname as vm,join as As}from"node:path";var bT="toon";function bm(e){return e.trimStart().startsWith("{")?"json":"toon"}function ec(e){let t=0;for(;e[t]===`
|
|
50
|
+
`||e[t]==="\r";)t+=1;let r=e.slice(t);if(r==="")return null;let n=bm(r);if(n==="json"){let s=r.indexOf(`
|
|
51
51
|
`);return s<0?null:{frame:r.slice(0,s),dialect:n,rest:r.slice(s+1)}}let o=r.indexOf(`
|
|
52
52
|
|
|
53
|
-
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function
|
|
53
|
+
`);return o<0?null:{frame:r.slice(0,o+1),dialect:n,rest:r.slice(o+2)}}function tc(e){let t=bm(e)==="json"?Zd:mm,r=t===Zd?mm:Zd;try{return t(e)}catch(n){try{return r(e)}catch{throw n}}}function Zd(e){return JSON.parse(e)}function mm(e){return At(e)}function rc(e,t){if(t==="toon"){let r=yT(e);if(r!==null)return r.endsWith(`
|
|
54
54
|
`)?`${r}
|
|
55
55
|
`:`${r}
|
|
56
56
|
|
|
57
57
|
`}return`${JSON.stringify(e)}
|
|
58
|
-
`}function
|
|
59
|
-
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await
|
|
60
|
-
`,1)[0]?.trim()??"";if(!t.startsWith(Pm))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 xT(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 fT(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 ET="/tmp";function ma(e){let t=e.env??process.env,r=cT("sha256").update(e.key).digest("hex").slice(0,20),n=l=>Cs(l,e.socketFileName).length<hT,o=t.XDG_RUNTIME_DIR;if(o){let l=Cs(o,"red-skills",r);if(n(l))return l}let s=e.uid??(typeof process.getuid=="function"?process.getuid():"nouid"),i=Cs(`red-skills-${s}`,r),a=Cs(mT(),i);return n(a)||process.platform==="win32"?a:Cs(ET,i)}Kr();import{homedir as VT}from"node:os";import{join as gc}from"node:path";import{spawnSync as zT}from"node:child_process";import{createHash as JT}from"node:crypto";import{existsSync as YT,readdirSync as QT}from"node:fs";import{mkdir as $m,readFile as XT,rename as ZT,writeFile as eP}from"node:fs/promises";import{dirname as tP}from"node:path";var Nn="@reddb-io/red-skills",MT="https://registry.npmjs.org",LT="canary",$n=class extends Error{kind;cause;constructor(t,r,n){super(r),this.name="BundleFetchError",this.kind=t,this.cause=n}},jT=/^\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?$/;function dc(e){return typeof e=="string"&&jT.test(e.trim())}function Mm(e){return`${e}-.bundle.min.mjs`}var BT=".unversioned";function $T(e,t,r="stable"){if(r==="canary")return`${e}-canary.bundle.min.mjs`;if(!dc(t))throw new $n("invalid-version",`refusing to key the ${e} bundle cache on ${JSON.stringify(t??"")}: it would mint ${Mm(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 ka(e){let{plugin:t,version:r,cacheDir:n,channel:o}=e;return Fs(n,$T(t,r,o))}function NT(e){return e==="dev"?["rsp","redskilled"]:[]}function GT(e){return`${e}.bundle.min.mjs`}function WT(e){return Fs("dist",GT(e))}function HT(e,t="stable"){return`${Nn}@${t==="canary"?LT:e}`}function cc(e=Nn){return`${MT}/${e.replace("/","%2F")}`}async function uc(e,t){let{plugin:r,version:n,cacheDir:o,channel:s="stable"}=t,i=ka({plugin:r,version:n,cacheDir:o,channel:s}),a=NT(r),l=a.map(p=>ka({plugin:p,version:n,cacheDir:o,channel:s}));if(s!=="canary"&&await e.exists(i)&&await qT(e,l))return i;let d=HT(n,s),c=Fs(o,`.staging-${r}-${s==="canary"?"canary":n}`),u;try{u=await e.materialize(d,c)}catch(p){throw Bm(p,d)}for(let p of[r,...a]){let g=WT(p),f=Fs(u,g);if(!await e.exists(f))throw new $n("bundle-missing",`npm package ${d} has no ${g}`);let y=p===r?i:ka({plugin:p,version:n,cacheDir:o,channel:s});await e.writeFile(y,await e.readFile(f))}return await UT(e,o,[r,...a]),i}async function UT(e,t,r){if(e.rename)for(let n of r){let o=Fs(t,Mm(n));try{if(!await e.exists(o))continue;await e.rename(o,`${o}${BT}`)}catch{}}}async function qT(e,t){for(let r of t)if(!await e.exists(r))return!1;return!0}async function Lm(e,t,r=Nn){let n;try{n=await e.fetchText(cc(r))}catch(s){throw Bm(s,r)}let o=pc(n);return{sameMajor:KT(o,t),newest:fc(o)}}function pc(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 KT(e,t){let r=lc(t);if(r===null)return null;let n=null;for(let o of e)lc(o)===r&&(n===null||jm(o,n)>0)&&(n=o);return n}function fc(e){let t=null;for(let r of e){let n=String(r).trim();lc(n)===null||/^\d+\.\d+\.\d+[-+]/.test(n)||(t===null||jm(n,t)>0)&&(t=n)}return t}function lc(e){let t=/^(\d+)\.(\d+)\.(\d+)/.exec(String(e).trim());return t?Number(t[1]):null}function jm(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 Bm(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 Fs(e,t){return e.endsWith("/")?`${e}${t}`:`${e}/${t}`}Kr();var Nm={async materialize(e,t){await $m(t,{recursive:!0});let r=zT("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 gc(t,"node_modules",...Nn.split("/"))},async readFile(e){return new Uint8Array(await XT(e))},async writeFile(e,t){await $m(tP(e),{recursive:!0}),await eP(e,t)},async exists(e){return YT(e)},sha256(e){return JT("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 ZT(e,t)}},rP="redskilled";function nP(e=process.env){if(e.RED_SKILLS_CACHE_DIR)return e.RED_SKILLS_CACHE_DIR;let t=e.XDG_CACHE_HOME||gc(e.HOME||VT(),".cache");return gc(t,"red-skills","bundles")}var oP=/^([a-z0-9-]+)-(\d+\.\d+\.\d+(?:[-+][0-9A-Za-z.+-]+)?)\.bundle\.min\.mjs$/;async function sP(e,t){if(dc(e.version))return e.version.trim();let r=e.listCacheDir??lP,n=iP(r(t),"dev");if(n)return n;try{let s=await(e.bundleIO??Nm).fetchText(cc());return fc(pc(s))}catch{return null}}function iP(e,t){let r=null;for(let n of e){let o=oP.exec(n);if(!o||o[1]!==t)continue;let s=o[2];(r===null||aP(s,r)>0)&&(r=s)}return r}function aP(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 lP(e){try{return QT(e)}catch{return[]}}async function dP(e={},t={},r={}){let n=un(e,t);if(Ar(n))return n;let o=r.env??t.env??process.env,s=nP(o),i=await sP(r,s);if(i===null)return n;try{await uc(r.bundleIO??Nm,{plugin:rP,version:i,cacheDir:s})}catch{return n}return un(e,t)}async function Gm(e={},t={},r={}){let n=await dP(e,t,r);if(Ar(n))return n;let{RedskilledDaemonEntryError:o}=await Promise.resolve().then(()=>(Kr(),Im));throw new o(n)}var Do=3e5,Wm=1e4,Hm=6e4,Um=15e3,mc=3e4,qm=mc*2,Km=6e4,Is=16;function Vm(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 hc(e){let t=e?.match(/\bsession-error:\s*(.+)$/)?.[1]?.trim();return t==null||t===""?null:t}var zm="no tracker transport was given to this daemon, so no queue depth was ever asked for";import{randomUUID as Ok}from"node:crypto";import{mkdir as U1,rm as q1}from"node:fs/promises";import{dirname as K1}from"node:path";import{randomUUID as Jm}from"node:crypto";import{rm as cP}from"node:fs/promises";import{connect as uP,createServer as pP}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 bc(e,t=250){return await new Promise(r=>{let n=uP(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 Ym(e,t){for(let r=0;r<2;r++){let n=pP();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 bc(e)!=="unowned")throw new Jt(e);if(await t?.())throw new Jt(e);await cP(e,{force:!0})}}throw new Jt(e)}async function Yt(e,t=250){try{return(await ga({socketPath:e,timeoutMs:t},{id:Jm(),op:"ping"},"redskilled daemon")).ok===!0}catch{return!1}}function Qm(e,t){Tm(e,(r,n)=>t(r,n),(r,n,o)=>{o({id:n?.id??Jm(),ok:!1,error:r instanceof Error?r.message:String(r)})})}function sh(e){return{generated_at:e.now,hour:Zm("hour",36e5,e),day:Zm("day",864e5,e),history_48h:fP(e)}}function fP(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=gP(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:Xm(i),tickets_per_hour:Xm(l)}}function gP(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 Xm(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 Gn(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 Zm(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&&rh(u.at,o,n)).sort((u,p)=>u.at-p.at),a=r.outcomes.map(u=>pn(u.ts)).filter(u=>u!=null&&rh(u,o,n)),l=eh(i,u=>u.tokens,"tokens",s),d=eh(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:mP(a.length,t,s),runner_share:th("runner",i,u=>u.runner,s),model_share:th("model",i,u=>u.model,s),unavailable:c}}function eh(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 mP(e,t,r){return e===0?{value:null,absent_reason:`no Worker outcome was recorded in the last ${r}`,samples:0}:{value:e/(t/36e5),absent_reason:null,samples:e}}function th(e,t,r,n){let o=new Map;for(let d of t){let c=r(d.observation);c!=null?o.set(d.observation.worker_id,c):o.has(d.observation.worker_id)||o.set(d.observation.worker_id,null)}let s=new Map,i=0,a=0;for(let d of o.values()){if(d==null){a+=1;continue}i+=1,s.set(d,(s.get(d)??0)+1)}let l=[...s.entries()].map(([d,c])=>({key:d,worker_count:c,share:c/i})).sort((d,c)=>c.worker_count-d.worker_count||d.key.localeCompare(c.key));return{dimension:e,attributed_workers:i,unattributed_workers:a,shares:l,absent_reason:l.length>0?null:o.size===0?`no Worker was observed in the last ${n}`:`no Worker published a ${e} in the last ${n}`}}function rh(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 ih(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.generated_at=="string"&&oh(t.hour)&&oh(t.day)&&(t.history_48h===void 0||hP(t.history_48h))}function hP(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return t.hours===48&&nh(t.tokens_per_hour)&&nh(t.tickets_per_hour)}function nh(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 oh(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"&&yc(t.tokens_per_min)&&yc(t.tools_per_min)&&yc(t.issues_per_hour)&&Array.isArray(t.unavailable)}function yc(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 ah(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:Gn([...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 lh(e,t){return Gn(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 uh,totalmem as yP}from"node:os";function Ms(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 dh(e,t={}){let r=0,n=0,o=0,s=[],i=[];for(let d of e){let c=Ms(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=Oo(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:bP(e.length,n,a,l)}}function bP(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 Oo(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 ch(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 ph="REDSKILLED_MEMORY_CEILING",Rc="REDSKILLED_WORKER_CEILING",hh="REDSKILLED_VALIDATION_CEILING",fh="REDSKILLED_INTERACTIVE_RESERVATION",Ls=1,gh=.7,kP=2*1024**3,RP=2;function bh(e){let t=e?.memory_max??e?.memory_high;if(t!=null)return Oo(t)}function wa(e){let t=0,r=[];for(let n of e){let o=bh(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 yh(e){let{ceiling:t}=e,r=wa(e.workers),n=bh(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??Ls),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 kh(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=wa(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 (${Rc} 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 _a(e=process.env,t=yP(),r={}){let n=kc(r.flags?.memoryCeiling,e[ph],r.config?.memoryCeiling),o=kc(r.flags?.workerCeiling,e[Rc],r.config?.workerCeiling),s=kc(r.flags?.validationCeiling,e[hh],r.config?.validationCeiling),i=n?.value??"",a=o?.value??"",l=(e[fh]??"").trim(),d=Rh(a),c=l===""?Ls:xP(l),u=o?.source??"derived-default";if(a!==""&&d===null&&!wP(a)&&(Ra(`redskilled: ${wc(o)} ${Rc}=${JSON.stringify(a)} is not a positive integer; this host admits an unbounded number of Workers instead.`),u="derived-default"),i!==""){let p=_P(i,t);if(p!==void 0)return mh({memory_bytes:p,worker_count:d,interactive_reservation:c??Ls,source:"declared",memory_source:n.source,worker_source:u},s,r.availableParallelism??uh());Ra(`redskilled: ${wc(n)} ${ph}=${JSON.stringify(i)} is not a memory ceiling this host can read; using ${gh*100}% of host memory instead. Accepted forms: systemd bytes (\`8G\`), a percentage (\`50%\`), or \`infinity\`.`)}return l!==""&&c===void 0&&Ra(`redskilled: ${fh}=${JSON.stringify(l)} is not a non-negative integer; using the default reservation of ${Ls} Worker(s) instead.`),mh({memory_bytes:Math.floor(t*gh),worker_count:d,interactive_reservation:c??Ls,memory_source:"derived-default",worker_source:u,source:"host-fraction"},s,r.availableParallelism??uh())}function mh(e,t,r){if(t!==void 0){let i=Rh(t.value);if(i!==null)return{...e,validation_count:i,validation_source:t.source};Ra(`redskilled: ${wc(t)} ${hh}=${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)/RP)),o=e.memory_bytes==null?Number.POSITIVE_INFINITY:Math.max(1,Math.floor(e.memory_bytes/kP)),s=e.worker_count??Number.POSITIVE_INFINITY;return{...e,validation_count:Math.max(1,Math.min(n,o,s)),validation_source:"derived-default"}}function kc(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 wc(e){return e.source==="flag"?"serve flag":e.source==="environment"?"environment":e.source==="home-config"?"home config":"derived default"}function wP(e){return["infinity","none","off","unbounded"].includes(e.trim().toLowerCase())}var Ra=e=>process.stderr.write(`${e}
|
|
61
|
-
`);function
|
|
62
|
-
`);return t.pop(),t.length===0?[]:
|
|
58
|
+
`}function yT(e){try{let t=JSON.stringify(e);if(t===void 0)return null;let r=nt(JSON.parse(t));return r.trim()===""?null:r}catch{return null}}function ym(e,t){return!hm(e)||!hm(t)||t.ok!==!1?!1:typeof e.id=="string"&&typeof t.id=="string"&&t.id!==e.id}function hm(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var km=new Set;function Rm(e){return km.has(e)?"json":bT}function wm(e){km.add(e)}var vT=108;async function ua(e,t,r="resident server"){let n=e.wire,o=n??Rm(e.socketPath),s=await _m(e,t,r,o);return n||o==="json"||!ym(t,s)?s:(wm(e.socketPath),await _m(e,t,r,"json"))}async function _m(e,t,r,n){let o=e.timeoutMs??1e3;return await new Promise((s,i)=>{let a=xT(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(rc(t,n))}),a.on("data",p=>{d+=p.toString("utf8");let g=ec(d);g&&(d=g.rest,u(()=>{try{s(tc(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 Sm(e,t,r){let n="";e.setEncoding("utf8"),e.on("error",()=>{}),e.on("data",o=>{n+=o;let s=ec(n);if(!s)return;n=s.rest,e.pause();let i=a=>{if(!(e.destroyed||!e.writable))try{e.write(rc(a,s.dialect))}catch{}};(async()=>{let a;try{a=tc(s.frame),await t(a,i)}catch(l){r(l,a,i)}finally{e.end()}})()})}async function ST(e){await xm(vm(e),{recursive:!0,mode:448});try{return await RT(e,nc.O_CREAT|nc.O_EXCL|nc.O_RDWR)}catch(t){if(t.code!=="EEXIST")throw t;return null}}var TT=6e4,Tm="resident-spawn-lock v1",PT=3;async function Pm(e,t={}){let r=t.maxAgeMs??TT,n=t.now??Date.now,o=t.pid??process.pid,s=t.isPidAlive??Ye;await xm(vm(e),{recursive:!0,mode:448});let i=[];for(let a=0;;a+=1){let l=await ST(e);if(l)return await l.writeFile(`${Tm} pid=${o} taken=${new Date(n()).toISOString()}
|
|
59
|
+
`).catch(()=>{}),{acquired:!0,lockPath:e,handle:l,reaped:i};let d=await CT(e),c=await OT(e,d,n());if(a>=PT||c==null)return{acquired:!1,lockPath:e,holder:d,ageMs:c};let u=AT(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 Em(e,{force:!0}),i.push(p),t.onReap?.(p)}}async function Am(e){await e.handle.close().catch(()=>{}),await Em(e.lockPath,{force:!0})}function AT(e,t,r,n){return e==null?t>r?"unattributed":null:n(e.pid)?t>r?"aged-out":null:"holder-dead"}function Cm(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 CT(e){try{return DT(await wT(e,"utf8"))}catch{return null}}function DT(e){let t=e.split(`
|
|
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 DP(e,t){let r=e.toLowerCase();if(["infinity","none","off","unbounded"].includes(r))return null;let n=/^(\d+(?:\.\d+)?)\s*%$/.exec(e);return n?Math.floor(t*(Number(n[1])/100)):Do(e)??void 0}function kh(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 OP(e){let t=Number(e);return Number.isSafeInteger(t)&&t>=0?t:void 0}import{appendFile as FP,mkdir as IP,open as MP,readFile as LP,rename as jP,rm as $P,stat as xh,truncate as Rh,writeFile as BP}from"node:fs/promises";import{dirname as NP}from"node:path";var GP=["worker-birth","worker-activity","worker-metrics","worker-drift","worker-heal","worker-death","worker-budget-kill"],Oo=["worker-birth","worker-death","worker-budget-kill"],WP=["demand-refusal","daemon-stop"],Eh="redskilled.log.toonl",HP=4*1024*1024,UP=.5;function Ra(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 qP="daemon:";function KP(e){return{version:1,ts:e.ts,kind:"daemon-stop",event:"daemon-stop",worker_id:`${qP}${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 VP(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 vh(e,t={}){let r=t.maxBytes??HP,n=bt({trailer:!1}),o=Promise.resolve();async function s(i){let a=o.then(async()=>{await IP(NP(e),{recursive:!0,mode:448}),await YP(e);let l=n.push(Th(i));await zP(e,l,r)?await FP(e,l,{encoding:"utf8",mode:384}):(await JP(e,r,i),n=bt({trailer:!1}))});return o=a.catch(()=>{}),await a,i}return{path:e,record:i=>s(Ra(i)),recordWorker:i=>s(Ra(i)),recordDemandRefusal:i=>s(VP(i)),recordDaemonStop:i=>s(KP(i)),read:()=>Sh(e),flush:async()=>{await o}}}async function zP(e,t,r){let n=0;try{n=(await xh(e)).size}catch(o){if(o.code!=="ENOENT")throw o}return n+Buffer.byteLength(t)<=r}async function JP(e,t,r){let n=[...await Sh(e),r],o=new Set([n.length-1]),s=Math.floor(t*UP),i;try{i=wh(n,s,o)}catch(l){if(!(l instanceof Error)||!l.message.startsWith("redskilled event-lane baseline exceeds"))throw l;i=wh(n,t,o)}let a=`${e}.rotate-${process.pid}`;try{await BP(a,xc(i),{encoding:"utf8",mode:384}),await jP(a,e)}finally{await $P(a,{force:!0})}}function wh(e,t,r=new Set){let n=new Set(Ec(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=_h(e,o,s.slice(d));Buffer.byteLength(xc(c))<=t?a=d:i=d+1}let l=_h(e,o,s.slice(i));if(Buffer.byteLength(xc(l))>t)throw new Error(`redskilled event-lane baseline exceeds its ${t}-byte ceiling`);return l}function _h(e,t,r){let n=new Set([...t,...r]);return e.filter((o,s)=>n.has(s))}function xc(e){if(e.length===0)return"";let t=bt({trailer:!1});return e.map(r=>t.push(Th(r))).join("")}async function YP(e){let t;try{t=(await xh(e)).size}catch(o){if(o.code==="ENOENT")return;throw o}if(t===0)return;let r=64*1024,n=await MP(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 Rh(e,s-i+l+1);return}}await Rh(e,0)}finally{await n.close()}}async function Sh(e){let t;try{t=await LP(e,"utf8")}catch(r){if(r.code==="ENOENT")return[];throw r}return QP(t)}function QP(e){let t=e.split(`
|
|
62
|
+
`);return t.pop(),t.length===0?[]:vr(`${t.join(`
|
|
63
63
|
`)}
|
|
64
|
-
`).filter(UP).map(qP)}function xc(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,HP(r)):(r.kind==="worker-death"||r.kind==="worker-budget-kill")&&t.delete(r.worker_id));return[...t.values()]}function HP(e){let t={...e.memory_high!=null?{memory_high:e.memory_high}:{},...e.memory_max!=null?{memory_max:e.memory_max}:{},...e.cpu_weight!=null?{cpu_weight:e.cpu_weight}:{}};return{worker_id:e.worker_id,project_label:e.project_label,pid:e.pid,started_at:e.ts,workspace_path:e.workspace_path,...e.fork_sha!=null?{fork_sha:e.fork_sha}:{},...e.log_path!=null?{log_path:e.log_path}:{},isolated:e.isolated,...e.unit!=null?{unit:e.unit}:{},...Object.keys(t).length>0?{budget:t}:{},warnings:[]}}function Ph(e){return{...e}}function UP(e){let t=e.kind??e.event;return e.version===1&&typeof e.ts=="string"&&typeof e.worker_id=="string"&&[...OP,...FP].includes(t)}function qP(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:ft(e.project_label)??"",pid:Number(e.pid??0),workspace_path:ft(e.workspace_path)??"",fork_sha:ft(e.fork_sha),log_path:ft(e.log_path),isolated:e.isolated===!0||e.isolated==="true",unit:ft(e.unit),memory_high:ft(e.memory_high),memory_max:ft(e.memory_max),cpu_weight:e.cpu_weight==null||e.cpu_weight===""?null:Number(e.cpu_weight),admission_verdict:ft(e.admission_verdict),phase:ft(e.phase),step:ft(e.step),tokens:e.tokens==null||e.tokens===""?null:Number(e.tokens),tools:e.tools==null||e.tools===""?null:Number(e.tools),runner:ft(e.runner),model:ft(e.model),base_head_sha:ft(e.base_head_sha),base_commits_ahead:e.base_commits_ahead==null||e.base_commits_ahead===""?null:Number(e.base_commits_ahead),heal_kind:ft(e.heal_kind),detail:ft(e.detail),exit_code:e.exit_code==null||e.exit_code===""?null:Number(e.exit_code),signal:ft(e.signal),reason:ft(e.reason)}}function ft(e){return e==null||e===""?null:String(e)}function Ah(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 Ch(e){return{version:1,at:e,requested:0,granted:[],shortfall:0,refusal:null,retry_after:null,projects:[]}}function Dh(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 js={shortLifeStreak:0,haltUntilMs:null,openedAtMs:null,probeWorkerId:null};function Oh(e,t,r){if(t>=6e4)return js;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 Fh(e,t){return e.haltUntilMs==null?e:{...e,probeWorkerId:t}}function Ec(){return js}function KP(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 Ih(e,t){return Object.entries(e).sort(([r],[n])=>r.localeCompare(n)).map(([r,n])=>KP(r,n,t)).filter(r=>r!=null)}function Lh(e){let t=e.workers.map(VP),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:JP({reason:e.reason,socketPath:e.socketPath,daemonVersion:e.daemonVersion,pid:e.pid,held:t.length,projects:r.length,surviving:n.length})}}function jh(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 VP(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 zP(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 JP(e){let t=`stopping the redskilled daemon (pid ${e.pid}, version ${e.daemonVersion}) on ${JSON.stringify(e.socketPath)}: ${zP(e.reason)}`;return e.held===0?`${t}; it holds no Workers, so nothing survives the stop`:`${t}; it holds ${Mh(e.held,"Worker")} across ${Mh(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 Mh(e,t){return`${e} ${t}${e===1?"":"s"}`}function vc(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 YP,mkdir as QP,readFile as XP,rm as ZP,writeFile as eA}from"node:fs/promises";import{dirname as Bh,join as Wh}from"node:path";import{tmpdir as $h}from"node:os";var tA="redskilled.machine.claim.toon",Tc="REDSKILLED_MACHINE_DIR",rA=8,Vr=class extends Error{constructor(r,n,o){super(oA(r,n,o));this.claimPath=r;this.reason=n;this.claim=o;this.name="RedskilledMachineHeldError"}},Nh;function Ea(){return Nh??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString(),uid:typeof process.getuid=="function"?process.getuid():-1},Nh}function nA(e={machineIdHash:"unknown"}){let t=e.env??process.env,r=t[Tc]?.trim();if(r)return r;let o=(e.platform??process.platform)==="win32"?t.PROGRAMDATA?.trim()||$h():$h();return Wh(o,`redskilled-${e.machineIdHash}`)}function Io(e){return Wh(nA(e),tA)}function Bs(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){let l;try{l=await XP(e,"utf8")}catch(c){if(c.code==="ENOENT"||Sc(c))return;throw c}let d=iA(l);return aA(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 ZP(e,{force:!0}),!0}catch(l){if(Sc(l))return!1;throw l}}return{claimPath:e,read:s,async claim(l){await QP(Bh(e),{recursive:!0,mode:1023})!=null&&await YP(Bh(e),1023).catch(()=>{});let c=!1;for(let u=0;u<rA;u+=1){let p=i(l,n());try{return await eA(e,sA(p),{encoding:"utf8",mode:420,flag:"wx"}),{claimed:!0,reaped:c,claim:p}}catch(f){if(f.code!=="EEXIST"){if(Sc(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(Gh(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||!Gh(d,l,t.socketPath)?!1:await a()}}}function Hh(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 Uh(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 oA(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 Sc(e){let t=e?.code;return t==="EACCES"||t==="EPERM"||t==="EROFS"}function Gh(e,t,r){return e.pid===t.pid&&e.start_time===t.startTime&&e.socket_path===r}function sA(e){return`${nt(e,{keyedMapCollapse:!0})}
|
|
65
|
-
`}function iA(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function aA(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 lA=["worker_id","slot","workspace_path","log_path"],va=class extends Error{constructor(r,n){super(`redskilled cannot expand ${JSON.stringify(`{{${r}}}`)} in ${n}: the facts a birth supplies are ${lA.join(", ")}, and a Worker started with the placeholder left in it is one nobody meant to start`);this.fact=r;this.name="RedskilledLaunchFactError"}},qh=/\{\{([a-z_]+)\}\}/g;function dA(e,t){let r=(i,a)=>i.replace(qh,(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 va(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 Kh(e,t){if(!(e==null||e.trim()===""))return e.replace(qh,(r,n)=>{switch(n){case"worker_id":return t.worker_id;case"workspace_path":return t.workspace_path;default:throw new va(n,"the log path")}})}function Sa(e,t,r){let n=dA(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 Ta(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 Pa(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 Aa(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 cA=3e5,uA=.5,Pc=class extends Error{constructor(r){super(`redskilled already holds a registration for project ${JSON.stringify(r.project_label)}, registered at ${r.registered_at} for a target of ${r.target} and standing until ${r.renew_by}: a project contributes one registration, so a second one is refused rather than silently replacing the first`);this.held=r;this.name="RedskilledProjectRegisteredError"}};function Vh(e,t){if(t.held!=null)throw new Pc(t.held);let r=$s(e.project_label,"a project label"),n=$s(e.selector,"a selector"),o=bA(e.queue_poll,r),s=Ta(e.argv,r),i=Aa(e.env,r),a=Pa(e.log_path,r),l=gA(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??cA;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 Wn=class extends Error{constructor(r,n={kind:"never"}){super(pA(r,n));this.projectLabel=r;this.absence=n;this.name="RedskilledProjectUnregisteredError"}};function pA(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 zh(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:Ta(t.launch.argv,e.project_label),env:Aa(t.launch.env,e.project_label),launch_revision:(e.launch_revision??0)+1},s=t.launch==null?e.log_path:Pa(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 Ac(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 fA(e,t){let r=Date.parse(e.renew_by);return Number.isFinite(r)?t>=r:!1}function Ca(e,t){let r=Date.parse(e.renewed_at??e.registered_at),n=s=>Number.isFinite(s)&&t-s<=e.renew_within_ms*uA;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 Jh(e,t){let r=[],n=[];for(let o of e)(fA(o,t)?n:r).push(o);return{standing:r,lapsed:n}}function Ns(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||Yh(t.queue_poll))&&Array.isArray(t.argv)&&t.argv.every(r=>typeof r=="string")&&typeof t.workspace_path=="string"&&(t.trunk===void 0||hA(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||Qh(t.env))&&(t.log_path===void 0||typeof t.log_path=="string")&&(t.hooks===void 0||mA(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 gA(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(!Fo.includes(n))throw new Error(`redskilled cannot register project hook ${JSON.stringify(n)} for project ${JSON.stringify(t)}: public host event kinds are ${Fo.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:Ta(s.argv,t),env:Aa(s.env,t),...s.log_path==null?{}:{log_path:Pa(s.log_path,t)},...s.mode==null?{}:{mode:i},...i==="sync"?{deadline_ms:s.deadline_ms}:{}}}return r}function mA(e){return e===null||typeof e!="object"||Array.isArray(e)?!1:Object.entries(e).every(([t,r])=>{if(!Fo.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||Qh(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 hA(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 bA(e,t){if(e!==void 0){if(!Yh(e))throw new Error(`redskilled needs a complete queue poll plan for project ${JSON.stringify(t)} when one is stated`);return e}}function Yh(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 Qh(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 yA={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 Xh(e){return`worker-${e}`}function Zh(e){let t=yA[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 eb(e){return e==="single-object"?"rest":"graphql"}function tb(e,t){return e==="stable-poll"?"rest":eb(t)}function Qt(e){return{none:e}}function ot(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??tb(r,t),budget:n,...a,...i?{only:i}:{},why:s}}function Ot(e,t,r,n){return{key:e,kind:"write",cardinality:"single-object",surface:t,budget:r,fallback:null,noFallbackBecause:"a mutation has one observed GitHub API method",why:n}}var rb=[ot("issue view","single-object","stable-poll","rest","graphql","one issue by number, repeatedly polled while usually unchanged; REST answers in one request"),ot("pr view","single-object","stable-poll","rest","graphql","one pull request by number, polled per Worker per iteration"),ot("repo view","single-object","stable-poll","rest","graphql","one repository's own metadata, repeatedly read while usually unchanged"),ot("run view","single-object","stable-poll","rest",Qt("Actions runs have no GraphQL resource"),"one Actions run repeatedly polled to terminal"),ot("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"),ot("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"),ot("issue list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged issue collection; REST can make an unchanged poll free"),ot("pr list","multi-node","stable-poll","rest","graphql","a repeatedly polled, usually-unchanged pull-request collection; REST can make an unchanged poll free"),ot("pr checks","multi-node","stable-poll","rest","graphql","check contexts are repeatedly polled while awaiting terminal state"),ot("release list","multi-node","stable-poll","rest",Qt("Releases has no GraphQL collection client method"),"release waits poll a usually-unchanged list"),ot("run list","multi-node","stable-poll","rest",Qt("Actions has no GraphQL collection client method"),"run waits poll a usually-unchanged list"),ot("label list","multi-node","one-shot","graphql","rest","a label connection loaded once for the current operation"),ot("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"),ot("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"),ot("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"),ot("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"),ot("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"),ot("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"),ot("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"),Ot("issue create","graphql","graphql","gh files an issue with the createIssue mutation \u2014 an exhausted GraphQL pool blocks filing"),Ot("issue edit","graphql","graphql","gh edits labels, body and assignees with GraphQL mutations"),Ot("issue close","graphql","graphql","gh closes with the closeIssue mutation"),Ot("issue reopen","graphql","graphql","gh reopens with the reopenIssue mutation"),Ot("issue comment","rest","rest","gh POSTs to `repos/{o}/{r}/issues/{n}/comments`, a REST request"),Ot("issue develop","graphql","graphql","linked-branch creation is a GraphQL mutation"),Ot("pr create","rest","rest","gh POSTs to `repos/{o}/{r}/pulls`, a REST request"),Ot("pr comment","rest","rest","a pull request comment is an issue comment: the same REST POST"),Ot("pr merge","graphql","graphql","gh merges with the mergePullRequest mutation"),Ot("pr close","graphql","graphql","gh closes with a GraphQL mutation"),Ot("pr edit","graphql","graphql","gh edits with GraphQL mutations"),Ot("pr ready","graphql","graphql","marking ready-for-review is a GraphQL mutation"),Ot("pr update-branch","rest","rest","gh PUTs `repos/{o}/{r}/pulls/{n}/update-branch`, a REST request"),Ot("label create","rest","rest","gh POSTs `repos/{o}/{r}/labels`, a REST request")],kA=new Map(rb.map(e=>[e.key,e]));function nb(e){let t=[],r=0;for(;r<e.length&&e[r].startsWith("-");)r+=e[r]==="-R"||e[r]==="--repo"?2:1;for(;r<e.length&&!e[r].startsWith("-")&&t.length<2;)t.push(e[r]),r+=1;return t}function Cc(e){let t=nb(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 Da=class extends Error{name="UnclassifiedGithubOperationError";operation;args;constructor(t){let r=Cc(t);super(`unclassified GitHub operation ${JSON.stringify(r||"(empty argv)")}: add an entry to GITHUB_OPERATIONS in packages/github/surface.ts stating its cardinality. Defaulting to GraphQL is what sent every single-object poll to the node-point pool (ADR 0132 decision 4).`),this.operation=r,this.args=[...t]}};function ob(e){return kA.get(Cc(e))??null}function sb(e){let t=ob(e);if(!t)throw new Da(e);return t}function Dc(e){return sb(e).surface}import{appendFile as RA,mkdir as wA,readFile as _A}from"node:fs/promises";import{dirname as xA}from"node:path";function Oa(e){let t=e.now??(()=>new Date().toISOString()),r=Promise.resolve();return{record(n){let o=EA(n.operation,n.cost,n.observedAt??t(),n.actor),s=bt().push(SA(o));return r=r.then(async()=>{await wA(xA(e.path),{recursive:!0}),await RA(e.path,s,"utf8")}),r},async report(n){await r;let o=Oc(n.from,"report window start"),s=Oc(n.to,"report window end");if(s<=o)throw new Error("GitHub attribution report window end must be after its start");let i=await vA(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 EA(e,t,r,n){if(Oc(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 vA(e){let t;try{t=await _A(e,"utf8")}catch(s){if(AA(s)&&s.code==="ENOENT")return{observations:[],unreadable:0};throw s}let r=[],n=0,o=t.split(`
|
|
66
|
-
`);for(let s=0;s<o.length;s+=1){let i=o[s];if(i.trim()==="")continue;let a=o[s+1];if(!i.startsWith("[]{")||a===void 0||a.trim()===""){n+=1;continue}let l;try{l=
|
|
64
|
+
`).filter(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=vr(`${i}
|
|
67
67
|
${a}
|
|
68
|
-
`)[0]}catch{n+=1,s+=1;continue}if(!
|
|
68
|
+
`)[0]}catch{n+=1,s+=1;continue}if(!LA(l)){n+=1,s+=1;continue}r.push(l),s+=1}return{observations:r,unreadable:n}}function MA(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 LA(e){return jA(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 Fc(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 jA(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function $A(e){return e instanceof Error&&"code"in e}var ib=hd(Lc(),1);var Vr=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 BA="0.0.0-development";function NA(e){return e.request!==void 0}async function sb(e,t,r,n){if(!NA(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 GA(e,t,r,n){let o=new ib.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(WA.bind(null,e,t,r),n)}async function WA(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 Vr(o.data.errors[0].message,500,{request:n,response:o});return sb(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",sb.bind(null,r,n)),e.hook.wrap("request",GA.bind(null,r,n))),n}jc.VERSION=BA;var lb=hd(Lc(),1),HA="0.0.0-development",$c=()=>Promise.resolve();function UA(e,t,r){return e.retryLimiter.schedule(qA,e,t,r)}async function qA(e,t,r){let{pathname:n}=new URL(r.url,"http://github.test"),o=KA(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,$c),s&&e.triggersNotification(n)&&await e.notifications.key(e.id).schedule(d,$c),i&&await e.search.key(e.id).schedule(d,$c);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 KA(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 VA=["/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 zA(e){let r=`^(?:${e.map(n=>n.split("/").map(o=>o.startsWith("{")?"(?:.+?)":o).join("/")).map(n=>`(?:${n})`).join("|")})[^/]*$`;return new RegExp(r,"i")}var ab=zA(VA),db=ab.test.bind(ab),ar={},JA=function(e,t){ar.global=new e.Group({id:"octokit-global",maxConcurrent:10,...t}),ar.auth=new e.Group({id:"octokit-auth",maxConcurrent:1,...t}),ar.search=new e.Group({id:"octokit-search",maxConcurrent:1,minTime:2e3,...t}),ar.write=new e.Group({id:"octokit-write",maxConcurrent:1,minTime:1e3,...t}),ar.notifications=new e.Group({id:"octokit-notifications",maxConcurrent:1,minTime:3e3,...t})};function Ca(e,t){let{enabled:r=!0,Bottleneck:n=lb.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:db,fallbackSecondaryRateRetryAfter:60,retryAfterBaseValue:1e3,id:o},t.throttle);if(typeof l.onSecondaryRateLimit!="function"||typeof l.onRateLimit!="function")throw new Error(`octokit/plugin-throttling error:
|
|
69
69
|
You must pass the onSecondaryRateLimit and onRateLimit error handlers.
|
|
70
70
|
See https://octokit.github.io/rest.js/#throttling
|
|
71
71
|
|
|
@@ -75,36 +75,36 @@ ${a}
|
|
|
75
75
|
onRateLimit: (retryAfter, options) => {/* ... */}
|
|
76
76
|
}
|
|
77
77
|
})
|
|
78
|
-
`);let d=!1,c=()=>{if(d)return;d=!0,
|
|
79
|
-
`+n.repeat(u));let m=f.val[f.index],w=i(f.val,String(f.index),m);if(
|
|
80
|
-
`+n.repeat(u)+gn(w)+": "):c.push(gn(w)+":");let M=
|
|
81
|
-
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},
|
|
78
|
+
`);let d=!1,c=()=>{if(d)return;d=!0,ar.global==null&&JA(n,a),l.global=l.global??ar.global,l.auth=l.auth??ar.auth,l.search=l.search??ar.search,l.write=l.write??ar.write,l.notifications=l.notifications??ar.notifications,l.retryLimiter=l.retryLimiter??new n;let u={},p=new n.Events(u);u.on("secondary-limit",l.onSecondaryRateLimit),u.on("rate-limit",l.onRateLimit),u.on("error",g=>e.log.warn("Error in throttling-plugin limit handler",g)),l.retryLimiter.on("failed",async function(g,f){let[y,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"])||y.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*y.retryAfterBaseValue})};return e.hook.wrap("request",(u,p)=>(c(),UA(l,u,p))),{}}Ca.VERSION=HA;Ca.triggersNotification=db;function fn(){return typeof navigator=="object"&&"userAgent"in navigator?navigator.userAgent:typeof process=="object"&&process.version!==void 0?`Node.js/${process.version.substr(1)} (${process.platform}; ${process.arch})`:"<environment undetectable>"}function Da(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)=>Da.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 cb(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 ub(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 pb=Function.bind,fb=pb.bind(pb);function gb(e,t,r){let n=fb(ub,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]=fb(cb,null).apply(null,s)})}function YA(){let e=Symbol("Singular"),t={registry:{}},r=Da.bind(null,t,e);return gb(r,t,e),r}function QA(){let e={registry:{}},t=Da.bind(null,e);return gb(t,e),t}var mb={Singular:YA,Collection:QA};var XA="0.0.0-development",ZA=`octokit-endpoint.js/${XA} ${fn()}`,eC={method:"GET",baseUrl:"https://api.github.com",headers:{accept:"application/vnd.github.v3+json","user-agent":ZA},mediaType:{format:""}};function tC(e){return e?Object.keys(e).reduce((t,r)=>(t[r.toLowerCase()]=e[r],t),{}):{}}function rC(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 yb(e,t){let r=Object.assign({},e);return Object.keys(t).forEach(n=>{rC(t[n])?n in e?r[n]=yb(e[n],t[n]):Object.assign(r,{[n]:t[n]}):Object.assign(r,{[n]:t[n]})}),r}function hb(e){for(let t in e)e[t]===void 0&&delete e[t];return e}function Nc(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=tC(r.headers),hb(r),hb(r.headers);let n=yb(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 nC(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 oC=/\{[^{}}]+\}/g;function sC(e){return e.replace(/(?:^\W+)|(?:(?<!\W)\W+$)/g,"").split(/,/)}function iC(e){let t=e.match(oC);return t?t.map(sC).reduce((r,n)=>r.concat(n),[]):[]}function bb(e,t){let r={__proto__:null};for(let n of Object.keys(e))t.indexOf(n)===-1&&(r[n]=e[n]);return r}function kb(e){return e.split(/(%[0-9A-Fa-f]{2})/g).map(function(t){return/%[0-9A-Fa-f]/.test(t)||(t=encodeURI(t).replace(/%5B/g,"[").replace(/%5D/g,"]")),t}).join("")}function Mo(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(t){return"%"+t.charCodeAt(0).toString(16).toUpperCase()})}function Ns(e,t,r){return t=e==="+"||e==="#"?kb(t):Mo(t),r?Mo(r)+"="+t:t}function Io(e){return e!=null}function Bc(e){return e===";"||e==="&"||e==="?"}function aC(e,t,r,n){var o=e[r],s=[];if(Io(o)&&o!=="")if(typeof o=="string"||typeof o=="number"||typeof o=="bigint"||typeof o=="boolean")o=o.toString(),n&&n!=="*"&&(o=o.substring(0,parseInt(n,10))),s.push(Ns(t,o,Bc(t)?r:""));else if(n==="*")Array.isArray(o)?o.filter(Io).forEach(function(i){s.push(Ns(t,i,Bc(t)?r:""))}):Object.keys(o).forEach(function(i){Io(o[i])&&s.push(Ns(t,o[i],i))});else{let i=[];Array.isArray(o)?o.filter(Io).forEach(function(a){i.push(Ns(t,a))}):Object.keys(o).forEach(function(a){Io(o[a])&&(i.push(Mo(a)),i.push(Ns(t,o[a].toString())))}),Bc(t)?s.push(Mo(r)+"="+i.join(",")):i.length!==0&&s.push(i.join(","))}else t===";"?Io(o)&&s.push(Mo(r)):o===""&&(t==="&"||t==="?")?s.push(Mo(r)+"="):o===""&&s.push("");return s}function lC(e){return{expand:dC.bind(null,e)}}function dC(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(aC(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 kb(s)}),e==="/"?e:e.replace(/\/$/,"")}function Rb(e){let t=e.method.toUpperCase(),r=(e.url||"/").replace(/:([a-z]\w+)/g,"{$1}"),n=Object.assign({},e.headers),o,s=bb(e,["method","baseUrl","url","headers","request","mediaType"]),i=iC(r);r=lC(r).expand(s),/^http/.test(r)||(r=e.baseUrl+r);let a=Object.keys(e).filter(c=>i.includes(c)).concat("baseUrl"),l=bb(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=nC(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 cC(e,t,r){return Rb(Nc(e,t,r))}function wb(e,t){let r=Nc(e,t),n=cC.bind(null,r);return Object.assign(n,{DEFAULTS:r,defaults:wb.bind(null,r),merge:Nc.bind(null,r),parse:Rb})}var _b=wb(null,eC);var Nb=hd(Ab(),1);var RC=/^-?\d+$/,Ia=/^-?\d+n+$/,gn=JSON.stringify,Uc=JSON.parse,Ib=/^-?\d+n$/,Cb=/([\[:])?"(-?\d+)n"($|\s*[,\}\]])/g,Db=/([\[:])?("-?\d+n+)n("$|"\s*[,\}\]])/g,qc=e=>e===void 0||typeof e=="function"||typeof e=="symbol",Kc=e=>e!==null&&typeof e=="object"&&e.constructor&&e.constructor.name==="RawJSON",wC=(e,t,r)=>{let n="";typeof r=="number"?n=" ".repeat(Math.min(10,Math.max(0,Math.floor(r)))):typeof r=="string"&&(n=r.slice(0,10));let o=typeof t=="function",s=Array.isArray(t)?new Set(t.map(String)):null,i=(f,y,m)=>(m!==null&&typeof m=="object"&&typeof m.toJSON=="function"&&(m=m.toJSON(y)),typeof m=="string"&&Ia.test(m)?m+"n":typeof m=="bigint"?"rawJSON"in JSON?JSON.rawJSON(m.toString()):m.toString()+"n":(o&&(m=t.call(f,y,m)),m!==null&&typeof m=="object"&&(m instanceof Number||m instanceof String||m instanceof Boolean)&&(m=m.valueOf()),m)),a=i({"":e},"",e);if(qc(a))return;let l=a===null||typeof a!="object",d=Kc(a);if(l||d)return gn(a);let c=[],u=0,p=[{parent:{"":a},key:"",val:a,isArray:Array.isArray(a),keys:Array.isArray(a)?null:Object.keys(a),index:0,first:!0}],g=new WeakSet([a]);for(;p.length>0;){let f=p[p.length-1];f.index===0&&(c.push(f.isArray?"[":"{"),u++);let y=!1;if(f.isArray)if(f.index<f.val.length){f.first||c.push(","),n&&c.push(`
|
|
79
|
+
`+n.repeat(u));let m=f.val[f.index],w=i(f.val,String(f.index),m);if(qc(w))c.push("null"),f.first=!1,f.index++;else{let T=w!==null&&typeof w=="object",B=Kc(w);if(T&&!B){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(gn(w)),f.first=!1,f.index++}}else y=!0;else{for(;f.index<f.keys.length;){let w=f.keys[f.index++];if(s&&!s.has(w))continue;let B=f.val[w],C=i(f.val,w,B);if(qc(C))continue;f.first||c.push(","),n?c.push(`
|
|
80
|
+
`+n.repeat(u)+gn(w)+": "):c.push(gn(w)+":");let M=C!==null&&typeof C=="object",N=Kc(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(gn(C)),f.first=!1}f.index>=f.keys.length&&p[p.length-1]===f&&(y=!0)}y&&(u--,!f.first&&n&&c.push(`
|
|
81
|
+
`+n.repeat(u)),c.push(f.isArray?"]":"}"),g.delete(f.val),p.pop())}return c.join("")},Mb=(e,t,r)=>{try{return"rawJSON"in JSON?gn(e,(a,l)=>typeof l=="bigint"?JSON.rawJSON(l.toString()):typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r):e?gn(e,(a,l)=>typeof l=="string"&&Ia.test(l)||typeof l=="bigint"?l.toString()+"n":typeof t=="function"?t(a,l):(Array.isArray(t)&&t.includes(a),l),r).replace(Cb,"$1$2$3").replace(Db,"$1$2$3"):gn(e,t,r)}catch(n){if(n instanceof RangeError){let o=wC(e,t,r);return o===void 0?void 0:"rawJSON"in JSON?o:o.replace(Cb,"$1$2$3").replace(Db,"$1$2$3")}throw n}},Fa=new Map,_C=()=>{let e=JSON.parse.toString();if(Fa.has(e))return Fa.get(e);try{let t=JSON.parse("1",(r,n,o)=>!!o?.source&&o.source==="1");return Fa.set(e,t),t}catch{return Fa.set(e,!1),!1}},xC=(e,t,r,n)=>typeof t=="string"&&Ib.test(t)?BigInt(t.slice(0,-1)):typeof t=="string"&&Ia.test(t)?t.slice(0,-1):typeof n=="function"?n(e,t,r):t,EC=(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&&RC.test(o.source);return a&&l?BigInt(o.source):typeof t=="function"?t(r,n,o):n}),Lb=Number.MAX_SAFE_INTEGER.toString(),Ob=Lb.length,vC=/"(?:\\.|[^"])*"|-?(0|[1-9][0-9]*)(\.[0-9]+)?([eE][+-]?[0-9]+)?/g,SC=/^"-?\d+n+"$/,TC=(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"&&(Ib.test(a)?a=BigInt(a.slice(0,-1)):Ia.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[""]},Fb=e=>e.replace(vC,(t,r,n,o)=>{let s=t[0]==='"';if(s&&SC.test(t))return t.substring(0,t.length-1)+'n"';let a=n||o,l=r&&(r.length<Ob||r.length===Ob&&r<=Lb);return s||a||l?t:'"'+t+'n"'}),jb=(e,t)=>{if(!e)return Uc(e,t);try{if(_C())return EC(e,t);let r=Fb(e);return Uc(r,(n,o,s)=>xC(n,o,s,t))}catch(r){if(r instanceof RangeError){let n=Fb(e),o=Uc(n);return TC(o,t)}throw r}};var PC="10.0.13",AC={headers:{"user-agent":`octokit-request.js/${PC} ${fn()}`}};function CC(e){if(typeof e!="object"||e===null||Object.prototype.toString.call(e)!=="[object Object]")return!1;let t=Object.getPrototypeOf(e);if(t===null)return!0;let r=Object.prototype.hasOwnProperty.call(t,"constructor")&&t.constructor;return typeof r=="function"&&r instanceof r&&Function.prototype.call(r)===Function.prototype.call(e)}var $b=()=>"";async function Bb(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=CC(e.body)||Array.isArray(e.body)?Mb(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 Vr(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 Vr(i.statusText,a,{response:c,request:e})}if(a===304)throw c.data=await Vc(i),new Vr("Not modified",a,{response:c,request:e});if(a>=400)throw c.data=await Vc(i),new Vr(OC(c.data),a,{response:c,request:e});return c.data=n?await Vc(i):i.body,c}async function Vc(e){let t=e.headers.get("content-type");if(!t)return e.text().catch($b);let r=(0,Nb.parse)(t);if(DC(r)){let n="";try{return n=await e.text(),jb(n)}catch{return n}}else return r.type.startsWith("text/")||r.parameters.charset?.toLowerCase()==="utf-8"&&r.type!=="application/octet-stream"?e.text().catch($b):e.arrayBuffer().catch(()=>new ArrayBuffer(0))}function DC(e){return e.type==="application/json"||e.type==="application/scim+json"}function OC(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 zc(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 Bb(r.parse(i));let a=(l,d)=>Bb(r.parse(r.merge(l,d)));return Object.assign(a,{endpoint:r,defaults:zc.bind(null,r)}),i.request.hook(a,i)},{endpoint:r,defaults:zc.bind(null,r)})}var Gs=zc(_b,AC);var FC="0.0.0-development";function IC(e){return`Request failed due to following response errors:
|
|
82
82
|
`+e.errors.map(t=>` - ${t.message}`).join(`
|
|
83
|
-
`)}var SC=class extends Error{constructor(e,t,r){super(vC(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},TC=["method","baseUrl","url","headers","request","query","mediaType","operationName"],PC=["query","method","url"],Wb=/\/api\/v3\/?$/;function AC(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(PC.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)=>TC.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 Wb.test(s)&&(o.url=s.replace(Wb,"/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 SC(o,a,i.data)}return i.data.data})}function zc(e,t){let r=e.defaults(t);return Object.assign((o,s)=>AC(r,o,s),{defaults:zc.bind(null,r),endpoint:r.endpoint})}var H5=zc(Ws,{headers:{"user-agent":`octokit-graphql.js/${EC} ${fn()}`},method:"POST",url:"/graphql"});function Hb(e){return zc(e,{method:"POST",url:"/graphql"})}var Jc="(?:[a-zA-Z0-9_-]+)",Ub="\\.",qb=new RegExp(`^${Jc}${Ub}${Jc}${Ub}${Jc}$`),CC=qb.test.bind(qb);async function DC(e){let t=CC(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 OC(e){return e.split(/\./).length===3?`bearer ${e}`:`token ${e}`}async function FC(e,t,r,n){let o=t.endpoint.merge(r,n);return o.headers.authorization=OC(e),t(o)}var Kb=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(DC.bind(null,t),{hook:FC.bind(null,t)})};var Yc="7.0.7";var Vb=()=>{},IC=console.warn.bind(console),MC=console.error.bind(console);function LC(e={}){return typeof e.debug!="function"&&(e.debug=Vb),typeof e.info!="function"&&(e.info=Vb),typeof e.warn!="function"&&(e.warn=IC),typeof e.error!="function"&&(e.error=MC),e}var zb=`octokit-core.js/${Yc} ${fn()}`,Ba=class{static VERSION=Yc;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 hb.Collection,n={baseUrl:Ws.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} ${zb}`:zb,t.baseUrl&&(n.baseUrl=t.baseUrl),t.previews&&(n.mediaType.previews=t.previews),t.timeZone&&(n.headers["time-zone"]=t.timeZone),this.request=Ws.defaults(n),this.graphql=Hb(this.request).defaults(n),this.log=LC(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=Kb(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 Jb="6.0.0";function Qc(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})})}Qc.VERSION=Jb;var jC="0.0.0-development";function BC(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 Xc(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=BC(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 Yb(e,t,r,n){return typeof r=="function"&&(n=r,r=void 0),Qb(e,[],Xc(e,t,r)[Symbol.asyncIterator](),n)}function Qb(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:Qb(e,t,r,n)})}var iW=Object.assign(Yb,{iterator:Xc});function Zc(e){return{paginate:Object.assign(Yb.bind(null,e),{iterator:Xc.bind(null,e)})}}Zc.VERSION=jC;var eu="17.0.0";var $C={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"]}},Xb=$C;var Hn=new Map;for(let[e,t]of Object.entries(Xb))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);Hn.has(e)||Hn.set(e,new Map),Hn.get(e).set(r,{scope:e,methodName:r,endpointDefaults:d,decorations:i})}var NC={has({scope:e},t){return Hn.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[...Hn.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=Hn.get(t).get(n);if(!o)return;let{endpointDefaults:s,decorations:i}=o;return i?r[n]=GC(e,t,n,s,i):r[n]=e.request.defaults(s),r[n]}};function tu(e){let t={};for(let r of Hn.keys())t[r]=new Proxy({octokit:e,scope:r,cache:{}},NC);return t}function GC(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 WC(e){return{rest:tu(e)}}WC.VERSION=eu;function ru(e){let t=tu(e);return{...t,rest:t}}ru.VERSION=eu;var Zb="22.0.1";var ey=Ba.plugin(Qc,ru,Zc).defaults({userAgent:`octokit-rest.js/${Zb}`});function HC(e){return`r${e}`}function ty(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=HC(i);return r[l]=s,[` ${l}: repository(owner: ${JSON.stringify(s.owner)}, name: ${JSON.stringify(s.repo)}) {`,` object: ${n}(number: ${s.number}) { ${a} }`," }"].join(`
|
|
83
|
+
`)}var 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
84
|
`)})," rateLimit { cost }","}"].join(`
|
|
85
|
-
`),aliases:r}}function ry(e,t){let r=t!==null&&typeof t=="object"?t:{},n=r.data??r,o=n!==null&&typeof n=="object"?n:{};return Object.entries(e.aliases).map(([s,i])=>{let a=o[s];if(a===null||typeof a!="object")return{read:i,value:null};let l=a.object;return{read:i,value:l!==null&&typeof l=="object"&&!Array.isArray(l)?l:null}})}var UC=ey.plugin(Lc,Fa);function ny(){let e=new Map;return{get:t=>e.get(t),set:(t,r)=>e.set(t,r)}}function oy(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 jo=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 nu(e){let t=e.etags??ny(),r=new UC({auth:e.token,log:{debug:()=>{},info:()=>{},warn:()=>{},error:()=>{}},...e.baseUrl?{baseUrl:e.baseUrl}:{},...e.fetchImpl?{request:{fetch:e.fetchImpl}}:{},retry:{doNotRetry:[304,403,429],...e.retryCount===void 0?{}:{retries:e.retryCount}},throttle:e.throttle===!1?{enabled:!1}:{onRateLimit:()=>!1,onSecondaryRateLimit:()=>!1}}),n=async c=>{let u=t.get(c.cacheKey),p={...c.parameters??{}},g=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=$a(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(Hs(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=sy(f),m={...u.headers,...y},w=$a(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 Hs(f)===401?new jo({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=ty(c.map(({input:m})=>m)),p=await r.graphql(u.query),g=ry(u,p),f=KC(p),y=c[0].input;await e.attribution?.record({operation:{key:y.operation.key,budget:"graphql"},cost:f,actor:VC(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=Hs(u)===401?new jo({cause:u}):u;c.forEach(g=>g.reject(p))}},l=async()=>{let c=null;try{c=await e.balance?.()??null}catch{}let u=oy(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,!qC(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 Hs(g)===401?new jo({cause:g}):g}}}}function qC(e){let t=$a(e,"link");return t!==void 0&&/(?:^|,)\s*<[^>]+>;\s*rel="next"(?:\s*;|\s*(?:,|$))/i.test(t)}function Us(e){let t=Hs(e),r=sy(e);return t===429||t===403&&$a(r,"x-ratelimit-remaining")==="0"||e instanceof Error&&/secondary rate|rate limit/i.test(e.message)}function Hs(e){if(mn(e))return typeof e.status=="number"?e.status:void 0}function sy(e){return!mn(e)||!mn(e.response)||!mn(e.response.headers)?{}:e.response.headers}function $a(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 KC(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 VC(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 ay="rate_limit",ly={rest:"core",graphql:"graphql",search:"search"},Jr=["rest","graphql","search"];function Ha(e,t){return{version:1,origin:"asked",outcome:"unanswered",source:"GET /rate_limit",asked_at:e,request_count:0,pools:{rest:null,graphql:null,search:null},unreported_pools:[...Jr],detail:t??"no balance has been asked for yet, so none is known"}}var su=15e3,Bo=.15,Ga=[{at_or_below_fraction:0,every_ms:su,why:"spent: the only event that still matters is the reset, so watch for it"},{at_or_below_fraction:Bo,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 PW=60*6e4,ou=2;function dy(e,t){let r=iy(e),n=iy(r.resources),o={rest:null,graphql:null,search:null},s=[];for(let a of Jr){let l=ly[a],d=n[l],c=YC(a,l,d);o[a]=c,c==null&&s.push(a)}let i=Jr.length-s.length;return{version:1,origin:"asked",outcome:i>0?"asked":"unanswered",source:"GET /rate_limit",asked_at:t.askedAt,request_count:1,pools:o,unreported_pools:s,detail:i>0?`the token's own answer for ${i} of ${Jr.length} pools`:"the answer carried no pool this repo budgets, so nothing about the token is known"}}async function iu(e){try{let t=await e.transport();return dy(t,{askedAt:e.now})}catch(t){let r=t instanceof Error?t.message:String(t);return{...Ha(e.now,`the balance ask failed before the token answered: ${r}`),request_count:1}}}function au(e){let t=null;for(let r of Jr){let n=e.pools[r];n!=null&&(t==null||n.fraction<t.fraction)&&(t=n)}return t}function Ua(e,t){let r=au(e);if(r==null)return Wa(Bo).every_ms;let n=Wa(r.fraction);if(r.remaining>0)return n.every_ms;let o=uy(t.now,r.reset_at);return o==null?n.every_ms:Math.max(su,Math.min(n.every_ms,o))}function lu(e,t=Bo){return Math.ceil(e.limit*t)}function cy(e,t,r=Bo){let n=e.pools[t];return n==null?"unknown":n.remaining<=0?"spent":n.remaining<lu(n,r)?"reserved":"open"}function du(e){let t=e.reservedFraction??Bo,r=e.balance;if(r==null)return{version:1,origin:"asked",outcome:"unanswered",asked_at:null,age_ms:null,threshold_ms:Wa(t).every_ms*ou,stale:!1,posture:"unknown",reserved_fraction:t,next_poll_ms:Wa(t).every_ms,pools:[],unreported_pools:[...Jr],reason:"this daemon has asked for no balance, so the token's budget is unknown rather than full"};let n=Ua(r,{now:e.now}),o=e.stalenessMs??n*ou,s=uy(r.asked_at,e.now),i=r.outcome==="asked"&&(s==null||s>o),a=Jr.map(c=>r.pools[c]).filter(c=>c!=null),l=JC(r,t),d=au(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`:zC(l,d,r,t)}}function cu(e){if(!pu(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 zC(e,t,r,n){if(t==null)return r.detail;let o=lu(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 JC(e,t){let r="unknown";for(let n of Jr){if(e.pools[n]==null)continue;let o=cy(e,n,t);if(o==="spent")return"spent";(o==="reserved"||r==="unknown")&&(r=o)}return r}function Wa(e){for(let t of Ga)if(e<=t.at_or_below_fraction)return t;return Ga[Ga.length-1]}function YC(e,t,r){if(!pu(r))return null;let n=Na(r.limit),o=Na(r.remaining),s=Na(r.used),i=Na(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 uu(e){let t=e.origin??"https://api.github.com",r=e.fetchImpl??fetch;return async()=>{let n=await r(`${t}/${ay}`,{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 uy(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 Na(e){return typeof e=="number"&&Number.isFinite(e)?Math.trunc(e):null}function iy(e){return pu(e)?e:{}}function pu(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}import{execFileSync as QC}from"node:child_process";import{existsSync as XC,readFileSync as qa,readdirSync as ZC}from"node:fs";import{dirname as eD,join as Un}from"node:path";function qs(e){let t=Ms(e),r=[["MemoryMax",t.memory_max],["MemoryHigh",t.memory_high]];for(let[n,o]of r){if(o==null)continue;let s=Oo(o);return s==null?null:{name:n,declared:o,bytes:s}}return null}function py(e){let t=[],r=[];for(let n of e.workers){let o=qs(n);if(o==null){r.push({worker_id:n.worker_id,reason:(Ms(n).memory_max??Ms(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(tD(n,o,s))}}return{terminations:t,unenforceable:r}}function tD(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 fy(e,t={}){let r=t.platform??process.platform,n={rss:{},cpu_seconds:{},sources:{}};if(e.length===0)return n;let o={},s={},i={},a=oD(e,r,t);for(let[u,p]of a){let g=aD(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=cD(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 nD="/sys/fs/cgroup";function oD(e,t,r){let n=new Map;if(!(r.cgroupRoot!=null)&&t!=="linux")return n;let s=r.cgroupRoot??nD,i=e.filter(l=>l.unit!=null&&l.unit!=="");if(i.length===0)return n;let a=sD(s,r);for(let l of i)for(let d of a){let c=Un(d,l.unit);if(XC(Un(c,"memory.current"))){n.set(l.worker_id,c);break}}return n}function sD(e,t){let r=t.selfCgroupPath??iD(),n=[],o=a=>{n.includes(a)||n.push(a)},s=r;for(;s!=null&&s!==""&&s!=="/"&&s!==".";){o(Un(e,s));let a=eD(s);if(a===s)break;s=a}o(e);let i=t.uid??process.getuid?.();return i!=null&&o(Un(e,"user.slice",`user-${i}.slice`,`user@${i}.service`,"app.slice")),n}function iD(){try{for(let e of qa("/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 wD(e,t,r){let n=$o(t),o=$o(n.data),s=Array.isArray(n.errors)?n.errors.map($o):[],i=AD(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=>by(f.path,l)||by(f.path,d));if(Ka(p)){let f=yy(p.open_pull_requests),y=yy(p.open_issues),m=CD(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||xy(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: ${Ks(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 _D(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 Ry(e){if(e.projects.length===0)return _D(e.now);if(gu(e.projects,e.hostTokenRef),e.transport.conditionalList)return await ED(e);let t=ky(e.projects,{now:e.now,closedWindowMs:e.closedWindowMs});try{let r=await e.transport(t.query);return wD(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 xD={key:"redskilled repository activity poll",budget:"rest"};async function ED(e){_y(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=ky(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:xD});i+=m.requestCount;let w=g==="open-prs"?m.data:m.data.filter(T=>!Ka(T.pull_request));g==="open-issues"&&l.queue_labels!=null&&(p=SD(w,l.queue_labels)),u.push(g==="recently-closed"?w.filter(T=>Ks(T.closed_at)>=n.closed_since).length:w.length),a=my(a,PD(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=Us(g);a=my(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 wy(e){let t=e.endpoint==null?void 0:vD(e.endpoint),r=nu({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 vD(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 SD(e,t){let r=(n,o)=>Array.isArray(n.labels)&&n.labels.some(s=>TD(s)===o);return{ready_queue:e.filter(n=>r(n,t.ready)).length,human_queue:e.filter(n=>r(n,t.human)).length}}function TD(e){return typeof e=="string"?e:Ka(e)?Ks(e.name):""}function PD(e){let t=hy(e,"x-ratelimit-remaining"),r=hy(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0,point_cost:null}}function my(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 hy(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 _y(e){if(e.length===0)throw new Error("redskilled activity fetch needs at least one registered project");if(e.length>gy)throw new Error(`redskilled activity fetch spans at most ${gy} 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 AD(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(xy),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 xy(e){if(e==null)return!1;let t=Ks(e.type),r=Ks(e.message);return t==="RATE_LIMITED"||/rate limit/i.test(r)}function by(e,t){return Array.isArray(e)&&e.includes(t)}function yy(e){let t=$o(e);return Number.isInteger(t.totalCount)?t.totalCount:null}function CD(e){let t=$o(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function $o(e){return Ka(e)?e:{}}function Ka(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Ks(e){return typeof e=="string"?e:""}var mu=2,hu=mu*No;function vy(e){let t=e.stalenessMs??hu,r=e.activity;if(r==null)return{version:1,fetched_at:null,age_ms:null,threshold_ms:t,stale:!1,request_count:0,rate_limit:{remaining:null,reset_at:null,exhausted:!1,point_cost:null},projects:[],reason:"the daemon polls no repository, so there are no counts to age"};let n=Date.parse(e.now),o=Date.parse(r.fetched_at),s=Number.isFinite(n)&&Number.isFinite(o)?Math.max(0,n-o):null,i=s==null||s>t;return{version:1,fetched_at:r.fetched_at,age_ms:s,threshold_ms:t,stale:r.projects.length>0&&i,request_count:r.request_count,rate_limit:r.rate_limit,projects:r.projects.map(a=>({...a,fetched_at:r.fetched_at,age_ms:s,stale:i})),reason:r.projects.length===0?"the daemon polls no repository, so there are no counts to age":s==null?"these counts carry no readable instant, so they cannot be presented as current":i?`these counts are ${s}ms old, past the ${t}ms window`:`fetched ${s}ms ago, within the ${t}ms window`}}function Sy(e){if(!Ey(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)&&Ey(t.rate_limit)&&Array.isArray(t.projects)&&typeof t.reason=="string"}function Ey(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}var bu=["open_pull_requests","open_issues","ready_queue","human_queue"],Ty="this daemon polls no repository, so there are no remote counters to date";function Py(e){let t=e.stalenessMs??hu,r=e.activity;if(r==null||r.projects.length===0)return{version:1,threshold_ms:t,projects:[],reason:Ty};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=>DD(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 DD(e,t){let r={};for(let n of bu)r[n]=FD(n,OD(e,n),e,t);return{project_label:e.project_label,repository:e.repository,outcome:e.outcome,counters:r}}function OD(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 FD(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 yu(e){if(!Va(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(ID)}function ID(e){if(!Va(e))return!1;let t=e;if(typeof t.project_label!="string"||typeof t.repository!="string"||typeof t.outcome!="string"||!Va(t.counters))return!1;let r=t.counters;return bu.every(n=>MD(r[n]))}function MD(e){if(!Va(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 Va(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Cy(e,t){let r=[...e].sort((i,a)=>(Vs(a.ts)??0)-(Vs(i.ts)??0)),n=r.slice(0,Math.max(0,Math.floor(t))).map(Ay),o=r.filter(i=>i.observed_exit===!0||i.sender_class!=="unknown"&&i.confidence!=="none"),s=LD(r);return{count:r.length,sender_attributed_count:o.length,recent:n,latest:n[0]??null,latest_sender_attributed:o[0]==null?null:Ay(o[0]),reaped_at:n[0]?.ts??null,...s==null?{}:{boot_loop:s}}}function Ay(e){return{kind:e.kind,id:e.id,pid:e.pid,ts:e.ts,last_seen:e.last_seen,last_phase:e.last_phase,sender_class:e.sender_class,confidence:e.confidence,signal:e.signal,evidence:e.evidence[0]??null}}function LD(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===""||Vs(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=Vs(s.ts),a=Math.min(...o.map(d=>Vs(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 ku(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 Vs(e){let t=Date.parse(e);return Number.isFinite(t)?t:null}var Dy=["logs","vitals","display"];function Ru(e,t){if(t===void 0)return e;let r=Dy.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:jD,budget:{...o.budget,used_bytes:null,used_fraction:null}},...n("logs")?{}:{log:BD},...n("display")?{}:{display:null,display_published_at:null}})),withheld:r}}var jD={rss_bytes:null,sampled_at:null,age_ms:null,fresh:!1,rss_source:null},BD={last_line:null,published_at:null,source:null};var $D=3e4;function Fy(e){let t=e.stalenessMs??$D,r=wu(e.now),n=e.sampledAt==null?null:wu(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=>GD(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=wa(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:qD({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:UD(a),known_projects:HD(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:du({balance:e.githubBalance??null,now:e.now,...e.reservedFraction===void 0?{}:{reservedFraction:e.reservedFraction}}),repository_activity:vy({activity:e.repositoryActivity??null,now:e.now,stalenessMs:e.activityStalenessMs}),remote_counters:Py({activity:e.repositoryActivity??null,now:e.now,...e.activityStalenessMs===void 0?{}:{stalenessMs:e.activityStalenessMs}}),...e.deaths===void 0?{}:{deaths:Cy(e.deaths,e.recentDeathLimit??4)},engine:ND(e.hostState),...e.metrics===void 0?{}:{metrics:e.metrics}}}function ND(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 GD(e,t){let r=t.rss[e.worker_id],n=typeof r=="number"&&Number.isFinite(r)?r:null,o=qs(e),s=e.budget?.memory_max??e.budget?.memory_high??null,i=wu(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:WD(t.log),display:t.display?.display??null,display_published_at:t.display?.published_at??null}}function WD(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 HD(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 UD(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 qD(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 wu(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(KD))&&(t.stopped_projects===void 0||Array.isArray(t.stopped_projects)&&t.stopped_projects.every(VD))&&(t.orphaned_projects===void 0||Array.isArray(t.orphaned_projects)&&t.orphaned_projects.every(s=>typeof s=="string"))&&(t.repository_activity===void 0||Sy(t.repository_activity))&&(t.remote_counters===void 0||yu(t.remote_counters))&&(t.github_balance===void 0||cu(t.github_balance))&&(t.deaths===void 0||ku(t.deaths))&&(t.engine===void 0||zD(t.engine))&&(t.metrics===void 0||ih(t.metrics))}function KD(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 VD(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 zD(e){if(e===null||typeof e!="object"||Array.isArray(e))return!1;let t=e;return typeof t.running_version=="string"&&(t.published_version===null||typeof t.published_version=="string")}var Iy={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 My(e,t){let r=e.display?.started_at;if(r!=null&&r!==""){let n=Date.parse(r),o=Date.parse(t);if(Number.isFinite(n)&&Number.isFinite(o))return Math.max(0,o-n)}return e.uptime_ms}var yt=e=>`\x1B[${e}m`,zs=yt("48;2;114;47;55"),_u=yt("48;2;88;36;42"),hn=yt("38;2;255;255;255"),xu=yt("38;2;201;150;158"),Js=yt("38;2;255;214;214"),Ys=yt("39"),Bt=yt("38;2;224;138;148"),Eu=yt("38;2;240;200;120"),vu=yt("38;2;240;110;120"),Su=yt("38;2;255;214;214"),Tu=yt("38;2;146;84;94"),Pu=yt("38;2;255;95;95"),Cr=yt("49"),dr=yt("0"),Ja=yt("1"),Ya=yt("22");var JD=/\x1b\[[0-9;]*m/g,YD=/(\x1b\[[0-9;]*m)/,QD=/^\x1b\[[0-9;]*m$/;function qn(e){return e.replace(JD,"")}function XD(e){return e.slice(2,-1).split(";").every(r=>r===""||Number(r)===0)}function Xt(e){return[...qn(e)].length}function Qe(e,t){if(t<=0)return"";if(Xt(e)<=t)return e;if(t===1)return"\u2026";let r=t-1,n=0,o=!1,s="";for(let i of e.split(YD))if(i!==""){if(QD.test(i)){s+=i,o=!XD(i);continue}for(let a of i){if(n===r)return`${s}\u2026${o?dr:""}`;s+=a,n+=1}}return`${s}\u2026${o?dr:""}`}function Qs(e,t){return e+" ".repeat(Math.max(0,t-Xt(e)))}function Au(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 Xs(e){if(!Number.isFinite(e)||e<=0)return"0";let t=(r,n)=>{let o=(Math.round(r*10)/10).toFixed(1);return`${o.endsWith(".0")?o.slice(0,-2):o}${n}`};return e>=1e9?t(e/1e9,"B"):e>=1e6?t(e/1e6,"M"):e>=1e3?t(e/1e3,"k"):String(Math.round(e))}function bn(e){if(!Number.isFinite(e))return"\u2014";if(e>=10)return Xs(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 Dr(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 Ly=[{name:"open_pull_requests",key:"prs"},{name:"open_issues",key:"iss"},{name:"ready_queue",key:"rdy"},{name:"human_queue",key:"hmn"}];function Zs(e,t){let r=Qa(e,t),n=jy(e,t),o=[];for(let{name:s,key:i}of Ly){if(i==="iss"){let l=n?.counts?.recently_closed;l!=null&&o.push(`cpr=${l}`)}let a=eO(i,r?.counters[s],ZD(n,s));a!=null&&o.push(a)}return o}function Cu(e,t){let r=Qa(e,t),n=jy(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 Du(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 jy(e,t){return t==null?null:(e.repository_activity?.projects??[]).find(r=>r.project_label===t)??null}function ZD(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 eO(e,t,r){return t==null?r==null?null:`${e}=${r}`:t.value==null?null:`${e}=${t.value}${t.stale?`(${tO(t.age_ms)})`:""}`}function tO(e){return Dr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}var ei="!unregistered",Ou="!lapsed",ti="\u21E1",Or="\u2020",Wo="\u25D0",Ho="\u25EF",Fu="\u21B3",Iu="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 ri(e,t){return t==null?"unresolved":e.known_projects==null?"matched":e.known_projects.includes(t)?e.registered_projects==null||e.registered_projects.includes(t)?"matched":e.orphaned_projects?.includes(t)===!0?"orphaned":e.stopped_projects?.some(r=>r.project_label===t)===!0?"stopped":e.lapsed_projects?.some(r=>r.project_label===t)===!0?"lapsed":"name-only":"unregistered"}function Mu(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 Fr(...e){let t=e.filter(r=>r!=null&&r!=="").join(" \xB7 ");return t===""?"\u2014":t}function Lu(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(Za(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(Za(n.cells.iss,"iss=")),runner:Fr(Za(n.cells.run,"run=")),phase:Fr(n.cells.phase),progress:Fr(n.cells.bar),elapsed:Fr(n.cells.elapsed),eta:Za(Fr(n.cells.eta),"eta="),activity:Fr(n.cells.hb,t[o]?.log.last_line)}))}}var yn=["wid","run","org","iss","bar","phase","base","elapsed","eta","hb","loc","tks","ctx","tls","rsn","txt"],$t={mode:"local",project:null,maxWidth:200,maxRows:16,maxHeight:40,showDeathDetails:!1},rO=" ",By="\u2588",nO="\u25B6",oO="\u2717",sO="\u2591",iO=new Set(["gate","push-pr","merge","cascade"]),aO=new Set(["requeue"]),lO="repair";function ni(e){return e.display?.origin===lO}function qo(e,t=$t){let r=ri(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=wO(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(_O(s[m],i),t.maxWidth)})),l=Lu(a,o,t.maxWidth),d=cO(e,t,n,r),c=n.length-o.length,u=[d.line,...hO(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(...gO(e,t)),u.push(...fO(e,t));let p=Math.max(1,Math.floor(t.maxHeight??$t.maxHeight)),g=Math.max(0,u.length-p),f=g===0?u:p===1?[d.line]:[...u.slice(0,p-1),Qe(`\u2026 ${g+1} more row(s) \u2014 terminal height is ${p}`,t.maxWidth)];return{version:1,generated_at:e.generated_at,mode:t.mode,project:t.project,columns:yn,header:d,rows:a,table:l,lines:f,hidden_row_count:Math.max(0,c),stale:e.staleness.stale}}function tl(e,t,r){let n=e.display??Iy,o=ni(e),s=[n.runner,n.model==null?null:Au(n.model),n.effort].filter(l=>!!l).join(" "),i=n.phase!=null&&iO.has(n.phase),a=o||i||n.origin!=null&&aO.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:Ny(n),phase:[n.phase,n.step].filter(l=>!!l).join("\xB7"),base:e.base_commits_ahead==null?"":`base +${e.base_commits_ahead}`,elapsed:Dr(My(e,r)),eta:n.eta==null?"":`eta=${Dr(n.eta*1e3)}`,hb:dO(n,r)??`hb=${n.heartbeat??"?"}`,loc:a?"":RO(n.added,n.removed),tks:a||n.tokens==null?"":`tks=${Xs(n.tokens)}`,ctx:n.context==null?"":`ctx=${Xs(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 dO(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} ${Dr(Math.max(0,n-r))}`}function Ny(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 By.repeat(Math.floor(t));let o=e.failed?oO:nO;return`${By.repeat(n)}${o}${sO.repeat(Math.floor(t)-n-1)}`}function cO(e,t,r,n){let o=(e.repository_activity?.projects??[]).find(M=>M.project_label===t.project),s=Cu(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=kO(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=[uO(l??"host",c,d!=null&&d.current===!1?ti:"")];(n==="unregistered"||n==="name-only")&&g.push(ei),n==="lapsed"&&g.push(Ou);let f=p?.history_48h==null?null:mO(p.history_48h);f!=null&&g.push(Kn(f));let y=e.workers.filter(ni).length;if(y>0){let M=Math.max(0,e.host.worker_count-y);g.push(`${Kn(`workers=${M} coding +`)} ${zs}${hn}${y} repairing${Cr}${Bt}`)}else g.push(Kn(`wrk=${r.length}/${e.host.worker_count}`));let m=i.worker_ceiling==null?"slots=\u221E":`slots=${i.worker_count}/${i.worker_ceiling}`;g.push(Kn(`${m} reserve=${i.interactive_reservation} interactive`)),g.push(Kn(yO(i))),a!=null&&g.push(`${zs}${hn}${a}${Cr}${Bt}`);for(let M of Zs(e,t.project))g.push(Kn(M));s.stale&&!Du(e,t.project)&&g.push("!counts stale");let w=p==null?null:Gy(p.hour),T=w==null?null:Kn(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?`${Or}${u.count} ${u.latest.sender_class}`:`${Or}${u.count} boot-refused \xD7${M.count} in ${pO(M.span_ms)}`+(N==null?"":` \u2014 ${N}`))}if(e.staleness.stale){let M=e.staleness.age_ms;g.push(M==null?"!unmeasured":`!stale ${Math.round(M/1e3)}s`)}let $=`${g.join(" \xB7 ")}${dr}`,D=w!=null&&Xt($)>t.maxWidth?`${g.filter(M=>M!==T).join(" \xB7 ")}${dr}`:$;return{repo:l,project:t.project,project_match:n,version:c,engine:d,deaths:u,metrics:p,model:a,windows:i,counts:s,stale:e.staleness.stale,age_ms:e.staleness.age_ms,line:Qe(D,t.maxWidth)}}function uO(e,t,r){return`${_u}${hn}${Eu}\xBB${hn} ${Ja}${e}${Ya} ${xu}v${t}${r}${hn}${Cr}${Bt}`}function Kn(e){return e.replace(/(^|\s)([A-Za-z][A-Za-z0-9/]*=)([^\s]+)/g,(t,r,n,o)=>`${r}${Js}${n}${Ys}${o}${Bt}`)}function pO(e){return Dr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function Gy(e){let t=[];e.tokens_per_min.value!=null&&t.push(`tk/m=${bn(e.tokens_per_min.value)}`),e.tools_per_min.value!=null&&t.push(`tl/m=${bn(e.tools_per_min.value)}`),e.issues_per_hour.value!=null&&t.push(`iss/h=${bn(e.issues_per_hour.value)}`);let r=e.runner_share.shares[0];return r!=null&&t.push(`${r.key}=${Math.round(r.share*100)}%`),t.length===0?null:t.join(" ")}function fO(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 gO(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(`${Or} ${i} \xB7 use --verbose for receipts`,t.maxWidth)]}let n=r.recent.map(s=>Qe(`${Or} ${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 mO(e){let t=e.tokens_per_hour.current.value,r=e.tickets_per_hour.current.value,n=[];return t!=null&&n.push(`tk/h=${bn(t)} ${ju(e.tokens_per_hour.trend)}`.trim()),r!=null&&n.push(`Tickets/h=${bn(r)} ${ju(e.tickets_per_hour.trend)}`.trim()),n.length===0?null:n.join(" ")}function hO(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)]:[$y("tokens",r.history_48h.tokens_per_hour,t),$y("Tickets",r.history_48h.tickets_per_hour,t)]}var el=["\u2581","\u2582","\u2583","\u2584","\u2585","\u2586","\u2587","\u2588"];function $y(e,t,r){let n=e==="tokens"?"tokens":"Tickets",o=t.current.value,s=t.buckets.filter(d=>d.value==null),i=s[0]?.absent_reason??null,a=o==null?`now unavailable (${t.current.absent_reason??"no current sample"})`:`now=${bn(o)}/h ${ju(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 ${bO(t)} \xB7 ${a}${l}`,r.maxWidth)}function bO(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 ju(e){return e==="up"?"\u2191":e==="down"?"\u2193":e==="flat"?"\u2192":"?"}function yO(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 kO(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 RO(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 wO(e){let t=Object.fromEntries(yn.map(r=>[r,0]));for(let r of e)for(let n of yn)t[n]=Math.max(t[n],Xt(r[n]));return t}function _O(e,t){let r=yn.filter(o=>t[o]>0);if(r.length===0)return"";let n=r.map((o,s)=>rl(o,Qs(e[o],s===r.length-1?Xt(e[o]):t[o])));return`${Cr}${Bt}${n.join(rO)}${dr}`}function rl(e,t){if(e==="wid")return`${Ja}${t}${Ya}`;if(e==="org"&&t.trim()==="lane=repair"){let n=t.slice(t.trimEnd().length);return`${zs}${hn}${t.trimEnd()}${Cr}${Bt}${n}`}if(e==="bar")return t.replace(/█+/g,n=>`${vu}${n}`).replace("\u25B6",`${Su}\u25B6`).replace("\u2717",`${Pu}\u2717`).replace(/░+/g,n=>`${Tu}${n}`)+Bt;let r=t.indexOf("=");return r>0?`${Js}${t.slice(0,r+1)}${Ys}${t.slice(r+1)}${Bt}`:t}function $u(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 Bu(e,t){if(e===null||typeof e=="string"||typeof e=="boolean")return e;if(typeof e=="number"){if(!Number.isFinite(e))throw new TypeError("repair args must contain only finite JSON numbers");return e}if(t.has(e))throw new TypeError("repair args must not contain cycles");t.add(e);try{if(Array.isArray(e))return Object.freeze(e.map(n=>Bu(n,t)));let r={};for(let[n,o]of Object.entries(e))r[n]=Bu(o,t);return Object.freeze(r)}finally{t.delete(e)}}function xO(e){let t=Bu(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=xO(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=ri(e,t.project),n=Uo(e,t),o=Xa(e,t),s=AO(e,t.project,r),i=vO(e,t,n,r,s.prose),a=Mu({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:IO(i,EO(g,o),t.separator);if(l={detail:g,line:f},g==="workers"||Xt(f)<=t.maxWidth)break}let d=Qe(l.line,t.maxWidth),c=l.detail==="workers"?DO(n,t,e.generated_at):{lines:[],degraded:!1},u=l.detail==="workers"?n.flatMap((g,f)=>{let y=t.verbose?OO(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 Hu(e){let t=e.options??Ge,r=Qe(Iu,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 EO(e,t){return e==="projects"?t.map(FO):[]}function vO(e,t,r,n,o){let s=[],i=n!=="matched"&&n!=="unregistered"&&n!=="name-only";t.mode==="global"?(s.push(`host ${Nu(e.workers,e.host.worker_count)}/${e.host.project_count}p`),s.push(Wu(e,t))):n==="matched"||n==="unregistered"?(s.push(`${t.project} ${Nu(r,r.length)}`),s.push(Wu(e,t)),r.length===0&&s.push("idle")):n==="name-only"?(s.push(`${t.project} ${Nu(r,r.length)}`),s.push(Wu(e,t)),s.push(ei)):s.push(o),t.mode!=="global"&&s.push(...Zs(e,t.project)),s.push(Wy(e));let a=SO(e);a!=null&&s.push(a);let l=TO(e);l!=null&&s.push(l),e.staleness.stale&&s.push(Hy(e));let d=s.join(" ");return!i||Xt(d)<=t.maxWidth||a==null&&l==null?d:[a,l,o,Wy(e),e.staleness.stale?Hy(e):null].filter(c=>c!=null).join(" ")}function Nu(e,t){let r=e.filter(ni).length;return r===0?`${t}w`:`${Math.max(0,t-r)} coding + ${r} repairing`}function Wy(e){let t=e.engine,r=t?.running_version??e.daemon.daemon_version;return t==null||t.current!==!1?`v${r}`:`v${r}${ti}`}function SO(e){let t=e.github_balance;return t==null?null:t.posture==="spent"?`${Ho} quota spent`:t.posture==="reserved"?`${Wo} quota band`:null}function TO(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`${Or}${r} boot-refused \xD7${o.count} in ${PO(o.span_ms)}`+(s==null?"":` \u2014 ${s}`)}return`${Or}${r} ${n.sender_class}`}function PO(e){return Dr(e).replace(/m0s$/,"m").replace(/h0m$/,"h").replace(/d0h$/,"d")}function AO(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:$u("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 ${Gu(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 ${Gu(n.registered_at)})`;return Ko({state:`project unknown \u2014 ${t} lapsed at ${Gu(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:$u("the directory must resolve to a project before registration args can be safe")}):{prose:""}}function Gu(e){return/^\d{4}-\d{2}-\d{2}T(\d{2}:\d{2}:\d{2})/.exec(e)?.[1]??e}function Wu(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 Hy(e){let t=e.staleness.age_ms;return t==null?"!unmeasured":`!stale ${Math.round(t/1e3)}s`}function CO(e,t,r,n){let o=r.map(s=>rl(s,Qs(e[s],t[s])));return Qe(`${Cr}${Bt}${o.join(" ")}${dr}`,n)}function DO(e,t,r){let n=e.map(a=>tl(a,t,r)),o=yn.filter(a=>n.some(l=>Xt(l[a])>0)),s=[...o],i=Uy(n,s);for(;s.length>1&&qy(i,s)>t.maxWidth;)s.pop(),i=Uy(n,s);return{lines:n.map(a=>CO(a,i,s,t.maxWidth)),degraded:s.length<o.length||qy(i,s)>t.maxWidth}}function Uy(e,t){let r=Object.fromEntries(yn.map(n=>[n,0]));for(let n of e)for(let o of t)r[o]=Math.max(r[o],Xt(n[o]));return r}function qy(e,t){return t.reduce((r,n)=>r+e[n],0)+Math.max(0,t.length-1)*2}function OO(e,t){let r=Go(e.log.last_line);return r==null?null:Qe(` ${Fu} ${Ky(e,t.mode)}: ${r}`,t.maxWidth)}function Ky(e,t){return t==="global"?`${e.project_label}:${e.worker_id}`:e.worker_id}function FO(e){return`${e.project_label} ${e.worker_count}w ${cr(e.observed_rss_bytes)}`}function IO(e,t,r){return[e,...t].join(r)}var ol=1;async function Vo(e,t){return await ga(e,t,"redskilled daemon")}function zy(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:BO(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:dh(t,{hostCeilingBytes:e.ceiling?.memory_bytes??e.hostCeilingBytes??null}),upgrade:$O(e)}}function BO(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:Ca(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 $O(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 Jy(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||UO(t.ceiling))&&Array.isArray(t.workers)&&Array.isArray(t.projects)&&ch(t.budget_accounting)&&(t.scope===void 0||Uh(t.scope))&&(t.registrations===void 0||Array.isArray(t.registrations)&&t.registrations.every(Ns))&&(t.demand===void 0||Dh(t.demand))&&(t.lapsed_registrations===void 0||Array.isArray(t.lapsed_registrations)&&t.lapsed_registrations.every(GO))&&(t.stopped_registrations===void 0||Array.isArray(t.stopped_registrations)&&t.stopped_registrations.every(WO))&&(t.orphaned_registrations===void 0||Array.isArray(t.orphaned_registrations)&&t.orphaned_registrations.every(HO))&&(t.birth_latches===void 0||Array.isArray(t.birth_latches)&&t.birth_latches.every(NO))&&(t.upgrade===void 0||qO(t.upgrade))}function NO(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 GO(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 WO(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 HO(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 UO(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 qO(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||KO(t.major_hold))}function KO(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 VO}from"node:crypto";import{mkdir as zO,readFile as JO,rename as YO,writeFile as QO}from"node:fs/promises";import{dirname as XO}from"node:path";function Yy(e){let t=Promise.resolve(),r=null;async function n(){await t;let s;try{s=await JO(e,"utf8")}catch(a){if(a.code==="ENOENT")return[];throw a}let i=ZO(s);return eF(i)?i.registrations:[]}async function o(s){await zO(XO(e),{recursive:!0,mode:448});let i=`${e}.${process.pid}.${VO()}.tmp`,a={version:1,registrations:[...s]};await QO(i,`${nt(a,{keyedMapCollapse:!0})}
|
|
90
|
-
`,{encoding:"utf8",mode:384}),await
|
|
91
|
-
`),e.command,...e.args]}function
|
|
92
|
-
`);s=l.pop()??"";for(let d of l)i(d)}),n.on("end",()=>{s!==""&&i(s)})};r(e.stdout,"worker.stdout"),r(e.stderr,"worker.stderr")}function
|
|
93
|
-
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function
|
|
94
|
-
`),aliases:n}}function
|
|
95
|
-
`);for(let r=t.length-1;r>=0;r-=1){let n=t[r].replace(/\r$/,"");if(n.trim()!=="")return n}return null}import{spawn as
|
|
96
|
-
`)}function
|
|
97
|
-
`);
|
|
98
|
-
`),c=`${t}.${process.pid}.${
|
|
99
|
-
`)){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
|
|
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 hD(e){let t;try{t=Wa(Hn(e,"memory.current"),"utf8")}catch{return null}let r=Number(t.trim());return!Number.isFinite(r)||r<0?null:{memoryBytes:r,cpuSeconds:bD(e)}}function bD(e){let t;try{t=Wa(Hn(e,"cpu.stat"),"utf8")}catch{return null}return yD(t)}function yD(e){for(let t of e.split(`
|
|
87
|
+
`)){let[r,n]=t.trim().split(/\s+/);if(r!=="usage_usec")continue;let o=Number(n);return!Number.isFinite(o)||o<0?null:o/1e6}return null}function kD(e,t){return t.procRoot!=null||e==="linux"?vD(t.procRoot??"/proc"):t.psTable!=null||e==="darwin"?xD(RD(t.psTable)):new Map}function RD(e){try{return(e??wD)()}catch{return""}}function wD(){return iD("ps",["-axo","pid=,ppid=,rss=,time="],{encoding:"utf8",maxBuffer:16*1024*1024})}var _D=1024;function xD(e){let t=new Map;for(let r of e.split(`
|
|
88
|
+
`)){let n=r.trim().split(/\s+/);if(n.length!==4)continue;let[o,s,i]=n.slice(0,3).map(Number);if(![o,s,i].every(l=>l!=null&&Number.isSafeInteger(l)&&l>=0))continue;let a=ED(n[3]);a!=null&&t.set(o,{pid:o,ppid:s,rssBytes:i*_D,cpuSeconds:a})}return t}function ED(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 vD(e){let t=new Map,r;try{r=lD(e)}catch{return t}for(let n of r){if(!/^\d+$/.test(n))continue;let o;try{o=Wa(Hn(e,n,"stat"),"utf8")}catch{continue}let s=TD(o);s&&t.set(s.pid,{pid:s.pid,ppid:s.ppid,rssBytes:s.rssPages*uD,cpuSeconds:s.cpuTicks/SD})}return t}var SD=100;function TD(e){let t=e.lastIndexOf(")");if(t<0)return null;let r=Number(e.slice(0,e.indexOf(" "))),n=e.slice(t+1).trim().split(/\s+/),o=Number(n[1]),s=Number(n[11]),i=Number(n[12]),a=Number(n[21]);return!Number.isSafeInteger(r)||!Number.isSafeInteger(o)||!Number.isFinite(a)||!Number.isFinite(s)||!Number.isFinite(i)?null:{pid:r,ppid:o,rssPages:Math.max(0,a),cpuTicks:Math.max(0,s)+Math.max(0,i)}}var PD=["api","graphql"],wH=Oc(PD);var fy=100,Bo=2e4,AD=7*24*60*60*1e3,gu=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 mu(e,t){for(let r of e)if(r.token_ref!=null&&r.token_ref!==t)throw new gu(r.project_label,r.token_ref,t)}function yy(e,t={now:new Date(0).toISOString()}){wy(e);let r=t.closedWindowMs??AD,n=Date.parse(t.now);if(!Number.isFinite(n))throw new Error(`redskilled activity fetch needs an instant, not ${JSON.stringify(t.now)}`);let o=new Date(n-Math.max(0,r)).toISOString(),s=e.map((l,d)=>({alias:`r${d}`,search_alias:`c${d}`,project:l}));return{query:["query RedskilledRepositoryActivity {"," rateLimit { cost remaining resetAt }",...s.flatMap(({alias:l,search_alias:d,project:c})=>{let u=JSON.stringify(c.owner),p=JSON.stringify(c.name),g=JSON.stringify(`repo:${c.owner}/${c.name} is:closed closed:>=${o}`);return[` ${l}: repository(owner: ${u}, name: ${p}) {`," nameWithOwner"," open_pull_requests: pullRequests(states: OPEN) { totalCount }"," open_issues: issues(states: OPEN) { totalCount }"," }",` ${d}: search(query: ${g}, type: ISSUE, first: 1) { issueCount }`]}),"}"].join(`
|
|
89
|
+
`),aliases:s,closed_since:o}}function 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
|
+
`,{encoding:"utf8",mode:384}),await c1(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 f1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return At(t)}catch{return null}}}function g1(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(Bs)}import{randomInt as O1}from"node:crypto";import{spawn as F1}from"node:child_process";import{appendFileSync as I1,mkdirSync as M1,readFileSync as L1}from"node:fs";import{dirname as j1}from"node:path";import{delimiter as o0,dirname as m1}from"node:path";function h1(e,t=o0){return(e??"").split(t).map(r=>r.trim()).filter(r=>r!=="")}function b1(e=process.execPath){let t=(e??"").trim();if(t==="")return null;let r=m1(t);return r===""||r==="."?null:r}function s0(e,t=process.execPath,r=o0){let n=h1(e,r),o=b1(t);return o==null?n.join(r):[o,...n.filter(s=>s!==o)].join(r)}import{existsSync as Ku}from"node:fs";import{delimiter as S1,join as m0}from"node:path";import{join as i0}from"node:path";import{existsSync as y1}from"node:fs";import{createRequire as k1}from"node:module";var a0="redskilled-job-object.node",Kn=100;function zo(e){return{available:!1,reason:e}}function R1(e,t,r){return[i0(r,"prebuilds",`${e}-${t}`,a0),i0(r,"native","build","Release",a0)]}function l0(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??_1(),o=e.exists??y1,s=R1(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??k1(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 w1(l)?{available:!0,binding:l}:zo(`the Job Object addon at ${i} does not export createJobObject, so it cannot be the native reach`)}function w1(e){return typeof e=="object"&&e!=null&&typeof e.createJobObject=="function"}function _1(){return new URL("..",import.meta.url).pathname}function d0(e){let t=e??{},r=[],n=x1(t);n==null&&(t.memory_max??t.memory_high)!=null&&r.push("the declared memory budget could not be reduced to bytes, so the job carries no memory ceiling");let o;return t.cpu_weight!=null&&(t.cpu_weight<Kn?o=Math.max(1,Math.min(100,Math.round(t.cpu_weight))):r.push(`cpu_weight=${t.cpu_weight} is at or above the fair share of ${Kn}, and Windows CPU rate control is an absolute cap rather than a share, so no rate limit is set`)),{...n!=null?{memory_limit_bytes:n.bytes,memory_budget_name:n.name,memory_budget_declared:n.declared}:{},...o!=null?{cpu_rate_percent:o}:{},kill_on_close:!0,...r.length>0?{note:r.join("; ")}:{}}}function x1(e){return Us({budget:e})}var sl=5,c0=19;function Wu(e){return{available:!1,reason:e}}var E1="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 p0(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=sl;else if(r.cpu_weight<Kn){let a=Math.round(c0*(Kn-r.cpu_weight)/Kn);o=Math.min(c0,Math.max(sl,a))}else o=sl,n.push(`cpu_weight=${r.cpu_weight} is at or above the fair share of ${Kn}, and raising a process's priority requires privilege this daemon does not have, so the Worker keeps the default yield of nice ${sl}`);let s=u0(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=u0(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:E1,...n.length>0?{note:n.join("; ")}:{}}}function f0(e){let{limits:t}=e,r=[];return t.max_processes!=null&&r.push(`ulimit -u ${t.max_processes}`),t.cpu_seconds!=null&&r.push(`ulimit -t ${t.cpu_seconds}`),r.push(t.nice!=null&&e.nice!=null?`exec ${v1(e.nice)} -n ${t.nice} "$0" "$@"`:'exec "$0" "$@"'),["-c",r.join(`
|
|
91
|
+
`),e.command,...e.args]}function g0(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 Hu(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 u0(e){if(e!=null&&!(!Number.isSafeInteger(e)||e<=0))return e}function v1(e){return`'${e.replace(/'/g,"'\\''")}'`}var h0="REDSKILLED_PLACEMENT",al="red-worker",Uu="/bin/sh";function b0(e=process.env,t=process.platform){let r=Wu(`POSIX rlimit and priority placement is the macOS backend (platform=${t})`);if(t==="win32")return{platform:t,systemdRun:null,userSession:!1,jobObjects:l0({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:T1(e)};if(t!=="linux")return{platform:t,systemdRun:null,userSession:!1,jobObjects:n,posix:r};let o=(e.XDG_RUNTIME_DIR??"").trim(),s=o!==""&&Ku(m0(o,"systemd","private"));return{platform:t,systemdRun:w0("systemd-run",e),userSession:s,jobObjects:n,posix:r}}function T1(e){return Ku(Uu)?{available:!0,shell:Uu,nice:w0("nice",e)}:Wu(`no POSIX shell was found at ${Uu}, so there is nothing to apply rlimits or priority in`)}function y0(e=process.env){let t=(e[h0]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function P1(e,t,r=al){return k0(e,t,r).replace(/\.service$/,"")}function k0(e,t,r=al){return`${qu(r,"red-worker",24)}-${qu(e,"project",32)}-${qu(t,"worker",32)}.service`}function R0(e){let t=[...e.args??[]],r={...e.budget??{},...e.budget?.memory_max==null&&e.memoryCeiling?.memory_max!=null?{memory_max:e.memoryCeiling.memory_max}:{}},n=r.memory_max??r.memory_high??null,o=r.memory_high!=null||r.memory_max!=null||r.cpu_weight!=null,s=e.target??{isolation:"transient-unit"},i=u=>({isolated:!1,backend:"none",command:e.command,args:t,cwd:e.workspacePath,warning:u,budget:r,...n!=null?{memoryCeiling:n}:{},environment:il(e,{scope:null,memory_ceiling:n,scope_degradation:u}),...o?{budgetWarning:"a budget was declared but this placement cannot enforce it: the daemon's RSS sampling is the only remaining floor"}:{}});if(s.isolation==="inherit")return i("placement target is `inherit`: the Worker is charged to the daemon's own resource group, so a memory-pressure kill can land on the daemon and every Worker it holds");if(e.enabled===!1)return i(`worker isolation disabled by ${h0}: the Worker is charged to the daemon's own resource group`);if(e.probes.platform==="win32")return C1(e,t,r,n,o,i);if(e.probes.platform==="darwin")return A1(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=k0(e.projectLabel,e.workerId,s.unit_prefix),l=["--user","--collect","--quiet","--wait",`--unit=${a}`,`--working-directory=${e.workspacePath}`];e.pipeOutput===!0&&l.push("--pipe"),r.memory_high!=null&&l.push(`--property=MemoryHigh=${r.memory_high}`),r.memory_max!=null&&l.push(`--property=MemoryMax=${r.memory_max}`),r.cpu_weight!=null&&l.push(`--property=CPUWeight=${r.cpu_weight}`);let d=il(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=Hu(e.budget);return{isolated:!0,backend:"transient-unit",unit:a,command:e.probes.systemdRun,args:[...l,"--",e.command,...t],budget:r,...n!=null?{memoryCeiling:n}:{},environment:d,...c!=null?{budgetWarning:c}:{}}}function A1(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=p0(r,{canRenice:s.nice!=null}),a=r.memory_high!=null||r.memory_max!=null,l=g0(i);return{isolated:!1,backend:"posix-limits",command:s.shell,args:f0({limits:i,nice:s.nice,command:e.command,args:t}),cwd:e.workspacePath,posix:i,warning:l,budget:r,...n!=null?{memoryCeiling:n}:{},environment:il(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 C1(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=d0(r),l=P1(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:il(e,{scope:l,memory_ceiling:n,scope_degradation:null}),...D1(o&&a.note!=null?`${a.note}; the daemon's RSS sampling floor is the ceiling for that budget`:null,Hu(e.budget))}}function il(e,t){return Yg(t,e.bornAt==null?void 0:{worker_id:e.workerId,born_at:e.bornAt})}function D1(...e){let t=e.filter(r=>r!=null&&r!=="");return t.length>0?{budgetWarning:t.join("; ")}:{}}function w0(e,t){for(let r of(t.PATH??"").split(S1)){if(!r)continue;let n=m0(r,e);if(Ku(n))return n}return null}function qu(e,t,r){return(e||"").toLowerCase().replace(/[^a-z0-9_-]+/g,"-").replace(/^-+|-+$/g,"").slice(0,r).replace(/-+$/g,"")||t}var Jo=class extends Error{constructor(t){super(t),this.name="RedskilledWorkerSpecError"}},Xt=class extends Error{constructor(r,n){super(r);this.admission=n;this.name="RedskilledAdmissionError"}},Vu="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",_0=4,$1=Vu.length**_0;function ti(e,t=O1){let r=new Set(e);for(let n=0;n<$1;n+=1){let o="h";for(let s=0;s<_0;s+=1)o+=Vu[t(Vu.length)];if(!r.has(o))return o}throw new Jo("redskilled exhausted the host Worker id space")}function B1(e){if(e==null||e.trim()==="")return{ready:!1};let t=j1(e);try{return M1(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})`}: ${zu(r)}. This Worker runs with NO log at all, so nothing but its heartbeat can show what it did`}}}function N1(e,t){let r=(n,o)=>{if(n==null)return;let s="",i=a=>{try{I1(t,bt().push({at:new Date().toISOString(),kind:o,msg:a}),"utf8")}catch{}};n.on("data",a=>{s+=String(a);let l=s.split(`
|
|
92
|
+
`);s=l.pop()??"";for(let d of l)i(d)}),n.on("end",()=>{s!==""&&i(s)})};r(e.stdout,"worker.stdout"),r(e.stderr,"worker.stderr")}function G1(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 Jo(`redskilled worker spec is missing ${r}`);if(e.args!=null&&!Array.isArray(e.args))throw new Jo("redskilled worker spec args must be an array")}function W1(e){if(e==null)throw new Xt("redskilled refused this Worker: no host admission verdict was handed over, and an unjudged birth is an unbudgeted one");if(!e.admitted)throw new Xt(e.reason,e)}function x0(e){let{spec:t,admission:r}=e;W1(r),G1(t);let n=e.env??process.env,o=e.clock??(()=>new Date().toISOString()),s=(t.worker_id??e.workerId)?.trim()||ti(e.liveWorkerIds??[]),i=o(),a=e.probes??b0(n),l=qh(t.log_path,{worker_id:s,workspace_path:t.workspace_path}),d=e.openLog===!1?{ready:!1}:B1(l),c=d.ready,u={...t.env??{},...e.forkSha==null||e.forkSha===""?{}:{RED_AFK_FORK_SHA:e.forkSha},PATH:s0(t.env?.PATH??n.PATH,e.execPath??process.execPath)},p=R0({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??y0(n),probes:a,pipeOutput:c}),f=(e.spawnFn??F1)(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&&N1(f,l),f.pid==null)throw f.once("error",()=>{}),new Jo(`redskilled could not spawn ${JSON.stringify(p.command)} for worker ${s}`);let y=H1(f.pid),m=p.job!=null?U1(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,...y==null?{}:{proc_start_time:y},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 H1(e){try{let t=L1(`/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 U1(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: ${zu(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)}: ${zu(i)}. ${o}`}}return{job:s}}function zu(e){return e instanceof Error?e.message:String(e)}async function q1(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 E0(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=xa(i,{worker_id:ti(e.liveWorkerIds()),slot:0,workspace_path:s.workspace_path},{project_label:s.project_label}),l=e.admit(a);if(!l.admitted)throw new Xt(l.reason,l);let d=e.start(a,l);if(t.add(d.worker_id),i.mode==="sync"){let c=i.deadline_ms,u=q1({deadlineMs:c,waiting:()=>t.has(d.worker_id),expire:()=>{e.recordExpiry(s.project_label,`project ${JSON.stringify(s.project_label)} sync ${o} hook exceeded its declared ${c}ms deadline; redskilled stopped waiting and proceeded`)}});r.add(u),u.finally(()=>r.delete(u))}}catch(a){let l=a instanceof Error?a.message:String(a);e.refuse(s.project_label,`project ${JSON.stringify(s.project_label)} registered an async ${o} hook, but redskilled refused it before launch: ${l}`)}}return{track:o=>t.add(o),onEvent(o,s){let i=t.has(s.worker_id);!i&&Oo.includes(o)&&n(o,s),i&&(o==="worker-death"||o==="worker-budget-kill")&&t.delete(s.worker_id)},async waitForSettled(){for(;r.size>0;)await Promise.all(r)}}}import{spawnSync as ll}from"node:child_process";async function Ju(e,t){let r=[],n=[];for(let o of e){let s=!1;try{s=await t(o)===!0}catch{s=!1}(s?r:n).push(o)}return{alive:r,dead:n}}var v0=3e4;function S0(e){return e.unit!=null&&e.unit!==""?K1(e.unit):Ye(e.pid)}function K1(e){let t=ll("systemctl",["--user","is-active","--quiet",e],{stdio:"ignore"});return t.error!=null?!1:t.status===0}var V1="REDSKILLED_UNIT_DISCOVERY",T0="(unowned)";function P0(e){let t=ll("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 z1(e=process.env){let t=(e[V1]??"").trim().toLowerCase();return t===""?!0:!["off","false","0","no"].includes(t)}function A0(e,t,r=process.env){return z1(r)&&e===t}function C0(e=al){let t=ll("systemctl",["--user","list-units","--type=service","--state=active","--plain","--no-legend","--no-pager",`${e}-*.service`],{encoding:"utf8"});return t.error!=null||t.status!==0?[]:(t.stdout??"").split(`
|
|
93
|
+
`).map(r=>r.trim().split(/\s+/)[0]??"").filter(r=>r.startsWith(`${e}-`)&&r.endsWith(".service"))}function D0(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:T0,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 O0(e){return e.project_label.trim()!==""?e:{...e,project_label:T0,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 F0(e){if(e.unit!=null&&e.unit!==""){let t=ll("systemctl",["--user","stop",e.unit],{stdio:"ignore"});return t.error==null&&t.status===0}try{return process.kill(e.pid,"SIGTERM"),!0}catch{return!1}}var J1=24e4;var Z4=20*6e4;function M0(e,t){if(!Number.isFinite(t))return 0;let r=0;for(let n of e)Ta(n,t)==="renewing"&&(r+=1);return r}function L0(e){let t=I0(e.attendedMs,Bo),r=I0(e.unattendedMs,J1);return e.attended?t:Math.max(t,r)}function j0(e){return e.pendingWindowMs==null||!Number.isFinite(e.pendingWindowMs)||!Number.isFinite(e.cadenceMs)?!1:e.cadenceMs<e.pendingWindowMs}function I0(e,t){return e!=null&&Number.isFinite(e)&&e>0?e:t}function $0(e){let t,r=null;function n(){return L0({attended:M0(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();j0({pendingWindowMs:r,cadenceMs:s})&&(clearTimeout(t),t=void 0,o(s))},stop(){t!=null&&clearTimeout(t),t=void 0,r=null}}}var oi=50,Qu=15e3,o3=2*Qu;function Y1(e,t=oi){if(Xu(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 N0(e,t={}){let r=t.batchSize??oi;if(Xu(e),e.length>r)throw new Error(`redskilled queue discovery spans at most ${r} selectors in one query, and this batch holds ${e.length}: split it with planQueueDiscoveryBatches rather than dropping the remainder`);let n=e.map((i,a)=>({alias:`q${a}`,project:i}));return{query:["query RedskilledQueueDiscovery {"," rateLimit { remaining resetAt }",...n.map(({alias:i,project:a})=>` ${i}: search(query: ${JSON.stringify(a.selector)}, type: ISSUE, first: 1) { issueCount }`),"}"].join(`
|
|
94
|
+
`),aliases:n}}function G0(e,t){let r=ni(t),n=ni(r.data),o=Array.isArray(r.errors)?r.errors.map(ni):[],s=tF(n.rateLimit,o);return{projects:e.aliases.map(({alias:a,project:l})=>{let d=nF(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=>rF(u.path,a));return s.exhausted||U0(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: ${Yu(c?.message)||"the query returned no count for this selector"}`}}),rate_limit:s}}function Q1(e){return{version:1,fetched_at:e,request_count:0,project_count:0,batch_size:oi,rate_limit:{remaining:null,reset_at:null,exhausted:!1},projects:[]}}function W0(e,t,r){return{version:1,fetched_at:t,request_count:0,project_count:e.length,batch_size:oi,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 H0(e){if(e.projects.length===0)return Q1(e.now);if(e.transport.conditionalList)return await Z1(e);let t=e.batchSize??oi,r=Y1(e.projects,t),n=[],o={remaining:null,reset_at:null,exhausted:!1};for(let s of r){let i=N0(s,{batchSize:t});try{let a=await e.transport(i.query),l=G0(i,a);n.push(...l.projects),o=ri(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=ri(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 X1={key:"redskilled queue poll",budget:"rest"};async function Z1(e){Xu(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=N0([s],{batchSize:1}),d=G0(l,await e.transport(l.query));o+=1,r.push(...d.projects),n=ri(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:X1});o+=i.requestCount;let a=i.data.filter(l=>!q0(l.pull_request)).length;n=ri(n,eF(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=Hs(i);n=ri(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 Xu(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 ri(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 eF(e){let t=B0(e,"x-ratelimit-remaining"),r=B0(e,"x-ratelimit-reset");return{remaining:t,reset_at:r==null?null:new Date(r*1e3).toISOString(),exhausted:t===0}}function B0(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 tF(e,t){let r=ni(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(U0)||n===0}}function U0(e){return e==null?!1:Yu(e.type)==="RATE_LIMITED"||/rate limit/i.test(Yu(e.message))}function rF(e,t){return Array.isArray(e)&&e.includes(t)}function nF(e){let t=ni(e);return Number.isInteger(t.issueCount)?t.issueCount:null}function ni(e){return q0(e)?e:{}}function q0(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Yu(e){return typeof e=="string"?e:""}function K0(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(oF,Math.max(t,i))}let o=n.remaining;return o==null?t:o<=sF?Math.max(t,3e4):o<=iF?Math.max(t,2e4):t}var oF=1e5,sF=250,iF=1e3;var aF={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},lF=["runner","model","effort","origin","issue","phase","step","heartbeat","wait_kind","wait_subject","wait_started_at","wait_deadline","wait_escalation","started_at"],dF=["phase_index","phase_total","wait_pid","context","eta","added","removed","tokens","tools","reasoning","text"];function V0(e){if(e===null||typeof e!="object"||Array.isArray(e))return null;let t=e,r={...aF};for(let n of lF){let o=t[n];r[n]=typeof o=="string"&&o.trim()!==""?o:null}for(let n of dF){let o=t[n];r[n]=typeof o=="number"&&Number.isFinite(o)?o:null}return r.failed=t.failed===!0,r}import{execFile as cF}from"node:child_process";var uF="refs/heads/red-trunk";function Zu(e){return`${e.workspace_path}\0${e.trunk.remote}\0${e.trunk.branch}`}function z0(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 dl(e,t){return new Promise((r,n)=>{cF("git",[...t],{cwd:e},(o,s,i)=>{if(o!=null){n(new Error(i.trim()||o.message));return}r(s.trim())})})}async function J0(e){await dl(e.workspace_path,["fetch",e.trunk.remote,e.trunk.branch]);let t=await dl(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 dl(e.workspace_path,["update-ref",uF,t]),t}async function Y0(e){let t=await dl(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 pF,stat as fF}from"node:fs/promises";var gF=16*1024;async function Q0(e,t=gF){let r;try{r=(await fF(e)).size}catch{return null}if(r<=0)return null;let n=Math.min(t,r),o;try{let s=await pF(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 mF(o)}function mF(e){let t=e.split(`
|
|
95
|
+
`);for(let r=t.length-1;r>=0;r-=1){let n=t[r].replace(/\r$/,"");if(n.trim()!=="")return n}return null}import{spawn as $F}from"node:child_process";import{existsSync as BF,readdirSync as NF}from"node:fs";import{delimiter as GF,dirname as yk,isAbsolute as WF,join as pl,resolve as HF}from"node:path";var hF="<version>";function kn(e,t=[],r){let n=r&&r.trim().length>0?r.trim():hF;return[`npx -y -p ${Bn}@${n}`,e,...t].join(" ")}import{existsSync as bF,mkdirSync as yF,readFileSync as kF,renameSync as RF,statSync as wF,writeFileSync as _F}from"node:fs";import{homedir as Z0}from"node:os";import{basename as X0,join as ek,resolve as cl}from"node:path";function $t(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 ep(e,t){let r=$t(e),n=$t(t);return!r||!n?0:r.major-n.major||r.minor-n.minor||r.patch-n.patch}var h3=4*60*60*1e3;function tp(e=Z0()){return ek(Ct(e),"bundles")}function xF(e){return`redskilled-${e}.bundle.min.mjs`}var EF=/^redskilled-(.+)\.bundle\.min\.mjs$/;function Vn(e,t={}){let r=e.entry;if(r==null||!/^redskilled(-.+)?\.bundle\.min\.mjs$/.test(X0(r)))return e;let n=EF.exec(X0(r))?.[1],o=t.version??n;if(o==null||$t(o)===null||/[-+]/.test(o))return e;let s="homeDir"in t?t.homeDir:Z0();if(s==null)return e;let i=t.exists??bF,a=tp(s),l=ek(a,xF(o));if(cl(r)===cl(l))return e;try{if(!wF(Ct(s)).isDirectory())return e;if(!i(l)){yF(a,{recursive:!0,mode:448});let d=`${l}.${process.pid}.tmp`;_F(d,kF(r),{mode:493}),RF(d,l)}}catch{return e}return{...e,entry:l,args:e.args.map(d=>cl(d)===cl(r)?l:d)}}function si(e){return e.HOME?.trim()||void 0}qr();qr();import{spawnSync as vF}from"node:child_process";import{randomUUID as tk}from"node:crypto";import{mkdir as SF,rm as TF,writeFile as PF}from"node:fs/promises";import{existsSync as AF,mkdirSync as CF,readFileSync as DF,renameSync as rk,writeFileSync as nk}from"node:fs";import{homedir as OF}from"node:os";import{dirname as ok,isAbsolute as sk,join as ii}from"node:path";var Zt="redskilled.service",rp="REDSKILLED_SUPERVISED",FF="https://github.com/reddb-io/red-skills/blob/main/.red/adr/0130-redskilled-host-scoped-execution-daemon.md";function IF(e=process.env){let t=e.XDG_CONFIG_HOME?.trim()||ii(e.HOME?.trim()||OF(),".config");return ii(t,"systemd","user")}function Yo(e=process.env){return ii(IF(e),Zt)}function ik(e,t={}){let r=t.env??process.env,n=Vn(ma(t.override??{},t.entryLookup??{}),{homeDir:si(r)}),o=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})];return{unitName:Zt,unitPath:Yo(r),command:n.command,args:o,text:MF(n.command,o,e)}}function MF(e,t,r){return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)",`Documentation=${FF}`,"StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${[e,...t].map(np).join(" ")}`,"Restart=always","RestartSec=1",`Environment="${rp}=1"`,`Environment="REDSKILLED_SESSION=${uk(r.sessionKey)}"`,"","[Install]","WantedBy=default.target",""].join(`
|
|
96
|
+
`)}function ak(e=process.env){return ii(`${Yo(e)}.d`,"10-current-entry.conf")}function lk(e){return ii(`${e}.d`,"10-current-entry.conf")}function dk(e,t,r={}){if(!sk(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=ak(r.env??process.env),o=`${n}.${process.pid}.${tk()}.tmp`,i=["[Service]","ExecStart=",`ExecStart=${[e.command,...e.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})].map(np).join(" ")}`,""].join(`
|
|
97
|
+
`);CF(ok(n),{recursive:!0,mode:448}),nk(o,i,{encoding:"utf8",mode:384}),rk(o,n);let a=(r.run??ai)(["systemctl","--user","daemon-reload"]);if(a.status!==0)throw new Error(`redskilled wrote the supervised replacement drop-in ${n}, but systemd did not reload it: ${(a.stderr??a.stdout??`status ${a.status}`).trim()}`);return n}function ck(e={}){let t=ak(e.env??process.env),r;try{r=(e.readFile??(u=>DF(u,"utf8")))(t)}catch{return{path:t,status:"absent"}}let n=LF(r),o=n?.[0];if(n==null||o==null)return{path:t,status:"unparsed"};if(sk(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:Vn({command:s,args:i,entry:i[0]},{homeDir:si(e.env??process.env),...e.version==null?{}:{version:e.version}}),d=["[Service]","ExecStart=",`ExecStart=${[s,...a?.args??i].map(np).join(" ")}`,""].join(`
|
|
98
|
+
`),c=`${t}.${process.pid}.${tk()}.tmp`;return nk(c,d,{encoding:"utf8",mode:384}),rk(c,t),(e.run??ai)(["systemctl","--user","daemon-reload"]),{path:t,status:"healed",command:o}}function LF(e){let t;for(let r of e.split(`
|
|
99
|
+
`)){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 np(e){return/[\s"'\\$%]/.test(e)?`"${uk(e)}"`:e}function uk(e){return e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/%/g,"%%")}async function pk(e,t={}){let r=t.writeFile??jF,n=t.removeFile??mk,o=t.run??ai,s=[];return await r(e.unitPath,e.text),await n(lk(e.unitPath)),s.push({step:"write-unit",ok:!0,detail:e.unitPath}),s.push(ul("daemon-reload",o,["systemctl","--user","daemon-reload"])),s.push(ul("enable",o,["systemctl","--user","enable","--now",e.unitName])),{unitPath:e.unitPath,installed:s.every(i=>i.ok),steps:s}}async function fk(e={}){let t=e.removeFile??mk,r=e.run??ai,n=Yo(e.env??process.env),o=[ul("disable",r,["systemctl","--user","disable","--now",Zt])];return await t(n),await t(lk(n)),o.push({step:"remove-unit",ok:!0,detail:n}),o.push(ul("daemon-reload",r,["systemctl","--user","daemon-reload"])),{unitPath:n,installed:!1,steps:o}}function gk(e={}){let t=e.exists??AF,r=e.run??ai,n=Yo(e.env??process.env),o=t(n),s=o&&r(["systemctl","--user","is-enabled",Zt]).status===0,i=o&&r(["systemctl","--user","is-active",Zt]).status===0,a=s&&!i?[{code:"enabled-but-inactive",evidence:`${Zt} is installed and enabled but inactive`,fix:`systemctl --user restart ${Zt}`}]:[];return{unitName:Zt,unitPath:n,installed:o,enabled:s,active:i,findings:a,floor:"auto-spawn"}}function ul(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 jF(e,t){await SF(ok(e),{recursive:!0}),await PF(e,t,{encoding:"utf8",mode:420})}async function mk(e){await TF(e,{force:!0})}function ai(e){let t=vF(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 hk=75,kk=9e5,bk="redskilled-replacement-entry-unresolved",UF="REDSKILLED_NO_REGISTRY_PROBE",Rk="REDSKILLED_BORN_BY_REPLACEMENT";function wk(e=process.env){return e[Rk]==="1"}function _k(e){return e===null||typeof e=="string"?{version:e,newest:null}:{version:e.version,newest:e.newest??null}}function xk(e){let t=e.running.trim();if(li(t))return null;let r=e.newest?.trim()??"",n=$t(r),o=$t(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:qF(n.major,e.supervised)}}function qF(e,t){let r=`install the ${e}.x bundle (update this machine's plugin pin), then `;return t?`${r}re-point the unit and restart it: ${kn("red-skills-redskilled",["unit","install"])} && systemctl --user restart redskilled.service`:`${r}stop this daemon \u2014 the next client start resolves the newly installed bundle`}function Ek(e){let t=e.running.trim();if(li(t))return{act:"hold",reason:"local-build"};let r=e.published?.trim()??"";return!r||$t(r)===null?{act:"hold",reason:"published-unknown"}:ep(r,t)<=0?{act:"hold",reason:"no-newer-version"}:{act:"replace",to:r,via:e.supervised?"supervisor-exit":"self-spawn"}}function li(e){let t=e.trim();return $t(t)===null?!0:/^\d+\.\d+\.\d+[-+]/.test(t)}function gl(e=process.env){return e[rp]==="1"}var fl=class extends Error{code=bk;searched;constructor(t,r){super(`${bk}: the published redskilled bundle ${t} exists on no reachable path and the version-pinned dispatch is disabled or resolves no absolute npx
|
|
100
100
|
searched:
|
|
101
101
|
${r.map(n=>` ${n}`).join(`
|
|
102
|
-
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function
|
|
103
|
-
`}function N1(e){let t=e.trim();if(!t)return null;try{return JSON.parse(t)}catch{try{return Ct(t)}catch{return null}}}function G1(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 Fk(e){let{paths:t}=e,r=e.daemonVersion??"0.0.0-dev",n=e.idleMs??Do,o=e.clock??(()=>new Date().toISOString()),s=e.launch??h0,i=e.refreshTrunk??W0,a=e.countBaseMovement??H0,l=e.ceiling??_a();e.repositoryActivity!=null&&gu(e.repositoryActivity.projects,e.repositoryActivity.hostTokenRef);let d=e.owner??Ak(),c=e.leaseStore??Ck(t.leasePath,{sessionKeyHash:t.sessionKeyHash,machineIdHash:t.machineIdHash,socketPath:t.socketPath},{clock:o}),u=e.machineOwner??Ea(),p={machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,socketPath:t.socketPath},g=e.machineClaimStore??Bs(t.machineClaimPath,p,{clock:o});await U1(K1(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>=qm&&await bc(t.socketPath)==="unowned"&&await c.release({pid:f.pid,startTime:f.start_time}).catch(()=>!1)&&await g.release({pid:y.pid,startTime:y.start_time,uid:y.uid}).catch(()=>!1);let $=await g.claim(u);if(!$.claimed)throw $.claim?.socket_path===t.socketPath?new Jt(t.socketPath):new Vr(g.claimPath,$.reason,$.claim);let D=await c.acquire(d);if(!D.acquired)throw await g.release(u).catch(()=>{}),new Jt(t.socketPath,D.lease);let M;try{M=await Ym(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??Sh(t.eventLanePath),G=e.registrationIntentStore??Yy(t.registrationIntentPath),I=e.liveness??k0,W=e.livenessGraceMs??y0,q=e.stopWorker??S0,oe=e.unitInventory??(()=>_0(t.machineClaimPath,Io({machineIdHash:t.machineIdHash}))?x0():[]),ae=e.unitMainPid??w0,se=e.treeSampler??fy,Z=e.readLogTail??U0,pe=e.sampleMs??Um,De=e.leaseRenewMs??mc,Ee=e.registrationSustainMs??Km,ke=e.publishedVersion??(b=>Rk(b)),Y=e.replaceCheckMs??pk,de=e.publishedProbeTimeoutMs??Wm,we=e.localPublishedEvidence??(b=>wk(b,e.replacementIO?.env??process.env)),Oe=e.bornByReplacement??gk(),ve=e.replaceBootCheckMs??Hm,Re=e.supervised??fl(),Te=e.replacementIO??{},fe=e.repositoryActivity,ie=fe?.intervalMs??No,_e=e.githubBalance,Ie=e.queueDiscovery,it=Ie?.transport??fe?.transport,Wt=Ie?.unconfiguredReason??zm,en=Ie?.intervalMs??Zu,tn=e.demandMs??15e3,mo=e.demandBackoffMs??3e4,ce=new Map,Ht=new Map,dt=new Set,Ze=new Map,wt=new Map,at=[],ct=[],_t=e.deaths===void 0?void 0:[...e.deaths],xt=await G.read().catch(()=>[]),Wr=Date.parse(N),Pe=new Map,Le=new Map;for(let b of xt){let P=Date.parse(b.renew_by);!Number.isFinite(Wr)||!Number.isFinite(P)||P>=Wr?Pe.set(b.project_label,b):Wr-P<=b.renew_within_ms&&Le.set(b.project_label,b)}let J=b0({registration:b=>Pe.get(b),liveWorkerIds:()=>ce.keys(),admit:ko,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(()=>{})}),C=Promise.resolve();function R(b){let P=C.then(async()=>{await J.waitForSettled();let j=await b();return await J.waitForSettled(),j});return C=P.then(()=>{},()=>{}),P}let F=new Set,L={},B=null,K=null,X=null,xe=!1,je=0,Be=null,Lt="none",rn=null,wr=null,nn=null,_r=null,Et=null,re=null,he=[],$e=[],Ut=new Map((e.orphanedRegistrations??[]).map(b=>[b.project_label,b])),jt=null,et={},ho=!1,on,An,Cn,Ne,Dn,On,Fn,or,Hr,Se=!1,sn=!1,xr=null,an=D0({poll:()=>Nf(),registrations:()=>Pe.values(),clock:o,attendedMs:ie,armed:fe!=null&&fe.projects.length>0,stopping:()=>Se}),jf,ld=new Promise(b=>{jf=b});function bo(b){Bf(b);let P=Date.parse(b),j=Jh(Pe.values(),P);for(let U of j.lapsed){Pe.delete(U.project_label);let z=Et?.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),nE(U,P)}return j.lapsed.length>0&&yo(),j.lapsed}function yo(){let b=new Map(Le);for(let[P,j]of Pe)b.set(P,j);G.replace([...b.values()]).catch(()=>{})}function nE(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>Is&&he.splice(0,he.length-Is)}function Bf(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=Et==null?Number.NaN:Date.parse(Et.fetched_at),z=new Map((Et?.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,Ro=Ac(le,{now:b,...Je==null?{}:{queue:{outcome:Je.outcome,depth:Je.depth}},liveWorkers:j[le.project_label]??0});Ro.registration!==le&&(Pe.set(le.project_label,Ro.registration),ne=!0)}ne&&yo()}function $f(b){if(Le.size===0)return;let P=Date.parse(b);if(!Number.isFinite(P))return;let j=new Map((Et?.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=Ac(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&&yo()}function Wi(){let b=o();return bo(b),zy({now:b,daemonVersion:r,machineIdHash:t.machineIdHash,sessionKeyHash:t.sessionKeyHash,pid:d.pid,startedAt:N,ceiling:l,scope:Hh(g.claimPath,p,u),workers:[...ce.values()],registrations:[...Pe.values()],demand:re,lapses:he,stops:$e,orphanedRegistrations:[...Ut.values()],birthLatches:Ih(et,Date.parse(b)),queue:Et,published:{version:K,checkedAt:X,newer:xe,replacement:Lt,newest:rn,majorHold:wr,checks:je,holdReason:Be}})}function Hi(){return Fy({hostState:Wi(),ceiling:l,rss:L,sampledAt:B,logLines:Object.fromEntries(Ze),displays:Object.fromEntries(wt),now:o(),reattachedWorkerIds:[...dt],repositoryActivity:nn,activityStalenessMs:mu*an.cadenceMs(),githubBalance:_r,..._t===void 0?{}:{deaths:_t},metrics:sh({observations:at,outcomes:ct,now:o()})})}function oE(b,P){let j=ah(at,b,P,o());at=j.observations,H.recordWorker(j.record).catch(()=>{})}function sE(b){ct=Gn([...ct,b],P=>P.ts,{now:o()})}async function Nf(){return fe==null||fe.projects.length===0?null:(nn=await Ry({projects:fe.projects,hostTokenRef:fe.hostTokenRef,transport:fe.transport,closedWindowMs:fe.closedWindowMs,now:o()}),nn)}async function Gf(){return _e==null?null:(_r=await iu({transport:_e.transport,now:o()}),_r)}function iE(){if(Se||or!=null||_e==null)return;let b=()=>{or=void 0,Gf().catch(()=>{}).then(()=>{if(Se)return;let P=_e.intervalMsOverride??Ua(_r??aE(),{now:o()});or=setTimeout(b,P),or.unref()})};b()}function aE(){return Ha(o())}function lE(){if(!(it!=null||Ie?.armTransport==null))try{let b=Ie.armTransport();if(b.transport!=null){it=b.transport;return}b.unconfiguredReason!=null&&(Wt=b.unconfiguredReason)}catch(b){Wt=`this host could not resolve a tracker credential: ${b instanceof Error?b.message:String(b)}`}}async function Wf(){let b=o();bo(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(lE(),it==null)return Et=M0(U,b,Wt),Et;Et=await L0({projects:U,transport:it,now:b,...Ie?.batchSize==null?{}:{batchSize:Ie.batchSize}});let z=o();return $f(z),Bf(z),Et}async function Hf(){let b=o();if(ho)return re??Ch(b);ho=!0;try{await cd().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 Et?.projects??[])j[be.project_label]=be.depth;let U=Date.parse(b),z=Number.isFinite(U)?U:0;for(let[be,vt]of Object.entries(et)){if(vt.probeWorkerId==null)continue;let Yi=ce.get(vt.probeWorkerId);Yi!=null&&z-Date.parse(Yi.started_at)>=6e4&&(et[be]=Ec())}let ne=Ah({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:jt,birthHealth:et}),le=[],tt=new Map,Je=null;for(let be of ne.births){let vt,Yi=oi(ce.keys()),wo=Pe.get(be.project_label),Qi=Sa({argv:be.argv,...wo?.env==null?{}:{env:wo.env},...wo?.log_path==null?{}:{log_path:wo.log_path}},{worker_id:Yi,slot:be.index,workspace_path:be.workspace_path},{project_label:be.project_label});try{if(wo?.trunk==null)vt=await R(()=>ws(Qi));else{let Ur={workspace_path:be.workspace_path,trunk:wo.trunk},_s=ko(Qi);if(!_s.admitted)throw new Zt(_s.reason,_s);let sg=tp(Ur),Xi=tt.get(sg);Xi==null&&(Xi=dd(Ur),tt.set(sg,Xi)),vt=await R(()=>Yf(Qi,Ur,Xi,_s))}}catch(Ur){Je=Ur instanceof Error?Ur.message:String(Ur),Ur instanceof Zt&&Ur.admission?.verdict==="refused-unreachable-trunk-remote"||(jt=(Number.isFinite(U)?U:Date.now())+mo);break}le.push({project_label:be.project_label,worker_id:vt.worker.worker_id,pid:vt.worker.pid,...vt.fork_sha==null?{}:{fork_sha:vt.fork_sha},warnings:Qi.log_path==null?[...vt.warnings,`project ${JSON.stringify(be.project_label)} declared no log path, so no surface can show what Worker ${JSON.stringify(vt.worker.worker_id)} logs unless it publishes a line on its heartbeat`]:vt.warnings});let fd=et[be.project_label];fd?.haltUntilMs!=null&&z>=fd.haltUntilMs&&(et[be.project_label]=Fh(fd,vt.worker.worker_id))}Je==null&&ne.births.length>0&&(jt=null);let Ro=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||Ro.has(be.project_label))continue;let vt=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:vt}).catch(()=>{})}return re={version:1,at:b,requested:ne.births.length,granted:le,shortfall:ne.births.length-le.length,refusal:Je,retry_after:jt==null?null:new Date(jt).toISOString(),projects:ne.intents},re}finally{ho=!1}}function dE(b){return kn(Hi(),{...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 cE(b){return qo(Hi(),{mode:b?.mode??$t.mode,project:b?.project??$t.project,maxWidth:b?.max_width??$t.maxWidth,maxRows:b?.max_rows??$t.maxRows,maxHeight:b?.max_height??$t.maxHeight,showDeathDetails:b?.show_death_details??$t.showDeathDetails})}function In(b,P,j){return Zh({op:b,sessionProject:P??null,targetProject:j})}async function uE(b){let P=ce.get(b.worker_id),j=In(Xh(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 hE(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 Ui(b){ce.delete(b),dt.delete(b),Ze.delete(b),wt.delete(b)}function Uf(b){let P=ce.get(b.worker_id),j=In("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:N0(b.display);if(z!=null){let ne=wt.get(b.worker_id)?.display,le={display:z,published_at:U};wt.set(b.worker_id,le),oE(le,P),(z.phase!==ne?.phase||z.step!==ne?.step)&&qt("worker-activity",P,null,{phase:z.phase,step:z.step})}return b.mechanical_heal?.heal_kind==="mechanical-regeneration"&&qt("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 pE(b,P,j){let U=`exit code=${P??"null"} signal=${j??"null"}`;if(b.unit!=null&&b.unit!==""&&await gE(b)){mE(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:hc(await Z(b.log_path).catch(()=>null));Ui(b.worker_id),qt("worker-death",b,z==null?U:`session-error: ${z}`,{exitCode:P,signal:j,refusal:z}),ut()}function fE(b,P){if(!Number.isFinite(P)||P<0){et[b]=js;return}let j=et[b]??js,U=Oh(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 qf(b,P){let j=In("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]=Ec(),{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 gE(b){try{return await I(b)===!0}catch{return!1}}function mE(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]}),dt.add(b.worker_id),ut()}function Kf(b,P){let j=In("project-register",P,b.project_label);if(!j.permitted)throw new Error(j.reason);let U=o();bo(U);let z=Vh(b,{now:U,held:Pe.get(b.project_label)});return Pe.set(z.project_label,z),yo(),an.nudge(),Jf(z.project_label),ut(),{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 Vf(b,P={}){let j=In("project-renew",P.sessionProject,b);if(!j.permitted)throw new Error(j.reason);let U=o();bo(U);let z=Pe.get(b);if(z==null){if(Ut.has(b))throw new Wn(b,{kind:"orphaned"});let le=[...$e].reverse().find(Je=>Je.project_label===b);if(le!=null)throw new Wn(b,{kind:"stopped",at:le.at});let tt=[...he].reverse().find(Je=>Je.project_label===b);throw tt!=null?new Wn(b,{kind:"lapsed",at:tt.at,...tt.registered_at==null?{}:{registered_at:tt.registered_at}}):new Wn(b)}let ne=zh(z,{now:U,...P.renewWithinMs==null?{}:{renew_within_ms:P.renewWithinMs},...P.launch==null?{}:{launch:P.launch}});return Pe.set(ne.project_label,ne),yo(),an.nudge(),ut(),{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 zf(b,P){let j=In("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)}`;Jf(b),$e.push({project_label:b,registered_at:U.registered_at,at:o(),detail:tt}),$e.length>Is&&$e.splice(0,$e.length-Is)}return le&&yo(),{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 Jf(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=$e.length-1;P>=0;P-=1)$e[P].project_label===b&&$e.splice(P,1);Ut.delete(b)}async function hE(b,P){try{await q(b)}catch{}return Ui(b.worker_id),qt("worker-death",b,P),ut(),!0}function ko(b){return yh({ceiling:l,workers:[...ce.values()],budget:b.budget,projectLabel:b.project_label,...b.reservation==null?{}:{reservation:b.reservation}})}function dd(b){let P=tp(b),j=Ht.get(P);if(j!=null)return j;let U=i(b).finally(()=>{Ht.get(P)===U&&Ht.delete(P)});return Ht.set(P,U),U}async function Yf(b,P,j,U){let z=U??ko(b);if(!z.admitted)throw new Zt(z.reason,z);let ne;try{ne=await(j??dd(P))}catch(tt){let Je=G0(z,P,tt);throw new Zt(Je.reason,Je)}let le=ko(b);if(!le.admitted)throw new Zt(le.reason,le);return ws(b,{admission:le,forkSha:ne})}function ws(b,P={}){let j=kh({ceiling:l,workers:[...ce.values()],budget:b.budget}),U=s({spec:b,admission:P.admission??ko(b),...P.forkSha==null?{}:{forkSha:P.forkSha},memoryCeiling:j,liveWorkerIds:ce.keys(),clock:o,onExit:(tt,Je,Ro)=>{let be=ce.get(tt);if(be==null){ut();return}pE(be,Je,Ro).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),qt("worker-birth",ne,null,{admissionVerdict:P.admission?.verdict??U.admission.verdict}),ut(),le}function qt(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")&&(sE({worker_id:P.worker_id,ts:z,outcome:b}),Qf(xa(ne),{startedAt:P.started_at,...U.refusal==null?{}:{refusal:U.refusal}}),fE(P.project_label,Date.parse(z)-Date.parse(P.started_at))),H.recordWorker(ne).catch(()=>{}),J.onEvent(b,P)}function Qf(b,P={}){let j=Vm(b,P);if(j==null)return;let U=[j,...(_t??[]).filter(z=>z.kind!==j.kind||z.id!==j.id||z.ts!==j.ts)].sort((z,ne)=>Date.parse(z.ts)-Date.parse(ne.ts));_t=Gn(U,z=>z.ts,{now:o()})}async function cd(){let b=Date.parse(o()),P=[...ce.values()].filter(U=>{if(dt.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 Qu(P,I);for(let U of j)Ui(U.worker_id),qt("worker-death",U,"the host no longer confirms this Worker");return j.length>0&&ut(),j}async function Xf(b,P){let j=ce.get(b);if(!j)return!1;try{await q(j)}catch{}return Ui(b),qt("worker-budget-kill",j,P),ut(),!0}async function Zf(){let b=[...ce.values()];if(b.length===0)return[];let P;try{P=await se(b)}catch{return[]}let j=P.rss;L=j,B=o(),bE(P.cpu_seconds,B);let{terminations:U}=py({workers:b,rss:j}),z=[];for(let ne of U)await Xf(ne.worker_id,ne.reason)&&z.push(ne);return z}function bE(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 yE(){try{return de<=0?await ke(r):await new Promise(b=>{let P=setTimeout(()=>b(ud()),de);P.unref(),ke(r).then(j=>{clearTimeout(P),b(j)},()=>{clearTimeout(P),b(ud())})})}catch{return ud()}}function ud(){try{return we(r)}catch{return null}}async function eg(){if(ui(r))return je+=1,X=o(),Be="local-build",{act:"hold",reason:"local-build"};let b=mk(await yE()),P=b.version;K=P,rn=b.newest??null,X=o(),wr=hk({running:r,newest:rn,supervised:Re});let j=bk({running:r,published:P,supervised:Re});return xe=j.act==="replace",je+=1,Be=j.act==="hold"?j.reason:null,Lt!=="in-progress"&&(Lt=j.act==="replace"?"pending":"none"),j}async function qi(){let b=await eg();if(b.act!=="replace"||Lt==="in-progress")return b;let P=yk(b,Te,t,n);return Lt="in-progress",await H.flush().catch(()=>{}),await G.flush().catch(()=>{}),await Vi({reason:"replaced"}),kk(P,t,{...n==null?{}:{idleMs:n},io:Te}),b}function kE(){Se||On!=null||Y<=0||(!Oe&&ve>0&&(Fn=setTimeout(()=>{qi().catch(()=>{})},ve),Fn.unref()),On=setInterval(()=>{qi().catch(()=>{})},Y),On.unref())}async function tg(){return await c.renew(d).catch(()=>null)}function RE(){Se||Cn!=null||De<=0||(Cn=setInterval(()=>{tg()},De),Cn.unref())}function wE(){Se||Ne!=null||Ee<=0||(Ne=setInterval(()=>{bo(o())},Ee),Ne.unref())}function _E(){Se||An!=null||pe<=0||(An=setInterval(()=>{Zf().catch(()=>{})},pe),An.unref())}function xE(){if(Se||Hr!=null||en<=0)return;let b=P=>{Hr=setTimeout(()=>{Hr=void 0,rg().then(()=>Wf()).catch(()=>{}).finally(()=>{if(Se)return;let j=Date.parse(o());b($0(Et,en,Number.isFinite(j)?j:Date.now()))})},P),Hr.unref()};b(en)}async function rg(){await Promise.allSettled([...Pe.values()].filter(b=>b.trunk!=null).map(async b=>{let P=await dd({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)&&qt("worker-drift",le,null,{baseHeadSha:P,baseCommitsAhead:z})}))}))}function EE(){Se||Dn!=null||tn<=0||(Dn=setInterval(()=>{Hf().catch(()=>{})},tn),Dn.unref())}function ut(){Se||(on&&clearTimeout(on),on=setTimeout(()=>{cd().catch(()=>{}).then(()=>ng())},n),on.unref())}function ng(){return ce.size>0?(ut(),"held-by-workers"):(bo(o()),Pe.size>0?(ut(),"held-by-registrations"):(vE(),"exited"))}async function vE(){if(!ui(r)){if((await qi().catch(()=>null))?.act==="replace"||sn||Se)return;if(ce.size>0||Pe.size>0){ut();return}}await Vi({reason:"idle"})}function Ki(b){return Lh({reason:b,socketPath:t.socketPath,daemonVersion:r,pid:d.pid,workers:[...ce.values()],projects:[...Pe.keys()]})}function og(b){if(xr!=null)return xr;let P=b.reason??"requested",j=b.note?.trim();return xr=H.recordDaemonStop({ts:o(),pid:d.pid,socketPath:t.socketPath,reason:P,detail:j==null||j===""?Ki(P).detail:`${Ki(P).detail} \u2014 ${j}`,...b.signal==null?{}:{signal:b.signal}}).catch(()=>{}),xr}async function Vi(b={}){if(sn)return await ld;sn=!0,await og(b),Se=!0,on&&clearTimeout(on),An&&clearInterval(An),Cn&&clearInterval(Cn),Ne&&clearInterval(Ne),On&&clearInterval(On),Fn&&clearTimeout(Fn),an.stop(),or&&clearTimeout(or),Hr&&clearTimeout(Hr),Dn&&clearInterval(Dn),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 q1(t.socketPath,{force:!0}),jf(),await ld}let zi=await H.read().catch(()=>[]),Ji=new Map;for(let b of zi){if(b.event==="worker-birth"){Ji.set(b.worker_id,b.ts);continue}let P=hc(b.detail);Qf(b,{...Ji.get(b.worker_id)==null?{}:{startedAt:Ji.get(b.worker_id)},...P==null?{}:{refusal:P}}),(b.event==="worker-death"||b.event==="worker-budget-kill")&&Ji.delete(b.worker_id)}ct=Gn(zi.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()}),at=lh(zi,o());let SE=xc(zi),pd=await Qu(SE,I);for(let b of pd.alive){let P=v0(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),dt.add(P.worker_id)}for(let b of pd.dead)qt("worker-death",b,"the Worker ended while no daemon was watching");let TE=E0({units:await Promise.resolve(oe()).catch(()=>[]),held:[...ce.values()],mainPid:ae,now:N});for(let b of TE)ce.set(b.worker_id,b),dt.add(b.worker_id),qt("worker-birth",b,"adopted from an active unit with no birth on this lane");$f(o());for(let b of pd.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)),ut(),Qm(b,async(P,j)=>{ut();let U=await PE(P);j(U),P.op==="shutdown"&&setImmediate(()=>void Vi({reason:"requested"}).catch(()=>{}))})});async function PE(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:Wi()};if(b.op==="statusline-payload")return{id:b.id,ok:!0,value:Ru(Hi(),b.extras)};if(b.op==="statusline-string")return{id:b.id,ok:!0,value:dE(b.render)};if(b.op==="statusline-dashboard")return{id:b.id,ok:!0,value:cE(b.dashboard)};if(b.op==="worker-heartbeat")return{id:b.id,ok:!0,value:Uf(b.heartbeat)};if(b.op==="project-register"){let j=Kf(b.registration,b.session_project);return await G.flush(),{id:b.id,ok:!0,value:j}}if(b.op==="project-renew"){let j=Vf(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=zf(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:qf(b.project_label,b.session_project)};if(b.op==="worker-command")return{id:b.id,ok:!0,value:await uE(b.command)};if(b.op==="worker-start"){let j=In("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):Yf(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=Ki("requested");return await og({reason:"requested",...b.detail==null?{}:{note:b.detail}}),{id:b.id,ok:!0,value:j}}let P=b;return{id:P.id??Ok(),ok:!1,error:`unsupported redskilled op: ${P.op??"unknown"}`}}catch(P){return{id:b.id??Ok(),ok:!1,error:P instanceof Error?P.message:String(P)}}}return ut(),_E(),RE(),wE(),kE(),an.arm(),iE(),xE(),EE(),{socketPath:t.socketPath,lease:D.lease,startedAt:N,closed:ld,startWorker:ws,admit:ko,ceiling:()=>l,killWorkerOverBudget:Xf,sampleMemoryBudgets:Zf,renewLease:tg,pollRepositoryActivity:Nf,pollGithubBalance:Gf,githubBalance:()=>_r,pollQueueDiscovery:Wf,queueDiscovery:()=>Et,driveDemand:Hf,demand:()=>re,sweepWorkerLiveness:cd,publishWorkerHeartbeat:Uf,reattached:()=>[...dt].map(b=>ce.get(b)).filter(b=>b!=null),flushEvents:async()=>{await C,await J.waitForSettled(),await H.flush()},trackWorker(b){ce.set(b.worker_id,b),qt("worker-birth",b,null),ut()},releaseWorker(b){let P=ce.get(b),j=ce.delete(b);return dt.delete(b),Ze.delete(b),wt.delete(b),P&&qt("worker-death",P,"released by the daemon"),ut(),j},workerCount:()=>ce.size,registerProject:Kf,renewProject:Vf,resetProjectBirthBreaker:qf,deregisterProject:zf,registrations:()=>Wi().registrations??[],hostState:Wi,refreshRegisteredTrunks:rg,statuslinePayload:Hi,evaluateIdle:ng,observePublishedVersion:eg,checkForReplacement:qi,stopReport:Ki,stop:Vi}}function dp(e){let t=e.socketPath,r=V1(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 ${Ik(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 \`${Rn("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 \`${Rn("red-skills-redskilled",["provision"])}\` (or \`/red-setup\`), then retry.`}}function cp(e){return`${e.reason} ${e.repair}`}function V1(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:z1(t.acquired_at,e.now??new Date().toISOString())}}function z1(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 Ik(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 J1}from"node:child_process";import{existsSync as Y1}from"node:fs";import{basename as Mk,dirname as Q1,join as Lk}from"node:path";async function Xo(e){let r=await Bs(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(r==null||r.socket_path===e.socketPath||r.uid!==Ea().uid||!Ye(r.pid))return{paths:e,joined:!1};let n=Q1(r.socket_path);return{joined:!0,paths:{...e,runtimeDir:n,socketPath:r.socket_path,lockPath:Lk(n,Mk(e.lockPath)),leasePath:Lk(n,Mk(e.leasePath))}}}async function jk(e){let r=await Bs(e.machineClaimPath,{machineIdHash:e.machineIdHash,sessionKeyHash:e.sessionKeyHash,socketPath:e.socketPath}).read().catch(()=>{});if(!(r==null||r.socket_path===e.socketPath||!Ye(r.pid)))throw new Vr(e.machineClaimPath,"held",r)}async function Bk(e,t,r){let n=t.env??process.env,o=t.supervisor?.installed?.(),s=n[Tc]?.trim();if(o==null&&(s!=null&&s!==""||e.machineClaimPath!==Io({env:n,machineIdHash:e.machineIdHash}))||!(o??Y1(Yo(n))))return!1;if(t.supervisor?.start!=null)await t.supervisor.start();else{let a=J1("systemctl",["--user","start",er],{encoding:"utf8",env:n});if(a.error!=null||a.status!==0)throw new Error(`redskilled found the installed ${er}, but systemd did not start it: ${a.error?.message??(a.stderr||a.stdout||`status ${a.status}`).trim()}`)}return await X1(e,t,r),!0}async function X1(e,t,r){let n=Date.now()+(t.readyTimeoutMs??r);for(;;){let o=await Xo(e);if(await Yt(o.paths.socketPath))return;if(Date.now()>=n)throw new Error(`the installed ${er} did not expose a same-user daemon within the ready window (client socket ${JSON.stringify(e.socketPath)})`);await new Promise(s=>setTimeout(s,25))}}Kr();var pp=1e4,wn=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"?`. ${cp(o)}`:""}`);this.socketPath=r;this.cause=n;this.presence=o;this.name="RedskilledUnreachableError"}},up=class extends wn{constructor(r,n,o){super(r,o,n);this.presence=n;this.name="RedskilledDaemonHeldError"}},pi=class extends Error{constructor(r){super(r);this.refusal=r;this.name="RedskilledRequestRefusedError"}};async function ml(e,t={}){let r=t.answers??await Yt(e.socketPath),n=await Qo(e.leasePath).catch(()=>{});return dp({socketPath:e.socketPath,answers:r,lease:n,holderAlive:n!=null&&Ye(n.pid)})}async function fp(e,t={}){let r=await Xo(e);try{let n=await rI(r.paths,t);return r.joined&&n==="already-running"?"joined":n}catch(n){if(n instanceof Vr||n instanceof wn)throw n;let o=await ml(r.paths).catch(()=>{});throw new wn(r.paths.socketPath,n,o)}}async function rI(e,t){if(await eI(tI(e.socketPath),{recursive:!0,mode:448}),await Yt(e.socketPath))return"already-running";await jk(e);let r=await oI(e,t);if(r!=null)return r;if(await Bk(e,t,pp))return"joined";let n=await Am(e.lockPath,{...t.spawnLockMaxAgeMs==null?{}:{maxAgeMs:t.spawnLockMaxAgeMs},onReap:t.onSpawnLockReaped??nI});if(!n.acquired)return await $k(e,t,void 0,n),"joined";try{if(await Yt(e.socketPath))return"already-running";let o=await iI(e,t);return await $k(e,t,o),"spawned"}finally{await Cm(n)}}function nI(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
|
|
102
|
+
`)}`),this.name="RedskilledReplacementEntryError",this.searched=[...r]}};function KF(e,t={}){let r=t.env??process.env,n=t.exists??BF,o=t.execPath??process.execPath,s=t.callerEntry===void 0?process.argv[1]:t.callerEntry,i=`redskilled-${e}.bundle.min.mjs`,a=[],l=si(r),d=[];l!=null&&d.push([pl(tp(l),i),"stable-home"]),d.push([pl(ga(r),i),"bundle-cache"]),s&&d.push([pl(yk(HF(s)),i),"caller-sibling-bundle"]);for(let[u,p]of d)if(a.push(u),n(u))return{...Vn({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 fl(e,a);let c=VF(r,n,o,a);if(c==null)throw new fl(e,a);return{command:c,args:["-y","-p",`@reddb-io/red-skills@${e}`,"red-skills-redskilled"],version:e,source:"pinned-dispatch",searched:a}}function VF(e,t,r,n){let o=e.RED_SKILLS_NPX?.trim();if(o&&WF(o))return o;let s=process.platform==="win32"?[o||"npx.cmd","npx.cmd","npx.exe","npx"]:[o||"npx"],i=[yk(r),...(e.PATH??"").split(GF).filter(a=>a.length>0)];for(let a of new Set(s))for(let l of i){let d=pl(l,a);if(n.push(d),t(d))return d}return null}function vk(e,t={},r,n){let s=(t.resolveEntry??(i=>KF(i,t.env==null?{}:{env:t.env})))(e.to);if(e.via==="supervisor-exit"){let i=t.repointSupervisor??((a,l,d)=>dk(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 Sk(e,t,r={}){let n=r.io??{};if(e.via==="supervisor-exit")return(n.exit??JF)(hk),{...e,exitCode:hk};let o=[...e.entry.args,...cn(t,r.idleMs==null?{}:{idleMs:r.idleMs})];return(n.spawnSuccessor??zF(n.env))(e.entry,o),e}function zF(e){return(t,r)=>{let n=$F(t.command,[...r],{detached:!0,stdio:"ignore",env:{...e??process.env,REDSKILLED_DAEMON:"1",[Rk]:"1"}});n.on("error",()=>{}),n.unref()}}function JF(e){process.exitCode=e,process.exit(e)}async function Tk(e,t=process.env,r=YF){let n=Ak(t),o=Ck(e,t);if(t[UF]==="1")return{version:o,newest:n};let s=$t(e)===null?"0.0.0":e;try{let i=await Mm({fetchText:r},s);return{version:i.sameMajor??o,newest:i.newest??n}}catch{return{version:o,newest:n}}}function Pk(e,t=process.env,r){let n=r??op;return{version:Ck(e,t,n),newest:Ak(t,n)}}function Ak(e=process.env,t=op){return Ok(Dk(e,t))}function Ck(e,t=process.env,r=op){let n=$t(e.trim())?.major;return n===void 0?null:Ok(Dk(t,r).filter(o=>$t(o)?.major===n))}function Dk(e,t){let r=[];for(let n of t(ga(e))){let o=/^redskilled-(.+)\.bundle\.min\.mjs$/.exec(n)?.[1];!o||$t(o)===null||r.push(o)}return r}function Ok(e){let t=null;for(let r of e)(t===null||ep(r,t)>0)&&(t=r);return t}function op(e){try{return NF(e)}catch{return[]}}async function YF(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 QF,readFile as XF,rename as ZF,rm as sp,writeFile as Fk}from"node:fs/promises";import{randomUUID as eI}from"node:crypto";import{dirname as tI}from"node:path";var ml=class extends Error{constructor(t){super(`redskilled lease ${JSON.stringify(t)} is held by another owner`),this.name="RedskilledLeaseOwnershipError"}};async function Qo(e){let t;try{t=await XF(e,"utf8")}catch(n){if(n.code==="ENOENT")return;throw n}let r=rI(t);return nI(r)?r:void 0}var Ik;function Lk(){return Ik??={pid:process.pid,startTime:new Date(Date.now()-Math.round(process.uptime()*1e3)).toISOString()},Ik}function jk(e,t,r={}){let n=r.clock??(()=>new Date().toISOString()),o=r.isPidAlive??Ye;async function s(){return await Qo(e)}async function i(l){let d=`${e}.${l.pid}.${eI()}.tmp`;await Fk(d,Mk(l),{encoding:"utf8",mode:384}),await ZF(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 QF(tI(e),{recursive:!0,mode:448});let d=!1;for(;;){let c=n(),u=a(l,c);try{return await Fk(e,Mk(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 sp(e,{force:!0}),d=!0;continue}if(ip(p,l))return{acquired:!0,reaped:d,lease:p};if(await o(p.pid))return{acquired:!1,lease:p};await sp(e,{force:!0}),d=!0}},async renew(l){let d=await s();if(!d||!ip(d,l))throw new ml(e);let c={...d,renewed_at:n()};return await i(c),c},async release(l){let d=await s();if(!d)return!1;if(!ip(d,l))throw new ml(e);return await sp(e,{force:!0}),!0}}}function ip(e,t){return e.pid===t.pid&&e.start_time===t.startTime}function Mk(e){return`${nt(e,{keyedMapCollapse:!0})}
|
|
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 RI(e,t){let r=await hl(e,{answers:!1}).catch(()=>{});if(r==null||r.kind!=="held-unresponsive")return null;let n=t.readyTimeoutMs??cp,o=Date.now()+n;for(;;){if(await zt(e.socketPath))return"joined";if(Date.now()>=o)break;await new Promise(i=>setTimeout(i,25))}let s=await hl(e).catch(()=>{});if(s==null||s.kind!=="held-unresponsive")return null;throw new dp(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 zk(e,t,r={}){await up(e,r);let n=(await Xo(e)).paths,o;try{o=await Vo({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{...t,id:Vk()})}catch(s){throw new Rn(n.socketPath,s,await hl(n).catch(()=>{}))}if(!o.ok)throw new di(o.error);return o.value}async function Jk(e,t={},r={}){let n=(await Xo(e)).paths;if(!await zt(n.socketPath))return Lh(n.socketPath);let o;try{o=await Vo({socketPath:n.socketPath,timeoutMs:r.requestTimeoutMs??2e3},{id:Vk(),op:"shutdown",...t.detail==null?{}:{detail:t.detail}})}catch(a){throw new Rn(n.socketPath,a)}if(!o.ok)throw new di(o.error);if(!Sc(o.value))throw new Error("redskilled daemon returned a malformed stop report");let s=o.value,i=await wI(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 wI(e,t,r){let n=Date.now()+r;for(;;){let o=[];if(await zt(e.socketPath)&&o.push(`the socket ${JSON.stringify(e.socketPath)} still answers`),await Qo(e.leasePath).catch(()=>{})&&o.push("the session lease is still held"),t!=null&&t!==process.pid&&Ye(t)&&o.push(`daemon pid ${t} is still alive`),o.length===0)return{complete:!0,deadline:new Date(n).toISOString(),pending:o};if(Date.now()>=n)return{complete:!1,deadline:new Date(n).toISOString(),pending:o};await new Promise(s=>setTimeout(s,25))}}async function Yk(e,t={}){let r=await zk(e,{op:"host-state"},t);if(!r0(r))throw new Error("redskilled daemon returned a malformed host state");return r}async function Qk(e,t={},r){let n=await zk(e,{op:"statusline-payload",...t.sessionProject!=null?{session_project:t.sessionProject}:{},...r==null?{}:{extras:r}},t);if(!qa(n))throw new Error("redskilled daemon returned a malformed statusline payload");return n}async function Xk(e,t=Ge,r={}){let n=await Qk(e,r,{vitals:!0,logs:t.verbose,display:!0});return yn(n,t)}async function Zk(e,t={},r={}){let n=await Qk(e,r,{vitals:!0,logs:!0,display:!0});return qo(n,{...jt,...t})}async function Kk(e,t,r,n){let o=Date.now()+(t.readyTimeoutMs??cp);for(;;){if(await zt(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 ${Cm(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 _I(e,t){let r=t.serverCommand??(t.serverArgs!=null?process.execPath:void 0),n=await Nm({...r!=null?{serverCommand:r}:{},serverArgs:t.serverArgs},t.entryLookup??{}),o={entry:n},s=[...n.args,...cn(e,t.idleMs==null?{}:{idleMs:t.idleMs})],i=mI(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}qr();import{readFile as xI}from"node:fs/promises";import{homedir as EI,totalmem as vI}from"node:os";import{join as SI}from"node:path";var TI="REDSKILLED_IDLE_MS",PI=".red/config.yaml";async function tR(e=EI()){let t=SI(e,PI),r;try{r=await xI(t,"utf8")}catch(n){return n.code==="ENOENT"?{}:(pp(`redskilled: cannot read host config ${JSON.stringify(t)}; using environment and defaults instead: ${eR(n)}`),{})}try{let n=CI(r);return{...bl(n,"plugins.dev.redskilled.worker_ceiling","workerCeiling"),...bl(n,"plugins.dev.redskilled.memory_ceiling","memoryCeiling"),...bl(n,"plugins.dev.redskilled.validation_ceiling","validationCeiling"),...bl(n,"plugins.dev.redskilled.idle_ms","idleMs")}}catch(n){return pp(`redskilled: malformed host config ${JSON.stringify(t)}; using environment and defaults instead: ${eR(n)}`),{}}}function rR(e={}){let t=e.env??process.env,r=e.config??{},n=ka(t,e.totalMemoryBytes??vI(),{flags:e.flags,config:r,...e.availableParallelism==null?{}:{availableParallelism:e.availableParallelism}}),o=AI(e.flags?.idleMs==null?void 0:String(e.flags.idleMs),t[TI],r.idleMs);if(o==null)return{ceiling:n,idleMs:Co,idleMsSource:"derived-default"};let s=Number(o.value);return Number.isSafeInteger(s)&&s>0?{ceiling:n,idleMs:s,idleMsSource:o.source}:(pp(`redskilled: ${FI(o.source)} idle_ms=${JSON.stringify(o.value)} is not a positive integer; using the default ${Co}ms instead.`),{ceiling:n,idleMs:Co,idleMsSource:"derived-default"})}function AI(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 bl(e,t,r){let n=e[t];return n===void 0?{}:{[r]:n}}function CI(e){let t={},r=[];for(let[n,o]of e.split(/\r?\n/).entries()){let s=DI(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(".")]=OI(c.trim())}return t}function DI(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 OI(e){return e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'")?e.slice(1,-1):e}function FI(e){return e==="flag"?"serve flag":e==="environment"?"environment":e==="home-config"?"home config":"derived default"}function eR(e){return e instanceof Error?e.message:String(e)}function pp(e){process.stderr.write(`${e}
|
|
106
|
+
`)}import{chmod as cR,mkdir as pR,readFile as fR,stat as zI,writeFile as gR}from"node:fs/promises";import{homedir as mp}from"node:os";import{dirname as mR,join as yl}from"node:path";import{join as $I}from"node:path";import{existsSync as II,readFileSync as W8}from"node:fs";import{dirname as MI,join as LI}from"node:path";function nR(e,t){let r=e;for(let n=0;n<16;n++){let o=LI(r,t);if(II(o))return o;let s=MI(r);if(s===r)break;r=s}return null}function jI(e){let t=e.indexOf(" #");return(t>=0?e.slice(0,t):e).trim()}function Zo(e,t){let r=[];for(let n of e.split(`
|
|
107
|
+
`)){let o=n.replace(/\r$/,""),s=o.trim();if(!s||s.startsWith("#"))continue;let i=o.indexOf(":");if(i<0)continue;let a=o.length-o.trimStart().length,l=o.slice(0,i).trim();if(!l)continue;let d=o.slice(i+1).trim();for(;r.length&&r[r.length-1].indent>=a;)r.pop();if(r.push({indent:a,key:l}),d&&r.map(u=>u.key).join(".")===t)return jI(d)}}var oR=["local","tmp","host"],BI="local",ci="plugins.dev.workspace.target";var fp=class extends Error{constructor(t){super(t),this.name="WorkspaceConfigError"}};function iR(e){let t=Zo(e,ci),r=WI(t??"").trim();return r===""?void 0:r}function aR(e){let t=(e??"").trim();if(t==="")return{kind:"preset",preset:BI};let r=oR.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 fp(`${ci}: unknown workspace target ${JSON.stringify(t)}. Use one of the presets (${oR.join(", ")}) or an absolute parent directory for Workers.`)}function lR(e,t){return e.kind==="preset"?e.preset==="host":GI(NI(e.parentDir,t),Ct(t))}function NI(e,t){return e==="~"?sR(t):e.startsWith("~/")?$I(t,e.slice(2)):sR(e)}function GI(e,t){return e===t?!0:t==="/"?e.startsWith("/"):e.startsWith(`${t}/`)}function sR(e){let t=e.trim();return t.length>1?t.replace(/\/+$/,""):t}function WI(e){let t=e.trim(),r=/^(["'])(.*)\1$/.exec(t);return r?r[2]:t}qr();import{createHash as HI}from"node:crypto";import{hostname as UI}from"node:os";import{join as ui}from"node:path";var es="redskilled.sock",qI="REDSKILLED_SESSION";function KI(e={}){let t=e.env??process.env,r=t[qI]?.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 VI(e={}){return dR(e.host??UI())}function er(e={}){let t=KI(e),r=e.runtimeDir??pa({key:`redskilled:${t}`,socketFileName:es,env:e.env,uid:e.uid}),n=VI(e),o=e.homeDir??e.env?.HOME??(e.runtimeDir==null?process.env.HOME:e.runtimeDir)??r;return{sessionKey:t,sessionKeyHash:dR(t),machineIdHash:n,runtimeDir:r,socketPath:ui(r,es),lockPath:ui(r,"redskilled.spawn.lock"),leasePath:ui(r,"redskilled.lease.toon"),eventLanePath:ui(Ct(o),Eh),registrationIntentPath:ui(Ct(o),"redskilled.registrations.toon"),machineClaimPath:e.machineClaimPath??Fo({env:e.env,machineIdHash:n,platform:e.platform})}}function dR(e){return HI("sha256").update(e).digest("hex").slice(0,12)}var gp=`run \`/red-setup\` (Section E3 \u2014 execution daemon), or \`${kn("red-skills-redskilled",["provision"])}\` directly`,JI=`# Host-scoped redskilled policy. This file is never read from a repository.
|
|
108
108
|
plugins:
|
|
109
109
|
dev:
|
|
110
110
|
redskilled:
|
|
@@ -112,15 +112,15 @@ plugins:
|
|
|
112
112
|
# memory_ceiling: 8G
|
|
113
113
|
# validation_ceiling: 2
|
|
114
114
|
# 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
|
|
115
|
+
`;async function hR(e=mp()){let t=Ct(e),r=yl(mR(t),"config.yaml"),n=await bp(t),o=!1,s=!1;n===void 0?(await pR(t,{recursive:!0,mode:Ur}),await cR(t,Ur),o=!0):n!==Ur&&(await cR(t,Ur),s=!0);let i=!1;try{await gR(r,JI,{encoding:"utf8",flag:"wx",mode:384}),i=!0}catch(a){if(a.code!=="EEXIST")throw a}return{path:t,created:o,tightened:s,mode:Ur,configPath:r,configCreated:i}}var bR={needed:!1,declaredBy:`no ${ci} in view`};async function hp(e={}){let t=e.homeDir??mp(),r=e.declaredTarget?.trim();if(r)return uR(r,t,"stated on the command line");let n=e.projectRoot?.trim();if(!n)return bR;let o=yl(n,".red","config.yaml"),s=await fR(o,"utf8").catch(()=>{});if(s===void 0)return{needed:!1,declaredBy:`no ${o}`};let i=iR(s);return i===void 0?{needed:!1,declaredBy:`${o} declares no workspace target (default local)`}:uR(i,t,o)}function uR(e,t,r){let n=`${ci}: ${e} (${r})`;try{return{needed:lR(aR(e),t),declaredBy:n}}catch{return{needed:!1,declaredBy:`${n} \u2014 off-contract, so it names no lane under the home`}}}function yR(e){let t=[YI(e),QI(e),XI(e),ZI(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 YI(e){let t=e.homeNeed??bR;if(!e.homePresent)return t.needed?{check:"home",verdict:"missing",evidence:`${e.homePath} does not exist, and it is needed \u2014 ${t.declaredBy}`,fix:gp}:{check:"home",verdict:"ok",evidence:`${e.homePath} is absent and unneeded \u2014 ${t.declaredBy}; the daemon never reads it`,fix:""};let r=e.homeMode??Ur;return r!==Ur?{check:"home",verdict:"degraded",evidence:`${e.homePath} is mode ${r.toString(8)}, not owner-only ${Ur.toString(8)}`,fix:`${gp} \u2014 it narrows the home back to owner-only`}:{check:"home",verdict:"ok",evidence:`${e.homePath} (mode ${r.toString(8)})`,fix:""}}function QI(e){return Tr(e.entry)?{check:"daemon-entry",verdict:"ok",evidence:`${e.entry.entry??e.entry.command} (resolved as ${e.entry.source})`,fix:""}:{check:"daemon-entry",verdict:"missing",evidence:`no published redskilled bundle; probed ${e.entry.searched.join(", ")||"nothing"}`,fix:`install or warm the RedSkills bundle for this host, then re-run \`${kn("red-skills-redskilled",["provision"])}\``}}function XI(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:`${gp} \u2014 it starts the daemon and waits for the socket`}}function ZI(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 kR(e={}){let t=e.env??process.env,r=e.homeDir??mp(),n=e.paths??er({env:t}),o=Ct(r),[s,i,a]=await Promise.all([bp(o),zt(n.socketPath),e.homeNeed?Promise.resolve(e.homeNeed):hp({homeDir:r,projectRoot:e.projectRoot,declaredTarget:e.declaredTarget})]);return{homePath:o,homePresent:s!==void 0,homeMode:s,homeNeed:a,entry:un(e.entryOverride??{},{env:t,...e.entryLookup}),socketPath:n.socketPath,reachable:i,supervisorUnit:await tM(rM(e,t,r),t)}}var eM="redskilled.service";function RR(e){return yl(e,"systemd","user",eM)}function wR(e){let t=e.socketPath?` --socket ${e.socketPath}`:"";return["[Unit]","Description=redskilled \u2014 the host-scoped execution daemon (ADR 0130)","StartLimitIntervalSec=60","StartLimitBurst=5","","[Service]","Type=simple",`ExecStart=${e.command} serve${t}`,"Restart=always","RestartSec=2","","[Install]","WantedBy=default.target",""].join(`
|
|
116
|
+
`)}async function _R(e){let t=RR(e.configHome);return await bp(t)!==void 0?{path:t,status:"already-present"}:(await pR(mR(t),{recursive:!0}),await gR(t,e.unit,"utf8"),{path:t,status:"installed"})}async function tM(e,t){if(process.platform!=="linux")return"unsupported";try{return await fR(RR(e),"utf8"),"installed"}catch{return t.XDG_RUNTIME_DIR?"absent":"unsupported"}}function rM(e,t,r){return e.configHome??t.XDG_CONFIG_HOME?.trim()??yl(r,".config")}async function bp(e){try{return(await zI(e)).mode&511}catch{return}}import{readdir as ER,rm as nM,stat as oM}from"node:fs/promises";import{dirname as sM,join as yp}from"node:path";var iM=5*6e4,aM="redskilled.";function lM(e={}){let t=e.env??process.env,r=i=>sM(pa({key:"redskilled:reclaim-probe",socketFileName:es,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 vR(e={}){let t=e.roots??lM(e),r=e.graceMs??iM,n=e.now??Date.now,o=e.isPidAlive??Ye,s=e.answers??pM,i=e.dryRun===!0,a=[];for(let l of t){let d;try{d=(await ER(l,{withFileTypes:!0})).filter(c=>c.isDirectory()).map(c=>c.name)}catch{continue}for(let c of d.sort())a.push(await dM(yp(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 dM(e,t){let r;try{r=(await ER(e)).sort()}catch(i){return{dir:e,verdict:"failed",reason:SR(i),removed:[]}}let n=r.filter(i=>i.startsWith(aM));if(r.length>0&&n.length===0)return{dir:e,verdict:"foreign",reason:"holds no redskilled files",removed:[]};let o=await cM(yp(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 xR(e,r,`lease pid ${o.pid} is dead`,t);if(r.includes(es)&&await t.answers(yp(e,es)))return{dir:e,verdict:"live",reason:"socket answers with no lease",removed:[]};let s=await uM(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 xR(e,r,r.length===0?"empty and stale":"no lease and stale",t)}async function xR(e,t,r,n){if(n.dryRun)return{dir:e,verdict:"reclaimed",reason:`${r} (dry run)`,removed:t};try{await nM(e,{recursive:!0,force:!0})}catch(o){return{dir:e,verdict:"failed",reason:SR(o),removed:[]}}return{dir:e,verdict:"reclaimed",reason:r,removed:t}}async function cM(e){try{return await Qo(e)}catch{return}}async function uM(e,t){try{return Math.max(0,t()-(await oM(e)).mtimeMs)}catch{return}}async function pM(e){try{return(await Vo({socketPath:e,timeoutMs:250},{id:`redskilled-reclaim-${process.pid}`,op:"ping"})).ok}catch{return!1}}function SR(e){return e instanceof Error?e.message:String(e)}var kl,Rl=new Map,fM=256;function CR(){if(kl!==void 0)return kl;let e=Intl.Segmenter;return kl=e?new e(void 0,{granularity:"grapheme"}):null,kl}function kp(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 TR(e){let t=Rl.get(e);if(t!==void 0)return t;let r=new RegExp("\\p{M}","u").test(String.fromCodePoint(e));return Rl.size>=fM&&Rl.clear(),Rl.set(e,r),r}function PR(e){return e>=127462&&e<=127487}function AR(e){return e>=4352&&e<=4607||e>=43360&&e<=43391||e>=55216&&e<=55295}function gM(e){return e>=1536&&e<=1541||e===1757||e===1807||e===2192||e===2193||e===2274||e===3406||e===69821||e===69837}function mM(e,t,r){if(TR(t)||gM(t)||AR(t))return!1;let n=e.codePointAt(r);return n===void 0?!0:!(kp(n)||TR(n)||AR(n)||PR(t)&&PR(n)||t===13&&n===10)}function hM(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&&!kp(i))break;r+=i>65535?2:1,o=i===8205}t.push({segment:e.slice(n,r),index:n,end:r})}return t}function DR(e){let t=CR();if(!t)return hM(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 Rp(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(mM(e,r,n))return{segment:e.slice(t,n),index:t,end:n};let o=CR();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&&!kp(a))break;s+=a>65535?2:1,i=a===8205}return{segment:e.slice(t,s),index:t,end:s}}var ts="\x1B",bM="\x07",x9=`${ts}\\`;function yM(e){return e>=64&&e<=126}function kM(e,t){for(let r=t;r<e.length;r++){if(e[r]===bM)return r+1;if(e[r]===ts&&e[r+1]==="\\")return r+2}return e.length}function zn(e,t){if(e[t]!==ts)return null;let r=e[t+1];if(r===void 0)return{end:t+1,value:ts,kind:"control"};if(r==="["){let n=t+2;for(;n<e.length&&!yM(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=kM(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 OR(e){return e<=31||e>=127&&e<=159}function rs(e){let t="",r=0;for(;r<e.length;){if(e[r]===ts){let o=zn(e,r);if(o){o.kind==="sgr"&&(t+=o.value),r=o.end;continue}}let n=e.charCodeAt(r);(!OR(n)||e[r]===`
|
|
117
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function wp(e){let t="",r=0;for(;r<e.length;){if(e[r]===ts){let o=zn(e,r);if(o){r=o.end;continue}}let n=e.charCodeAt(r);(!OR(n)||e[r]===`
|
|
118
|
+
`||e[r]===" ")&&(t+=e[r]),r++}return t}function FR(e){return wp(e).replace(/[\u0000-\u001f\u007f-\u009f]/g,"")}var MR="\x1B",IR=/^[\x20-\x7e]*$/,wl=new Map,RM=256;function wM(e){return wp(e)}function ye(e){if(IR.test(e))return e.length;let t=e.codePointAt(0);if(t!==void 0&&e.length===(t>65535?2:1))return LR(t);let r=wM(e);if(IR.test(r))return r.length;let n=0;for(let{segment:o}of DR(r))n+=_M(o);return n}function Jn(e,t){if(t<0||t>=e.length)return null;if(e.charCodeAt(t)<=127)return{symbol:e[t],nextIndex:t+1};let n=Rp(e,t);return n?{symbol:n.segment,nextIndex:n.end}:null}function _M(e){if(!e)return 0;let t=[...e].map(o=>o.codePointAt(0)??0);return t.length===1?LR(t[0]):t.every(o=>o<=31||o>=127&&o<=159||jR(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($R)?2:1}function LR(e){let t=wl.get(e);if(t!==void 0)return t;let r;return e<=31||e>=127&&e<=159||jR(e)?r=0:r=$R(e)||new RegExp("\\p{Extended_Pictographic}","u").test(String.fromCodePoint(e))?2:1,wl.size>=RM&&wl.clear(),wl.set(e,r),r}function jR(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 $R(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||xM(e)}function xM(e){let t=[9986,9989,9992,9993,9994,9995,9996,9997,9999,10002,10004,10006,10024,10035,10036,10052,10055,10060,10062,10067,10068,10069,10071,10083,10084,10133,10134,10135,10145,10160],r=[9728,9729,9730,9731,9732,9742,9745,9748,9749,9752,9757,9760,9762,9763,9766,9770,9774,9775,9784,9785,9786,9792,9794,9800,9801,9802,9803,9804,9805,9806,9807,9808,9809,9810,9811,9823,9824,9827,9829,9830,9832,9851,9854,9855,9874,9875,9876,9877,9878,9879,9881,9883,9884,9889,9898,9899,9904,9905,9917,9918,9924,9925,9934,9940,9962,9970,9971,9973,9978,9981];return t.includes(e)||r.includes(e)}function Yn(e,t,r){if(t<=0)return e.split(`
|
|
119
119
|
`);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(...lM(o,t))}return n}function lM(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=dM(o,t);r.push(...i.slice(0,-1)),n=i.at(-1)??""}return(n||r.length===0)&&r.push(n),r}function dM(e,t){let r=[],n="",o=0,s=0;for(;s<e.length;){if(e[s]===PR){let l=Jn(e,s);if(l){n+=l.value,s=l.end;continue}}let i=Yn(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"?cM(e,t,l,d,i):n==="middle"?pM(e,t,l,d,i):uM(e,t,l,d,i)}function cM(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 uM(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]===PR){let f=Jn(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=_p(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 lt(e,t){return e^=t,Math.imul(e,16777619)>>>0}function mi(e,t){let r=e;for(let n=0;n<t.length;n++)r=lt(r,t.charCodeAt(n));return r}function Ep(e,t,r){if(t===void 0)return lt(e,117);if(t===null)return lt(e,110);switch(typeof t){case"boolean":return lt(lt(e,98),t?49:48);case"number":return mi(lt(e,100),Object.is(t,-0)?"-0":String(t));case"bigint":return mi(lt(e,105),t.toString());case"string":return mi(lt(e,115),t);case"function":return r.ignoreFunctions===!1?lt(e,102):e;case"object":{if(Array.isArray(t)){let i=lt(e,91);for(let a of t)i=Ep(i,a,r),i=lt(i,124);return lt(i,93)}let n=lt(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=mi(lt(n,107),i),n=lt(n,58),n=Ep(n,a,r),n=lt(n,59)))}return lt(n,125)}default:return mi(lt(e,63),String(t))}}function Ft(e,t={}){return Ep(2166136261,e,{ignoreFunctions:!0,...t}).toString(16)}import{AsyncLocalStorage as fM}from"node:async_hooks";var Ir=Symbol("tuiuiu.runtime-resource-dispose"),OR=new fM,wl=new Set,gM=1,os={id:0,resources:new Map};function FR(){let e={id:gM++,resources:new Map};return wl.add(e),e}function mM(e){wl.delete(e)}function IR(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 hM(e){let t=[...e.resources.values()].reverse();e.resources.clear();for(let r of t)IR(r)}function ss(e){mM(e),hM(e)}function qe(e,t){return OR.run(e,t)}function Qr(e,t){return(...r)=>qe(e,()=>t(...r))}function vp(){return OR.getStore()??null}function We(e){if(e)return e;let t=vp();return t||(wl.size===1?wl.values().next().value??os:os)}function Mr(){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 It(e,t){return os.resources.has(e)||os.resources.set(e,t()),os.resources.get(e)}function _l(e,t){let r=We(t),n=r.resources.get(e);r.resources.delete(e),IR(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 Sp(){return{layoutReuseCount:0,layoutFreshCount:0,drawReuseCount:0,drawFreshCount:0,invalidationEscalationCount:0,absorbedLayoutDirtyCount:0,forceFullCount:0}}function bM(e){let t=e.props,r=typeof t.width=="number"&&t.width>0&&t.width!==1/0,n=typeof t.height=="number"&&t.height>0&&t.height!==1/0;return!(!r||!n||(t.flexGrow??0)>0||t.width==="fill"||t.height==="fill")}var Tp=class{states=new WeakMap;parents=new WeakMap;renderCache=new Map;maxCacheSize=1e3;globalVersion=0;isDirty=!0;rootNode=null;forceFullFrame=!1;diagnostics=Sp();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=Sp()}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&&bM(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 Ft({type:t.type,key:t.key,props:t.props??{},children:t.children??[]})}evictOldest(){let t=[...this.renderCache.entries()];t.sort((n,o)=>n[1].lastAccess-o[1].lastAccess);let r=Math.ceil(t.length*.2);for(let n=0;n<r;n++)this.renderCache.delete(t[n][0])}invalidateCache(t){let r=this.hashNode(t);for(let n of this.renderCache.keys())n.startsWith(`${r}:`)&&this.renderCache.delete(n)}clearCache(){this.renderCache.clear()}getCacheStats(){return{size:this.renderCache.size,maxSize:this.maxCacheSize}}reset(){this.states=new WeakMap,this.parents=new WeakMap,this.renderCache.clear(),this.globalVersion=0,this.isDirty=!0,this.rootNode=null,this.forceFullFrame=!1,this.diagnostics=Sp()}},yM=Symbol("tuiuiu.dirty-registry");function Lr(e){return Fe(yM,()=>new Tp,e)}function MR(e){Lr().beginFrame(e)}function LR(e,t){Lr().registerNode(e,t)}function _n(e,t=Ce.CONTENT){Lr().markDirty(e,t)}function jR(e){Lr().markLayoutClean(e)}function hi(e){Lr().noteReuse(e)}function Xn(e){Lr().noteFresh(e)}function xl(e){return Lr().canReuseSubtree(e)}function BR(){return Lr().getDiagnostics()}function bi(){Lr().clearGlobalDirty()}function is(e){Lr().markClean(e.node);for(let r of e.children)is(r)}var $R=new WeakMap;function kt(e,t){if(e===void 0)return 0;if(!Number.isFinite(e))throw new RangeError(`${t} must be a finite number`);return Math.max(0,Math.floor(e))}function El(e,t){if(e===void 0)return 0;if(!Number.isFinite(e)||e<0)throw new RangeError(`${t} must be a finite non-negative number`);return e}var Pt=e=>e==="auto"?0:kt(e,"margin"),kM=new Set(["layoutRef","__scrollQuery"]),RM=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"]),wM=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"?wM:RM,n={};for(let o of r)o in t&&(n[o]=t[o]);return Ft(n,{ignoreKeys:kM})}function xM(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 EM(e,t){if(!xl(e)){Xn("layout");return}let r=$R.get(e);if(!r){Xn("layout");return}if(r.ctxKey!==t){_n(e,Ce.LAYOUT),Xn("layout");return}let n=as(e);if(r.propsKey!==n||!xM(e,r.childRefs)){_n(e,r.propsKey!==n?Ce.LAYOUT:Ce.CHILDREN),Xn("layout");return}return hi("layout"),r.layout}function yi(e,t,r,n){$R.set(e,{ctxKey:t,propsKey:r,childRefs:[...e.children],layout:n}),jR(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 NR(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 Mt(e,t){e.props.layoutRef?.__update?.({x:t.x,y:t.y,width:t.width,height:t.height})}function GR(e,t=0,r=0){let n=t+e.x,o=r+e.y;Mt(e.node,{...e,x:n,y:o});let s=e.node.props,i=kt(s.paddingTop??s.paddingY??s.padding,"paddingTop"),a=kt(s.paddingLeft??s.paddingX??s.padding,"paddingLeft"),l=s.borderStyle&&s.borderStyle!=="none"?1:0,d=n+a+l,c=o+i+l;for(let u of e.children)GR(u,d,c)}function WR(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)),MR(e);let n=jr(e,{x:0,y:0,width:t,height:r},null);return GR(n),n}function vM(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=Qn(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 SM(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 TM(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){LR(e,r);let n=_M(t),o=EM(e,n);if(o)return Mt(e,o),o;let s;if(e.type==="text")return s=vM(e,t),yi(e,n,as(e),s),s;if(e.type==="spacer")return s=SM(e,t),yi(e,n,as(e),s),s;if(e.type==="newline")return s=TM(e,t),yi(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:[]},Mt(e,s),yi(e,n,as(e),s),s;let a=kt(i.paddingTop??i.paddingY??i.padding,"paddingTop"),l=kt(i.paddingBottom??i.paddingY??i.padding,"paddingBottom"),d=kt(i.paddingLeft??i.paddingX??i.padding,"paddingLeft"),c=kt(i.paddingRight??i.paddingX??i.padding,"paddingRight"),u=Pt(i.marginTop??i.marginY??i.margin),p=Pt(i.marginBottom??i.marginY??i.margin),g=Pt(i.marginLeft??i.marginX??i.margin),f=Pt(i.marginRight??i.marginX??i.margin),y=i.borderStyle&&i.borderStyle!=="none"?1:0,m=ki(i.width,t.width),w=ki(i.height,t.height),T=i.width!==void 0&&i.width!=="auto",$=i.height!==void 0&&i.height!=="auto",D=Math.max(0,(T?m:t.width)-d-c-y*2),M=Math.max(0,($?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=kt(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(...HR(fe,D,N,q,i,$,e)):H.push(...AM(fe,D,N,q,i,e))}let se=0,Z=0;if(I)for(let fe of H){let ie=fe.node.props,_e=Pt(ie.marginRight??ie.marginX??ie.margin),Ie=Pt(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=Pt(ie.marginBottom??ie.marginY??ie.margin);se=Math.max(se,fe.width),Z=Math.max(Z,fe.y+fe.height+_e)}let De=El(i.flexGrow,"flexGrow")>0||i.width==="fill",Ee=se+d+c+y*2,ke=T?m:De?t.width:Ee,Y=$?w:Z+a+l+y*2,de=kt(i.minWidth,"minWidth"),we=kt(i.minHeight,"minHeight");if(ke=Math.max(ke,de),Y=Math.max(Y,we),i.maxWidth!==void 0&&(ke=Math.min(ke,kt(i.maxWidth,"maxWidth"))),i.maxHeight!==void 0&&(Y=Math.min(Y,kt(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]=NR(_e,Math.max(_e.height,fe),Ie),Mt(_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=jr(fe,{x:0,y:0,width:D,height:N},e),Ie=Oe+d+y,it=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?it=ve+a+y+ie.top:ie.bottom!==void 0&&(it=ve+Te-l-y-_e.height-ie.bottom);let Wt=gt(_e,{x:Ie,y:it});Mt(fe,Wt),H.push(Wt)}return s={x:Oe,y:ve,width:Re,height:Te,node:e,children:H},Mt(e,s),yi(e,n,as(e),s),s}function HR(e,t,r,n,o,s,i){let a=[],l=o.flexWrap??"nowrap";if(l!=="nowrap"&&e.length>0)return PM(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=El(W,"flexGrow");let q=kt(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:ki(I.flexBasis,t),ae=I.flexShrink===void 0?1:El(I.flexShrink,"flexShrink"),se=Pt(I.marginLeft??I.marginX??I.margin),Z=Pt(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"?ki(I.width,t)+se+Z:t,Ee=jr(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,$=0,D=0;c===0&&u.length>0&&(m==="space-between"&&u.length>1?$=T/(u.length-1):m==="space-around"?(D=T/(u.length*2),y=D):m==="space-evenly"?($=T/(u.length+1),y=$):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}):jr(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+=$:m==="space-around"?y+=D*2:m==="space-evenly"?y+=$:y+=n}let H=s?r:M;for(let G of N){let{style:I}=G,{layout:W}=G,q=I.alignSelf,oe=q!=="auto"&&q?q:o.alignItems??"flex-start",ae=W.y,se=W.height;oe==="stretch"?(I.height===void 0&&(se=Math.max(W.height,H)),ae=0):oe==="center"?ae=Math.floor((H-W.height)/2):oe==="flex-end"?ae=H-W.height:oe==="baseline"&&(ae=0),W=NR(W,se,I),W=gt(W,{y:ae}),Mt(W.node,W),a.push(W)}return a}function PM(e,t,r,n,o,s,i,a){let l=[],d=[],c=0;for(let D of e){let M=D.props,N=Pt(M.marginLeft??M.marginX??M.margin),H=Pt(M.marginRight??M.marginX??M.margin),G=jr(D,{x:0,y:0,width:t,height:r},i),W=(M.flexBasis===void 0||M.flexBasis==="auto"||M.flexBasis==="content"?G.width:ki(M.flexBasis,t))+N+H,q=c+(d.length>0?n:0)+W;d.length>0&&q>t&&(l.push(d),d=[],c=0),d.push(D),c+=(d.length>1?n:0)+W}d.length>0&&l.push(d),a==="wrap-reverse"&&l.reverse();let u=kt(o.rowGap??o.gap,"rowGap"),p=l.map(D=>{let M=HR(D,t,r,n,{...o,flexWrap:"nowrap",alignContent:void 0},!1,i),N=M.reduce((H,G)=>Math.max(H,G.y+G.height),0);return{layouts:M,height:N}}),g=p.reduce((D,M)=>D+M.height,u*Math.max(0,p.length-1)),f=s?Math.max(0,r-g):0,y=o.alignContent??"flex-start",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=[],$=m;for(let D of p){for(let M of D.layouts){let N=gt(M,{y:M.y+Math.floor($)});Mt(N.node,N),T.push(N)}$+=D.height+u+w}return T}function AM(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=Pt(w.marginTop??w.marginY??w.margin),$=Pt(w.marginBottom??w.marginY??w.margin),D=w.flexGrow;D===void 0?D=w.height==="fill"||m.type==="spacer"?1:0:D=El(D,"flexGrow");let M=kt(w.minHeight,"minHeight"),N=w.maxHeight===void 0?void 0:kt(w.maxHeight,"maxHeight");if(D>0)f+=D,g+=T+$,y.push({node:m,flex:D,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$});else{let H=jr(m,{x:0,y:0,width:t,height:r},s);g+=H.height+T+$,y.push({node:m,flex:0,minHeight:M,maxHeight:N,marginTop:T,marginBottom:$,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 $=0;$<y.length;$++){let D=y[$],N=D.node.props.alignSelf,H=N!=="auto"&&N?N:o.alignItems??"flex-start",G=D.layout;if(D.flex>0){let q=Math.floor(w*D.flex);q=Math.max(D.minHeight,q),D.maxHeight!==void 0&&(q=Math.min(D.maxHeight,q)),G=jr(D.node,{x:0,y:T,width:t,height:q},s),G=gt(G,{height:q})}G||(G=jr(D.node,{x:0,y:T,width:t,height:r},s));let I=G.x,W=G.width;H==="center"?I=Math.floor((t-G.width)/2):H==="flex-end"?I=t-G.width:H==="stretch"&&(W=t),G=gt(G,{x:I,y:T,width:W}),Mt(G.node,G),i.push(G),T+=D.marginTop+G.height+D.marginBottom,$<y.length-1&&(T+=n)}return i}}let l=0;for(let g=0;g<e.length;g++){let f=e[g],y=f.props,m=Pt(y.marginTop??y.marginY??y.margin),w=Pt(y.marginBottom??y.marginY??y.margin),T=jr(f,{x:0,y:l,width:t,height:r-l},s),$=y.alignSelf,D=$!=="auto"&&$?$:o.alignItems??"flex-start",M=T.x,N=T.width;D==="center"?M=Math.floor((t-T.width)/2):D==="flex-end"?M=t-T.width:D==="stretch"&&(N=t);let H=gt(T,{x:M,width:N});Mt(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)}),Mt(i[y].node,i[y]);return i}else if(p==="space-around"){let f=u/(i.length*2);for(let y=0;y<i.length;y++)i[y]=gt(i[y],{y:i[y].y+Math.floor(f*(2*y+1))}),Mt(i[y].node,i[y]);return i}else if(p==="space-evenly"){let f=u/(i.length+1);for(let y=0;y<i.length;y++)i[y]=gt(i[y],{y:i[y].y+Math.floor(f*(y+1))}),Mt(i[y].node,i[y]);return i}if(g>0)for(let f=0;f<i.length;f++)i[f]=gt(i[f],{y:i[f].y+g}),Mt(i[f].node,i[f])}return i}function ki(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 UR={background:0,normal:1,modal:2,critical:3};var qR=new Set;function VR(e,t){process.env.NODE_ENV==="production"||qR.has(e)||(qR.add(e),console.warn(`[tuiuiu] ${t}`))}var CM=Symbol("tuiuiu.hook-runtime-state"),Pp=new WeakMap;function DM(){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(CM,DM,e)}function Ap(e){return Pp.get(e)??null}function zR(e="hooks"){let t=ze();t.hookIndex=0,t.isRendering=!0,t.renderPhaseMode=e}function JR(){let e=ze();e.isRendering=!1,e.renderPhaseMode="hooks";let t=e.hookIndex;if(e.lastMaxHookIndex>0&&t!==e.lastMaxHookIndex&&VR("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++){XR(r,e);let n=e.hookState.state[r];n&&typeof n=="object"&&"registered"in n&&"handlerId"in n&&n.registered&&n.handlerId!==null&&(Ri(n.handlerId),n.handlerId=null,n.registered=!1)}e.hookState.state.length=Math.min(e.hookState.state.length,t),e.lastMaxHookIndex=t}function YR(){return ze().isRendering}function QR(){return ze().renderPhaseMode}function ur(e){let t=ze();t.isRendering||VR("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 Br(e){return ze().hookState.state[e]}function rr(){return ze().hookIndex-1}function Zn(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 XR(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 vl(e){let t=We(e),r=ze(t);qe(t,()=>{for(let n of[...r.hookCleanups.keys()].sort((o,s)=>s-o))XR(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 Cp(e,t){let r=We(t),n=ze(r),o=n.appContext;n.appContext=e,o&&o!==e&&Pp.delete(o),e&&Pp.set(e,r)}function Sl(e,t={}){let{priority:r="normal",stopPropagation:n=!1}=t,o=ze(),s=o.handlerIdCounter++,i={handler:e,priorityValue:UR[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 Ri(e){let t=ze(),r=t.inputHandlers.findIndex(n=>n.id===e);return r!==-1?(t.inputHandlers.splice(r,1),!0):!1}function ZR(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 ew(e){let t=ze(e);t.inputHandlers.length=0,t.handlerIdCounter=0}function Dp(e,t){ze(t).focusManager=e}function tw(e){let t=ze(),r=FM(t,e);for(let n of[...t.mouseHandlers])try{n.handler(r)}catch(o){console.error("[tuiuiu] Error in mouse handler:",o)}}function rw(e){let t=ze(e);t.mouseHandlers.length=0,t.mouseHandlerIdCounter=0,t.lastMouseClick=null}var OM=300,KR=2;function FM(e,t){if(t.action!=="click")return t;let r=Date.now(),n=e.lastMouseClick;return n&&n.button===t.button&&r-n.time<OM&&Math.abs(t.x-n.x)<=KR&&Math.abs(t.y-n.y)<=KR?(e.lastMouseClick=null,{...t,action:"double-click"}):(e.lastMouseClick={x:t.x,y:t.y,time:r,button:t.button},t)}function nw(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 ow(e){let t=ze(e);t.pasteHandlers.length=0,t.pasteHandlerIdCounter=0}var wi=[],Pl=!1,Op=!1,Tl=0,_i=null,xi=null;function sw(){if(!Op){Op=!0;for(let e=wi.length-1;e>=0;e--)try{wi[e]()}catch{}Op=!1}}function Zr(e){return wi.push(e),()=>{let t=wi.indexOf(e);t!==-1&&wi.splice(t,1)}}function iw(){Tl++,Pl||(Pl=!0,_i=()=>{sw()},xi=()=>{sw()},process.on("exit",_i),process.on("uncaughtExceptionMonitor",xi));let e=!1;return()=>{e||(e=!0,Tl=Math.max(0,Tl-1),Tl===0&&IM())}}function IM(){Pl&&(_i&&process.off("exit",_i),xi&&process.off("uncaughtExceptionMonitor",xi),_i=null,xi=null,Pl=!1)}var aw=/^\x1b\[<(\d+);(\d+);(\d+);(\d+);(\d+)([Mm])/,lw=/^\x1b\[<(\d+);(\d+);(\d+)([Mm])/,dw=/^\x1b\[M([\x00-\xff])([\x00-\xff])([\x00-\xff])/,cw=/^\x1b\[(\d+);(\d+);(\d+)M/;function fr(e){let t=Number.parseInt(e,10);return Number.isSafeInteger(t)?t:null}function Al(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 uw(e){let t=aw.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=Al(s,l,d,t[6]==="m");return c?(c.pixelX=i,c.pixelY=a,{event:c,length:t[0].length}):null}let r=lw.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=Al(s,i,a,r[4]==="m");return l?{event:l,length:r[0].length}:null}let n=dw.exec(e);if(n){let s=n[1].charCodeAt(0)-32,i=n[2].charCodeAt(0)-32,a=n[3].charCodeAt(0)-32,l=Al(s,i,a,!1);return l?{event:l,length:n[0].length}:null}let o=cw.exec(e);if(o){let s=fr(o[1]),i=fr(o[2]),a=fr(o[3]);if(s===null||i===null||a===null)return null;let l=Al(s-32,i,a,!1);return l?{event:l,length:o[0].length}:null}return null}function pw(e){return aw.test(e)||lw.test(e)||dw.test(e)||cw.test(e)}var MM="\x1B[?1000h\x1B[?1002h\x1B[?1006h",fw="\x1B[?1000l\x1B[?1002l\x1B[?1003l\x1B[?1006l",LM=Symbol("tuiuiu.mouse-runtime-state");function Ei(e){return Fe(LM,()=>({trackingEnabled:!1,trackingRefCount:0,outputStream:null,panicRegistered:!1,unregisterPanic:null}),e)}function Fp(e){return Xr(e)?.stdout??process.stdout}function Ip(e){return"isTTY"in e&&!!e.isTTY}function vi(e){return uw(e)}function Mp(e){return pw(e)}function ls(e){let t=We(e),r=Ei(t);if(r.trackingRefCount++,!r.trackingEnabled){r.trackingEnabled=!0,jM(t);let n=Fp(t);r.outputStream=n,Ip(n)&&n.write(MM)}}function eo(e){let t=We(e),r=Ei(t);if(r.trackingRefCount=Math.max(0,r.trackingRefCount-1),r.trackingRefCount===0&&r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Fp(t);Ip(n)&&n.write(fw),r.outputStream=null}}function Cl(e){let t=We(e),r=Ei(t);if(r.trackingRefCount=0,r.trackingEnabled){r.trackingEnabled=!1;let n=r.outputStream??Fp(t);Ip(n)&&n.write(fw),r.outputStream=null}}function jM(e){let t=Ei(e);t.panicRegistered||(t.panicRegistered=!0,t.unregisterPanic=Zr(Qr(e,()=>Cl(e))))}function gw(e){let t=Ei(e);t.unregisterPanic&&(t.unregisterPanic(),t.unregisterPanic=null),t.panicRegistered=!1}import{deflateSync as NM}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},BM={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 $M(e=process.env){let t=e.TERM_PROGRAM||"",r=e.TERM||"";return e.KITTY_WINDOW_ID?"kitty":e.ALACRITTY_WINDOW_ID||e.ALACRITTY_LOG?"alacritty":e.GHOSTTY_RESOURCES_DIR?"ghostty":e.WEZTERM_PANE||t==="WezTerm"?"wezterm":t==="rio"?"rio":e.WARP_IS_LOCAL_SHELL_SESSION?"warp":r.startsWith("foot")||r==="foot"?"foot":e.CONTOUR_TERMINAL_ID?"contour":e.VSCODE_PID||t==="vscode"?"vscode":t==="iTerm.app"?"iterm2":t==="Apple_Terminal"?"terminal-app":e.WT_SESSION?"windows-terminal":e.KONSOLE_VERSION?"konsole":e.VTE_VERSION?e.TILIX_ID?"tilix":"gnome-terminal":t==="Hyper"?"hyper":e.TERMINOLOGY?"terminology":t==="mlterm"?"mlterm":t==="blackbox"||e.BLACKBOX_THEMES_DIR?"black-box":t==="Bobcat"?"bobcat":r.includes("rxvt-unicode")||r.includes("rxvt")?"rxvt-unicode":r.includes("mlterm")?"mlterm":r==="st-256color"||r==="st"?"st":"unknown"}function mw(e=process.env){return e.TMUX?{type:"tmux",version:e.TMUX?.split(",")[1],needsPassthrough:!0}:e.STY?{type:"screen",version:void 0,needsPassthrough:!0}:e.ZELLIJ?{type:"zellij",version:(e.ZELLIJ_SESSION_NAME,void 0),needsPassthrough:!1}:null}function Dl(e=process.env){let t=$M(e),r=BM[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 ww=Symbol("tuiuiu.graphics-runtime-state");function _w(e){return{detectedProtocol:null,manualOverride:(e.id===0?null:It(ww,()=>_w(Mr())))?.manualOverride??null,negotiatedCapabilities:null,activeDetectionPromise:null,nextTerminalImageProtocolStateId:1,nextKittyImageId:1,cellSizeChangeListeners:new Set}}function $p(){let e=We();return Fe(ww,()=>_w(e),e)}var hw={width:10,height:20};function Ol(e){return{width:Math.max(1,Math.round(e?.width??hw.width)),height:Math.max(1,Math.round(e?.height??hw.height))}}function GM(){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 xw(){return GM()?"halfblock":"braille"}function ds(e){return e==="none"?xw():e}function Ew(e){let t=ds(e);return t==="halfblock"||t==="braille"}function vw(e){let t=ds(e);return t==="kitty"||t==="iterm2"||t==="sixel"}function bw(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 Sw(){let e=process.env.TUIUIU_GRAPHICS?.toLowerCase();return e&&qM(e)?e:null}function Tw(){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 Pw(){return Dl(process.env).knownCaps.preferredGraphics||null}function Aw(){return(process.env.TERM?.toLowerCase()||"").includes("sixel")?"sixel":null}function WM(){let e=Sw();if(e)return e;let t=Tw();if(t)return t;let r=Pw();return r||Aw()}function HM(e){return Sw()===e||Tw()===e?"env":Pw()===e?"profile":Aw()===e?"env":"fallback"}function cs(){let e=$p();if(e.manualOverride)return bw(e.manualOverride,"manual",Ol(e.negotiatedCapabilities?.cellSize));if(e.negotiatedCapabilities)return e.negotiatedCapabilities;let t=UM();return bw(t,HM(t),Ol())}function UM(){let e=$p();return e.manualOverride?e.manualOverride:e.negotiatedCapabilities?e.negotiatedCapabilities.protocol:(e.detectedProtocol||(e.detectedProtocol=WM()??xw()),e.detectedProtocol)}function qM(e){return["kitty","iterm2","sixel","halfblock","braille","none"].includes(e)}function Cw(){let e=$p();if(e.negotiatedCapabilities){let t=e.negotiatedCapabilities.cellSize;e.negotiatedCapabilities={...e.negotiatedCapabilities,cellSize:Ol(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 KM(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 Dw(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function Ti(e){return Dw(e)?e:Il(e)}function yw(e,t,r){return e<=0||t<=0||r<=0?1:Math.max(1,Math.round(e*(r/t)))}function Il(e,t={}){let r=Ol(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:KM(e)}}function Pi(e,t={}){let r=Dw(e)?e:Il(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=yw(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=yw(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=Ti(e),n=Pi(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=XM(r),l=Ow(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\\"}},VM={display(e,t={}){let{pixels:r}=Ti(e),n=t.width?`width=${t.width}`:"width=auto",o=t.height?`height=${t.height}`:"height=auto",s=Ow(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`}},zM={encode(e,t={}){let r=Ti(e),n=Pi(r,t),o=t.width!==void 0||t.height!==void 0?Fw({width:r.width,height:r.height,pixels:r.pixels},n.resizedPixelWidth,n.resizedPixelHeight):r,{width:s,height:i,pixels:a}=o,l=ZM(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,$=a[T],D=a[T+1],M=a[T+2];eL([$,D,M],l)===u&&(y|=1<<m,p=!0)}g+=String.fromCharCode(63+y)}p&&(d+=g+"$")}d+="-"}return d+="\x1B\\",d}};function kw(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 Lp(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 Rw={render(e,t={}){let r=Ti(e),n=Pi(r,t),o=Math.max(1,n.renderColumns),s=Math.max(1,n.renderRows*2),i=Fw(e,o,s),a=[];for(let l=0;l<s;l+=2){let d="",c;for(let u=0;u<o;u++){let p=kw(i,u,l),g=kw(i,u,l+1),f=" ",y;p.a>0&&g.a>0?(f="\u2580",y=Lp(p,g)):p.a>0?(f="\u2580",y=Lp(p)):g.a>0&&(f="\u2584",y=Lp(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
|
-
`)}},
|
|
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
|
+
`)}},xi=10240,uL={render(e,t={}){let{width:r,height:n,pixels:o}=Ei(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&&bL(d,r,n);let c=[];for(let u=0;u<l;u++){let p="";for(let g=0;g<a;g++){let f=0,y=[[0,0,0],[0,1,1],[0,2,2],[1,0,3],[1,1,4],[1,2,5],[0,3,6],[1,3,7]];for(let[m,w,T]of y){let B=g*2+m,C=u*4+w;if(B<r&&C<n){let M=C*r+B;d[M]<s&&(f|=1<<T)}}p+=String.fromCharCode(xi+f)}c.push(p)}return c.join(`
|
|
122
122
|
`)},invert(e){let t="";for(let r of e){if(r===`
|
|
123
|
-
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=
|
|
123
|
+
`){t+=r;continue}let n=r.charCodeAt(0);if(n>=xi&&n<xi+256){let o=xi+(255-(n-xi));t+=String.fromCharCode(o)}else t+=r}return t}};function Ll(e,t,r={}){switch(ds(e)){case"kitty":return us.transmit(t,r);case"iterm2":return dL.display(t,r);case"sixel":return cL.encode(t,r);case"halfblock":return Tw.render(t,r);case"braille":return uL.render(t,r);default:return Tw.render(t,r)}}function jl(e){switch(ds(e)){case"kitty":return us.clear();case"iterm2":return"";case"sixel":return"";case"halfblock":case"braille":return"";default:return""}}var Mp=null;function pL(){if(Mp)return Mp;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 Mp=e,e}function fL(e){let t=pL(),r=4294967295;for(let n=0;n<e.length;n++)r=t[(r^e[n])&255]^r>>>8;return(r^4294967295)>>>0}function Il(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 Lp(e,t){let r=new Uint8Array(8+t.length+4);Il(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 Il(r,fL(n),8+t.length),r}function gL(e){let{width:t,height:r,pixels:n}=e,o=new Uint8Array([137,80,78,71,13,10,26,10]),s=new Uint8Array(13);Il(s,t,0),Il(s,r,4),s[8]=8,s[9]=6,s[10]=0,s[11]=0,s[12]=0;let i=Lp("IHDR",s),a=t*4,l=new Uint8Array((1+a)*r);for(let f=0;f<r;f++){let y=f*a,m=f*(1+a);l[m]=1;for(let w=0;w<a;w++){let T=n[y+w],B=w>=4?n[y+w-4]:0;l[m+1+w]=T-B&255}}let d=rL(Buffer.from(l)),c=Lp("IDAT",new Uint8Array(d.buffer,d.byteOffset,d.byteLength)),u=Lp("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 Bw(e){return Buffer.from(e).toString("base64")}function mL(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 hL(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 bL(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 Nw(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 Bp(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 $l(e,t,r=0,n=0,o=null,s){let{node:i,x:a,y:l,width:d,height:c,children:u}=e,p=r+a,g=n+l,f=s?Math.max(p,s.x):p,y=s?Math.max(g,s.y):g,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>y&&t(i,f,y,m-f,w-y,o);let T=i.props,B=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+B+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?yL(s,q):s;for(let ae of u)$l(ae,t,N,G,i,oe)}function yL(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 Gw(e){let t=[],r=0;return $l(e,(n,o,s,i,a)=>{Bp(n)&&t.push({node:n,x:o,y:s,width:i,height:a,zIndex:r++})}),t}var $p=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),Bp(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){$l(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=cs().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=cs().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,ls(),this.inputHandler=r=>{let n=_i(r);n&&this.handleMouseEvent(n.event)},t(this.inputHandler))}disable(){this.mouseTrackingEnabled&&(this.mouseTrackingEnabled=!1,Zn(),this.inputHandler=null)}hasClickableElements(){return this.elements.length>0}get count(){return this.elements.length}getElements(){return[...this.elements]}},kL=Symbol("tuiuiu.hit-test-registry");function ps(e){return Fe(kL,()=>new $p,e)}function Np(e,t=0){let r=ps();if(r.clear(),t===0){r.registerFromLayout(e);return}$l(e,(n,o,s,i,a,l)=>{Bp(n)&&r.register(n,o,s+t,i,a,l)})}import rr from"node:path";import{fileURLToPath as qw}from"node:url";var RL=[{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
124
|
const [count, setCount] = createSignal(0);
|
|
125
125
|
useHotkeys('up', () => setCount(c => c + 1));
|
|
126
126
|
return Text({}, \`Count: \${count()}\`);
|
|
@@ -190,51 +190,51 @@ useEffect(() => {
|
|
|
190
190
|
return Box({},
|
|
191
191
|
ComputedText(() => \`Score: \${score()}\`),
|
|
192
192
|
);
|
|
193
|
-
})`,rightExample:"// Keep hooks at the top level of the component\nComputedText(() => `Score: ${score()}`),\nComputed(() => {\n // Only use plain VNode constructors inside Computed\n return Box({}, Text({}, `Lives: ${lives()}`));\n})"}];function
|
|
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=jw(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){!Nw()||Lw.has(e)||(Lw.add(e),console.warn(`[tuiuiu] ${t}`))}function Ai(e){Bl++;try{return e()}finally{Bl=Math.max(0,Bl-1)}}function Gw(e,t){if(!Nw()||Bl>0||!YR()||QR()!=="component")return;let r=uL(e,[t])[0];if(!r||dL(r.filePath))return;let n=cL(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(). ${Mw("signals-inside-component-render")}`)}var xn=null,Di=new Set,Ci=!1,Up=class{_value;_subs=null;constructor(t){this._value=t}get value(){return xn&&xn._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 En){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 En){let r=this._subs;Ci?Di.add(r):r.notify();return}let t=[...this._subs];for(let r of t)Ci?Di.add(r):r.notify()}unsubscribe(t){if(this._subs!==null){if(this._subs instanceof En){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)}}},Hp=null;var qp=!1,$l=new Set;function fL(e){$l.add(e),qp||(qp=!0,queueMicrotask(gL))}function gL(){qp=!1;let e=[...$l];$l.clear(),Ww(e,t=>t.run())}function Ww(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 En=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?fL(this):this.run()}run(){if(this.scheduled=!1,!(this.running||this.disposed)){this.running=!0;try{this._runCleanups(),this._nextDeps=new Set;let t=Hp;Hp=this._cleanups;let r=xn;xn=this;try{let s=this.fn();this._returnCleanup=typeof s=="function"?s:void 0}catch(s){throw this._nextDeps=null,s}finally{xn=r,Hp=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,$l.delete(this),Di.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){Gw(new Error().stack,import.meta.url);let t=new Up(e);return[()=>t.value,o=>{typeof o=="function"?t.update(o):t.value=o}]}function Hw(e,t={}){let r=new En(e,t);return()=>r.dispose()}function Gt(e){let t=Ci;Ci=!0;try{e()}finally{if(Ci=t,!t){let r=[...Di];Di.clear(),Ww(r,n=>n.notify())}}}function fs(e){let t=xn;xn=null;try{return e()}finally{xn=t}}var mL=Symbol("tuiuiu.terminal-focus-state");function hL(){let[e,t]=gr(!0);return{read:e,write:t,listeners:new Set}}function Kp(e){return Fe(mL,hL,e)}function mr(e){return Kp(e).read()}function Vp(e,t){let r=Kp(t);if(r.read()!==e){r.write(e);for(let n of r.listeners)n(e)}}function Nl(e,t){let r=Kp(t);return r.listeners.add(e),()=>{r.listeners.delete(e)}}function zp(e){Vp(!0,e)}var to={targetFps:60,reducedFps:30,unfocusedFps:10,frameBudgetMs:16.67,recoveryFrames:5,elevatedFrameBudgetFactor:1,criticalFrameBudgetFactor:2},qw=Symbol("tuiuiu.motion-runtime-state");function Kw(e){let t=e.id===0?null:It(qw,()=>Kw(Mr())),r={config:{...t?.config??to},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](){zw(r),r.cleanupFocusSubscription?.(),r.cleanupFocusSubscription=null,r.frameCallbacks.clear(),r.intervalSubscriptions.clear()}};return r}function Yp(){let e=We();return Fe(qw,()=>Kw(e),e)}function Gl(e,t){return Number.isFinite(e)?Math.max(1,Math.round(e)):t}function Jp(e,t){return Number.isFinite(e)?Math.max(.1,e):t}function bL(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 Vw(e){return e.frameCallbacks.size>0||e.intervalSubscriptions.size>0}function yL(e){e.cleanupFocusSubscription||(e.cleanupFocusSubscription=Nl(Qr(e.scope,t=>{if(t){let r=Date.now();for(let n of e.intervalSubscriptions.values())n.pauseWhenUnfocused&&(n.lastRunAt=r)}Wl(e)})))}function Qp(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 Uw(e,t,r,n){return{now:t,deltaMs:n,tier:e.qualityTier,focused:mr(e.scope),budgetMs:e.config.frameBudgetMs,targetFrameMs:r}}function kL(e,t){let r=mr(e.scope),n=Number.POSITIVE_INFINITY;if(e.frameCallbacks.size>0){let o=Qp(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 zw(e){e.schedulerTimer&&(clearTimeout(e.schedulerTimer),e.schedulerTimer=null)}function Jw(e){if(e.schedulerTimer||!Vw(e))return;yL(e);let t=kL(e,Date.now());t!==null&&(e.schedulerTimer=setTimeout(Qr(e.scope,()=>RL(e)),t))}function RL(e){if(e.schedulerTimer=null,!Vw(e))return;let t=Date.now(),r=mr(e.scope),n=Qp(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=Uw(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(Uw(e,t,n,Math.max(s.intervalMs,i))))}Jw(e)}function Wl(e){zw(e),Jw(e)}function Yw(e){let t=Yp(),r=Gl(e.targetFps??t.config.targetFps,to.targetFps),n=Gl(e.reducedFps??t.config.reducedFps,Math.max(1,Math.floor(r/2)));t.config={targetFps:r,reducedFps:Math.min(r,n),unfocusedFps:Gl(e.unfocusedFps??t.config.unfocusedFps,to.unfocusedFps),frameBudgetMs:Jp(e.frameBudgetMs??t.config.frameBudgetMs,to.frameBudgetMs),recoveryFrames:Gl(e.recoveryFrames??t.config.recoveryFrames,to.recoveryFrames),elevatedFrameBudgetFactor:Jp(e.elevatedFrameBudgetFactor??t.config.elevatedFrameBudgetFactor,to.elevatedFrameBudgetFactor),criticalFrameBudgetFactor:Jp(e.criticalFrameBudgetFactor??t.config.criticalFrameBudgetFactor,to.criticalFrameBudgetFactor)},Wl(t)}function Hl(){let e=Yp();return{config:{...e.config},qualityTier:e.qualityTier,presentationPressure:e.presentationPressure,focused:mr(e.scope),targetFrameMs:Qp(e),recommendedPresentationIntervalMs:bL(e),onBudgetStreak:e.onBudgetStreak,pressureOnBudgetStreak:e.pressureOnBudgetStreak}}function wL(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 Qw(e){let t=Yp();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"),Wl(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?wL(t):_L(t),Wl(t),t.qualityTier}function vn(e){return Number.isFinite(e)?Math.max(0,Math.min(1,e)):0}function Xw(e){return!!(e&&typeof e=="object"&&"key"in e&&typeof e.key=="string"&&Array.isArray(e.transforms))}function Zw(e){return e?Ft({key:e.key,transforms:e.transforms}):null}function Oi(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 xL(e,t){let r=Oi(e);return r.x+=Math.round(t.offsetX),r.y+=Math.round(t.offsetY),r}function EL(e,t){let r=vn(t.opacity);if(r<=0)return null;if(e.type!=="text"||r>=.67)return e;let n=Oi(e);return n.style={...n.style,dim:!0,bold:r>=.4?n.style.bold:!1},n}function vL(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 SL(e,t,r){let n=vn(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=Oi(e);return a.clip=vL(a.clip,i),a.clip.width>0&&a.clip.height>0?a:null}function TL(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 PL(e,t,r){if(e.type!=="text")return e;let n=vn(t.span??.35),o=r.x+Math.round((r.width+Math.max(1,r.width*n))*vn(t.phase))-Math.round(r.width*n),s=o+Math.max(1,Math.round(r.width*n));if(!TL(e,r,o,s))return e;let i=Oi(e);return i.style={...i.style,bold:!0,inverse:!0},i}function AL(e,t,r){let n=vn(t.progress);if(n<=0)return null;if(n>=1)return e;let o=Oi(e);if(t.direction==="left"||t.direction==="right"){let p=Math.max(0,Math.round(r.width*n));if(p<=0)return null;let g=t.direction==="left"?r.x:r.x+r.width-p,f=g+p;if(o.type==="text"){let $=o.x,D=o.x+Math.max(1,o.maxWidth),M=Math.max($,g),N=Math.min(D,f);if(N<=M)return null;let H=Math.max(0,M-$),G=Math.max(H,N-$);return o.text=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 CL(e,t,r){let n=Hl().qualityTier,o=e;for(let s of t){if(!o)return null;if(n==="skip"){if(s.kind==="fade"&&vn(s.opacity)<=0||s.kind==="scale"&&vn(s.scale)<=0||s.kind==="reveal"&&vn(s.progress)<=0)return null;continue}if(!(n==="reduced"&&s.kind==="shimmer"))switch(s.kind){case"slide":case"spring":o=xL(o,s);break;case"fade":o=EL(o,s);break;case"scale":o=SL(o,s,r);break;case"shimmer":o=PL(o,s,r);break;case"reveal":o=AL(o,s,r);break}}return o}function e_(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=CL(s,a.transforms,a.bounds))}s&&r.push(s)}return r}var DL=1,OL=Symbol("tuiuiu.frame-runtime-state");function Zp(e){return Fe(OL,()=>({committedFrameSnapshot:null}),e)}var FL=new Set(["__terminalImage","__compositor"]),IL=new Set(["id","backgroundColor","__fillChar","borderStyle","borderColor","borderTopColor","borderBottomColor","borderLeftColor","borderRightColor","borderDim","borderDimTop","borderDimBottom","borderDimLeft","borderDimRight","borderTop","borderBottom","borderLeft","borderRight","borderText","borderTextAlign","borderTextColor","borderTextBold"]),ML=new Set(["id","children","__divider","__splitDivider","color","backgroundColor","bold","dim","italic","underline","strikethrough","inverse","wrap"]),Xp={eagerHitTargets:!0,eagerQueries:!0,eagerWarnings:!0},Ul=new WeakMap,Tn=new Map,n_=4096;function Sn(){return typeof performance<"u"?performance.now():Date.now()}function LL(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 jL(e){return{eagerHitTargets:e?.eagerHitTargets??Xp.eagerHitTargets,eagerQueries:e?.eagerQueries??Xp.eagerQueries,eagerWarnings:e?.eagerWarnings??Xp.eagerWarnings}}function BL(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,$=p+w+T,D=g+m+T;for(let M of u)r(M,$,D)};return r(e),t}function $L(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 NL(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&&$L(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,$=p+w+T,D=g+m+T;for(let M of u)r(M,$,D)};return r(e),t}function GL(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 t_(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 WL(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 HL(e,t,r,n,o){return{getElement:s=>{let i=t_(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=t_(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=WL(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 UL(e,t,r,n=[],o){let s=n.length>0?Ft(n):"",i=o?`${o.x},${o.y},${o.width},${o.height}`:"";return`${e}:${t}:${r??""}:${s}:${i}`}function qL(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 KL(e,t){let r=e.type==="text"?ML:IL,n=e.props,o={};if(n)for(let s of r)s in n&&(o[s]=n[s]);return Ft({type:e.type,props:o,image:t?{protocol:t.protocol,hash:t.source.hash,width:t.width,height:t.height,instanceKey:t.instanceKey,kittyImageId:t.kittyImageId,fit:t.fit,threshold:t.threshold,dither:t.dither,preserveAspectRatio:t.preserveAspectRatio}:null},{ignoreKeys:FL})}function VL(e,t,r,n,o,s){return Ft([t,r,Zw(n)??"",o.length,...o,e.x,e.y,e.width,e.height,s.length,...s])}function zL(e,t,r){if(!xl(e.node))return;let n=Ul.get(e);if(!n)return;if(n.cacheKey!==t){_n(e.node,Ce.LAYOUT);return}let o=r();if(n.fingerprint!==o){_n(e.node,Ce.CONTENT|Ce.STYLE);return}if(n.childRefs.length!==e.node.children.length){_n(e.node,Ce.CHILDREN);return}for(let s=0;s<n.childRefs.length;s++)if(n.childRefs[s]!==e.node.children[s]){_n(e.node,Ce.CHILDREN);return}return n}function r_(e,t,r,n,o,s){let i={cacheKey:t,fingerprint:r,childRefs:[...e.node.children],commands:n,hasCompositor:o,subtreeSignature:s};return Ul.set(e,i),i}function JL(e){return e.map((t,r)=>({...t,order:r}))}function o_(e,t){return t?`${e}|motion:${Hl().qualityTier}`:e}function YL(){let e=Math.max(1,Math.ceil(n_*.1)),t=Tn.keys();for(let r=0;r<e;r++){let n=t.next();if(n.done)break;Tn.delete(n.value)}}function QL(e){return Tn.get(e)}function XL(e,t,r){let n=Tn.get(e),o={commands:t,hasCompositor:r,materialized:n?.materialized,materializedSignature:n?.materializedSignature};return!Tn.has(e)&&Tn.size>=n_&&YL(),Tn.set(e,o),o}function ZL(e,t,r){let n=Tn.get(e);n&&(n.materialized=t,n.materializedSignature=r)}function ej(e,t){for(let r of t)e.push(r)}function tj(e){return"desiredColumns"in e&&"desiredRows"in e&&"hash"in e}function rj(e){return!!(e&&typeof e=="object"&&"source"in e&&e.source&&typeof e.source=="object")}function s_(e){let t=e.props;return Xw(t?.__compositor)?t.__compositor:null}function i_(e,t=new Map){let r=s_(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)i_(n,t);return t}function nj(e,t,r,n,o,s){if(!rj(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=tj(y.source)?y.source:Il(y.source,{cellSize:m.cellSize}),T=y.options?.protocol??m.protocol,$=ds(T),D=Pi(w,{...y.options,width:y.options?.width??g,height:y.options?.height??f}),M=Math.max(0,Math.min(g,D.renderColumns)),N=Math.max(0,Math.min(f,D.renderRows));return M<=0||N<=0?null:{type:"terminal-image",id:typeof s.id=="string"?s.id:void 0,nodeType:e.node.type,x:u,y:p,width:M,height:N,instanceKey:y.protocolState?.instanceKey,kittyImageId:y.protocolState?.kittyImageId,source:w,fit:D.fit,threshold:y.options?.threshold,dither:y.options?.dither,preserveAspectRatio:y.options?.preserveAspectRatio,protocol:$,cellRender:Ew($),protocolState:y.protocolState}}function oj(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 a_(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=s_(i),m=y?[...o,y.key]:[...o],w=y!==null,T=nj(e,p,g,d,c,f),$=T?`:${T.protocol}:${T.source.hash}:${T.width}x${T.height}:${T.fit}:${T.threshold??""}:${T.dither?1:0}:${T.preserveAspectRatio?1:0}`:"",D=UL(t,r,n,m,s)+$,M,N=()=>(M===void 0&&(M=KL(i,T)),M),H=zL(e,D,N);if(H)return hi("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?qL(s,we):s;for(let ie of u){let _e=a_(ie,pe,Ee,ke,m,Oe);q.push(_e),w||=_e.hasCompositor,oe.push(_e.subtreeSignature)}let ve=VL(e,D,G,y,m,oe),Re=QL(ve);if(Re){hi("draw");let ie=r_(e,D,G,Re.commands,Re.hasCompositor,ve),_e=o_(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(`
|
|
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 wL(e){let t=RL.find(r=>r.code===e);if(!t)throw new Error(`Unknown common mistake: ${e}`);return t}function _L(e){return`docs/resources/common-mistakes.md#${wL(e).anchor}`}function Ww(e){return`See ${_L(e)} or tuiuiu://guide/common-mistakes.`}var Hw=new Set,Kw=rr.normalize(qw(import.meta.url)),xL=rr.dirname(rr.dirname(Kw)),EL=rr.dirname(xL),Bl=0;function Vw(){return process.env.NODE_ENV!=="production"}function Uw(e){return e.startsWith("file://")?rr.normalize(qw(e)):rr.normalize(e)}function vL(e){let t=rr.normalize(e);return t.startsWith(EL)?t.includes(`${rr.sep}src${rr.sep}`)||t.includes(`${rr.sep}dist${rr.sep}`):!1}function SL(e){let t=rr.relative(process.cwd(),e.filePath),r=t&&!t.startsWith("..")?t:e.filePath;return e.line===void 0?r:`${r}:${e.line}`}function TL(e,t=[]){if(!e)return[];let r=new Set([Kw,...t.map(Uw)]),n=e.split(`
|
|
194
|
+
`).slice(1),o=[];for(let s of n){let i=s.trim(),a=i.match(/\((.+):(\d+):(\d+)\)$/)??i.match(/(?:^|\s)at (.+):(\d+):(\d+)$/);if(!a)continue;let l=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
195
|
`):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)ej(Te,ie.commands);Xn("draw");let fe=r_(e,D,G,Te,w,ve);return XL(ve,fe.commands,w),{commands:fe.commands,hasCompositor:w,subtreeSignature:ve}}function sj(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 ij(e){let t=null;for(let r=0;r<e.length;r++){let n=e[r],o=sj(n);o!==n&&(t||(t=[...e]),t[r]=o)}return t??e}function aj(e){let t=a_(e),r=Ul.get(e),n=o_(t.subtreeSignature,t.hasCompositor);if(r?.materialized){if(n===r.materializedSignature)return r.materialized;r.materialized=void 0,r.materializedSignature=void 0}let o=JL(t.commands),s=t.hasCompositor?e_(o,i_(e)):o,i=ij(s),a=Ul.get(e);return a&&(a.materialized=i,a.materializedSignature=n),ZL(t.subtreeSignature,i,n),i}function l_(e,t,r={}){let n=jL(r),o=LL(t),s=Date.now(),i=Sn(),a=Sn(),l=WR(e,o.width,o.height),d=Sn()-a,c=Sn(),u=aj(l),p=oj(u),g=Sn()-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=BR();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,$=[],D=!1,M=()=>(m||(m=BL(l)),m),N=()=>(w||(w=NL(l)),w),H=()=>{if(!T){let ae=Sn();T=Iw(l),f.phases.hitTargetRegistrationMs=Sn()-ae,f.structural.hitTargetCount=T.length}return T},G=()=>(D||($.push(...GL(M())),D=!0,f.structural.warningCount=$.length),$);n.eagerQueries&&(M(),N()),n.eagerWarnings&&G(),n.eagerHitTargets&&H();let I=HL(M,N,o,$,f),W=Date.now(),q=Sn()-i;return f.frameEndAt=W,f.totalFrameMs=q,{info:{frameId:DL++,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 d_(e,t){Zp(t).committedFrameSnapshot=e}function c_(e){return Zp(e).committedFrameSnapshot}function u_(e){Zp(e).committedFrameSnapshot=null}function st(e,t,r){e.metrics.phases[t]=r,e.metrics.frameEndAt=Date.now(),e.metrics.totalFrameMs=Math.max(0,e.metrics.frameEndAt-e.metrics.frameStartAt)}function At(e,t,r){e.metrics.structural[t]=r}function p_(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 g_=Symbol("tuiuiu.progressive-runtime-state");function f_(){return{nerdFontsEnabled:!1,hyperlinksEnabled:!0,progressiveVersion:0,capabilityOverrides:null}}function lj(e){if(e.id===0)return f_();let t=It(g_,f_);return{nerdFontsEnabled:t.nerdFontsEnabled,hyperlinksEnabled:t.hyperlinksEnabled,progressiveVersion:t.progressiveVersion,capabilityOverrides:t.capabilityOverrides?{...t.capabilityOverrides}:null}}function ef(){let e=We();return Fe(g_,()=>lj(e),e)}function m_(){return ef().nerdFontsEnabled||process.env.NERD_FONT==="1"||process.env.NERD_FONTS==="1"}function h_(){return ef().capabilityOverrides}function tf(){return ef().progressiveVersion}function dj(e={}){let t=e.env??process.env,r=t.TERM||"",n=t.COLORTERM||"",o=t.TERM_PROGRAM||"",s=t.TERM_PROGRAM_VERSION||"",i=Dl(t),a=mw(t),l=i.knownCaps,d=!!(t.CI||t.CONTINUOUS_INTEGRATION||t.GITHUB_ACTIONS||t.GITLAB_CI||t.CIRCLECI||t.TRAVIS||t.JENKINS_URL||t.BUILDKITE),c=i.name;i.version&&(c=`${i.name} ${i.version}`),i.id==="unknown"&&(c=o||r||"Unknown");let u=!(r==="linux"||r==="dumb"||r.startsWith("vt")||d),p=16;l.trueColor||n==="truecolor"||n==="24bit"?p="truecolor":(r.includes("256color")||o==="iTerm.app"||o==="Hyper"||t.WT_SESSION)&&(p=256),t.FORCE_COLOR==="0"?p=16:t.FORCE_COLOR==="3"&&(p="truecolor");let g=l.mouse||r.includes("xterm")||r.includes("screen")||r.includes("tmux")||r.includes("rxvt")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper"||!!t.WT_SESSION,f=p==="truecolor",y=l.italic||r.includes("xterm")||r.includes("kitty")||r.includes("alacritty")||o==="iTerm.app"||o==="Hyper",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,$=T.columns||80,D=T.rows||24,M=m_(),N={unicode:u,colors:p,mouse:g,trueColor:f,italic:y,strikethrough:m,hyperlinks:w,terminalName:c,isCI:d,columns:$,rows:D,profile:i,synchronizedOutput:l.synchronizedOutput,styledUnderlines:l.styledUnderlines,coloredUnderlines:l.coloredUnderlines,clipboard:l.clipboard,notifications:l.notifications,multiplexer:a,cursorStyleControl:l.cursorStyleControl,windowTitle:l.windowTitle,gpuAccelerated:i.gpuAccelerated,kittyKeyboard:l.kittyKeyboard,focusEvents:l.focusEvents,nerdFonts:M},H=h_();return H&&Object.assign(N,H),N}var b_=Symbol("tuiuiu.capability-runtime-state");function y_(e){let t=e.id===0?"auto":fs(It(b_,()=>y_(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 Fi(e){let t=We(e);return Fe(b_,()=>y_(t),t)}function k_(e){let t=e.source.stdout??process.stdout;return{columns:t.columns||80,rows:t.rows||24}}function cj(e){return dj({env:e.source.env,stdout:e.source.stdout??process.stdout})}function ql(e){return e.cachedCapabilities=cj(e),e.cachedProgressiveVersion=tf(),e.cachedCapabilities}function R_(e){if(e.resizeListener||e.resizeHandlers.size===0)return;let t=e.source.stdout??process.stdout;e.resizeListener=()=>qe(e.scope,()=>{ql(e);let r=k_(e);for(let n of[...e.resizeHandlers])n(r)}),t.on("resize",e.resizeListener)}function w_(e){let t=Fi(),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,R_(t)}function $r(){let e=Fi(),t=tf();return(!e.cachedCapabilities||e.cachedProgressiveVersion!==t)&&ql(e),e.cachedCapabilities??ql(e)}function __(){return ql(Fi())}function x_(){return k_(Fi())}function E_(e){let t=Fi();return t.resizeHandlers.add(e),R_(t),()=>{t.resizeHandlers.delete(e),t.resizeHandlers.size===0&&t.resizeListener&&((t.source.stdout??process.stdout).off("resize",t.resizeListener),t.resizeListener=null)}}var v_={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},uj={single:"4:1",double:"4:2",curly:"4:3",dotted:"4:4",dashed:"4:5"},pj=512,ro=new Map,S_=4e6;function Nr(){return{char:" ",attrs:{}}}function nf(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 fj(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&&nf(e.underlineColor,t.underlineColor)&&!!e.blink==!!t.blink&&!!e.inverse==!!t.inverse&&!!e.hidden==!!t.hidden&&!!e.strikethrough==!!t.strikethrough}function T_(e,t){return e.char===t.char&&nf(e.fg,t.fg)&&nf(e.bg,t.bg)&&fj(e.attrs,t.attrs)&&!!e.isWide==!!t.isWide}function Kl(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>S_)throw new RangeError(`CellBuffer dimensions must be non-negative safe integers totaling at most ${S_} 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||ye(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,ye(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&&ye(s.char)>1&&(this.cells[r][t-1]=Nr(),this.addDamage(t-1,r,1,1))}return}let o=ye(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=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=Yn(n,l);if(!d)break;if(l=d.nextIndex,d.symbol===`
|
|
197
|
-
`)continue;if(a>=this.width)break;let c=ye(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(ye(o)!==1){let c=ye(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(ye(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=
|
|
198
|
-
`)}function sf(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=C_(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+(kj(p.char)-1),s=u}return l(),i!==null&&n.push("\x1B[0m"),n.join("")}function zl(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 Rj="\x1B[?2026h",wj="\x1B[?2026l";function D_(e){let t=e??$r();return t.synchronizedOutput?zl(Rj,t.multiplexer):""}function O_(e){let t=e??$r();return t.synchronizedOutput?zl(wj,t.multiplexer):""}var af={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 I_="\x1B[?25h",_j="\x1B[?25l",Jl=!1,F_=!1,xj=null,lf=null;function df(e){return"isTTY"in e&&!!e.isTTY}function Ej(){let e=lf??process.stdout;df(e)&&Jl&&(e.write(I_),Jl=!1)}function vj(){F_||(F_=!0,xj=Zr(Ej))}function ms(e=process.stdout){df(e)&&(lf=e,Jl=!1,e.write(I_))}function hs(e=process.stdout){df(e)&&(lf=e,vj(),Jl=!0,e.write(_j))}var Sj="#ffffff",Tj="#000000",Pj="transparent",k={50:"#f8fafc",100:"#f1f5f9",200:"#e2e8f0",300:"#cbd5e1",400:"#94a3b8",500:"#64748b",600:"#475569",700:"#334155",800:"#1e293b",900:"#0f172a",950:"#020617"},Aj={50:"#f9fafb",100:"#f3f4f6",200:"#e5e7eb",300:"#d1d5db",400:"#9ca3af",500:"#6b7280",600:"#4b5563",700:"#374151",800:"#1f2937",900:"#111827",950:"#030712"},Cj={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"},Dj={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"},Oj={50:"#fefce8",100:"#fef9c3",200:"#fef08a",300:"#fde047",400:"#facc15",500:"#eab308",600:"#ca8a04",700:"#a16207",800:"#854d0e",900:"#713f12",950:"#422006"},Fj={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"},Ij={50:"#ecfdf5",100:"#d1fae5",200:"#a7f3d0",300:"#6ee7b7",400:"#34d399",500:"#10b981",600:"#059669",700:"#047857",800:"#065f46",900:"#064e3b",950:"#022c22"},Mj={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"},Lj={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"},jj={50:"#eef2ff",100:"#e0e7ff",200:"#c7d2fe",300:"#a5b4fc",400:"#818cf8",500:"#6366f1",600:"#4f46e5",700:"#4338ca",800:"#3730a3",900:"#312e81",950:"#1e1b4b"},Bj={50:"#f5f3ff",100:"#ede9fe",200:"#ddd6fe",300:"#c4b5fd",400:"#a78bfa",500:"#8b5cf6",600:"#7c3aed",700:"#6d28d9",800:"#5b21b6",900:"#4c1d95",950:"#2e1065"},$j={50:"#faf5ff",100:"#f3e8ff",200:"#e9d5ff",300:"#d8b4fe",400:"#c084fc",500:"#a855f7",600:"#9333ea",700:"#7e22ce",800:"#6b21a8",900:"#581c87",950:"#3b0764"},Nj={50:"#fdf4ff",100:"#fae8ff",200:"#f5d0fe",300:"#f0abfc",400:"#e879f9",500:"#d946ef",600:"#c026d3",700:"#a21caf",800:"#86198f",900:"#701a75",950:"#4a044e"},Gj={50:"#fdf2f8",100:"#fce7f3",200:"#fbcfe8",300:"#f9a8d4",400:"#f472b6",500:"#ec4899",600:"#db2777",700:"#be185d",800:"#9d174d",900:"#831843",950:"#500724"},Wj={50:"#fff1f2",100:"#ffe4e6",200:"#fecdd3",300:"#fda4af",400:"#fb7185",500:"#f43f5e",600:"#e11d48",700:"#be123c",800:"#9f1239",900:"#881337",950:"#4c0519"},M_={white:Sj,black:Tj,transparent:Pj,slate:k,gray:Aj,zinc:Cj,neutral:h,stone:Ue,red:ue,orange:Dj,amber:ge,yellow:Oj,lime:Fj,green:me,emerald:Ij,teal:Mj,cyan:Xe,sky:Lj,blue:te,indigo:jj,violet:Bj,purple:$j,fuchsia:Nj,pink:Gj,rose:Wj};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]}},cf={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]}},L_={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"},no={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"}},j_={name:"monokai",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Classic Monokai code editor theme"},palette:no,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:no.success[900],fg:no.success[100],border:O.green,iconFg:O.green},error:{bg:no.danger[900],fg:no.danger[100],border:O.pink,iconFg:O.pink},warning:{bg:no.warning[900],fg:no.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"},oo={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"}},B_={name:"dracula",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Dracula dark theme with purple accents"},palette:oo,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:oo.success[900],fg:oo.success[100],border:A.green,iconFg:A.green},error:{bg:oo.danger[900],fg:oo.danger[100],border:A.red,iconFg:A.red},warning:{bg:oo.warning[900],fg:oo.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"},so={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"}},$_={name:"nord",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Arctic, bluish theme inspired by the nordics"},palette:so,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:so.success[900],fg:so.success[100],border:E.nord14,iconFg:E.nord14},error:{bg:so.danger[900],fg:so.danger[100],border:E.nord11,iconFg:E.nord11},warning:{bg:so.warning[900],fg:so.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"},io={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"}},N_={name:"solarized-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Popular Solarized dark theme with blue-tinted background"},palette:io,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:io.success[900],fg:io.success[100],border:S.green,iconFg:S.green},error:{bg:io.danger[900],fg:io.danger[100],border:S.red,iconFg:S.red},warning:{bg:io.warning[900],fg:io.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"},ao={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}},G_={name:"gruvbox",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Warm retro Gruvbox theme with earthy colors"},palette:ao,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:ao.success[900],fg:ao.success[100],border:_.green,iconFg:_.green},error:{bg:ao.danger[900],fg:ao.danger[100],border:_.red,iconFg:_.red},warning:{bg:ao.warning[900],fg:ao.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"},lo={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"}},W_={name:"tokyo-night",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Modern Tokyo Night theme with vibrant colors"},palette:lo,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:lo.success[900],fg:lo.success[100],border:v.green,iconFg:v.green},error:{bg:lo.danger[900],fg:lo.danger[100],border:v.red,iconFg:v.red},warning:{bg:lo.warning[900],fg:lo.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"},co={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}},H_={name:"catppuccin",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Soothing Catppuccin Mocha pastel theme"},palette:co,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:co.success[900],fg:co.success[100],border:x.green,iconFg:x.green},error:{bg:co.danger[900],fg:co.danger[100],border:x.red,iconFg:x.red},warning:{bg:co.warning[900],fg:co.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 uo={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]}},U_={name:"high-contrast-dark",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Accessibility-focused high contrast dark theme"},palette:uo,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:uo.success[900],fg:uo.success[100],border:me[400],iconFg:me[400]},error:{bg:uo.danger[900],fg:uo.danger[100],border:ue[400],iconFg:ue[400]},warning:{bg:uo.warning[900],fg:uo.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 Hj={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]}},q_={name:"monochrome",mode:"dark",meta:{version:"1.0.0",author:"tuiuiu",description:"Minimalist grayscale-only monochrome theme"},palette:Hj,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 V_=Symbol("tuiuiu.theme-runtime-state");function K_(){let[e,t]=gr(cf);return{currentTheme:e,setCurrentTheme:t,themeStack:[]}}function Uj(e){if(e.id===0)return K_();let t=It(V_,K_),[r,n]=gr(fs(t.currentTheme));return{currentTheme:r,setCurrentTheme:n,themeStack:[]}}function z_(){let e=We();return Fe(V_,()=>Uj(e),e)}function J_(){return fs(z_().currentTheme)}var qj={dark:cf,light:L_,monokai:j_,dracula:B_,nord:$_,solarizedDark:N_,gruvbox:G_,tokyoNight:W_,catppuccin:H_,highContrastDark:U_,monochrome:q_},oK=Object.keys(qj);function Kj(e){let t=e.startsWith("#")?e.slice(1):e;t.length===3&&(t=t[0]+t[0]+t[1]+t[1]+t[2]+t[2]);let r=parseInt(t.slice(0,2),16)/255,n=parseInt(t.slice(2,4),16)/255,o=parseInt(t.slice(4,6),16)/255,s=i=>i<=.03928?i/12.92:Math.pow((i+.055)/1.055,2.4);return .2126*s(r)+.7152*s(n)+.0722*s(o)}function Rt(e){let t={black:0,red:.2,green:.35,yellow:.9,blue:.15,magenta:.25,cyan:.6,white:1,gray:.5,grey:.5};return e in t?t[e]>.5?"black":"white":e.startsWith("#")&&Kj(e)>.4?"black":"white"}function Vj(e,t=500){let r=M_[e];return r?typeof r=="string"?r:r[t]??r[500]:e}var zj={foreground:e=>e.foreground.primary,"foreground-primary":e=>e.foreground.primary,"foreground-secondary":e=>e.foreground.secondary,"foreground-muted":e=>e.foreground.muted,"foreground-disabled":e=>e.foreground.disabled,mutedForeground:e=>e.foreground.muted,"muted-foreground":e=>e.foreground.muted,disabledForeground:e=>e.foreground.disabled,background:e=>e.background.base,"background-base":e=>e.background.base,"background-subtle":e=>e.background.subtle,"background-surface":e=>e.background.surface,"background-raised":e=>e.background.raised,"background-elevated":e=>e.background.elevated,surface:e=>e.background.surface,card:e=>e.background.surface,popover:e=>e.background.popover,overlay:e=>e.background.overlay,primary:e=>e.palette.primary[500],"primary-50":e=>e.palette.primary[50],"primary-100":e=>e.palette.primary[100],"primary-200":e=>e.palette.primary[200],"primary-300":e=>e.palette.primary[300],"primary-400":e=>e.palette.primary[400],"primary-500":e=>e.palette.primary[500],"primary-600":e=>e.palette.primary[600],"primary-700":e=>e.palette.primary[700],"primary-800":e=>e.palette.primary[800],"primary-900":e=>e.palette.primary[900],primaryForeground:e=>Rt(e.palette.primary[500]),"primary-foreground":e=>Rt(e.palette.primary[500]),secondary:e=>e.palette.secondary[500],"secondary-50":e=>e.palette.secondary[50],"secondary-100":e=>e.palette.secondary[100],"secondary-200":e=>e.palette.secondary[200],"secondary-300":e=>e.palette.secondary[300],"secondary-400":e=>e.palette.secondary[400],"secondary-500":e=>e.palette.secondary[500],"secondary-600":e=>e.palette.secondary[600],"secondary-700":e=>e.palette.secondary[700],"secondary-800":e=>e.palette.secondary[800],"secondary-900":e=>e.palette.secondary[900],secondaryForeground:e=>Rt(e.palette.secondary[500]),"secondary-foreground":e=>Rt(e.palette.secondary[500]),success:e=>e.accents.positive,"success-50":e=>e.palette.success[50],"success-100":e=>e.palette.success[100],"success-200":e=>e.palette.success[200],"success-300":e=>e.palette.success[300],"success-400":e=>e.palette.success[400],"success-500":e=>e.palette.success[500],"success-600":e=>e.palette.success[600],"success-700":e=>e.palette.success[700],"success-800":e=>e.palette.success[800],"success-900":e=>e.palette.success[900],successForeground:e=>Rt(e.accents.positive),"success-foreground":e=>Rt(e.accents.positive),warning:e=>e.accents.warning,"warning-50":e=>e.palette.warning[50],"warning-100":e=>e.palette.warning[100],"warning-200":e=>e.palette.warning[200],"warning-300":e=>e.palette.warning[300],"warning-400":e=>e.palette.warning[400],"warning-500":e=>e.palette.warning[500],"warning-600":e=>e.palette.warning[600],"warning-700":e=>e.palette.warning[700],"warning-800":e=>e.palette.warning[800],"warning-900":e=>e.palette.warning[900],warningForeground:e=>Rt(e.accents.warning),"warning-foreground":e=>Rt(e.accents.warning),danger:e=>e.accents.critical,error:e=>e.accents.critical,destructive:e=>e.accents.critical,"danger-50":e=>e.palette.danger[50],"danger-100":e=>e.palette.danger[100],"danger-200":e=>e.palette.danger[200],"danger-300":e=>e.palette.danger[300],"danger-400":e=>e.palette.danger[400],"danger-500":e=>e.palette.danger[500],"danger-600":e=>e.palette.danger[600],"danger-700":e=>e.palette.danger[700],"danger-800":e=>e.palette.danger[800],"danger-900":e=>e.palette.danger[900],dangerForeground:e=>Rt(e.accents.critical),"danger-foreground":e=>Rt(e.accents.critical),errorForeground:e=>Rt(e.accents.critical),destructiveForeground:e=>Rt(e.accents.critical),info:e=>e.accents.info,infoForeground:e=>Rt(e.accents.info),"info-foreground":e=>Rt(e.accents.info),muted:e=>e.background.subtle,"muted-background":e=>e.background.subtle,accent:e=>e.palette.primary[400],accentForeground:e=>Rt(e.palette.primary[400]),"accent-foreground":e=>Rt(e.palette.primary[400]),neutral:e=>e.palette.neutral[500],"neutral-50":e=>e.palette.neutral[50],"neutral-100":e=>e.palette.neutral[100],"neutral-200":e=>e.palette.neutral[200],"neutral-300":e=>e.palette.neutral[300],"neutral-400":e=>e.palette.neutral[400],"neutral-500":e=>e.palette.neutral[500],"neutral-600":e=>e.palette.neutral[600],"neutral-700":e=>e.palette.neutral[700],"neutral-800":e=>e.palette.neutral[800],"neutral-900":e=>e.palette.neutral[900],border:e=>e.borders.default,"border-subtle":e=>e.borders.subtle,"border-strong":e=>e.borders.strong,input:e=>e.components.input.border,ring:e=>e.states.focus.ring.color};function Y_(e){if(e.startsWith("#")||e.startsWith("rgb"))return e;let t=fs(z_().currentTheme),r=zj[e];if(r)return r(t);let n=e.match(/^([a-z]+)-(\d+)$/);if(n){let[,o,s]=n,i=parseInt(s,10);return Vj(o,i)}return e}var Jj={enabled:!0,maxFrames:120,budget:{frameMs:16.67,slowFrameMs:33.34,phases:{}}},Q_=Symbol("tuiuiu.perf-inspector-runtime-state");function Yj(e){return{enabled:e.enabled,maxFrames:e.maxFrames,budget:{frameMs:e.budget.frameMs,slowFrameMs:e.budget.slowFrameMs,phases:{...e.budget.phases}}}}function X_(e){let t=e.id===0?null:It(Q_,()=>X_(Mr())),r=Yj(t?.config??Jj);return{config:r,ring:new Array(r.maxFrames),start:0,count:0,slowFrameListeners:new Set}}function Z_(){let e=We();return Fe(Q_,()=>X_(e),e)}function Qj(e){return e.metrics.runtimeTotalMs??e.metrics.totalFrameMs}function Xj(e,t){let r=tB().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 Zj(e,t){e.ring.length!==e.config.maxFrames&&Xj(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 eB(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 ex(e,t={}){let r=Z_(),n=Qj(e),o=Math.max(0,n-r.config.budget.frameMs),s=eB(e.metrics.phases,r.config.budget.phases),i=Object.keys(s).length,a=n>=r.config.budget.slowFrameMs;Qw({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(Zj(r,l),a)for(let d of[...r.slowFrameListeners])d(l);return l}function tB(){let e=Z_(),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 rB={eagerHitTargets:!1,eagerQueries:!1,eagerWarnings:!1};function po(e,t){return l_(e,t,rB)}function uf(e){d_(e)}function Pn(e,t){p_(e,t.runtimeStartAt??e.metrics.runtimeStartAt??e.metrics.frameStartAt),ex(e,{renderer:t.renderer})}var nB=.4,oB=64;function fo(){return typeof performance<"u"?performance.now():Date.now()}var tx=new WeakMap;function sB(){let e=J_(),t=tx.get(e);return t||(t=new Map,tx.set(e,t)),t}function iB(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&&aB(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 aB(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 ox(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 sx(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 lB(e,t,r){let n=e.map(s=>sx(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(!(ox(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 dB(e,t,r){let n=new Map;for(let i of e){let a=sx(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 ix(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 Ii(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=po(I,{width:s,height:i});w(W)}function w(I){H(I.info.viewport.width,I.info.viewport.height),G(I),is(I.layout),bi(),c=I.root,u=I}function T(){l=!0,c?m(c):u&&G(u)}function $(){t.write("\x1B[2J\x1B[3J\x1B[H"),a=new Ii(s,i),l=!0}function D(){!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=fo(),q=0,oe=0,ae=a.getFrontBuffer(),se=a.getBackBuffer();p++;let Z=s*i,pe=kB(u,I),De=$r(),Ee=D_(De),ke=O_(De),Y=we=>{let Oe=fo();t.write(we),q+=fo()-Oe,oe+=typeof we=="string"?Buffer.byteLength(we):we.byteLength};if(!l&&n&&u){let{renderRects:we,diffRects:Oe}=uB(u.drawCommands,I.drawCommands,s,i);if(At(I,"dirtyRectCount",we.length),At(I,"diffRectCount",Oe.length),we.length===0){pe&&Y(pe),y=0,At(I,"patchCount",0),At(I,"outputByteCount",oe),st(I,"outputWriteMs",q),st(I,"deltaRenderMs",Math.max(0,fo()-W-q)),Pn(I,{renderer:"delta"});return}let ve=pB(we);if(!(we.length>oB||ve>Z*nB)){Ee&&Y(Ee),fB(se,we),mB(I.drawCommands,we,se,I.reservedRegions);let Te=ae.diffRects(se,Oe);if(ae.applyPatches(Te),se.clearDamage(),y=Te.length,At(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=sf(Te,s,!0);Y(fe),g++}ke&&Y(ke),At(I,"outputByteCount",oe),st(I,"outputWriteMs",q),st(I,"deltaRenderMs",Math.max(0,fo()-W-q)),Pn(I,{renderer:"delta"});return}}Ee&&Y(Ee),se.clear(),dx(I.drawCommands,se,I.reservedRegions);let de=a.swap();if(y=de.length,At(I,"patchCount",de.length),o&&console.error(`[delta-render] patches: ${de.length}, cells: ${Z}`),l||!n||de.length>Z*.5){let we=Vl(a.getFrontBuffer());pe&&Y(pe),Y("\x1B[H"),Y(we),f++,l=!1,ke&&Y(ke),At(I,"outputByteCount",oe),st(I,"outputWriteMs",q),st(I,"deltaRenderMs",Math.max(0,fo()-W-q)),Pn(I,{renderer:"delta"});return}if(pe&&Y(pe),de.length>0){let we=sf(de,s,!0);Y(we),g++}l=!1,ke&&Y(ke),At(I,"outputByteCount",oe),st(I,"outputWriteMs",q),st(I,"deltaRenderMs",Math.max(0,fo()-W-q)),Pn(I,{renderer:"delta"})}return{render:m,renderFrame:w,fullRedraw:T,clear:$,cleanup:D,stats:M,resize:N}}function cB(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=Qn(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 pf(e){let t=e.type==="box"||e.type==="terminal-image"?{x:e.x,y:e.y,width:e.width,height:e.height}:cB(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 uB(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&&iB(a,l)||(a&&o.push(pf(a)),l&&o.push(pf(l)))}return{renderRects:lB(o,r,n),diffRects:dB(o,r,n)}}function pB(e){return e.reduce((t,r)=>t+r.width*r.height,0)}function fB(e,t){let r=Nr();for(let n of t)e.fill(n.x,n.y,n.width,n.height,r)}function ax(e,t,r){return e.some(n=>t>=n.x&&t<n.x+n.width&&r>=n.y&&r<n.y+n.height)}function br(e,t,r,n,o,s,i,a={},l){let d=Math.max(1,ye(o));for(let c=0;c<d;c++)if(l&&(r+c<l.x||r+c>=l.x+l.width||n<l.y||n>=l.y+l.height)||ax(t,r+c,n))return;e.writeChar(r,n,o,s,i,a)}function gB(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)&&!ax(t,r+c,n)&&e.writeChar(r+c,n,s,i,a,l)}function lx(e,t,r){switch(e.type){case"box":hB(e,t,r);break;case"text":gx(e,t,r);break;case"terminal-image":bB(e,t);break}}function mB(e,t,r,n){for(let o of e){let s=pf(o);if(!(s.width<=0||s.height<=0)){for(let i of t)if(ox(s,i)){lx(o,r,n);break}}}}function dx(e,t,r){for(let n of e)lx(n,t,r)}function cx(e,t=new Gr(e.info.viewport.width,e.info.viewport.height)){return dx(e.drawCommands,t,e.reservedRegions),t}function hB(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?go(a):void 0,T=c?go(c):void 0,$=f?go(f):T;if(w||l!==" "){let D=d&&d!=="none"?1:0,M=n+D,N=o+D,H=Math.max(0,s-D*2),G=Math.max(0,i-D*2);for(let I=0;I<G;I++)gB(t,r,M,N+I,H,l,void 0,w,{},m)}if(d&&d!=="none"){let D=af[d]??af.single,M={},N=u?.top!==!1,H=u?.bottom!==!1,G=u?.left!==!1,I=u?.right!==!1;if(N){let W=G?D.topLeft:D.top;br(t,r,n,o,W,T,void 0,M,m);for(let q=1;q<s-1;q++)br(t,r,n+q,o,D.top,T,void 0,M,m);if(s>1){let q=I?D.topRight:D.top;br(t,r,n+s-1,o,q,T,void 0,M,m)}if(p&&s>4){let q=s-4,ae=` ${Yr(SR(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=Yn(ae,De);if(!ke)break;De=ke.nextIndex;let Y=ye(ke.symbol);Y<=0||Ee+Y>n+s-1||(br(t,r,Ee,o,ke.symbol,$,void 0,y?{...M,bold:!0}:M,m),Ee+=Y)}}}for(let W=1;W<i-1;W++)G&&br(t,r,n,o+W,D.left,T,void 0,M,m),I&&s>1&&br(t,r,n+s-1,o+W,D.right,T,void 0,M,m);if(H&&i>1){let W=G?D.bottomLeft:D.bottom;br(t,r,n,o+i-1,W,T,void 0,M,m);for(let q=1;q<s-1;q++)br(t,r,n+q,o+i-1,D.bottom,T,void 0,M,m);if(s>1){let q=I?D.bottomRight:D.bottom;br(t,r,n+s-1,o+i-1,q,T,void 0,M,m)}}}}function bB(e,t){e.cellRender&&gx({type:"text",order:e.order,id:e.id,nodeType:e.nodeType,x:e.x,y:e.y,maxWidth:e.width,text:fx(e),style:{},clip:e.clip},t,[])}function ux(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 px(e){let t=ux(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 Mi(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${px(e)}:${e.x}:${e.y}`)}function bs(e){return[Mi(e),e.x,e.y,px(e)].join(":")}function fx(e){let t=ux(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:Ml(e.protocol,e.source,t)}function rx(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 yB(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Mi(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Mi(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${Ll("kitty")}\x1B8`}}return o}function kB(e,t){let r=rx(e),n=rx(t),o=r.map(bs).join("|"),s=n.map(bs).join("|");if(e&&o===s)return"";let i=yB(r,n),a=new Map(r.map(l=>[Mi(l),l]));for(let l of n){let d=a.get(Mi(l));d&&bs(d)===bs(l)||(i+=`\x1B7\x1B[${l.y+1};${l.x+1}H`,i+=fx(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 RB(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 wB(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 nx={0:!1,1:"single",2:"double",3:"curly",4:"dotted",5:"dashed"};function _B(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=Jn(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 nx&&(a.underline=nx[w])}else if(m===38||m===48||m===58){let w=RB(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}=wB(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 gx(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?go(a.color):void 0,u=d?void 0:a.backgroundColor?go(a.backgroundColor):l?go(l):void 0,p=d?{}:{bold:a.bold,dim:a.dim,italic:a.italic,underline:a.underline,underlineColor:a.underlineColor?go(a.underlineColor):void 0,inverse:a.inverse,strikethrough:a.strikethrough},g=d||i.includes("\x1B"),f=Qn(i,s,a.wrap);if(g){let y=_B(f.join(`
|
|
199
|
-
`),c,u,p),m=0,w=0;for(let T of y){let
|
|
200
|
-
`){w++,m=0
|
|
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=ye(d.symbol);if(!(c<=0)){if(a+c>this.width)break;this.writeChar(a,r,d.symbol,o,s,i),a+=c}}return a-t}fillRow(t,r,n,o,s,i,a={}){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||r<0||r>=this.height||n<=0)return;if(ye(o)!==1){let c=ye(o);if(c<=0)return;let u=Math.max(0,t),p=Math.min(this.width,t+n);for(let g=u;g+c<=p;g+=c)this.writeChar(g,r,o,s,i,a);return}let l=Math.max(0,t),d=Math.min(this.width,t+n);if(!(d<=l)){for(let c=l;c<d;c++)this.clearWideFootprint(c,r),this.cells[r][c]={char:o,fg:s,bg:i,attrs:a};this.invalidateRow(r),this.addDamage(l,r,d-l,1)}}fill(t,r,n,o,s){if(!Number.isInteger(t)||!Number.isInteger(r)||!Number.isInteger(n)||!Number.isInteger(o))return;let i=Math.max(0,t),a=Math.max(0,r),l=Math.min(this.width,t+n),d=Math.min(this.height,r+o);if(!(l<=i||d<=a)){if(ye(s.char)!==1){for(let c=a;c<d;c++)this.fillRow(i,c,l-i,s.char,s.fg,s.bg,s.attrs);return}for(let c=a;c<d;c++){for(let u=i;u<l;u++)this.clearWideFootprint(u,c),this.cells[c][u]={char:s.char,fg:s.fg,bg:s.bg,attrs:s.attrs};this.invalidateRow(c)}this.addDamage(i,a,l-i,d-a)}}clear(){for(let t=0;t<this.height;t++){for(let r=0;r<this.width;r++)this.cells[t][r]=Br();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,Vl(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];I_(a,l)||r.push({x:i,y:s,cell:Vl(l)})}return r}diffRects(t,r){let n=[],o=Math.min(this.width,t.width),s=Cj(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];I_(d,c)||n.push({x:l,y:i.y,cell:Vl(c)})}return n}applyPatches(t){for(let r of t)this.set(r.x,r.y,Vl(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}${L_(i.fg,i.bg,i.attrs)}`}return this.rowSignatures[t]=o,o}};function Cj(e,t,r,n,o){let s=Math.min(e,r),i=Math.min(t,n);return o.length<=1||Dj(o)?M_(s,i,o):Oj(s,i,o)}function Dj(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 M_(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 Oj(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 Di=class{front;back;width;height;constructor(t,r){this.width=t,this.height=r,this.front=new Nr(t,r),this.back=new Nr(t,r)}getBackBuffer(){return this.back}getFrontBuffer(){return this.front}swap(){let t=this.front.diff(this.back),r=this.front;return this.front=this.back,this.back=r,this.back.clearDamage(),t}swapDirty(t){let r=this.front.diffRects(this.back,t),n=this.front;return this.front=this.back,this.back=n,this.back.clearDamage(),r}resize(t,r){this.width=t,this.height=r,this.front=new Nr(t,r),this.back=new Nr(t,r)}};function rf(e,t){if(!e)return"";let r=t?48:38;if(typeof e=="string"){if(O_[e]!==void 0){let n=t?40:30,o=O_[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 Fj(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(Tj[e.underline]||"4"):t.push("4"),e.underlineColor)){let r=Ij(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 Ij(e){let t=rf(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 ef(e){return e?typeof e=="string"?`s:${e}`:"r"in e?`r:${e.r},${e.g},${e.b}`:`a:${e.ansi256}`:""}function L_(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),ef(r.underlineColor),r.blink?"1":"0",r.inverse?"1":"0",r.hidden?"1":"0",r.strikethrough?"1":"0",ef(e),ef(t)].join("|")}function j_(e,t,r){let n=L_(e,t,r),o=to.get(n);if(o!==void 0)return o===""?null:o;let s=[];s.push(...Fj(r));let i=rf(e,!1),a=rf(t,!0);i&&s.push(i),a&&s.push(a);let l=s.length>0?s.join(";"):"";if(to.has(n))to.delete(n);else if(to.size>=Pj){let d=to.keys().next();d.done||to.delete(d.value)}return to.set(n,l),l===""?null:l}function Mj(e){return e.length===1&&e.charCodeAt(0)<=127?1:ye(e)}function zl(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=j_(l.fg,l.bg,l.attrs);d!==i&&(a(),i!==null&&o.push("\x1B[0m"),d!==null&&o.push(`\x1B[${d}m`),i=d),s+=l.char}a(),i!==null&&o.push("\x1B[0m"),r.push(o.join("").trimEnd())}if(!t)for(;r.length>0&&r[r.length-1]==="";)r.pop();return r.join(`
|
|
198
|
+
`)}function 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 y){let B=0;for(;B<T.text.length;){let C=Jn(T.text,B);if(!C)break;let M=C.symbol;if(M===`
|
|
200
|
+
`){w++,m=0,B=C.nextIndex;continue}let N=ye(M);N>0&&(mr(t,r,n+m,o+w,M,T.fg,T.bg,T.attrs,e.clip),m+=N),B=C.nextIndex}}}else for(let y=0;y<f.length;y++){let m=0,w=0;for(;w<f[y].length;){let T=Jn(f[y],w);if(!T)break;let B=T.symbol;if(m>=s)break;let C=ye(B);C>0&&(mr(t,r,n+m,o+y,B,c,u,p,e.clip),m+=C),w=T.nextIndex}}}function fo(e){let t=w$(),r=t.get(e);if(r)return r;let n=nx(e);return t.set(e,n),n}var UK=Symbol("tuiuiu.delta-renderer-state");function _x(){return typeof performance<"u"?performance.now():Date.now()}function Ex(e){let t=e.y+e.height,r=e.x+e.width;for(let n of e.children){let o=Ex(n);t=Math.max(t,o.maxY),r=Math.max(r,o.maxX)}return{maxY:t,maxX:r}}function B$(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 pf(e,t={}){let r=_x(),{fullHeight:n=!1,previousFrame:o=null}=t,s=e.layout,i=e.root.props,a=i.marginBottom??i.marginY??i.margin??0,d=Ex(s).maxY+(typeof a=="number"?a:0),c=e.info.viewport.height,u=n&&c<1e3?c:d,p=new Nr(e.info.viewport.width,u);bx(e,p);let g=zl(p,n),f=W$(e,o);return it(e,"ansiRenderMs",_x()-r),f+g}function vx(e,t,r){let n=B$(t,r),s=!(typeof t=="object"?t.height!==void 0:r!==void 0)&&e.props.height==="fill"?process.stdout.rows??24:n.height,i=uo(e,{width:n.width,height:s});return pf(i,{fullHeight:n.fullHeight})}function Sx(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 Tx(e){let t=Sx(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 Fi(e){return e.instanceKey??(e.id?`${e.protocol}:${e.id}`:`${e.protocol}:${Tx(e)}:${e.x}:${e.y}`)}function ks(e){return[Fi(e),e.x,e.y,Tx(e)].join(":")}function N$(e){let t=Sx(e);return e.protocolState?e.protocolState.render(e.source,{protocol:e.protocol,...t}).payload:Ll(e.protocol,e.source,t)}function xx(e){return e?e.drawCommands.filter(t=>t.type==="terminal-image"&&!t.cellRender):[]}function uf(e,t){if(!Ow(t))return e;let r=$r();return r.multiplexer?Jl(e,r.multiplexer):e}function G$(e,t){let r=new Map(t.filter(s=>s.protocol==="kitty").map(s=>[Fi(s),s])),n=new Set,o="";for(let s of e){if(s.protocol!=="kitty")continue;let i=r.get(Fi(s));if(!i||ks(s)!==ks(i)){if(s.kittyImageId){if(n.has(s.kittyImageId))continue;n.add(s.kittyImageId),o+=uf(`\x1B7\x1B[H${us.delete(s.kittyImageId)}\x1B8`,"kitty");continue}return uf(`\x1B7\x1B[H${jl("kitty")}\x1B8`,"kitty")}}return o}function W$(e,t){let r=xx(e);if(r.length===0&&!t)return"";let n=xx(t),o=n.map(ks).join("|"),s=r.map(ks).join("|");if(t&&o===s)return"";let i=G$(n,r),a=new Map(n.map(l=>[Fi(l),l]));for(let l of r){let d=a.get(Fi(l));if(d&&ks(d)===ks(l))continue;let c=N$(l);i+=uf(`\x1B7\x1B[${l.y+1};${l.x+1}H${c}\x1B8`,l.protocol)}return i}function Ql(e){let{value:t,isNew:r}=dr(null);if(r||t===null){let n=Si(()=>pr(e)),o=tr();return cr(o,n),n}return t}function Px(e){let{value:t,isNew:r}=dr(null);if(r||t===null){let n=Si(e);return cr(tr(),n),n}return t}function Ii(e){let{value:t,isNew:r}=dr(null);if(r||t===null){let n=tr(),o={effect:null,fn:e,dispose:null};cr(n,o);let s=new xn(()=>{let a=jr(n);if(a)return a.fn()}),i=()=>s.dispose();return o.effect=s,o.dispose=i,Xn(i,n),i}else return t.fn=e,t.dispose}var c7=Symbol("tuiuiu.keyboard-protocol-runtime-state");function Ax(e){let t=e.match(/^\x1b\[(?:(\d+)(?::(\d+))?(?::(\d+))?)?(?:;(\d+)(?::(\d+))?)?(?:;(.+))?u$/);if(!t)return null;let r=(f,y)=>{if(f===void 0)return y??null;if(!/^\d+$/u.test(f))return null;let 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(y=>r(y));if(f.length===0||f.some(y=>y===null||!n(y)))return null;g=f.map(y=>String.fromCodePoint(y)).join("")}else o>=32&&o<127&&(g=String.fromCharCode(o));return{keyCode:o,baseKey:i??void 0,shiftedKey:s??void 0,text:g,eventType:p,modifiers:u}}var ff="\x1B[200~",Rs="\x1B[201~",H$="\x1B[I",U$="\x1B[O";function Cx(){return"\x1B[?2004h"}function Dx(){return"\x1B[?2004l"}function Ox(){return"\x1B[?1004h"}function Fx(){return"\x1B[?1004l"}function Ix(e){return e===H$?{focused:!0}:e===U$?{focused:!1}:null}function Mx(){return"\x1B[?1049h"}function gf(){return"\x1B[?1049l"}var q$={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"},K$=new Set(["[a","[b","[c","[d","[e","[2$","[3$","[5$","[6$","[7$","[8$","[Z"]),V$=new Set(["Oa","Ob","Oc","Od","Oe","[2^","[3^","[5^","[6^","[7^","[8^"]),z$=/^(?:\x1b+)(O|N|\[|\[\[)(?:(\d+)(?:;(\d+))?([~^$])|(?:1;)?(\d+)?([a-zA-Z]))/,J$=/^\x1b\[\d+(?::\d*){0,2}(?:;\d+(?::\d+)?)?(?:;[0-9:]+)?u/,Y$=/^\x1b\[27;(\d+);(\d+)~/;function Q$(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 jx(e){return Number.isSafeInteger(e)&&e>=0&&e<=1114111&&!(e>=55296&&e<=57343)}function Lx(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!jx(t)||t>=57344&&t<=63743?"":r||String.fromCodePoint(t)}function X$(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 mf(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
201
|
`)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=FB.exec(t);if(o){let d=_x(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=Ax(r,d.keyCode,c?d.text:""),{input:n,key:r,length:o[0].length}}}let s=IB.exec(t);if(s){let d=Number(s[1]),c=Number(s[2]);if(MB(r,d)&&Cx(c))return n=Ax(r,c),r.eventType="press",{input:n,key:r,length:s[0].length}}let i=OB.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=AB[c];return p&&LB(r,p),CB.has(c)&&(r.shift=!0),DB.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 yf(e,t={}){let{isActive:r=!0,priority:n="normal",stopPropagation:o=!1}=t,{value:s,isNew:i}=ur(null);if(i||s===null){let c=function(){return Br(d)},a=(u,p,g)=>{let f=c();if(f&&f.registered)return f.handler(u,p,g)},l={handler:e,wrapper:a,registered:r,handlerId:null,priority:n,stopPropagation:o},d=rr();pr(d,l),r&&(l.handlerId=Sl(a,{priority:n,stopPropagation:o})),Zn(()=>{l.handlerId!==null&&(Ri(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=Sl(s.wrapper,{priority:n,stopPropagation:o})):!r&&a?s.handlerId!==null&&(Ri(s.handlerId),s.handlerId=null):r&&(l||d)&&(s.handlerId!==null&&Ri(s.handlerId),s.priority=n,s.stopPropagation=o,s.handlerId=Sl(s.wrapper,{priority:n,stopPropagation:o}))}}function Dx(e){return e==null||e===!1||e===!0?[]:Array.isArray(e)?e.flatMap(Dx):typeof e=="string"||typeof e=="number"?[mt({children:String(e)})]:[e]}function yr(e,...t){return{type:"box",props:{...e},children:Dx(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 jB=0,Ox=Symbol("tuiuiu.focus-zone-manager"),kf=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(Ox,()=>new e)}static reset(){_l(Ox)}[Ir](){this.zones.clear(),this.stack=[],this.activeZoneId=null,this.rootZoneId=null,this.listeners.clear()}createZone(t={}){let r=t.id||`zone_${jB++}`,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 Fx(){return kf.getInstance()}var Bi=class{zoneManager=Fx();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 BB}from"node:string_decoder";function Ix(e,t){if(!Number.isSafeInteger(e)||e<1)throw new Error(`[tuiuiu] ${t} must be a positive safe integer`)}function $B(e,t){if(!Number.isSafeInteger(e)||e<0)throw new Error(`[tuiuiu] ${t} must be a non-negative safe integer`)}function NB(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 GB(e){let t=NB(e);return t===-1?{complete:e,pending:""}:{complete:e.slice(0,t),pending:e.slice(t)}}function WB(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 Rf=class{maxPasteBytes;maxPendingEscapeBytes;pasteHeuristicThreshold;decoder=new BB("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,Ix(this.maxPasteBytes,"maxPasteBytes"),Ix(this.maxPendingEscapeBytes,"maxPendingEscapeBytes"),$B(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}=GB(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=WB(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(mf);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+mf.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 Mx(e={}){return new Rf(e)}function Lx(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(vx()),a&&o&&u(xx()))},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(Sx())),a&&o&&m(()=>u(Ex())),y)throw y}}}function Zl(){let e=Xr();if(!e)throw new Error("useApp must be called within a Tuiuiu app");return e}var Ql=new WeakSet,Xl=new WeakSet;function wf(e,t,r={}){let n=vp();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(Ql.has(e)||Xl.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=FR();Ql.add(e),Xl.add(t);let p="isTTY"in t?!!t.isTTY:!0,g=new Set,f=!1,y,m=!1,w=o,T,$=qe(u,()=>(w_({stdout:t}),!!(e.isTTY&&p&&$r().focusEvents))),D=Lx({stdin:e,stdout:t,focusEvents:$,bracketedPaste:!0}),M=D.setRawMode,N=D.isRawModeEnabled;try{D.start()}catch(Y){Ql.delete(e),Xl.delete(t);try{D.dispose()}finally{ss(u)}throw Y}zp(u);let H=qe(u,()=>new Bi);Dp(H,u);let G=Mx({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=Tx(de.slice(0,3));if(we){Gt(()=>{Vp(we.focused)}),de=de.slice(3);continue}if(Mp(de)){let fe=vi(de);if(fe){Gt(()=>{ps().handleMouseEvent(fe.event),tw(fe.event)}),de=de.slice(fe.length);continue}}let{input:Oe,key:ve,length:Re}=bf(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){Gt(()=>{H.focusNext()});continue}if(ve.tab&&ve.shift){Gt(()=>{H.focusPrevious()});continue}if(ve.escape&&H.getActiveId()!==void 0){Gt(()=>{H.blur()});continue}}Gt(()=>{ZR(Oe,ve)})}},se=Y=>{for(let de of Y){if(m)return;de.type==="paste"?Gt(()=>{nw(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(()=>D.dispose()),Y(()=>vl(u)),Y(()=>zp(u)),Y(()=>ew(u)),Y(()=>ow(u)),Y(()=>rw(u)),Y(()=>Cl(u)),Y(()=>gw(u)),Y(()=>Dp(null,u)),Y(()=>{Xr(u)===T&&Cp(null,u)})}finally{Ql.delete(e),Xl.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,`
|
|
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,`
|
|
203
203
|
`);t.write(`${de.replace(/\n+$/u,"")}
|
|
204
|
-
`)},onExit:Y=>{if(f){try{Y(y)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(Y),()=>{g.delete(Y)}},autoTabNavigation:w,setAutoTabNavigation:Y=>{w=Y},setRawMode:M,get rawModeEnabledCount(){return
|
|
204
|
+
`)},onExit:Y=>{if(f){try{Y(y)}catch(de){console.error("[tuiuiu] Error in app exit callback:",de)}return()=>{}}return g.add(Y),()=>{g.delete(Y)}},autoTabNavigation:w,setAutoTabNavigation:Y=>{w=Y},setRawMode:M,get rawModeEnabledCount(){return C.rawModeEnabledCount},isRawModeEnabled:N,isTerminalFocused:()=>fr(u),enqueueExternalUpdate:Y=>{Bt(()=>{Y()})},flushExternalUpdates:()=>{},hasPendingExternalUpdates:()=>!1},Pp(T,u),T}function Rf(e){let t=Xr();t&&(t.clearScreen=e)}function td(e){let t=Xr();t&&(t.writeLine=e??(r=>{let n=rs(String(r)).replace(/\r\n?/g,`
|
|
205
205
|
`);t.stdout.write(`${n.replace(/\n+$/u,"")}
|
|
206
|
-
`)}))}function
|
|
206
|
+
`)}))}function rd(e){let t=Xr();if(t){if(!e){t.enqueueExternalUpdate=r=>{Bt(()=>{r()})},t.flushExternalUpdates=()=>{},t.hasPendingExternalUpdates=()=>!1;return}t.enqueueExternalUpdate=e.enqueue,t.flushExternalUpdates=e.flush,t.hasPendingExternalUpdates=e.isPending}}function wf(){let[e,t]=Px(()=>pr(C_()));return Ii(()=>D_(n=>{t(n)})),e()}function _f(e,t,r={}){let{enabled:n=!0,immediate:o=!1}=r,{value:s,isNew:i}=dr(null);if(i||s===null){let a=tr(),l={timerId:null,callback:e,delay:t,enabled:n,running:!1,start:()=>{let d=jr(a);d&&!d.running&&(d.running=!0,d.timerId=setInterval(()=>{let c=jr(a);c&&c.callback()},d.delay))},stop:()=>{let d=jr(a);d&&d.running&&(d.timerId!==null&&(clearInterval(d.timerId),d.timerId=null),d.running=!1)},isRunning:()=>jr(a)?.running??!1};return cr(a,l),Xn(l.stop,a),n&&(o&&e(),l.start()),{start:l.start,stop:l.stop,isRunning:l.isRunning}}else return s.callback=e,s.delay=t,n!==s.enabled&&(s.enabled=n,n?s.start():s.stop()),{start:s.start,stop:s.stop,isRunning:s.isRunning}}var br="\x1B[",xf=`${br}H`,Li=`${br}J`,nd=`${br}K`,Ux=e=>{let t="";for(let r=0;r<e;r++)t+=br+"2K",r<e-1&&(t+=br+"1A");return e>0&&(t+="\r"),t},qx=e=>e>0?`${br}${e}A`:"",sB=`${br}1E`,iB=`${br}2K`;function aB(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=[],a=!1,l=n>0?`${br}${n+1}H`:xf,d=c=>{!r&&!a&&(hs(e),a=!0);let u=c+`
|
|
207
207
|
`;if(u===o)return;let p=c.split(`
|
|
208
|
-
`),g=p.map(T=>ye(T)),f=p.length,y=[];for(let T=0;T<p.length;T++){let
|
|
209
|
-
`+
|
|
208
|
+
`),g=p.map(T=>ye(T)),f=p.length,y=[];for(let T=0;T<p.length;T++){let B=p[T],C=g[T],M=i[T]??0;C<M?y.push(B+nd):y.push(B)}let m=s-f,w="";if(m>0)for(let T=0;T<m;T++)w+=`
|
|
209
|
+
`+nd;o=u,s=f,i=g,e.write(l+y.join(`
|
|
210
210
|
`)+w+`
|
|
211
|
-
|
|
211
|
+
`+Li)};return d.clear=()=>{e.write(l+Li),o="",s=0,i=[]},d.done=()=>{o="",s=0,i=[],!r&&a&&(ms(e),a=!1)},d.sync=c=>{let u=c.split(`
|
|
212
212
|
`);o=c+`
|
|
213
|
-
`,s=u.length,i=u.map(p=>ye(p))},d}function
|
|
213
|
+
`,s=u.length,i=u.map(p=>ye(p))},d}function lB(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o=[],s="",i=!1,a=n>0?`${br}${n+1}H`:xf,l=d=>{!r&&!i&&(hs(e),i=!0);let c=d+`
|
|
214
214
|
`;if(c===s)return;let u=o.length,p=c.split(`
|
|
215
215
|
`),g=p.length,f=g-1;if(c===`
|
|
216
|
-
`||s.length===0){e.write(a+
|
|
217
|
-
`)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a
|
|
216
|
+
`||s.length===0){e.write(a+Ux(u)+c),s=c,o=p;return}let y=[];g<u?y.push(Ux(u-g+1),qx(f)):y.push(qx(u-1));for(let m=0;m<f;m++){if(p[m]===o[m]){y.push(sB);continue}y.push(iB+p[m]+`
|
|
217
|
+
`)}e.write(y.join("")),s=c,o=p};return l.clear=()=>{e.write(a+Li),s="",o=[]},l.done=()=>{s="",o=[],!r&&i&&(ms(e),i=!1)},l.sync=d=>{let c=d+`
|
|
218
218
|
`;s=c,o=c.split(`
|
|
219
|
-
`)},l}function
|
|
220
|
-
`),p=u.length,g=c;if(g=u.map(y=>y+
|
|
219
|
+
`)},l}function dB(e,t={}){let{showCursor:r=!1,topOffset:n=0}=t,o="",s=0,i=!1,a=n>0?`${br}${n+1}H`:xf,l=d=>{!r&&!i&&(hs(e),i=!0);let c=d;if(c===o)return;let u=c.split(`
|
|
220
|
+
`),p=u.length,g=c;if(g=u.map(y=>y+nd).join(`
|
|
221
221
|
`),s>p){let y=s-p;for(let m=0;m<y;m++)g+=`
|
|
222
|
-
`+
|
|
223
|
-
`).length},l}function
|
|
224
|
-
`),
|
|
225
|
-
`).length,
|
|
226
|
-
`).replace(/\n+$/u,"");Te.push(he),X(nn)});qe(N,()=>
|
|
227
|
-
`))}
|
|
228
|
-
`):de(
|
|
229
|
-
`),ie()}),waitUntilExit:()=>fe,clear:()=>qe(N,()=>{s||(Ze&&(clearTimeout(Ze),Ze=null),wt=null,dt=!1,en(),W?X(()=>{nn()}):nn())}),writeLine:je}}var t$={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 Cf(e){return e.flex===!0?1:typeof e.flex=="number"&&Number.isFinite(e.flex)&&e.flex>0?e.flex:0}function r$(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=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=Cf(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:Cf(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+(Cf(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],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)}),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(Rr(e[m].minWidth,3),s[m]-w)}}}return s}function qx(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 n$(e,t){return Yr(e,t,{truncationCharacter:"\u2026"})}function o$(){try{return process.stdout.columns||80}catch{return 80}}function Df(e){let{columns:t,data:r,borderStyle:n="single",borderColor:o="border",showHeader:s=!0,headerStyle:i={color:"foreground",bold:!0},striped:a=!1,stripeColor:l="mutedForeground",padding:d=1,rowSeparator:c=!1,maxWidth:u,availableWidth:p,compact:g=!1,accessibilityLabel:f="Data table"}=e,y=g?0:Rr(d,1),m=t$[n],w=n!=="none",T=p??o$(),$=r$(t,r,u,y,T),D=[],M=(N,H,G,I)=>{if(!w)return yr({});let W=[N];for(let q=0;q<$.length;q++)W.push(I.repeat($[q]+y*2)),q<$.length-1&&W.push(H);return W.push(G),yr({flexDirection:"row"},mt({color:o},W.join("")))};if(w&&D.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=qx(G.header,$[H],W);N.push(mt({color:o},I),mt({color:i.color??G.headerColor??"foreground",bold:i.bold,backgroundColor:i.backgroundColor,role:"columnheader","aria-colindex":H+1},q),mt({color:o},I)),w&&N.push(mt({color:o},m.vertical))}D.push(yr({flexDirection:"row",role:"row","aria-rowindex":1},...N)),w&&D.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 Qn(Z,$[ae],"wrap");let pe=Z.replace(/\r?\n/g," ");return[oe.truncate===!1?Yr(pe,$[ae],{truncationCharacter:""}):n$(pe,$[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=qx(I[se]?.[oe]??"",$[se],Z.align??"left"),Ee=Z.color??(G?l:void 0);ae.push(mt({color:o},pe),mt({color:Ee,dim:G,role:oe===0?"cell":void 0,"aria-colindex":oe===0?se+1:void 0},De),mt({color:o},pe)),w&&ae.push(mt({color:o},m.vertical))}q.push(yr({flexDirection:"row"},...ae))}D.push(yr({flexDirection:"column",role:"row","aria-rowindex":N+(s?2:1)},...q)),c&&N<r.length-1&&w&&D.push(M(m.leftMid,m.midMid,m.rightMid,m.horizontal))}return w&&D.push(M(m.bottomLeft,m.bottomMid,m.bottomRight,m.horizontal)),yr({flexDirection:"column",role:"table","aria-label":f,"aria-rowcount":r.length+(s?1:0),"aria-colcount":t.length},...D)}function nd(e,t){return mt({wrap:"truncate-end"},t?qn(e):e)}function s$(e,t,r){if(e.rows.length===0||e.table==null)return e.lines.map(c=>nd(c,r));let n=e.lines.indexOf(e.rows[0].line),o=e.lines.lastIndexOf(e.rows.at(-1).line),s=n<0?e.lines:e.lines.slice(0,n),i=o<0?[]:e.lines.slice(o+1),a=e.table.columns.map(c=>({...c})),l=e.table.rows.map(c=>Object.fromEntries(Object.entries(c).map(([u,p])=>[u,r?qn(p):p]))),d=Math.max(1,t+a.length);return[...s.map(c=>nd(c,r)),Df({columns:a,data:l,borderStyle:"none",availableWidth:d,maxWidth:d,compact:!1,padding:1,rowSeparator:!1,borderColor:r?"":"gray",headerStyle:{bold:!0,color:r?"":"cyan"},accessibilityLabel:`redskilled Workers \u2014 ${e.table.variant} table`,striped:!r}),...i.map(c=>nd(c,r))]}function i$(e){let t=Math.max(1,Math.floor(e.columns)),r=Math.max(1,Math.floor(e.rows)),n=Math.max(0,r-1),o=`q quit \xB7 r refresh \xB7 v deaths: ${e.showDeathDetails?"details":"summary"} \xB7 live 1s`,s=e.noColor===!0,i=e.frame.dashboard==null?e.frame.lines.map(a=>nd(a,s)):s$(e.frame.dashboard,t,s);return yr({flexDirection:"column",width:t,height:r,overflow:"hidden"},yr({flexDirection:"column",width:t,height:n,overflow:"hidden"},...i),mt({dim:!s,wrap:"truncate-end"},o))}async function Kx(e){let t=!1;function r(){let o=Zl(),s=xf(),[i,a]=Yl({lines:["redskilled \xB7 connecting to host\u2026"]}),[l,d]=Yl(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 ji(()=>{let u=setTimeout(c,0);return()=>clearTimeout(u)}),Ef(c,e.refreshMs??1e3),yf((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))}),i$({frame:i(),columns:s.columns||80,rows:s.rows||24,showDeathDetails:l(),noColor:e.noColor})}await Af(r,{stdin:e.stdin,stdout:e.stdout,screenMode:"alternate",maxFps:10,exitOnCtrlC:!0,exitProcess:!1,showCursor:!1,useDeltaRenderer:!0}).waitUntilExit()}import{execFileSync as h$}from"node:child_process";import{readFileSync as b$}from"node:fs";import{dirname as Xx,join as y$}from"node:path";import{createHash as a$}from"node:crypto";var l$="project.name";function zx(e){let t=Zo(e,l$)?.trim();return t===void 0||t===""?void 0:t}var d$=8,Jx="project";function Yx(e){let t=g$(e.gitCommonDir),r=(e.declaredName??"").trim(),n=r!==""?{name:r,source:"declared"}:c$(e.remoteUrl)??{name:u$(e.checkoutPath,t),source:"basename"},o=f$(t??Of(e.checkoutPath));return{name:n.name,slug:`${p$(n.name)}-${o}`,hash:o,source:n.source}}function Qx(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 c$(e){let t=Qx(e);return t===void 0?void 0:{name:t,source:"remote"}}function u$(e,t){let r=t===void 0?"":Vx(m$(t));if(r!=="")return r;let n=Vx(Of(e));return n===""?Jx:n}function p$(e){let r=e.split("/").map(n=>n.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-+|-+$/g,"")).filter(n=>n!=="").join("--");return r===""?Jx:r}function f$(e){return a$("sha256").update(e).digest("hex").slice(0,d$)}function g$(e){let t=Of(e??"");return t===""?void 0:t}function Of(e){let t=e.trim().replace(/\\/g,"/");return t.length>1?t.replace(/\/+$/,""):t}function Vx(e){let t=e.split("/").filter(r=>r!=="");return t[t.length-1]??""}function m$(e){return e.split("/").filter(r=>r!=="").slice(0,-1).join("/")}var k$=2e3;function Zx(e){return R$(e).name}function R$(e){let t=If(e),r=Ff(e,["rev-parse","--absolute-git-dir"])??Ff(e,["rev-parse","--git-common-dir"]),n=Ff(e,["remote","get-url","origin"]);return Yx({checkoutPath:t.root??e,...r!==void 0?{gitCommonDir:r}:{},...n!==void 0?{remoteUrl:n}:{},...t.name!==void 0?{declaredName:t.name}:{}})}function If(e){let t=Yk(e,y$(".red","config.yaml"));if(t==null)return{};let r;try{r=b$(t,"utf8")}catch{return{}}let n=zx(r),o=Xx(Xx(t));return{...n===void 0?{}:{name:n},configText:r,root:o}}function Ff(e,t){try{let r=h$("git",[...t],{cwd:e,encoding:"utf8",stdio:["ignore","pipe","ignore"],timeout:k$}).trim();return r===""?void 0:r}catch{return}}function od(e){let t=If(e);return t.configText==null?{label:null}:{configText:t.configText,label:Zx(e)}}var w$="plugins.dev.statusline",_$="dev.statusline";function x$(e){let t=[],r=a=>{for(let l of[w$,_$]){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 E$={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 sd(e){let{values:t,positionals:r}=dn(e,E$),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 id(e={}){let t=e.configText==null?{config:{},warnings:[]}:x$(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 Mf(e,t={}){let r=t.write??(g=>process.stdout.write(g)),n=t.warn??(g=>process.stderr.write(g)),o=sd(e),s=od(t.cwd??process.cwd()),i=id({...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??
|
|
222
|
+
`+nd}e.write(a+g+Li),o=c,s=p};return l.clear=()=>{e.write(a+Li),o="",s=0},l.done=()=>{o="",s=0,!r&&i&&(ms(e),i=!1)},l.sync=d=>{o=d,s=d.split(`
|
|
223
|
+
`).length},l}function Ef(e=process.stdout,t={}){let{incremental:r=!0,fullScreen:n=!1}=t;return n?dB(e,t):r?lB(e,t):aB(e,t)}function Kx(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 Vx=Symbol("tuiuiu.overlay-runtime-state");function cB(e){for(let t of e.layers.values())t.dismissTimer&&clearTimeout(t.dismissTimer);e.tooltipTimer&&clearTimeout(e.tooltipTimer),e.tooltipTimer=null}function zx(e){let t=e.id===0?null:Ft(Vx,()=>zx(Ir())),r={layers:new Map,nextZIndex:100,terminalSize:{width:t?.terminalSize.width??80,height:t?.terminalSize.height??24},idCounter:0,toastQueue:[],activeTooltip:null,tooltipTimer:null,[Fr](){cB(r),r.layers.clear(),r.toastQueue=[],r.activeTooltip=null}};return r}function uB(){let e=We();return Fe(Vx,()=>zx(e),e)}function vf(e,t){let r=uB();r.terminalSize={width:e,height:t}}function Jx(e){return"__reactive"in e}function pB(e){let t=e.__reactive(),r=Ot(t),n=r!==e.__cachedFingerprint;return e.__cachedResult=t,e.__cachedFingerprint=r,e.children=t?[t]:[],n}function Yx(e){let t=0,r=n=>{Jx(n)&&pB(n)&&t++;for(let o of n.children)r(o)};return r(e),t}function Qx(e){let t=new Set,r=n=>{Jx(n)&&!t.has(n)&&(t.add(n),n.__dispose?.(),n.__dispose=void 0);for(let o of n.children)r(o)};r(e)}function fB(e){return!!e.props.__static}function gB(e,t){let r=e.props;return r.__staticId?r.__staticId:`static-${t}-${Ot(e.children??[])}`}function mB(e){let t=[];function r(o){if(fB(o))return t.push(o),null;if(o.children&&o.children.length>0){let s=o.children.map(i=>i&&typeof i=="object"&&"type"in i?r(i):i).filter(i=>i!==null);return{...o,children:s}}return o}let n=r(e)??{type:"fragment",props:{},children:[]};return{staticNodes:t,interactiveNode:n}}var Sf={clearTerminal:"\x1B[2J\x1B[3J\x1B[H"},hB={inline:{clearOnStart:!1,fullHeight:!1,alternateScreen:!1},fullscreen:{clearOnStart:!0,fullHeight:!0,alternateScreen:!1},alternate:{clearOnStart:!0,fullHeight:!0,alternateScreen:!0}};function Tf(e,t={}){let r=t.screenMode?hB[t.screenMode]:void 0,{stdout:n=process.stdout,stdin:o=process.stdin,debug:s=!1,exitOnCtrlC:i=!0,exitProcess:a=!1,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u,maxFps:p=30,showCursor:g=!1,autoTabNavigation:f=!0,useDeltaRenderer:y=!0,fixedStep:m}=t,w=t.clearOnStart??r?.clearOnStart??!0,T=t.fullHeight??r?.fullHeight??!1,B=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=kf(o,n,{autoTabNavigation:f,exitOnCtrlC:i,exitProcess:a,maxPasteBytes:l,maxPendingEscapeBytes:d,escapeSequenceTimeoutMs:c,pasteTimeoutMs:u}),M=Tp(C);if(!M)throw C.dispose(),new Error("[tuiuiu] Failed to create the app runtime scope");let N=M,H=()=>{},G=[];try{H=fw(),G.push(Zr(()=>{o.isTTY&&o.setRawMode&&o.setRawMode(!1)})),G.push(Zr(()=>{n.write("\x1B[?1004l")})),G.push(Zr(()=>{n.write("\x1B[?2004l")})),B&&(n.write(Mx()),G.push(Zr(()=>{n.write(gf())})))}catch(re){for(let he of G.splice(0))try{he()}catch{}try{H()}catch{}throw C.dispose(),ss(N),re}let I=typeof e=="function"?e:()=>e,W=!1,q=0,oe=0,ae=0,se,Z,pe=()=>{W=!1,xe()},De=()=>{q++,q===1&&(oe=0,ae=0)},Ee=()=>q===0?{bytes:0,writeMs:0}:(q--,q===0?{bytes:oe,writeMs:ae}:{bytes:0,writeMs:0}),ke=re=>{let 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=Ef(Y,{showCursor:g,incremental:!1,fullScreen:T,topOffset:0}),we=0,Oe=null,ve="",Re=!1,Te=[],fe,ie,_e,Ie=new Set,at=0,Nt=()=>{we=at,de=Ef(Y,{showCursor:g,incremental:!1,fullScreen:T,topOffset:we}),ve=""},en=()=>{de.clear(),ke(Sf.clearTerminal),ve="",Ie.clear(),at=0,Te=[],Nt()},tn=re=>{de.clear(),ke(`${re}
|
|
224
|
+
`),at+=re.split(`
|
|
225
|
+
`).length,Nt()};qe(N,()=>Rf(en)),fe=new Promise((re,he)=>{ie=re,_e=he});let go=C.dispose;C.dispose=()=>{if(Re){go();return}Rr(),ie()};let ce=p>0?Math.ceil(1e3/p):0;qe(N,()=>{n_({targetFps:p>0?p:60,reducedFps:p>0?Math.max(1,Math.floor(p/2)):30,frameBudgetMs:ce>0?ce:16.67}),vf(n.columns||80,n.rows||24)});let Gt=0,ct=!1,Ze=null,Rt=null,lt=null,ut=0,wt=0,_t=0,Gr=0,Pe=null,Le=[],J=!1,D=null;y&&(D=fx({stdout:Y,showCursor:g,useDelta:!0})),w&&!s&&ke(Sf.clearTerminal);let R=ce>0?ce:16,L=Kx(()=>{Le.length!==0&&Bt(()=>{for(;Le.length>0;){let re=Le;Le=[];for(let he of re)he()}})},R);qe(N,()=>rd({enqueue(re){Re||(Le.push(re),L.schedule())},flush(){Re||L.flush()},isPending(){return Le.length>0||L.isPending()}}));let $=()=>{let re=performance.now();Z=Date.now(),tw("component");try{Oe=I(),Yx(Oe)}finally{rw(),se=performance.now()-re}},K=()=>qe(N,()=>{$(),nn()});function X(re){Re||(Rt=re,!W&&xe())}function xe(){if(ct||Re||W||!Rt)return;let he=Date.now()-Gt,Be=Gt===0||he>=ce?0:ce-he,Wt=()=>{let Lt=Rt;if(Rt=null,ct=!1,Ze=null,!Re)try{Lt?.()}catch(et){C.exit(et instanceof Error?et:new Error(String(et)))}};if(ct=!0,Be===0){queueMicrotask(Wt);return}Ze=setTimeout(Wt,Be)}let je=re=>qe(N,()=>{if(Re)return;let he=rs(String(re)).replace(/\r\n?/g,`
|
|
226
|
+
`).replace(/\n+$/u,"");Te.push(he),X(nn)});qe(N,()=>td(je));function $e(){if(!m||Re||(m.pauseWhenUnfocused??!0)&&!fr())return;let he=1e3/Math.max(1,m.updateFps),Be=Math.max(0,Math.ceil(he-ut));lt=setTimeout(Mt,Be)}function Mt(){if(!(!m||Re))try{if((m.pauseWhenUnfocused??!0)&&!fr()){lt=null,ut=0,wt=Date.now();return}let he=1e3/m.updateFps,Be=m.maxCatchUpUpdates??5,Wt=Date.now();ut+=Wt-wt,wt=Wt;let Lt=0;for(;ut>=he&&Lt<Be;)ut-=he,_t++,Gr+=he,Bt(()=>{m.onUpdate({deltaTimeMs:he,step:_t,elapsedMs:Gr})}),Lt++;ut>=he&&(ut%=he),$e()}catch(re){lt=null,C.exit(re instanceof Error?re:new Error(String(re)))}}let rn=Qr(N,()=>{Re||(A_(),vf(n.columns||80,n.rows||24),jw(),X(K))});n.on("resize",rn);let kr=()=>{};C.onExit(re=>qe(N,()=>{Rr(),kr(),re?_e(re):ie()}));function nn(){if(Re||!Oe)return;Gt=Date.now();let re=Z??Date.now(),he=n.columns||80,Be=n.rows||24,Wt=mB(Oe),Lt=()=>{D&&(D.cleanup(),D=null,ke(Sf.clearTerminal),Ie.clear(),at=0,Nt())};if(Te.length>0){Lt();let Se=Te;Te=[],tn(Se.join(`
|
|
227
|
+
`))}Wt.staticNodes.length>0&&Lt();let et=Math.max(1,Be-at);if(D&&!s){let Se=uo(Oe,{width:he,height:et});Se.metrics.runtimeStartAt=re,se!==void 0&&it(Se,"vnodeEvalMs",se);let sn=performance.now();df(Se),Np(Se.layout,at);let wr=ps();wr.hasClickableElements()&&!J?(ls(),J=!0):!wr.hasClickableElements()&&J&&(Zn(),J=!1),it(Se,"frameCommitMs",performance.now()-sn),Pt(Se,"reservedRegionCount",Se.reservedRegions.length),D.renderFrame(Se),se=void 0,Z=void 0;return}let{staticNodes:mo,interactiveNode:on}=Wt,Pn=performance.now();De();for(let Se=0;Se<mo.length;Se++){let sn=mo[Se],wr=gB(sn,Se);if(!Ie.has(wr)){let an=vx(sn,he);an.trim()&&(tn(an),Ie.add(wr))}}let An=b_(),Ne=uo(on,{width:he,height:et});Ne.metrics.runtimeStartAt=re,se!==void 0&&it(Ne,"vnodeEvalMs",se);let Cn=performance.now()-Pn;it(Ne,"staticRenderMs",Cn);let Dn=performance.now();df(Ne),Np(Ne.layout,at);let On=ps();On.hasClickableElements()&&!J?(ls(),J=!0):!On.hasClickableElements()&&J&&(Zn(),J=!1),it(Ne,"frameCommitMs",performance.now()-Dn),Pt(Ne,"reservedRegionCount",Ne.reservedRegions.length);let nr=pf(Ne,{fullHeight:T,previousFrame:An});if(nr===ve&&!s){let Se=Ee();it(Ne,"outputWriteMs",Se.writeMs),Pt(Ne,"outputByteCount",Se.bytes),Tn(Ne,{renderer:"ansi",runtimeStartAt:re}),is(Ne.layout),gi(),se=void 0,Z=void 0;return}s?ke(nr+`
|
|
228
|
+
`):de(nr);let Wr=Ee();it(Ne,"outputWriteMs",Wr.writeMs),Pt(Ne,"outputByteCount",Wr.bytes),Tn(Ne,{renderer:"ansi",runtimeStartAt:re}),is(Ne.layout),gi(),ve=nr,se=void 0,Z=void 0}function Rr(){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)}};Ze&&(clearTimeout(Ze),Ze=null),lt&&(clearTimeout(lt),lt=null),Pe?.(),Pe=null,W=!1,re(()=>n.off("drain",pe)),Rt=null,ct=!1,L.cancel(),Le=[],rd(null),td(null),J&&(re(()=>Zn()),J=!1),re(()=>n.off("resize",rn)),re(D?()=>D?.cleanup():()=>de.done()),B&&re(()=>{n.write(gf())}),W=!1,re(()=>n.off("drain",pe)),re(()=>Sl(N)),Oe&&re(()=>Qx(Oe)),re(()=>C.dispose());for(let he of G.splice(0))re(he);re(H),re(()=>y_()),re(()=>ss(N))}try{kr=qe(N,()=>Yw(()=>{K()},{scheduler:X})),qe(N,()=>{m&&(wt=Date.now(),(m.pauseWhenUnfocused??!0)&&(Pe=Gl(re=>{if(!(Re||!m)){if(!re){lt&&(clearTimeout(lt),lt=null),ut=0,wt=Date.now();return}ut=0,wt=Date.now(),lt||$e()}})),$e())})}catch(re){try{kr()}catch(he){console.error("[tuiuiu] Error while rolling back the render effect:",he)}throw Rr(),re}return{rerender:re=>qe(N,()=>{I=()=>re,X(K)}),unmount:()=>qe(N,()=>{Rr(),kr(),s||ke(`
|
|
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??er(),l=t.readDashboard??Zk,d=t.terminal===void 0?process.stdout.isTTY===!0:t.terminal===!0,c=(t.env??process.env).NO_COLOR!==void 0,u={...i.options.project==null?{}:{project:i.options.project},mode:i.options.mode,showDeathDetails:i.options.verbose},p=async(g,f=!0)=>{try{let y=await l(a,g,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}});return{dashboard:y,lines:c?y.lines.map(Un):y.lines}}catch(y){let m=y instanceof Error?y.message:String(y);return f&&n(`redskilled dashboard: ${m}
|
|
231
231
|
`),{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
232
|
`)}
|
|
233
|
-
`),0}return await(t.runTui??
|
|
234
|
-
`);let a;try{a=await
|
|
235
|
-
`),a=
|
|
233
|
+
`),0}return await(t.runTui??Zx)({initialShowDeathDetails:i.options.verbose,noColor:c,readFrame:async({columns:g,rows:f,showDeathDetails:y})=>{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:y},!1)}}),0}async function If(e,t={}){let r=t.write??(l=>process.stdout.write(l)),n=t.warn??(l=>process.stderr.write(l)),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 l of[...i.warnings,...o.warnings])n(`redskilled statusline: ignoring ${l.key}=${l.value} \u2014 ${l.reason}
|
|
234
|
+
`);let a;try{a=await Xk(t.paths??er(),i.options,{...t.client??{},...i.options.project==null?{}:{sessionProject:i.options.project}})}catch(l){n(`redskilled statusline: ${l instanceof Error?l.message:String(l)}
|
|
235
|
+
`),a=Gu({options:i.options,generated_at:(t.now??(()=>new Date().toISOString()))()})}return r(`${a.lines.join(`
|
|
236
236
|
`)}
|
|
237
|
-
`),0}var
|
|
237
|
+
`),0}var WB=`Usage: redskilled <command> [options]
|
|
238
238
|
|
|
239
239
|
Commands:
|
|
240
240
|
host-state (default) print the host's state as JSON
|
|
@@ -248,7 +248,7 @@ Commands:
|
|
|
248
248
|
|
|
249
249
|
Run \`redskilled <command> --help\` for a command's own usage.
|
|
250
250
|
\`--version\` (\`-v\`) prints the build stamp; both answer offline.
|
|
251
|
-
`,
|
|
251
|
+
`,HB={serve:`Usage: redskilled serve [options]
|
|
252
252
|
|
|
253
253
|
Runs the daemon in this process. Every path is a flag and none is derived
|
|
254
254
|
(ADR 0130 rule 3); what is absent falls back to the session derivation.
|
|
@@ -335,19 +335,19 @@ Reports every session runtime dir it looked at and why it kept or removed it.
|
|
|
335
335
|
|
|
336
336
|
--dry-run the same report with nothing removed
|
|
337
337
|
--grace-ms <n> how long a dir must be idle before it is reclaimed
|
|
338
|
-
`};function
|
|
339
|
-
`:`${
|
|
340
|
-
`),0}if(
|
|
341
|
-
`);let p=
|
|
342
|
-
`),0}var
|
|
343
|
-
`),0}function
|
|
344
|
-
`),o.running&&!o.stopped?1:0}async function
|
|
345
|
-
`),0;if(o==="install"){let s=await
|
|
346
|
-
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await
|
|
347
|
-
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}var
|
|
348
|
-
`),p.verdict==="ok"?0:1}var
|
|
349
|
-
`),o.entries.some(s=>s.verdict==="failed")?1:0}function
|
|
350
|
-
`),process.exitCode=1})}export{
|
|
338
|
+
`};function UB(e){return e==="--help"||e==="-h"||e==="help"}var qB={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)}},lE="REDSKILLED_HOST_TOKEN";function $i(){try{let t=GB("gh",["auth","token"],{encoding:"utf8",timeout:5e3,stdio:["ignore","pipe","ignore"]}).trim();return t===""?null:t}catch{return null}}function dE(e=process.env,t=$i){let r=(e[lE]??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 KB(e,t=process.env,r=$i,n){return{...e["queue-ms"]==null?{}:{intervalMs:e["queue-ms"]},...aE(e,t,r,n),armTransport:()=>aE(e,t,r,n)}}function VB(e,t=process.env,r=$i){let n=dE(t,r);if(n==null)return null;let o=t.GITHUB_API_URL;return{transport:pu({token:n.token,...o?{origin:o}:{}})}}function aE(e,t=process.env,r=$i,n){let o=dE(t,r);if(o==null)return{unconfiguredReason:`no credential names a tracker for this host: ${lE}, 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:Ry({token:o.token,...s?{endpoint:s}:{},...n?{attribution:n}:{}})}}async function zB(e){if(e[0]==="--version"||e[0]==="-v"){let o=na("redskilled");return process.stdout.write(e.includes("--json")?`${JSON.stringify(o)}
|
|
339
|
+
`:`${Wg(o)}
|
|
340
|
+
`),0}if(UB(e[0]))return process.stdout.write(WB),0;let{command:t,args:r}=Kg(e,{commands:{serve:{},stop:{},"host-state":{},statusline:{},dashboard:{},"github-spend":{},unit:{},provision:{},reclaim:{}},default:"host-state"});if(r.some(o=>o==="--help"||o==="-h"))return process.stdout.write(HB[t]),0;if(t==="serve"){let{values:o}=dn(r,qB),s=await tR(ji()),i=rR({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=ld(Ct(ji()),"state"),l=Aa({path:ld(a,"github","spend.toonl")}),d=KB(o,process.env,$i,l),c=VB(o),u=fm({stateRoot:a});process.stderr.write(`${gm(u)}
|
|
341
|
+
`);let p=lm({lanePath:Po(a),kind:"daemon",id:`daemon:${process.pid}`,phase:"serving"}),g=iN(o),f;try{f=await Nk({paths:g,idleMs:i.idleMs,ceiling:i.ceiling,daemonVersion:o["daemon-version"]??na("redskilled").version,deaths:u.attributions,queueDiscovery:d,...c==null?{}:{githubBalance:c},...o["demand-ms"]==null?{}:{demandMs:o["demand-ms"]}})}catch(y){if(!(y instanceof Vt))throw y;return p.uninstall(),0}if(gl())try{ck({socketPath:g.socketPath,version:o["daemon-version"]??na("redskilled").version})}catch{}for(let y of["SIGTERM","SIGINT"])process.once(y,()=>void f.stop({reason:"signal",signal:y}).catch(()=>{}));return await f.closed,p.phase("closed"),0}if(t==="stop")return await ZB(r);if(t==="statusline")return await If(r);if(t==="dashboard")return await Ff(r);if(t==="github-spend")return await YB(r);if(t==="unit")return await eN(r);if(t==="provision")return await rN(r);if(t==="reclaim")return await oN(r);let n=await Yk(er());return process.stdout.write(`${JSON.stringify(n,null,2)}
|
|
342
|
+
`),0}var JB={pool:{kind:"value",coerce:e=>e},hours:{kind:"value",coerce:e=>Number(e)}};async function YB(e,t={}){let{values:r}=dn(e,JB,{unknownFlags:"error"}),n=r.hours??1;if(!Number.isFinite(n)||n<=0)throw new Error(`redskilled github-spend --hours must be a positive number; received ${String(n)}`);let o=r.pool??"graphql",s=o==="all"?void 0:QB(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??Aa({path:ld(Ct(t.homeDir??ji()),"state","github","spend.toonl")})).report({from:l,to:i,...s===void 0?{}:{pool:s}});return(t.write??(u=>process.stdout.write(u)))(`${nt({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})}
|
|
343
|
+
`),0}function QB(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 XB={reason:{kind:"value",coerce:e=>e},"settle-timeout-ms":{kind:"value",coerce:e=>Number(e)}};async function ZB(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,XB),o=await Jk(t.paths??er(),{...n.reason==null?{}:{detail:n.reason},...Number.isFinite(n["settle-timeout-ms"])?{settleTimeoutMs:n["settle-timeout-ms"]}:{}},t.client??{});return r(`${nt({running:o.running,stopped:o.stopped,reason:o.reason,socket:o.socket_path,daemon_version:o.daemon_version,pid:o.pid,holding:{workers:o.holding.workers.length,projects:[...o.holding.projects]},surviving:[...o.surviving],workers:o.holding.workers.map(s=>({worker_id:s.worker_id,project_label:s.project_label,pid:s.pid,unit:s.unit,isolated:s.isolated,survives:s.survives})),detail:o.detail})}
|
|
344
|
+
`),o.running&&!o.stopped?1:0}async function eN(e,t={}){let r=t.write??(s=>process.stdout.write(s)),n=t.paths??er(),o=e[0]??"status";if(o==="status")return r(`${JSON.stringify(gk(t.unitIO??{}),null,2)}
|
|
345
|
+
`),0;if(o==="install"){let s=await pk(ik(n),t.unitIO??{});return r(`${JSON.stringify(s,null,2)}
|
|
346
|
+
`),s.installed?0:1}if(o==="uninstall")return r(`${JSON.stringify(await fk(t.unitIO??{}),null,2)}
|
|
347
|
+
`),0;throw new Error(`unsupported redskilled unit action ${JSON.stringify(o)}: expected install, uninstall or status`)}var tN={"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 rN(e,t={}){let r=t.write??(g=>process.stdout.write(g)),{values:n}=dn(e,tN),o=t.paths??er(),s=t.homeDir??ji(),i=await hp({homeDir:s,declaredTarget:n.workspace,projectRoot:n.project??t.projectRoot??process.cwd()}),a=n.check||!i.needed?void 0:await hR(s),l;if(!n.check&&!n["no-start"])try{await up(o,t.client??{})}catch(g){l=g instanceof Error?g.message:String(g)}let d=await kR({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=Tr(d.entry)?Vn(d.entry,{homeDir:s}):void 0,u=n["install-unit"]&&c!=null?await _R({configHome:t.configHome??sN(),unit:wR({command:[c.command,...c.args].join(" "),socketPath:o.socketPath})}):void 0,p=yR(d);return r(`${nt({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}))})}
|
|
348
|
+
`),p.verdict==="ok"?0:1}var nN={"dry-run":{kind:"boolean"},"grace-ms":{kind:"value",coerce:e=>Number(e)}};async function oN(e,t={}){let r=t.write??(s=>process.stdout.write(s)),{values:n}=dn(e,nN),o=await vR({...t.options??{},dryRun:n["dry-run"]===!0,...Number.isFinite(n["grace-ms"])?{graceMs:n["grace-ms"]}:{}});return r(`${nt({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]}))})}
|
|
349
|
+
`),o.entries.some(s=>s.verdict==="failed")?1:0}function sN(){let e=process.env.XDG_CONFIG_HOME?.trim();return e&&e!==""?e:ld(ji(),".config")}function iN(e){let t=er();return{...t,socketPath:e.socket??t.socketPath,leasePath:e.lease??t.leasePath,eventLanePath:e.events??t.eventLanePath,sessionKeyHash:e["session-key-hash"]??t.sessionKeyHash,machineIdHash:e["machine-id-hash"]??t.machineIdHash,machineClaimPath:e["machine-claim"]??t.machineClaimPath}}var aN=process.argv[1]!=null&&import.meta.url===new URL(`file://${process.argv[1]}`).href;if(aN){let e=process.argv.slice(2);zB(e).then(t=>{e[0]==="serve"&&process.exit(t),process.exitCode=t},t=>{process.stderr.write(`redskilled: ${t instanceof Error?t.message:String(t)}
|
|
350
|
+
`),process.exitCode=1})}export{lE as REDSKILLED_HOST_TOKEN_ENV,WB as REDSKILLED_USAGE,aE as armRedskilledQueueTransport,dE as resolveRedskilledHostToken,VB as resolveServeGithubBalance,KB as resolveServeQueueDiscovery,Ff as runDashboard,YB as runGithubSpend,rN as runProvision,oN as runReclaim,zB as runRedskilledCli,If as runStatusline,ZB as runStop,eN as runUnit};
|
|
351
351
|
/*! Bundled license information:
|
|
352
352
|
|
|
353
353
|
content-type/dist/index.js:
|